1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-21 21:20:44 -08:00

(decode_coding_iso_2022): Fix handling of invalid

bytes.
(raw_text_coding_system): Check NILP (coding_system).
(coding_inherit_eol_type): Check NILP (coding_system) and
NILP (parent).
(consume_chars): Fix for the case of raw-text.
This commit is contained in:
Kenichi Handa 2003-06-05 12:34:31 +00:00
parent 54ab3d3bb0
commit d3e4cb56a3

View file

@ -3186,7 +3186,6 @@ decode_coding_iso_2022 (coding)
*charbuf++ = *src_base;
else
*charbuf++ = BYTE8_TO_CHAR (*src_base);
char_offset++;
}
}
else if (composition_state == COMPOSING_NO)
@ -4985,6 +4984,8 @@ raw_text_coding_system (coding_system)
Lisp_Object spec, attrs;
Lisp_Object eol_type, raw_text_eol_type;
if (NILP (coding_system))
return Qraw_text;
spec = CODING_SYSTEM_SPEC (coding_system);
attrs = AREF (spec, 0);
@ -5012,10 +5013,13 @@ coding_inherit_eol_type (coding_system, parent)
{
Lisp_Object spec, attrs, eol_type;
if (NILP (coding_system))
coding_system = Qraw_text;
spec = CODING_SYSTEM_SPEC (coding_system);
attrs = AREF (spec, 0);
eol_type = AREF (spec, 2);
if (VECTORP (eol_type))
if (VECTORP (eol_type)
&& ! NILP (parent))
{
Lisp_Object parent_spec;
Lisp_Object parent_eol_type;
@ -5497,8 +5501,9 @@ produce_chars (coding)
produced_chars++;
}
else
/* This is an annotation datum. */
buf -= c + 1;
/* This is an annotation datum. (-C) is the length of
it. */
buf += -c - 1;
}
}
else
@ -6043,9 +6048,10 @@ consume_chars (coding)
if (! multibytep)
{
EMACS_INT bytes = MULTIBYTE_LENGTH (src, src_end);
EMACS_INT bytes;
if (bytes > 0)
if (! CODING_FOR_UNIBYTE (coding)
&& (bytes = MULTIBYTE_LENGTH (src, src_end)) > 0)
c = STRING_CHAR_ADVANCE (src), pos += bytes;
else
c = *src++, pos++;