%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/emacs-lisp/ |
Current File : //usr/local/share/emacs/27.2/lisp/emacs-lisp/lisp-mnt.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; 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\314DD\315\316\317%\210\310\320\312\313\321DD\322\316\317%\210\310\323\312\313\324DD\325\316\326%\210\310\327\312\313\330DD\331\316\317%\210\310\332\312\313\333DD\334\316\317%\210\310\335\312\313\336DD\337\316\317%\207" [custom-declare-group lisp-mnt nil "Utility functions for Emacs Lisp maintainers." :prefix "lm-" :group maint custom-declare-variable lm-header-prefix funcall function #[0 "\300\207" [#1="^;+[ ]+\\(@(#)\\)?[ ]*\\$?"] 1 #1#] "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 #[0 "\300\207" [#2="^\\(;+[ ]\\)+Copyright (C) "] 1 #2#] "Prefix that is ignored before the dates in a copyright.\nLeading comment characters and whitespace should be in regexp group 1." lm-comment-column #[0 "\300\207" [16] 1] "Column used for placing formatted output." integer lm-any-header #[0 "\300\207" [#3=".*"] 1 #3#] "Regexp which matches start of any section." lm-commentary-header #[0 "\300\207" [#4="Commentary\\|Documentation"] 1 #4#] "Regexp which matches start of documentation section." lm-history-header #[0 "\300\207" [#5="Change ?Log\\|History"] 1 #5#] "Regexp which matches the start of code log section."] 8) #@150 Return regexp for matching HEADER. If called with optional MODE and with value `section', return section regexp instead. (fn HEADER &optional MODE) (defalias 'lm-get-header-re #[513 "\211\301=\203 \302\303Q\207\304\305R\207" [lm-header-prefix section "^;;;;* \\(" "\\):[ ]*$" "\\(" "\\)[ ]*:[ ]*"] 6 (#$ . 1933)]) #@51 Return package name by looking at the first line. (defalias 'lm-get-package-name #[0 "\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 (#$ . 2261)]) #@251 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. (fn HEADER &optional AFTER) (defalias 'lm-section-start #[513 "\212\301eb\210\302\303\304\"\305\301#\205 \306\205 \307!*\207" [case-fold-search t re-search-forward lm-get-header-re section nil line-beginning-position 2] 6 (#$ . 2529)]) (defalias 'lm-section-mark 'lm-section-start) #@393 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. (fn HEADER) (defalias 'lm-section-end #[257 "\302\303!\210\304!\211\205Y \212\211b\210\305 \306\307\310\311!\210\312\313 \314\"\307\306#\211\262\2033 \212\310 \210\305 )V\204 \211\203I \310\315!\210\316\317!\204E \310\311!\210`\202J db\210\320\321!\204M `^)\266\203)\207" [case-fold-search 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] 9 (#$ . 3045)]) #@56 Return the buffer location of the `Code' start marker. (defalias 'lm-code-start #[0 "\300\301!\207" [lm-section-start "Code"] 2 (#$ . 3916)]) (defalias 'lm-code-mark 'lm-code-start) #@62 Return the buffer location of the `Commentary' start marker. (defalias 'lm-commentary-start #[0 "\301!\207" [lm-commentary-header lm-section-start] 2 (#$ . 4104)]) (defalias 'lm-commentary-mark 'lm-commentary-start) #@61 Return the buffer location of the `Commentary' section end. (defalias 'lm-commentary-end #[0 "\301!\207" [lm-commentary-header lm-section-end] 2 (#$ . 4327)]) #@59 Return the buffer location of the `History' start marker. (defalias 'lm-history-start #[0 "\301!\207" [lm-history-header lm-section-start] 2 (#$ . 4493)]) (defalias 'lm-history-mark 'lm-history-start) #@53 Return the buffer location of the `Copyright' line. (defalias 'lm-copyright-mark #[0 "\212\302eb\210\303 \304\302#\205 `*\207" [case-fold-search lm-copyright-prefix t re-search-forward nil] 4 (#$ . 4701)]) #@62 Return the contents of the header named HEADER. (fn HEADER) (defalias 'lm-header #[257 "eb\210\301\302\303!\304 \301#\205+ \305\212\306\307\224x\210`\307\224U)\203# \310\202$ \311!\205+ \312\307!)\207" [case-fold-search t re-search-forward lm-get-header-re lm-code-mark looking-at "^$" 0 "[^\n]+" "[^$\n]+" match-string-no-properties] 5 (#$ . 4915)]) #@142 Return the contents of the header named HEADER, with continuation lines. The returned value is a list of strings, one per line. (fn HEADER) (defalias 'lm-header-multiline #[257 "\212eb\210\300!\211\203% \211C\262\301y\210\302\303!\203% \304\305!B\262\301y\210\202 \211\237\262)\207" [lm-header 1 looking-at "^;+\\( \\|[ ]\\{2,\\}\\)\\(.+\\)" match-string-no-properties 2] 4 (#$ . 5276)]) #@133 Execute BODY in a buffer containing the contents of FILE. If FILE is nil, execute BODY in the current buffer. (fn FILE &rest BODY) (defalias 'lm-with-file '(macro . #[385 "\300\301!\302DC\303\304\305D\306BBB\307\310\311\312\313\314\fBBFDFE\207" [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] 15 (#$ . 5679)])) (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) #@183 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") (fn &optional FILE) (defalias 'lm-crack-copyright #[256 "\211\211\203\271 \302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210\314 \210\315 b\210\316\211`\317 \212\320\312!\210\321\322!\320 \210\323!\203J \323!\204J \317 \262\320\312!\210\2023 \210)p\302\303!r\211q\210\304\305\306\307\310!\324\"\312$\216\325#\210eb\210\326\327\316\330#\203x \331\332!\210\202i eb\210\326\333\316\330#\203\212 \331\334!\210\202{ eb\210\326\335\316\330#\203\237 \321\322!B\262\202\215 \323\336!\203\252 \321\305!\262*\266\237B\266\204*\262\202n\212\214~\210eb\210\337 p\304\305\340\307\310\"\341\"\312$\216\342 !\210\315 b\210\316\211`\317 \212\320\312!\210\321\322!\320 \210\323!\203\323!\204\317 \262\320\312!\210\202\352 \210)p\302\303!r\211q\210\304\305\306\307\310!\343\"\312$\216\325#\210eb\210\326\327\316\330#\203/\331\332!\210\202 eb\210\326\333\316\330#\203A\331\334!\210\2022eb\210\326\335\316\330#\203V\321\322!B\262\202D\323\336!\203a\321\305!\262*\266\237B\266\204)\266\202*\207" [lm-copyright-prefix emacs-lisp-mode-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents emacs-lisp-mode lm-copyright-mark nil line-end-position beginning-of-line match-string-no-properties 1 looking-at [buffer-name kill-buffer] insert-buffer-substring re-search-forward "^;+[ ]+" t replace-match "" " *\n" " " "\\([0-9]+\\),? +" ".*$" syntax-table "r\301q\210\302\300!)\207" [set-syntax-table] set-syntax-table [buffer-name kill-buffer]] 16 (#$ . 6282)]) #@98 Return the one-line summary of file FILE, or current buffer if FILE is nil. (fn &optional FILE) (defalias 'lm-summary #[256 "\211\211\203N \302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210\314 \210eb\210\315!\205H \305\225b\210\315\316!\205H \317\320!\321\322\"\203E \323\305\211\224#\202F \211\262*\262\202\230 \212\214~\210eb\210\324 p\304\305\325\307\310\"\326\"\312$\216\327 !\210eb\210\315!\205\224 \305\225b\210\315\316!\205\224 \317\320!\321\322\"\203\221 \323\305\211\224#\202\222 \211\262)\266\202*\207" [lm-header-prefix emacs-lisp-mode-syntax-table generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205 \302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents emacs-lisp-mode looking-at "[^ ]+[ ]+--+[ ]+\\(.*\\)" match-string-no-properties 1 string-match "[ ]*-\\*-.*-\\*-" substring syntax-table "r\301q\210\302\300!)\207" [set-syntax-table] set-syntax-table] 11 (#$ . 8044)]) #@130 Split up an email address X into full name and real email address. The value is a cons of the form (FULLNAME . ADDRESS). (fn X) (defalias 'lm-crack-address #[257 "\300\301\"\203 \302\303\"\302\304\"B\207\300\305\"\203\"