Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
3c0ab532
Commit
3c0ab532
authored
Jul 10, 2006
by
Alan Mackenzie
Browse files
* progmodes/cc-awk.el, cc-defs.el, cc-fonts.el, cc-langs.el,
cc-mode.el: Changes to eradicate eval-after-load.
parent
c399d545
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
150 additions
and
145 deletions
+150
-145
lisp/ChangeLog
lisp/ChangeLog
+5
-0
lisp/progmodes/cc-awk.el
lisp/progmodes/cc-awk.el
+91
-1
lisp/progmodes/cc-defs.el
lisp/progmodes/cc-defs.el
+37
-35
lisp/progmodes/cc-fonts.el
lisp/progmodes/cc-fonts.el
+10
-104
lisp/progmodes/cc-langs.el
lisp/progmodes/cc-langs.el
+4
-3
lisp/progmodes/cc-mode.el
lisp/progmodes/cc-mode.el
+3
-2
No files found.
lisp/ChangeLog
View file @
3c0ab532
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
...
...
lisp/progmodes/cc-awk.el
View file @
3c0ab532
...
...
@@ -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.
...
...
@@ -852,6 +852,96 @@
(
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."
)
;; ACM 2002/9/29. Movement functions, e.g. for C-M-a and C-M-e
...
...
lisp/progmodes/cc-defs.el
View file @
3c0ab532
...
...
@@ -69,14 +69,15 @@
(
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."
;; 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
)
;
))
;;; 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'.
...
...
lisp/progmodes/cc-fonts.el
View file @
3c0ab532
...
...
@@ -348,15 +348,15 @@
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
)))))
;; 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."
))
;; 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
...
...
lisp/progmodes/cc-langs.el
View file @
3c0ab532
...
...
@@ -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.
...
...
lisp/progmodes/cc-mode.el
View file @
3c0ab532
...
...
@@ -114,8 +114,9 @@
;; 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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment