]> git.eshelyaron.com Git - emacs.git/commitdiff
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
authorAlan Mackenzie <acm@muc.de>
Mon, 10 Jul 2006 13:19:14 +0000 (13:19 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 10 Jul 2006 13:19:14 +0000 (13:19 +0000)
cc-mode.el: Changes to eradicate eval-after-load.

lisp/ChangeLog
lisp/progmodes/cc-awk.el
lisp/progmodes/cc-defs.el
lisp/progmodes/cc-fonts.el
lisp/progmodes/cc-langs.el
lisp/progmodes/cc-mode.el

index 0760219e14c230d27f93635b1470f74804fc7b38..22737a04678be5aa1ea19ea11d781a3d85fe43df 100644 (file)
@@ -1,3 +1,8 @@
+2006-07-10  Alan Mackenzie  <acm@muc.de>
+
+       * progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
+       cc-mode.el: Changes to eradicate eval-after-load.
+
 2006-07-09  Chong Yidong  <cyd@stupidchicken.com>
 
        * emacs-lisp/helper.el (Helper-help-scroller): Don't signal error
index 284a2edbe949684176ebc6ce1735fa561e9ec16c..4a475784106be092da4e3d860e2f65aab4cf8799 100644 (file)
@@ -32,7 +32,7 @@
 ;;   1. The AWK Mode syntax table.
 ;;   2. Regular expressions for analysing AWK code.
 ;;   3. Indentation calculation stuff ("c-awk-NL-prop text-property").
-;;   4. Syntax-table property/font-locking stuff, but not including the
+;;   4. Syntax-table property/font-locking stuff, including the
 ;;      font-lock-keywords setting.
 ;;   5. The AWK Mode before/after-change-functions.
 ;;   6. AWK Mode specific versions of commands like beginning-of-defun.
 (c-awk-advise-fl-for-awk-region lazy-lock-defer-rest-after-change)
 (c-awk-advise-fl-for-awk-region lazy-lock-defer-line-after-change)
 
+;; Awk regexps written with help from Peter Galbraith
+;; <galbraith@mixing.qc.dfo.ca>.
+;; Take GNU Emacs's 'words out of the following regexp-opts.  They dont work
+;; in Xemacs 21.4.4.  acm 2002/9/19.
+(defconst awk-font-lock-keywords
+  (eval-when-compile
+    (list
+     ;; Function names.
+     '("^\\s *\\(func\\(tion\\)?\\)\\>\\s *\\(\\sw+\\)?"
+       (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
+     ;;
+     ;; Variable names.
+     (cons
+      (concat "\\<"
+             (regexp-opt
+              '("ARGC" "ARGIND" "ARGV" "BINMODE" "CONVFMT" "ENVIRON"
+                "ERRNO" "FIELDWIDTHS" "FILENAME" "FNR" "FS" "IGNORECASE"
+                "LINT" "NF" "NR" "OFMT" "OFS" "ORS" "PROCINFO" "RLENGTH"
+                "RS" "RSTART" "RT" "SUBSEP" "TEXTDOMAIN") t) "\\>")
+      'font-lock-variable-name-face)
+
+     ;; Special file names.  (acm, 2002/7/22)
+     ;; The following regexp was created by first evaluating this in GNU Emacs 21.1:
+     ;; (regexp-opt '("/dev/stdin" "/dev/stdout" "/dev/stderr" "/dev/fd/n" "/dev/pid"
+     ;;                 "/dev/ppid" "/dev/pgrpid" "/dev/user") 'words)
+     ;; , removing the "?:" from each "\\(?:" (for backward compatibility with older Emacsen)
+     ;; , replacing the "n" in "dev/fd/n" with "[0-9]+"
+     ;; , removing the unwanted \\< at the beginning, and finally filling out the
+     ;; regexp so that a " must come before, and either a " or heuristic stuff after.
+     ;; The surrounding quotes are fontified along with the filename, since, semantically,
+     ;; they are an indivisible unit.
+     '("\\(\"/dev/\\(fd/[0-9]+\\|p\\(\\(\\(gr\\)?p\\)?id\\)\\|\
+std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
+\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
+       (1 font-lock-variable-name-face t)
+       (8 font-lock-variable-name-face t t))
+     ;; Do the same (almost) with
+     ;; (regexp-opt '("/inet/tcp/lport/rhost/rport" "/inet/udp/lport/rhost/rport"
+     ;;                 "/inet/raw/lport/rhost/rport") 'words)
+     ;; This cannot be combined with the above pattern, because the match number
+     ;; for the (optional) closing \" would then exceed 9.
+     '("\\(\"/inet/\\(\\(raw\\|\\(tc\\|ud\\)p\\)/lport/rhost/rport\\)\\)\\>\
+\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
+       (1 font-lock-variable-name-face t)
+       (6 font-lock-variable-name-face t t))
+
+     ;; Keywords.
+     (concat "\\<"
+            (regexp-opt
+             '("BEGIN" "END" "break" "continue" "delete" "do" "else"
+               "exit" "for" "getline" "if" "in" "next" "nextfile"
+               "return" "while")
+             t) "\\>")
+
+     ;; Builtins.
+     `(eval . (list
+              ,(concat
+                "\\<"
+                (regexp-opt
+                 '("adump" "and" "asort" "atan2" "bindtextdomain" "close"
+                   "compl" "cos" "dcgettext" "exp" "extension" "fflush"
+                   "gensub" "gsub" "index" "int" "length" "log" "lshift"
+                   "match" "mktime" "or" "print" "printf" "rand" "rshift"
+                   "sin" "split" "sprintf" "sqrt" "srand" "stopme"
+                   "strftime" "strtonum" "sub" "substr"  "system"
+                   "systime" "tolower" "toupper" "xor") t)
+                "\\>")
+              0 c-preprocessor-face-name))
+
+     ;; gawk debugging keywords.  (acm, 2002/7/21)
+     ;; (Removed, 2003/6/6.  These functions are now fontified as built-ins)
+     ;;        (list (concat "\\<" (regexp-opt '("adump" "stopme") t) "\\>")
+     ;;           0 'font-lock-warning-face)
+
+     ;; User defined functions with an apparent spurious space before the
+     ;; opening parenthesis.  acm, 2002/5/30.
+     `(,(concat "\\(\\w\\|_\\)" c-awk-escaped-nls* "\\s "
+               c-awk-escaped-nls*-with-space* "(")
+       (0 'font-lock-warning-face))
+
+     ;; Space after \ in what looks like an escaped newline.  2002/5/31
+     '("\\\\\\s +$" 0 font-lock-warning-face t)
+
+     ;; Unbalanced string (") or regexp (/) delimiters.  2002/02/16.
+     '("\\s|" 0 font-lock-warning-face t nil)
+     ;; gawk 3.1 localizable strings ( _"translate me!").  2002/5/21
+     '("\\(_\\)\\s|" 1 font-lock-warning-face)
+     '("\\(_\\)\\s\"" 1 font-lock-string-face) ; FIXME! not for XEmacs. 2002/10/6
+     ))
+  "Default expressions to highlight in AWK mode.")
 \f
 ;; ACM 2002/9/29.  Movement functions, e.g. for C-M-a and C-M-e
 
index d39c4880dcc8094817cdbc64f9b1b825659a08a0..ecad9174e57c13610cdcab59d1435de3be2aceb4 100644 (file)
          (not (fboundp 'push)))
       (cc-load "cc-fix")))
 
-(eval-after-load "font-lock"
-  '(if (and (not (featurep 'cc-fix)) ; only load the file once.
+; (eval-after-load "font-lock"  ; 2006-07-09.  font-lock is now preloaded
+;   '
+(if (and (not (featurep 'cc-fix)) ; only load the file once.
            (featurep 'xemacs) ; There is now (2005/12) code in GNU Emacs CVS
                               ; to make the call to f-l-c-k throw an error.
             (let (font-lock-keywords)
               (font-lock-compile-keywords '("\\<\\>"))
              font-lock-keywords))     ; did the previous call foul this up?
-       (load "cc-fix")))
+       (load "cc-fix")) ;)
 
 ;; The above takes care of the delayed loading, but this is necessary
 ;; to ensure correct byte compilation.
@@ -1034,35 +1035,35 @@ MODE is either a mode symbol or a list of mode symbols."
 
 \f
 ;; Make edebug understand the macros.
-(eval-after-load "edebug"
-  '(progn
-     (def-edebug-spec cc-eval-when-compile t)
-     (def-edebug-spec c-point t)
-     (def-edebug-spec c-set-region-active t)
-     (def-edebug-spec c-safe t)
-     (def-edebug-spec c-save-buffer-state let*)
-     (def-edebug-spec c-tentative-buffer-changes t)
-     (def-edebug-spec c-forward-syntactic-ws t)
-     (def-edebug-spec c-backward-syntactic-ws t)
-     (def-edebug-spec c-forward-sexp t)
-     (def-edebug-spec c-backward-sexp t)
-     (def-edebug-spec c-up-list-forward t)
-     (def-edebug-spec c-up-list-backward t)
-     (def-edebug-spec c-down-list-forward t)
-     (def-edebug-spec c-down-list-backward t)
-     (def-edebug-spec c-add-syntax t)
-     (def-edebug-spec c-add-class-syntax t)
-     (def-edebug-spec c-benign-error t)
-     (def-edebug-spec c-with-syntax-table t)
-     (def-edebug-spec c-skip-ws-forward t)
-     (def-edebug-spec c-skip-ws-backward t)
-     (def-edebug-spec c-major-mode-is t)
-     (def-edebug-spec c-put-char-property t)
-     (def-edebug-spec c-get-char-property t)
-     (def-edebug-spec c-clear-char-property t)
-     (def-edebug-spec c-clear-char-properties t)
-     (def-edebug-spec c-put-overlay t)
-     (def-edebug-spec c-delete-overlay t)))
+;(eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
+;  '(progn
+(def-edebug-spec cc-eval-when-compile t)
+(def-edebug-spec c-point t)
+(def-edebug-spec c-set-region-active t)
+(def-edebug-spec c-safe t)
+(def-edebug-spec c-save-buffer-state let*)
+(def-edebug-spec c-tentative-buffer-changes t)
+(def-edebug-spec c-forward-syntactic-ws t)
+(def-edebug-spec c-backward-syntactic-ws t)
+(def-edebug-spec c-forward-sexp t)
+(def-edebug-spec c-backward-sexp t)
+(def-edebug-spec c-up-list-forward t)
+(def-edebug-spec c-up-list-backward t)
+(def-edebug-spec c-down-list-forward t)
+(def-edebug-spec c-down-list-backward t)
+(def-edebug-spec c-add-syntax t)
+(def-edebug-spec c-add-class-syntax t)
+(def-edebug-spec c-benign-error t)
+(def-edebug-spec c-with-syntax-table t)
+(def-edebug-spec c-skip-ws-forward t)
+(def-edebug-spec c-skip-ws-backward t)
+(def-edebug-spec c-major-mode-is t)
+(def-edebug-spec c-put-char-property t)
+(def-edebug-spec c-get-char-property t)
+(def-edebug-spec c-clear-char-property t)
+(def-edebug-spec c-clear-char-properties t)
+(def-edebug-spec c-put-overlay t)
+(def-edebug-spec c-delete-overlay t) ;))
 
 \f
 ;;; Functions.
@@ -1738,9 +1739,10 @@ constant.  A file is identified by its base name."
                               ,@(and pre-files `(',pre-files))))))
 
 (put 'c-lang-defconst 'lisp-indent-function 1)
-(eval-after-load "edebug"
-  '(def-edebug-spec c-lang-defconst
-     (&define name [&optional stringp] [&rest sexp def-form])))
+;(eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
+;  '
+(def-edebug-spec c-lang-defconst
+  (&define name [&optional stringp] [&rest sexp def-form]))
 
 (defun c-define-lang-constant (name bindings &optional pre-files)
   ;; Used by `c-lang-defconst'.
index 75d631ac3992460cb6f155cb939a124b4e17b674..9c051506888810a5f1f3cff04df156186ddfe756 100644 (file)
                 highlights))))
        nil)))
 
