;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:48:24 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/add-log.el
;;; in Emacs version 23.4.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.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(custom-declare-group 'change-log nil "Change log maintenance." :group 'tools :link '(custom-manual "(emacs)Change Log") :prefix "change-log-" :prefix "add-log-")
#@56 Name of a change log file for \[add-change-log-entry].
(custom-declare-variable 'change-log-default-name 'nil '(#$ . 700) :type '(choice (const :tag "default" nil) string) :group 'change-log)
(put 'change-log-default-name 'safe-local-variable 'string-or-null-p)
#@39 Normal hook run by `change-log-mode'.
(custom-declare-variable 'change-log-mode-hook 'nil '(#$ . 968) :type 'hook :group 'change-log)
#@199 If non-nil, function to guess name of surrounding function.
It is used by `add-log-current-defun' in preference to built-in rules.
Returns function's name as a string, or nil if outside a function.
(custom-declare-variable 'add-log-current-defun-function 'nil '(#$ . 1109) :type '(choice (const nil) function) :group 'change-log)
#@132 Full name of user, for inclusion in ChangeLog daily headers.
This defaults to the value returned by the function `user-full-name'.
(custom-declare-variable 'add-log-full-name 'nil '(#$ . 1446) :type '(choice (const :tag "Default" nil) string) :group 'change-log)
#@322 Email addresses of user, for inclusion in ChangeLog headers.
This defaults to the value of `user-mail-address'.  In addition to
being a simple string, this value can also be a list.  All elements
will be recognized as referring to the same user; when creating a new
ChangeLog entry, one element will be chosen at random.
(custom-declare-variable 'add-log-mailing-address 'nil '(#$ . 1716) :type '(choice (const :tag "Default" nil) (string :tag "String") (repeat :tag "List of Strings" string)) :group 'change-log)
#@187 Function that defines the time format.
For example, `add-log-iso8601-time-string', which gives the
date in international ISO 8601 format,
and `current-time-string' are two valid values.
(custom-declare-variable 'add-log-time-format ''add-log-iso8601-time-string '(#$ . 2237) :type '(radio (const :tag "International ISO 8601 format" add-log-iso8601-time-string) (const :tag "Old format, as returned by `current-time-string'" current-time-string) (function :tag "Other")) :group 'change-log)
#@730 If non-nil, normally keep day's log entries for one file together.

Log entries for a given file made with \[add-change-log-entry] or
\[add-change-log-entry-other-window] will only be added to others for that file made
today if this variable is non-nil or that file comes first in today's
entries.  Otherwise another entry for that file will be started.  An
original log:

	* foo (...): ...
	* bar (...): change 1

in the latter case, \[add-change-log-entry-other-window] in a buffer visiting `bar', yields:

	* bar (...): -!-
	* foo (...): ...
	* bar (...): change 1

and in the former:

	* foo (...): ...
	* bar (...): change 1
	(...): -!-

The NEW-ENTRY arg to `add-change-log-entry' can override the effect of
this variable.
(custom-declare-variable 'add-log-keep-changes-together 'nil '(#$ . 2735) :version "20.3" :type 'boolean :group 'change-log)
#@68 If non-nil, `add-change-log-entry' will always start a new record.
(custom-declare-variable 'add-log-always-start-new-record 'nil '(#$ . 3595) :version "22.1" :type 'boolean :group 'change-log)
#@174 If non-nil, function to call to identify the full filename of a buffer.
This function is called with no argument.  If this is nil, the default is to
use `buffer-file-name'.
(custom-declare-variable 'add-log-buffer-file-name-function 'nil '(#$ . 3796) :type '(choice (const nil) function) :group 'change-log)
#@283 If non-nil, function to call to identify the filename for a ChangeLog entry.
This function is called with one argument, the value of variable
`buffer-file-name' in that buffer.  If this is nil, the default is to
use the file's name relative to the directory of the change log file.
(custom-declare-variable 'add-log-file-name-function 'nil '(#$ . 4111) :type '(choice (const nil) function) :group 'change-log)
#@64 If non-nil, enable recording version numbers with the changes.
(custom-declare-variable 'change-log-version-info-enabled 'nil '(#$ . 4527) :version "21.1" :type 'boolean :group 'change-log)
#@163 List of regexps to search for version number.
The version number must be in group 1.
Note: The search is conducted only within 10%, at the beginning of the file.
(custom-declare-variable 'change-log-version-number-regexp-list '(let ((re "\\([0-9]+.[0-9.]+\\)")) (list (concat "^(def[^ 	\n]+[ 	]+[^ 	\n][ 	]\"" re) (concat "^;+ *Revision: +[^ 	\n]+[ 	]+" re))) '(#$ . 4724) :version "21.1" :type '(repeat regexp) :group 'change-log)
(byte-code "\301\302\303\304\305\306\307\310&\210\311\312\313\302#\210\311\312\314\315\316!\206 \317#\210\301\320\321\322\305\306\307\310&\210\311\323\313\320#\210\311\323\314\315\316!\2068 \317#\210\301\324\325\326\305\306\307\310&\210\311\327\313\324#\210\311\327\314\315\316!\206U \317#\210\301\330\331\332\305\306\307\310&\210\311\333\313\330#\210\311\333\314\315\316!\206r \317#\210\301\334\335\336\305\306\307\310&\210\311\337\313\334#\210\311\337\314\315\316!\206\217 \317#\210\301\340\341\342\305\306\307\310&\210\311\343\313\340#\210\311\343\314\315\316!\206\254 \317#\210\301\344\345\346\305\306\307\310&\210\311\347\313\344#\210\311\347\314\315\316!\206\311 \317#\210\301\350\351\352\305\306\307\310&\210\311\353\313\350#\210\311\353\314\315\316!\206\346 \317#\210\354B\355\356!\210\357B\360\361!\207" [current-load-list custom-declare-face change-log-date ((t (:inherit font-lock-string-face))) "Face used to highlight dates in date lines." :version "21.1" :group change-log put change-log-date-face face-alias obsolete-face purecopy "22.1" t change-log-name ((t (:inherit font-lock-constant-face))) "Face for highlighting author names." change-log-name-face change-log-email ((t (:inherit font-lock-variable-name-face))) "Face for highlighting author email addresses." change-log-email-face change-log-file ((t (:inherit font-lock-function-name-face))) "Face for highlighting file names." change-log-file-face change-log-list ((t (:inherit font-lock-keyword-face))) "Face for highlighting parenthesized lists of functions or variables." change-log-list-face change-log-conditionals ((t (:inherit font-lock-variable-name-face))) "Face for highlighting conditionals of the form `[...]'." change-log-conditionals-face change-log-function ((t (:inherit font-lock-variable-name-face))) "Face for highlighting items of the form `<....>'." change-log-function-face change-log-acknowledgement ((t (:inherit font-lock-comment-face))) "Face for highlighting acknowledgments." change-log-acknowledgement-face change-log-file-names-re (lambda (#1=#:defconst-tmp-var) (defconst change-log-file-names-re #1#)) "^\\( +\\|	\\)\\* \\([^ ,:([\n]+\\)" change-log-start-entry-re (lambda (#2=#:defconst-tmp-var) (defconst change-log-start-entry-re #2#)) "^\\sw.........[0-9:+ ]*"] 8)
#@57 Additional expressions to highlight in Change Log mode.
(defvar change-log-font-lock-keywords (byte-code "\301\302B\303BB\207" [change-log-file-names-re ("^[0-9-]+ +\\|^\\(Sun\\|Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\) [A-z][a-z][a-z] [0-9:+ ]+" (0 'change-log-date-face) ("\\([^<(]+?\\)[ 	]*[(<]\\([A-Za-z0-9_.+-]+@[A-Za-z0-9_.-]+\\)[>)]" nil nil (1 'change-log-name) (2 'change-log-email))) ((2 'change-log-file) ("\\=, \\([^ ,:([\n]+\\)" nil nil (1 'change-log-file)) ("\\= (\\([^(),\n]+\\|(\\(setf\\|SETF\\) [^() ,\n]+)\\)" nil nil (1 'change-log-list)) ("\\=, *\\([^(),\n]+\\|(\\(setf\\|SETF\\) [^() ,\n]+)\\)" nil nil (1 'change-log-list))) (("^\\( +\\|	\\)(\\([^(),\n]+\\|(\\(setf\\|SETF\\) [^() ,\n]+)\\)" (2 'change-log-list) ("\\=, *\\([^(),\n]+\\|(\\(setf\\|SETF\\) [^() ,\n]+)\\)" nil nil (1 'change-log-list))) ("\\[!?\\([^]\n]+\\)\\]\\(:\\| (\\)" (1 'change-log-conditionals)) ("<\\([^>\n]+\\)>\\(:\\| (\\)" (1 'change-log-function)) ("\\(^\\( +\\|	\\)\\|  \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)" 3 'change-log-acknowledgement))] 3) (#$ . 7451))
#@50 Return the file-name for the change under point.
(defalias 'change-log-search-file-name #[(where) "\212b\210\303\304!\210\305	!\203 \306\n\307\310#\210\311\312!\202T \305\n!\203& \311\312!\202T \313\314	\315\n\316\260\307\310#\203K \304\224\203E \306\n\307\310#\210\311\312!\202T \311\317!\202T \306\n\307\310#\210\311\312!)\207" [where change-log-start-entry-re change-log-file-names-re beginning-of-line 1 looking-at re-search-forward nil t match-string-no-properties 2 re-search-backward "\\(" "\\)\\|\\(" "\\)" 4] 6 (#$ . 8562)])
#@44 Visit the file for the change under point.
(defalias 'change-log-find-file #[nil "\301`!\211\203 \302!\203 \303!\202 \304\305\")\207" [file change-log-search-file-name file-exists-p find-file message "No such file or directory: %s"] 4 (#$ . 9105) nil])
#@274 Search for a tag name within subexpression 1 of last match.
Optional argument FROM specifies a buffer position where the tag
name should be located.  Return value is a cons whose car is the
string representing the tag and whose cdr is the position where
the tag was found.
(defalias 'change-log-search-tag-name-1 #[(&optional from) "\214\301\224\301\225}\210\203 b\210\302\303!\203 \301\224b\210\304 `)B\207" [from 1 looking-at "[(]?\\(?:\\(?:\\sw\\|\\s_\\)+\\(?:[ 	]+\\(\\sw\\|\\s_\\)+\\)\\)" find-tag-default] 2 (#$ . 9372)])
#@51 Regexp matching a tag name in change log entries.
(defconst change-log-tag-re "(\\(\\(?:\\sw\\|\\s_\\)+\\(?:[, 	]+\\(?:\\sw\\|\\s_\\)+\\)*\\))" (#$ . 9910))
#@227 Search for a tag name near `point'.
Optional argument AT non-nil means search near buffer position AT.
Return value is a cons whose car is the string representing
the tag and whose cdr is the position where the tag was found.
(defalias 'change-log-search-tag-name #[(&optional at) "\212\206 `\211b\210\214~\210\301\302\303\217\206& \301\304\305\217\206& \301\306\307\217\206& \301\310\311\217*\207" [at nil (byte-code "\212\302 \210\303!\205 \304	!)\207" [change-log-tag-re at backward-up-list looking-at change-log-search-tag-name-1] 2) ((error)) (byte-code "\212\301\302w\205 \303!\205 \304 )\207" [change-log-tag-re " 	" nil looking-at change-log-search-tag-name-1] 2) ((error)) (byte-code "\212\302 \210\303!\205 \304\225b\205 \305\306!\205 \303	!\205 \307 )\207" [change-log-file-names-re change-log-tag-re beginning-of-line looking-at 0 skip-syntax-forward " " change-log-search-tag-name-1] 2) ((error)) (byte-code "\212\305\210\306\305\307#\203 \310\224\202 e)\212\305\210\311\305\307#\203$ \310\224\202% d)\211	W\205m \nX\205m 	X\205m \214\n	}\210\306\f\305\307#\203W \312\224\312\225}\210db\210\313 dB\202l \311\f\305\307#\205l \312\224\312\225}\210eb\210\313 eB)*\207" [change-log-start-entry-re to from at change-log-tag-re nil re-search-backward t 0 re-search-forward 1 find-tag-default] 6) ((error))] 3 (#$ . 10074)])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\305B\302\305!\204 \303\305\304\"\210\306B\302\306!\204- \303\306\304\"\210\304\207" [current-load-list change-log-find-head default-boundp set-default nil change-log-find-tail change-log-find-window] 3)
#@372 Search for tag TAG in buffer BUFFER visiting file FILE.
REGEXP is a regular expression for TAG.  The remaining arguments
are optional: WINDOW denotes the window to display the results of
the search.  FIRST is a position in BUFFER denoting the first
match from previous searches for TAG.  LAST is the position in
BUFFER denoting the last match for TAG in the last search.
(defalias 'change-log-goto-source-1 #[(tag regexp file buffer &optional window first last) "rq\210\212\214~\210	\203 	b\210\306\210\306\307\310\217\210\306\202 eb\210\306	\204F \311\306\312#\203F \313 \211\203! \n\f\230\203! \314 \204! 	\202! +	\204O \203\234 \315 \316\317\320 \"r\321\216\322\206f \323!\211\324\"\210	\203\207 	eW\204| 	dV\203~ ~\210\325 \210	b\210\202\223 \326\327\f#\210b\210\315 	E,\202\244 \326\330\f#\210\306)\207" [buffer last current-defun regexp tag first nil (end-of-defun) ((error (byte-code "b\210\301\207" [last nil] 1))) re-search-forward t add-log-current-defun line-beginning-position selected-window mapcar #[(frame) "\301!D\207" [frame frame-selected-window] 3] frame-list ((byte-code "\305\211\2030 \n@\306	@!\203) \307	\211A@)!\203) \310	@	\211A@)\311#\210\nA\211\204 *\307\f!\203< \312\f\311\"\210\305\207" [save-selected-window-alist elt --dolist-tail-- x save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window norecord select-window] 5)) select-window display-buffer norecord push-mark message "No more matches for tag `%s' in file `%s'" "Source location of tag `%s' not found in file `%s'" save-selected-window-alist save-selected-window-window window change-log-find-window file] 5 (#$ . 11696)])
#@233 Go to source location of "change log tag" near `point'.
A change log tag is a symbol within a parenthesized,
comma-separated list.  If no suitable tag can be found nearby,
try to visit the file for the change under `point' instead.
(defalias 'change-log-goto-source #[nil "\306=\203 	\203 \307\310\311\217\211\207\212`\312 \211@\205\" \313A!\211\205) \314\224\313\n!\211\2056 \314\224\f\203F \203F \315!\204X \203R \315!\204X \316\317!\202\256 \203\234 \315!\203\234 \f\203\220 \203\220 \315!\203\220 W\203\201 \nX\204\220 \nX\203\234 W\203\234 \320\321!!\211\202\256 \f\322\323\f!\324Q\321!F\307\325\326\217.\207" [last-command change-log-find-tail at tag-at tag file change-log-goto-source nil (byte-code "\302\303\304	\"\"\207" [change-log-find-head change-log-find-tail apply change-log-goto-source-1 append] 5) ((error (byte-code "\301\302@\3038#\207" [change-log-find-head format "Cannot find more matches for tag `%s' in file `%s'" 2] 5))) change-log-search-tag-name change-log-search-file-name 2 file-exists-p error "Cannot find tag or file near `point'" display-buffer find-file-noselect "\\_<" regexp-quote "\\_>" (byte-code "\302\303\"\211\207" [change-log-find-head change-log-find-tail apply change-log-goto-source-1] 3) ((error (format "Cannot find matches for tag `%s' in file `%s'" tag file))) file-at file-2 file-2-at change-log-find-window change-log-find-head] 6 (#$ . 13384) nil])
#@117 Move to the Nth (default 1) next match in a ChangeLog buffer.
Compatibility function for \[next-error] invocations.
(defalias 'change-log-next-error #[(&optional argp reset) "\206 \306\307!\306W\211?\211\203 \310\202 \311\203# e\2026 \n\203, \312 \2026 \2035 \313 \2026 `b\210\f\314\315	$\210-\316 \210\317!\205[ \314\320 \210\205Z \321!)\207" [argp count down up search-function reset 0 abs re-search-forward re-search-backward line-beginning-position line-end-position nil t beginning-of-line looking-at change-log-goto-source select-window change-log-file-names-re change-log-find-window] 6 (#$ . 14846) "p"])
#@35 Keymap for Change Log major mode.
(defvar change-log-mode-map (byte-code "\302 \302 \303	\304\305#\210\303	\306\307#\210\303	\310\311#\210\303	\312\313#\210\303	\314\315B#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326\327#\210	*\207" [menu-map map make-sparse-keymap define-key [3 16] add-log-edit-prev-comment [3 14] add-log-edit-next-comment [3 6] change-log-find-file [3 3] change-log-goto-source [menu-bar changelog] "ChangeLog" [gs] (menu-item "Go To Source" change-log-goto-source :help "Go to source location of ChangeLog tag near point") [ff] (menu-item "Find File" change-log-find-file :help "Visit the file for the change under point") [sep] ("--") [nx] (menu-item "Next Log-Edit Comment" add-log-edit-next-comment :help "Cycle forward through Log-Edit mode comment history") [pr] (menu-item "Previous Log-Edit Comment" add-log-edit-prev-comment :help "Cycle backward through Log-Edit mode comment history")] 5) (#$ . 15488))
(defvaralias 'change-log-time-zone-rule 'add-log-time-zone-rule)
#@175 Time zone used for calculating change log time stamps.
It takes the same format as the TZ argument of `set-time-zone-rule'.
If nil, use local time.
If t, use universal time.
(defvar add-log-time-zone-rule nil (#$ . 16538))
(put 'add-log-time-zone-rule 'safe-local-variable '(lambda (x) (or (booleanp x) (stringp x))))
(defalias 'add-log-iso8601-time-zone #[(&optional time) "\306!@\206 \307\211\307W\203 \310\202 \311\312	!\211\313\246\313\245\211\313\246\313\245\314\315\f!\2046 \316\202B \315!\204A \317\202B \320\n\f%.\207" [time utc-offset sign sec ss min current-time-zone 0 45 43 abs 60 format zerop "%c%02d:%02d:%02d" "%c%02d:%02d" "%c%02d" mm hh] 7])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\304\207" [current-load-list add-log-iso8601-with-time-zone default-boundp set-default nil] 3)
(defalias 'add-log-iso8601-time-string #[nil "\303\304\305\306=#\n\203 	\307\310 Q\202 	)\207" [add-log-time-zone-rule time add-log-iso8601-with-time-zone format-time-string "%Y-%m-%d" nil t " " add-log-iso8601-time-zone] 5])
#@63 Return (system-dependent) default name for a change log file.
(defalias 'change-log-name #[nil "\206 \301\207" [change-log-default-name "ChangeLog"] 1 (#$ . 17602)])
#@104 Cycle backward through Log-Edit mode comment history.
With a numeric prefix ARG, go back ARG comments.
(defalias 'add-log-edit-prev-comment #[(arg) "\214`\302>\203 \303 \202 `}\210\304\305!\205@ \305	!\210\306ed\"\210eb\210\214~\210n)\2042 `\307\310w\210`|\210\311e!\210db\210`\307\310x\210`|)\207" [last-command arg (add-log-edit-prev-comment add-log-edit-next-comment) mark fboundp log-edit-previous-comment indent-region " 	\n" nil set-mark] 3 (#$ . 17777) "*p"])
#@103 Cycle forward through Log-Edit mode comment history.
With a numeric prefix ARG, go back ARG comments.
(defalias 'add-log-edit-next-comment #[(arg) "\301[!\207" [arg add-log-edit-prev-comment] 2 (#$ . 18254) "*p"])
#@31 Prompt for a change log name.
(defalias 'prompt-for-change-log-name #[nil "\302 \303\304\305\306\"\307#!\310	!\311\230\203 \303\310!	\"\2021 \312	!\2030 \303\310!\313	!\"\2021 	*\207" [default name change-log-name expand-file-name read-file-name format "Log file (default %s): " nil file-name-nondirectory "" file-directory-p file-name-as-directory] 5 (#$ . 18475)])
#@174 Return version number of current buffer's file.
This is the value returned by `vc-working-revision' or, if that is
nil, by matching `change-log-version-number-regexp-list'.
(defalias 'change-log-version-number-search #[nil "\306 \211\307V\205 `\310\245\\\n\203 \311\n!\206@ \214~\210\312\203> \212eb\210\313\211A@	\314#\203: \315\316!\312)\202  \f+*\207" [size limit buffer-file-name change-log-version-number-regexp-list version regexps buffer-size 8000 10 vc-working-revision nil re-search-forward t match-string 1] 5 (#$ . 18856)])
#@686 Find a change log file for \[add-change-log-entry] and return the name.

Optional arg FILE-NAME specifies the file to use.
If FILE-NAME is nil, use the value of `change-log-default-name'.
If `change-log-default-name' is nil, behave as though it were 'ChangeLog'
(or whatever we use on this operating system).

If `change-log-default-name' contains a leading directory component, then
simply find it in the current directory.  Otherwise, search in the current
directory and its successive parents for a file so named.

Once a file is found, `change-log-default-name' is set locally in the
current buffer to the complete file name.
Optional arg BUFFER-FILE overrides `buffer-file-name'.
(defalias 'find-change-log #[(&optional file-name buffer-file) "r\306\307!\205\f \310\311\312\217@\313!\203 \202 p)q\210	\204\240 \n\205* \314\n!\205* \n\211\204\240 \2047 \f\203C \314\315\206> \f!!\206D \316	!\203Q \317\320 	\"\315	!\317	!\211\310\321!\204\216 \322!\204\216 \314\323\314!!!\314!\230\204\216 \317\324\320 !\"\202_ \321!\204\234 \322!\203\237 *\325\302!\210	)	\207" [buff file-name change-log-default-name buffer-file buffer-file-name default-directory derived-mode-p diff-mode nil (diff-find-source-location) ((error)) buffer-live-p file-name-directory file-chase-links file-directory-p expand-file-name change-log-name get-file-buffer file-exists-p directory-file-name file-name-nondirectory make-local-variable parent-dir file1] 5 (#$ . 19411)])
(defalias 'add-log-file-name #[(buffer-file log-file) "?\206 	\230?\205& \n\203 \n!\207\303\304	!\"\305!\203% \306!\207\207" [buffer-file log-file add-log-file-name-function file-relative-name file-name-directory backup-file-name-p file-name-sans-versions] 4])
#@1167 Find change log file, and add an entry for today and an item for this file.
Optional arg WHOAMI (interactive prefix) non-nil means prompt for user
name and email (stored in `add-log-full-name' and `add-log-mailing-address').

Second arg FILE-NAME is file name of the change log.
If nil, use the value of `change-log-default-name'.

Third arg OTHER-WINDOW non-nil means visit in other window.

Fourth arg NEW-ENTRY non-nil means always create a new entry at the front;
never append to an existing entry.  Option `add-log-keep-changes-together'
otherwise affects whether a new entry is created.

Fifth arg PUT-NEW-ENTRY-ON-NEW-LINE non-nil means that if a new
entry is created, put it on a new line by itself, do not put it
after a comma on an existing line.

Option `add-log-always-start-new-record' non-nil means always create a
new record, even when the last record was made on the same date and by
the same person.

The change log file can start with a copyright notice and a copying
permission notice.  The first blank line indicates the end of these
notices.

Today's date is calculated according to `add-log-time-zone-rule' if
non-nil, otherwise in local time.
(defalias 'add-change-log-entry #[(&optional whoami file-name other-window new-entry put-new-entry-on-new-line) "\306 	\205	 \307 \203  \202 \f\211\205 \310!@\310\311A@\"!A\312@A\"BA\f\232\204e A\304\313\314 !!\232\203L \313\314 !q\210\202e C\204X \315\314 !\203` \316A!\210\202e \317A!\210\320\321!\204n \321 \210\322 \210eb\210D\206{ \323 E\206\202 FGHI\203\231 \324\325H\"H\324\326G\"G\327\330!\203\247 \331\332!\210\333\334w\210\335\336G:\203\264 G\202\267 GC\"JK\204\366 \334LJ\334M\211N\203\347 N@M\327\337M!!\203\336 \340LNA\211N\204\315 \334ML+\203\366 \341y\210\202\342JG!J8O\203P\202	\333O\203P\202\333\261\210\343y\210+\212\327\344!\203)\333\334w\210\2027Q\2034\345 \210\2027\346 \210`)R\347\350R\340#\203PB\203\374Bc\210\202\374S\204\246\334T\347\337\351BP!\352PR\340#)\203\246\347\353!\210\354\224b\210m\204\204\327\355!\203\204`\356\357!|\210\202qO\203\216P\202\217\333O\203\231P\202\232\333\261\210\360y\210\361 \210\202\374\327\362!\203\262\341y\210\202\246m\204\305\327\355!\203\305`\356\357!|\210\202\262O\203\317P\202\320\333O\203\332P\202\333\333O\203\345P\202\346\333\261\210\360y\210Uj\210\351c\210B\203\374Bc\210)\204\212\363\341!\210\327\364!)?\205\263\365c\210\n\205\263\n\366\261\202\263\322 \210\212\363\341!\210\327\367!)\204.\366c\210\370 V\371\372!\210\373\334x\210W\204\201\327\373!\203\201\212\374\341!\210`)\211V`{\232\203[V`|\210X\375iG\376#V)\203\201\377\334x\210`V|\210`Sf\201Y >\204\235\377c\210\202\235W\204\224\327\373!\203\224`T\201Z  |\210Vb\210\201[ c\210V\334\211\223\210)\201\\ \261\210\n\205\263\n\366\261.\207" [defun change-log-version-info-enabled version add-log-buffer-file-name-function buffer-file-name buf-file-name add-log-current-defun change-log-version-number-search expand-file-name find-change-log add-log-file-name window-buffer selected-window window-dedicated-p find-file-other-window find-file derived-mode-p change-log-mode undo-boundary user-full-name read-string "Full name: " "Mailing address: " looking-at "Copyright" search-forward "\n\n" "\n" nil mapcar #[(addr) ";\203 \305\306!\307\216\310!\210\n *\202 \n \311\312\f\313\260\207" [add-log-time-zone-rule tz add-log-time-format full-name addr getenv "TZ" ((set-time-zone-rule tz)) set-time-zone-rule "  " "  <" ">"] 6] regexp-quote t 1 random -1 "\n*[^\n* 	]" forward-page forward-paragraph re-search-forward "^\\s *\\*\\s *$" "* " "\\(\\s \\|[(),:]\\)" "^\\s *$\\|^\\s \\*" 0 "^\\s *$" line-beginning-position 2 -2 indent-relative-maybe "\\sW" beginning-of-line "\\s *\\(\\*\\s *\\)?$" ": " 32 "\\s *$" point-marker skip-syntax-backward " " "):" backward-sexp + 4 ", " buffer-file file-name item other-window add-log-full-name add-log-mailing-address user-mail-address mailing-address full-name whoami new-entries add-log-always-start-new-record hit entry --dolist-tail-- use-hard-newlines hard-newline add-log-keep-changes-together bound new-entry case-fold-search left-margin pos put-new-entry-on-new-line fill-column (40) line-end-position "(" "): "] 6 (#$ . 21181) (list current-prefix-arg (prompt-for-change-log-name))])
#@166 Find change log file in other window and add entry and item.
This is just like `add-change-log-entry' except that it displays
the change log file in another window.
(defalias 'add-change-log-entry-other-window #[(&optional whoami file-name) "\302	\303#\207" [whoami file-name add-change-log-entry t] 4 (#$ . 25558) (byte-code "\205 \301 D\207" [current-prefix-arg prompt-for-change-log-name] 2)])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\301\207" [current-load-list change-log-indent-text default-boundp set-default 0] 3)
(defalias 'change-log-fill-parenthesized-list #[nil "\212\300\210\301\302x\210`Sf\303\232\205 `eTV\205 \302\304\305\217)\207" [0 " 	" nil 44 (byte-code "\212\300\301!\210\302f\303\232\304\302x\210\2052 n\2062 \305\306\302x!?\2052 \304\302x\2052 \307\302x\301U\2052 \304\302x\2052 n)\205D \310\301!\210\311c\210\312\302w\210\313\314!\207" [up-list -1 nil 40 " 	" zerop "^ 	\n*" "*" delete-char ")" " 	\n" insert-before-markers "("] 3) ((error))] 3])
(defalias 'change-log-indent #[nil "\303 \210\212\304 \210\305\306w\210\307\310!\203 \311\312\313\314!\"\203 \315\202- \307\316!\203+ \317 \\\202- \317 )\212\320	!\210`)\211`V\205? \nb*\207" [change-log-indent-text indent pos change-log-fill-parenthesized-list beginning-of-line " 	" nil looking-at "\\(.*\\)  [^ \n].*[^ \n]  <.*>\\(?: +(.*)\\)? *$" string-match "[[:digit:]][[:digit:]]" match-string 1 0 "[^*(]" current-left-margin indent-line-to] 5])
(byte-code "\302\303N\204 \304\302\303\305\306!#\210\307\310!\204 \304\310\311\312#\210\310B\313\310!\204* \314\310\315 \"\210\310\303N\2048 \304\310\303\305\316!#\210\307\317!\204D \304\317\311\312#\210\317B\313\317!\204T \314\317\320 \"\210\317\303N\204b \304\317\303\305\321!#\210\304\301\311\312#\210\301B\313\301!\204| \314\301\322\301\323\"\210	\"\210\301\303N\204\212 \304\301\303\305\324!#\210\304\312\325\326#\207" [current-load-list change-log-mode-abbrev-table change-log-mode-hook variable-documentation put purecopy "Hook run when entering Change Log mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp change-log-mode-map definition-name change-log-mode default-boundp set-default make-sparse-keymap "Keymap for `change-log-mode'." change-log-mode-syntax-table make-syntax-table "Syntax table for `change-log-mode'." define-abbrev-table nil "Abbrev table for `change-log-mode'." derived-mode-parent text-mode] 5)
#@370 Major mode for editing change logs; like Indented Text mode.
Prevents numeric backups and sets `left-margin' to 8 and `fill-column' to 74.
New log entries are usually made with \[add-change-log-entry] or \[add-change-log-entry-other-window].
Each entry behaves as a paragraph, and the entries for one day as a page.
Runs `change-log-mode-hook'.

\{change-log-mode-map}
(defalias 'change-log-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2036 \321 =\203< \322\f\323 \"\210)\324!\210\325\f!\2109:\326;\327<\307=\326>\307?\306\330!\210\331\306\332!\210\307\333\334\335\336\307$\210\306\337!\210\340\306\341!\210\336!\306\342!\210\307\"\306\343!\210\344#\306\345!\210#%\306\346!\210\347&\306\350!\210\351(\306\352!\210\353*\306\354!\210\355,\306\356!\210\357.\306\360!\210\3610\306\362!\210\3632\306\364!\210\3654\366@pA)\367\370!\207" [delay-mode-hooks major-mode mode-name change-log-mode-map change-log-mode-syntax-table parent make-local-variable t text-mode change-log-mode "Change Log" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table use-local-map set-syntax-table 8 74 fill-forward-paragraph-function change-log-fill-forward-paragraph fill-indent-according-to-mode add-hook fill-nobreak-predicate (lambda nil (looking-back "^\\s *\\*\\s *" (line-beginning-position))) nil indent-line-function change-log-indent tab-always-indent copyright-at-end-flag paragraph-start "\\s *$\\|\f\\|^\\<" paragraph-separate page-delimiter "^\\<\\|^\f" version-control never smerge-resolve-function change-log-resolve-conflict adaptive-fill-regexp "\\s *" font-lock-defaults (change-log-font-lock-keywords t nil nil backward-paragraph) multi-isearch-next-buffer-function change-log-next-buffer beginning-of-defun-function change-log-beginning-of-defun end-of-defun-function change-log-end-of-defun change-log-next-error run-mode-hooks change-log-mode-hook change-log-mode-abbrev-table local-abbrev-table left-margin fill-column indent-tabs-mode tab-width show-trailing-whitespace next-error-function next-error-last-buffer] 6 (#$ . 28037) nil])
#@284 Return the next buffer in the series of ChangeLog file buffers.
This function is used for multiple buffers isearch.
A sequence of buffers is formed by ChangeLog files with decreasing
numeric file name suffixes in the directory of the initial ChangeLog
file were isearch was started.
(defalias 'change-log-next-buffer #[(&optional buffer wrap) "\306 \211\307\310\311P!\312\"B\n\203 	\202 \313	!\314\203$ 	@\2020 \315\316\f!!	\235\211A@)!+\207" [name files isearch-forward wrap buffer x change-log-name sort file-expand-wildcards "[-.][0-9]*" #[(a b) "\300\301\302\217\207" [nil (byte-code "\303	G\304O\n	G\304O\"\207" [b name a version< nil] 5) ((error))] 3] reverse find-file-noselect file-name-nondirectory buffer-file-name] 6 (#$ . 30281)])
#@77 Cut paragraphs so filling preserves open parentheses at beginning of lines.
(defalias 'change-log-fill-forward-paragraph #[(n) "\302P\303	!)\207" [paragraph-start n "\\|\\s *\\(?:\\s(\\|\\*\\)" forward-paragraph] 2 (#$ . 31039)])
#@153 Heuristic regexp used by `add-log-current-defun' for unknown major modes.
The regexp's first submatch is placed in the ChangeLog entry, in
parentheses.
(custom-declare-variable 'add-log-current-defun-header-regexp '"^\\([[:upper:]][[:upper:]_ ]*[[:upper:]_]\\|[-_[:alpha:]]+\\)[ 	]*[:=]" '(#$ . 31278) :type 'regexp :group 'change-log)
#@56 *Modes that look like Lisp to `add-log-current-defun'.
(defvar add-log-lisp-like-modes '(emacs-lisp-mode lisp-mode scheme-mode dsssl-mode lisp-interaction-mode) (#$ . -31620))
#@53 *Modes that look like C to `add-log-current-defun'.
(defvar add-log-c-like-modes '(c-mode c++-mode c++-c-mode objc-mode) (#$ . -31802))
#@55 *Modes that look like TeX to `add-log-current-defun'.
(defvar add-log-tex-like-modes '(TeX-mode plain-TeX-mode LaTeX-mode tex-mode) (#$ . -31944))
#@458 Return name of function definition point is in, or nil.

Understands C, Lisp, LaTeX ("functions" are chapters, sections, ...),
Texinfo (@node titles) and Perl.

Other modes are handled by a heuristic that looks in the 10K before
point for uppercase headings starting in the first column or
identifiers followed by `:' or `='.  See variables
`add-log-current-defun-header-regexp' and
`add-log-current-defun-function'.

Has a preference of looking backwards.
(defalias 'add-log-current-defun #[nil "\300\301\302\217\207" [nil (byte-code "\212`	\203\f 	 \202\347 \306\307\n\"\203R m\204 \310u\210\311 \210\312\313!\205\347 \314 \210`W\205\347 \315\316!\210`Y\205\347 \312\313!\203? \310u\210\315\310!\210\317\320w\210\321`\315\310!\210`\"\202\347 \306\307\"\203c \322 \206\347 \323 \202\347 \306\307\f\"\203 \324\325\320\326#\205\347 \327\224b\210\321`T\330 \"\202\347 \307\331!\203\223 \324\332\320\326#\205\347 \333\310!\202\347 \307\334\335\"\203\250 \324\336\320\326#\205\347 \333\310!\202\347 \307\337!\203\274 \324\340\320\326#\205\347 \333\341!\202\347 \320\211%\320\210\324&`\342Z\326#\205\346 \333\310!\206\330 \333\327!\343\344\"\203\345 \333\310\"**\207" [location add-log-current-defun-function add-log-lisp-like-modes add-log-c-like-modes add-log-tex-like-modes result apply derived-mode-p 1 beginning-of-defun looking-at "\\s(" end-of-defun forward-sexp -1 " 	\n'(" nil buffer-substring-no-properties c-cpp-define-name c-defun-name re-search-backward "\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)" t 0 line-end-position texinfo-mode "^@node[ 	]+\\([^,\n]+\\)" match-string-no-properties perl-mode cperl-mode "^sub[ 	]+\\([^({ 	\n]+\\)" autoconf-mode "^\\(\\(m4_\\)?define\\|A._DEFUN\\)(\\[?\\([A-Za-z0-9_]+\\)" 3 10000 string-match "\\([^ 	\n\f].*[^ 	\n\f]\\)" case-fold-search add-log-current-defun-header-regexp] 4) ((error))] 3 (#$ . 32098)])
(defalias 'change-log-get-method-definition-1 #[(end) "\302\303!	Q\304\225b\207" [change-log-get-method-definition-md end match-string 1 0] 3])
#@64 For Objective C, return the method name if we are in a method.
(defalias 'change-log-get-method-definition #[nil "\301\212\302\303\304\305#\203 \306\307!\210)\212\310\311\304\305#\2051 \306\312!\210\313\314!\204. \313\315!\210\306\312!\210\202 \316P*\207" [change-log-get-method-definition-md "[" re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t change-log-get-method-definition-1 " " re-search-forward "^\\([-+]\\)[ 	\n\f]*\\(([^)]*)\\)?\\s-*" "" looking-at "[{;]" "\\([A-Za-z_]*:?\\)\\s-*\\(([^)]*)\\)?[A-Za-z_]*[ 	\n\f]*" "]"] 4 (#$ . 34129)])
#@110 Return date of log entry in a consistent form for sorting.
Point is assumed to be at the start of the entry.
(defalias 'change-log-sortable-date-at #[nil "\302\303!\210\304!\203/ \305\306!\211\205- \307\310	\"\203) \311\312	\"\311\313	\"\311\314	\"Q\202- \315\316\317\217)\207\320\321!\207" [change-log-start-entry-re date require timezone looking-at match-string-no-properties 0 string-match "\\(....\\)-\\(..\\)-\\(..\\)\\s-+" match-string 1 2 3 nil (timezone-make-date-sortable date) ((error)) error "Bad date"] 6 (#$ . 34705)])
#@51 Function to be used in `smerge-resolve-function'.
(defalias 'change-log-resolve-conflict #[nil "\212\214\306\224\306\225}\210\307\224\307\225\310\224\310\225\311\312!\311\313!\314\216pr	q\210\315 \210\316\f#\210)rq\210\315 \210\316\n#\210\317	!\210)db\210e`\316!\210|.\n\207" [tmp2 tmp1 me3 mb3 me1 mb1 0 1 3 generate-new-buffer " *changelog-resolve-1*" " *changelog-resolve-2*" ((byte-code "\302!\210\302	!\207" [tmp1 tmp2 kill-buffer] 2)) change-log-mode insert-buffer-substring change-log-merge buf] 7 (#$ . 35245)])
#@337 Merge the contents of change log file OTHER-LOG with this buffer.
Both must be found in Change Log mode (since the merging depends on
the appropriate motion commands).  OTHER-LOG can be either a file name
or a buffer.

Entries are inserted in chronological order.  Both the current and
old-style time formats for entries are supported.
(defalias 'change-log-merge #[(other-log) "\306\307!\204\n \310\311!\210\312!\203 \202 \313!p\314\211\211\212eb\210q\210eb\210\306\307!\2045 \310\315\"\210m?\205\240 \316 `\317 \210`r\fq\210m\204Y \316 \231\203Y \317 \210\202H m\204f \320\n	#\210\202\234 o\204\217 `Sf\321U\203\202 `SeX\204\217 `SSf\321U\204\217 \203\214 \202\215 \322c\210rq\210db\210)\320\n\"\210)\2025 .\207" [other-log end start date1 buf other-buf derived-mode-p change-log-mode error "Not in Change Log mode" bufferp find-file-noselect nil "%s not found in Change Log mode" change-log-sortable-date-at forward-page insert-buffer-substring 10 "\n" use-hard-newlines hard-newline] 5 (#$ . 35789) "*fLog file name to merge: "])
(defalias 'change-log-beginning-of-defun #[nil "\301\302\303#\207" [change-log-start-entry-re re-search-backward nil move] 4])
(defalias 'change-log-end-of-defun #[nil "\212\301\302\303#)\204 \304\302\303#\210\305y\210\306!\203  \307\225b\210\305y\210\304\302\310#\205. \307\224b\210\311y\207" [change-log-start-entry-re re-search-backward nil t re-search-forward 1 looking-at 0 move -1] 4])
(provide 'add-log)
