summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-02-13 17:44:51 +0200
committerEli Zaretskii <eliz@gnu.org>2015-02-13 17:44:51 +0200
commitdecb48d3f73cc7db1604cd1276beef2b09a2f2ac (patch)
treec0f9a328f995cc06b68f78462d65eeefce7f378c
parent8b3ba7ae659571897f270a657379dce38e59a718 (diff)
downloademacs-decb48d3f73cc7db1604cd1276beef2b09a2f2ac.tar.gz
Augment text-mode syntax table for a few special characters
lips/textmodes/text-mode.el (text-mode-syntax-table): Make some punctuation character behave as word-constituent, for more compatibility with Unicode.
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/textmodes/text-mode.el17
2 files changed, 21 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 9852068ed68..a7b6b1be92f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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>
diff --git a/lisp/textmodes/text-mode.el b/lisp/textmodes/text-mode.el
index 5f2f671993c..84b578b5059 100644
--- a/lisp/textmodes/text-mode.el
+++ b/lisp/textmodes/text-mode.el
@@ -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'.")