/[emacs]/emacs/lisp/progmodes/make-mode.el
ViewVC logotype

Diff of /emacs/lisp/progmodes/make-mode.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.94 by pfeiffer, Wed May 18 20:10:48 2005 UTC revision 1.95 by pfeiffer, Thu May 19 02:16:32 2005 UTC
# Line 891  Makefile mode can be configured by modif Line 891  Makefile mode can be configured by modif
891      (beginning-of-line)      (beginning-of-line)
892      ;; makefile-match-dependency done backwards:      ;; makefile-match-dependency done backwards:
893      (catch 'found      (catch 'found
894        (while (and (< (skip-chars-backward makefile-dependency-skip) 0)        (while (progn (skip-chars-backward makefile-dependency-skip)
895                    (not (bobp)))                      (not (bobp)))
896          (or (prog1 (eq (char-after) ?=)          (or (prog1 (eq (char-after) ?=)
897                (backward-char))                (backward-char))
898              (get-text-property (point) 'face)              (get-text-property (point) 'face)
# Line 998  Anywhere else just self-inserts." Line 998  Anywhere else just self-inserts."
998  (defun makefile-pickup-targets ()  (defun makefile-pickup-targets ()
999    "Notice names of all target definitions in Makefile."    "Notice names of all target definitions in Makefile."
1000    (interactive)    (interactive)
1001    (if (not makefile-need-target-pickup)    (when makefile-need-target-pickup
1002        nil      (setq makefile-need-target-pickup nil
1003      (setq makefile-need-target-pickup nil)            makefile-target-table nil
1004      (setq makefile-target-table nil)            makefile-has-prereqs nil)
     (setq makefile-has-prereqs nil)  
1005      (save-excursion      (save-excursion
1006        (goto-char (point-min))        (goto-char (point-min))
1007        (while (makefile-match-dependency nil)        (while (makefile-match-dependency nil)
1008          (makefile-add-this-line-targets)))          (goto-char (match-beginning 1))
1009      (message "Read targets OK.")))          (while (let ((target-name
1010                          (buffer-substring-no-properties (point)
1011  (defun makefile-add-this-line-targets ()                                                        (progn
1012    (save-excursion                                                          (skip-chars-forward "^ \t:#")
1013      (beginning-of-line)                                                          (point))))
     (let ((done-with-line nil)  
           (line-number (1+ (count-lines (point-min) (point)))))  
       (while (not done-with-line)  
         (skip-chars-forward " \t")  
         (if (not (setq done-with-line (or (eolp)  
                                           (char-equal (char-after (point)) ?:))))  
             (progn  
               (let* ((start-of-target-name (point))  
                      (target-name  
                       (progn  
                         (skip-chars-forward "^ \t:#")  
                         (buffer-substring start-of-target-name (point))))  
1014                       (has-prereqs                       (has-prereqs
1015                        (not (looking-at ":[ \t]*$"))))                        (not (looking-at ":[ \t]*$"))))
1016                  (if (makefile-remember-target target-name has-prereqs)                   (if (makefile-remember-target target-name has-prereqs)
1017                      (message "Picked up target \"%s\" from line %d"                       (message "Picked up target \"%s\" from line %d"
1018                               target-name line-number)))))))))                                target-name (line-number-at-pos)))
1019                     (skip-chars-forward " \t")
1020                     (not (or (eolp) (eq (char-after) ?:)))))
1021            (forward-line)))
1022        (message "Read targets OK.")))
1023    
1024  (defun makefile-pickup-macros ()  (defun makefile-pickup-macros ()
1025    "Notice names of all macro definitions in Makefile."    "Notice names of all macro definitions in Makefile."
1026    (interactive)    (interactive)
1027    (if (not makefile-need-macro-pickup)    (when makefile-need-macro-pickup
1028        nil      (setq makefile-need-macro-pickup nil
1029      (setq makefile-need-macro-pickup nil)            makefile-macro-table nil)
     (setq makefile-macro-table nil)  
1030      (save-excursion      (save-excursion
1031        (goto-char (point-min))        (goto-char (point-min))
1032        (while (re-search-forward makefile-macroassign-regex nil t)        (while (re-search-forward makefile-macroassign-regex nil t)
1033          (makefile-add-this-line-macro)          (goto-char (match-beginning 1))
1034          (forward-line 1)))          (let ((macro-name (buffer-substring-no-properties (point)
1035                                                              (progn
1036                                                                (skip-chars-forward "^ \t:#=*")
1037                                                                (point)))))
1038              (if (makefile-remember-macro macro-name)
1039                  (message "Picked up macro \"%s\" from line %d"
1040                           macro-name (line-number-at-pos))))
1041            (forward-line)))
1042      (message "Read macros OK.")))      (message "Read macros OK.")))
1043    
 (defun makefile-add-this-line-macro ()  
   (save-excursion  
     (beginning-of-line)  
     (skip-chars-forward " \t")  
     (unless (eolp)  
       (let* ((start-of-macro-name (point))  
              (line-number (1+ (count-lines (point-min) (point))))  
              (macro-name (progn  
                            (skip-chars-forward "^ \t:#=*")  
                            (buffer-substring start-of-macro-name (point)))))  
         (if (makefile-remember-macro macro-name)  
             (message "Picked up macro \"%s\" from line %d"  
                      macro-name line-number))))))  
   
1044  (defun makefile-pickup-everything (arg)  (defun makefile-pickup-everything (arg)
1045    "Notice names of all macros and targets in Makefile.    "Notice names of all macros and targets in Makefile.
1046  Prefix arg means force pickups to be redone."  Prefix arg means force pickups to be redone."
1047    (interactive "P")    (interactive "P")
1048    (if arg    (if arg
1049        (progn        (setq makefile-need-target-pickup t
1050          (setq makefile-need-target-pickup t)              makefile-need-macro-pickup t))
         (setq makefile-need-macro-pickup t)))  
1051    (makefile-pickup-macros)    (makefile-pickup-macros)
1052    (makefile-pickup-targets)    (makefile-pickup-targets)
1053    (if makefile-pickup-everything-picks-up-filenames-p    (if makefile-pickup-everything-picks-up-filenames-p
# Line 1076  Prefix arg means force pickups to be red Line 1058  Prefix arg means force pickups to be red
1058  Checks each filename against `makefile-ignored-files-in-pickup-regex'  Checks each filename against `makefile-ignored-files-in-pickup-regex'
1059  and adds all qualifying names to the list of known targets."  and adds all qualifying names to the list of known targets."
1060    (interactive)    (interactive)
1061    (let* ((dir (file-name-directory (buffer-file-name)))    (mapc (lambda (name)
1062           (raw-filename-list (if dir            (or (file-directory-p name)
1063                                  (file-name-all-completions "" dir)                (string-match makefile-ignored-files-in-pickup-regex name)
1064                                (file-name-all-completions "" ""))))                (if (makefile-remember-target name)
1065      (mapcar (lambda (name)                    (message "Picked up file \"%s\" as target" name))))
1066                 (if (and (not (file-directory-p name))          (file-name-all-completions "" (or (file-name-directory (buffer-file-name)) ""))))
                         (not (string-match makefile-ignored-files-in-pickup-regex  
                                            name)))  
                    (if (makefile-remember-target name)  
                        (message "Picked up file \"%s\" as target" name))))  
             raw-filename-list)))  
1067    
1068    
1069    
# Line 1704  Checks that the colon has not already be Line 1681  Checks that the colon has not already be
1681  matched in a rule action."  matched in a rule action."
1682    (catch 'found    (catch 'found
1683      (let ((pt (point)))      (let ((pt (point)))
1684        (while (and (> (skip-chars-forward makefile-dependency-skip bound) 0)        (while (progn (skip-chars-forward makefile-dependency-skip bound)
1685                    (not (eobp)))                      (not (eobp)))
1686          (forward-char)          (forward-char)
1687          (or (eq (char-after) ?=)          (or (eq (char-after) ?=)
1688              (get-text-property (1- (point)) 'face)              (get-text-property (1- (point)) 'face)

Legend:
Removed from v.1.94  
changed lines
  Added in v.1.95

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26