]> git.eshelyaron.com Git - emacs.git/commitdiff
(readchar): Find the previous byte's address properly
authorRichard M. Stallman <rms@gnu.org>
Fri, 17 Apr 1998 23:35:14 +0000 (23:35 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 17 Apr 1998 23:35:14 +0000 (23:35 +0000)
for the buffer case, as for the marker case.

src/lread.c

index f07ec2dc78024b2f0b6ead05a802feccb55bfc21..0d7238ddf3558368e97e565de7274bbd9b4fac54 100644 (file)
@@ -218,8 +218,12 @@ readchar (readcharfun)
          readchar_backlog = bytepos - orig_bytepos;
        }
 
-      return *(BUF_BEG_ADDR (inbuffer) + XMARKER (readcharfun)->bytepos
-              - readchar_backlog--);
+      /* We get the address of the byte just passed,
+        which is the last byte of the character.
+        The other bytes in this character are consecutive with it,
+        because the gap can't be in the middle of a character.  */
+      return *(BUF_BYTE_ADDRESS (inbuffer, XMARKER (readcharfun)->bytepos - 1)
+              - --readchar_backlog);
     }
   if (EQ (readcharfun, Qget_file_char))
     {