[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using quail input methods to translate buffer text.
From: |
Peter Heslin |
Subject: |
Re: Using quail input methods to translate buffer text. |
Date: |
Fri, 07 Jul 2006 13:25:45 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Kenichi Handa <address@hidden> writes:
> We don't have such a function, but this will work in many
> cases.
Thank you very much! This function will be extremely useful on a daily
basis (and I would guess also to others converting text from legacy
encodings to Unicode).
I append below a version of your function which suits my working habits.
The only problem I have noticed so far is this: if it encounters an
end-of-line at a point where it is still looking for possible keystrokes
to modify the current character, then the function stops there and does
not process the rest of the string.
I have worked around this for my purposes by appending a space to every
line before conversion, but I hope there is a cleaner solution.
(defun my-quail-conv (beg end)
(interactive "r")
(save-excursion
(with-output-to-temp-buffer "*conversion output*"
(princ (my-quail-conv-string
current-input-method
(replace-regexp-in-string "$" " "
(buffer-substring-no-properties beg
end)))))))
(defun my-quail-conv-string (input-method key-string)
(let ((str "")
(old-input-method current-input-method))
(activate-input-method input-method)
(setq unread-command-events (string-to-list key-string))
(while unread-command-events
(let ((key (car unread-command-events))
events)
(setq unread-command-events (cdr unread-command-events))
(setq events (funcall input-method-function key))
(dolist (elt events)
(if (integerp elt)
(setq str (concat str (string elt)))))))
(activate-input-method old-input-method)
(decode-coding-string (encode-coding-string str 'utf-8) 'utf-8)))
Thanks again,
Peter
--
Peter Heslin (http://www.dur.ac.uk/p.j.heslin)
- Using quail input methods to translate buffer text., Peter Heslin, 2006/07/05
- Re: Using quail input methods to translate buffer text., Evil Boris, 2006/07/06
- Re: Using quail input methods to translate buffer text., Kenichi Handa, 2006/07/06
- Re: Using quail input methods to translate buffer text.,
Peter Heslin <=
- Re: Using quail input methods to translate buffer text., Kenichi Handa, 2006/07/07
- Re: Using quail input methods to translate buffer text., Peter Heslin, 2006/07/07
- Re: Using quail input methods to translate buffer text., Miles Bader, 2006/07/07
- Re: Using quail input methods to translate buffer text., Miles Bader, 2006/07/07
- Re: Using quail input methods to translate buffer text., Peter Heslin, 2006/07/10
- Re: Using quail input methods to translate buffer text., Kenichi Handa, 2006/07/17
- Re: Using quail input methods to translate buffer text., Peter Heslin, 2006/07/20
- Re: Using quail input methods to translate buffer text., Kenichi Handa, 2006/07/20
- Re: Using quail input methods to translate buffer text., Miles Bader, 2006/07/20
- Re: Using quail input methods to translate buffer text., Kenichi Handa, 2006/07/21