gnu-emacs-sources
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

caps-mode.el (delta)


From: Joe Corneli
Subject: caps-mode.el (delta)
Date: Mon, 04 Oct 2004 22:50:44 -0500

I'M HAVING A LITTLE BIT OF TROUBLE.  CAN YOU HEAR ME OK? :)

(Er, turning that off, it is annoying!)

The mode works (obviously) but ä is still inserted when I use mule.
Also meta+char just inserts the char.

But still worse, if I bind something like ä with xmodmap, it doesn't
get upcased either.

The problem seems to be here (after loading the revised mode), 

C-h v caps-mode-map RET ;=>

caps-mode-map's value is shown below.

Not documented as a variable.

Defined in `caps-mode'.

Value:
(keymap
 (122 . caps-mode-self-insert-command)
 (121 . caps-mode-self-insert-command)
 (120 . caps-mode-self-insert-command)
 (119 . caps-mode-self-insert-command)
 (118 . caps-mode-self-insert-command)
 (117 . caps-mode-self-insert-command)
 (116 . caps-mode-self-insert-command)
 (115 . caps-mode-self-insert-command)
 (114 . caps-mode-self-insert-command)
 (113 . caps-mode-self-insert-command)
 (112 . caps-mode-self-insert-command)
 (111 . caps-mode-self-insert-command)
 (110 . caps-mode-self-insert-command)
 (109 . caps-mode-self-insert-command)
 (108 . caps-mode-self-insert-command)
 (107 . caps-mode-self-insert-command)
 (106 . caps-mode-self-insert-command)
 (105 . caps-mode-self-insert-command)
 (104 . caps-mode-self-insert-command)
 (103 . caps-mode-self-insert-command)
 (102 . caps-mode-self-insert-command)
 (101 . caps-mode-self-insert-command)
 (100 . caps-mode-self-insert-command)
 (99 . caps-mode-self-insert-command)
 (98 . caps-mode-self-insert-command)
 (97 . caps-mode-self-insert-command))

On the other hand, I can confirm that your lowercase-letters is
fully populated and looks cool when it is printed out.

a b c d e f g h i j k l m n o p q r s t u v w x y z à á â ã ä å æ ç
è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ à á â ã ä å æ ç è é ê ë
ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ± ³ µ ¶ ¹ º » ¼ ¾ ¿ à á â ã ä å
æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ± ¶ º » ¼ ¿ à á â ä
å æ ç è é ê ë ì í î ï ñ ò ó ô õ ö ø ù ú û ü ý þ ± ³ µ ¶ ¹ º » ¼ ¾ ¿
à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ Ü Ý Þ ß
á â ã ä å æ ç è é ê ë ì í î ï ð ñ ó ô õ ö ÷ ø ù ú û ü ý þ Ð Ñ Ò Ó Ô
Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ñ ò ó ô õ ö ÷
ø ù ú û ü þ ÿ à á â ã ä å æ ç è é ë í î ð ñ ò ó ô õ ö ø ù ú û ü þ ¨
¸ ½ à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ ¢
¥ « ± ³ µ ¸ ¹ º ¼ ¾ ¿ à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö
÷ ø ù ú û ü ý þ ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸
¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú
Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü
ý þ ÿ ¡ £ ¥ § © « ­ ¯ ± ³ µ · ¹ » ½ ¿ Á Ã Å Ç É Ë Í Ï Ó Õ × Ú Ü Þ à
â ä æ è ë í ï ñ ó õ ÷ ù û ý ÿ ¡ £ ¥ § © « ­ ¯ ± ³ µ · º ¼ ¾ ¬ ­ ® ¯
± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Û Ý ß á ã
å ç é ë í ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë
ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ ¡ £ ¥ § © « ­ ¯ ± ³ µ · ¹ »
½ ¿ Á Í Ï Ñ Ó Õ × Ù Û Ý ß á ã å ç é ë í ï ñ ó õ ÷ ù û ý ÿ ¢ ¤ ¨ ¬ ±
³ µ · ¹ » ½ ¿ Á Ã Å Ç É Ë Í Ï Ñ Ó Õ Ù Á Ã Å Ç É Ë Í Ï Ñ Ó Õ × Ù Û Ý
ß á ã å ç é ë í ï ñ ó õ ÷ ù û ý ÿ ¡ £ ¥ § © « ­ ¯ ± ³ µ · ¹ » ½ ¿ Á
Ã Å Ç É Ë Í Ï Ñ Ó Õ × Ù Û Ý ß á ã å ç é ë í ï ñ ó õ ¡ £ ¥ § © « ­ ¯
± ³ µ · ¹ » ½ ¿ Á Ã Å Ç É Ë Í Ï Ñ Ó Õ × Ù Û Ý ß á ã å ç é ë í ï ñ ó
õ ÷ ù   ¡ ¢ £ ¤ ¥ ¦ § ° ± ² ³ ´ µ ¶ · À Á Â Ã Ä Å Æ Ç Ð Ñ Ò Ó Ô Õ Ö
× à á â ã ä å æ ç ñ ó õ ÷   ¡ ¢ £ ¤ ¥ ¦ § ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼
½ À Á Â Ã Ä Å Æ Ç Ð Ñ Ò Ó Ô Õ Ö × à á â ã ä å æ ç ð ñ ó £ ° ± À Á Å
Ó

Actually, it might be a little bit too fully populated, since things
like insert seem to be affected, and that isn't so nice.

For concreteness, here is the code plus Kevin's suggested revision,
but as noted above beware!

;;; caps-mode.el -- (minor mode) letters are inserted capitalized

;; Copyright (C) 2004 Joe Corneli <address@hidden>,
;; Christoph Conrad <address@hidden>, Kevin Rodgers
;; <address@hidden>, Kim F. Storm <address@hidden>

;; Time-stamp: <jac -- Mon Oct  4 22:41:18 CDT 2004>

;; This file is not part of GNU Emacs, but it is distributed under
;; the same terms as GNU Emacs.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published
;; by the Free Software Foundation; either version 2, or (at your
;; option) any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Commentary:

;; This is a simple minor mode in which all letters are inserted in
;; captialized form.  We're working on fixing it so that it works for
;; Latin-1 as well as ASCII.

;; Note that this mode has absolutely nothing to do with the toggle
;; state of your capslock.

;;; Code:

(defun caps-mode-self-insert-command (&optional n)
  "Like `self-insert-command', but uppercase the the typed character."
  (interactive "p")
  (insert-char (upcase last-command-char) n))

(defvar caps-mode-map
  (let ((map (make-sparse-keymap)))
    (mapc (lambda (char)
            (define-key
              map
              (char-to-string char)
              'caps-mode-self-insert-command))
          (let ((lowercase-letters '()))
            (map-char-table (lambda (key value)
                              (if (and (char-valid-p key)
                                       (equal (char-syntax key) ?w)
                                       (not (equal (upcase key) key)))
                                  (setq lowercase-letters (cons key 
lowercase-letters))))
                            text-mode-syntax-table)
            (nreverse lowercase-letters)))
    map))

(define-minor-mode caps-mode
  "Toggle caps mode.
With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode.

When caps mode is enabled, all letters are inserted in their
capitalized form."
  :init-value nil
  :lighter " Caps")

;;; caps-mode.el ends here




reply via email to

[Prev in Thread] Current Thread [Next in Thread]