(Ffind_operation_coding_system): If a function in
authorKenichi Handa <handa@m17n.org>
Fri, 5 Sep 1997 08:07:44 +0000 (08:07 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 5 Sep 1997 08:07:44 +0000 (08:07 +0000)
XXX-coding-system-alist returns a coding system (instead of cons
of coding systems), return cons of it.

src/coding.c

index 2b46877..9487261 100644 (file)
@@ -3788,14 +3788,22 @@ which is a list of all the arguments given to this function.")
              || (INTEGERP (target) && EQ (target, XCONS (elt)->car))))
        {
          val = XCONS (elt)->cdr;
+         /* Here, if VAL is both a valid coding system and a valid
+             function symbol, we return VAL as a coding system.  */
          if (CONSP (val))
            return val;
          if (! SYMBOLP (val))
            return Qnil;
          if (! NILP (Fcoding_system_p (val)))
            return Fcons (val, val);
-         if (!NILP (Ffboundp (val)))
-           return call1 (val, Flist (nargs, args));
+         if (! NILP (Ffboundp (val)))
+           {
+             val = call1 (val, Flist (nargs, args));
+             if (CONSP (val))
+               return val;
+             if (SYMBOLP (val) && ! NILP (Fcoding_system_p (val)))
+               return Fcons (val, val);
+           }
          return Qnil;
        }
     }