X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=egg-cnv.el;fp=egg-cnv.el;h=92c75935480694724e279498ad2ec0e33f7459f4;hb=967338c15046de0c67ebeff7a261b584d98e4a72;hp=8c499b324cfd219f22720ef8a0c810f9051dcfe0;hpb=8c533bb481f3d4d1b1728cee1268348d51ddfb4a;p=elisp%2Fegg.git diff --git a/egg-cnv.el b/egg-cnv.el index 8c499b3..92c7593 100644 --- a/egg-cnv.el +++ b/egg-cnv.el @@ -128,9 +128,12 @@ (egg-separate-languages start (point-max)) (goto-char start) (while (< (point) (point-max)) - (setq lang (get-text-property (point) 'egg-lang)) - (setq s (point) - e (next-single-property-change s 'egg-lang nil (point-max))) + (setq lang (get-text-property (point) 'egg-lang) + s (point) + e (point)) + (while (and (< e (point-max)) + (equal lang (get-text-property e 'egg-lang))) + (setq e (next-single-property-change e 'egg-lang nil (point-max)))) (setq bunsetsu-info-list (egg-start-conversion (buffer-substring s e) lang)) (setq contin (< e (point-max))) @@ -146,6 +149,7 @@ (defun egg-separate-languages (start end) (let (lang last-lang last-chinese p l c cset) + ;; 1st pass -- mark undefined Chinese part (goto-char start) (while (< (point) end) (setq p (next-single-property-change (point) 'its-lang nil end)) @@ -169,6 +173,7 @@ (setq p (point)) (forward-char) (put-text-property p (point) 'its-lang (egg-char-to-language c))))) + ;; 2nd pass -- set language property (goto-char start) (while (< (point) end) (setq lang (get-text-property (point) 'its-lang))