;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Tue Sep 6 03:35:41 1994 ;;; from file /home/fsf/rms/e19/lisp/compile.el ;;; emacs version 19.26.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/compile.el' was compiled for Emacs 19")) (defvar compilation-mode-hook nil "\ *List of hook functions run by `compilation-mode' (see `run-hooks').") (defvar compilation-window-height nil "\ *Number of lines in a compilation window. If nil, use Emacs default.") (defvar compilation-error-list nil "\ List of error message descriptors for visiting erring functions. Each error descriptor is a cons (or nil). Its car is a marker pointing to an error message. If its cdr is a marker, it points to the text of the line the message is about. If its cdr is a cons, it is a list ((DIRECTORY . FILE) LINE [COLUMN]). Or its cdr may be nil if that error is not interesting. The value may be t instead of a list; this means that the buffer of error messages should be reparsed the next time the list of errors is wanted. Some other commands (like `diff') use this list to control the error message tracking facilites; if you change its structure, you should make sure you also change those packages. Perhaps it is better not to change it at all.") (defvar compilation-old-error-list nil "\ Value of `compilation-error-list' after errors were parsed.") (defvar compilation-parse-errors-function (quote compilation-parse-errors) "\ Function to call to parse error messages from a compilation. It takes args LIMIT-SEARCH and FIND-AT-LEAST. If LIMIT-SEARCH is non-nil, don't bother parsing past that location. If FIND-AT-LEAST is non-nil, don't bother parsing after finding that many new errors. It should read in the source files which have errors and set `compilation-error-list' to a list with an element for each error message found. See that variable for more info.") (defvar compilation-buffer-name-function nil "\ Function to compute the name of a compilation buffer. The function receives one argument, the name of the major mode of the compilation buffer. It should return a string. nil means compute the name with `(concat \"*\" (downcase major-mode) \"*\")'.") (defvar compilation-finish-function nil "\ *Function to call when a compilation process finishes. It is called with two arguments: the compilation buffer, and a string describing how the process finished.") (defvar compilation-last-buffer nil "\ The most recent compilation buffer. A buffer becomes most recent when its compilation is started or when it is used with \\[next-error] or \\[compile-goto-error].") (defvar compilation-in-progress nil "\ List of compilation processes now running.") (byte-code " \n B" [compilation-in-progress minor-mode-alist (compilation-in-progress " Compiling")] 2) (defvar compilation-parsing-end nil "\ Position of end of buffer when last error messages were parsed.") (defvar compilation-error-message "No more errors" "\ Message to print when no more matches are found.") (defvar compilation-error-regexp-alist (quote (("\n\\([^:( \n]+\\)[:(][ ]*\\([0-9]+\\)\\([) ]\\|:[^0-9\n]\\)" 1 2) ("\n\\([^:( \n]+\\):\\([^:( \n]+\\):[ ]*\\([0-9]+\\)\\(:[^0-9\n]\\)" 2 3) ("\n\\(Error\\|Warning\\) \\([^:( \n]+\\) \\([0-9]+\\)\\([) ]\\|:[^0-9\n]\\)" 2 3) ("[ :]\\([^:( \n]+\\)[:(](+[ ]*\\([0-9]+\\))[:) ]*$" 1 2) ("([ ]*\\([^:( \n]+\\)[:(][ ]*\\([0-9]+\\))" 1 2) ("\nfort: [^:\n]*: \\([^ \n]*\\), line \\([0-9]+\\):" 1 2) ("\\(\n\\|on \\)[Ll]ine[ ]+\\([0-9]+\\)[ ]+of[ ]+\"?\\([^\":\n]+\\)\"?:" 3 2) ("\"\\([^,\" \n ]+\\)\", lines? \\([0-9]+\\)[:., (-]" 1 2) ("rror: \\([^,\" \n ]+\\)[,:] \\(line \\)?\\([0-9]+\\):" 1 3) ("in line \\([0-9]+\\) of file \\([^ \n]+[^. \n]\\)\\.? " 2 1) ("\n[EW], \\([^(\n]*\\)(\\([0-9]+\\),[ ]*\\([0-9]+\\)" 1 2 3) ("\n\\([^ \n :]+\\):\\([0-9]+\\):\\([0-9]+\\)[: ]" 1 2 3) ("\n\\([^ \n :]+\\):\\([^ \n :]+\\):\\([0-9]+\\):\\([0-9]+\\)[: ]" 2 3 4))) "\ Alist that specifies how to match errors in compiler output. Each element has the form (REGEXP FILE-IDX LINE-IDX [COLUMN-IDX]). If REGEXP matches, the FILE-IDX'th subexpression gives the file name, and the LINE-IDX'th subexpression gives the line number. If COLUMN-IDX is given, the COLUMN-IDX'th subexpression gives the column number on that line.") (defvar compilation-read-command t "\ If not nil, M-x compile reads the compilation command to use. Otherwise, M-x compile just uses the value of `compile-command'.") (defvar compilation-ask-about-save t "\ If not nil, M-x compile asks which buffers to save before compiling. Otherwise, it saves all modified buffers without asking.") (defvar grep-regexp-alist (quote (("^\\([^:( \n]+\\)[:( ]+\\([0-9]+\\)[:) ]" 1 2))) "\ Regexp used to match grep hits. See `compilation-error-regexp-alist'.") (defvar grep-command "grep -n " "\ Last grep command used in \\[grep]; default for next grep.") (defvar compilation-search-path (quote (nil)) "\ *List of directories to search for source files named in error messages. Elements should be directory names, not file names of directories. nil as an element means to try the default directory.") (defvar compile-command "make -k " "\ Last shell command used to do a compilation; default for next compilation. Sometimes it is useful for files to supply local values for this variable. You might also use mode hooks to specify it in certain modes, like this: (setq c-mode-hook '(lambda () (or (file-exists-p \"makefile\") (file-exists-p \"Makefile\") (progn (make-local-variable 'compile-command) (setq compile-command (concat \"make -k \" buffer-file-name))))))") (defvar compilation-enter-directory-regexp ": Entering directory `\\(.*\\)'$" "\ Regular expression matching lines that indicate a new current directory. This must contain one \\(, \\) pair around the directory name. The default value matches lines printed by the `-w' option of GNU Make.") (defvar compilation-leave-directory-regexp ": Leaving directory `\\(.*\\)'$" "\ Regular expression matching lines that indicate restoring current directory. This may contain one \\(, \\) pair around the name of the directory being moved from. If it does not, the last directory entered (by a line matching `compilation-enter-directory-regexp') is assumed. The default value matches lines printed by the `-w' option of GNU Make.") (defvar compilation-directory-stack nil "\ Stack of previous directories for `compilation-leave-directory-regexp'. The head element is the directory the compilation was started in.") (byte-code "!!‡" [boundp compile-history nil grep-history] 2) (defalias 'compile #[(command) " ?\" \"" [command compile-command save-some-buffers compilation-ask-about-save nil compile-internal "No more errors"] 3 "\ Compile the program including the current buffer. Default: run `make'. Runs COMMAND, a shell command, in a separate process asynchronously with output going to the buffer `*compilation*'. You can then use the command \\[next-error] to find the next error message and move to the source code that caused it. To run more than one compilation at once, start one and rename the `*compilation*' buffer to some other name with \\[rename-buffer]. Then start the next one. The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that to a function that generates a unique name." (byte-code " ĉ%C C" [compilation-read-command read-from-minibuffer "Compile command: " compile-command nil (compile-history . 1)] 6)]) (defalias 'recompile #[nil " ?\"\f\"" [save-some-buffers compilation-ask-about-save nil compile-internal compile-command "No more errors"] 3 "\ Re-compile the program including the current buffer." nil]) (defalias 'grep #[(command-args) " P%" [compile-internal command-args " /dev/null" "No more grep hits" "grep" nil grep-regexp-alist] 6 "\ Run grep, with user-specified args, and collect output in a buffer. While grep runs asynchronously, you can use the \\[next-error] command to find the text that grep hits refer to. This command uses a special history list for its arguments, so you can easily repeat a grep command." (list (read-from-minibuffer "Run grep (like this): " grep-command nil nil (quote grep-history)))]) (defalias 'compile-internal #[(command error-message &optional name-of-mode parser regexp-alist name-function) "\n  \n!!qp! D !=6\n\"!>ЏD \") )PW q  ߱!) p=db ! q p!!L!'L!LC(e\"\n* =e\"!!*  #11\"1\"1!` 17B7) \"!;  & \"!- >)" [nil outbuf name-of-mode "Compilation" get-buffer-create name-function compilation-buffer-name-function #[(mode) " Q" ["*" mode] 3] get-buffer-process comp-proc process-status run yes-or-no-p format "A %s process is running; kill it? " (byte-code " !! !" [interrupt-process comp-proc sit-for 1 delete-process] 2) ((error)) error "Cannot have two processes in `%s' at once" buffer-name kill-all-local-variables regexp-alist compilation-error-regexp-alist parser compilation-parse-errors-function default-directory outwin thisdir buffer-read-only erase-buffer "cd " "\n" command set-buffer-modified-p display-buffer compilation-mode buffer-disable-undo make-local-variable compilation-error-message error-message compilation-directory-stack set-window-start mode-name selected-window set-window-point compilation-set-window-height fboundp start-process start-process-shell-command proc set-process-sentinel compilation-sentinel set-process-filter compilation-filter process-mark compilation-in-progress message "Executing `%s'..." call-process shell-file-name "-c" "Executing `%s'...done" compilation-last-buffer] 8 "\ Run compilation command COMMAND (low level interface). ERROR-MESSAGE is a string to print if the user asks to see another error and there are no more errors. Third argument NAME-OF-MODE is the name to display as the major mode in the compilation buffer. Fourth arg PARSER is the error parser function (nil means the default). Fifth arg REGEXP-ALIST is the error message regexp alist to use (nil means the default). Sixth arg NAME-FUNCTION is a function called to name the buffer (nil means the default). The defaults for these variables are the global values of `compilation-parse-errors-function', `compilation-error-regexp-alist', and `compilation-buffer-name-function', respectively. Returns the compilation buffer created."]) (defalias (quote compilation-set-window-height) #[(window) "-\n!\n!!U-\n\n!!=?- Ȏ\n! Z!+" [compilation-window-height window-width window frame-width window-frame frame-root-window selected-window w ((select-window w)) select-window enlarge-window window-height] 4]) (defvar compilation-minor-mode-map (byte-code "  # # # # # # # )" [make-sparse-keymap map define-key [mouse-2] compile-mouse-goto-error "" compile-goto-error " " kill-compilation "" compilation-next-error "" compilation-previous-error "" compilation-previous-file "" compilation-next-file] 4) "\ Keymap for `compilation-minor-mode'.") (defvar compilation-mode-map (byte-code " B\n#\n#\n!B#\n#\n#\n#\n#\n#\n#\n#\n#\n#\n)" [keymap compilation-minor-mode-map map define-key " " scroll-up "" scroll-down [menu-bar compilation-menu] "Compile" make-sparse-keymap [menu-bar compilation-menu compilation-mode-kill-compilation] ("Stop compilation" . kill-compilation) [menu-bar compilation-menu compilation-mode-separator2] ("----") [menu-bar compilation-menu compilation-mode-first-error] ("First error" . first-error) [menu-bar compilation-menu compilation-mode-previous-error] ("Previous error" . previous-error) [menu-bar compilation-menu compilation-mode-next-error] ("Next error" . next-error) [menu-bar compilation-menu compilation-separator2] ("----") [menu-bar compilation-menu compilation-mode-grep] ("Grep" . grep) [menu-bar compilation-menu compilation-mode-recompile] ("Recompile" . recompile) [menu-bar compilation-menu compilation-mode-compile] ("Compile" . compile)] 6) "\ Keymap for compilation log buffers. `compilation-minor-mode-map' is a cdr of this.") (defalias 'compilation-mode #[nil " \n! !" [fundamental-mode use-local-map compilation-mode-map compilation-mode major-mode "Compilation" mode-name compilation-setup run-hooks compilation-mode-hook] 2 "\ Major mode for compilation log buffers. \\To visit the source for a line-numbered error, move point to the error message line and type \\[compile-goto-error]. To kill the compilation, type \\[kill-compilation]. Runs `compilation-mode-hook' with `run-hooks' (which see)." nil]) (defalias (quote compilation-setup) #[nil "!L!L!L!Lp " [(":%s") mode-line-process make-local-variable compilation-error-list nil compilation-old-error-list compilation-parsing-end 1 compilation-directory-stack compilation-last-buffer] 2]) (defvar compilation-minor-mode nil "\ Non-nil when in compilation-minor-mode. In this minor mode, all the error-parsing commands of the Compilation major mode are available.") (byte-code "!\n\nB\f B\fB" [make-variable-buffer-local compilation-minor-mode minor-mode-alist (compilation-minor-mode " Compilation") minor-mode-map-alist compilation-minor-mode-map] 2) (defalias 'compilation-minor-mode #[(&optional arg) " ?!V " [arg compilation-minor-mode prefix-numeric-value 0 compilation-setup] 2 "\ Toggle compilation minor mode. With arg, turn compilation mode on if and only if arg is positive. See `compilation-mode'." "P"]) (defalias 'compilation-sentinel #[(proc msg) " ! !>\n! \"~plj \nˎ\nq\fd ` bu Ou !!P ! !)q Wqb}\n\", \")" [process-buffer proc buffer process-status (signal exit) buffer-name set-process-buffer nil opoint omax obuf ((set-buffer obuf)) buffer-read-only 10 mode-name " " msg -1 " at " current-time-string 0 19 1 ":" symbol-name mode-line-process delete-process set-buffer-modified-p buffer-modified-p compilation-finish-function delq compilation-in-progress] 4 "\ Sentinel for compilation buffers."]) (defalias 'compilation-filter #[(proc string) " !q !b! !`“+" [process-buffer proc nil buffer-read-only process-mark insert-before-markers string] 3 "\ Process filter for compilation buffers. Just inserts the text, but uses `insert-before-markers'."]) (byte-code "\"\"#" [defalias compile-error-at-point #[nil "`\"\n` @@V A )" [compile-reinitialize-errors nil compilation-old-error-list errors] 4] compilation-buffer-p #[(buffer) "\n!" [compilation-error-list buffer-local-variables buffer] 3] put byte-optimizer byte-compile-inline-expand] 4) (defalias 'compilation-next-error #[(n) "p!\n!p WM \n =2\nT\n A [\nVA!I\n\\8*j A\fΉ#\ffS\f8i!)@b)" [compilation-buffer-p error "Not in a compilation buffer." compilation-last-buffer compile-error-at-point errors n 0 compilation-old-error-list e i "Moved back past first error" compilation-error-list compile-reinitialize-errors nil "Moved past last error"] 5 "\ Move point to the next error in the compilation buffer. Does NOT find the source line like \\[next-error]." "p"]) (defalias 'compilation-previous-error #[(n) " [!" [compilation-next-error n] 2 "\ Move point to the previous error in the compilation buffer. Does NOT find the source line like \\[next-error]." "p"]) (byte-code "\"#\"#" [defalias compilation-error-filedata #[(data) "A! !@" [data markerp marker-buffer] 2] put byte-optimizer byte-compile-inline-expand compilation-error-filedata-file-name #[(filedata) " !\n ! @" [bufferp filedata buffer-file-name] 2]] 4) (defalias 'compilation-next-file #[(n) "p!\n!p\fWƉ ( #!M`\"!\f[M`@@WMA;\fV@A!j!m@) !!@)\"Ɖ#)!!@)\"@A!!@)Ap\fSN  ! Ɖ#)@@b+" [compilation-buffer-p error "Not in a compilation buffer." compilation-last-buffer n 0 nil filedata errors reversed compile-error-at-point "Moved past last error" compile-reinitialize-errors reverse compilation-old-error-list data markerp marker-buffer "%s the first erring file" bufferp buffer-file-name compilation-error-list 2 "%s is the last erring file" "This is the first erring file" 1] 6 "\ Move point to the next error for a different file than the current one." "p"]) (defalias 'compilation-previous-file #[(n) " [!" [compilation-next-file n] 2 "\ Move point to the previous error for a different file than the current one." "p"]) (defalias 'kill-compilation #[nil "  ! !!!)" [compilation-find-buffer buffer get-buffer-process interrupt-process error "The compilation process is not running."] 3 "\ Kill the process made by the \\[compile] command." nil]) (byte-code "\"\"" [defalias compile-reinitialize-errors #[(reparse &optional limit-search find-at-least) "q =  +  V+?+ GY?\\!dW\\ \n J GZ\"\f \f\n[\n))" [compilation-last-buffer compilation-error-list t reparse compilation-forget-errors limit-search compilation-parsing-end find-at-least set-buffer-modified-p nil error-list-pos compilation-parse-errors-function compilation-old-error-list] 4] compile-mouse-goto-error #[(event) "  8:‚ 8)@)!q  8:'‚( 8)A@::\fA@@=\fA@)bp!J!p`\"y\f o` @@Vo A ] x!)  8:‚ 8)@)! !q !" [window-buffer event 2 1 position compilation-buffer-p error "Not in a compilation buffer." compilation-last-buffer compile-reinitialize-errors nil 0 compilation-old-error-list compilation-error-list "No error to go to" select-window one-window-p other-window -1 push-mark next-error] 4 nil "e"]] 3) (defalias 'compile-goto-error #[(&optional argp) "p!\n!p :`\"y/`@@V/A ;! q !" [compilation-buffer-p error "Not in a compilation buffer." compilation-last-buffer compile-reinitialize-errors argp 0 compilation-old-error-list compilation-error-list one-window-p other-window -1 push-mark next-error 1] 4 "\ Visit the source for the error message point is on. Use this command in a compilation log buffer. Sets the mark at point there. \\[universal-argument] as a prefix arg means to reparse the buffer's error messages first; other kinds of prefix arguments are ignored." "P"]) (defalias (quote compilation-find-buffer) #[(&optional other-buffer) "p !)p\f'\f!'%\fp='\f Q@ !)HQ@p=QA/\\@zwp !)ws!pz!)" [other-buffer buffer compilation-error-list buffer-local-variables compilation-last-buffer buffer-name buffer-list buffers message "This is the only compilation buffer." error "No compilation started!"] 4]) (defalias 'next-error #[(&optional argp) " \f:?\f!\f:\"!" [compilation-find-buffer compilation-last-buffer compilation-goto-locus compilation-next-error-locus argp prefix-numeric-value] 4 "\ Visit next compilation error message and corresponding source code. This operates on the output from the \\[compile] command. If all preparsed error messages have been processed, the error message buffer is checked for new ones. A prefix arg specifies how many error messages to move; negative means move back to previous error messages. Just C-u as a prefix means reparse the error message buffer and start at the first error. \\[next-error] normally applies to the most recent compilation started, but as long as you are in the middle of parsing errors from one compilation output buffer, you stay with that compilation output buffer. Use \\[next-error] in a compilation output buffer to switch to processing errors from that compilation. See variables `compilation-parse-errors-function' and `compilation-error-regexp-alist' for customization ideas." "P"]) (defalias 'previous-error #[nil "!" [next-error -1] 2 "\ Visit previous compilation error message and corresponding source code. This operates on the output from the \\[compile] command." nil]) (defalias 'first-error #[nil "!" [next-error (1.1000000000000001)] 2 "\ Reparse the error message buffer and start at the first error Visit corresponding source code. This operates on the output from the \\[compile] command." nil]) (defalias 'compilation-next-error-locus #[(&optional move reparse silent) " ?WłS#ĉɍ\n?\n@AA?\nA\n+*" [move 1 compile-reinitialize-errors reparse nil 0 next-error next-errors no-next-error (byte-code "q V S C S\f =,T A[V;!B\\\f+\n@ b Ub V_\"p!rp!!=u \"p!p!!=P!\nA A A! A@A@ @#\f\n\n@A:\n@A@\n@@Չ\n@ա\nA\n\f AA@ A8q~!!\"y @A:@A@@AA@#@A8#Z$%=|$Wq$[$$$$y!#@ +A--* A! A!? \n@ J)Շ" [compilation-last-buffer move 0 compilation-error-list compilation-old-error-list e i n error "Moved back past first error" next-errors next-error 1 "Moved past last error" get-buffer-process process-status run compilation-forget-errors silent throw no-next-error nil compilation-error-message " yet" markerp fileinfo compilation-find-file buffer 2 column last-line errors goto-line move-to-column point-marker this lines selective-display t re-search-backward "[\n ]" end re-search-forward marker-buffer] 6) compilation-error-list] 6 "\ Visit next compilation error and return locus in corresponding source code. This operates on the output from the \\[compile] command. If all preparsed error messages have been processed, the error message buffer is checked for new ones. Returns a cons (ERROR . SOURCE) of two markers: ERROR is a marker at the location of the error message in the compilation buffer, and SOURCE is a marker at the location in the source code indicated by the error message. Optional first arg MOVE says how many error messages to move forwards (or backwards, if negative); default is 1. Optional second arg REPARSE, if non-nil, says to reparse the error message buffer and reset to the first error (plus MOVE - 1). If optional third argument SILENT is non-nil, return nil instead of raising an error if there are no more errors. The current buffer should be the desired compilation output buffer."]) (defalias 'compilation-goto-locus #[(next-error) " ! = A!! A!! Ab` A!U3~ Ab @!\"F @!!  @\" @\" !*" [window-dedicated-p selected-window frame-root-window switch-to-buffer-other-frame marker-buffer next-error switch-to-buffer marker-position t pop-up-windows get-buffer-window visible display-buffer w set-window-point set-window-start compilation-set-window-height] 3 "\ Jump to an error locus returned by `compilation-next-error-locus'. Takes one argument, a cons (ERROR . SOURCE) of two markers. Selects a window with point at SOURCE, with another window displaying ERROR."]) (byte-code "\"\"" [defalias compilation-find-file #[(filename dir marker) "+ +\f@\"\n!#\n!\fA\n n !!\"\"*\"$!\n!e\n!P\n!n\n!+" [compilation-search-path nil name result dirs expand-file-name filename dir file-exists-p find-file-noselect t pop-up-windows display-buffer marker-buffer marker w set-window-point set-window-start read-file-name format "Find this error in: (default %s) " file-directory-p file-name-as-directory] 7] compilation-forget-errors #[nil "\"@@‰ A! A‰)AƉ" [compilation-old-error-list next-error nil markerp compilation-error-list compilation-directory-stack 1 compilation-parsing-end] 4]] 3) (defalias 'count-regexp-groupings #[(regexp) " G\f WS \fH\fT U2\f W\n \fHU\n\fT U\n\f W\n \fH\fT U\nT\n," [0 regexp nil c i len groupings 91 93 92 41] 5 "\ Return the number of \\( ... \\) groupings in REGEXP (a string)."]) (defalias 'compilation-parse-errors #[(limit-search find-at-least) "! \n \f bo:yu#ݰ  \f!\\\\ !\\\\\nm! \nT  @A@\\ @8\\ @8 @8\\FB @@!\\\\ A y#!\" #\f\f\\\f\\{!!**$*,B,*! *#).f`.Yff  \\,/0c0 \\{!!**$*/b/@*b/A/P)/A,@/t/#*.f`.Yff\nb  @@ A   @ !Ĕ A@ A@{ 8 8{! 8 8 8{!3456!5!85P5#5B5y 543EB;A @A); B T*<6