# HG changeset patch # User Kenichi Handa # Date 888888556 0 # Node ID 1290ba9ccec8241ae8e99cd0ca77c1007842f1c3 # Parent 3d4005eb0e7119b48e65eb87e7895ec8724ee2e1 (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is moved to charset.h. (copy_text): Don't convert codes in the range 0200..0237 to multibyte characters. For codes in the range 0240..0377, use unibyte_char_to_multibyte. (count_size_as_multibyte): Likewise. (adjust_before_replace): Comment fixed. diff -r 3d4005eb0e71 -r 1290ba9ccec8 src/insdel.c --- a/src/insdel.c Tue Mar 03 01:29:16 1998 +0000 +++ b/src/insdel.c Tue Mar 03 01:29:16 1998 +0000 @@ -62,8 +62,6 @@ /* Buffer which combine_after_change_list is about. */ Lisp_Object combine_after_change_buffer; - -#define DEFAULT_NONASCII_INSERT_OFFSET 0x800 /* Move gap to position CHARPOS. Note that this can quit! */ @@ -592,15 +590,9 @@ unsigned char workbuf[4], *str; int len; - if (c >= 0200 && c < 0400) + if (c >= 0240 && c < 0400) { - if (! NILP (Vnonascii_translate_table)) - c = XINT (Faref (Vnonascii_translate_table, make_number (c))); - else if (nonascii_insert_offset > 0) - c += nonascii_insert_offset; - else - c += DEFAULT_NONASCII_INSERT_OFFSET; - + c = unibyte_char_to_multibyte (c); len = CHAR_STRING (c, workbuf, str); bcopy (str, to_addr, len); to_addr += len; @@ -629,16 +621,14 @@ for (i = 0; i < nbytes; i++) { unsigned int c = *ptr++; - if (c >= 0200 && c < 0400) + + if (c < 0240) + outgoing_nbytes++; + else { - if (! NILP (Vnonascii_translate_table)) - c = XINT (Faref (Vnonascii_translate_table, make_number (c))); - else if (nonascii_insert_offset > 0) - c += nonascii_insert_offset; - else - c += DEFAULT_NONASCII_INSERT_OFFSET; + c = unibyte_char_to_multibyte (c); + outgoing_nbytes += XINT (Fchar_bytes (make_number (c))); } - outgoing_nbytes += XINT (Fchar_bytes (make_number (c))); } return outgoing_nbytes; @@ -1077,10 +1067,9 @@ } /* This function should be called after moving gap to FROM and before - altering LEN chars of text starting from FROM. This adjusts - various position keepers and markers and as if the text is deleted. - Don't forget to call adjust_after_replace after you actually alter - the text. */ + altering text between FROM and TO. This adjusts various position + keepers and markers as if the text is deleted. Don't forget to + call adjust_after_replace after you actually alter the text. */ void adjust_before_replace (from, from_byte, to, to_byte)