(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)))
(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))
(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))