]> code.delx.au - gnu-emacs/commitdiff
Augment text-mode syntax table for a few special characters
authorEli Zaretskii <eliz@gnu.org>
Fri, 13 Feb 2015 15:44:51 +0000 (17:44 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 13 Feb 2015 15:44:51 +0000 (17:44 +0200)
 lips/textmodes/text-mode.el (text-mode-syntax-table): Make some
 punctuation character behave as word-constituent, for more
 compatibility with Unicode.

lisp/ChangeLog
lisp/textmodes/text-mode.el

index 9852068ed6866467146ea82eb53c58e4b7dc190c..a7b6b1be92f9a0817c4d3d7443670319917256fe 100644 (file)
@@ -1,5 +1,9 @@
 2015-02-13  Eli Zaretskii  <eliz@gnu.org>
 
+       * textmodes/text-mode.el (text-mode-syntax-table): Make some
+       punctuation character behave as word-constituent, for more
+       compatibility with Unicode.
+
        * simple.el (transient-mark-mode): Doc fix.  (Bug#19841)
 
 2015-02-12  Agustín Martín Domingo <agustin6martin@gmail.com>
index 5f2f671993c98ffff862f7f0bc31586160c0d8fa..84b578b505912a36dd265d3e14f8c46a7d590744 100644 (file)
@@ -45,6 +45,23 @@ Use (derived-mode-p 'text-mode) instead.")
     (modify-syntax-entry ?\\ ".   " st)
     ;; We add `p' so that M-c on 'hello' leads to 'Hello' rather than 'hello'.
     (modify-syntax-entry ?' "w p" st)
+    ;; UAX #29 says HEBREW PUNCTUATION GERESH behaves like a letter
+    ;; for the purposes of finding word boundaries.
+    (modify-syntax-entry #x5f3 "w   ") ; GERESH
+    ;; UAX #29 says HEBREW PUNCTUATION GERSHAYIM should not be a word
+    ;; boundary when surrounded by letters.  Our infrastructure for
+    ;; finding a word boundary doesn't support 3-character
+    ;; definitions, so for now simply make this a word-constituent
+    ;; character.  This leaves a problem of having GERSHAYIM at the
+    ;; beginning or end of a word, where it should be a boundary;
+    ;; FIXME.
+    (modify-syntax-entry #x5f4 "w   ") ; GERSHAYIM
+    ;; These all should not be a word boundary when between letters,
+    ;; according to UAX #29, so they again are prone to the same
+    ;; problem as GERSHAYIM; FIXME.
+    (modify-syntax-entry #xb7 "w   ")  ; MIDDLE DOT
+    (modify-syntax-entry #x2027 "w   ")        ; HYPHENATION POINT
+    (modify-syntax-entry #xff1a "w   ")        ; FULLWIDTH COLON
     st)
   "Syntax table used while in `text-mode'.")