Mercurial > emacs
changeset 18525:92d4f44969c6
(decode_mode_spec_coding): Clean up handling of eol conversions.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 02 Jul 1997 02:59:01 +0000 |
parents | 0ee850381861 |
children | e0d1b341124c |
files | src/xdisp.c |
diffstat | 1 files changed, 31 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Wed Jul 02 02:57:29 1997 +0000 +++ b/src/xdisp.c Wed Jul 02 02:59:01 1997 +0000 @@ -4023,31 +4023,48 @@ register char *buf; int eol_flag; { - register Lisp_Object val = coding_system; + Lisp_Object val; + + val = coding_system; if (NILP (val)) /* Not yet decided. */ { *buf++ = '-'; - if (eol_flag) *buf++ = eol_mnemonic_undecided; + *buf++ = eol_mnemonic_undecided; + /* Don't mention EOL conversion if it isn't decided. */ } else { + Lisp_Object eolvalue; + + eolvalue = Fget (coding_system, Qeol_type); + while (!NILP (val) && SYMBOLP (val)) - val = Fget (val, Qcoding_system); + { + val = Fget (val, Qcoding_system); + if (NILP (eolvalue)) + eolvalue = Fget (coding_system, Qeol_type); + } + *buf++ = XFASTINT (XVECTOR (val)->contents[1]); if (eol_flag) { - val = Fget (coding_system, Qeol_type); - - if (NILP (val)) /* Not yet decided. */ - *buf++ = eol_mnemonic_undecided; - else if (VECTORP (val)) /* Not yet decided. */ - *buf++ = eol_mnemonic_undecided; - else /* INTEGERP (val) -- 1:LF, 2:CRLF, 3:CR */ - *buf++ = (XFASTINT (val) == 1 - ? eol_mnemonic_unix - : (XFASTINT (val) == 2 - ? eol_mnemonic_dos : eol_mnemonic_mac)); + /* The EOL conversion we are using. */ + int eoltype; + /* The EOL conversion that is normal on this system. */ + + if (NILP (eolvalue)) /* Not yet decided. */ + eoltype = eol_mnemonic_undecided; + else if (VECTORP (eolvalue)) /* Not yet decided. */ + eoltype = eol_mnemonic_undecided; + else /* INTEGERP (eolvalue) -- 0:LF, 1:CRLF, 2:CR */ + eoltype = (XFASTINT (eolvalue) == 0 + ? eol_mnemonic_unix + : (XFASTINT (eolvalue) == 1 + ? eol_mnemonic_dos : eol_mnemonic_mac)); + + /* Mention the EOL conversion if it is not the usual one. */ + *buf++ = eoltype; } } return buf;