(undigestify-rmail-message): Better error messages.
[bpt/emacs.git] / lisp / electric.el
index 775c7b2..39d690f 100644 (file)
@@ -1,13 +1,16 @@
 ;;; electric.el --- window maker and Command loop for `electric' modes.
 
 ;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
-;; Principal author K. Shane Hartman
+
+;; Author: K. Shane Hartman
+;; Maintainer: FSF
+;; Keywords: extensions
 
 ;; This file is part of 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 1, or (at your option)
+;; 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,
 ;; along with GNU Emacs; see the file COPYING.  If not, write to
 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
+;;; Commentary:
 
 ; zaaaaaaap
 
-;; perhaps this should be in subr.el...
-(defun shrink-window-if-larger-than-buffer (window)
-  (save-excursion
-    (set-buffer (window-buffer window))
-    (let ((w (selected-window)) ;save-window-excursion can't win
-         (buffer-file-name buffer-file-name)
-         (p (point))
-         (n 0)
-         (window-min-height 0)
-         (buffer-read-only nil)
-         (modified (buffer-modified-p))
-         (buffer (current-buffer)))
-      (unwind-protect
-         (progn
-           (select-window window)
-           (goto-char (point-min))
-           (while (pos-visible-in-window-p (point-max))
-             ;; defeat file locking... don't try this at home, kids!
-             (setq buffer-file-name nil)
-             (insert ?\n) (setq n (1+ n)))
-           (if (> n 0) (shrink-window (1- n))))
-       (delete-region (point-min) (point))
-       (set-buffer-modified-p modified)
-       (goto-char p)
-       (select-window w)
-       ;; Make sure we unbind buffer-read-only
-       ;; with the proper current buffer.
-       (set-buffer buffer)))))
-      
+;;; Code:
+
 ;; This loop is the guts for non-standard modes which retain control
 ;; until some event occurs.  It is a `do-forever', the only way out is to
 ;; throw.  It assumes that you have set up the keymap, window, and
@@ -81,8 +58,8 @@
            this-command (key-binding cmd)
            cmd this-command)
       (if (or (prog1 quit-flag (setq quit-flag nil))
-             (= last-input-char ?\C-g))
-         (progn (setq unread-command-char -1
+             (eq last-input-char ?\C-g))
+         (progn (setq unread-command-events nil
                       prefix-arg nil)
                 ;; If it wasn't cancelling a prefix character, then quit.
                 (if (or (= (length (this-command-keys)) 1)
@@ -97,8 +74,8 @@
              (progn (command-execute cmd)
                     (setq last-command this-command)
                     (if (or (prog1 quit-flag (setq quit-flag nil))
-                            (= last-input-char ?\C-g))
-                        (progn (setq unread-command-char -1)
+                            (eq last-input-char ?\C-g))
+                        (progn (setq unread-command-events nil)
                                (if (not inhibit-quit)
                                    (progn (ding)
                                           (message "Quit")
 ;;     Switch to buffer in the current window.
 ;;
 ;; Then if max-height is nil, and not all of the lines in the buffer
-;; are displayed, grab the whole screen.
+;; are displayed, grab the whole frame.
 ;;
 ;; Returns selected window on buffer positioned at point-min.
 
 
 (provide 'electric)
 
-; electric.el ends here
+;;; electric.el ends here