emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108046: Allow word wrap together


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108046: Allow word wrap together with whitespace-mode (bug #11341)
Date: Fri, 02 Nov 2012 02:18:31 -0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108046
fixes bug: http://debbugs.gnu.org/11341
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Thu 2012-04-26 13:49:29 +0300
message:
  Allow word wrap together with whitespace-mode (bug #11341)
  
   src/xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
   display element, check also the underlying string or buffer
   character.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-04-26 10:07:35 +0000
+++ b/src/ChangeLog     2012-04-26 10:49:29 +0000
@@ -1,5 +1,9 @@
 2012-04-26  Eli Zaretskii  <address@hidden>
 
+       * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
+       display element, check also the underlying string or buffer
+       character.  (Bug#11341)
+
        * w32menu.c: Include w32heap.h.
        (add_menu_item): If the call to AppendMenuW (via
        unicode_append_menu) fails, disable Unicode menus only if we are

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2012-04-20 08:48:50 +0000
+++ b/src/xdisp.c       2012-04-26 10:49:29 +0000
@@ -383,11 +383,21 @@
 #define IT_OVERFLOW_NEWLINE_INTO_FRINGE(it) 0
 #endif /* HAVE_WINDOW_SYSTEM */
 
-/* Test if the display element loaded in IT is a space or tab
-   character.  This is used to determine word wrapping.  */
+/* Test if the display element loaded in IT, or the underlying buffer
+   or string character, is a space or a TAB character.  This is used
+   to determine where word wrapping can occur.  */
 
-#define IT_DISPLAYING_WHITESPACE(it)                           \
-  (it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t'))
+#define IT_DISPLAYING_WHITESPACE(it)                                   \
+  ((it->what == IT_CHARACTER && (it->c == ' ' || it->c == '\t'))       \
+   || ((STRINGP (it->string)                                           \
+       && (SREF (it->string, IT_STRING_BYTEPOS (*it)) == ' '           \
+           || SREF (it->string, IT_STRING_BYTEPOS (*it)) == '\t'))     \
+       || (it->s                                                       \
+          && (it->s[IT_BYTEPOS (*it)] == ' '                           \
+              || it->s[IT_BYTEPOS (*it)] == '\t'))                     \
+       || (IT_BYTEPOS (*it) < ZV_BYTE                                  \
+          && (*BYTE_POS_ADDR (IT_BYTEPOS (*it)) == ' '                 \
+              || *BYTE_POS_ADDR (IT_BYTEPOS (*it)) == '\t'))))         \
 
 /* Name of the face used to highlight trailing whitespace.  */
 


reply via email to

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