changeset 109737:997eb61c5b49

language/hebrew.el: Exclude U+05C3 (Hebrew SOF PASUQ) from the composable pattern.
author Kenichi Handa <handa@etlken>
date Tue, 10 Aug 2010 10:25:16 +0900
parents 0fe981e141e3 (current diff) b817fe3a4e35 (diff)
children 9d0afaf75d12
files
diffstat 2 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Aug 09 15:03:38 2010 -0700
+++ b/lisp/ChangeLog	Tue Aug 10 10:25:16 2010 +0900
@@ -1,3 +1,8 @@
+2010-08-10  Kenichi Handa  <handa@m17n.org>
+
+	* language/hebrew.el: Exclude U+05C3 (Hebrew SOF PASUQ) from the
+	composable pattern.
+
 2010-08-09  Chong Yidong  <cyd@stupidchicken.com>
 
 	* emacs-lisp/package.el (package-version-split)
--- a/lisp/language/hebrew.el	Mon Aug 09 15:03:38 2010 -0700
+++ b/lisp/language/hebrew.el	Tue Aug 10 10:25:16 2010 +0900
@@ -237,17 +237,24 @@
 	  (setq idx (1+ idx))))))
     gstring))
 
-(let ((pattern1 "[\u05D0-\u05F2][\u0591-\u05BD\u05BF\u05C1-\u05C5\u05C7]+")
-      (pattern2 "[\u05D0-\u05F2]\u200D[\u0591-\u05BD\u05BF\u05C1-\u05C5\u05C7]+"))
+(let* ((base "[\u05D0-\u05F2]")
+       (combining "[\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7]+")
+       (pattern1 (concat base combining))
+       (pattern2 (concat base "\u200D" combining)))
   (set-char-table-range
    composition-function-table '(#x591 . #x5C7)
    (list (vector pattern2 3 'hebrew-shape-gstring)
 	 (vector pattern2 2 'hebrew-shape-gstring)
 	 (vector pattern1 1 'hebrew-shape-gstring)
 	 [nil 0 hebrew-shape-gstring]))
+  ;; Exclude non-combining characters.
+  (set-char-table-range
+   composition-function-table #x5BE nil)
   (set-char-table-range
    composition-function-table #x5C0 nil)
   (set-char-table-range
+   composition-function-table #x5C3 nil)
+  (set-char-table-range
    composition-function-table #x5C6 nil))
 
 (provide 'hebrew)