-  (eval-after-load "edebug"
-    '(progn
-       (def-edebug-spec c-fontify-types-and-refs let*)
-       (def-edebug-spec c-make-syntactic-matcher t)
-       ;; If there are literal quoted or backquoted highlight specs in
-       ;; the call to `c-make-font-lock-search-function' then let's
-       ;; instrument the forms in them.
-       (def-edebug-spec c-make-font-lock-search-function
-        (form &rest &or ("quote" (&rest form)) ("`" (&rest form)) form)))))
+;  (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
+;    '(progn
+  (def-edebug-spec c-fontify-types-and-refs let*)
+  (def-edebug-spec c-make-syntactic-matcher t)
+  ;; If there are literal quoted or backquoted highlight specs in
+  ;; the call to `c-make-font-lock-search-function' then let's
+  ;; instrument the forms in them.
+  (def-edebug-spec c-make-font-lock-search-function
+    (form &rest &or ("quote" (&rest form)) ("`" (&rest form)) form)));))
 
 (defun c-fontify-recorded-types-and-refs ()
   ;; Convert the ranges recorded on `c-record-type-identifiers' and
@@ -2268,101 +2268,7 @@ need for `pike-font-lock-extra-types'.")
          autodoc-font-lock-doc-comments)))))
 
 \f
