unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Joe Corneli <jcorneli@math.utexas.edu>
Subject: Re: All-caps
Date: Sat, 11 Sep 2004 20:59:15 -0500	[thread overview]
Message-ID: <E1C6Je7-0003Ox-00@lab57.ma.utexas.edu> (raw)


    > I'm writing a major mode for building FOCUS reports for our S/390.  I'd
    > like to make all user input upper-case without using the caps-lock key.
    > Does anybody know a good way to do this short of re-mapping all of the
    > lowercase letters to their uppercase equivalents?
   
   No, that's the best way to do it.  But you can just use Joe
   Cornell's caps-mode.el minor mode, posted to gnu.emacs.sources
   last month (and consider using the suggestions posted by me and
   Kim Storm in followup messages).

Thanks for the suggestions and the ping Kevin.  BTW, its "CORNELI"
:). Here is a revised version of the mode, incorporating everyone's
nice suggestions and one additional fix, and giving credit to all.

Tested GNU Emacs 21.3.1 (i386-pc-linux-gnu, X toolkit) of 2003-10-31
on raven, modified by Debian

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

;; Copyright (C) 2004 Joe Corneli <jcorneli@math.utexas.edu>,
;; Christoph Conrad <nospam@spamgourmet.com>, Kevin Rodgers
;; <ihs_4664@yahoo.com>, Kim F. Storm <no-spam@cua.dk>

;; Time-stamp: <jac -- Sat Aug  7 13:05:16 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.  I haven't bothered with letters outside of
;; 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 upcase 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))
           "abcdefghijklmnopqrstuvwxyz")
     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	other threads:[~2004-09-12  1:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-12  1:59 Joe Corneli [this message]
     [not found] <mailman.2174.1094749269.1998.help-gnu-emacs@gnu.org>
2004-09-10 17:12 ` All-caps Kevin Rodgers
2004-09-13 18:28 ` All-caps Karl Eichwalder
  -- strict thread matches above, loose matches on Subject: below --
2004-09-09 16:55 All-caps Dan Boitnott

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=E1C6Je7-0003Ox-00@lab57.ma.utexas.edu \
    --to=jcorneli@math.utexas.edu \
    /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.
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).