summaryrefslogtreecommitdiff
path: root/lisp/language/thai-word.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/language/thai-word.el')
-rw-r--r--lisp/language/thai-word.el54
1 files changed, 39 insertions, 15 deletions
diff --git a/lisp/language/thai-word.el b/lisp/language/thai-word.el
index 82f6fcdea6a..2548a44ea80 100644
--- a/lisp/language/thai-word.el
+++ b/lisp/language/thai-word.el
@@ -1,7 +1,8 @@
;;; thai-word.el -- find Thai word boundaries
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004
-;; Electrotechnical Laboratory, JAPAN.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+;; National Institute of Advanced Industrial Science and Technology (AIST)
+;; Registration Number H14PRO021
;; Author: Kenichi HANDA <handa@etl.go.jp>
@@ -72,13 +73,10 @@
;; which means that you can easily index the list character by
;; character.
-(defconst thai-word-table nil)
-
-
-;; Set up `thai-word-table'.
-
-(let
- ((l
+(defvar thai-word-table
+ (let ((table (list 'thai-words)))
+ (dolist (elt
+ ;;; The following is indented as this to minimize this file size.
'("¡¡"
"¡¡Å"
"¡¡Ø¸Àѳ±ì"
@@ -10732,11 +10730,10 @@
"äÎâ¡ÃÁÔàµÍÃì"
"äÎâ´Ã¤ÒÃìºÍ¹"
"äÎâÅ"
- )))
- (setq thai-word-table (list 'thai-words))
- (while l
- (set-nested-alist (car l) 1 thai-word-table)
- (setq l (cdr l))))
+ ))
+ (set-nested-alist elt 1 table))
+ table)
+ "Nested alist of Thai words.")
(defun thai-update-word-table (file &optional append)
@@ -10783,7 +10780,7 @@ the current word list."
;; character by character.
(while this
(setq pos (1+ pos)
- char (char-after pos)
+ char (or (char-after pos) 0)
category-set (char-category-set char))
;; If the current sequence is recorded in `thai-word-table'
;; (i.e. (car THIS) is 1) and the following Thai character is
@@ -11042,6 +11039,33 @@ If COUNT is negative, move point forward (- COUNT) words."
(thai-forward-word (- count)))
+(defun thai-kill-word (arg)
+ "Like kill-word but pay attention to Thai word boundaries.
+With argument, do this that many times."
+ (interactive "p")
+ (kill-region (point) (progn (thai-forward-word arg) (point))))
+
+
+(defun thai-backward-kill-word (arg)
+ "Like backward-kill-word but pay attention to Thai word boundaries."
+ (interactive "p")
+ (thai-kill-word (- arg)))
+
+
+(defun thai-transpose-words (arg)
+ "Like transpose-words but pay attention to Thai word boundaries."
+ (interactive "*p")
+ (transpose-subr 'thai-forward-word arg))
+
+(defun thai-fill-find-break-point (linebeg)
+ "Go to a line breaking position near point considering Thai word boundaries."
+ (let ((pos (point)))
+ (thai-forward-word -1)
+ (when (<= (point) linebeg)
+ (goto-char pos)
+ (thai-forward-word 1))
+ (kinsoku linebeg)))
+
(provide 'thai-word)