diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/composite.el | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index ad25d537f2b..2ee709f62b2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-02-01 Kenichi Handa <handa@m17n.org> + + * composite.el (compose-region, compose-string): Signal error for + a null string component (Bug#6988). + 2012-01-31 Chong Yidong <cyd@gnu.org> * frame.el (set-frame-font): New arg ALL-FRAMES. diff --git a/lisp/composite.el b/lisp/composite.el index 72317ac470e..739ec8bbcbd 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -211,7 +211,7 @@ or a vector or list of integers and rules. If it is a character, it is an alternate character to display instead of the text in the region. -If it is a string, the elements are alternate characters. In +If it is a string, the elements are one or more alternate characters. In this case, TAB element has a special meaning. If the first character is TAB, the glyphs are displayed with left padding space so that no pixel overlaps with the previous column. If the last @@ -234,7 +234,9 @@ text in the composition." (let ((modified-p (buffer-modified-p)) (inhibit-read-only t)) (if (or (vectorp components) (listp components)) - (setq components (encode-composition-components components))) + (setq components (encode-composition-components components)) + (if (= (length components) 0) + (error "Invalid composition component: %s" components))) (compose-region-internal start end components modification-func) (restore-buffer-modified-p modified-p))) @@ -267,7 +269,9 @@ Optional 5th argument MODIFICATION-FUNC is a function to call to adjust the composition when it gets invalid because of a change of text in the composition." (if (or (vectorp components) (listp components)) - (setq components (encode-composition-components components))) + (setq components (encode-composition-components components)) + (if (= (length components) 0) + (error "Invalid composition component: %s" components))) (or start (setq start 0)) (or end (setq end (length string))) (compose-string-internal string start end components modification-func) |