aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1998-01-02 21:27:40 +0000
committerRichard M. Stallman1998-01-02 21:27:40 +0000
commita3123c1330535e48aecfbf19dadd5bfd577738db (patch)
tree7e5cf39f7c751974668d2c58eb708ef8a7bac1a2 /src
parent193b12cacde14af89d506c4f8ca18c3e57b3110c (diff)
downloademacs-a3123c1330535e48aecfbf19dadd5bfd577738db.tar.gz
emacs-a3123c1330535e48aecfbf19dadd5bfd577738db.zip
(readchar): Use marker's bytepos instead of bufpos.
Diffstat (limited to 'src')
-rw-r--r--src/lread.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/lread.c b/src/lread.c
index c6f6a53d2c8..2f3418306aa 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -208,22 +208,17 @@ readchar (readcharfun)
208 if (bytepos >= BUF_ZV_BYTE (inbuffer)) 208 if (bytepos >= BUF_ZV_BYTE (inbuffer))
209 return -1; 209 return -1;
210 210
211 if (XMARKER (readcharfun)->bufpos == BUF_GPT_BYTE (inbuffer))
212 XMARKER (readcharfun)->bufpos += BUF_GAP_SIZE (inbuffer);
213
214 if (! NILP (inbuffer->enable_multibyte_characters)) 211 if (! NILP (inbuffer->enable_multibyte_characters))
215 INC_POS (bytepos); 212 INC_POS (bytepos);
216 else 213 else
217 bytepos++; 214 bytepos++;
218 XMARKER (readcharfun)->bufpos += bytepos - orig_bytepos; 215 XMARKER (readcharfun)->bytepos = bytepos;
219 XMARKER (readcharfun)->charpos++; 216 XMARKER (readcharfun)->charpos++;
220 217
221 readchar_backlog = bytepos - orig_bytepos; 218 readchar_backlog = bytepos - orig_bytepos;
222 } 219 }
223 220
224 /* Because we move ->bufpos across the gap before we advance it, 221 return *(BUF_BEG_ADDR (inbuffer) + XMARKER (readcharfun)->bytepos
225 the gap never comes between the previous character and ->bufpos. */
226 return *(BUF_BEG_ADDR (inbuffer) + XMARKER (readcharfun)->bufpos
227 - readchar_backlog--); 222 - readchar_backlog--);
228 } 223 }
229 if (EQ (readcharfun, Qget_file_char)) 224 if (EQ (readcharfun, Qget_file_char))