;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\306\301&\210\310\316\317\320\314\315\306\301&\210\310\321\322\323\314\324\306\301&\210\310\325\326\327\314\315\306\301&\210\310\330\331\332\314\315\306\301&\210\310\333\334\335\314\315\306\301&\207" [custom-declare-group lisp-mnt nil "Utility functions for Emacs Lisp maintainers." :prefix "lm-" :group maint custom-declare-variable lm-header-prefix "^;+[ ]+\\(@(#)\\)?[ ]*\\$?" "Prefix that is ignored before the tag.\nFor example, you can write the 1st line synopsis string and headers like this\nin your Lisp package:\n\n ;; @(#) package.el -- package description\n ;;\n ;; @(#) $Maintainer: Person Foo Bar $\n\nThe @(#) construct is used by unix what(1) and\nthen $identifier: doc string $ is used by GNU ident(1)" :type regexp lm-copyright-prefix "^\\(;+[ ]\\)+Copyright (C) " "Prefix that is ignored before the dates in a copyright.\nLeading comment characters and whitespace should be in regexp group 1." lm-comment-column 16 "Column used for placing formatted output." integer lm-any-header ".*" "Regexp which matches start of any section." lm-commentary-header "Commentary\\|Documentation" "Regexp which matches start of documentation section." lm-history-header "Change ?Log\\|History" "Regexp which matches the start of code log section."] 8)
#@122 Return regexp for matching HEADER.
If called with optional MODE and with value `section',
return section regexp instead.
(defalias 'lm-get-header-re #[(header &optional mode) "\303=\203 \304 \305Q\207\n\306 \307R\207" [mode header lm-header-prefix section "^;;;;* \\(" "\\):[ ]*$" "\\(" "\\)[ ]*:[ ]*"] 4 (#$ . 1755)])
#@51 Return package name by looking at the first line.
(defalias 'lm-get-package-name #[nil "\212eb\210\301\260!\205 \302\225b\210\301\303!\210\304\225\205 \305\304!)\207" [lm-header-prefix looking-at 0 "\\([^ ]+\\)" 1 match-string-no-properties] 2 (#$ . 2085)])
#@222 Return the buffer location of a given section start marker.
The HEADER is the section mark string to search for.
If AFTER is non-nil, return the location of the next line.
If the given section does not exist, return nil.
(defalias 'lm-section-start #[(header &optional after) "\212\303eb\210\304\305 \306\"\307\303#\205 \310\n\205 \311!*\207" [case-fold-search header after t re-search-forward lm-get-header-re section nil line-beginning-position 2] 4 (#$ . 2355)])
(defalias 'lm-section-mark 'lm-section-start)
#@380 Return the buffer location of the end of a given section.
The HEADER is the section string marking the beginning of the
section. If the given section does not exist, return nil.
The section ends before the first non-comment text or the next
section of the same level or lower; whatever comes first. The
function `lisp-outline-level' is used to compute the level of
a section.
(defalias 'lm-section-end #[(header) "\306\307!\210\310!\211\205W \212 b\210\311 \312\313\314\315!\210\316\317
\320\"\313\312#\211\2034 \212\314 \210\311 )\fV\204 \n\203J \314\321!\210\322\323!\204F \314\315!\210`\202K d b\210\324\325!\204N `^,)\207" [header start next-section-found case-fold-search level lm-any-header require outline lm-section-start lisp-outline-level t nil beginning-of-line 2 re-search-forward lm-get-header-re section 0 looking-at "\f" forward-comment 1] 5 (#$ . 2877)])
#@56 Return the buffer location of the `Code' start marker.
(defalias 'lm-code-start #[nil "\300\301!\207" [lm-section-start "Code"] 2 (#$ . 3764)])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put lm-code-start byte-optimizer byte-compile-inline-expand defalias lm-code-mark] 4)
#@62 Return the buffer location of the `Commentary' start marker.
(defalias 'lm-commentary-start #[nil "\301!\207" [lm-commentary-header lm-section-start] 2 (#$ . 4054)])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put lm-commentary-start byte-optimizer byte-compile-inline-expand defalias lm-commentary-mark] 4)
#@61 Return the buffer location of the `Commentary' section end.
(defalias 'lm-commentary-end #[nil "\301!\207" [lm-commentary-header lm-section-end] 2 (#$ . 4379)])
(put 'lm-commentary-end 'byte-optimizer 'byte-compile-inline-expand)
#@59 Return the buffer location of the `History' start marker.
(defalias 'lm-history-start #[nil "\301!\207" [lm-history-header lm-section-start] 2 (#$ . 4616)])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put lm-history-start byte-optimizer byte-compile-inline-expand defalias lm-history-mark] 4)
#@53 Return the buffer location of the `Copyright' line.
(defalias 'lm-copyright-mark #[nil "\212\302eb\210\303 \304\302#\205 `*\207" [case-fold-search lm-copyright-prefix t re-search-forward nil] 4 (#$ . 4926)])
(put 'lm-copyright-mark 'byte-optimizer 'byte-compile-inline-expand)
#@49 Return the contents of the header named HEADER.
(defalias 'lm-header #[(header) "eb\210\302\303\304 !\305 \302#\205+ \306\212\307\310\224x\210`\310\224U)\203# \311\202$ \312!\205+ \313\310!)\207" [case-fold-search header t re-search-forward lm-get-header-re lm-code-mark looking-at "^$" 0 "[^\n]+" "[^$\n]+" match-string-no-properties] 4 (#$ . 5211)])
#@129 Return the contents of the header named HEADER, with continuation lines.
The returned value is a list of strings, one per line.
(defalias 'lm-header-multiline #[(header) "\212eb\210\302!\211\203$ C\303y\210\304\305!\203$ \306\307! B\303y\210\202 \237*\207" [header res lm-header 1 looking-at "^;+\\( \\|[ ]\\{2,\\}\\)\\(.+\\)" match-string-no-properties 2] 3 (#$ . 5571)])
#@111 Execute BODY in a buffer containing the contents of FILE.
If FILE is nil, execute BODY in the current buffer.
(defalias 'lm-with-file '(macro . #[(file &rest body) "\303\304!\305 DC\306\307\310D\311\nBBB\312\313\314\315\316\317\nBBFDFE)\207" [filesym file body make-symbol "file" let if with-temp-buffer insert-file-contents (emacs-lisp-mode) save-excursion save-restriction (widen) (goto-char (point-min)) with-syntax-table emacs-lisp-mode-syntax-table] 12 (#$ . 5959)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put lm-with-file lisp-indent-function 1 put edebug-form-spec t] 5)
#@162 Return the copyright holder, and a list of copyright years.
Use the current buffer if FILE is nil.
Return argument is of the form ("HOLDER" "YEAR1" ... "YEARN")
(defalias 'lm-crack-copyright #[(&optional file) "\211\203\302 \306\307!r\nq\210\310\216\311 !\210\312 \210\212\313eb\210\314\f\315\313#\205& |