X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/af372af632bb21749e858350200e13b3e9c10057..6dc0bafd5915b01a341cc0efbc744abd73163872:/lisp/elide-head.el diff --git a/lisp/elide-head.el b/lisp/elide-head.el index db26eb8f9e..917e813d65 100644 --- a/lisp/elide-head.el +++ b/lisp/elide-head.el @@ -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 ;; 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 . ;;; Commentary: @@ -32,8 +30,13 @@ ;; `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. @@ -42,14 +45,16 @@ (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 \\)\\.") ("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)