summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1997-09-05 08:07:44 +0000
committerKenichi Handa <handa@m17n.org>1997-09-05 08:07:44 +0000
commite527cb75b67604076210543aa0e26cda790ea095 (patch)
tree2fe0ba67be0bc5a8d0017898648ffc2f53339ae5 /src
parent5ad6a6f2997bd311295d540c3fe1f06a82c4da7e (diff)
downloademacs-e527cb75b67604076210543aa0e26cda790ea095.tar.gz
(Ffind_operation_coding_system): If a function in
XXX-coding-system-alist returns a coding system (instead of cons of coding systems), return cons of it.
Diffstat (limited to 'src')
-rw-r--r--src/coding.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/coding.c b/src/coding.c
index 2b46877055d..9487261b78d 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -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;
}
}