1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-16 17:19:41 +00:00

* lisp/international/mule-cmds.el: Fix abuses of apply-partially.

(mule-input-method-string): New widget.
(default-input-method, language-info-custom-alist): Use it.

Fixes: debbugs:9661
This commit is contained in:
Stefan Monnier 2011-10-03 10:18:42 -04:00
parent 0e2a062845
commit 8c24b7f65f
2 changed files with 26 additions and 17 deletions

View File

@ -1,3 +1,9 @@
2011-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
* international/mule-cmds.el: Fix abuses of apply-partially (bug#9661).
(mule-input-method-string): New widget.
(default-input-method, language-info-custom-alist): Use it.
2011-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
* pcomplete.el: Require comint.

View File

@ -1306,17 +1306,22 @@ If nil, that means no input method is activated now.")
(make-variable-buffer-local 'current-input-method-title)
(put 'current-input-method-title 'permanent-local t)
(define-widget 'mule-input-method-string 'string
"String widget with completion for input method."
:completions
(lambda (string pred action)
(let ((completion-ignore-case t))
(complete-with-action action input-method-alist string pred)))
:prompt-history 'input-method-history)
(defcustom default-input-method nil
"Default input method for multilingual text (a string).
This is the input method activated automatically by the command
`toggle-input-method' (\\[toggle-input-method])."
:link '(custom-manual "(emacs)Input Methods")
:group 'mule
:type '(choice (const nil)
(string
:completions (apply-partially
#'completion-table-case-fold input-method-alist)
:prompt-history input-method-history))
:type `(choice (const nil)
mule-input-method-string)
:set-after '(current-language-environment))
(put 'input-method-function 'permanent-local t)
@ -1879,10 +1884,11 @@ specifies the character set for the major languages of Western Europe."
(define-widget 'charset 'symbol
"An Emacs charset."
:tag "Charset"
:completions (apply-partially #'completion-table-with-predicate
(apply-partially #'completion-table-case-fold
obarray)
#'charsetp 'strict)
:completions
(lambda (string pred action)
(let ((completion-ignore-case t))
(completion-table-with-predicate
obarray #'charsetp 'strict string pred action)))
:value 'ascii
:validate (lambda (widget)
(unless (charsetp (widget-value widget))
@ -1917,8 +1923,10 @@ See `set-language-info-alist' for use in programs."
:type `(alist
:key-type (string :tag "Language environment"
:completions
(apply-partially #'completion-table-case-fold
language-info-alist))
(lambda (string pred action)
(let ((completion-ignore-case t))
(complete-with-action
action language-info-alist string pred))))
:value-type
(alist :key-type symbol
:options ((documentation string)
@ -1929,12 +1937,7 @@ See `set-language-info-alist' for use in programs."
(coding-system (repeat coding-system))
(coding-priority (repeat coding-system))
(nonascii-translation charset)
(input-method
(string
:completions
(apply-partially #'completion-table-case-fold
input-method-alist)
:prompt-history input-method-history))
(input-method mule-input-method-string)
(features (repeat symbol))
(unibyte-display coding-system)))))