emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/makesum.el [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/makesum.el [lexbind]
Date: Tue, 14 Oct 2003 19:52:10 -0400

Index: emacs/lisp/makesum.el
diff -c /dev/null emacs/lisp/makesum.el:1.10.18.1
*** /dev/null   Tue Oct 14 19:52:10 2003
--- emacs/lisp/makesum.el       Tue Oct 14 19:51:17 2003
***************
*** 0 ****
--- 1,117 ----
+ ;;; makesum.el --- generate key binding summary for Emacs
+ 
+ ;; Copyright (C) 1985 Free Software Foundation, Inc.
+ 
+ ;; Maintainer: FSF
+ ;; Keywords: help
+ 
+ ;; 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 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:
+ 
+ ;; Displays a nice human-readable summary of all keybindings in a
+ ;; two-column format.
+ 
+ ;;; Code:
+ 
+ ;;;###autoload
+ (defun make-command-summary ()
+   "Make a summary of current key bindings in the buffer *Summary*.
+ Previous contents of that buffer are killed first."
+   (interactive)
+   (message "Making command summary...")
+   ;; This puts a description of bindings in a buffer called *Help*.
+   (save-window-excursion
+    (describe-bindings))
+   (with-output-to-temp-buffer "*Summary*"
+     (save-excursion
+      (let ((cur-mode mode-name))
+        (set-buffer standard-output)
+        (erase-buffer)
+        (insert-buffer-substring "*Help*")
+        (goto-char (point-min))
+        (delete-region (point) (progn (forward-line 1) (point)))
+        (while (search-forward "         " nil t)
+        (replace-match "  "))
+        (goto-char (point-min))
+        (while (search-forward "-@ " nil t)
+        (replace-match "-SP"))
+        (goto-char (point-min))
+        (while (search-forward "  .. ~ " nil t)
+        (replace-match "SP .. ~"))
+        (goto-char (point-min))
+        (while (search-forward "C-?" nil t)
+        (replace-match "DEL"))
+        (goto-char (point-min))
+        (while (search-forward "C-i" nil t)
+        (replace-match "TAB"))
+        (goto-char (point-min))
+        (if (re-search-forward "^Local Bindings:" nil t)
+          (progn
+           (forward-char -1)
+           (insert " for " cur-mode " Mode")
+           (while (search-forward "??\n" nil t)
+             (delete-region (point)
+                            (progn
+                             (forward-line -1)
+                             (point))))))
+        (goto-char (point-min))
+        (insert "Emacs command summary, " (substring (current-time-string) 0 
10)
+              ".\n")
+        ;; Delete "key    binding" and underlining of dashes.
+        (delete-region (point) (progn (forward-line 2) (point)))
+        (forward-line 1)                       ;Skip blank line
+        (while (not (eobp))
+        (let ((beg (point)))
+          (or (re-search-forward "^$" nil t)
+              (goto-char (point-max)))
+          (double-column beg (point))
+          (forward-line 1)))
+        (goto-char (point-min)))))
+   (message "Making command summary...done"))
+ 
+ (defun double-column (start end)
+   (interactive "r")
+   (let (half cnt
+         line lines nlines
+       (from-end (- (point-max) end)))
+     (setq nlines (count-lines start end))
+     (if (<= nlines 1)
+       nil
+       (setq half (/ (1+ nlines) 2))
+       (goto-char start)
+       (save-excursion
+        (forward-line half)
+        (while (< half nlines)
+        (setq half (1+ half))
+        (setq line (buffer-substring (point) (save-excursion (end-of-line) 
(point))))
+        (setq lines (cons line lines))
+        (delete-region (point) (progn (forward-line 1) (point)))))
+       (setq lines (nreverse lines))
+       (while lines
+       (end-of-line)
+       (indent-to 41)
+       (insert (car lines))
+       (forward-line 1)
+       (setq lines (cdr lines))))
+     (goto-char (- (point-max) from-end))))
+ 
+ (provide 'makesum)
+ 
+ ;;; arch-tag: c2383336-fc89-46ad-8110-ded42bffaee3
+ ;;; makesum.el ends here




reply via email to

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