emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r111947: Don't sync charpos and bytep


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r111947: Don't sync charpos and bytepos in bidi_resolve_explicit_1.
Date: Tue, 05 Mar 2013 20:12:25 +0200
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111947
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Tue 2013-03-05 20:12:25 +0200
message:
  Don't sync charpos and bytepos in bidi_resolve_explicit_1.
  
   src/bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
   bidi_count_bytes, as the callers now arrange for bidi_it->charpos
   to be in sync with bidi_it->bytepos.  Suggested by Dmitry Antipov
   <address@hidden>.
modified:
  src/ChangeLog
  src/bidi.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-03-05 03:59:35 +0000
+++ b/src/ChangeLog     2013-03-05 18:12:25 +0000
@@ -1,3 +1,10 @@
+2013-03-05  Eli Zaretskii  <address@hidden>
+
+       * bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
+       bidi_count_bytes, as the callers now arrange for bidi_it->charpos
+       to be in sync with bidi_it->bytepos.  Suggested by Dmitry Antipov
+       <address@hidden>.
+
 2013-03-05  Paul Eggert  <address@hidden>
 
        Fix a build failure on OpenBSD 4.x and MirBSD.

=== modified file 'src/bidi.c'
--- a/src/bidi.c        2013-02-20 05:18:20 +0000
+++ b/src/bidi.c        2013-03-05 18:12:25 +0000
@@ -1353,15 +1353,19 @@
               : bidi_it->string.s);
 
          if (bidi_it->charpos < 0)
-           bidi_it->charpos = 0;
-         bidi_it->bytepos = bidi_count_bytes (p, 0, 0, bidi_it->charpos,
-                                              bidi_it->string.unibyte);
+           bidi_it->charpos = bidi_it->bytepos = 0;
+         eassert (bidi_it->bytepos == bidi_count_bytes (p, 0, 0,
+                                                        bidi_it->charpos,
+                                                        
bidi_it->string.unibyte));
        }
       else
        {
          if (bidi_it->charpos < BEGV)
-           bidi_it->charpos = BEGV;
-         bidi_it->bytepos = CHAR_TO_BYTE (bidi_it->charpos);
+           {
+             bidi_it->charpos = BEGV;
+             bidi_it->bytepos = BEGV_BYTE;
+           }
+         eassert (bidi_it->bytepos == CHAR_TO_BYTE (bidi_it->charpos));
        }
     }
   /* Don't move at end of buffer/string.  */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]