From: Kenichi Handa Date: Tue, 20 Aug 2002 03:59:29 +0000 (+0000) Subject: (_fetch_multibyte_char_len): Extern deleted. X-Git-Tag: emacs-pretest-23.0.90~8295^2~1864^2~419 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=feb3066c150a1465094fa608143dba2caaa0afe1;p=emacs.git (_fetch_multibyte_char_len): Extern deleted. (FETCH_MULTIBYTE_CHAR): Don't use _fetch_multibyte_char_len. (BUF_FETCH_MULTIBYTE_CHAR): Likewise. (FETCH_CHAR_AS_MULTIBYTE): New macro. --- diff --git a/src/buffer.h b/src/buffer.h index 6d11035bb4e..447c618f77a 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -319,7 +319,6 @@ else /* Variables used locally in FETCH_MULTIBYTE_CHAR. */ extern unsigned char *_fetch_multibyte_char_p; -extern int _fetch_multibyte_char_len; /* Return character code of multi-byte form at position POS. If POS doesn't point the head of valid multi-byte form, only the byte at @@ -328,9 +327,17 @@ extern int _fetch_multibyte_char_len; #define FETCH_MULTIBYTE_CHAR(pos) \ (_fetch_multibyte_char_p = (((pos) >= GPT_BYTE ? GAP_SIZE : 0) \ + (pos) + BEG_ADDR - 1), \ - _fetch_multibyte_char_len \ - = ((pos) >= GPT_BYTE ? ZV_BYTE : GPT_BYTE) - (pos), \ - STRING_CHAR (_fetch_multibyte_char_p, _fetch_multibyte_char_len)) + STRING_CHAR (_fetch_multibyte_char_p, 0)) + +/* Return character at position POS. If the current buffer is unibyte + and the character is not ASCII, make the returning character + multibyte. */ + +#define FETCH_CHAR_AS_MULTIBYTE(pos) \ + (!NILP (current_buffer->enable_multibyte_characters) \ + ? FETCH_MULTIBYTE_CHAR ((pos)) \ + : unibyte_char_to_multibyte (FETCH_BYTE ((pos)))) + /* Macros for accessing a character or byte, or converting between byte positions and addresses, @@ -379,10 +386,7 @@ extern int _fetch_multibyte_char_len; (_fetch_multibyte_char_p \ = (((pos) >= BUF_GPT_BYTE (buf) ? BUF_GAP_SIZE (buf) : 0) \ + (pos) + BUF_BEG_ADDR (buf) - 1), \ - _fetch_multibyte_char_len \ - = (((pos) >= BUF_GPT_BYTE (buf) ? BUF_ZV_BYTE (buf) : BUF_GPT_BYTE (buf)) \ - - (pos)), \ - STRING_CHAR (_fetch_multibyte_char_p, _fetch_multibyte_char_len)) + STRING_CHAR (_fetch_multibyte_char_p, 0)) /* Define the actual buffer data structures. */