-;; AWK.
-
-;; Awk regexps written with help from Peter Galbraith
-;; <galbraith@mixing.qc.dfo.ca>.
-;; Take GNU Emacs's 'words out of the following regexp-opts.  They dont work
-;; in Xemacs 21.4.4.  acm 2002/9/19.
-(eval-after-load "cc-awk"               ; Evaluate while loading cc-fonts
-  `(defconst awk-font-lock-keywords     ; Evaluate after loading cc-awk
-     ',(eval-when-compile               ; Evaluate while compiling cc-fonts
-        (list
-         ;; Function names.
-         '("^\\s *\\(func\\(tion\\)?\\)\\>\\s *\\(\\sw+\\)?"
-           (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
-         ;;
-         ;; Variable names.
-         (cons
-          (concat "\\<"
-                  (regexp-opt
-                   '("ARGC" "ARGIND" "ARGV" "BINMODE" "CONVFMT" "ENVIRON"
-                     "ERRNO" "FIELDWIDTHS" "FILENAME" "FNR" "FS" "IGNORECASE"
-                     "LINT" "NF" "NR" "OFMT" "OFS" "ORS" "PROCINFO" "RLENGTH"
-                     "RS" "RSTART" "RT" "SUBSEP" "TEXTDOMAIN") t) "\\>")
-          'font-lock-variable-name-face)
-
-         ;; Special file names.  (acm, 2002/7/22)
-         ;; The following regexp was created by first evaluating this in GNU Emacs 21.1:
-         ;; (regexp-opt '("/dev/stdin" "/dev/stdout" "/dev/stderr" "/dev/fd/n" "/dev/pid"
-         ;;                 "/dev/ppid" "/dev/pgrpid" "/dev/user") 'words)
-         ;; , removing the "?:" from each "\\(?:" (for backward compatibility with older Emacsen)
-         ;; , replacing the "n" in "dev/fd/n" with "[0-9]+"
-         ;; , removing the unwanted \\< at the beginning, and finally filling out the
-         ;; regexp so that a " must come before, and either a " or heuristic stuff after.
-         ;; The surrounding quotes are fontified along with the filename, since, semantically,
-         ;; they are an indivisible unit.
-         '("\\(\"/dev/\\(fd/[0-9]+\\|p\\(\\(\\(gr\\)?p\\)?id\\)\\|\
-std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
-\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
-           (1 font-lock-variable-name-face t)
-           (8 font-lock-variable-name-face t t))
-         ;; Do the same (almost) with
-         ;; (regexp-opt '("/inet/tcp/lport/rhost/rport" "/inet/udp/lport/rhost/rport"
-         ;;                 "/inet/raw/lport/rhost/rport") 'words)
-         ;; This cannot be combined with the above pattern, because the match number
-         ;; for the (optional) closing \" would then exceed 9.
-         '("\\(\"/inet/\\(\\(raw\\|\\(tc\\|ud\\)p\\)/lport/rhost/rport\\)\\)\\>\
-\\(\\(\"\\)\\|\\([^\"/\n\r][^\"\n\r]*\\)?$\\)"
-           (1 font-lock-variable-name-face t)
-           (6 font-lock-variable-name-face t t))
-
-         ;; Keywords.
-         (concat "\\<"
-                 (regexp-opt
-                  '("BEGIN" "END" "break" "continue" "delete" "do" "else"
-                    "exit" "for" "getline" "if" "in" "next" "nextfile"
-                    "return" "while")
-                  t) "\\>")
-
-         ;; Builtins.
-         `(eval . (list
-                   ,(concat
-                     "\\<"
-                     (regexp-opt
-                      '("adump" "and" "asort" "atan2" "bindtextdomain" "close"
-                        "compl" "cos" "dcgettext" "exp" "extension" "fflush"
-                        "gensub" "gsub" "index" "int" "length" "log" "lshift"
-                        "match" "mktime" "or" "print" "printf" "rand" "rshift"
-                        "sin" "split" "sprintf" "sqrt" "srand" "stopme"
-                        "strftime" "strtonum" "sub" "substr"  "system"
-                        "systime" "tolower" "toupper" "xor") t)
-                     "\\>")
-                   0 c-preprocessor-face-name))
-
-         ;; gawk debugging keywords.  (acm, 2002/7/21)
-         ;; (Removed, 2003/6/6.  These functions are now fontified as built-ins)
-;;     (list (concat "\\<" (regexp-opt '("adump" "stopme") t) "\\>")
-;;        0 'font-lock-warning-face)
-
-         ;; User defined functions with an apparent spurious space before the
-         ;; opening parenthesis.  acm, 2002/5/30.
-         `(,(concat "\\(\\w\\|_\\)" c-awk-escaped-nls* "\\s "
-                    c-awk-escaped-nls*-with-space* "(")
-           (0 'font-lock-warning-face))
-
-         ;; Space after \ in what looks like an escaped newline.  2002/5/31
-         '("\\\\\\s +$" 0 font-lock-warning-face t)
-
-         ;; Unbalanced string (") or regexp (/) delimiters.  2002/02/16.
-         '("\\s|" 0 font-lock-warning-face t nil)
-         ;; gawk 3.1 localizable strings ( _"translate me!").  2002/5/21
-         '("\\(_\\)\\s|" 1 font-lock-warning-face)
-         '("\\(_\\)\\s\"" 1 font-lock-string-face) ; FIXME! not for XEmacs. 2002/10/6
-         ))
-     "Default expressions to highlight in AWK mode."))
-
-\f
+;; 2006-07-10:  awk-font-lock-keywords has been moved back to cc-awk.el.
 (cc-provide 'cc-fonts)
 
 ;;; arch-tag: 2f65f405-735f-4da5-8d4b-b957844c5203
index 8120094f606d2dea2fa2c133468c74dad9c7b941..e7a0d03cc5522022a8ca753b59548ec3a5b7b4d3 100644 (file)
@@ -173,9 +173,10 @@ the evaluated constant value at compile time."
   `',var)
 
 (put 'c-lang-defvar 'lisp-indent-function 'defun)
-(eval-after-load "edebug"
-  '(def-edebug-spec c-lang-defvar
-     (&define name def-form &optional stringp)))
+; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el.
+;  '
+(def-edebug-spec c-lang-defvar
+  (&define name def-form &optional stringp)) ;)
 
 (eval-and-compile
   ;; Some helper functions used when building the language constants.
index 9eebdb2bb7f6ef53fc26e3024ab845714f6ae54a..7343ec735ea35a6179866e90289eaf5935c66f83 100644 (file)
 
 ;; Load cc-fonts first after font-lock is loaded, since it isn't
 ;; necessary until font locking is requested.
-(eval-after-load "font-lock"
-  '(require 'cc-fonts))
+; (eval-after-load "font-lock" ; 2006-07-09: font-lock is now preloaded.
+;   '
+(require 'cc-fonts) ;)
 
 ;; cc-langs isn't loaded when we're byte compiled, so add autoload
 ;; directives for the interface functions.