]> code.delx.au - gnu-emacs/blobdiff - lisp/elide-head.el
; Revert "Use eldoc-documentation-functions"
[gnu-emacs] / lisp / elide-head.el
index db26eb8f9ea30d30c8064c768e8599bc7ad61328..917e813d65cc73da5da7286df9934cd0f3b332c2 100644 (file)
@@ -1,16 +1,16 @@
-;;; elid-head.el --- hide headers in files
+;;; elide-head.el --- hide headers in files
 
-;; Copyright (C) 1999 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001-2016 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: outlines tools
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; 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.
+;; the Free Software Foundation, either version 3 of the License, 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
@@ -18,9 +18,7 @@
 ;; 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.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 ;; `elide-head'.  A buffer-local invisible overlay manages the
 ;; elision.
 
-;; Please don't turn this on in site init files so that information
-;; isn't hidden from users who may not know what it says.
+;; You might add `elide-head' to appropriate major mode hooks or to
+;; `find-file-hook'.  Please do not do this in site init files.  If
+;; you do, information may be hidden from users who don't know it
+;; already.
+
+;; Note that `hs-minor-mode' will do a similar job by default, but
+;; it's not selective about what leading commentary it hides.
 
 ;; Inspired by jwz's hide-copyleft.el, for which we don't have an
 ;; assignment.
 
 (defgroup elide-head nil
   "Eliding copyright headers and the like in source files."
+  :version "21.1"
   :prefix "elide-head"
   :group 'tools)
 
 (defcustom elide-head-headers-to-hide
-  '(("is free software; you can redistribute it" . ; GNU boilerplate
-     "Boston, MA 02111-1307, USA\\.")
+  '(("is free software[:;] you can redistribute it" . ; GNU boilerplate
+     "\\(Boston, MA 0211\\(1-1307\\|0-1301\\), USA\\|\
+If not, see <http://www\\.gnu\\.org/licenses/>\\)\\.")
     ("The Regents of the University of California\\.  All rights reserved\\." .
-     "SUCH DAMAGE\\.")                 ; BSD
+     "SUCH DAMAGE\\.")                               ; BSD
     ("Permission is hereby granted, free of charge" . ; X11
      "authorization from the X Consortium\\."))
   "Alist of regexps defining start end end of text to elide.
@@ -72,7 +77,7 @@ cdr."
 The header is made invisible with an overlay.  With a prefix arg, show
 an elided material again.
 
-This is suitable as an entry on `find-file-hooks' or appropriate mode hooks."
+This is suitable as an entry on `find-file-hook' or appropriate mode hooks."
   (interactive "P")
   (if arg
       (elide-head-show)
@@ -87,19 +92,19 @@ This is suitable as an entry on `find-file-hooks' or appropriate mode hooks."
              (when (re-search-forward (caar rest) nil t)
                (setq beg (point))
                (when (re-search-forward (cdar rest) nil t)
-                 (setq end (point)
+                 (setq end (point-marker)
                        rest nil))))
            (if rest (setq rest (cdr rest))))
          (if (not (and beg end))
-             (if (interactive-p)
-                 (error "No header found"))
+             (if (called-interactively-p 'interactive)
+                 (message "No header found"))
            (goto-char beg)
            (end-of-line)
            (if (overlayp elide-head-overlay)
-               (move-overlay elide-head-overlay (point) end)
-             (setq elide-head-overlay (make-overlay (point) end)))
+               (move-overlay elide-head-overlay (point-marker) end)
+             (setq elide-head-overlay (make-overlay (point-marker) end)))
            (overlay-put elide-head-overlay 'invisible t)
-           (overlay-put elide-head-overlay 'intangible t)
+           (overlay-put elide-head-overlay 'evaporate t)
            (overlay-put elide-head-overlay 'after-string "...")))))))
 
 (defun elide-head-show ()
@@ -108,8 +113,8 @@ This is suitable as an entry on `find-file-hooks' or appropriate mode hooks."
   (if (and (overlayp elide-head-overlay)
           (overlay-buffer elide-head-overlay))
       (delete-overlay elide-head-overlay)
-    (if (interactive-p)
-       (error "No header hidden"))))
+    (if (called-interactively-p 'interactive)
+       (message "No header hidden"))))
 
 (provide 'elide-head)