;ELC ;;; compiled by jwz@thalidomide on Fri May 13 00:32:17 1994 ;;; from file /u/jwz/emacs19/lisp/modes/makefile.el ;;; emacs version 19.10 Lucid (beta22). ;;; bytecomp version 2.24; 26-Apr-94. ;;; 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 "This file was compiled for Emacs 19.")) (provide 'makefile) (defconst makefile-mode-name "Makefile" "\ The \"pretty name\" of makefile-mode, as it appears in the modeline.") (defvar makefile-browser-buffer-name "*Macros and Targets*" "\ Name of the macro- and target browser buffer.") (defvar makefile-target-colon ":" "\ The string that gets appended to all target names inserted by makefile-insert-target. \":\" or \"::\" are quite common values.") (defvar makefile-macro-assign " = " "\ The string that gets appended to all macro names inserted by makefile-insert-macro. The normal value should be \" = \", since this is what standard make expects. However, newer makes such as dmake allow a larger variety of different macro assignments, so you might prefer to use \" += \" or \" := \" .") (defvar makefile-use-curly-braces-for-macros-p nil "\ Controls the style of generated macro references. Set this variable to a non-nil value if you prefer curly braces in macro-references, so it looks like ${this}. A value of nil will cause makefile-mode to use parentheses, making macro references look like $(this) .") (defvar makefile-tab-after-target-colon t "\ If you want a TAB (instead of a space) to be appended after the target colon, then set this to a non-nil value.") (defvar makefile-browser-leftmost-column 10 "\ Number of blanks to the left of the browser selection mark.") (defvar makefile-browser-cursor-column 10 "\ Column in which the cursor is positioned when it moves up or down in the browser.") (defvar makefile-browser-selected-mark "+ " "\ String used to mark selected entries in the browser.") (defvar makefile-browser-unselected-mark " " "\ String used to mark unselected entries in the browser.") (defvar makefile-browser-auto-advance-after-selection-p t "\ If non-nil, the cursor will automagically advance to the next line after an item has been selected in the browser.") (defvar makefile-pickup-everything-picks-up-filenames-p nil "\ If non-nil, makefile-pickup-everything also picks up filenames as targets (i.e. it calls makefile-find-filenames-as-targets), otherwise filenames are omitted.") (defvar makefile-cleanup-continuations-p t "\ If non-nil, makefile-mode will assure that no line in the file ends with a backslash (the continuation character) followed by any whitespace. This is done by silently removing the trailing whitespace, leaving the backslash itself intact. IMPORTANT: Please note that enabling this option causes makefile-mode to MODIFY A FILE WITHOUT YOUR CONFIRMATION when 'it seems necessary'.") (defvar makefile-browser-hook nil "\ A function or list of functions to be called just before the browser is entered. This is executed in the makefile buffer.") (defvar makefile-special-targets-list '(("DEFAULT") ("DONE") ("ERROR") ("EXPORT") ("FAILED") ("GROUPEPILOG") ("GROUPPROLOG") ("IGNORE") ("IMPORT") ("INCLUDE") ("INCLUDEDIRS") ("INIT") ("KEEP_STATE") ("MAKEFILES") ("MAKE_VERSION") ("NO_PARALLEL") ("PARALLEL") ("PHONY") ("PRECIOUS") ("REMOVE") ("SCCS_GET") ("SILENT") ("SOURCE") ("SUFFIXES") ("WAIT") ("c.o") ("C.o") ("m.o") ("el.elc") ("y.c") ("s.o")) "\ List of special targets. You will be offered to complete on one of those in the minibuffer whenever you enter a \".\" at the beginning of a line in makefile-mode.") (defvar makefile-runtime-macros-list '(("@") ("&") (">") ("<") ("*") ("^") ("?") ("%")) "\ List of macros that are resolved by make at runtime. If you insert a macro reference using makefile-insert-macro-ref, the name of the macro is checked against this list. If it can be found its name will not be enclosed in { } or ( ).") (defconst makefile-dependency-regex "^[^ #:]+\\([ ]+[^ #:]+\\)*[ ]*:\\([ ]*$\\|\\([^=\n].*$\\)\\)" "\ Regex used to find dependency lines in a makefile.") (defconst makefile-macroassign-regex "^[^ ][^:#=]*[\\*:\\+]?:?=.*$" "\ Regex used to find macro assignment lines in a makefile.") (defconst makefile-ignored-files-in-pickup-regex "\\(^\\..*\\)\\|\\(.*~$\\)\\|\\(.*,v$\\)\\|\\(\\.[chy]\\)" "\ Regex for filenames that will NOT be included in the target list.") (defvar makefile-brave-make "make" "\ A make that can handle the '-q' option.") (defvar makefile-query-one-target-method 'makefile-query-by-make-minus-q "\ A function symbol [one that can be used as the first argument to funcall] that provides a function that must conform to the following interface: * As its first argument, it must accept the name of the target to be checked, as a string. * As its second argument, it may accept the name of a makefile as a string. Depending on what you're going to do you may not need this. * It must return the integer value 0 (zero) if the given target should be considered up-to-date in the context of the given makefile, any nonzero integer value otherwise.") (defvar makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*" "\ Name of the Up-to-date overview buffer.") (defvar makefile-mode-map nil "\ The keymap that is used in makefile-mode.") (byte-code " ###########" [makefile-mode-map make-sparse-keymap define-key ":" makefile-insert-target-ref ":" makefile-electric-colon "=" makefile-electric-equal "." makefile-electric-dot "" makefile-pickup-filenames-as-targets "" makefile-switch-to-browser "" makefile-pickup-everything "" makefile-create-up-to-date-overview " " makefile-insert-gmake-function "" makefile-previous-dependency "" makefile-next-dependency] 4) (defvar makefile-browser-map nil "\ The keymap that is used in the macro- and target browser.") (byte-code " ###########" [makefile-browser-map make-sparse-keymap define-key "n" makefile-browser-next-line "" "p" makefile-browser-previous-line "" " " makefile-browser-toggle "i" makefile-browser-insert-selection "I" makefile-browser-insert-selection-and-quit " " makefile-browser-insert-continuation "q" makefile-browser-quit "" undefined ""] 4) (defvar makefile-mode-syntax-table nil "\ The syntax-table used in makefile mode.") (byte-code " ########" [makefile-mode-syntax-table make-syntax-table modify-syntax-entry 40 "() " 41 ")( " 91 "(] " 93 "([ " 123 "(} " 125 "){ " 35 "< " 10 "> "] 4) (defvar makefile-target-table nil "\ Table of all targets that have been inserted in this Makefile buffer using makefile-insert-target or picked up using makefile-pickup-targets.") (defvar makefile-macro-table nil "\ Table of all macros that have been iserted in this Makefile buffer using makefile-insert-macro or picked up using makefile-pickup-macros.") (byte-code "!!!!!! ć" [boundp makefile-browser-client "A buffer in makefile-mode that is currently using the browser." makefile-browser-selection-vector nil makefile-has-prereqs makefile-need-target-pickup t makefile-need-macro-pickup makefile-mode-hook] 2) (defconst makefile-gnumake-functions-alist '(("subst" "From" "To" "In") ("patsubst" "Pattern" "Replacement" "In") ("strip" "Text") ("findstring" "Find what" "In") ("filter" "Pattern" "Text") ("filter-out" "Pattern" "Text") ("sort" "List") ("dir" "Names") ("notdir" "Names") ("suffix" "Names") ("basename" "Names") ("addsuffix" "Suffix" "Names") ("join" "List 1" "List 2") ("word" "Index" "Text") ("words" "Text") ("firstword" "Text") ("wildcard" "Pattern") ("foreach" "Variable" "List" "Text") ("origin" "Variable") ("shell" "Command")) "\ A list of GNU make function names associated with the prompts for each function. This is used in the function makefile-insert-gmake-function .") (fset 'makefile-mode #[nil " !\"\"!!!!!!!!   !!!" [kill-all-local-variables make-local-variable write-file-hooks add-hook makefile-cleanup-continuations makefile-warn-suspicious-lines makefile-target-table makefile-macro-table makefile-has-prereqs makefile-need-target-pickup makefile-need-macro-pickup comment-start comment-end comment-start-skip "#" "" "#[ ]*" makefile-mode major-mode makefile-mode-name mode-name use-local-map makefile-mode-map set-syntax-table makefile-mode-syntax-table t indent-tabs-mode run-hooks makefile-mode-hook] 3 "\ Major mode for editing Makefiles. Calling this function invokes the function(s) \"makefile-mode-hook\" before doing anything else. \\{makefile-mode-map} In the browser, use the following keys: \\{makefile-browser-map} makefile-mode can be configured by modifying the following variables: makefile-mode-name: The \"pretty name\" of makefile-mode, as it appears in the modeline. makefile-browser-buffer-name: Name of the macro- and target browser buffer. makefile-target-colon: The string that gets appended to all target names inserted by makefile-insert-target. \":\" or \"::\" are quite common values. makefile-macro-assign: The string that gets appended to all macro names inserted by makefile-insert-macro. The normal value should be \" = \", since this is what standard make expects. However, newer makes such as dmake allow a larger variety of different macro assignments, so you might prefer to use \" += \" or \" := \" . makefile-tab-after-target-colon: If you want a TAB (instead of a space) to be appended after the target colon, then set this to a non-nil value. makefile-browser-leftmost-column: Number of blanks to the left of the browser selection mark. makefile-browser-cursor-column: Column in which the cursor is positioned when it moves up or down in the browser. makefile-browser-selected-mark: String used to mark selected entries in the browser. makefile-browser-unselected-mark: String used to mark unselected entries in the browser. makefile-browser-auto-advance-after-selection-p: If this variable is set to a non-nil value the cursor will automagically advance to the next line after an item has been selected in the browser. makefile-pickup-everything-picks-up-filenames-p: If this variable is set to a non-nil value then makefile-pickup-everything also picks up filenames as targets (i.e. it calls makefile-find-filenames-as-targets), otherwise filenames are omitted. makefile-cleanup-continuations-p: If this variable is set to a non-nil value then makefile-mode will assure that no line in the file ends with a backslash (the continuation character) followed by any whitespace. This is done by silently removing the trailing whitespace, leaving the backslash itself intact. IMPORTANT: Please note that enabling this option causes makefile-mode to MODIFY A FILE WITHOUT YOUR CONFIRMATION when 'it seems necessary'. makefile-browser-hook: A function or list of functions to be called just before the browser is entered. This is executed in the makefile buffer. makefile-special-targets-list: List of special targets. You will be offered to complete on one of those in the minibuffer whenever you enter a \".\" at the beginning of a line in makefile-mode." nil]) (fset 'makefile-next-dependency #[nil "` d#yĪb)" [here nil re-search-forward makefile-dependency-regex t 0] 4 "\ Move (point) to the beginning of the next dependency line below (point)." nil]) (fset 'makefile-previous-dependency #[nil "`y e#yĪb)" [here 0 re-search-backward makefile-dependency-regex t nil] 4 "\ Move (point) to the beginning of the next dependency line above (point)." nil]) (fset 'makefile-electric-dot #[nil "n c" [makefile-insert-special-target "."] 1 "\ At (bol), offer completion on makefile-special-targets-list. Anywhere else just insert a dot." nil]) (fset 'makefile-insert-special-target #[nil " ĉ%GU? \"c )" [makefile-pickup-targets completing-read "Special target: " makefile-special-targets-list nil special-target 0 format ".%s:" makefile-forward-after-target-colon] 7 "\ Complete on makefile-special-targets-list, insert result at (point)." nil]) (fset 'makefile-electric-equal #[nil " n!c" [makefile-pickup-macros call-interactively makefile-insert-macro "="] 2 "\ At (bol) do makefile-insert-macro. Anywhere else just self-insert." nil]) (fset 'makefile-insert-macro #[(macro-name) " GU?y #c !" [makefile-pickup-macros macro-name 0 format "%s%s" makefile-macro-assign t makefile-need-macro-pickup makefile-remember-macro] 4 "\ Prepare definition of a new macro." "sMacro Name: "]) (fset 'makefile-insert-macro-ref #[(macro-name) "GU? \"\"c!c" [macro-name 0 assoc makefile-runtime-macros-list format "$%s" makefile-format-macro-ref] 3 "\ Complete on a list of known macros, then insert complete ref at (point)." (byte-code " ĉ%C" [makefile-pickup-macros completing-read "Refer to macro: " makefile-macro-table nil] 6)]) (fset 'makefile-insert-target #[(target-name) "GU?y #c !" [target-name 0 format "%s%s" makefile-target-colon makefile-forward-after-target-colon nil t makefile-need-target-pickup makefile-remember-target] 4 "\ Prepare definition of a new target (dependency line)." "sTarget: "]) (fset 'makefile-insert-target-ref #[(target-name) "GU?\"c" [target-name 0 format "%s "] 3 "\ Complete on a list of known targets, then insert target-ref at (point) ." (byte-code " ĉ%C" [makefile-pickup-targets completing-read "Refer to target: " makefile-target-table nil] 6)]) (fset 'makefile-electric-colon #[nil "n!c" [call-interactively makefile-insert-target ":"] 2 "\ At (bol) defines a new target, anywhere else just self-insert ." nil]) (fset 'makefile-pickup-targets #[nil "??eb d# t)!" [makefile-need-target-pickup nil makefile-target-table makefile-has-prereqs re-search-forward makefile-dependency-regex t makefile-add-this-line-targets message "Read targets OK."] 4 "\ Scan a buffer that contains a makefile for target definitions (dependencies) and add them to the list of known targets." nil]) (fset 'makefile-add-this-line-targets #[nil "ye`\"T ?wl`f\"l`w`{\n!? \n \"\n #+G+" [0 nil count-lines line-number done-with-line " " char-equal 58 start-of-target-name "^ :#" target-name looking-at ":[ ]*$" has-prereqs makefile-remember-target message "Picked up target \"%s\" from line %d"] 4]) (fset 'makefile-pickup-macros #[nil "??eb d# yq)!" [makefile-need-macro-pickup nil makefile-macro-table re-search-forward makefile-macroassign-regex t makefile-add-this-line-macro 1 message "Read macros OK."] 4 "\ Scan a buffer that contains a makefile for macro definitions and add them to the list of known macros." nil]) (fset 'makefile-add-this-line-macro #[nil "ywl?`e`\"Tw `{! #+)" [0 " " nil start-of-macro-name count-lines line-number "^ :#=*" macro-name makefile-remember-macro message "Picked up macro \"%s\" from line %d"] 4]) (fset 'makefile-pickup-everything #[nil " \n " [makefile-pickup-macros makefile-pickup-targets makefile-pickup-everything-picks-up-filenames-p makefile-pickup-filenames-as-targets] 1 "\ Calls makefile-pickup-targets and makefile-pickup-macros. See their documentation for what they do." nil]) (fset 'makefile-pickup-filenames-as-targets #[nil " !\n\"ĉ\" \"*" [file-name-directory buffer-file-name dir file-name-all-completions "" raw-filename-list mapcar #[(name) " !? \"? ! \"" [file-directory-p name string-match makefile-ignored-files-in-pickup-regex makefile-remember-target message "Picked up file \"%s\" as target"] 3]] 4 "\ Scan the current directory for filenames, check each filename against makefile-ignored-files-in-pickup-regex and add all qualifying names to the list of known targets." nil]) (byte-code "MMM" [makefile-browser-format-target-line #[(target selected) "\n\" Q #" [format make-string makefile-browser-leftmost-column 32 selected makefile-browser-selected-mark makefile-browser-unselected-mark "%s%s" target makefile-target-colon] 4] makefile-browser-format-macro-line #[(macro selected) "\n\" !Q!" [format make-string makefile-browser-leftmost-column 32 selected makefile-browser-selected-mark makefile-browser-unselected-mark makefile-format-macro-ref macro] 5] makefile-browser-fill #[(targets macros) "eb ##ed#dSb!eb u)" [t inhibit-read-only erase-buffer mapconcat #[(item) " @\"ñ" [makefile-browser-format-target-line item nil "\n"] 3] targets "" #[(item) " @\"ñ" [makefile-browser-format-macro-line item nil "\n"] 3] macros sort-lines nil delete-char 1 makefile-browser-cursor-column] 4]] 2) (fset 'makefile-browser-next-line #[nil " ?y\nu" [makefile-last-line-p 1 makefile-browser-cursor-column] 1 "\ Move the browser selection cursor to the next line." nil]) (fset 'makefile-browser-previous-line #[nil " ?y\nu" [makefile-first-line-p -1 makefile-browser-cursor-column] 1 "\ Move the browser selection cursor to the previous line." nil]) (fset 'makefile-browser-quit #[nil "!p! !)" [makefile-browser-client my-client nil set-buffer-modified-p kill-buffer pop-to-buffer] 2 "\ Leave the makefile-browser-buffer and return to the buffer from that it has been entered." nil]) (fset 'makefile-browser-toggle #[nil "e`\" ] ! !y \n \n !\"c)   !\"c))yu )" [count-lines this-line 1 makefile-browser-toggle-state-for-line goto-line t inhibit-read-only 0 makefile-browser-on-macro-line-p makefile-browser-this-line-macro-name macro-name kill-line makefile-browser-format-macro-line makefile-browser-get-state-for-line makefile-browser-this-line-target-name target-name makefile-browser-format-target-line makefile-browser-cursor-column makefile-browser-auto-advance-after-selection-p makefile-browser-next-line] 4 "\ Toggle the selection state of the browser item at the cursor position." nil]) (fset 'makefile-browser-insert-continuation #[nil "qc)" [makefile-browser-client nil "\\\n "] 1 "\ Insert a makefile continuation. In the browser's client buffer, go to (end-of-line), insert a '\\' character, insert a new blank line, go to that line and indent by one TAB. This is most useful in the process of creating continued lines when copying large dependencies from the browser to the client buffer. (point) advances accordingly in the client buffer." nil]) (fset 'makefile-browser-insert-selection #[nil "!m?\n! y\nTl*" [goto-line 1 current-line makefile-browser-get-state-for-line makefile-browser-send-this-line-item] 2 "\ Insert all browser-selected targets and/or macros in the browser's client buffer. Insertion takes place at (point)." nil]) (byte-code "MMMMM" [makefile-browser-insert-selection-and-quit #[nil " " [makefile-browser-insert-selection makefile-browser-quit] 1 nil nil] makefile-browser-send-this-line-item #[nil "  q\n!ű*  qű*" [makefile-browser-on-macro-line-p makefile-browser-this-line-macro-name macro-name makefile-browser-client makefile-format-macro-ref " " makefile-browser-this-line-target-name target-name] 2] makefile-browser-start-interaction #[nil " !‰" [use-local-map makefile-browser-map t buffer-read-only] 2] makefile-browse #[(targets macros) "G G\\U !!!! \" G G\\\" )" [targets macros 0 beep message "No macros or targets to browse! Consider running 'makefile-pickup-everything'" get-buffer-create makefile-browser-buffer-name browser-buffer pop-to-buffer make-variable-buffer-local makefile-browser-selection-vector makefile-browser-fill shrink-window-if-larger-than-buffer make-vector nil makefile-browser-start-interaction] 3 nil nil] makefile-switch-to-browser #[nil "!p \"" [run-hooks makefile-browser-hook makefile-browser-client makefile-pickup-targets makefile-pickup-macros makefile-browse makefile-target-table makefile-macro-table] 3 nil nil]] 2) (fset 'makefile-create-up-to-date-overview #[nil "!\np ! \n \n    q \n # Up!! q  ! !! ed#ۉ." [y-or-n-p "Are you sure that the makefile being edited is consistent? " makefile-target-table get-buffer-create makefile-up-to-date-buffer-name makefile-save-temporary makefile-pickup-targets makefile-has-prereqs prereqs real-targets filename makefile-up-to-date-buffer this-buffer saved-target-table nil buffer-read-only erase-buffer makefile-query-targets buffer-size 0 kill-buffer message "No overview created!" get-buffer pop-to-buffer shrink-window-if-larger-than-buffer sort-lines t] 6 "\ Create a buffer containing an overview of the state of all known targets. Known targets are targets that are explicitly defined in that makefile; in other words, all targets that appear on the left hand side of a dependency in the makefile." nil]) (fset 'makefile-save-temporary #[nil " ed % )" [makefile-generate-temporary-filename filename write-region nil 0] 6 "\ Create a temporary file from the current makefile buffer."]) (fset 'makefile-generate-temporary-filename #[nil " ! GV O GV O R*" [user-login-name int-to-string user-uid my-uid my-name "mktmp" 3 0 "."] 6 "\ Create a filename suitable for use in makefile-save-temporary. Be careful to allow brain-dead file systems (DOS, SYSV ...) to cope with the generated name !"]) (fset 'makefile-query-targets #[(filename target-table prereq-list) "\n#ceb !" [mapconcat #[(item) "@\n? \" ɪʪ#+" [item target-name prereq-list no-prereqs makefile-query-one-target-method filename needs-rebuild format " %s%s" " .. has no prerequisites" " .. NEEDS REBUILD" " .. is up to date"] 5] target-table "\n" delete-file filename] 4 "\ This function fills the up-to-date-overview-buffer. It checks each target in target-table using makefile-query-one-target-method and generates the overview, one line per target name."]) (byte-code "MMM" [makefile-query-by-make-minus-q #[(target &optional filename) " ‰ &U?" [call-process makefile-brave-make nil "-f" filename "-q" target 0] 9] makefile-cleanup-continuations #[nil "=\n ?ebd#Ɖ#q)" [major-mode makefile-mode makefile-cleanup-continuations-p buffer-read-only re-search-forward "\\\\[ ]+$" t replace-match "\\"] 4] makefile-warn-suspicious-lines #[nil "\n=ebd#)e\"  \"!?)) )" [nil dont-save major-mode makefile-mode re-search-forward "\\(^[ ]+$\\)\\|\\(^[ ]+[ ]\\)" t suspicious count-lines line-nr y-or-n-p format "Suspicious line %d. Save anyway "] 5]] 2) (fset 'makefile-insert-gmake-function #[nil "\n% \n\"A GU? \"Q!ʱ*" [completing-read "Function: " makefile-gnumake-functions-alist nil t gm-function-name assoc gm-function-prompts 0 makefile-format-macro-ref " " makefile-prompt-for-gmake-funargs] 6 "\ This function is intended to help you using the numerous macro-like 'function calls' of GNU make. It will ask you for the name of the function you wish to use (with completion), then, after you selected the function, it will prompt you for all required parameters. This function 'knows' about the required parameters of every GNU make function and will use meaningfull prompts for the various args, making it much easier to take advantage of this powerful GNU make feature." nil]) (fset 'makefile-prompt-for-gmake-funargs #[(function-name prompt-list) "\n#" [mapconcat #[(one-prompt) " #\"" [read-string format "[%s] %s: " function-name one-prompt nil] 5] prompt-list ","] 4]) (fset 'makefile-remember-target #[(target-name &optional has-prereqs) "GU? \"C B  B" [target-name 0 assoc makefile-target-table has-prereqs makefile-has-prereqs] 3 "\ Remember a given target if it is not already remembered for this buffer."]) (fset 'makefile-remember-macro #[(macro-name) "GU? \"?C B" [macro-name 0 assoc makefile-macro-table] 3 "\ Remember a given macro if it is not already remembered for this buffer."]) (fset 'makefile-forward-after-target-colon #[nil "cc" [makefile-tab-after-target-colon " " " "] 1 "\ Move point forward after the terminating colon of a target has been inserted. This accts according to the value of makefile-tab-after-target-colon ."]) (fset 'makefile-browser-on-macro-line-p #[nil "y #)" [0 re-search-forward "\\$[{(]" makefile-end-of-line-point t] 4 "\ Determine if point is on a macro line in the browser."]) (fset 'makefile-browser-this-line-target-name #[nil "x` S{)" [nil "^ " makefile-end-of-line-point] 2 "\ Extract the target name from a line in the browser."]) (fset 'makefile-browser-this-line-macro-name #[nil "y #`w `{*" [0 re-search-forward "\\$[{(]" makefile-end-of-line-point t macro-start "^})" nil] 4 "\ Extract the macro name from a line in the browser."]) (fset 'makefile-format-macro-ref #[(macro-name) " !\" !\" \" \" \"" [char-equal 40 string-to-char macro-name 123 format "$%s" makefile-use-curly-braces-for-macros-p "${%s}" "$(%s)"] 4 "\ Format a macro reference according to the value of the configuration variable makefile-use-curly-braces-for-macros-p ."]) (byte-code "MMMMMMM" [makefile-browser-get-state-for-line #[(n) " SH" [makefile-browser-selection-vector n] 2] makefile-browser-set-state-for-line #[(n to-state) " S\nI" [makefile-browser-selection-vector n to-state] 3] makefile-browser-toggle-state-for-line #[(n) " !?\"" [makefile-browser-set-state-for-line n makefile-browser-get-state-for-line] 4] makefile-beginning-of-line-point #[nil "y`)" [0] 1] makefile-end-of-line-point #[nil "`)" [nil] 1] makefile-last-line-p #[nil " dU" [makefile-end-of-line-point] 2] makefile-first-line-p #[nil " eU" [makefile-beginning-of-line-point] 2]] 2)