From: Kenichi Handa <handa@m17n.org>
Cc: emacs-devel@gnu.org
Subject: Re: reverting CJK input methods
Date: Fri, 30 Apr 2004 10:42:17 +0900 (JST) [thread overview]
Message-ID: <200404300142.KAA01027@etlken.m17n.org> (raw)
In-Reply-To: <20040429.150303.42778779.wl@gnu.org> (message from Werner LEMBERG on Thu, 29 Apr 2004 15:03:03 +0200 (CEST))
In article <20040429.150303.42778779.wl@gnu.org>, Werner LEMBERG <wl@gnu.org> writes:
> Computers are much faster today, with much more memory. Ken'ichi-san,
> what do you think about activating the decode maps for all CJK quail
> input methods, and adding a function like `show-input-method-input'
> which yields the current input method's input string for the current
> character.
It's a good idea. But, as computers are much faster, I
think we can find a key for a specific character by looking
up the quail map. Please evaluate the attached code,
activate some input method, input some character, go to that
character, and do M-x quail-find-key RET.
If that is too slow, another way is to generate the decode
map on demand.
---
Ken'ichi HANDA
handa@m17n.org
(defun quail-find-key (char map key)
(when (consp map)
(let ((translation (car map)))
(cond ((integerp translation)
(if (= translation char)
(throw 'tag key)))
((stringp translation)
(if (string-match (string char) translation)
(throw 'tag key)))
((vectorp translation)
(dotimes (i (length translation))
(let ((target (aref translation i)))
(if (integerp target)
(if (= target char)
(throw 'tag key))
(if (and (= (length target) 1)
(= (aref target 0) char))
(throw 'tag key))))))
((consp translation)
(setq translation (cdr translation))
(dotimes (i (length translation))
(let ((target (aref translation i)))
(if (integerp target)
(if (= target char)
(throw 'tag key))
(if (and (= (length target) 1)
(= (aref target 0) char))
(throw 'tag key)))))))))
(dolist (elt (cdr map))
(quail-find-key char (cdr elt) (cons (car elt) key))))
(defun quail-show-key ()
(interactive)
(let* ((char (following-char))
(key (catch 'tag
(quail-find-key char (quail-map) nil))))
(if key
(message "%c can be input by typing \"%s\""
char (apply 'string (nreverse key)))
(message "%c can't be input by the current input method" char))))
next prev parent reply other threads:[~2004-04-30 1:42 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-29 13:03 reverting CJK input methods Werner LEMBERG
2004-04-30 1:42 ` Kenichi Handa [this message]
2004-04-30 2:03 ` Miles Bader
2004-04-30 2:59 ` Miles Bader
2004-04-30 11:27 ` Juri Linkov
2004-04-30 13:26 ` Kenichi Handa
2004-05-01 8:22 ` Juri Linkov
2004-05-02 1:57 ` Kenichi Handa
2004-05-06 5:05 ` with-output-to-temp-buffer [Re: reverting CJK input methods] Kenichi Handa
2004-05-06 11:48 ` Richard Stallman
2004-05-06 13:10 ` Kenichi Handa
2004-05-06 14:27 ` Stefan Monnier
2004-05-06 15:49 ` Kevin Rodgers
2004-05-06 16:50 ` Stefan Monnier
2004-05-06 20:57 ` Kevin Rodgers
2004-05-07 1:53 ` Kenichi Handa
2004-05-08 1:20 ` Richard Stallman
2004-05-10 12:13 ` Kenichi Handa
2004-05-10 14:28 ` Stefan Monnier
2004-05-11 7:04 ` Richard Stallman
2004-05-11 7:49 ` David Kastrup
2004-05-12 7:51 ` Richard Stallman
2004-05-11 13:39 ` erase-buffer (was: with-output-to-temp-buffer) Stefan Monnier
2004-05-11 14:44 ` erase-buffer Juri Linkov
2004-05-11 16:17 ` erase-buffer Juri Linkov
2004-05-11 15:32 ` erase-buffer (was: with-output-to-temp-buffer) David Kastrup
2004-05-11 16:22 ` Kevin Rodgers
2004-05-11 19:30 ` Stefan Monnier
2004-05-12 21:10 ` Kevin Rodgers
2004-05-11 19:37 ` Juanma Barranquero
2004-05-11 18:14 ` Juanma Barranquero
2004-05-11 23:06 ` Kenichi Handa
2004-05-11 23:26 ` Miles Bader
2004-05-12 19:42 ` Richard Stallman
2004-05-12 22:34 ` Miles Bader
2004-05-14 9:21 ` Richard Stallman
2004-05-11 23:34 ` Stefan Monnier
2004-05-11 23:47 ` Kenichi Handa
2004-05-12 19:40 ` Richard Stallman
2004-05-11 1:45 ` with-output-to-temp-buffer [Re: reverting CJK input methods] Luc Teirlinck
2004-05-11 2:34 ` Kenichi Handa
2004-05-11 7:01 ` David Kastrup
2004-05-11 6:55 ` Kim F. Storm
2004-05-11 8:00 ` Kenichi Handa
2004-05-12 7:51 ` Richard Stallman
2004-04-30 5:06 ` reverting CJK input methods Kenichi Handa
2004-04-30 16:50 ` Werner LEMBERG
2004-05-01 9:07 ` Miles Bader
2004-05-01 17:18 ` Werner LEMBERG
2004-05-08 2:56 ` Kenichi Handa
2004-05-08 16:38 ` Werner LEMBERG
2004-05-10 4:40 ` Kenichi Handa
2004-05-12 2:42 ` Kenichi Handa
2004-05-12 8:32 ` Werner LEMBERG
2004-05-12 11:10 ` Kenichi Handa
2004-05-01 17:21 ` Werner LEMBERG
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200404300142.KAA01027@etlken.m17n.org \
--to=handa@m17n.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).