(iso-transl-dead-key-alist): Add dead-...
and S-dead-... key names to this list. (key-translation-map): Don't define dead-... and S-dead... here. (iso-transl-define-keys): Handle multiple matches in iso-transl-dead-key-alist for one accent character.
This commit is contained in:
parent
4ad679f96d
commit
9796652389
1 changed files with 37 additions and 32 deletions
|
@ -37,25 +37,27 @@
|
||||||
'((?\' . mute-acute)
|
'((?\' . mute-acute)
|
||||||
(?\` . mute-grave)
|
(?\` . mute-grave)
|
||||||
(?\" . mute-diaeresis)
|
(?\" . mute-diaeresis)
|
||||||
(?^ . mute-asciicircum) ;; Don't use \, since \^ is special.
|
(?^ . mute-asciicircum)
|
||||||
(?\~ . mute-asciitilde))
|
(?\~ . mute-asciitilde)
|
||||||
"Mapping of ASCII characters to their corresponding dead-key symbols.")
|
(?\' . dead-acute)
|
||||||
|
(?\` . dead-grave)
|
||||||
;; Some X servers use these alternate names.
|
(?\" . dead-diaeresis)
|
||||||
(or key-translation-map
|
(?^ . dead-asciicircum)
|
||||||
(setq key-translation-map (make-sparse-keymap)))
|
(?\~ . dead-asciitilde)
|
||||||
(define-key key-translation-map [dead-acute] [mute-acute])
|
(?^ . dead-circum)
|
||||||
(define-key key-translation-map [dead-grave] [mute-grave])
|
(?^ . dead-circumflex)
|
||||||
(define-key key-translation-map [dead-diaeresis] [mute-diaeresis])
|
(?\~ . dead-tilde)
|
||||||
(define-key key-translation-map [dead-asciicircum] [mute-asciicircum])
|
|
||||||
(define-key key-translation-map [dead-asciitilde] [mute-asciitilde])
|
|
||||||
;; Someone reports that these keys don't work if shifted.
|
;; Someone reports that these keys don't work if shifted.
|
||||||
;; This might fix it--no word yet.
|
;; This might fix it--no word yet.
|
||||||
(define-key key-translation-map [S-dead-acute] [mute-acute])
|
(?\' . S-dead-acute)
|
||||||
(define-key key-translation-map [S-dead-grave] [mute-grave])
|
(?\` . S-dead-grave)
|
||||||
(define-key key-translation-map [S-dead-diaeresis] [mute-diaeresis])
|
(?\" . S-dead-diaeresis)
|
||||||
(define-key key-translation-map [S-dead-asciicircum] [mute-asciicircum])
|
(?^ . S-dead-asciicircum)
|
||||||
(define-key key-translation-map [S-dead-asciitilde] [mute-asciitilde])
|
(?\~ . S-dead-asciitilde)
|
||||||
|
(?^ . S-dead-circum)
|
||||||
|
(?^ . S-dead-circumflex)
|
||||||
|
(?\~ . S-dead-tilde))
|
||||||
|
"Mapping of ASCII characters to their corresponding dead-key symbols.")
|
||||||
|
|
||||||
;; The two-character mnemonics are intended to be available in all languages.
|
;; The two-character mnemonics are intended to be available in all languages.
|
||||||
;; The ones beginning with `*' have one-character synonyms, but a
|
;; The ones beginning with `*' have one-character synonyms, but a
|
||||||
|
@ -215,18 +217,21 @@ sequence VECTOR. (VECTOR is normally one character long.)")
|
||||||
(defun iso-transl-define-keys (alist)
|
(defun iso-transl-define-keys (alist)
|
||||||
(while alist
|
(while alist
|
||||||
(define-key iso-transl-ctl-x-8-map (car (car alist)) (cdr (car alist)))
|
(define-key iso-transl-ctl-x-8-map (car (car alist)) (cdr (car alist)))
|
||||||
(let ((vec (vconcat (car (car alist))))
|
(let ((inchar (aref (car (car alist)) 0))
|
||||||
(deadpair (assq (aref (car (car alist)) 0)
|
(vec (vconcat (car (car alist))))
|
||||||
iso-transl-dead-key-alist)))
|
(tail iso-transl-dead-key-alist))
|
||||||
(aset vec 0 (logior (aref vec 0) ?\A-\^@))
|
(aset vec 0 (logior (aref vec 0) ?\A-\^@))
|
||||||
(define-key key-translation-map vec (cdr (car alist)))
|
(define-key key-translation-map vec (cdr (car alist)))
|
||||||
(define-key isearch-mode-map (vector (aref vec 0)) nil)
|
(define-key isearch-mode-map (vector (aref vec 0)) nil)
|
||||||
(if deadpair
|
(while tail
|
||||||
(let ((deadvec (copy-sequence vec)))
|
(if (eq (car (car tail)) inchar)
|
||||||
(aset deadvec 0 (cdr deadpair))
|
(let ((deadvec (copy-sequence vec))
|
||||||
(define-key isearch-mode-map (vector (aref deadvec 0)) nil)
|
(deadkey (cdr (car tail))))
|
||||||
(define-key key-translation-map deadvec (cdr (car alist))))))
|
(aset deadvec 0 deadkey)
|
||||||
(setq alist (cdr alist))))
|
(define-key isearch-mode-map (vector deadkey) nil)
|
||||||
|
(define-key key-translation-map deadvec (cdr (car alist)))))
|
||||||
|
(setq tail (cdr tail)))))
|
||||||
|
(setq alist (cdr alist)))
|
||||||
|
|
||||||
(defun iso-transl-set-language (lang)
|
(defun iso-transl-set-language (lang)
|
||||||
(interactive (list (let ((completion-ignore-case t))
|
(interactive (list (let ((completion-ignore-case t))
|
||||||
|
|
Loading…
Add table
Reference in a new issue