aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorPaul Eggert2012-04-09 15:54:59 -0700
committerPaul Eggert2012-04-09 15:54:59 -0700
commit45e9f7da84c1bd3fc0d36d05c5708ed3b2d3a193 (patch)
tree5bc87a8b5a3c754b8eb44a612cc6c03561d6b968 /lisp/progmodes
parent9d6b4d53469a9ffd67bd770fabc6fe254e35c21d (diff)
parent05920a43fc18e696b464387e781e7cfdcea5b5af (diff)
downloademacs-45e9f7da84c1bd3fc0d36d05c5708ed3b2d3a193.tar.gz
emacs-45e9f7da84c1bd3fc0d36d05c5708ed3b2d3a193.zip
Merge from trunk.
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/ada-mode.el68
-rw-r--r--lisp/progmodes/ada-xref.el28
-rw-r--r--lisp/progmodes/antlr-mode.el26
-rw-r--r--lisp/progmodes/asm-mode.el2
-rw-r--r--lisp/progmodes/cc-cmds.el27
-rw-r--r--lisp/progmodes/cc-engine.el290
-rw-r--r--lisp/progmodes/cc-langs.el6
-rw-r--r--lisp/progmodes/cc-mode.el4
-rw-r--r--lisp/progmodes/cfengine.el2
-rw-r--r--lisp/progmodes/cmacexp.el6
-rw-r--r--lisp/progmodes/compile.el8
-rw-r--r--lisp/progmodes/cpp.el12
-rw-r--r--lisp/progmodes/cwarn.el2
-rw-r--r--lisp/progmodes/dcl-mode.el42
-rw-r--r--lisp/progmodes/delphi.el22
-rw-r--r--lisp/progmodes/ebnf2ps.el128
-rw-r--r--lisp/progmodes/ebrowse.el44
-rw-r--r--lisp/progmodes/etags.el35
-rw-r--r--lisp/progmodes/executable.el14
-rw-r--r--lisp/progmodes/f90.el2
-rw-r--r--lisp/progmodes/gdb-mi.el24
-rw-r--r--lisp/progmodes/glasses.el2
-rw-r--r--lisp/progmodes/grep.el12
-rw-r--r--lisp/progmodes/gud.el6
-rw-r--r--lisp/progmodes/hideshow.el19
-rw-r--r--lisp/progmodes/icon.el14
-rw-r--r--lisp/progmodes/idlw-help.el10
-rw-r--r--lisp/progmodes/idlw-shell.el66
-rw-r--r--lisp/progmodes/idlwave.el118
-rw-r--r--lisp/progmodes/inf-lisp.el10
-rw-r--r--lisp/progmodes/m4-mode.el2
-rw-r--r--lisp/progmodes/make-mode.el40
-rw-r--r--lisp/progmodes/modula2.el4
-rw-r--r--lisp/progmodes/octave-inf.el2
-rw-r--r--lisp/progmodes/pascal.el22
-rw-r--r--lisp/progmodes/perl-mode.el47
-rw-r--r--lisp/progmodes/prolog.el4
-rw-r--r--lisp/progmodes/ps-mode.el22
-rw-r--r--lisp/progmodes/python.el6
-rw-r--r--lisp/progmodes/ruby-mode.el11
-rw-r--r--lisp/progmodes/scheme.el4
-rw-r--r--lisp/progmodes/sh-script.el6
-rw-r--r--lisp/progmodes/simula.el22
-rw-r--r--lisp/progmodes/tcl.el24
-rw-r--r--lisp/progmodes/vera-mode.el6
-rw-r--r--lisp/progmodes/verilog-mode.el164
-rw-r--r--lisp/progmodes/vhdl-mode.el242
-rw-r--r--lisp/progmodes/xscheme.el6
48 files changed, 942 insertions, 741 deletions
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 8ccb8f17d80..33ff4645a77 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -139,7 +139,7 @@
139 version-string))) 139 version-string)))
140 140
141(defvar ada-mode-hook nil 141(defvar ada-mode-hook nil
142 "*List of functions to call when Ada mode is invoked. 142 "List of functions to call when Ada mode is invoked.
143This hook is automatically executed after the `ada-mode' is 143This hook is automatically executed after the `ada-mode' is
144fully loaded. 144fully loaded.
145This is a good place to add Ada environment specific bindings.") 145This is a good place to add Ada environment specific bindings.")
@@ -150,13 +150,13 @@ This is a good place to add Ada environment specific bindings.")
150 :group 'languages) 150 :group 'languages)
151 151
152(defcustom ada-auto-case t 152(defcustom ada-auto-case t
153 "*Non-nil means automatically change case of preceding word while typing. 153 "Non-nil means automatically change case of preceding word while typing.
154Casing is done according to `ada-case-keyword', `ada-case-identifier' 154Casing is done according to `ada-case-keyword', `ada-case-identifier'
155and `ada-case-attribute'." 155and `ada-case-attribute'."
156 :type 'boolean :group 'ada) 156 :type 'boolean :group 'ada)
157 157
158(defcustom ada-broken-decl-indent 0 158(defcustom ada-broken-decl-indent 0
159 "*Number of columns to indent a broken declaration. 159 "Number of columns to indent a broken declaration.
160 160
161An example is : 161An example is :
162 declare 162 declare
@@ -165,7 +165,7 @@ An example is :
165 :type 'integer :group 'ada) 165 :type 'integer :group 'ada)
166 166
167(defcustom ada-broken-indent 2 167(defcustom ada-broken-indent 2
168 "*Number of columns to indent the continuation of a broken line. 168 "Number of columns to indent the continuation of a broken line.
169 169
170An example is : 170An example is :
171 My_Var : My_Type := (Field1 => 171 My_Var : My_Type := (Field1 =>
@@ -173,7 +173,7 @@ An example is :
173 :type 'integer :group 'ada) 173 :type 'integer :group 'ada)
174 174
175(defcustom ada-continuation-indent ada-broken-indent 175(defcustom ada-continuation-indent ada-broken-indent
176 "*Number of columns to indent the continuation of broken lines in parenthesis. 176 "Number of columns to indent the continuation of broken lines in parenthesis.
177 177
178An example is : 178An example is :
179 Func (Param1, 179 Func (Param1,
@@ -181,7 +181,7 @@ An example is :
181 :type 'integer :group 'ada) 181 :type 'integer :group 'ada)
182 182
183(defcustom ada-case-attribute 'ada-capitalize-word 183(defcustom ada-case-attribute 'ada-capitalize-word
184 "*Function to call to adjust the case of Ada attributes. 184 "Function to call to adjust the case of Ada attributes.
185It may be `downcase-word', `upcase-word', `ada-loose-case-word', 185It may be `downcase-word', `upcase-word', `ada-loose-case-word',
186`ada-capitalize-word' or `ada-no-auto-case'." 186`ada-capitalize-word' or `ada-no-auto-case'."
187 :type '(choice (const downcase-word) 187 :type '(choice (const downcase-word)
@@ -193,7 +193,7 @@ It may be `downcase-word', `upcase-word', `ada-loose-case-word',
193 193
194(defcustom ada-case-exception-file 194(defcustom ada-case-exception-file
195 (list (convert-standard-filename' "~/.emacs_case_exceptions")) 195 (list (convert-standard-filename' "~/.emacs_case_exceptions"))
196 "*List of special casing exceptions dictionaries for identifiers. 196 "List of special casing exceptions dictionaries for identifiers.
197The first file is the one where new exceptions will be saved by Emacs 197The first file is the one where new exceptions will be saved by Emacs
198when you call `ada-create-case-exception'. 198when you call `ada-create-case-exception'.
199 199
@@ -207,7 +207,7 @@ by a comment."
207 :group 'ada) 207 :group 'ada)
208 208
209(defcustom ada-case-keyword 'downcase-word 209(defcustom ada-case-keyword 'downcase-word
210 "*Function to call to adjust the case of an Ada keywords. 210 "Function to call to adjust the case of an Ada keywords.
211It may be `downcase-word', `upcase-word', `ada-loose-case-word' or 211It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
212`ada-capitalize-word'." 212`ada-capitalize-word'."
213 :type '(choice (const downcase-word) 213 :type '(choice (const downcase-word)
@@ -218,7 +218,7 @@ It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
218 :group 'ada) 218 :group 'ada)
219 219
220(defcustom ada-case-identifier 'ada-loose-case-word 220(defcustom ada-case-identifier 'ada-loose-case-word
221 "*Function to call to adjust the case of an Ada identifier. 221 "Function to call to adjust the case of an Ada identifier.
222It may be `downcase-word', `upcase-word', `ada-loose-case-word' or 222It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
223`ada-capitalize-word'." 223`ada-capitalize-word'."
224 :type '(choice (const downcase-word) 224 :type '(choice (const downcase-word)
@@ -229,7 +229,7 @@ It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
229 :group 'ada) 229 :group 'ada)
230 230
231(defcustom ada-clean-buffer-before-saving t 231(defcustom ada-clean-buffer-before-saving t
232 "*Non-nil means remove trailing spaces and untabify the buffer before saving." 232 "Non-nil means remove trailing spaces and untabify the buffer before saving."
233 :type 'boolean :group 'ada) 233 :type 'boolean :group 'ada)
234(make-obsolete-variable 'ada-clean-buffer-before-saving 234(make-obsolete-variable 'ada-clean-buffer-before-saving
235 "use the `write-file-functions' hook." 235 "use the `write-file-functions' hook."
@@ -237,7 +237,7 @@ It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
237 237
238 238
239(defcustom ada-indent 3 239(defcustom ada-indent 3
240 "*Size of Ada indentation. 240 "Size of Ada indentation.
241 241
242An example is : 242An example is :
243procedure Foo is 243procedure Foo is
@@ -246,11 +246,11 @@ begin
246 :type 'integer :group 'ada) 246 :type 'integer :group 'ada)
247 247
248(defcustom ada-indent-after-return t 248(defcustom ada-indent-after-return t
249 "*Non-nil means automatically indent after RET or LFD." 249 "Non-nil means automatically indent after RET or LFD."
250 :type 'boolean :group 'ada) 250 :type 'boolean :group 'ada)
251 251
252(defcustom ada-indent-align-comments t 252(defcustom ada-indent-align-comments t
253 "*Non-nil means align comments on previous line comments, if any. 253 "Non-nil means align comments on previous line comments, if any.
254If nil, indentation is calculated as usual. 254If nil, indentation is calculated as usual.
255Note that indentation is calculated only if `ada-indent-comment-as-code' is t. 255Note that indentation is calculated only if `ada-indent-comment-as-code' is t.
256 256
@@ -260,12 +260,12 @@ For instance:
260 :type 'boolean :group 'ada) 260 :type 'boolean :group 'ada)
261 261
262(defcustom ada-indent-comment-as-code t 262(defcustom ada-indent-comment-as-code t
263 "*Non-nil means indent comment lines as code. 263 "Non-nil means indent comment lines as code.
264A nil value means do not auto-indent comments." 264A nil value means do not auto-indent comments."
265 :type 'boolean :group 'ada) 265 :type 'boolean :group 'ada)
266 266
267(defcustom ada-indent-handle-comment-special nil 267(defcustom ada-indent-handle-comment-special nil
268 "*Non-nil if comment lines should be handled specially inside parenthesis. 268 "Non-nil if comment lines should be handled specially inside parenthesis.
269By default, if the line that contains the open parenthesis has some 269By default, if the line that contains the open parenthesis has some
270text following it, then the following lines will be indented in the 270text following it, then the following lines will be indented in the
271same column as this text. This will not be true if the first line is 271same column as this text. This will not be true if the first line is
@@ -287,11 +287,11 @@ type A is
287 :type 'boolean :group 'ada) 287 :type 'boolean :group 'ada)
288 288
289(defcustom ada-indent-is-separate t 289(defcustom ada-indent-is-separate t
290 "*Non-nil means indent 'is separate' or 'is abstract' if on a single line." 290 "Non-nil means indent 'is separate' or 'is abstract' if on a single line."
291 :type 'boolean :group 'ada) 291 :type 'boolean :group 'ada)
292 292
293(defcustom ada-indent-record-rel-type 3 293(defcustom ada-indent-record-rel-type 3
294 "*Indentation for 'record' relative to 'type' or 'use'. 294 "Indentation for 'record' relative to 'type' or 'use'.
295 295
296An example is: 296An example is:
297 type A is 297 type A is
@@ -299,7 +299,7 @@ An example is:
299 :type 'integer :group 'ada) 299 :type 'integer :group 'ada)
300 300
301(defcustom ada-indent-renames ada-broken-indent 301(defcustom ada-indent-renames ada-broken-indent
302 "*Indentation for renames relative to the matching function statement. 302 "Indentation for renames relative to the matching function statement.
303If `ada-indent-return' is null or negative, the indentation is done relative to 303If `ada-indent-return' is null or negative, the indentation is done relative to
304the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used). 304the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
305 305
@@ -310,7 +310,7 @@ An example is:
310 :type 'integer :group 'ada) 310 :type 'integer :group 'ada)
311 311
312(defcustom ada-indent-return 0 312(defcustom ada-indent-return 0
313 "*Indentation for 'return' relative to the matching 'function' statement. 313 "Indentation for 'return' relative to the matching 'function' statement.
314If `ada-indent-return' is null or negative, the indentation is done relative to 314If `ada-indent-return' is null or negative, the indentation is done relative to
315the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used). 315the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
316 316
@@ -320,22 +320,22 @@ An example is:
320 :type 'integer :group 'ada) 320 :type 'integer :group 'ada)
321 321
322(defcustom ada-indent-to-open-paren t 322(defcustom ada-indent-to-open-paren t
323 "*Non-nil means indent according to the innermost open parenthesis." 323 "Non-nil means indent according to the innermost open parenthesis."
324 :type 'boolean :group 'ada) 324 :type 'boolean :group 'ada)
325 325
326(defcustom ada-fill-comment-prefix "-- " 326(defcustom ada-fill-comment-prefix "-- "
327 "*Text inserted in the first columns when filling a comment paragraph. 327 "Text inserted in the first columns when filling a comment paragraph.
328Note: if you modify this variable, you will have to invoke `ada-mode' 328Note: if you modify this variable, you will have to invoke `ada-mode'
329again to take account of the new value." 329again to take account of the new value."
330 :type 'string :group 'ada) 330 :type 'string :group 'ada)
331 331
332(defcustom ada-fill-comment-postfix " --" 332(defcustom ada-fill-comment-postfix " --"
333 "*Text inserted at the end of each line when filling a comment paragraph. 333 "Text inserted at the end of each line when filling a comment paragraph.
334Used by `ada-fill-comment-paragraph-postfix'." 334Used by `ada-fill-comment-paragraph-postfix'."
335 :type 'string :group 'ada) 335 :type 'string :group 'ada)
336 336
337(defcustom ada-label-indent -4 337(defcustom ada-label-indent -4
338 "*Number of columns to indent a label. 338 "Number of columns to indent a label.
339 339
340An example is: 340An example is:
341procedure Foo is 341procedure Foo is
@@ -346,15 +346,15 @@ This is also used for <<..>> labels"
346 :type 'integer :group 'ada) 346 :type 'integer :group 'ada)
347 347
348(defcustom ada-language-version 'ada95 348(defcustom ada-language-version 'ada95
349 "*Ada language version; one of `ada83', `ada95', `ada2005'." 349 "Ada language version; one of `ada83', `ada95', `ada2005'."
350 :type '(choice (const ada83) (const ada95) (const ada2005)) :group 'ada) 350 :type '(choice (const ada83) (const ada95) (const ada2005)) :group 'ada)
351 351
352(defcustom ada-move-to-declaration nil 352(defcustom ada-move-to-declaration nil
353 "*Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'." 353 "Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'."
354 :type 'boolean :group 'ada) 354 :type 'boolean :group 'ada)
355 355
356(defcustom ada-popup-key '[down-mouse-3] 356(defcustom ada-popup-key '[down-mouse-3]
357 "*Key used for binding the contextual menu. 357 "Key used for binding the contextual menu.
358If nil, no contextual menu is available." 358If nil, no contextual menu is available."
359 :type '(restricted-sexp :match-alternatives (stringp vectorp)) 359 :type '(restricted-sexp :match-alternatives (stringp vectorp))
360 :group 'ada) 360 :group 'ada)
@@ -364,7 +364,7 @@ If nil, no contextual menu is available."
364 (split-string (or (getenv "ADA_INCLUDE_PATH") "") ":") 364 (split-string (or (getenv "ADA_INCLUDE_PATH") "") ":")
365 '("/usr/adainclude" "/usr/local/adainclude" 365 '("/usr/adainclude" "/usr/local/adainclude"
366 "/opt/gnu/adainclude")) 366 "/opt/gnu/adainclude"))
367 "*Default list of directories to search for Ada files. 367 "Default list of directories to search for Ada files.
368See the description for the `ff-search-directories' variable. This variable 368See the description for the `ff-search-directories' variable. This variable
369is the initial value of `ada-search-directories-internal'." 369is the initial value of `ada-search-directories-internal'."
370 :type '(repeat (choice :tag "Directory" 370 :type '(repeat (choice :tag "Directory"
@@ -379,7 +379,7 @@ and the standard runtime location, and the value of the user-defined
379`ada-search-directories'.") 379`ada-search-directories'.")
380 380
381(defcustom ada-stmt-end-indent 0 381(defcustom ada-stmt-end-indent 0
382 "*Number of columns to indent the end of a statement on a separate line. 382 "Number of columns to indent the end of a statement on a separate line.
383 383
384An example is: 384An example is:
385 if A = B 385 if A = B
@@ -387,7 +387,7 @@ An example is:
387 :type 'integer :group 'ada) 387 :type 'integer :group 'ada)
388 388
389(defcustom ada-tab-policy 'indent-auto 389(defcustom ada-tab-policy 'indent-auto
390 "*Control the behavior of the TAB key. 390 "Control the behavior of the TAB key.
391Must be one of : 391Must be one of :
392`indent-rigidly' : always adds `ada-indent' blanks at the beginning of the line. 392`indent-rigidly' : always adds `ada-indent' blanks at the beginning of the line.
393`indent-auto' : use indentation functions in this file. 393`indent-auto' : use indentation functions in this file.
@@ -398,7 +398,7 @@ Must be one of :
398 :group 'ada) 398 :group 'ada)
399 399
400(defcustom ada-use-indent ada-broken-indent 400(defcustom ada-use-indent ada-broken-indent
401 "*Indentation for the lines in a 'use' statement. 401 "Indentation for the lines in a 'use' statement.
402 402
403An example is: 403An example is:
404 use Ada.Text_IO, 404 use Ada.Text_IO,
@@ -406,7 +406,7 @@ An example is:
406 :type 'integer :group 'ada) 406 :type 'integer :group 'ada)
407 407
408(defcustom ada-when-indent 3 408(defcustom ada-when-indent 3
409 "*Indentation for 'when' relative to 'exception' or 'case'. 409 "Indentation for 'when' relative to 'exception' or 'case'.
410 410
411An example is: 411An example is:
412 case A is 412 case A is
@@ -414,7 +414,7 @@ An example is:
414 :type 'integer :group 'ada) 414 :type 'integer :group 'ada)
415 415
416(defcustom ada-with-indent ada-broken-indent 416(defcustom ada-with-indent ada-broken-indent
417 "*Indentation for the lines in a 'with' statement. 417 "Indentation for the lines in a 'with' statement.
418 418
419An example is: 419An example is:
420 with Ada.Text_IO, 420 with Ada.Text_IO,
@@ -422,7 +422,7 @@ An example is:
422 :type 'integer :group 'ada) 422 :type 'integer :group 'ada)
423 423
424(defcustom ada-which-compiler 'gnat 424(defcustom ada-which-compiler 'gnat
425 "*Name of the compiler to use. 425 "Name of the compiler to use.
426This will determine what features are made available through the Ada mode. 426This will determine what features are made available through the Ada mode.
427The possible choices are: 427The possible choices are:
428`gnat': Use Ada Core Technologies' GNAT compiler. Add some cross-referencing 428`gnat': Use Ada Core Technologies' GNAT compiler. Add some cross-referencing
@@ -4728,7 +4728,7 @@ Moves to 'begin' if in a declarative part."
4728 ["Entry family" ada-entry-family t] 4728 ["Entry family" ada-entry-family t]
4729 ["Select" ada-select t] 4729 ["Select" ada-select t]
4730 ["Accept" ada-accept t] 4730 ["Accept" ada-accept t]
4731 ["Or accept" ada-or-accep t] 4731 ["Or accept" ada-or-accept t]
4732 ["Or delay" ada-or-delay t] 4732 ["Or delay" ada-or-delay t]
4733 ["Or terminate" ada-or-terminate t] 4733 ["Or terminate" ada-or-terminate t]
4734 ["---" nil nil] 4734 ["---" nil nil]
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 1e07ac4cf09..146cc703e1a 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -50,21 +50,21 @@
50 50
51;; ------ User variables 51;; ------ User variables
52(defcustom ada-xref-other-buffer t 52(defcustom ada-xref-other-buffer t
53 "*If nil, always display the cross-references in the same buffer. 53 "If nil, always display the cross-references in the same buffer.
54Otherwise create either a new buffer or a new frame." 54Otherwise create either a new buffer or a new frame."
55 :type 'boolean :group 'ada) 55 :type 'boolean :group 'ada)
56 56
57(defcustom ada-xref-create-ali nil 57(defcustom ada-xref-create-ali nil
58 "*If non-nil, run gcc whenever the cross-references are not up-to-date. 58 "If non-nil, run gcc whenever the cross-references are not up-to-date.
59If nil, the cross-reference mode never runs gcc." 59If nil, the cross-reference mode never runs gcc."
60 :type 'boolean :group 'ada) 60 :type 'boolean :group 'ada)
61 61
62(defcustom ada-xref-confirm-compile nil 62(defcustom ada-xref-confirm-compile nil
63 "*If non-nil, ask for confirmation before compiling or running the application." 63 "If non-nil, ask for confirmation before compiling or running the application."
64 :type 'boolean :group 'ada) 64 :type 'boolean :group 'ada)
65 65
66(defcustom ada-krunch-args "0" 66(defcustom ada-krunch-args "0"
67 "*Maximum number of characters for filenames created by `gnatkr'. 67 "Maximum number of characters for filenames created by `gnatkr'.
68Set to 0, if you don't use crunched filenames. This should be a string." 68Set to 0, if you don't use crunched filenames. This should be a string."
69 :type 'string :group 'ada) 69 :type 'string :group 'ada)
70 70
@@ -76,7 +76,7 @@ is faster, available from Ada mode web site."
76 :type 'string :group 'ada) 76 :type 'string :group 'ada)
77 77
78(defcustom ada-gnatls-args '("-v") 78(defcustom ada-gnatls-args '("-v")
79 "*Arguments to pass to `gnatls' to find location of the runtime. 79 "Arguments to pass to `gnatls' to find location of the runtime.
80Typical use is to pass `--RTS=soft-floats' on some systems that support it. 80Typical use is to pass `--RTS=soft-floats' on some systems that support it.
81 81
82You can also add `-I-' if you do not want the current directory to be included. 82You can also add `-I-' if you do not want the current directory to be included.
@@ -125,7 +125,7 @@ The command `gnatfind' is used every time you choose the menu
125(defcustom ada-prj-default-check-cmd 125(defcustom ada-prj-default-check-cmd
126 (concat "${cross_prefix}gnatmake -u -c -gnatc ${gnatmake_opt} ${full_current}" 126 (concat "${cross_prefix}gnatmake -u -c -gnatc ${gnatmake_opt} ${full_current}"
127 " -cargs ${comp_opt}") 127 " -cargs ${comp_opt}")
128 "*Default command to be used to compile a single file. 128 "Default command to be used to compile a single file.
129Emacs will substitute the current filename for ${full_current}, or add 129Emacs will substitute the current filename for ${full_current}, or add
130the filename at the end. This is the same syntax as in the project file." 130the filename at the end. This is the same syntax as in the project file."
131 :type 'string :group 'ada) 131 :type 'string :group 'ada)
@@ -133,35 +133,35 @@ the filename at the end. This is the same syntax as in the project file."
133(defcustom ada-prj-default-comp-cmd 133(defcustom ada-prj-default-comp-cmd
134 (concat "${cross_prefix}gnatmake -u -c ${gnatmake_opt} ${full_current} -cargs" 134 (concat "${cross_prefix}gnatmake -u -c ${gnatmake_opt} ${full_current} -cargs"
135 " ${comp_opt}") 135 " ${comp_opt}")
136 "*Default command to be used to compile a single file. 136 "Default command to be used to compile a single file.
137Emacs will substitute the current filename for ${full_current}, or add 137Emacs will substitute the current filename for ${full_current}, or add
138the filename at the end. This is the same syntax as in the project file." 138the filename at the end. This is the same syntax as in the project file."
139 :type 'string :group 'ada) 139 :type 'string :group 'ada)
140 140
141(defcustom ada-prj-default-debugger "${cross_prefix}gdb" 141(defcustom ada-prj-default-debugger "${cross_prefix}gdb"
142 "*Default name of the debugger." 142 "Default name of the debugger."
143 :type 'string :group 'ada) 143 :type 'string :group 'ada)
144 144
145(defcustom ada-prj-default-make-cmd 145(defcustom ada-prj-default-make-cmd
146 (concat "${cross_prefix}gnatmake -o ${main} ${main} ${gnatmake_opt} " 146 (concat "${cross_prefix}gnatmake -o ${main} ${main} ${gnatmake_opt} "
147 "-cargs ${comp_opt} -bargs ${bind_opt} -largs ${link_opt}") 147 "-cargs ${comp_opt} -bargs ${bind_opt} -largs ${link_opt}")
148 "*Default command to be used to compile the application. 148 "Default command to be used to compile the application.
149This is the same syntax as in the project file." 149This is the same syntax as in the project file."
150 :type 'string :group 'ada) 150 :type 'string :group 'ada)
151 151
152(defcustom ada-prj-default-project-file "" 152(defcustom ada-prj-default-project-file ""
153 "*Name of the current project file. 153 "Name of the current project file.
154Emacs will not try to use the search algorithm to find the project file if 154Emacs will not try to use the search algorithm to find the project file if
155this string is not empty. It is set whenever a project file is found." 155this string is not empty. It is set whenever a project file is found."
156 :type '(file :must-match t) :group 'ada) 156 :type '(file :must-match t) :group 'ada)
157 157
158(defcustom ada-gnatstub-opts "-q -I${src_dir}" 158(defcustom ada-gnatstub-opts "-q -I${src_dir}"
159 "*Options to pass to `gnatsub' to generate the body of a package. 159 "Options to pass to `gnatsub' to generate the body of a package.
160This has the same syntax as in the project file (with variable substitution)." 160This has the same syntax as in the project file (with variable substitution)."
161 :type 'string :group 'ada) 161 :type 'string :group 'ada)
162 162
163(defcustom ada-always-ask-project nil 163(defcustom ada-always-ask-project nil
164 "*If nil, use default values when no project file was found. 164 "If nil, use default values when no project file was found.
165Otherwise, ask the user for the name of the project file to use." 165Otherwise, ask the user for the name of the project file to use."
166 :type 'boolean :group 'ada) 166 :type 'boolean :group 'ada)
167 167
@@ -169,12 +169,12 @@ Otherwise, ask the user for the name of the project file to use."
169 "True if we are running on Windows.") 169 "True if we are running on Windows.")
170 170
171(defcustom ada-tight-gvd-integration nil 171(defcustom ada-tight-gvd-integration nil
172 "*If non-nil, a new Emacs frame will be swallowed in GVD when debugging. 172 "If non-nil, a new Emacs frame will be swallowed in GVD when debugging.
173If GVD is not the debugger used, nothing happens." 173If GVD is not the debugger used, nothing happens."
174 :type 'boolean :group 'ada) 174 :type 'boolean :group 'ada)
175 175
176(defcustom ada-xref-search-with-egrep t 176(defcustom ada-xref-search-with-egrep t
177 "*If non-nil, use egrep to find the possible declarations for an entity. 177 "If non-nil, use egrep to find the possible declarations for an entity.
178This alternate method is used when the exact location was not found in the 178This alternate method is used when the exact location was not found in the
179information provided by GNAT. However, it might be expensive if you have a lot 179information provided by GNAT. However, it might be expensive if you have a lot
180of sources, since it will search in all the files in your project." 180of sources, since it will search in all the files in your project."
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 9c9a8e09d49..345ca563906 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -269,7 +269,7 @@ greater than this number."
269 (integer :tag "Hidden if longer than" :value 3))) 269 (integer :tag "Hidden if longer than" :value 3)))
270 270
271(defcustom antlr-indent-comment 'tab 271(defcustom antlr-indent-comment 'tab
272 "*Non-nil, if the indentation should touch lines in block comments. 272 "Non-nil, if the indentation should touch lines in block comments.
273If nil, no continuation line of a block comment is changed. If t, they 273If nil, no continuation line of a block comment is changed. If t, they
274are changed according to `c-indentation-line'. When not nil and not t, 274are changed according to `c-indentation-line'. When not nil and not t,
275they are only changed by \\[antlr-indent-command]." 275they are only changed by \\[antlr-indent-command]."
@@ -296,7 +296,7 @@ ANTLR's and Java's indentation styles. Used by `antlr-set-tabs'."
296 (boolean :tag "Indent-tabs-mode")))) 296 (boolean :tag "Indent-tabs-mode"))))
297 297
298(defcustom antlr-indent-style "java" 298(defcustom antlr-indent-style "java"
299 "*If non-nil, cc-mode indentation style used for `antlr-mode'. 299 "If non-nil, cc-mode indentation style used for `antlr-mode'.
300See `c-set-style' and for details, where the most interesting part in 300See `c-set-style' and for details, where the most interesting part in
301`c-style-alist' is the value of `c-basic-offset'." 301`c-style-alist' is the value of `c-basic-offset'."
302 :group 'antlr 302 :group 'antlr
@@ -339,14 +339,14 @@ to the normal rules of `antlr-indent-line'."
339;;;=========================================================================== 339;;;===========================================================================
340 340
341(defcustom antlr-options-use-submenus t 341(defcustom antlr-options-use-submenus t
342 "*Non-nil, if the major mode menu should include option submenus. 342 "Non-nil, if the major mode menu should include option submenus.
343If nil, the menu just includes a command to insert options. Otherwise, 343If nil, the menu just includes a command to insert options. Otherwise,
344it includes four submenus to insert file/grammar/rule/subrule options." 344it includes four submenus to insert file/grammar/rule/subrule options."
345 :group 'antlr 345 :group 'antlr
346 :type 'boolean) 346 :type 'boolean)
347 347
348(defcustom antlr-tool-version 20701 348(defcustom antlr-tool-version 20701
349 "*The version number of the Antlr tool. 349 "The version number of the Antlr tool.
350The value is an integer of the form XYYZZ which stands for vX.YY.ZZ. 350The value is an integer of the form XYYZZ which stands for vX.YY.ZZ.
351This variable is used to warn about non-supported options and to supply 351This variable is used to warn about non-supported options and to supply
352version correct option values when using \\[antlr-insert-option]. 352version correct option values when using \\[antlr-insert-option].
@@ -358,7 +358,7 @@ can make this variable buffer-local."
358 :type 'integer) 358 :type 'integer)
359 359
360(defcustom antlr-options-auto-colon t 360(defcustom antlr-options-auto-colon t
361 "*Non-nil, if `:' is inserted with a rule or subrule options section. 361 "Non-nil, if `:' is inserted with a rule or subrule options section.
362A `:' is only inserted if this value is non-nil, if a rule or subrule 362A `:' is only inserted if this value is non-nil, if a rule or subrule
363option is inserted with \\[antlr-insert-option], if there was no rule or 363option is inserted with \\[antlr-insert-option], if there was no rule or
364subrule options section before, and if a `:' is not already present 364subrule options section before, and if a `:' is not already present
@@ -378,7 +378,7 @@ is `language-as-string'. See also `antlr-read-value'."
378 :type '(repeat (symbol :tag "Style symbol"))) 378 :type '(repeat (symbol :tag "Style symbol")))
379 379
380(defcustom antlr-options-push-mark t 380(defcustom antlr-options-push-mark t
381 "*Non-nil, if inserting an option should set & push mark. 381 "Non-nil, if inserting an option should set & push mark.
382If nil, never set mark when inserting an option with command 382If nil, never set mark when inserting an option with command
383\\[antlr-insert-option]. If t, always set mark via `push-mark'. If a 383\\[antlr-insert-option]. If t, always set mark via `push-mark'. If a
384number, only set mark if point was outside the options area before and 384number, only set mark if point was outside the options area before and
@@ -392,7 +392,7 @@ options area before."
392 (sexp :tag "If outside options" :format "%t" :value outside))) 392 (sexp :tag "If outside options" :format "%t" :value outside)))
393 393
394(defcustom antlr-options-assign-string " = " 394(defcustom antlr-options-assign-string " = "
395 "*String containing `=' to use between option name and value. 395 "String containing `=' to use between option name and value.
396This string is only used if the option to insert did not exist before 396This string is only used if the option to insert did not exist before
397or if there was no `=' after it. In other words, the spacing around an 397or if there was no `=' after it. In other words, the spacing around an
398existing `=' won't be changed when changing an option value." 398existing `=' won't be changed when changing an option value."
@@ -578,21 +578,21 @@ AS-STRING is non-nil and is either t or a symbol which is a member of
578;;;=========================================================================== 578;;;===========================================================================
579 579
580(defcustom antlr-tool-command "java antlr.Tool" 580(defcustom antlr-tool-command "java antlr.Tool"
581 "*Command used in \\[antlr-run-tool] to run the Antlr tool. 581 "Command used in \\[antlr-run-tool] to run the Antlr tool.
582This variable should include all options passed to Antlr except the 582This variable should include all options passed to Antlr except the
583option \"-glib\" which is automatically suggested if necessary." 583option \"-glib\" which is automatically suggested if necessary."
584 :group 'antlr 584 :group 'antlr
585 :type 'string) 585 :type 'string)
586 586
587(defcustom antlr-ask-about-save t 587(defcustom antlr-ask-about-save t
588 "*If not nil, \\[antlr-run-tool] asks which buffers to save. 588 "If not nil, \\[antlr-run-tool] asks which buffers to save.
589Otherwise, it saves all modified buffers before running without asking." 589Otherwise, it saves all modified buffers before running without asking."
590 :group 'antlr 590 :group 'antlr
591 :type 'boolean) 591 :type 'boolean)
592 592
593(defcustom antlr-makefile-specification 593(defcustom antlr-makefile-specification
594 '("\n" ("GENS" "GENS%d" " \\\n\t") "$(ANTLR)") 594 '("\n" ("GENS" "GENS%d" " \\\n\t") "$(ANTLR)")
595 "*Variable to specify the appearance of the generated makefile rules. 595 "Variable to specify the appearance of the generated makefile rules.
596This variable influences the output of \\[antlr-show-makefile-rules]. 596This variable influences the output of \\[antlr-show-makefile-rules].
597It looks like \(RULE-SEP GEN-VAR-SPEC COMMAND). 597It looks like \(RULE-SEP GEN-VAR-SPEC COMMAND).
598 598
@@ -650,7 +650,7 @@ See variable `antlr-file-formats-alist' for language dependent
650formats.") 650formats.")
651 651
652(defvar antlr-unknown-file-formats '("?%s?.g" "?%s?") 652(defvar antlr-unknown-file-formats '("?%s?.g" "?%s?")
653 "*Formats which specify the names of unknown files. 653 "Formats which specify the names of unknown files.
654The value looks like \(SUPER-GRAMMAR-FILE-FORMAT SUPER-EVOCAB-FORMAT). 654The value looks like \(SUPER-GRAMMAR-FILE-FORMAT SUPER-EVOCAB-FORMAT).
655 655
656SUPER-GRAMMAR-FORMAT is a format string, it specifies with substitution 656SUPER-GRAMMAR-FORMAT is a format string, it specifies with substitution
@@ -685,7 +685,7 @@ DIRECTORY is the name of the current directory.")
685;;;=========================================================================== 685;;;===========================================================================
686 686
687(defcustom antlr-imenu-name t ; (featurep 'xemacs) ; TODO: Emacs-21 bug? 687(defcustom antlr-imenu-name t ; (featurep 'xemacs) ; TODO: Emacs-21 bug?
688 "*Non-nil, if a \"Index\" menu should be added to the menubar. 688 "Non-nil, if a \"Index\" menu should be added to the menubar.
689If it is a string, it is used instead \"Index\". Requires package 689If it is a string, it is used instead \"Index\". Requires package
690imenu." 690imenu."
691 :group 'antlr 691 :group 'antlr
@@ -774,7 +774,7 @@ imenu."
774;;;=========================================================================== 774;;;===========================================================================
775 775
776(defcustom antlr-font-lock-maximum-decoration 'inherit 776(defcustom antlr-font-lock-maximum-decoration 'inherit
777 "*The maximum decoration level for fontifying actions. 777 "The maximum decoration level for fontifying actions.
778Value `none' means, do not fontify actions, just normal grammar code 778Value `none' means, do not fontify actions, just normal grammar code
779according to `antlr-font-lock-additional-keywords'. Value `inherit' 779according to `antlr-font-lock-additional-keywords'. Value `inherit'
780means, use value of `font-lock-maximum-decoration'. Any other value is 780means, use value of `font-lock-maximum-decoration'. Any other value is
diff --git a/lisp/progmodes/asm-mode.el b/lisp/progmodes/asm-mode.el
index cfa977d9022..5e15371b406 100644
--- a/lisp/progmodes/asm-mode.el
+++ b/lisp/progmodes/asm-mode.el
@@ -53,7 +53,7 @@
53 :group 'languages) 53 :group 'languages)
54 54
55(defcustom asm-comment-char ?\; 55(defcustom asm-comment-char ?\;
56 "*The comment-start character assumed by Asm mode." 56 "The comment-start character assumed by Asm mode."
57 :type 'character 57 :type 'character
58 :group 'asm) 58 :group 'asm)
59 59
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index 509bb203f78..55ab6c9981c 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -1958,7 +1958,12 @@ with a brace block."
1958 1958
1959(defun c-mark-function () 1959(defun c-mark-function ()
1960 "Put mark at end of the current top-level declaration or macro, point at beginning. 1960 "Put mark at end of the current top-level declaration or macro, point at beginning.
1961If point is not inside any then the closest following one is chosen. 1961If point is not inside any then the closest following one is
1962chosen. Each successive call of this command extends the marked
1963region by one function.
1964
1965A mark is left where the command started, unless the region is already active
1966\(in Transient Mark mode).
1962 1967
1963As opposed to \\[c-beginning-of-defun] and \\[c-end-of-defun], this 1968As opposed to \\[c-beginning-of-defun] and \\[c-end-of-defun], this
1964function does not require the declaration to contain a brace block." 1969function does not require the declaration to contain a brace block."
@@ -1974,8 +1979,24 @@ function does not require the declaration to contain a brace block."
1974 1979
1975 (if (not decl-limits) 1980 (if (not decl-limits)
1976 (error "Cannot find any declaration") 1981 (error "Cannot find any declaration")
1977 (goto-char (car decl-limits)) 1982 (let* ((extend-region-p
1978 (push-mark (cdr decl-limits) nil t)))) 1983 (and (eq this-command 'c-mark-function)
1984 (eq last-command 'c-mark-function)))
1985 (push-mark-p (and (eq this-command 'c-mark-function)
1986 (not extend-region-p)
1987 (not (and transient-mark-mode mark-active)))))
1988 (if push-mark-p (push-mark (point)))
1989 (if extend-region-p
1990 (progn
1991 (exchange-point-and-mark)
1992 (setq decl-limits (c-declaration-limits t))
1993 (when (not decl-limits)
1994 (exchange-point-and-mark)
1995 (error "Cannot find any declaration"))
1996 (goto-char (cdr decl-limits))
1997 (exchange-point-and-mark))
1998 (goto-char (car decl-limits))
1999 (push-mark (cdr decl-limits) nil t))))))
1979 2000
1980(defun c-cpp-define-name () 2001(defun c-cpp-define-name ()
1981 "Return the name of the current CPP macro, or NIL if we're not in one." 2002 "Return the name of the current CPP macro, or NIL if we're not in one."
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 95b43e763d5..cf38001c123 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -219,6 +219,38 @@
219 (point)))) 219 (point))))
220 c-macro-start)) 220 c-macro-start))
221 221
222;; One element macro cache to cope with continual movement within very large
223;; CPP macros.
224(defvar c-macro-cache nil)
225(make-variable-buffer-local 'c-macro-cache)
226;; Nil or cons of the bounds of the most recent CPP form probed by
227;; `c-beginning-of-macro', `c-end-of-macro' or `c-syntactic-end-of-macro'.
228;; The cdr will be nil if we know only the start of the CPP form.
229(defvar c-macro-cache-start-pos nil)
230(make-variable-buffer-local 'c-macro-cache-start-pos)
231;; The starting position from where we determined `c-macro-cache'.
232(defvar c-macro-cache-syntactic nil)
233(make-variable-buffer-local 'c-macro-cache-syntactic)
234;; non-nil iff `c-macro-cache' has both elements set AND the cdr is at a
235;; syntactic end of macro, not merely an apparent one.
236
237(defun c-invalidate-macro-cache (beg end)
238 ;; Called from a before-change function. If the change region is before or
239 ;; in the macro characterized by `c-macro-cache' etc., nullify it
240 ;; appropriately. BEG and END are the standard before-change-functions
241 ;; parameters. END isn't used.
242 (cond
243 ((null c-macro-cache))
244 ((< beg (car c-macro-cache))
245 (setq c-macro-cache nil
246 c-macro-cache-start-pos nil
247 c-macro-cache-syntactic nil))
248 ((and (cdr c-macro-cache)
249 (< beg (cdr c-macro-cache)))
250 (setcdr c-macro-cache nil)
251 (setq c-macro-cache-start-pos beg
252 c-macro-cache-syntactic nil))))
253
222(defun c-beginning-of-macro (&optional lim) 254(defun c-beginning-of-macro (&optional lim)
223 "Go to the beginning of a preprocessor directive. 255 "Go to the beginning of a preprocessor directive.
224Leave point at the beginning of the directive and return t if in one, 256Leave point at the beginning of the directive and return t if in one,
@@ -226,19 +258,36 @@ otherwise return nil and leave point unchanged.
226 258
227Note that this function might do hidden buffer changes. See the 259Note that this function might do hidden buffer changes. See the
228comment at the start of cc-engine.el for more info." 260comment at the start of cc-engine.el for more info."
229 (when c-opt-cpp-prefix 261 (let ((here (point)))
230 (let ((here (point))) 262 (when c-opt-cpp-prefix
231 (save-restriction 263 (if (and (car c-macro-cache)
232 (if lim (narrow-to-region lim (point-max))) 264 (>= (point) (car c-macro-cache))
233 (beginning-of-line) 265 (or (and (cdr c-macro-cache)
234 (while (eq (char-before (1- (point))) ?\\) 266 (<= (point) (cdr c-macro-cache)))
235 (forward-line -1)) 267 (<= (point) c-macro-cache-start-pos)))
236 (back-to-indentation) 268 (unless (< (car c-macro-cache) (or lim (point-min)))
237 (if (and (<= (point) here) 269 (progn (goto-char (max (or lim (point-min)) (car c-macro-cache)))
238 (looking-at c-opt-cpp-start)) 270 (setq c-macro-cache-start-pos
239 t 271 (max c-macro-cache-start-pos here))
240 (goto-char here) 272 t))
241 nil))))) 273 (setq c-macro-cache nil
274 c-macro-cache-start-pos nil
275 c-macro-cache-syntactic nil)
276
277 (save-restriction
278 (if lim (narrow-to-region lim (point-max)))
279 (beginning-of-line)
280 (while (eq (char-before (1- (point))) ?\\)
281 (forward-line -1))
282 (back-to-indentation)
283 (if (and (<= (point) here)
284 (looking-at c-opt-cpp-start))
285 (progn
286 (setq c-macro-cache (cons (point) nil)
287 c-macro-cache-start-pos here)
288 t)
289 (goto-char here)
290 nil))))))
242 291
243(defun c-end-of-macro () 292(defun c-end-of-macro ()
244 "Go to the end of a preprocessor directive. 293 "Go to the end of a preprocessor directive.
@@ -248,12 +297,24 @@ done that the point is inside a cpp directive to begin with.
248 297
249Note that this function might do hidden buffer changes. See the 298Note that this function might do hidden buffer changes. See the
250comment at the start of cc-engine.el for more info." 299comment at the start of cc-engine.el for more info."
251 (while (progn 300 (if (and (cdr c-macro-cache)
252 (end-of-line) 301 (<= (point) (cdr c-macro-cache))
253 (when (and (eq (char-before) ?\\) 302 (>= (point) (car c-macro-cache)))
254 (not (eobp))) 303 (goto-char (cdr c-macro-cache))
255 (forward-char) 304 (unless (and (car c-macro-cache)
256 t)))) 305 (<= (point) c-macro-cache-start-pos)
306 (>= (point) (car c-macro-cache)))
307 (setq c-macro-cache nil
308 c-macro-cache-start-pos nil
309 c-macro-cache-syntactic nil))
310 (while (progn
311 (end-of-line)
312 (when (and (eq (char-before) ?\\)
313 (not (eobp)))
314 (forward-char)
315 t)))
316 (when (car c-macro-cache)
317 (setcdr c-macro-cache (point)))))
257 318
258(defun c-syntactic-end-of-macro () 319(defun c-syntactic-end-of-macro ()
259 ;; Go to the end of a CPP directive, or a "safe" pos just before. 320 ;; Go to the end of a CPP directive, or a "safe" pos just before.
@@ -268,12 +329,15 @@ comment at the start of cc-engine.el for more info."
268 ;; at the start of cc-engine.el for more info. 329 ;; at the start of cc-engine.el for more info.
269 (let* ((here (point)) 330 (let* ((here (point))
270 (there (progn (c-end-of-macro) (point))) 331 (there (progn (c-end-of-macro) (point)))
271 (s (parse-partial-sexp here there))) 332 s)
272 (while (and (or (nth 3 s) ; in a string 333 (unless c-macro-cache-syntactic
273 (nth 4 s)) ; in a comment (maybe at end of line comment) 334 (setq s (parse-partial-sexp here there))
274 (> there here)) ; No infinite loops, please. 335 (while (and (or (nth 3 s) ; in a string
275 (setq there (1- (nth 8 s))) 336 (nth 4 s)) ; in a comment (maybe at end of line comment)
276 (setq s (parse-partial-sexp here there))) 337 (> there here)) ; No infinite loops, please.
338 (setq there (1- (nth 8 s)))
339 (setq s (parse-partial-sexp here there)))
340 (setq c-macro-cache-syntactic (car c-macro-cache)))
277 (point))) 341 (point)))
278 342
279(defun c-forward-over-cpp-define-id () 343(defun c-forward-over-cpp-define-id ()
@@ -1182,7 +1246,7 @@ comment at the start of cc-engine.el for more info."
1182 (c-at-vsemi-p)))) 1246 (c-at-vsemi-p))))
1183 (throw 'done vsemi-pos)) 1247 (throw 'done vsemi-pos))
1184 ;; In a string/comment? 1248 ;; In a string/comment?
1185 ((setq lit-range (c-literal-limits)) 1249 ((setq lit-range (c-literal-limits from))
1186 (goto-char (cdr lit-range))) 1250 (goto-char (cdr lit-range)))
1187 ((eq (char-after) ?:) 1251 ((eq (char-after) ?:)
1188 (forward-char) 1252 (forward-char)
@@ -2089,6 +2153,18 @@ comment at the start of cc-engine.el for more info."
2089;; reduced by buffer changes, and increased by invocations of 2153;; reduced by buffer changes, and increased by invocations of
2090;; `c-state-literal-at'. 2154;; `c-state-literal-at'.
2091 2155
2156(defvar c-state-semi-nonlit-pos-cache nil)
2157(make-variable-buffer-local 'c-state-semi-nonlit-pos-cache)
2158;; A list of buffer positions which are known not to be in a literal. This is
2159;; ordered with higher positions at the front of the list. Only those which
2160;; are less than `c-state-semi-nonlit-pos-cache-limit' are valid.
2161
2162(defvar c-state-semi-nonlit-pos-cache-limit 1)
2163(make-variable-buffer-local 'c-state-semi-nonlit-pos-cache-limit)
2164;; An upper limit on valid entries in `c-state-semi-nonlit-pos-cache'. This is
2165;; reduced by buffer changes, and increased by invocations of
2166;; `c-state-literal-at'. FIXME!!!
2167
2092(defsubst c-state-pp-to-literal (from to) 2168(defsubst c-state-pp-to-literal (from to)
2093 ;; Do a parse-partial-sexp from FROM to TO, returning either 2169 ;; Do a parse-partial-sexp from FROM to TO, returning either
2094 ;; (STATE TYPE (BEG . END)) if TO is in a literal; or 2170 ;; (STATE TYPE (BEG . END)) if TO is in a literal; or
@@ -2129,48 +2205,93 @@ comment at the start of cc-engine.el for more info."
2129 (widen) 2205 (widen)
2130 (save-excursion 2206 (save-excursion
2131 (let ((c c-state-nonlit-pos-cache) 2207 (let ((c c-state-nonlit-pos-cache)
2132 pos npos lit macro-beg macro-end) 2208 pos npos high-pos lit macro-beg macro-end)
2133 ;; Trim the cache to take account of buffer changes. 2209 ;; Trim the cache to take account of buffer changes.
2134 (while (and c (> (car c) c-state-nonlit-pos-cache-limit)) 2210 (while (and c (> (car c) c-state-nonlit-pos-cache-limit))
2135 (setq c (cdr c))) 2211 (setq c (cdr c)))
2136 (setq c-state-nonlit-pos-cache c) 2212 (setq c-state-nonlit-pos-cache c)
2137 2213
2138 (while (and c (> (car c) here)) 2214 (while (and c (> (car c) here))
2215 (setq high-pos (car c))
2139 (setq c (cdr c))) 2216 (setq c (cdr c)))
2140 (setq pos (or (car c) (point-min))) 2217 (setq pos (or (car c) (point-min)))
2141 2218
2142 (while 2219 (unless high-pos
2143 ;; Add an element to `c-state-nonlit-pos-cache' each iteration. 2220 (while
2144 (and 2221 ;; Add an element to `c-state-nonlit-pos-cache' each iteration.
2145 (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here) 2222 (and
2223 (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here)
2146 2224
2147 ;; Test for being in a literal. 2225 ;; Test for being in a literal. If so, go to after it.
2148 (progn 2226 (progn
2149 (setq lit (car (cddr (c-state-pp-to-literal pos npos)))) 2227 (setq lit (car (cddr (c-state-pp-to-literal pos npos))))
2150 (or (null lit) 2228 (or (null lit)
2151 (prog1 (<= (cdr lit) here) 2229 (prog1 (<= (cdr lit) here)
2152 (setq npos (cdr lit))))) 2230 (setq npos (cdr lit)))))
2153 2231
2154 ;; Test for being in a macro. 2232 ;; Test for being in a macro. If so, go to after it.
2155 (progn 2233 (progn
2156 (goto-char npos) 2234 (goto-char npos)
2157 (setq macro-beg 2235 (setq macro-beg
2158 (and (c-beginning-of-macro) (/= (point) npos) (point))) 2236 (and (c-beginning-of-macro) (/= (point) npos) (point)))
2159 (when macro-beg 2237 (when macro-beg
2160 (c-syntactic-end-of-macro) 2238 (c-syntactic-end-of-macro)
2161 (or (eobp) (forward-char)) 2239 (or (eobp) (forward-char))
2162 (setq macro-end (point))) 2240 (setq macro-end (point)))
2163 (or (null macro-beg) 2241 (or (null macro-beg)
2164 (prog1 (<= macro-end here) 2242 (prog1 (<= macro-end here)
2165 (setq npos macro-end))))) 2243 (setq npos macro-end)))))
2166 2244
2167 (setq pos npos) 2245 (setq pos npos)
2168 (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache))) 2246 (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache)))
2247 ;; Add one extra element above HERE so as to to avoid the previous
2248 ;; expensive calculation when the next call is close to the current
2249 ;; one. This is especially useful when inside a large macro.
2250 (setq c-state-nonlit-pos-cache (cons npos c-state-nonlit-pos-cache)))
2169 2251
2170 (if (> pos c-state-nonlit-pos-cache-limit) 2252 (if (> pos c-state-nonlit-pos-cache-limit)
2171 (setq c-state-nonlit-pos-cache-limit pos)) 2253 (setq c-state-nonlit-pos-cache-limit pos))
2172 pos)))) 2254 pos))))
2173 2255
2256(defun c-state-semi-safe-place (here)
2257 ;; Return a buffer position before HERE which is "safe", i.e. outside any
2258 ;; string or comment. It may be in a macro.
2259 (save-restriction
2260 (widen)
2261 (save-excursion
2262 (let ((c c-state-semi-nonlit-pos-cache)
2263 pos npos high-pos lit macro-beg macro-end)
2264 ;; Trim the cache to take account of buffer changes.
2265 (while (and c (> (car c) c-state-semi-nonlit-pos-cache-limit))
2266 (setq c (cdr c)))
2267 (setq c-state-semi-nonlit-pos-cache c)
2268
2269 (while (and c (> (car c) here))
2270 (setq high-pos (car c))
2271 (setq c (cdr c)))
2272 (setq pos (or (car c) (point-min)))
2273
2274 (unless high-pos
2275 (while
2276 ;; Add an element to `c-state-semi-nonlit-pos-cache' each iteration.
2277 (and
2278 (<= (setq npos (+ pos c-state-nonlit-pos-interval)) here)
2279
2280 ;; Test for being in a literal. If so, go to after it.
2281 (progn
2282 (setq lit (car (cddr (c-state-pp-to-literal pos npos))))
2283 (or (null lit)
2284 (prog1 (<= (cdr lit) here)
2285 (setq npos (cdr lit))))))
2286
2287 (setq pos npos)
2288 (setq c-state-semi-nonlit-pos-cache
2289 (cons pos c-state-semi-nonlit-pos-cache))))
2290
2291 (if (> pos c-state-semi-nonlit-pos-cache-limit)
2292 (setq c-state-semi-nonlit-pos-cache-limit pos))
2293 pos))))
2294
2174(defun c-state-literal-at (here) 2295(defun c-state-literal-at (here)
2175 ;; If position HERE is inside a literal, return (START . END), the 2296 ;; If position HERE is inside a literal, return (START . END), the
2176 ;; boundaries of the literal (which may be outside the accessible bit of the 2297 ;; boundaries of the literal (which may be outside the accessible bit of the
@@ -2985,9 +3106,11 @@ comment at the start of cc-engine.el for more info."
2985 ;; 3106 ;;
2986 ;; This function is called from c-after-change. 3107 ;; This function is called from c-after-change.
2987 3108
2988 ;; The cache of non-literals: 3109 ;; The caches of non-literals:
2989 (if (< here c-state-nonlit-pos-cache-limit) 3110 (if (< here c-state-nonlit-pos-cache-limit)
2990 (setq c-state-nonlit-pos-cache-limit here)) 3111 (setq c-state-nonlit-pos-cache-limit here))
3112 (if (< here c-state-semi-nonlit-pos-cache-limit)
3113 (setq c-state-semi-nonlit-pos-cache-limit here))
2991 3114
2992 ;; `c-state-cache': 3115 ;; `c-state-cache':
2993 ;; Case 1: if `here' is in a literal containing point-min, everything 3116 ;; Case 1: if `here' is in a literal containing point-min, everything
@@ -3127,8 +3250,7 @@ comment at the start of cc-engine.el for more info."
3127 (if scan-forward-p 3250 (if scan-forward-p
3128 (progn (narrow-to-region (point-min) here) 3251 (progn (narrow-to-region (point-min) here)
3129 (c-append-to-state-cache good-pos)) 3252 (c-append-to-state-cache good-pos))
3130 3253 good-pos)))
3131 (c-get-cache-scan-pos good-pos))))
3132 3254
3133 (t ; (eq strategy 'IN-LIT) 3255 (t ; (eq strategy 'IN-LIT)
3134 (setq c-state-cache nil 3256 (setq c-state-cache nil
@@ -4230,7 +4352,7 @@ Note that this function might do hidden buffer changes. See the
4230comment at the start of cc-engine.el for more info." 4352comment at the start of cc-engine.el for more info."
4231 (save-restriction 4353 (save-restriction
4232 (widen) 4354 (widen)
4233 (let* ((safe-place (c-state-safe-place (point))) 4355 (let* ((safe-place (c-state-semi-safe-place (point)))
4234 (lit (c-state-pp-to-literal safe-place (point)))) 4356 (lit (c-state-pp-to-literal safe-place (point))))
4235 (or (cadr lit) 4357 (or (cadr lit)
4236 (and detect-cpp 4358 (and detect-cpp
@@ -4254,7 +4376,7 @@ comment at the start of cc-engine.el for more info."
4254 4376
4255 (save-excursion 4377 (save-excursion
4256 (let* ((pos (point)) 4378 (let* ((pos (point))
4257 (lim (or lim (c-state-safe-place pos))) 4379 (lim (or lim (c-state-semi-safe-place pos)))
4258 (pp-to-lit (save-restriction 4380 (pp-to-lit (save-restriction
4259 (widen) 4381 (widen)
4260 (c-state-pp-to-literal lim pos))) 4382 (c-state-pp-to-literal lim pos)))
@@ -4372,7 +4494,7 @@ comment at the start of cc-engine.el for more info."
4372 ;; Get a "safe place" approximately TRY-SIZE characters before START. 4494 ;; Get a "safe place" approximately TRY-SIZE characters before START.
4373 ;; This doesn't preserve point. 4495 ;; This doesn't preserve point.
4374 (let* ((pos (max (- start try-size) (point-min))) 4496 (let* ((pos (max (- start try-size) (point-min)))
4375 (base (c-state-safe-place pos)) 4497 (base (c-state-semi-safe-place pos))
4376 (s (parse-partial-sexp base pos))) 4498 (s (parse-partial-sexp base pos)))
4377 (if (or (nth 4 s) (nth 3 s)) ; comment or string 4499 (if (or (nth 4 s) (nth 3 s)) ; comment or string
4378 (nth 8 s) 4500 (nth 8 s)
@@ -4440,6 +4562,38 @@ comment at the start of cc-engine.el for more info."
4440 (point-min)) 4562 (point-min))
4441 (t 4563 (t
4442 (c-determine-limit (- how-far-back count) base try-size)))))) 4564 (c-determine-limit (- how-far-back count) base try-size))))))
4565
4566(defun c-determine-+ve-limit (how-far &optional start-pos)
4567 ;; Return a buffer position about HOW-FAR non-literal characters forward
4568 ;; from START-POS (default point), which must not be inside a literal.
4569 (save-excursion
4570 (let ((pos (or start-pos (point)))
4571 (count how-far)
4572 (s (parse-partial-sexp (point) (point)))) ; null state
4573 (while (and (not (eobp))
4574 (> count 0))
4575 ;; Scan over counted characters.
4576 (setq s (parse-partial-sexp
4577 pos
4578 (min (+ pos count) (point-max))
4579 nil ; target-depth
4580 nil ; stop-before
4581 s ; state
4582 'syntax-table)) ; stop-comment
4583 (setq count (- count (- (point) pos) 1)
4584 pos (point))
4585 ;; Scan over literal characters.
4586 (if (nth 8 s)
4587 (setq s (parse-partial-sexp
4588 pos
4589 (point-max)
4590 nil ; target-depth
4591 nil ; stop-before
4592 s ; state
4593 'syntax-table) ; stop-comment
4594 pos (point))))
4595 (point))))
4596
4443 4597
4444;; `c-find-decl-spots' and accompanying stuff. 4598;; `c-find-decl-spots' and accompanying stuff.
4445 4599
@@ -7547,8 +7701,8 @@ comment at the start of cc-engine.el for more info."
7547 (and 7701 (and
7548 (eq (c-beginning-of-statement-1 lim) 'same) 7702 (eq (c-beginning-of-statement-1 lim) 'same)
7549 7703
7550 (not (or (c-major-mode-is 'objc-mode) 7704 (not (and (c-major-mode-is 'objc-mode)
7551 (c-forward-objc-directive))) 7705 (c-forward-objc-directive)))
7552 7706
7553 (setq id-start 7707 (setq id-start
7554 (car-safe (c-forward-decl-or-cast-1 (c-point 'bosws) nil nil))) 7708 (car-safe (c-forward-decl-or-cast-1 (c-point 'bosws) nil nil)))
@@ -8512,7 +8666,6 @@ comment at the start of cc-engine.el for more info."
8512 (setq pos (point))) 8666 (setq pos (point)))
8513 (and 8667 (and
8514 c-macro-with-semi-re 8668 c-macro-with-semi-re
8515 (not (c-in-literal))
8516 (eq (skip-chars-backward " \t") 0) 8669 (eq (skip-chars-backward " \t") 0)
8517 8670
8518 ;; Check we've got nothing after this except comments and empty lines 8671 ;; Check we've got nothing after this except comments and empty lines
@@ -8543,7 +8696,9 @@ comment at the start of cc-engine.el for more info."
8543 (c-backward-syntactic-ws) 8696 (c-backward-syntactic-ws)
8544 t)) 8697 t))
8545 (c-simple-skip-symbol-backward) 8698 (c-simple-skip-symbol-backward)
8546 (looking-at c-macro-with-semi-re))))) 8699 (looking-at c-macro-with-semi-re)
8700 (goto-char pos)
8701 (not (c-in-literal)))))) ; The most expensive check last.
8547 8702
8548(defun c-macro-vsemi-status-unknown-p () t) ; See cc-defs.el. 8703(defun c-macro-vsemi-status-unknown-p () t) ; See cc-defs.el.
8549 8704
@@ -9084,6 +9239,10 @@ comment at the start of cc-engine.el for more info."
9084 containing-sexp nil))) 9239 containing-sexp nil)))
9085 (setq lim (1+ containing-sexp)))) 9240 (setq lim (1+ containing-sexp))))
9086 (setq lim (point-min))) 9241 (setq lim (point-min)))
9242 (when (c-beginning-of-macro)
9243 (goto-char indent-point)
9244 (let ((lim1 (c-determine-limit 2000)))
9245 (setq lim (max lim lim1))))
9087 9246
9088 ;; If we're in a parenthesis list then ',' delimits the 9247 ;; If we're in a parenthesis list then ',' delimits the
9089 ;; "statements" rather than being an operator (with the 9248 ;; "statements" rather than being an operator (with the
@@ -9448,7 +9607,8 @@ comment at the start of cc-engine.el for more info."
9448 ;; CASE 5B: After a function header but before the body (or 9607 ;; CASE 5B: After a function header but before the body (or
9449 ;; the ending semicolon if there's no body). 9608 ;; the ending semicolon if there's no body).
9450 ((save-excursion 9609 ((save-excursion
9451 (when (setq placeholder (c-just-after-func-arglist-p lim)) 9610 (when (setq placeholder (c-just-after-func-arglist-p
9611 (max lim (c-determine-limit 500))))
9452 (setq tmp-pos (point)))) 9612 (setq tmp-pos (point))))
9453 (cond 9613 (cond
9454 9614
@@ -9656,7 +9816,7 @@ comment at the start of cc-engine.el for more info."
9656 ;; top level construct. Or, perhaps, an unrecognized construct. 9816 ;; top level construct. Or, perhaps, an unrecognized construct.
9657 (t 9817 (t
9658 (while (and (setq placeholder (point)) 9818 (while (and (setq placeholder (point))
9659 (eq (car (c-beginning-of-decl-1 containing-sexp)) 9819 (eq (car (c-beginning-of-decl-1 containing-sexp)) ; Can't use `lim' here.
9660 'same) 9820 'same)
9661 (save-excursion 9821 (save-excursion
9662 (c-backward-syntactic-ws) 9822 (c-backward-syntactic-ws)
@@ -9759,7 +9919,7 @@ comment at the start of cc-engine.el for more info."
9759 (eq (cdar c-state-cache) (point))) 9919 (eq (cdar c-state-cache) (point)))
9760 ;; Speed up the backward search a bit. 9920 ;; Speed up the backward search a bit.
9761 (goto-char (caar c-state-cache))) 9921 (goto-char (caar c-state-cache)))
9762 (c-beginning-of-decl-1 containing-sexp) 9922 (c-beginning-of-decl-1 containing-sexp) ; Can't use `lim' here.
9763 (setq placeholder (point)) 9923 (setq placeholder (point))
9764 (if (= start (point)) 9924 (if (= start (point))
9765 ;; The '}' is unbalanced. 9925 ;; The '}' is unbalanced.
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index fafbfb70552..493f3db0961 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -459,8 +459,10 @@ so that all identifiers are recognized as words.")
459 ;; For documentation see the following c-lang-defvar of the same name. 459 ;; For documentation see the following c-lang-defvar of the same name.
460 ;; The value here may be a list of functions or a single function. 460 ;; The value here may be a list of functions or a single function.
461 t nil 461 t nil
462 c++ '(c-extend-region-for-CPP c-before-change-check-<>-operators) 462 c++ '(c-extend-region-for-CPP
463 (c objc) 'c-extend-region-for-CPP 463 c-before-change-check-<>-operators
464 c-invalidate-macro-cache)
465 (c objc) '(c-extend-region-for-CPP c-invalidate-macro-cache)
464 ;; java 'c-before-change-check-<>-operators 466 ;; java 'c-before-change-check-<>-operators
465 awk 'c-awk-record-region-clear-NL) 467 awk 'c-awk-record-region-clear-NL)
466(c-lang-defvar c-get-state-before-change-functions 468(c-lang-defvar c-get-state-before-change-functions
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 985214db1dc..7c018feefbb 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -925,8 +925,8 @@ Note that the style variables are always made local to the buffer."
925 ;; inside a string, comment, or macro. 925 ;; inside a string, comment, or macro.
926 (setq new-bounds (c-extend-font-lock-region-for-macros 926 (setq new-bounds (c-extend-font-lock-region-for-macros
927 c-new-BEG c-new-END old-len)) 927 c-new-BEG c-new-END old-len))
928 (setq c-new-BEG (car new-bounds) 928 (setq c-new-BEG (max (car new-bounds) (c-determine-limit 500 begg))
929 c-new-END (cdr new-bounds)) 929 c-new-END (min (cdr new-bounds) (c-determine-+ve-limit 500 endd)))
930 ;; Clear all old relevant properties. 930 ;; Clear all old relevant properties.
931 (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1)) 931 (c-clear-char-property-with-value c-new-BEG c-new-END 'syntax-table '(1))
932 (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter) 932 (c-clear-char-property-with-value c-new-BEG c-new-END 'category 'c-cpp-delimiter)
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 4e9a10e3ceb..64e99fb1f3d 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -54,7 +54,7 @@
54 :group 'languages) 54 :group 'languages)
55 55
56(defcustom cfengine-indent 2 56(defcustom cfengine-indent 2
57 "*Size of a CFEngine indentation step in columns." 57 "Size of a CFEngine indentation step in columns."
58 :group 'cfengine 58 :group 'cfengine
59 :type 'integer) 59 :type 'integer)
60 60
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 88c36e8c452..0feefd99715 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -106,12 +106,12 @@
106 106
107 107
108(defcustom c-macro-shrink-window-flag nil 108(defcustom c-macro-shrink-window-flag nil
109 "*Non-nil means shrink the *Macroexpansion* window to fit its contents." 109 "Non-nil means shrink the *Macroexpansion* window to fit its contents."
110 :type 'boolean 110 :type 'boolean
111 :group 'c-macro) 111 :group 'c-macro)
112 112
113(defcustom c-macro-prompt-flag nil 113(defcustom c-macro-prompt-flag nil
114 "*Non-nil makes `c-macro-expand' prompt for preprocessor arguments." 114 "Non-nil makes `c-macro-expand' prompt for preprocessor arguments."
115 :type 'boolean 115 :type 'boolean
116 :group 'c-macro) 116 :group 'c-macro)
117 117
@@ -141,7 +141,7 @@ option, or to set an equivalent one."
141 :group 'c-macro) 141 :group 'c-macro)
142 142
143(defcustom c-macro-cppflags "" 143(defcustom c-macro-cppflags ""
144 "*Preprocessor flags used by `c-macro-expand'." 144 "Preprocessor flags used by `c-macro-expand'."
145 :type 'string 145 :type 'string
146 :group 'c-macro) 146 :group 'c-macro)
147 147
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index c1d8f9db23f..2608ba0b0c3 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -78,7 +78,7 @@ after `call-process' inserts the grep output into the buffer.")
78This is bound before running `compilation-filter-hook'.") 78This is bound before running `compilation-filter-hook'.")
79 79
80(defvar compilation-first-column 1 80(defvar compilation-first-column 1
81 "*This is how compilers number the first column, usually 1 or 0. 81 "This is how compilers number the first column, usually 1 or 0.
82If this is buffer-local in the destination buffer, Emacs obeys 82If this is buffer-local in the destination buffer, Emacs obeys
83that value, otherwise it uses the value in the *compilation* 83that value, otherwise it uses the value in the *compilation*
84buffer. This enables a major-mode to specify its own value.") 84buffer. This enables a major-mode to specify its own value.")
@@ -90,7 +90,7 @@ in the compilation output, and should return a transformed file name.")
90 90
91;;;###autoload 91;;;###autoload
92(defvar compilation-process-setup-function nil 92(defvar compilation-process-setup-function nil
93 "*Function to call to customize the compilation process. 93 "Function to call to customize the compilation process.
94This function is called immediately before the compilation process is 94This function is called immediately before the compilation process is
95started. It can be used to set any variables or functions that are used 95started. It can be used to set any variables or functions that are used
96while processing the output of the compilation process.") 96while processing the output of the compilation process.")
@@ -633,7 +633,7 @@ This only affects platforms that support asynchronous processes (see
633(defvar compilation-locs ()) 633(defvar compilation-locs ())
634 634
635(defvar compilation-debug nil 635(defvar compilation-debug nil
636 "*Set this to t before creating a *compilation* buffer. 636 "Set this to t before creating a *compilation* buffer.
637Then every error line will have a debug text property with the matcher that 637Then every error line will have a debug text property with the matcher that
638fit this line and the match data. Use `describe-text-properties'.") 638fit this line and the match data. Use `describe-text-properties'.")
639 639
@@ -739,7 +739,7 @@ Faces `compilation-error-face', `compilation-warning-face',
739;; (make-variable-buffer-local 'compilation-buffer-modtime) 739;; (make-variable-buffer-local 'compilation-buffer-modtime)
740 740
741(defvar compilation-skip-to-next-location t 741(defvar compilation-skip-to-next-location t
742 "*If non-nil, skip multiple error messages for the same source location.") 742 "If non-nil, skip multiple error messages for the same source location.")
743 743
744(defcustom compilation-skip-threshold 1 744(defcustom compilation-skip-threshold 1
745 "Compilation motion commands skip less important messages. 745 "Compilation motion commands skip less important messages.
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 8ecfe79de3b..1b36fe2800d 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -52,7 +52,7 @@
52 :prefix "cpp-") 52 :prefix "cpp-")
53 53
54(defcustom cpp-config-file (convert-standard-filename ".cpp.el") 54(defcustom cpp-config-file (convert-standard-filename ".cpp.el")
55 "*File name to save cpp configuration." 55 "File name to save cpp configuration."
56 :type 'file 56 :type 'file
57 :group 'cpp) 57 :group 'cpp)
58 58
@@ -61,17 +61,17 @@
61 :type '(choice (const invisible) (face))) 61 :type '(choice (const invisible) (face)))
62 62
63(defcustom cpp-known-face 'invisible 63(defcustom cpp-known-face 'invisible
64 "*Face used for known cpp symbols." 64 "Face used for known cpp symbols."
65 :type 'cpp-face 65 :type 'cpp-face
66 :group 'cpp) 66 :group 'cpp)
67 67
68(defcustom cpp-unknown-face 'highlight 68(defcustom cpp-unknown-face 'highlight
69 "*Face used for unknown cpp symbols." 69 "Face used for unknown cpp symbols."
70 :type 'cpp-face 70 :type 'cpp-face
71 :group 'cpp) 71 :group 'cpp)
72 72
73(defcustom cpp-face-type 'light 73(defcustom cpp-face-type 'light
74 "*Indicate what background face type you prefer. 74 "Indicate what background face type you prefer.
75Can be either light or dark for color screens, mono for monochrome 75Can be either light or dark for color screens, mono for monochrome
76screens, and none if you don't use a window system and don't have 76screens, and none if you don't use a window system and don't have
77a color-capable display." 77a color-capable display."
@@ -80,12 +80,12 @@ a color-capable display."
80 :group 'cpp) 80 :group 'cpp)
81 81
82(defcustom cpp-known-writable t 82(defcustom cpp-known-writable t
83 "*Non-nil means you are allowed to modify the known conditionals." 83 "Non-nil means you are allowed to modify the known conditionals."
84 :type 'boolean 84 :type 'boolean
85 :group 'cpp) 85 :group 'cpp)
86 86
87(defcustom cpp-unknown-writable t 87(defcustom cpp-unknown-writable t
88 "*Non-nil means you are allowed to modify the unknown conditionals." 88 "Non-nil means you are allowed to modify the unknown conditionals."
89 :type 'boolean 89 :type 'boolean
90 :group 'cpp) 90 :group 'cpp)
91 91
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 74ca5a6d76f..3e99f3c9176 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -120,7 +120,7 @@
120 :group 'faces) 120 :group 'faces)
121 121
122(defvar cwarn-mode nil 122(defvar cwarn-mode nil
123 "*Non-nil when Cwarn mode is active. 123 "Non-nil when Cwarn mode is active.
124 124
125Never set this variable directly, use the command `cwarn-mode' 125Never set this variable directly, use the command `cwarn-mode'
126instead.") 126instead.")
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el
index 166065131b2..af0ae9d1123 100644
--- a/lisp/progmodes/dcl-mode.el
+++ b/lisp/progmodes/dcl-mode.el
@@ -98,7 +98,7 @@ Presently this includes some syntax, .OP.erators, and \"f$\" lexicals.")
98 :group 'languages) 98 :group 'languages)
99 99
100(defcustom dcl-basic-offset 4 100(defcustom dcl-basic-offset 4
101 "*Number of columns to indent a block in DCL. 101 "Number of columns to indent a block in DCL.
102A block is the commands between THEN-ELSE-ENDIF and between the commands 102A block is the commands between THEN-ELSE-ENDIF and between the commands
103dcl-block-begin-regexp and dcl-block-end-regexp. 103dcl-block-begin-regexp and dcl-block-end-regexp.
104 104
@@ -109,7 +109,7 @@ dcl-calc-command-indent-function is set to a function."
109 109
110 110
111(defcustom dcl-continuation-offset 6 111(defcustom dcl-continuation-offset 6
112 "*Number of columns to indent a continuation line in DCL. 112 "Number of columns to indent a continuation line in DCL.
113A continuation line is a line that follows a line ending with `-'. 113A continuation line is a line that follows a line ending with `-'.
114 114
115The meaning of this variable may be changed if 115The meaning of this variable may be changed if
@@ -119,7 +119,7 @@ dcl-calc-cont-indent-function is set to a function."
119 119
120 120
121(defcustom dcl-margin-offset 8 121(defcustom dcl-margin-offset 8
122 "*Indentation for the first command line in DCL. 122 "Indentation for the first command line in DCL.
123The first command line in a file or after a SUBROUTINE statement is indented 123The first command line in a file or after a SUBROUTINE statement is indented
124this much. Other command lines are indented the same number of columns as 124this much. Other command lines are indented the same number of columns as
125the preceding command line. 125the preceding command line.
@@ -129,7 +129,7 @@ A command line is a line that starts with `$'."
129 129
130 130
131(defcustom dcl-margin-label-offset 2 131(defcustom dcl-margin-label-offset 2
132 "*Number of columns to indent a margin label in DCL. 132 "Number of columns to indent a margin label in DCL.
133A margin label is a label that doesn't begin or end a block, i.e. it 133A margin label is a label that doesn't begin or end a block, i.e. it
134doesn't match dcl-block-begin-regexp or dcl-block-end-regexp." 134doesn't match dcl-block-begin-regexp or dcl-block-end-regexp."
135 :type 'integer 135 :type 'integer
@@ -137,28 +137,28 @@ doesn't match dcl-block-begin-regexp or dcl-block-end-regexp."
137 137
138 138
139(defcustom dcl-comment-line-regexp "^\\$!" 139(defcustom dcl-comment-line-regexp "^\\$!"
140 "*Regexp describing the start of a comment line in DCL. 140 "Regexp describing the start of a comment line in DCL.
141Comment lines are not indented." 141Comment lines are not indented."
142 :type 'regexp 142 :type 'regexp
143 :group 'dcl) 143 :group 'dcl)
144 144
145 145
146(defcustom dcl-block-begin-regexp "loop[0-9]*:" 146(defcustom dcl-block-begin-regexp "loop[0-9]*:"
147 "*Regexp describing a command that begins an indented block in DCL. 147 "Regexp describing a command that begins an indented block in DCL.
148Set to nil to only indent at THEN-ELSE-ENDIF." 148Set to nil to only indent at THEN-ELSE-ENDIF."
149 :type 'regexp 149 :type 'regexp
150 :group 'dcl) 150 :group 'dcl)
151 151
152 152
153(defcustom dcl-block-end-regexp "endloop[0-9]*:" 153(defcustom dcl-block-end-regexp "endloop[0-9]*:"
154 "*Regexp describing a command that ends an indented block in DCL. 154 "Regexp describing a command that ends an indented block in DCL.
155Set to nil to only indent at THEN-ELSE-ENDIF." 155Set to nil to only indent at THEN-ELSE-ENDIF."
156 :type 'regexp 156 :type 'regexp
157 :group 'dcl) 157 :group 'dcl)
158 158
159 159
160(defcustom dcl-calc-command-indent-function nil 160(defcustom dcl-calc-command-indent-function nil
161 "*Function to calculate indentation for a command line in DCL. 161 "Function to calculate indentation for a command line in DCL.
162If this variable is non-nil it is called as a function: 162If this variable is non-nil it is called as a function:
163 163
164\(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT) 164\(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)
@@ -190,7 +190,7 @@ This package includes two functions suitable for this:
190 190
191 191
192(defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative 192(defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative
193 "*Function to calculate indentation for a continuation line. 193 "Function to calculate indentation for a continuation line.
194If this variable is non-nil it is called as a function: 194If this variable is non-nil it is called as a function:
195 195
196\(func CUR-INDENT EXTRA-INDENT) 196\(func CUR-INDENT EXTRA-INDENT)
@@ -208,7 +208,7 @@ This package includes one function suitable for this:
208 208
209 209
210(defcustom dcl-tab-always-indent t 210(defcustom dcl-tab-always-indent t
211 "*Controls the operation of the TAB key in DCL mode. 211 "Controls the operation of the TAB key in DCL mode.
212If t, pressing TAB always indents the current line. 212If t, pressing TAB always indents the current line.
213If nil, pressing TAB indents the current line if point is at the left margin. 213If nil, pressing TAB indents the current line if point is at the left margin.
214Data lines (i.e. lines not part of a command line or continuation line) are 214Data lines (i.e. lines not part of a command line or continuation line) are
@@ -218,43 +218,43 @@ never indented."
218 218
219 219
220(defcustom dcl-electric-characters t 220(defcustom dcl-electric-characters t
221 "*Non-nil means reindent immediately when a label, ELSE or ENDIF is inserted." 221 "Non-nil means reindent immediately when a label, ELSE or ENDIF is inserted."
222 :type 'boolean 222 :type 'boolean
223 :group 'dcl) 223 :group 'dcl)
224 224
225 225
226(defcustom dcl-tempo-comma ", " 226(defcustom dcl-tempo-comma ", "
227 "*Text to insert when a comma is needed in a template, in DCL mode." 227 "Text to insert when a comma is needed in a template, in DCL mode."
228 :type 'string 228 :type 'string
229 :group 'dcl) 229 :group 'dcl)
230 230
231(defcustom dcl-tempo-left-paren "(" 231(defcustom dcl-tempo-left-paren "("
232 "*Text to insert when a left parenthesis is needed in a template in DCL." 232 "Text to insert when a left parenthesis is needed in a template in DCL."
233 :type 'string 233 :type 'string
234 :group 'dcl) 234 :group 'dcl)
235 235
236 236
237(defcustom dcl-tempo-right-paren ")" 237(defcustom dcl-tempo-right-paren ")"
238 "*Text to insert when a right parenthesis is needed in a template in DCL." 238 "Text to insert when a right parenthesis is needed in a template in DCL."
239 :type 'string 239 :type 'string
240 :group 'dcl) 240 :group 'dcl)
241 241
242; I couldn't decide what looked best, so I'll let you decide... 242; I couldn't decide what looked best, so I'll let you decide...
243; Remember, you can also customize this with imenu-submenu-name-format. 243; Remember, you can also customize this with imenu-submenu-name-format.
244(defcustom dcl-imenu-label-labels "Labels" 244(defcustom dcl-imenu-label-labels "Labels"
245 "*Imenu menu title for sub-listing with label names." 245 "Imenu menu title for sub-listing with label names."
246 :type 'string 246 :type 'string
247 :group 'dcl) 247 :group 'dcl)
248(defcustom dcl-imenu-label-goto "GOTO" 248(defcustom dcl-imenu-label-goto "GOTO"
249 "*Imenu menu title for sub-listing with GOTO statements." 249 "Imenu menu title for sub-listing with GOTO statements."
250 :type 'string 250 :type 'string
251 :group 'dcl) 251 :group 'dcl)
252(defcustom dcl-imenu-label-gosub "GOSUB" 252(defcustom dcl-imenu-label-gosub "GOSUB"
253 "*Imenu menu title for sub-listing with GOSUB statements." 253 "Imenu menu title for sub-listing with GOSUB statements."
254 :type 'string 254 :type 'string
255 :group 'dcl) 255 :group 'dcl)
256(defcustom dcl-imenu-label-call "CALL" 256(defcustom dcl-imenu-label-call "CALL"
257 "*Imenu menu title for sub-listing with CALL statements." 257 "Imenu menu title for sub-listing with CALL statements."
258 :type 'string 258 :type 'string
259 :group 'dcl) 259 :group 'dcl)
260 260
@@ -265,7 +265,7 @@ never indented."
265 (,dcl-imenu-label-goto "\\s-GOTO[ \t]+\\([A-Za-z0-9_\$]+\\)" 1) 265 (,dcl-imenu-label-goto "\\s-GOTO[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)
266 (,dcl-imenu-label-gosub "\\s-GOSUB[ \t]+\\([A-Za-z0-9_\$]+\\)" 1) 266 (,dcl-imenu-label-gosub "\\s-GOSUB[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)
267 (,dcl-imenu-label-call "\\s-CALL[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)) 267 (,dcl-imenu-label-call "\\s-CALL[ \t]+\\([A-Za-z0-9_\$]+\\)" 1))
268 "*Default imenu generic expression for DCL. 268 "Default imenu generic expression for DCL.
269 269
270The default includes SUBROUTINE labels in the main listing and 270The default includes SUBROUTINE labels in the main listing and
271sub-listings for other labels, CALL, GOTO and GOSUB statements. 271sub-listings for other labels, CALL, GOTO and GOSUB statements.
@@ -275,7 +275,7 @@ See `imenu-generic-expression' for details."
275 275
276 276
277(defcustom dcl-mode-hook nil 277(defcustom dcl-mode-hook nil
278 "*Hook called by `dcl-mode'." 278 "Hook called by `dcl-mode'."
279 :type 'hook 279 :type 'hook
280 :group 'dcl) 280 :group 'dcl)
281 281
@@ -400,7 +400,7 @@ optionally followed by a comment, followed by a newline."
400 400
401(defcustom dcl-electric-reindent-regexps 401(defcustom dcl-electric-reindent-regexps
402 (list "endif" "else" dcl-label-r) 402 (list "endif" "else" dcl-label-r)
403 "*Regexps that can trigger an electric reindent. 403 "Regexps that can trigger an electric reindent.
404A list of regexps that will trigger a reindent if the last letter 404A list of regexps that will trigger a reindent if the last letter
405is defined as dcl-electric-character. 405is defined as dcl-electric-character.
406 406
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index dd8d267683c..d533135c70d 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -74,7 +74,7 @@
74 "True if in debug mode.") 74 "True if in debug mode.")
75 75
76(defcustom delphi-search-path "." 76(defcustom delphi-search-path "."
77 "*Directories to search when finding external units. 77 "Directories to search when finding external units.
78It is a list of directory strings. If only a single directory, 78It is a list of directory strings. If only a single directory,
79it can be a single string instead of a list. If a directory 79it can be a single string instead of a list. If a directory
80ends in \"...\" then that directory is recursively searched." 80ends in \"...\" then that directory is recursively searched."
@@ -82,7 +82,7 @@ ends in \"...\" then that directory is recursively searched."
82 :group 'delphi) 82 :group 'delphi)
83 83
84(defcustom delphi-indent-level 3 84(defcustom delphi-indent-level 3
85 "*Indentation of Delphi statements with respect to containing block. 85 "Indentation of Delphi statements with respect to containing block.
86E.g. 86E.g.
87 87
88begin 88begin
@@ -92,7 +92,7 @@ end;"
92 :group 'delphi) 92 :group 'delphi)
93 93
94(defcustom delphi-compound-block-indent 0 94(defcustom delphi-compound-block-indent 0
95 "*Extra indentation for blocks in compound statements. E.g. 95 "Extra indentation for blocks in compound statements. E.g.
96 96
97// block indent = 0 vs // block indent = 2 97// block indent = 0 vs // block indent = 2
98if b then if b then 98if b then if b then
@@ -105,7 +105,7 @@ end; else
105 :group 'delphi) 105 :group 'delphi)
106 106
107(defcustom delphi-case-label-indent delphi-indent-level 107(defcustom delphi-case-label-indent delphi-indent-level
108 "*Extra indentation for case statement labels. E.g. 108 "Extra indentation for case statement labels. E.g.
109 109
110// case indent = 0 vs // case indent = 3 110// case indent = 0 vs // case indent = 3
111case value of case value of 111case value of case value of
@@ -118,18 +118,18 @@ end; end;"
118 :group 'delphi) 118 :group 'delphi)
119 119
120(defcustom delphi-verbose t ; nil 120(defcustom delphi-verbose t ; nil
121 "*If true then Delphi token processing progress is reported to the user." 121 "If true then Delphi token processing progress is reported to the user."
122 :type 'boolean 122 :type 'boolean
123 :group 'delphi) 123 :group 'delphi)
124 124
125(defcustom delphi-tab-always-indents t 125(defcustom delphi-tab-always-indents t
126 "*Non-nil means TAB in Delphi mode should always reindent the current line, 126 "Non-nil means TAB in Delphi mode should always reindent the current line,
127regardless of where in the line point is when the TAB command is used." 127regardless of where in the line point is when the TAB command is used."
128 :type 'boolean 128 :type 'boolean
129 :group 'delphi) 129 :group 'delphi)
130 130
131(defcustom delphi-newline-always-indents t 131(defcustom delphi-newline-always-indents t
132 "*Non-nil means NEWLINE in Delphi mode should always reindent the current 132 "Non-nil means NEWLINE in Delphi mode should always reindent the current
133line, insert a blank line and move to the default indent column of the blank 133line, insert a blank line and move to the default indent column of the blank
134line. If nil, then no indentation occurs, and NEWLINE does the usual 134line. If nil, then no indentation occurs, and NEWLINE does the usual
135behavior. This is useful when one needs to do customized indentation that 135behavior. This is useful when one needs to do customized indentation that
@@ -138,22 +138,22 @@ differs from the default."
138 :group 'delphi) 138 :group 'delphi)
139 139
140(defcustom delphi-comment-face 'font-lock-comment-face 140(defcustom delphi-comment-face 'font-lock-comment-face
141 "*Face used to color Delphi comments." 141 "Face used to color Delphi comments."
142 :type 'face 142 :type 'face
143 :group 'delphi) 143 :group 'delphi)
144 144
145(defcustom delphi-string-face 'font-lock-string-face 145(defcustom delphi-string-face 'font-lock-string-face
146 "*Face used to color Delphi strings." 146 "Face used to color Delphi strings."
147 :type 'face 147 :type 'face
148 :group 'delphi) 148 :group 'delphi)
149 149
150(defcustom delphi-keyword-face 'font-lock-keyword-face 150(defcustom delphi-keyword-face 'font-lock-keyword-face
151 "*Face used to color Delphi keywords." 151 "Face used to color Delphi keywords."
152 :type 'face 152 :type 'face
153 :group 'delphi) 153 :group 'delphi)
154 154
155(defcustom delphi-other-face nil 155(defcustom delphi-other-face nil
156 "*Face used to color everything else." 156 "Face used to color everything else."
157 :type '(choice (const :tag "None" nil) face) 157 :type '(choice (const :tag "None" nil) face)
158 :group 'delphi) 158 :group 'delphi)
159 159
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index 5d0bfad0366..05c9e160ceb 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -1276,14 +1276,14 @@ Elements of ALIST that are not conses are ignored."
1276 1276
1277 1277
1278(defcustom ebnf-horizontal-orientation nil 1278(defcustom ebnf-horizontal-orientation nil
1279 "*Non-nil means productions are drawn horizontally." 1279 "Non-nil means productions are drawn horizontally."
1280 :type 'boolean 1280 :type 'boolean
1281 :version "20" 1281 :version "20"
1282 :group 'ebnf-displacement) 1282 :group 'ebnf-displacement)
1283 1283
1284 1284
1285(defcustom ebnf-horizontal-max-height nil 1285(defcustom ebnf-horizontal-max-height nil
1286 "*Non-nil means to use maximum production height in horizontal orientation. 1286 "Non-nil means to use maximum production height in horizontal orientation.
1287 1287
1288It is only used when `ebnf-horizontal-orientation' is non-nil." 1288It is only used when `ebnf-horizontal-orientation' is non-nil."
1289 :type 'boolean 1289 :type 'boolean
@@ -1292,7 +1292,7 @@ It is only used when `ebnf-horizontal-orientation' is non-nil."
1292 1292
1293 1293
1294(defcustom ebnf-production-horizontal-space 0.0 ; use ebnf2ps default value 1294(defcustom ebnf-production-horizontal-space 0.0 ; use ebnf2ps default value
1295 "*Specify horizontal space in points between productions. 1295 "Specify horizontal space in points between productions.
1296 1296
1297Value less or equal to zero forces ebnf2ps to set a proper default value." 1297Value less or equal to zero forces ebnf2ps to set a proper default value."
1298 :type 'number 1298 :type 'number
@@ -1301,7 +1301,7 @@ Value less or equal to zero forces ebnf2ps to set a proper default value."
1301 1301
1302 1302
1303(defcustom ebnf-production-vertical-space 0.0 ; use ebnf2ps default value 1303(defcustom ebnf-production-vertical-space 0.0 ; use ebnf2ps default value
1304 "*Specify vertical space in points between productions. 1304 "Specify vertical space in points between productions.
1305 1305
1306Value less or equal to zero forces ebnf2ps to set a proper default value." 1306Value less or equal to zero forces ebnf2ps to set a proper default value."
1307 :type 'number 1307 :type 'number
@@ -1310,7 +1310,7 @@ Value less or equal to zero forces ebnf2ps to set a proper default value."
1310 1310
1311 1311
1312(defcustom ebnf-justify-sequence 'center 1312(defcustom ebnf-justify-sequence 'center
1313 "*Specify justification of terms in a sequence inside alternatives. 1313 "Specify justification of terms in a sequence inside alternatives.
1314 1314
1315Valid values are: 1315Valid values are:
1316 1316
@@ -1324,14 +1324,14 @@ Valid values are:
1324 1324
1325 1325
1326(defcustom ebnf-special-show-delimiter t 1326(defcustom ebnf-special-show-delimiter t
1327 "*Non-nil means special delimiter (character `?') is shown." 1327 "Non-nil means special delimiter (character `?') is shown."
1328 :type 'boolean 1328 :type 'boolean
1329 :version "20" 1329 :version "20"
1330 :group 'ebnf-special) 1330 :group 'ebnf-special)
1331 1331
1332 1332
1333(defcustom ebnf-special-font '(7 Courier "Black" "Gray95" bold italic) 1333(defcustom ebnf-special-font '(7 Courier "Black" "Gray95" bold italic)
1334 "*Specify special font. 1334 "Specify special font.
1335 1335
1336See documentation for `ebnf-production-font'." 1336See documentation for `ebnf-production-font'."
1337 :type '(list :tag "Special Font" 1337 :type '(list :tag "Special Font"
@@ -1353,7 +1353,7 @@ See documentation for `ebnf-production-font'."
1353 1353
1354 1354
1355(defcustom ebnf-special-shape 'bevel 1355(defcustom ebnf-special-shape 'bevel
1356 "*Specify special box shape. 1356 "Specify special box shape.
1357 1357
1358See documentation for `ebnf-non-terminal-shape'." 1358See documentation for `ebnf-non-terminal-shape'."
1359 :type '(radio :tag "Special Shape" 1359 :type '(radio :tag "Special Shape"
@@ -1363,28 +1363,28 @@ See documentation for `ebnf-non-terminal-shape'."
1363 1363
1364 1364
1365(defcustom ebnf-special-shadow nil 1365(defcustom ebnf-special-shadow nil
1366 "*Non-nil means special box will have a shadow." 1366 "Non-nil means special box will have a shadow."
1367 :type 'boolean 1367 :type 'boolean
1368 :version "20" 1368 :version "20"
1369 :group 'ebnf-special) 1369 :group 'ebnf-special)
1370 1370
1371 1371
1372(defcustom ebnf-special-border-width 0.5 1372(defcustom ebnf-special-border-width 0.5
1373 "*Specify border width for special box." 1373 "Specify border width for special box."
1374 :type 'number 1374 :type 'number
1375 :version "20" 1375 :version "20"
1376 :group 'ebnf-special) 1376 :group 'ebnf-special)
1377 1377
1378 1378
1379(defcustom ebnf-special-border-color "Black" 1379(defcustom ebnf-special-border-color "Black"
1380 "*Specify border color for special box." 1380 "Specify border color for special box."
1381 :type 'string 1381 :type 'string
1382 :version "20" 1382 :version "20"
1383 :group 'ebnf-special) 1383 :group 'ebnf-special)
1384 1384
1385 1385
1386(defcustom ebnf-except-font '(7 Courier "Black" "Gray90" bold italic) 1386(defcustom ebnf-except-font '(7 Courier "Black" "Gray90" bold italic)
1387 "*Specify except font. 1387 "Specify except font.
1388 1388
1389See documentation for `ebnf-production-font'." 1389See documentation for `ebnf-production-font'."
1390 :type '(list :tag "Except Font" 1390 :type '(list :tag "Except Font"
@@ -1406,7 +1406,7 @@ See documentation for `ebnf-production-font'."
1406 1406
1407 1407
1408(defcustom ebnf-except-shape 'bevel 1408(defcustom ebnf-except-shape 'bevel
1409 "*Specify except box shape. 1409 "Specify except box shape.
1410 1410
1411See documentation for `ebnf-non-terminal-shape'." 1411See documentation for `ebnf-non-terminal-shape'."
1412 :type '(radio :tag "Except Shape" 1412 :type '(radio :tag "Except Shape"
@@ -1416,28 +1416,28 @@ See documentation for `ebnf-non-terminal-shape'."
1416 1416
1417 1417
1418(defcustom ebnf-except-shadow nil 1418(defcustom ebnf-except-shadow nil
1419 "*Non-nil means except box will have a shadow." 1419 "Non-nil means except box will have a shadow."
1420 :type 'boolean 1420 :type 'boolean
1421 :version "20" 1421 :version "20"
1422 :group 'ebnf-except) 1422 :group 'ebnf-except)
1423 1423
1424 1424
1425(defcustom ebnf-except-border-width 0.25 1425(defcustom ebnf-except-border-width 0.25
1426 "*Specify border width for except box." 1426 "Specify border width for except box."
1427 :type 'number 1427 :type 'number
1428 :version "20" 1428 :version "20"
1429 :group 'ebnf-except) 1429 :group 'ebnf-except)
1430 1430
1431 1431
1432(defcustom ebnf-except-border-color "Black" 1432(defcustom ebnf-except-border-color "Black"
1433 "*Specify border color for except box." 1433 "Specify border color for except box."
1434 :type 'string 1434 :type 'string
1435 :version "20" 1435 :version "20"
1436 :group 'ebnf-except) 1436 :group 'ebnf-except)
1437 1437
1438 1438
1439(defcustom ebnf-repeat-font '(7 Courier "Black" "Gray85" bold italic) 1439(defcustom ebnf-repeat-font '(7 Courier "Black" "Gray85" bold italic)
1440 "*Specify repeat font. 1440 "Specify repeat font.
1441 1441
1442See documentation for `ebnf-production-font'." 1442See documentation for `ebnf-production-font'."
1443 :type '(list :tag "Repeat Font" 1443 :type '(list :tag "Repeat Font"
@@ -1459,7 +1459,7 @@ See documentation for `ebnf-production-font'."
1459 1459
1460 1460
1461(defcustom ebnf-repeat-shape 'bevel 1461(defcustom ebnf-repeat-shape 'bevel
1462 "*Specify repeat box shape. 1462 "Specify repeat box shape.
1463 1463
1464See documentation for `ebnf-non-terminal-shape'." 1464See documentation for `ebnf-non-terminal-shape'."
1465 :type '(radio :tag "Repeat Shape" 1465 :type '(radio :tag "Repeat Shape"
@@ -1469,28 +1469,28 @@ See documentation for `ebnf-non-terminal-shape'."
1469 1469
1470 1470
1471(defcustom ebnf-repeat-shadow nil 1471(defcustom ebnf-repeat-shadow nil
1472 "*Non-nil means repeat box will have a shadow." 1472 "Non-nil means repeat box will have a shadow."
1473 :type 'boolean 1473 :type 'boolean
1474 :version "20" 1474 :version "20"
1475 :group 'ebnf-repeat) 1475 :group 'ebnf-repeat)
1476 1476
1477 1477
1478(defcustom ebnf-repeat-border-width 0.0 1478(defcustom ebnf-repeat-border-width 0.0
1479 "*Specify border width for repeat box." 1479 "Specify border width for repeat box."
1480 :type 'number 1480 :type 'number
1481 :version "20" 1481 :version "20"
1482 :group 'ebnf-repeat) 1482 :group 'ebnf-repeat)
1483 1483
1484 1484
1485(defcustom ebnf-repeat-border-color "Black" 1485(defcustom ebnf-repeat-border-color "Black"
1486 "*Specify border color for repeat box." 1486 "Specify border color for repeat box."
1487 :type 'string 1487 :type 'string
1488 :version "20" 1488 :version "20"
1489 :group 'ebnf-repeat) 1489 :group 'ebnf-repeat)
1490 1490
1491 1491
1492(defcustom ebnf-terminal-font '(7 Courier "Black" "White") 1492(defcustom ebnf-terminal-font '(7 Courier "Black" "White")
1493 "*Specify terminal font. 1493 "Specify terminal font.
1494 1494
1495See documentation for `ebnf-production-font'." 1495See documentation for `ebnf-production-font'."
1496 :type '(list :tag "Terminal Font" 1496 :type '(list :tag "Terminal Font"
@@ -1512,7 +1512,7 @@ See documentation for `ebnf-production-font'."
1512 1512
1513 1513
1514(defcustom ebnf-terminal-shape 'miter 1514(defcustom ebnf-terminal-shape 'miter
1515 "*Specify terminal box shape. 1515 "Specify terminal box shape.
1516 1516
1517See documentation for `ebnf-non-terminal-shape'." 1517See documentation for `ebnf-non-terminal-shape'."
1518 :type '(radio :tag "Terminal Shape" 1518 :type '(radio :tag "Terminal Shape"
@@ -1522,35 +1522,35 @@ See documentation for `ebnf-non-terminal-shape'."
1522 1522
1523 1523
1524(defcustom ebnf-terminal-shadow nil 1524(defcustom ebnf-terminal-shadow nil
1525 "*Non-nil means terminal box will have a shadow." 1525 "Non-nil means terminal box will have a shadow."
1526 :type 'boolean 1526 :type 'boolean
1527 :version "20" 1527 :version "20"
1528 :group 'ebnf-terminal) 1528 :group 'ebnf-terminal)
1529 1529
1530 1530
1531(defcustom ebnf-terminal-border-width 1.0 1531(defcustom ebnf-terminal-border-width 1.0
1532 "*Specify border width for terminal box." 1532 "Specify border width for terminal box."
1533 :type 'number 1533 :type 'number
1534 :version "20" 1534 :version "20"
1535 :group 'ebnf-terminal) 1535 :group 'ebnf-terminal)
1536 1536
1537 1537
1538(defcustom ebnf-terminal-border-color "Black" 1538(defcustom ebnf-terminal-border-color "Black"
1539 "*Specify border color for terminal box." 1539 "Specify border color for terminal box."
1540 :type 'string 1540 :type 'string
1541 :version "20" 1541 :version "20"
1542 :group 'ebnf-terminal) 1542 :group 'ebnf-terminal)
1543 1543
1544 1544
1545(defcustom ebnf-production-name-p t 1545(defcustom ebnf-production-name-p t
1546 "*Non-nil means production name will be printed." 1546 "Non-nil means production name will be printed."
1547 :type 'boolean 1547 :type 'boolean
1548 :version "20" 1548 :version "20"
1549 :group 'ebnf-production) 1549 :group 'ebnf-production)
1550 1550
1551 1551
1552(defcustom ebnf-sort-production nil 1552(defcustom ebnf-sort-production nil
1553 "*Specify how productions are sorted. 1553 "Specify how productions are sorted.
1554 1554
1555Valid values are: 1555Valid values are:
1556 1556
@@ -1566,7 +1566,7 @@ Valid values are:
1566 1566
1567 1567
1568(defcustom ebnf-production-font '(10 Helvetica "Black" "White" bold) 1568(defcustom ebnf-production-font '(10 Helvetica "Black" "White" bold)
1569 "*Specify production header font. 1569 "Specify production header font.
1570 1570
1571It is a list with the following form: 1571It is a list with the following form:
1572 1572
@@ -1609,7 +1609,7 @@ See `ps-font-info-database' for valid font name."
1609 1609
1610 1610
1611(defcustom ebnf-non-terminal-font '(7 Helvetica "Black" "White") 1611(defcustom ebnf-non-terminal-font '(7 Helvetica "Black" "White")
1612 "*Specify non-terminal font. 1612 "Specify non-terminal font.
1613 1613
1614See documentation for `ebnf-production-font'." 1614See documentation for `ebnf-production-font'."
1615 :type '(list :tag "Non-Terminal Font" 1615 :type '(list :tag "Non-Terminal Font"
@@ -1631,7 +1631,7 @@ See documentation for `ebnf-production-font'."
1631 1631
1632 1632
1633(defcustom ebnf-non-terminal-shape 'round 1633(defcustom ebnf-non-terminal-shape 'round
1634 "*Specify non-terminal box shape. 1634 "Specify non-terminal box shape.
1635 1635
1636Valid values are: 1636Valid values are:
1637 1637
@@ -1655,28 +1655,28 @@ Any other value is treated as `miter'."
1655 1655
1656 1656
1657(defcustom ebnf-non-terminal-shadow nil 1657(defcustom ebnf-non-terminal-shadow nil
1658 "*Non-nil means non-terminal box will have a shadow." 1658 "Non-nil means non-terminal box will have a shadow."
1659 :type 'boolean 1659 :type 'boolean
1660 :version "20" 1660 :version "20"
1661 :group 'ebnf-non-terminal) 1661 :group 'ebnf-non-terminal)
1662 1662
1663 1663
1664(defcustom ebnf-non-terminal-border-width 1.0 1664(defcustom ebnf-non-terminal-border-width 1.0
1665 "*Specify border width for non-terminal box." 1665 "Specify border width for non-terminal box."
1666 :type 'number 1666 :type 'number
1667 :version "20" 1667 :version "20"
1668 :group 'ebnf-non-terminal) 1668 :group 'ebnf-non-terminal)
1669 1669
1670 1670
1671(defcustom ebnf-non-terminal-border-color "Black" 1671(defcustom ebnf-non-terminal-border-color "Black"
1672 "*Specify border color for non-terminal box." 1672 "Specify border color for non-terminal box."
1673 :type 'string 1673 :type 'string
1674 :version "20" 1674 :version "20"
1675 :group 'ebnf-non-terminal) 1675 :group 'ebnf-non-terminal)
1676 1676
1677 1677
1678(defcustom ebnf-arrow-shape 'hollow 1678(defcustom ebnf-arrow-shape 'hollow
1679 "*Specify the arrow shape. 1679 "Specify the arrow shape.
1680 1680
1681Valid values are: 1681Valid values are:
1682 1682
@@ -1733,7 +1733,7 @@ Any other value is treated as `none'."
1733 1733
1734 1734
1735(defcustom ebnf-chart-shape 'round 1735(defcustom ebnf-chart-shape 'round
1736 "*Specify chart flow shape. 1736 "Specify chart flow shape.
1737 1737
1738See documentation for `ebnf-non-terminal-shape'." 1738See documentation for `ebnf-non-terminal-shape'."
1739 :type '(radio :tag "Chart Flow Shape" 1739 :type '(radio :tag "Chart Flow Shape"
@@ -1743,7 +1743,7 @@ See documentation for `ebnf-non-terminal-shape'."
1743 1743
1744 1744
1745(defcustom ebnf-user-arrow nil 1745(defcustom ebnf-user-arrow nil
1746 "*Specify a sexp for user arrow shape (a PostScript code). 1746 "Specify a sexp for user arrow shape (a PostScript code).
1747 1747
1748When evaluated, the sexp should return nil or a string containing PostScript 1748When evaluated, the sexp should return nil or a string containing PostScript
1749code. PostScript code should draw a right arrow. 1749code. PostScript code should draw a right arrow.
@@ -1783,7 +1783,7 @@ symbol `user'."
1783 1783
1784 1784
1785(defcustom ebnf-syntax 'ebnf 1785(defcustom ebnf-syntax 'ebnf
1786 "*Specify syntax to be recognized. 1786 "Specify syntax to be recognized.
1787 1787
1788Valid values are: 1788Valid values are:
1789 1789
@@ -1827,7 +1827,7 @@ Any other value is treated as `ebnf'."
1827 1827
1828 1828
1829(defcustom ebnf-lex-comment-char ?\; 1829(defcustom ebnf-lex-comment-char ?\;
1830 "*Specify the line comment character. 1830 "Specify the line comment character.
1831 1831
1832It's used only when `ebnf-syntax' is `ebnf'." 1832It's used only when `ebnf-syntax' is `ebnf'."
1833 :type 'character 1833 :type 'character
@@ -1836,7 +1836,7 @@ It's used only when `ebnf-syntax' is `ebnf'."
1836 1836
1837 1837
1838(defcustom ebnf-lex-eop-char ?. 1838(defcustom ebnf-lex-eop-char ?.
1839 "*Specify the end of production character. 1839 "Specify the end of production character.
1840 1840
1841It's used only when `ebnf-syntax' is `ebnf'." 1841It's used only when `ebnf-syntax' is `ebnf'."
1842 :type 'character 1842 :type 'character
@@ -1845,7 +1845,7 @@ It's used only when `ebnf-syntax' is `ebnf'."
1845 1845
1846 1846
1847(defcustom ebnf-terminal-regexp nil 1847(defcustom ebnf-terminal-regexp nil
1848 "*Specify how it's a terminal name. 1848 "Specify how it's a terminal name.
1849 1849
1850If it's nil, the terminal name must be enclosed by `\"'. 1850If it's nil, the terminal name must be enclosed by `\"'.
1851If it's a string, it should be a regexp that it'll be used to determine a 1851If it's a string, it should be a regexp that it'll be used to determine a
@@ -1859,7 +1859,7 @@ It's used only when `ebnf-syntax' is `ebnf'."
1859 1859
1860 1860
1861(defcustom ebnf-case-fold-search nil 1861(defcustom ebnf-case-fold-search nil
1862 "*Non-nil means ignore case on matching. 1862 "Non-nil means ignore case on matching.
1863 1863
1864It's only used when `ebnf-terminal-regexp' is non-nil and when `ebnf-syntax' is 1864It's only used when `ebnf-terminal-regexp' is non-nil and when `ebnf-syntax' is
1865`ebnf'." 1865`ebnf'."
@@ -1869,7 +1869,7 @@ It's only used when `ebnf-terminal-regexp' is non-nil and when `ebnf-syntax' is
1869 1869
1870 1870
1871(defcustom ebnf-iso-alternative-p nil 1871(defcustom ebnf-iso-alternative-p nil
1872 "*Non-nil means use alternative ISO EBNF. 1872 "Non-nil means use alternative ISO EBNF.
1873 1873
1874It's only used when `ebnf-syntax' is `iso-ebnf'. 1874It's only used when `ebnf-syntax' is `iso-ebnf'.
1875 1875
@@ -1888,7 +1888,7 @@ This variable affects the following symbol set:
1888 1888
1889 1889
1890(defcustom ebnf-iso-normalize-p nil 1890(defcustom ebnf-iso-normalize-p nil
1891 "*Non-nil means normalize ISO EBNF syntax names. 1891 "Non-nil means normalize ISO EBNF syntax names.
1892 1892
1893Normalize a name means that several contiguous spaces inside name become a 1893Normalize a name means that several contiguous spaces inside name become a
1894single space, so \"A B C\" is normalized to \"A B C\". 1894single space, so \"A B C\" is normalized to \"A B C\".
@@ -1900,7 +1900,7 @@ It's only used when `ebnf-syntax' is `iso-ebnf'."
1900 1900
1901 1901
1902(defcustom ebnf-file-suffix-regexp "\.[Bb][Nn][Ff]$" 1902(defcustom ebnf-file-suffix-regexp "\.[Bb][Nn][Ff]$"
1903 "*Specify file name suffix that contains EBNF. 1903 "Specify file name suffix that contains EBNF.
1904 1904
1905See `ebnf-eps-directory' command." 1905See `ebnf-eps-directory' command."
1906 :type 'regexp 1906 :type 'regexp
@@ -1909,7 +1909,7 @@ See `ebnf-eps-directory' command."
1909 1909
1910 1910
1911(defcustom ebnf-eps-prefix "ebnf--" 1911(defcustom ebnf-eps-prefix "ebnf--"
1912 "*Specify EPS prefix file name. 1912 "Specify EPS prefix file name.
1913 1913
1914See `ebnf-eps-buffer' and `ebnf-eps-region' commands." 1914See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
1915 :type 'string 1915 :type 'string
@@ -1918,7 +1918,7 @@ See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
1918 1918
1919 1919
1920(defcustom ebnf-eps-header-font '(11 Helvetica "Black" "White" bold) 1920(defcustom ebnf-eps-header-font '(11 Helvetica "Black" "White" bold)
1921 "*Specify EPS header font. 1921 "Specify EPS header font.
1922 1922
1923See documentation for `ebnf-production-font'. 1923See documentation for `ebnf-production-font'.
1924 1924
@@ -1942,7 +1942,7 @@ See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
1942 1942
1943 1943
1944(defcustom ebnf-eps-header nil 1944(defcustom ebnf-eps-header nil
1945 "*Specify EPS header. 1945 "Specify EPS header.
1946 1946
1947The value should be a string, a symbol or nil. 1947The value should be a string, a symbol or nil.
1948 1948
@@ -1978,7 +1978,7 @@ empty string, no header is generated until a non-empty header is specified or
1978 1978
1979 1979
1980(defcustom ebnf-eps-footer-font '(7 Helvetica "Black" "White" bold) 1980(defcustom ebnf-eps-footer-font '(7 Helvetica "Black" "White" bold)
1981 "*Specify EPS footer font. 1981 "Specify EPS footer font.
1982 1982
1983See documentation for `ebnf-production-font'. 1983See documentation for `ebnf-production-font'.
1984 1984
@@ -2002,7 +2002,7 @@ See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
2002 2002
2003 2003
2004(defcustom ebnf-eps-footer nil 2004(defcustom ebnf-eps-footer nil
2005 "*Specify EPS footer. 2005 "Specify EPS footer.
2006 2006
2007The value should be a string, a symbol or nil. 2007The value should be a string, a symbol or nil.
2008 2008
@@ -2038,7 +2038,7 @@ empty string, no footer is generated until a non-empty footer is specified or
2038 2038
2039 2039
2040(defcustom ebnf-entry-percentage 0.5 ; middle 2040(defcustom ebnf-entry-percentage 0.5 ; middle
2041 "*Specify entry height on alternatives. 2041 "Specify entry height on alternatives.
2042 2042
2043It must be a float between 0.0 (top) and 1.0 (bottom)." 2043It must be a float between 0.0 (top) and 1.0 (bottom)."
2044 :type 'number 2044 :type 'number
@@ -2047,7 +2047,7 @@ It must be a float between 0.0 (top) and 1.0 (bottom)."
2047 2047
2048 2048
2049(defcustom ebnf-default-width 0.6 2049(defcustom ebnf-default-width 0.6
2050 "*Specify additional border width over default terminal, non-terminal or 2050 "Specify additional border width over default terminal, non-terminal or
2051special." 2051special."
2052 :type 'number 2052 :type 'number
2053 :version "20" 2053 :version "20"
@@ -2057,21 +2057,21 @@ special."
2057;; Printing color requires x-color-values. 2057;; Printing color requires x-color-values.
2058(defcustom ebnf-color-p (or (fboundp 'x-color-values) ; Emacs 2058(defcustom ebnf-color-p (or (fboundp 'x-color-values) ; Emacs
2059 (fboundp 'color-instance-rgb-components)) ; XEmacs 2059 (fboundp 'color-instance-rgb-components)) ; XEmacs
2060 "*Non-nil means use color." 2060 "Non-nil means use color."
2061 :type 'boolean 2061 :type 'boolean
2062 :version "20" 2062 :version "20"
2063 :group 'ebnf2ps) 2063 :group 'ebnf2ps)
2064 2064
2065 2065
2066(defcustom ebnf-line-width 1.0 2066(defcustom ebnf-line-width 1.0
2067 "*Specify flow line width." 2067 "Specify flow line width."
2068 :type 'number 2068 :type 'number
2069 :version "20" 2069 :version "20"
2070 :group 'ebnf2ps) 2070 :group 'ebnf2ps)
2071 2071
2072 2072
2073(defcustom ebnf-line-color "Black" 2073(defcustom ebnf-line-color "Black"
2074 "*Specify flow line color." 2074 "Specify flow line color."
2075 :type 'string 2075 :type 'string
2076 :version "20" 2076 :version "20"
2077 :group 'ebnf2ps) 2077 :group 'ebnf2ps)
@@ -2081,7 +2081,7 @@ special."
2081 (if (eq ebnf-arrow-shape 'none) 2081 (if (eq ebnf-arrow-shape 'none)
2082 0.0 2082 0.0
2083 (* (sqrt 5.0) 0.65 ebnf-line-width)) 2083 (* (sqrt 5.0) 0.65 ebnf-line-width))
2084 "*Specify extra width for arrow shape drawing. 2084 "Specify extra width for arrow shape drawing.
2085 2085
2086The extra width is used to avoid that the arrowhead and the terminal border 2086The extra width is used to avoid that the arrowhead and the terminal border
2087overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'." 2087overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'."
@@ -2091,7 +2091,7 @@ overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'."
2091 2091
2092 2092
2093(defcustom ebnf-arrow-scale 1.0 2093(defcustom ebnf-arrow-scale 1.0
2094 "*Specify the arrow scale. 2094 "Specify the arrow scale.
2095 2095
2096Values lower than 1.0, shrink the arrow. 2096Values lower than 1.0, shrink the arrow.
2097Values greater than 1.0, expand the arrow." 2097Values greater than 1.0, expand the arrow."
@@ -2101,7 +2101,7 @@ Values greater than 1.0, expand the arrow."
2101 2101
2102 2102
2103(defcustom ebnf-debug-ps nil 2103(defcustom ebnf-debug-ps nil
2104 "*Non-nil means to generate PostScript debug procedures. 2104 "Non-nil means to generate PostScript debug procedures.
2105 2105
2106It is intended to help PostScript programmers in debugging." 2106It is intended to help PostScript programmers in debugging."
2107 :type 'boolean 2107 :type 'boolean
@@ -2110,7 +2110,7 @@ It is intended to help PostScript programmers in debugging."
2110 2110
2111 2111
2112(defcustom ebnf-use-float-format t 2112(defcustom ebnf-use-float-format t
2113 "*Non-nil means use `%f' float format. 2113 "Non-nil means use `%f' float format.
2114 2114
2115The advantage of using float format is that ebnf2ps generates a little short 2115The advantage of using float format is that ebnf2ps generates a little short
2116PostScript file. 2116PostScript file.
@@ -2126,14 +2126,14 @@ when executing ebnf2ps, set `ebnf-use-float-format' to nil."
2126 2126
2127 2127
2128(defcustom ebnf-stop-on-error nil 2128(defcustom ebnf-stop-on-error nil
2129 "*Non-nil means signal error and stop. Otherwise, signal error and continue." 2129 "Non-nil means signal error and stop. Otherwise, signal error and continue."
2130 :type 'boolean 2130 :type 'boolean
2131 :version "20" 2131 :version "20"
2132 :group 'ebnf2ps) 2132 :group 'ebnf2ps)
2133 2133
2134 2134
2135(defcustom ebnf-yac-ignore-error-recovery nil 2135(defcustom ebnf-yac-ignore-error-recovery nil
2136 "*Non-nil means ignore error recovery. 2136 "Non-nil means ignore error recovery.
2137 2137
2138It's only used when `ebnf-syntax' is `yacc'." 2138It's only used when `ebnf-syntax' is `yacc'."
2139 :type 'boolean 2139 :type 'boolean
@@ -2142,7 +2142,7 @@ It's only used when `ebnf-syntax' is `yacc'."
2142 2142
2143 2143
2144(defcustom ebnf-ignore-empty-rule nil 2144(defcustom ebnf-ignore-empty-rule nil
2145 "*Non-nil means ignore empty rules. 2145 "Non-nil means ignore empty rules.
2146 2146
2147It's interesting to set this variable if your Yacc/Bison grammar has a lot of 2147It's interesting to set this variable if your Yacc/Bison grammar has a lot of
2148middle action rule." 2148middle action rule."
@@ -2152,7 +2152,7 @@ middle action rule."
2152 2152
2153 2153
2154(defcustom ebnf-optimize nil 2154(defcustom ebnf-optimize nil
2155 "*Non-nil means optimize syntactic chart of rules. 2155 "Non-nil means optimize syntactic chart of rules.
2156 2156
2157The following optimizations are done: 2157The following optimizations are done:
2158 2158
@@ -2179,7 +2179,7 @@ The above optimizations are specially useful when `ebnf-syntax' is `yacc'."
2179 2179
2180 2180
2181(defcustom ebnf-log nil 2181(defcustom ebnf-log nil
2182 "*Non-nil means generate log messages. 2182 "Non-nil means generate log messages.
2183 2183
2184The log messages are generated into the buffer *Ebnf2ps Log*. 2184The log messages are generated into the buffer *Ebnf2ps Log*.
2185These messages are intended to help debugging ebnf2ps." 2185These messages are intended to help debugging ebnf2ps."
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 4a07392c309..849ca4b7c9d 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -50,7 +50,7 @@
50 50
51 51
52(defcustom ebrowse-search-path nil 52(defcustom ebrowse-search-path nil
53 "*List of directories to search for source files in a class tree. 53 "List of directories to search for source files in a class tree.
54Elements should be directory names; nil as an element means to try 54Elements should be directory names; nil as an element means to try
55to find source files relative to the location of the BROWSE file loaded." 55to find source files relative to the location of the BROWSE file loaded."
56 :group 'ebrowse 56 :group 'ebrowse
@@ -59,25 +59,25 @@ to find source files relative to the location of the BROWSE file loaded."
59 59
60 60
61(defcustom ebrowse-view/find-hook nil 61(defcustom ebrowse-view/find-hook nil
62 "*Hooks run after finding or viewing a member or class." 62 "Hooks run after finding or viewing a member or class."
63 :group 'ebrowse 63 :group 'ebrowse
64 :type 'hook) 64 :type 'hook)
65 65
66 66
67(defcustom ebrowse-not-found-hook nil 67(defcustom ebrowse-not-found-hook nil
68 "*Hooks run when finding or viewing a member or class was not successful." 68 "Hooks run when finding or viewing a member or class was not successful."
69 :group 'ebrowse 69 :group 'ebrowse
70 :type 'hook) 70 :type 'hook)
71 71
72 72
73(defcustom ebrowse-electric-list-mode-hook nil 73(defcustom ebrowse-electric-list-mode-hook nil
74 "*Hook called by `ebrowse-electric-position-mode'." 74 "Hook called by `ebrowse-electric-position-mode'."
75 :group 'ebrowse 75 :group 'ebrowse
76 :type 'hook) 76 :type 'hook)
77 77
78 78
79(defcustom ebrowse-max-positions 50 79(defcustom ebrowse-max-positions 50
80 "*Number of markers saved on electric position stack." 80 "Number of markers saved on electric position stack."
81 :group 'ebrowse 81 :group 'ebrowse
82 :type 'integer) 82 :type 'integer)
83 83
@@ -89,31 +89,31 @@ to find source files relative to the location of the BROWSE file loaded."
89 89
90 90
91(defcustom ebrowse-tree-mode-hook nil 91(defcustom ebrowse-tree-mode-hook nil
92 "*Hook run in each new tree buffer." 92 "Hook run in each new tree buffer."
93 :group 'ebrowse-tree 93 :group 'ebrowse-tree
94 :type 'hook) 94 :type 'hook)
95 95
96 96
97(defcustom ebrowse-tree-buffer-name "*Tree*" 97(defcustom ebrowse-tree-buffer-name "*Tree*"
98 "*The default name of class tree buffers." 98 "The default name of class tree buffers."
99 :group 'ebrowse-tree 99 :group 'ebrowse-tree
100 :type 'string) 100 :type 'string)
101 101
102 102
103(defcustom ebrowse--indentation 4 103(defcustom ebrowse--indentation 4
104 "*The amount by which subclasses are indented in the tree." 104 "The amount by which subclasses are indented in the tree."
105 :group 'ebrowse-tree 105 :group 'ebrowse-tree
106 :type 'integer) 106 :type 'integer)
107 107
108 108
109(defcustom ebrowse-source-file-column 40 109(defcustom ebrowse-source-file-column 40
110 "*The column in which source file names are displayed in the tree." 110 "The column in which source file names are displayed in the tree."
111 :group 'ebrowse-tree 111 :group 'ebrowse-tree
112 :type 'integer) 112 :type 'integer)
113 113
114 114
115(defcustom ebrowse-tree-left-margin 2 115(defcustom ebrowse-tree-left-margin 2
116 "*Amount of space left at the left side of the tree display. 116 "Amount of space left at the left side of the tree display.
117This space is used to display markers." 117This space is used to display markers."
118 :group 'ebrowse-tree 118 :group 'ebrowse-tree
119 :type 'integer) 119 :type 'integer)
@@ -126,25 +126,25 @@ This space is used to display markers."
126 126
127 127
128(defcustom ebrowse-default-declaration-column 25 128(defcustom ebrowse-default-declaration-column 25
129 "*The column in which member declarations are displayed in member buffers." 129 "The column in which member declarations are displayed in member buffers."
130 :group 'ebrowse-member 130 :group 'ebrowse-member
131 :type 'integer) 131 :type 'integer)
132 132
133 133
134(defcustom ebrowse-default-column-width 25 134(defcustom ebrowse-default-column-width 25
135 "*The width of the columns in member buffers (short display form)." 135 "The width of the columns in member buffers (short display form)."
136 :group 'ebrowse-member 136 :group 'ebrowse-member
137 :type 'integer) 137 :type 'integer)
138 138
139 139
140(defcustom ebrowse-member-buffer-name "*Members*" 140(defcustom ebrowse-member-buffer-name "*Members*"
141 "*The name of the buffer for member display." 141 "The name of the buffer for member display."
142 :group 'ebrowse-member 142 :group 'ebrowse-member
143 :type 'string) 143 :type 'string)
144 144
145 145
146(defcustom ebrowse-member-mode-hook nil 146(defcustom ebrowse-member-mode-hook nil
147 "*Run in each new member buffer." 147 "Run in each new member buffer."
148 :group 'ebrowse-member 148 :group 'ebrowse-member
149 :type 'hook) 149 :type 'hook)
150 150
@@ -158,7 +158,7 @@ This space is used to display markers."
158(defface ebrowse-tree-mark 158(defface ebrowse-tree-mark
159 '((((min-colors 88)) (:foreground "red1")) 159 '((((min-colors 88)) (:foreground "red1"))
160 (t (:foreground "red"))) 160 (t (:foreground "red")))
161 "*The face used for the mark character in the tree." 161 "The face used for the mark character in the tree."
162 :group 'ebrowse-faces) 162 :group 'ebrowse-faces)
163(define-obsolete-face-alias 'ebrowse-tree-mark-face 'ebrowse-tree-mark "22.1") 163(define-obsolete-face-alias 'ebrowse-tree-mark-face 'ebrowse-tree-mark "22.1")
164 164
@@ -166,21 +166,21 @@ This space is used to display markers."
166(defface ebrowse-root-class 166(defface ebrowse-root-class
167 '((((min-colors 88)) (:weight bold :foreground "blue1")) 167 '((((min-colors 88)) (:weight bold :foreground "blue1"))
168 (t (:weight bold :foreground "blue"))) 168 (t (:weight bold :foreground "blue")))
169 "*The face used for root classes in the tree." 169 "The face used for root classes in the tree."
170 :group 'ebrowse-faces) 170 :group 'ebrowse-faces)
171(define-obsolete-face-alias 'ebrowse-root-class-face 'ebrowse-root-class "22.1") 171(define-obsolete-face-alias 'ebrowse-root-class-face 'ebrowse-root-class "22.1")
172 172
173 173
174(defface ebrowse-file-name 174(defface ebrowse-file-name
175 '((t (:italic t))) 175 '((t (:italic t)))
176 "*The face for filenames displayed in the tree." 176 "The face for filenames displayed in the tree."
177 :group 'ebrowse-faces) 177 :group 'ebrowse-faces)
178(define-obsolete-face-alias 'ebrowse-file-name-face 'ebrowse-file-name "22.1") 178(define-obsolete-face-alias 'ebrowse-file-name-face 'ebrowse-file-name "22.1")
179 179
180 180
181(defface ebrowse-default 181(defface ebrowse-default
182 '((t nil)) 182 '((t nil))
183 "*Face for everything else in the tree not having other faces." 183 "Face for everything else in the tree not having other faces."
184 :group 'ebrowse-faces) 184 :group 'ebrowse-faces)
185(define-obsolete-face-alias 'ebrowse-default-face 'ebrowse-default "22.1") 185(define-obsolete-face-alias 'ebrowse-default-face 'ebrowse-default "22.1")
186 186
@@ -188,7 +188,7 @@ This space is used to display markers."
188(defface ebrowse-member-attribute 188(defface ebrowse-member-attribute
189 '((((min-colors 88)) (:foreground "red1")) 189 '((((min-colors 88)) (:foreground "red1"))
190 (t (:foreground "red"))) 190 (t (:foreground "red")))
191 "*Face used to display member attributes." 191 "Face used to display member attributes."
192 :group 'ebrowse-faces) 192 :group 'ebrowse-faces)
193(define-obsolete-face-alias 'ebrowse-member-attribute-face 193(define-obsolete-face-alias 'ebrowse-member-attribute-face
194 'ebrowse-member-attribute "22.1") 194 'ebrowse-member-attribute "22.1")
@@ -196,7 +196,7 @@ This space is used to display markers."
196 196
197(defface ebrowse-member-class 197(defface ebrowse-member-class
198 '((t (:foreground "purple"))) 198 '((t (:foreground "purple")))
199 "*Face used to display the class title in member buffers." 199 "Face used to display the class title in member buffers."
200 :group 'ebrowse-faces) 200 :group 'ebrowse-faces)
201(define-obsolete-face-alias 'ebrowse-member-class-face 201(define-obsolete-face-alias 'ebrowse-member-class-face
202 'ebrowse-member-class "22.1") 202 'ebrowse-member-class "22.1")
@@ -205,7 +205,7 @@ This space is used to display markers."
205(defface ebrowse-progress 205(defface ebrowse-progress
206 '((((min-colors 88)) (:background "blue1")) 206 '((((min-colors 88)) (:background "blue1"))
207 (t (:background "blue"))) 207 (t (:background "blue")))
208 "*Face for progress indicator." 208 "Face for progress indicator."
209 :group 'ebrowse-faces) 209 :group 'ebrowse-faces)
210(define-obsolete-face-alias 'ebrowse-progress-face 'ebrowse-progress "22.1") 210(define-obsolete-face-alias 'ebrowse-progress-face 'ebrowse-progress "22.1")
211 211
@@ -4178,7 +4178,7 @@ NUMBER-OF-STATIC-VARIABLES:"
4178;; prefix `\C-c\C-m' to browse commands. 4178;; prefix `\C-c\C-m' to browse commands.
4179 4179
4180(defvar ebrowse-global-map nil 4180(defvar ebrowse-global-map nil
4181 "*Keymap for Ebrowse commands.") 4181 "Keymap for Ebrowse commands.")
4182 4182
4183 4183
4184(defvar ebrowse-global-prefix-key "\C-c\C-m" 4184(defvar ebrowse-global-prefix-key "\C-c\C-m"
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index cc5f0fef934..d8a561340d3 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -33,7 +33,7 @@
33 33
34;;;###autoload 34;;;###autoload
35(defvar tags-file-name nil 35(defvar tags-file-name nil
36 "*File name of tags table. 36 "File name of tags table.
37To switch to a new tags table, setting this variable is sufficient. 37To switch to a new tags table, setting this variable is sufficient.
38If you set this variable, do not also set `tags-table-list'. 38If you set this variable, do not also set `tags-table-list'.
39Use the `etags' program to make a tags table file.") 39Use the `etags' program to make a tags table file.")
@@ -46,7 +46,7 @@ Use the `etags' program to make a tags table file.")
46 46
47;;;###autoload 47;;;###autoload
48(defcustom tags-case-fold-search 'default 48(defcustom tags-case-fold-search 'default
49 "*Whether tags operations should be case-sensitive. 49 "Whether tags operations should be case-sensitive.
50A value of t means case-insensitive, a value of nil means case-sensitive. 50A value of t means case-insensitive, a value of nil means case-sensitive.
51Any other value means use the setting of `case-fold-search'." 51Any other value means use the setting of `case-fold-search'."
52 :group 'etags 52 :group 'etags
@@ -58,7 +58,7 @@ Any other value means use the setting of `case-fold-search'."
58;;;###autoload 58;;;###autoload
59;; Use `visit-tags-table-buffer' to cycle through tags tables in this list. 59;; Use `visit-tags-table-buffer' to cycle through tags tables in this list.
60(defcustom tags-table-list nil 60(defcustom tags-table-list nil
61 "*List of file names of tags tables to search. 61 "List of file names of tags tables to search.
62An element that is a directory means the file \"TAGS\" in that directory. 62An element that is a directory means the file \"TAGS\" in that directory.
63To switch to a new list of tags tables, setting this variable is sufficient. 63To switch to a new list of tags tables, setting this variable is sufficient.
64If you set this variable, do not also set `tags-file-name'. 64If you set this variable, do not also set `tags-file-name'.
@@ -69,7 +69,7 @@ Use the `etags' program to make a tags table file."
69;;;###autoload 69;;;###autoload
70(defcustom tags-compression-info-list 70(defcustom tags-compression-info-list
71 (purecopy '("" ".Z" ".bz2" ".gz" ".xz" ".tgz")) 71 (purecopy '("" ".Z" ".bz2" ".gz" ".xz" ".tgz"))
72 "*List of extensions tried by etags when jka-compr is used. 72 "List of extensions tried by etags when jka-compr is used.
73An empty string means search the non-compressed file. 73An empty string means search the non-compressed file.
74These extensions will be tried only if jka-compr was activated 74These extensions will be tried only if jka-compr was activated
75\(i.e. via customize of `auto-compression-mode' or by calling the function 75\(i.e. via customize of `auto-compression-mode' or by calling the function
@@ -90,7 +90,7 @@ These extensions will be tried only if jka-compr was activated
90 90
91;;;###autoload 91;;;###autoload
92(defcustom tags-add-tables 'ask-user 92(defcustom tags-add-tables 'ask-user
93 "*Control whether to add a new tags table to the current list. 93 "Control whether to add a new tags table to the current list.
94t means do; nil means don't (always start a new list). 94t means do; nil means don't (always start a new list).
95Any other value means ask the user whether to add a new tags table 95Any other value means ask the user whether to add a new tags table
96to the current list (as opposed to starting a new list)." 96to the current list (as opposed to starting a new list)."
@@ -100,7 +100,7 @@ to the current list (as opposed to starting a new list)."
100 (other :tag "Ask" ask-user))) 100 (other :tag "Ask" ask-user)))
101 101
102(defcustom tags-revert-without-query nil 102(defcustom tags-revert-without-query nil
103 "*Non-nil means reread a TAGS table without querying, if it has changed." 103 "Non-nil means reread a TAGS table without querying, if it has changed."
104 :group 'etags 104 :group 'etags
105 :type 'boolean) 105 :type 'boolean)
106 106
@@ -131,7 +131,7 @@ Each element is a list of strings which are file names.")
131 131
132;;;###autoload 132;;;###autoload
133(defcustom find-tag-hook nil 133(defcustom find-tag-hook nil
134 "*Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'. 134 "Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'.
135The value in the buffer in which \\[find-tag] is done is used, 135The value in the buffer in which \\[find-tag] is done is used,
136not the value in the buffer \\[find-tag] goes to." 136not the value in the buffer \\[find-tag] goes to."
137 :group 'etags 137 :group 'etags
@@ -139,7 +139,7 @@ not the value in the buffer \\[find-tag] goes to."
139 139
140;;;###autoload 140;;;###autoload
141(defcustom find-tag-default-function nil 141(defcustom find-tag-default-function nil
142 "*A function of no arguments used by \\[find-tag] to pick a default tag. 142 "A function of no arguments used by \\[find-tag] to pick a default tag.
143If nil, and the symbol that is the value of `major-mode' 143If nil, and the symbol that is the value of `major-mode'
144has a `find-tag-default-function' property (see `put'), that is used. 144has a `find-tag-default-function' property (see `put'), that is used.
145Otherwise, `find-tag-default' is used." 145Otherwise, `find-tag-default' is used."
@@ -147,13 +147,13 @@ Otherwise, `find-tag-default' is used."
147 :type '(choice (const nil) function)) 147 :type '(choice (const nil) function))
148 148
149(defcustom find-tag-marker-ring-length 16 149(defcustom find-tag-marker-ring-length 16
150 "*Length of marker rings `find-tag-marker-ring' and `tags-location-ring'." 150 "Length of marker rings `find-tag-marker-ring' and `tags-location-ring'."
151 :group 'etags 151 :group 'etags
152 :type 'integer 152 :type 'integer
153 :version "20.3") 153 :version "20.3")
154 154
155(defcustom tags-tag-face 'default 155(defcustom tags-tag-face 'default
156 "*Face for tags in the output of `tags-apropos'." 156 "Face for tags in the output of `tags-apropos'."
157 :group 'etags 157 :group 'etags
158 :type 'face 158 :type 'face
159 :version "21.1") 159 :version "21.1")
@@ -809,10 +809,11 @@ If no tags table is loaded, do nothing and return nil."
809 beg) 809 beg)
810 (when pattern 810 (when pattern
811 (save-excursion 811 (save-excursion
812 (search-backward pattern) ;FIXME: will fail if we're inside pattern. 812 (forward-char (1- (length pattern)))
813 (setq beg (point)) 813 (search-backward pattern)
814 (forward-char (length pattern)) 814 (setq beg (point))
815 (list beg (point) (tags-lazy-completion-table) :exclusive 'no)))))) 815 (forward-char (length pattern))
816 (list beg (point) (tags-lazy-completion-table) :exclusive 'no))))))
816 817
817(defun find-tag-tag (string) 818(defun find-tag-tag (string)
818 "Read a tag name, with defaulting and completion." 819 "Read a tag name, with defaulting and completion."
@@ -1409,7 +1410,9 @@ hits the start of file."
1409 tag tag-info pt) 1410 tag tag-info pt)
1410 (forward-line 1) 1411 (forward-line 1)
1411 (while (not (or (eobp) (looking-at "\f"))) 1412 (while (not (or (eobp) (looking-at "\f")))
1412 (setq tag-info (save-excursion (funcall snarf-tag-function t)) 1413 ;; We used to use explicit tags when available, but the current goto-func
1414 ;; can only handle implicit tags.
1415 (setq tag-info (save-excursion (funcall snarf-tag-function nil))
1413 tag (car tag-info) 1416 tag (car tag-info)
1414 pt (with-current-buffer standard-output (point))) 1417 pt (with-current-buffer standard-output (point)))
1415 (princ tag) 1418 (princ tag)
@@ -1684,7 +1687,7 @@ Point should be just after a string that matches TAG."
1684 (re-search-backward re bol t))))) 1687 (re-search-backward re bol t)))))
1685 1688
1686(defcustom tags-loop-revert-buffers nil 1689(defcustom tags-loop-revert-buffers nil
1687 "*Non-nil means tags-scanning loops should offer to reread changed files. 1690 "Non-nil means tags-scanning loops should offer to reread changed files.
1688These loops normally read each file into Emacs, but when a file 1691These loops normally read each file into Emacs, but when a file
1689is already visited, they use the existing buffer. 1692is already visited, they use the existing buffer.
1690When this flag is non-nil, they offer to revert the existing buffer 1693When this flag is non-nil, they offer to revert the existing buffer
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index c44f1d73501..e5142571972 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -57,7 +57,7 @@
57;; This used to default to `other', but that doesn't seem to have any 57;; This used to default to `other', but that doesn't seem to have any
58;; significance. fx 2000-02-11. 58;; significance. fx 2000-02-11.
59(defcustom executable-insert t ; 'other 59(defcustom executable-insert t ; 'other
60 "*Non-nil means offer to add a magic number to a file. 60 "Non-nil means offer to add a magic number to a file.
61This takes effect when you switch to certain major modes, 61This takes effect when you switch to certain major modes,
62including Shell-script mode (`sh-mode'). 62including Shell-script mode (`sh-mode').
63When you type \\[executable-set-magic], it always offers to add or 63When you type \\[executable-set-magic], it always offers to add or
@@ -70,7 +70,7 @@ update the magic number."
70 70
71 71
72(defcustom executable-query 'function 72(defcustom executable-query 'function
73 "*If non-nil, ask user before changing an existing magic number. 73 "If non-nil, ask user before changing an existing magic number.
74When this is `function', only ask when called non-interactively." 74When this is `function', only ask when called non-interactively."
75 :type '(choice (const :tag "Don't Ask" nil) 75 :type '(choice (const :tag "Don't Ask" nil)
76 (const :tag "Ask when non-interactive" function) 76 (const :tag "Ask when non-interactive" function)
@@ -79,19 +79,19 @@ When this is `function', only ask when called non-interactively."
79 79
80 80
81(defcustom executable-magicless-file-regexp "/[Mm]akefile$\\|/\\.\\(z?profile\\|bash_profile\\|z?login\\|bash_login\\|z?logout\\|bash_logout\\|.+shrc\\|esrc\\|rcrc\\|[kz]shenv\\)$" 81(defcustom executable-magicless-file-regexp "/[Mm]akefile$\\|/\\.\\(z?profile\\|bash_profile\\|z?login\\|bash_login\\|z?logout\\|bash_logout\\|.+shrc\\|esrc\\|rcrc\\|[kz]shenv\\)$"
82 "*On files with this kind of name no magic is inserted or changed." 82 "On files with this kind of name no magic is inserted or changed."
83 :type 'regexp 83 :type 'regexp
84 :group 'executable) 84 :group 'executable)
85 85
86 86
87(defcustom executable-prefix "#! " 87(defcustom executable-prefix "#! "
88 "*Interpreter magic number prefix inserted when there was no magic number." 88 "Interpreter magic number prefix inserted when there was no magic number."
89 :type 'string 89 :type 'string
90 :group 'executable) 90 :group 'executable)
91 91
92 92
93(defcustom executable-chmod 73 93(defcustom executable-chmod 73
94 "*After saving, if the file is not executable, set this mode. 94 "After saving, if the file is not executable, set this mode.
95This mode passed to `set-file-modes' is taken absolutely when negative, or 95This mode passed to `set-file-modes' is taken absolutely when negative, or
96relative to the files existing modes. Do nothing if this is nil. 96relative to the files existing modes. Do nothing if this is nil.
97Typical values are 73 (+x) or -493 (rwxr-xr-x)." 97Typical values are 73 (+x) or -493 (rwxr-xr-x)."
@@ -103,7 +103,7 @@ Typical values are 73 (+x) or -493 (rwxr-xr-x)."
103(defvar executable-command nil) 103(defvar executable-command nil)
104 104
105(defcustom executable-self-display "tail" 105(defcustom executable-self-display "tail"
106 "*Command you use with argument `+2' to make text files self-display. 106 "Command you use with argument `+2' to make text files self-display.
107Note that the like of `more' doesn't work too well under Emacs \\[shell]." 107Note that the like of `more' doesn't work too well under Emacs \\[shell]."
108 :type 'string 108 :type 'string
109 :group 'executable) 109 :group 'executable)
@@ -111,7 +111,7 @@ Note that the like of `more' doesn't work too well under Emacs \\[shell]."
111 111
112(defvar executable-font-lock-keywords 112(defvar executable-font-lock-keywords
113 '(("\\`#!.*/\\([^ \t\n]+\\)" 1 font-lock-keyword-face t)) 113 '(("\\`#!.*/\\([^ \t\n]+\\)" 1 font-lock-keyword-face t))
114 "*Rules for highlighting executable scripts' magic number. 114 "Rules for highlighting executable scripts' magic number.
115This can be included in `font-lock-keywords' by modes that call `executable'.") 115This can be included in `font-lock-keywords' by modes that call `executable'.")
116 116
117 117
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index df6fdfd7cd9..1d2beedd191 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -651,7 +651,7 @@ logical\\|double[ \t]*precision\\|type[ \t]*(\\sw+)\\|none\\)[ \t]*"
651 651
652(defvar f90-font-lock-keywords 652(defvar f90-font-lock-keywords
653 f90-font-lock-keywords-2 653 f90-font-lock-keywords-2
654 "*Default expressions to highlight in F90 mode. 654 "Default expressions to highlight in F90 mode.
655Can be overridden by the value of `font-lock-maximum-decoration'.") 655Can be overridden by the value of `font-lock-maximum-decoration'.")
656 656
657 657
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 0c45c3f5e5d..89450cd2276 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -2397,15 +2397,15 @@ HANDLER-NAME handler uses customization of CUSTOM-DEFUN. See
2397 (gdb-table-add-row table 2397 (gdb-table-add-row table
2398 (list 2398 (list
2399 (bindat-get-field breakpoint 'number) 2399 (bindat-get-field breakpoint 'number)
2400 type 2400 (or type "")
2401 (bindat-get-field breakpoint 'disp) 2401 (or (bindat-get-field breakpoint 'disp) "")
2402 (let ((flag (bindat-get-field breakpoint 'enabled))) 2402 (let ((flag (bindat-get-field breakpoint 'enabled)))
2403 (if (string-equal flag "y") 2403 (if (string-equal flag "y")
2404 (propertize "y" 'font-lock-face font-lock-warning-face) 2404 (propertize "y" 'font-lock-face font-lock-warning-face)
2405 (propertize "n" 'font-lock-face font-lock-comment-face))) 2405 (propertize "n" 'font-lock-face font-lock-comment-face)))
2406 (bindat-get-field breakpoint 'addr) 2406 (bindat-get-field breakpoint 'addr)
2407 (bindat-get-field breakpoint 'times) 2407 (or (bindat-get-field breakpoint 'times) "")
2408 (if (string-match ".*watchpoint" type) 2408 (if (and type (string-match ".*watchpoint" type))
2409 (bindat-get-field breakpoint 'what) 2409 (bindat-get-field breakpoint 'what)
2410 (or pending at 2410 (or pending at
2411 (concat "in " 2411 (concat "in "
@@ -3269,8 +3269,12 @@ DOC is an optional documentation string."
3269 (let* ((frame (gdb-current-buffer-frame)) 3269 (let* ((frame (gdb-current-buffer-frame))
3270 (file (bindat-get-field frame 'fullname)) 3270 (file (bindat-get-field frame 'fullname))
3271 (line (bindat-get-field frame 'line))) 3271 (line (bindat-get-field frame 'line)))
3272 (when file 3272 (if file
3273 (format "-data-disassemble -f %s -l %s -n -1 -- 0" file line))) 3273 (format "-data-disassemble -f %s -l %s -n -1 -- 0" file line)
3274 ;; If we're unable to get a file name / line for $PC, simply
3275 ;; follow $PC, disassembling the next 10 (x ~15 (on IA) ==
3276 ;; 150 bytes) instructions.
3277 "-data-disassemble -s $pc -e \"$pc + 150\" -- 0"))
3274 gdb-disassembly-handler 3278 gdb-disassembly-handler
3275 ;; We update disassembly only after we have actual frame information 3279 ;; We update disassembly only after we have actual frame information
3276 ;; about all threads, so no there's `update' signal in this list 3280 ;; about all threads, so no there's `update' signal in this list
@@ -3329,8 +3333,12 @@ DOC is an optional documentation string."
3329 (gdb-table-add-row table 3333 (gdb-table-add-row table
3330 (list 3334 (list
3331 (bindat-get-field instr 'address) 3335 (bindat-get-field instr 'address)
3332 (apply #'format "<%s+%s>:" 3336 (let
3333 (gdb-get-many-fields instr 'func-name 'offset)) 3337 ((func-name (bindat-get-field instr 'func-name))
3338 (offset (bindat-get-field instr 'offset)))
3339 (if func-name
3340 (format "<%s+%s>:" func-name offset)
3341 ""))
3334 (bindat-get-field instr 'inst))) 3342 (bindat-get-field instr 'inst)))
3335 (when (string-equal (bindat-get-field instr 'address) 3343 (when (string-equal (bindat-get-field instr 'address)
3336 address) 3344 address)
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el
index b49739a94d5..7c131dd316c 100644
--- a/lisp/progmodes/glasses.el
+++ b/lisp/progmodes/glasses.el
@@ -78,7 +78,7 @@ string."
78 78
79 79
80(defcustom glasses-original-separator "_" 80(defcustom glasses-original-separator "_"
81 "*String to be displayed as `glasses-separator' in separator positions. 81 "String to be displayed as `glasses-separator' in separator positions.
82For instance, if you set it to \"_\" and set `glasses-separator' to \"-\", 82For instance, if you set it to \"_\" and set `glasses-separator' to \"-\",
83underscore separators are displayed as hyphens. 83underscore separators are displayed as hyphens.
84If `glasses-original-separator' is an empty string, no such display change is 84If `glasses-original-separator' is an empty string, no such display change is
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 54d678323f6..d41364547f2 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -61,7 +61,7 @@ SYMBOL should be one of `grep-command', `grep-template',
61 61
62;;;###autoload 62;;;###autoload
63(defcustom grep-window-height nil 63(defcustom grep-window-height nil
64 "*Number of lines in a grep window. If nil, use `compilation-window-height'." 64 "Number of lines in a grep window. If nil, use `compilation-window-height'."
65 :type '(choice (const :tag "Default" nil) 65 :type '(choice (const :tag "Default" nil)
66 integer) 66 integer)
67 :version "22.1" 67 :version "22.1"
@@ -104,7 +104,7 @@ To change the default value, use Customize or call the function
104 :group 'grep) 104 :group 'grep)
105 105
106(defcustom grep-scroll-output nil 106(defcustom grep-scroll-output nil
107 "*Non-nil to scroll the *grep* buffer window as output appears. 107 "Non-nil to scroll the *grep* buffer window as output appears.
108 108
109Setting it causes the grep commands to put point at the end of their 109Setting it causes the grep commands to put point at the end of their
110output window so that the end of the output is always visible rather 110output window so that the end of the output is always visible rather
@@ -203,13 +203,13 @@ Customize or call the function `grep-apply-setting'."
203 ("tex" . "*.tex") 203 ("tex" . "*.tex")
204 ("texi" . "*.texi") 204 ("texi" . "*.texi")
205 ("asm" . "*.[sS]")) 205 ("asm" . "*.[sS]"))
206 "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'." 206 "Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
207 :type 'alist 207 :type 'alist
208 :group 'grep) 208 :group 'grep)
209 209
210(defcustom grep-find-ignored-directories 210(defcustom grep-find-ignored-directories
211 vc-directory-exclusion-list 211 vc-directory-exclusion-list
212 "*List of names of sub-directories which `rgrep' shall not recurse into. 212 "List of names of sub-directories which `rgrep' shall not recurse into.
213If an element is a cons cell, the car is called on the search directory 213If an element is a cons cell, the car is called on the search directory
214to determine whether cdr should not be recursed into." 214to determine whether cdr should not be recursed into."
215 :type '(choice (repeat :tag "Ignored directories" string) 215 :type '(choice (repeat :tag "Ignored directories" string)
@@ -221,7 +221,7 @@ to determine whether cdr should not be recursed into."
221 (unless (string-match-p "/\\'" s) 221 (unless (string-match-p "/\\'" s)
222 (concat "*" s))) 222 (concat "*" s)))
223 completion-ignored-extensions))) 223 completion-ignored-extensions)))
224 "*List of file names which `rgrep' and `lgrep' shall exclude. 224 "List of file names which `rgrep' and `lgrep' shall exclude.
225If an element is a cons cell, the car is called on the search directory 225If an element is a cons cell, the car is called on the search directory
226to determine whether cdr should not be excluded." 226to determine whether cdr should not be excluded."
227 :type '(choice (repeat :tag "Ignored file" string) 227 :type '(choice (repeat :tag "Ignored file" string)
@@ -229,7 +229,7 @@ to determine whether cdr should not be excluded."
229 :group 'grep) 229 :group 'grep)
230 230
231(defcustom grep-error-screen-columns nil 231(defcustom grep-error-screen-columns nil
232 "*If non-nil, column numbers in grep hits are screen columns. 232 "If non-nil, column numbers in grep hits are screen columns.
233See `compilation-error-screen-columns'" 233See `compilation-error-screen-columns'"
234 :type '(choice (const :tag "Default" nil) 234 :type '(choice (const :tag "Default" nil)
235 integer) 235 integer)
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 121a023cd54..6b1f891b230 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -1046,7 +1046,7 @@ and source-file directory for your debugger."
1046(defvar gud-dbx-history nil) 1046(defvar gud-dbx-history nil)
1047 1047
1048(defcustom gud-dbx-directories nil 1048(defcustom gud-dbx-directories nil
1049 "*A list of directories that dbx should search for source code. 1049 "A list of directories that dbx should search for source code.
1050If nil, only source files in the program directory 1050If nil, only source files in the program directory
1051will be known to dbx. 1051will be known to dbx.
1052 1052
@@ -1358,7 +1358,7 @@ and source-file directory for your debugger."
1358(defvar gud-xdb-history nil) 1358(defvar gud-xdb-history nil)
1359 1359
1360(defcustom gud-xdb-directories nil 1360(defcustom gud-xdb-directories nil
1361 "*A list of directories that xdb should search for source code. 1361 "A list of directories that xdb should search for source code.
1362If nil, only source files in the program directory 1362If nil, only source files in the program directory
1363will be known to xdb. 1363will be known to xdb.
1364 1364
@@ -1811,7 +1811,7 @@ source file information.")
1811 1811
1812;; List of Java source file directories. 1812;; List of Java source file directories.
1813(defvar gud-jdb-directories (list ".") 1813(defvar gud-jdb-directories (list ".")
1814 "*A list of directories that gud jdb should search for source code. 1814 "A list of directories that gud jdb should search for source code.
1815The file names should be absolute, or relative to the current 1815The file names should be absolute, or relative to the current
1816directory. 1816directory.
1817 1817
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 104a8f96727..e2016e206a8 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -238,18 +238,18 @@
238 :group 'languages) 238 :group 'languages)
239 239
240(defcustom hs-hide-comments-when-hiding-all t 240(defcustom hs-hide-comments-when-hiding-all t
241 "*Hide the comments too when you do an `hs-hide-all'." 241 "Hide the comments too when you do an `hs-hide-all'."
242 :type 'boolean 242 :type 'boolean
243 :group 'hideshow) 243 :group 'hideshow)
244 244
245(defcustom hs-minor-mode-hook nil 245(defcustom hs-minor-mode-hook nil
246 "*Hook called when hideshow minor mode is activated or deactivated." 246 "Hook called when hideshow minor mode is activated or deactivated."
247 :type 'hook 247 :type 'hook
248 :group 'hideshow 248 :group 'hideshow
249 :version "21.1") 249 :version "21.1")
250 250
251(defcustom hs-isearch-open 'code 251(defcustom hs-isearch-open 'code
252 "*What kind of hidden blocks to open when doing `isearch'. 252 "What kind of hidden blocks to open when doing `isearch'.
253One of the following symbols: 253One of the following symbols:
254 254
255 code -- open only code blocks 255 code -- open only code blocks
@@ -272,7 +272,7 @@ This has effect only if `search-invisible' is set to `open'."
272 (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) 272 (bibtex-mode ("@\\S(*\\(\\s(\\)" 1))
273 (java-mode "{" "}" "/[*/]" nil nil) 273 (java-mode "{" "}" "/[*/]" nil nil)
274 (js-mode "{" "}" "/[*/]" nil))) 274 (js-mode "{" "}" "/[*/]" nil)))
275 "*Alist for initializing the hideshow variables for different modes. 275 "Alist for initializing the hideshow variables for different modes.
276Each element has the form 276Each element has the form
277 (MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC). 277 (MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC).
278 278
@@ -300,25 +300,25 @@ appropriate values. The regexps should not contain leading or trailing
300whitespace. Case does not matter.") 300whitespace. Case does not matter.")
301 301
302(defvar hs-hide-all-non-comment-function nil 302(defvar hs-hide-all-non-comment-function nil
303 "*Function called if non-nil when doing `hs-hide-all' for non-comments.") 303 "Function called if non-nil when doing `hs-hide-all' for non-comments.")
304 304
305(defvar hs-allow-nesting nil 305(defvar hs-allow-nesting nil
306 "*If non-nil, hiding remembers internal blocks. 306 "If non-nil, hiding remembers internal blocks.
307This means that when the outer block is shown again, 307This means that when the outer block is shown again,
308any previously hidden internal blocks remain hidden.") 308any previously hidden internal blocks remain hidden.")
309 309
310(defvar hs-hide-hook nil 310(defvar hs-hide-hook nil
311 "*Hook called (with `run-hooks') at the end of commands to hide text. 311 "Hook called (with `run-hooks') at the end of commands to hide text.
312These commands include the toggling commands (when the result is to hide 312These commands include the toggling commands (when the result is to hide
313a block), `hs-hide-all', `hs-hide-block' and `hs-hide-level'.") 313a block), `hs-hide-all', `hs-hide-block' and `hs-hide-level'.")
314 314
315(defvar hs-show-hook nil 315(defvar hs-show-hook nil
316 "*Hook called (with `run-hooks') at the end of commands to show text. 316 "Hook called (with `run-hooks') at the end of commands to show text.
317These commands include the toggling commands (when the result is to show 317These commands include the toggling commands (when the result is to show
318a block), `hs-show-all' and `hs-show-block'.") 318a block), `hs-show-all' and `hs-show-block'.")
319 319
320(defvar hs-set-up-overlay nil 320(defvar hs-set-up-overlay nil
321 "*Function called with one arg, OV, a newly initialized overlay. 321 "Function called with one arg, OV, a newly initialized overlay.
322Hideshow puts a unique overlay on each range of text to be hidden 322Hideshow puts a unique overlay on each range of text to be hidden
323in the buffer. Here is a simple example of how to use this variable: 323in the buffer. Here is a simple example of how to use this variable:
324 324
@@ -607,6 +607,7 @@ as cdr."
607 ;; forward comment, and see if we are inside, then extend 607 ;; forward comment, and see if we are inside, then extend
608 ;; forward and backward as long as we have comments 608 ;; forward and backward as long as we have comments
609 (let ((q (point))) 609 (let ((q (point)))
610 (skip-chars-forward "[:blank:]")
610 (when (or (looking-at hs-c-start-regexp) 611 (when (or (looking-at hs-c-start-regexp)
611 (re-search-backward hs-c-start-regexp (point-min) t)) 612 (re-search-backward hs-c-start-regexp (point-min) t))
612 ;; first get to the beginning of this comment... 613 ;; first get to the beginning of this comment...
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index 35c29e10627..205b226160a 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -85,39 +85,39 @@
85 :group 'languages) 85 :group 'languages)
86 86
87(defcustom icon-indent-level 4 87(defcustom icon-indent-level 4
88 "*Indentation of Icon statements with respect to containing block." 88 "Indentation of Icon statements with respect to containing block."
89 :type 'integer 89 :type 'integer
90 :group 'icon) 90 :group 'icon)
91 91
92(defcustom icon-brace-imaginary-offset 0 92(defcustom icon-brace-imaginary-offset 0
93 "*Imagined indentation of a Icon open brace that actually follows a statement." 93 "Imagined indentation of a Icon open brace that actually follows a statement."
94 :type 'integer 94 :type 'integer
95 :group 'icon) 95 :group 'icon)
96 96
97(defcustom icon-brace-offset 0 97(defcustom icon-brace-offset 0
98 "*Extra indentation for braces, compared with other text in same context." 98 "Extra indentation for braces, compared with other text in same context."
99 :type 'integer 99 :type 'integer
100 :group 'icon) 100 :group 'icon)
101 101
102(defcustom icon-continued-statement-offset 4 102(defcustom icon-continued-statement-offset 4
103 "*Extra indent for Icon lines not starting new statements." 103 "Extra indent for Icon lines not starting new statements."
104 :type 'integer 104 :type 'integer
105 :group 'icon) 105 :group 'icon)
106 106
107(defcustom icon-continued-brace-offset 0 107(defcustom icon-continued-brace-offset 0
108 "*Extra indent for Icon substatements that start with open-braces. 108 "Extra indent for Icon substatements that start with open-braces.
109This is in addition to `icon-continued-statement-offset'." 109This is in addition to `icon-continued-statement-offset'."
110 :type 'integer 110 :type 'integer
111 :group 'icon) 111 :group 'icon)
112 112
113(defcustom icon-auto-newline nil 113(defcustom icon-auto-newline nil
114 "*Non-nil means automatically newline before and after braces Icon code. 114 "Non-nil means automatically newline before and after braces Icon code.
115This applies when braces are inserted." 115This applies when braces are inserted."
116 :type 'boolean 116 :type 'boolean
117 :group 'icon) 117 :group 'icon)
118 118
119(defcustom icon-tab-always-indent t 119(defcustom icon-tab-always-indent t
120 "*Non-nil means TAB in Icon mode should always reindent the current line. 120 "Non-nil means TAB in Icon mode should always reindent the current line.
121It will then reindent, regardless of where in the line point is 121It will then reindent, regardless of where in the line point is
122when the TAB command is used." 122when the TAB command is used."
123 :type 'boolean 123 :type 'boolean
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el
index f2f9fd30ed4..0cb8b7da4aa 100644
--- a/lisp/progmodes/idlw-help.el
+++ b/lisp/progmodes/idlw-help.el
@@ -115,7 +115,7 @@ must be explicitly set non-nil in order for the variable
115 "Obsolete variable. See `idlwave-html-help-location'.") 115 "Obsolete variable. See `idlwave-html-help-location'.")
116 116
117(defcustom idlwave-help-use-dedicated-frame t 117(defcustom idlwave-help-use-dedicated-frame t
118 "*Non-nil means, use a separate frame for Online Help if possible." 118 "Non-nil means, use a separate frame for Online Help if possible."
119 :group 'idlwave-online-help 119 :group 'idlwave-online-help
120 :type 'boolean) 120 :type 'boolean)
121 121
@@ -164,12 +164,12 @@ probably a good idea to still call this function as a fallback."
164 :type 'symbol) 164 :type 'symbol)
165 165
166(defcustom idlwave-help-fontify-source-code nil 166(defcustom idlwave-help-fontify-source-code nil
167 "*Non-nil means, fontify source code displayed as help like normal code." 167 "Non-nil means, fontify source code displayed as help like normal code."
168 :group 'idlwave-online-help 168 :group 'idlwave-online-help
169 :type 'boolean) 169 :type 'boolean)
170 170
171(defcustom idlwave-help-source-try-header t 171(defcustom idlwave-help-source-try-header t
172 "*Non-nil means, try to find help in routine header when displaying source. 172 "Non-nil means, try to find help in routine header when displaying source.
173Routines which are not documented in the system manual use their source as 173Routines which are not documented in the system manual use their source as
174help text. When this variable is non-nil, we try to find a description of 174help text. When this variable is non-nil, we try to find a description of
175the help item in the first routine doclib header above the routine definition. 175the help item in the first routine doclib header above the routine definition.
@@ -180,14 +180,14 @@ definition is displayed instead."
180 180
181 181
182(defcustom idlwave-help-doclib-name "name" 182(defcustom idlwave-help-doclib-name "name"
183 "*A regexp for the heading word to search for in doclib headers 183 "A regexp for the heading word to search for in doclib headers
184which specifies the `name' section. Can be used for localization 184which specifies the `name' section. Can be used for localization
185support." 185support."
186 :group 'idlwave-online-help 186 :group 'idlwave-online-help
187 :type 'string) 187 :type 'string)
188 188
189(defcustom idlwave-help-doclib-keyword "KEYWORD" 189(defcustom idlwave-help-doclib-keyword "KEYWORD"
190 "*A regexp for the heading word to search for in doclib headers 190 "A regexp for the heading word to search for in doclib headers
191which specifies the `keywords' section. Can be used for localization 191which specifies the `keywords' section. Can be used for localization
192support." 192support."
193 :group 'idlwave-online-help 193 :group 'idlwave-online-help
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 55a085fbde0..d843de04913 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -106,7 +106,7 @@
106 :group 'idlwave) 106 :group 'idlwave)
107 107
108(defcustom idlwave-shell-prompt-pattern "^\r? ?IDL> " 108(defcustom idlwave-shell-prompt-pattern "^\r? ?IDL> "
109 "*Regexp to match IDL prompt at beginning of a line. 109 "Regexp to match IDL prompt at beginning of a line.
110For example, \"^\r?IDL> \" or \"^\r?WAVE> \". 110For example, \"^\r?IDL> \" or \"^\r?WAVE> \".
111The \"^\r?\" is needed, to indicate the beginning of the line, with 111The \"^\r?\" is needed, to indicate the beginning of the line, with
112optional return character (which IDL seems to output randomly). 112optional return character (which IDL seems to output randomly).
@@ -118,7 +118,7 @@ This is a fine thing to set in your `.emacs' file."
118 :type 'regexp) 118 :type 'regexp)
119 119
120(defcustom idlwave-shell-process-name "idl" 120(defcustom idlwave-shell-process-name "idl"
121 "*Name to be associated with the IDL process. The buffer for the 121 "Name to be associated with the IDL process. The buffer for the
122process output is made by surrounding this name with `*'s." 122process output is made by surrounding this name with `*'s."
123 :group 'idlwave-shell-general-setup 123 :group 'idlwave-shell-general-setup
124 :type 'string) 124 :type 'string)
@@ -126,12 +126,12 @@ process output is made by surrounding this name with `*'s."
126;; (defcustom idlwave-shell-automatic-start...) See idlwave.el 126;; (defcustom idlwave-shell-automatic-start...) See idlwave.el
127 127
128(defcustom idlwave-shell-use-dedicated-window nil 128(defcustom idlwave-shell-use-dedicated-window nil
129 "*Non-nil means, never replace the shell frame with another buffer." 129 "Non-nil means, never replace the shell frame with another buffer."
130 :group 'idlwave-shell-general-setup 130 :group 'idlwave-shell-general-setup
131 :type 'boolean) 131 :type 'boolean)
132 132
133(defcustom idlwave-shell-use-dedicated-frame nil 133(defcustom idlwave-shell-use-dedicated-frame nil
134 "*Non-nil means, IDLWAVE should use a special frame to display shell buffer." 134 "Non-nil means, IDLWAVE should use a special frame to display shell buffer."
135 :group 'idlwave-shell-general-setup 135 :group 'idlwave-shell-general-setup
136 :type 'boolean) 136 :type 'boolean)
137 137
@@ -145,12 +145,12 @@ The default makes the frame splittable, so that completion works correctly."
145 (cons symbol sexp))) 145 (cons symbol sexp)))
146 146
147(defcustom idlwave-shell-raise-frame t 147(defcustom idlwave-shell-raise-frame t
148 "*Non-nil means, `idlwave-shell' raises the frame showing the shell window." 148 "Non-nil means, `idlwave-shell' raises the frame showing the shell window."
149 :group 'idlwave-shell-general-setup 149 :group 'idlwave-shell-general-setup
150 :type 'boolean) 150 :type 'boolean)
151 151
152(defcustom idlwave-shell-arrows-do-history t 152(defcustom idlwave-shell-arrows-do-history t
153 "*Non-nil means UP and DOWN arrows move through command history. 153 "Non-nil means UP and DOWN arrows move through command history.
154This variable can have 3 values: 154This variable can have 3 values:
155nil Arrows just move the cursor 155nil Arrows just move the cursor
156t Arrows force the cursor back to the current command line and 156t Arrows force the cursor back to the current command line and
@@ -166,7 +166,7 @@ t Arrows force the cursor back to the current command line and
166;; FIXME: add comint-input-ring-size? 166;; FIXME: add comint-input-ring-size?
167 167
168(defcustom idlwave-shell-use-toolbar t 168(defcustom idlwave-shell-use-toolbar t
169 "*Non-nil means, use the debugging toolbar in all IDL related buffers. 169 "Non-nil means, use the debugging toolbar in all IDL related buffers.
170Starting the shell will then add the toolbar to all idlwave-mode buffers. 170Starting the shell will then add the toolbar to all idlwave-mode buffers.
171Exiting the shell will removed everywhere. 171Exiting the shell will removed everywhere.
172Available on XEmacs and on Emacs 21.x or later. 172Available on XEmacs and on Emacs 21.x or later.
@@ -176,7 +176,7 @@ At any time you can toggle the display of the toolbar with
176 :type 'boolean) 176 :type 'boolean)
177 177
178(defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp" 178(defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp"
179 "*The prefix for temporary IDL files used when compiling regions. 179 "The prefix for temporary IDL files used when compiling regions.
180It should be an absolute pathname. 180It should be an absolute pathname.
181The full temporary file name is obtained by using `make-temp-file' 181The full temporary file name is obtained by using `make-temp-file'
182so that the name will be unique among multiple Emacs processes." 182so that the name will be unique among multiple Emacs processes."
@@ -184,13 +184,13 @@ so that the name will be unique among multiple Emacs processes."
184 :type 'string) 184 :type 'string)
185 185
186(defvar idlwave-shell-fix-inserted-breaks nil 186(defvar idlwave-shell-fix-inserted-breaks nil
187 "*OBSOLETE VARIABLE, is no longer used. 187 "OBSOLETE VARIABLE, is no longer used.
188 188
189The documentation of this variable used to be: 189The documentation of this variable used to be:
190If non-nil then run `idlwave-shell-remove-breaks' to clean up IDL messages.") 190If non-nil then run `idlwave-shell-remove-breaks' to clean up IDL messages.")
191 191
192(defcustom idlwave-shell-prefix-key "\C-c\C-d" 192(defcustom idlwave-shell-prefix-key "\C-c\C-d"
193 "*The prefix key for the debugging map `idlwave-shell-mode-prefix-map'. 193 "The prefix key for the debugging map `idlwave-shell-mode-prefix-map'.
194This variable must already be set when idlwave-shell.el is loaded. 194This variable must already be set when idlwave-shell.el is loaded.
195Setting it in the mode-hook is too late." 195Setting it in the mode-hook is too late."
196 :group 'idlwave-shell-general-setup 196 :group 'idlwave-shell-general-setup
@@ -227,7 +227,7 @@ window, but is useful for stepping, etc."
227 "Obsolete variable. See `idlwave-shell-debug-modifiers'.") 227 "Obsolete variable. See `idlwave-shell-debug-modifiers'.")
228 228
229(defcustom idlwave-shell-use-truename nil 229(defcustom idlwave-shell-use-truename nil
230 "*Non-nil means, use `file-truename' when looking for buffers. 230 "Non-nil means, use `file-truename' when looking for buffers.
231If this variable is non-nil, Emacs will use the function `file-truename' to 231If this variable is non-nil, Emacs will use the function `file-truename' to
232resolve symbolic links in the file paths printed by e.g., STOP commands. 232resolve symbolic links in the file paths printed by e.g., STOP commands.
233This means, unvisited files will be loaded under their truename. 233This means, unvisited files will be loaded under their truename.
@@ -247,7 +247,7 @@ because these are used as separators by IDL."
247 :type 'string) 247 :type 'string)
248 248
249(defcustom idlwave-shell-mode-hook '() 249(defcustom idlwave-shell-mode-hook '()
250 "*Hook for customizing `idlwave-shell-mode'." 250 "Hook for customizing `idlwave-shell-mode'."
251 :group 'idlwave-shell-general-setup 251 :group 'idlwave-shell-general-setup
252 :type 'hook) 252 :type 'hook)
253 253
@@ -292,7 +292,7 @@ is non-nil."
292 292
293(defcustom idlwave-shell-show-commands 293(defcustom idlwave-shell-show-commands
294 '(run misc breakpoint) 294 '(run misc breakpoint)
295 "*A list of command types to show output from in the shell. 295 "A list of command types to show output from in the shell.
296Possibilities are 'run, 'debug, 'breakpoint, and 'misc. Unselected 296Possibilities are 'run, 'debug, 'breakpoint, and 'misc. Unselected
297types are not displayed in the shell. The type 'everything causes all 297types are not displayed in the shell. The type 'everything causes all
298the copious shell traffic to be displayed." 298the copious shell traffic to be displayed."
@@ -336,10 +336,10 @@ expression being examined."
336 (string :tag "Command")))) 336 (string :tag "Command"))))
337 337
338(defvar idlwave-shell-print-expression-function nil 338(defvar idlwave-shell-print-expression-function nil
339 "*OBSOLETE VARIABLE, is no longer used.") 339 "OBSOLETE VARIABLE, is no longer used.")
340 340
341(defcustom idlwave-shell-separate-examine-output t 341(defcustom idlwave-shell-separate-examine-output t
342 "*Non-nil means, put output of examine commands in their own buffer." 342 "Non-nil means, put output of examine commands in their own buffer."
343 :group 'idlwave-shell-command-setup 343 :group 'idlwave-shell-command-setup
344 :type 'boolean) 344 :type 'boolean)
345 345
@@ -359,12 +359,12 @@ newly created."
359 (cons variable sexp))) 359 (cons variable sexp)))
360 360
361(defcustom idlwave-shell-query-for-class t 361(defcustom idlwave-shell-query-for-class t
362 "*Non-nil means query the shell for object class on object completions." 362 "Non-nil means query the shell for object class on object completions."
363 :group 'idlwave-shell-command-setup 363 :group 'idlwave-shell-command-setup
364 :type 'boolean) 364 :type 'boolean)
365 365
366(defcustom idlwave-shell-use-input-mode-magic nil 366(defcustom idlwave-shell-use-input-mode-magic nil
367 "*Non-nil means, IDLWAVE should check for input mode spells in output. 367 "Non-nil means, IDLWAVE should check for input mode spells in output.
368The spells are strings printed by your IDL program and matched 368The spells are strings printed by your IDL program and matched
369by the regular expressions in `idlwave-shell-input-mode-spells'. 369by the regular expressions in `idlwave-shell-input-mode-spells'.
370When these expressions match, IDLWAVE switches to character input mode and 370When these expressions match, IDLWAVE switches to character input mode and
@@ -432,7 +432,7 @@ end"
432 (regexp :tag "Line-mode regexp"))) 432 (regexp :tag "Line-mode regexp")))
433 433
434(defcustom idlwave-shell-breakpoint-popup-menu t 434(defcustom idlwave-shell-breakpoint-popup-menu t
435 "*If non-nil, provide a menu on mouse-3 on breakpoint lines, and 435 "If non-nil, provide a menu on mouse-3 on breakpoint lines, and
436popup help text on the line." 436popup help text on the line."
437 :group 'idlwave-shell-command-setup 437 :group 'idlwave-shell-command-setup
438 :type 'boolean) 438 :type 'boolean)
@@ -449,7 +449,7 @@ popup help text on the line."
449 :group 'idlwave) 449 :group 'idlwave)
450 450
451(defcustom idlwave-shell-mark-stop-line t 451(defcustom idlwave-shell-mark-stop-line t
452 "*Non-nil means, mark the source code line where IDL is currently stopped. 452 "Non-nil means, mark the source code line where IDL is currently stopped.
453Value decides about the method which is used to mark the line. Valid values 453Value decides about the method which is used to mark the line. Valid values
454are: 454are:
455 455
@@ -471,7 +471,7 @@ hides any code, so setting this to 'arrow on Emacs 21 sounds like a good idea."
471 (const :tag "Face or arrow." t))) 471 (const :tag "Face or arrow." t)))
472 472
473(defcustom idlwave-shell-overlay-arrow ">" 473(defcustom idlwave-shell-overlay-arrow ">"
474 "*The overlay arrow to display at source lines where execution halts. 474 "The overlay arrow to display at source lines where execution halts.
475We use a single character by default, since the main block of IDL procedures 475We use a single character by default, since the main block of IDL procedures
476often has no indentation. Where possible, IDLWAVE will use overlays to 476often has no indentation. Where possible, IDLWAVE will use overlays to
477display the stop-lines. The arrow is only used on character-based terminals. 477display the stop-lines. The arrow is only used on character-based terminals.
@@ -480,14 +480,14 @@ See also `idlwave-shell-use-overlay-arrow'."
480 :type 'string) 480 :type 'string)
481 481
482(defcustom idlwave-shell-stop-line-face 'highlight 482(defcustom idlwave-shell-stop-line-face 'highlight
483 "*The face for `idlwave-shell-stop-line-overlay'. 483 "The face for `idlwave-shell-stop-line-overlay'.
484Allows you to choose the font, color and other properties for 484Allows you to choose the font, color and other properties for
485line where IDL is stopped. See also `idlwave-shell-mark-stop-line'." 485line where IDL is stopped. See also `idlwave-shell-mark-stop-line'."
486 :group 'idlwave-shell-highlighting-and-faces 486 :group 'idlwave-shell-highlighting-and-faces
487 :type 'symbol) 487 :type 'symbol)
488 488
489(defcustom idlwave-shell-electric-stop-color "Violet" 489(defcustom idlwave-shell-electric-stop-color "Violet"
490 "*The color for the default face or overlay arrow when stopped." 490 "The color for the default face or overlay arrow when stopped."
491 :group 'idlwave-shell-highlighting-and-faces 491 :group 'idlwave-shell-highlighting-and-faces
492 :type 'string) 492 :type 'string)
493 493
@@ -499,14 +499,14 @@ line where IDL is stopped. See also `idlwave-shell-mark-stop-line'."
499 (condition-case nil 499 (condition-case nil
500 (set-face-foreground 'idlwave-shell-electric-stop-line nil) 500 (set-face-foreground 'idlwave-shell-electric-stop-line nil)
501 (error nil))) 501 (error nil)))
502 "*The face for `idlwave-shell-stop-line-overlay' when in electric debug mode. 502 "The face for `idlwave-shell-stop-line-overlay' when in electric debug mode.
503Allows you to choose the font, color and other properties for the line 503Allows you to choose the font, color and other properties for the line
504where IDL is stopped, when in Electric Debug Mode." 504where IDL is stopped, when in Electric Debug Mode."
505 :group 'idlwave-shell-highlighting-and-faces 505 :group 'idlwave-shell-highlighting-and-faces
506 :type 'symbol) 506 :type 'symbol)
507 507
508(defcustom idlwave-shell-mark-breakpoints t 508(defcustom idlwave-shell-mark-breakpoints t
509 "*Non-nil means, mark breakpoints in the source files. 509 "Non-nil means, mark breakpoints in the source files.
510Valid values are: 510Valid values are:
511nil Do not mark breakpoints. 511nil Do not mark breakpoints.
512'face Highlight line with `idlwave-shell-breakpoint-face'. 512'face Highlight line with `idlwave-shell-breakpoint-face'.
@@ -524,7 +524,7 @@ t Glyph when possible, otherwise face (same effect as 'glyph)."
524 "Obsolete variable. See `idlwave-shell-mark-breakpoints'.") 524 "Obsolete variable. See `idlwave-shell-mark-breakpoints'.")
525 525
526(defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp 526(defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp
527 "*The face for breakpoint lines in the source code. 527 "The face for breakpoint lines in the source code.
528Allows you to choose the font, color and other properties for 528Allows you to choose the font, color and other properties for
529lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." 529lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
530 :group 'idlwave-shell-highlighting-and-faces 530 :group 'idlwave-shell-highlighting-and-faces
@@ -542,7 +542,7 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
542 542
543(defcustom idlwave-shell-disabled-breakpoint-face 543(defcustom idlwave-shell-disabled-breakpoint-face
544 'idlwave-shell-disabled-bp 544 'idlwave-shell-disabled-bp
545 "*The face for disabled breakpoint lines in the source code. 545 "The face for disabled breakpoint lines in the source code.
546Allows you to choose the font, color and other properties for 546Allows you to choose the font, color and other properties for
547lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'." 547lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
548 :group 'idlwave-shell-highlighting-and-faces 548 :group 'idlwave-shell-highlighting-and-faces
@@ -560,14 +560,14 @@ lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
560 560
561 561
562(defcustom idlwave-shell-expression-face 'secondary-selection 562(defcustom idlwave-shell-expression-face 'secondary-selection
563 "*The face for `idlwave-shell-expression-overlay'. 563 "The face for `idlwave-shell-expression-overlay'.
564Allows you to choose the font, color and other properties for 564Allows you to choose the font, color and other properties for
565the expression printed by IDL." 565the expression printed by IDL."
566 :group 'idlwave-shell-highlighting-and-faces 566 :group 'idlwave-shell-highlighting-and-faces
567 :type 'symbol) 567 :type 'symbol)
568 568
569(defcustom idlwave-shell-output-face 'secondary-selection 569(defcustom idlwave-shell-output-face 'secondary-selection
570 "*The face for `idlwave-shell-output-overlay'. 570 "The face for `idlwave-shell-output-overlay'.
571Allows you to choose the font, color and other properties for 571Allows you to choose the font, color and other properties for
572the expression output by IDL." 572the expression output by IDL."
573 :group 'idlwave-shell-highlighting-and-faces 573 :group 'idlwave-shell-highlighting-and-faces
@@ -784,7 +784,7 @@ with `*'s."
784 "^% Skipped to:" 784 "^% Skipped to:"
785 "^% Stop encountered:" 785 "^% Stop encountered:"
786 ) 786 )
787 "*A list of regular expressions matching IDL messages. 787 "A list of regular expressions matching IDL messages.
788These are the messages containing file and line information where 788These are the messages containing file and line information where
789IDL is currently stopped.") 789IDL is currently stopped.")
790 790
@@ -795,19 +795,19 @@ IDL is currently stopped.")
795 795
796(defconst idlwave-shell-trace-message-re 796(defconst idlwave-shell-trace-message-re
797 "^% At " ;; First line of a trace message 797 "^% At " ;; First line of a trace message
798 "*A regular expression matching IDL trace messages. These are the 798 "A regular expression matching IDL trace messages. These are the
799messages containing file and line information of a current 799messages containing file and line information of a current
800traceback.") 800traceback.")
801 801
802(defconst idlwave-shell-step-messages 802(defconst idlwave-shell-step-messages
803 '("^% Stepped to:" 803 '("^% Stepped to:"
804 ) 804 )
805 "*A list of regular expressions matching stepped execution messages. 805 "A list of regular expressions matching stepped execution messages.
806These are IDL messages containing file and line information where 806These are IDL messages containing file and line information where
807IDL has currently stepped.") 807IDL has currently stepped.")
808 808
809(defvar idlwave-shell-break-message "^% Breakpoint at:" 809(defvar idlwave-shell-break-message "^% Breakpoint at:"
810 "*Regular expression matching an IDL breakpoint message line.") 810 "Regular expression matching an IDL breakpoint message line.")
811 811
812(defconst idlwave-shell-electric-debug-help 812(defconst idlwave-shell-electric-debug-help
813 " ==> IDLWAVE Electric Debug Mode Help <== 813 " ==> IDLWAVE Electric Debug Mode Help <==
@@ -1672,7 +1672,7 @@ number.")
1672 "\\([ \t]*\n[ \t]*[^ \t\n]+\\)*" ; continuation lines file name (6) 1672 "\\([ \t]*\n[ \t]*[^ \t\n]+\\)*" ; continuation lines file name (6)
1673 "\\)" ; end line number group (5) 1673 "\\)" ; end line number group (5)
1674 ) 1674 )
1675 "*A regular expression to parse out the file name and line number. 1675 "A regular expression to parse out the file name and line number.
1676The 1st group should match the subroutine name. 1676The 1st group should match the subroutine name.
1677The 3rd group is the line number. 1677The 3rd group is the line number.
1678The 5th group is the file name. 1678The 5th group is the file name.
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index 31fe20698b9..74f37df9b2d 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -195,34 +195,34 @@
195 :group 'idlwave) 195 :group 'idlwave)
196 196
197(defcustom idlwave-main-block-indent 2 197(defcustom idlwave-main-block-indent 2
198 "*Extra indentation for the main block of code. 198 "Extra indentation for the main block of code.
199That is the block between the FUNCTION/PRO statement and the END 199That is the block between the FUNCTION/PRO statement and the END
200statement for that program unit." 200statement for that program unit."
201 :group 'idlwave-code-formatting 201 :group 'idlwave-code-formatting
202 :type 'integer) 202 :type 'integer)
203 203
204(defcustom idlwave-block-indent 3 204(defcustom idlwave-block-indent 3
205 "*Extra indentation applied to block lines. 205 "Extra indentation applied to block lines.
206If you change this, you probably also want to change `idlwave-end-offset'." 206If you change this, you probably also want to change `idlwave-end-offset'."
207 :group 'idlwave-code-formatting 207 :group 'idlwave-code-formatting
208 :type 'integer) 208 :type 'integer)
209 209
210(defcustom idlwave-end-offset -3 210(defcustom idlwave-end-offset -3
211 "*Extra indentation applied to block END lines. 211 "Extra indentation applied to block END lines.
212A value equal to negative `idlwave-block-indent' will make END lines 212A value equal to negative `idlwave-block-indent' will make END lines
213line up with the block BEGIN lines." 213line up with the block BEGIN lines."
214 :group 'idlwave-code-formatting 214 :group 'idlwave-code-formatting
215 :type 'integer) 215 :type 'integer)
216 216
217(defcustom idlwave-continuation-indent 3 217(defcustom idlwave-continuation-indent 3
218 "*Extra indentation applied to continuation lines. 218 "Extra indentation applied to continuation lines.
219This extra offset applies to the first of a set of continuation lines. 219This extra offset applies to the first of a set of continuation lines.
220The following lines receive the same indentation as the first." 220The following lines receive the same indentation as the first."
221 :group 'idlwave-code-formatting 221 :group 'idlwave-code-formatting
222 :type 'integer) 222 :type 'integer)
223 223
224(defcustom idlwave-max-extra-continuation-indent 40 224(defcustom idlwave-max-extra-continuation-indent 40
225 "*Maximum additional indentation for special continuation indent. 225 "Maximum additional indentation for special continuation indent.
226Several special indentations are tried to help line up continuation 226Several special indentations are tried to help line up continuation
227lines in routine calls or definitions, other statements with 227lines in routine calls or definitions, other statements with
228parentheses, or assignment statements. This variable specifies a 228parentheses, or assignment statements. This variable specifies a
@@ -236,7 +236,7 @@ this variable."
236 :type 'integer) 236 :type 'integer)
237 237
238(defcustom idlwave-indent-to-open-paren t 238(defcustom idlwave-indent-to-open-paren t
239 "*Non-nil means, indent continuation lines to innermost open parenthesis. 239 "Non-nil means, indent continuation lines to innermost open parenthesis.
240This indentation occurs even if otherwise disallowed by 240This indentation occurs even if otherwise disallowed by
241`idlwave-max-extra-continuation-indent'. Matching parens and the 241`idlwave-max-extra-continuation-indent'. Matching parens and the
242interleaving args are lined up. Example: 242interleaving args are lined up. Example:
@@ -260,38 +260,38 @@ would yield:
260 :type 'boolean) 260 :type 'boolean)
261 261
262(defcustom idlwave-indent-parens-nested nil 262(defcustom idlwave-indent-parens-nested nil
263 "*Non-nil means, indent continuation lines with parens by nesting 263 "Non-nil means, indent continuation lines with parens by nesting
264lines at consecutively deeper levels." 264lines at consecutively deeper levels."
265 :group 'idlwave-code-formatting 265 :group 'idlwave-code-formatting
266 :type 'boolean) 266 :type 'boolean)
267 267
268 268
269(defcustom idlwave-hanging-indent t 269(defcustom idlwave-hanging-indent t
270 "*If set non-nil then comment paragraphs are indented under the 270 "If set non-nil then comment paragraphs are indented under the
271hanging indent given by `idlwave-hang-indent-regexp' match in the first line 271hanging indent given by `idlwave-hang-indent-regexp' match in the first line
272of the paragraph." 272of the paragraph."
273 :group 'idlwave-code-formatting 273 :group 'idlwave-code-formatting
274 :type 'boolean) 274 :type 'boolean)
275 275
276(defcustom idlwave-hang-indent-regexp "- " 276(defcustom idlwave-hang-indent-regexp "- "
277 "*Regular expression matching the position of the hanging indent 277 "Regular expression matching the position of the hanging indent
278in the first line of a comment paragraph. The size of the indent 278in the first line of a comment paragraph. The size of the indent
279extends to the end of the match for the regular expression." 279extends to the end of the match for the regular expression."
280 :group 'idlwave-code-formatting 280 :group 'idlwave-code-formatting
281 :type 'regexp) 281 :type 'regexp)
282 282
283(defcustom idlwave-use-last-hang-indent nil 283(defcustom idlwave-use-last-hang-indent nil
284 "*If non-nil then use last match on line for `idlwave-indent-regexp'." 284 "If non-nil then use last match on line for `idlwave-indent-regexp'."
285 :group 'idlwave-code-formatting 285 :group 'idlwave-code-formatting
286 :type 'boolean) 286 :type 'boolean)
287 287
288(defcustom idlwave-fill-comment-line-only t 288(defcustom idlwave-fill-comment-line-only t
289 "*If non-nil then auto fill will only operate on comment lines." 289 "If non-nil then auto fill will only operate on comment lines."
290 :group 'idlwave-code-formatting 290 :group 'idlwave-code-formatting
291 :type 'boolean) 291 :type 'boolean)
292 292
293(defcustom idlwave-auto-fill-split-string t 293(defcustom idlwave-auto-fill-split-string t
294 "*If non-nil then auto fill will split strings with the IDL `+' operator. 294 "If non-nil then auto fill will split strings with the IDL `+' operator.
295When the line end falls within a string, string concatenation with the 295When the line end falls within a string, string concatenation with the
296'+' operator will be used to distribute a long string over lines. 296'+' operator will be used to distribute a long string over lines.
297If nil and a string is split then a terminal beep and warning are issued. 297If nil and a string is split then a terminal beep and warning are issued.
@@ -302,7 +302,7 @@ non-nil, since in this case code is not auto-filled."
302 :type 'boolean) 302 :type 'boolean)
303 303
304(defcustom idlwave-split-line-string t 304(defcustom idlwave-split-line-string t
305 "*If non-nil then `idlwave-split-line' will split strings with `+'. 305 "If non-nil then `idlwave-split-line' will split strings with `+'.
306When the splitting point of a line falls inside a string, split the string 306When the splitting point of a line falls inside a string, split the string
307using the `+' string concatenation operator. If nil and a string is 307using the `+' string concatenation operator. If nil and a string is
308split then a terminal beep and warning are issued." 308split then a terminal beep and warning are issued."
@@ -310,14 +310,14 @@ split then a terminal beep and warning are issued."
310 :type 'boolean) 310 :type 'boolean)
311 311
312(defcustom idlwave-no-change-comment ";;;" 312(defcustom idlwave-no-change-comment ";;;"
313 "*The indentation of a comment that starts with this regular 313 "The indentation of a comment that starts with this regular
314expression will not be changed. Note that the indentation of a comment 314expression will not be changed. Note that the indentation of a comment
315at the beginning of a line is never changed." 315at the beginning of a line is never changed."
316 :group 'idlwave-code-formatting 316 :group 'idlwave-code-formatting
317 :type 'string) 317 :type 'string)
318 318
319(defcustom idlwave-begin-line-comment nil 319(defcustom idlwave-begin-line-comment nil
320 "*A comment anchored at the beginning of line. 320 "A comment anchored at the beginning of line.
321A comment matching this regular expression will not have its 321A comment matching this regular expression will not have its
322indentation changed. If nil the default is \"^;\", i.e., any line 322indentation changed. If nil the default is \"^;\", i.e., any line
323beginning with a \";\". Expressions for comments at the beginning of 323beginning with a \";\". Expressions for comments at the beginning of
@@ -327,7 +327,7 @@ the line should begin with \"^\"."
327 'regexp)) 327 'regexp))
328 328
329(defcustom idlwave-code-comment ";;[^;]" 329(defcustom idlwave-code-comment ";;[^;]"
330 "*A comment that starts with this regular expression on a line by 330 "A comment that starts with this regular expression on a line by
331itself is indented as if it is a part of IDL code. As a result if 331itself is indented as if it is a part of IDL code. As a result if
332the comment is not preceded by whitespace it is unchanged." 332the comment is not preceded by whitespace it is unchanged."
333 :group 'idlwave-code-formatting 333 :group 'idlwave-code-formatting
@@ -343,7 +343,7 @@ the comment is not preceded by whitespace it is unchanged."
343 :group 'idlwave) 343 :group 'idlwave)
344 344
345(defcustom idlwave-use-library-catalogs t 345(defcustom idlwave-use-library-catalogs t
346 "*Non-nil means search the IDL path for library catalog files. 346 "Non-nil means search the IDL path for library catalog files.
347 347
348These files, named .idlwave_catalog, document routine information for 348These files, named .idlwave_catalog, document routine information for
349individual directories and libraries of IDL .pro files. Many popular 349individual directories and libraries of IDL .pro files. Many popular
@@ -353,7 +353,7 @@ usually a good idea."
353 :type 'boolean) 353 :type 'boolean)
354 354
355(defcustom idlwave-init-rinfo-when-idle-after 10 355(defcustom idlwave-init-rinfo-when-idle-after 10
356 "*Seconds of idle time before routine info is automatically initialized. 356 "Seconds of idle time before routine info is automatically initialized.
357Initializing the routine info can take a long time, in particular if a 357Initializing the routine info can take a long time, in particular if a
358large number of library catalogs are involved. When Emacs is idle for 358large number of library catalogs are involved. When Emacs is idle for
359more than the number of seconds specified by this variable, it starts 359more than the number of seconds specified by this variable, it starts
@@ -370,7 +370,7 @@ needed, and initialize then."
370 :type 'number) 370 :type 'number)
371 371
372(defcustom idlwave-scan-all-buffers-for-routine-info t 372(defcustom idlwave-scan-all-buffers-for-routine-info t
373 "*Non-nil means, scan buffers for IDL programs when updating info. 373 "Non-nil means, scan buffers for IDL programs when updating info.
374The scanning is done by the command `idlwave-update-routine-info'. 374The scanning is done by the command `idlwave-update-routine-info'.
375The following values are allowed: 375The following values are allowed:
376 376
@@ -384,7 +384,7 @@ current Scan only the current buffer, but no other buffers."
384 (const :tag "Current buffer only" 'current))) 384 (const :tag "Current buffer only" 'current)))
385 385
386(defcustom idlwave-query-shell-for-routine-info t 386(defcustom idlwave-query-shell-for-routine-info t
387 "*Non-nil means query the shell for info about compiled routines. 387 "Non-nil means query the shell for info about compiled routines.
388Querying the shell is useful to get information about compiled modules, 388Querying the shell is useful to get information about compiled modules,
389and it is turned on by default. However, when you have a complete library 389and it is turned on by default. However, when you have a complete library
390scan, this is not necessary." 390scan, this is not necessary."
@@ -393,7 +393,7 @@ scan, this is not necessary."
393 393
394(defcustom idlwave-auto-routine-info-updates 394(defcustom idlwave-auto-routine-info-updates
395 '(find-file save-buffer kill-buffer compile-buffer) 395 '(find-file save-buffer kill-buffer compile-buffer)
396 "*Controls under what circumstances routine info is updated automatically. 396 "Controls under what circumstances routine info is updated automatically.
397Possible values: 397Possible values:
398nil Never 398nil Never
399t All available 399t All available
@@ -413,7 +413,7 @@ t All available
413 (const :tag "After a buffer was compiled successfully, update shell info" compile-buffer)))) 413 (const :tag "After a buffer was compiled successfully, update shell info" compile-buffer))))
414 414
415(defcustom idlwave-rinfo-max-source-lines 5 415(defcustom idlwave-rinfo-max-source-lines 5
416 "*Maximum number of source files displayed in the Routine Info window. 416 "Maximum number of source files displayed in the Routine Info window.
417When an integer, it is the maximum number of source files displayed. 417When an integer, it is the maximum number of source files displayed.
418A value of t means to show all source files." 418A value of t means to show all source files."
419 :group 'idlwave-routine-info 419 :group 'idlwave-routine-info
@@ -448,7 +448,7 @@ value of `!DIR'. See also `idlwave-library-path'."
448;; Configuration files 448;; Configuration files
449(defcustom idlwave-config-directory 449(defcustom idlwave-config-directory
450 (convert-standard-filename "~/.idlwave") 450 (convert-standard-filename "~/.idlwave")
451 "*Directory for configuration files and user-library catalog." 451 "Directory for configuration files and user-library catalog."
452 :group 'idlwave-routine-info 452 :group 'idlwave-routine-info
453 :type 'file) 453 :type 'file)
454 454
@@ -457,7 +457,7 @@ value of `!DIR'. See also `idlwave-library-path'."
457(defvar idlwave-path-file "idlpath.el") 457(defvar idlwave-path-file "idlpath.el")
458 458
459(defvar idlwave-libinfo-file nil 459(defvar idlwave-libinfo-file nil
460 "*Obsolete variable, no longer used.") 460 "Obsolete variable, no longer used.")
461 461
462(defcustom idlwave-special-lib-alist nil 462(defcustom idlwave-special-lib-alist nil
463 "Alist of regular expressions matching special library directories. 463 "Alist of regular expressions matching special library directories.
@@ -538,7 +538,7 @@ After changing this variable, you need to either restart Emacs or press
538 ,idlwave-tmp))) 538 ,idlwave-tmp)))
539 539
540(defcustom idlwave-completion-force-default-case nil 540(defcustom idlwave-completion-force-default-case nil
541 "*Non-nil means, completion will always honor `idlwave-completion-case'. 541 "Non-nil means, completion will always honor `idlwave-completion-case'.
542When nil, only the completion of a mixed case or upper case string 542When nil, only the completion of a mixed case or upper case string
543will honor the default settings in `idlwave-completion-case', while 543will honor the default settings in `idlwave-completion-case', while
544the completion of lower case strings will be completed entirely in 544the completion of lower case strings will be completed entirely in
@@ -547,7 +547,7 @@ lower case."
547 :type 'boolean) 547 :type 'boolean)
548 548
549(defcustom idlwave-complete-empty-string-as-lower-case nil 549(defcustom idlwave-complete-empty-string-as-lower-case nil
550 "*Non-nil means, the empty string is considered downcase for completion. 550 "Non-nil means, the empty string is considered downcase for completion.
551The case of what is already in the buffer determines the case of completions. 551The case of what is already in the buffer determines the case of completions.
552When this variable is non-nil, the empty string is considered to be downcase. 552When this variable is non-nil, the empty string is considered to be downcase.
553Completing on the empty string then offers downcase versions of the possible 553Completing on the empty string then offers downcase versions of the possible
@@ -560,7 +560,7 @@ completions."
560`idlwave-completion-case'.") 560`idlwave-completion-case'.")
561 561
562(defcustom idlwave-buffer-case-takes-precedence nil 562(defcustom idlwave-buffer-case-takes-precedence nil
563 "*Non-nil means, the case of tokens in buffers dominates over system stuff. 563 "Non-nil means, the case of tokens in buffers dominates over system stuff.
564To make this possible, we need to re-case everything each time we update 564To make this possible, we need to re-case everything each time we update
565the routine info from the buffers. This is slow. 565the routine info from the buffers. This is slow.
566The default is to consider the case given in the system and library files 566The default is to consider the case given in the system and library files
@@ -569,7 +569,7 @@ first which makes updating much faster."
569 :type 'boolean) 569 :type 'boolean)
570 570
571(defcustom idlwave-highlight-help-links-in-completion t 571(defcustom idlwave-highlight-help-links-in-completion t
572 "*Non-nil means, highlight completions for which system help is available. 572 "Non-nil means, highlight completions for which system help is available.
573Help can then be accessed with mouse-3. 573Help can then be accessed with mouse-3.
574This option is only effective when the online help system is installed." 574This option is only effective when the online help system is installed."
575 :group 'idlwave-completion 575 :group 'idlwave-completion
@@ -594,7 +594,7 @@ for which to assume this can be set here."
594 594
595 595
596(defcustom idlwave-completion-show-classes 1 596(defcustom idlwave-completion-show-classes 1
597 "*Number of classes to show when completing object methods and keywords. 597 "Number of classes to show when completing object methods and keywords.
598When completing methods or keywords for an object with unknown class, 598When completing methods or keywords for an object with unknown class,
599the *Completions* buffer will show the valid classes for each completion 599the *Completions* buffer will show the valid classes for each completion
600like this: 600like this:
@@ -613,7 +613,7 @@ negative integer, the `help-echo' property will be suppressed."
613 (integer :tag "Number of classes shown" 1))) 613 (integer :tag "Number of classes shown" 1)))
614 614
615(defcustom idlwave-completion-fontify-classes t 615(defcustom idlwave-completion-fontify-classes t
616 "*Non-nil means, fontify the classes in completions buffer. 616 "Non-nil means, fontify the classes in completions buffer.
617This makes it easier to distinguish the completion items from the extra 617This makes it easier to distinguish the completion items from the extra
618class info listed. See `idlwave-completion-show-classes'." 618class info listed. See `idlwave-completion-show-classes'."
619 :group 'idlwave-completion 619 :group 'idlwave-completion
@@ -673,7 +673,7 @@ method, add an entry (\"INIT\" . t). The method name must be ALL-CAPS."
673 (boolean :tag "Determine class for this method"))))) 673 (boolean :tag "Determine class for this method")))))
674 674
675(defcustom idlwave-store-inquired-class t 675(defcustom idlwave-store-inquired-class t
676 "*Non-nil means, store class of a method call as text property on `->'. 676 "Non-nil means, store class of a method call as text property on `->'.
677IDLWAVE sometimes has to ask the user for the class associated with a 677IDLWAVE sometimes has to ask the user for the class associated with a
678particular object method call. This happens during the commands 678particular object method call. This happens during the commands
679`idlwave-routine-info' and `idlwave-complete', depending upon the 679`idlwave-routine-info' and `idlwave-complete', depending upon the
@@ -698,7 +698,7 @@ at point."
698 :type 'boolean) 698 :type 'boolean)
699 699
700(defcustom idlwave-class-arrow-face 'bold 700(defcustom idlwave-class-arrow-face 'bold
701 "*Face to highlight object operator arrows `->' which carry a class property. 701 "Face to highlight object operator arrows `->' which carry a class property.
702When IDLWAVE stores a class name as text property on an object arrow 702When IDLWAVE stores a class name as text property on an object arrow
703\(see variable `idlwave-store-inquired-class', it highlights the arrow 703\(see variable `idlwave-store-inquired-class', it highlights the arrow
704with this font in order to remind the user that this arrow is special." 704with this font in order to remind the user that this arrow is special."
@@ -706,17 +706,17 @@ with this font in order to remind the user that this arrow is special."
706 :type 'symbol) 706 :type 'symbol)
707 707
708(defcustom idlwave-resize-routine-help-window t 708(defcustom idlwave-resize-routine-help-window t
709 "*Non-nil means, resize the Routine-info *Help* window to fit the content." 709 "Non-nil means, resize the Routine-info *Help* window to fit the content."
710 :group 'idlwave-completion 710 :group 'idlwave-completion
711 :type 'boolean) 711 :type 'boolean)
712 712
713(defcustom idlwave-keyword-completion-adds-equal t 713(defcustom idlwave-keyword-completion-adds-equal t
714 "*Non-nil means, completion automatically adds `=' after completed keywords." 714 "Non-nil means, completion automatically adds `=' after completed keywords."
715 :group 'idlwave-completion 715 :group 'idlwave-completion
716 :type 'boolean) 716 :type 'boolean)
717 717
718(defcustom idlwave-function-completion-adds-paren t 718(defcustom idlwave-function-completion-adds-paren t
719 "*Non-nil means, completion automatically adds `(' after completed function. 719 "Non-nil means, completion automatically adds `(' after completed function.
720nil means, don't add anything. 720nil means, don't add anything.
721A value of `2' means, also add the closing parenthesis and position cursor 721A value of `2' means, also add the closing parenthesis and position cursor
722between the two." 722between the two."
@@ -726,7 +726,7 @@ between the two."
726 (const :tag "()" 2))) 726 (const :tag "()" 2)))
727 727
728(defcustom idlwave-completion-restore-window-configuration t 728(defcustom idlwave-completion-restore-window-configuration t
729 "*Non-nil means, try to restore the window configuration after completion. 729 "Non-nil means, try to restore the window configuration after completion.
730When completion is not unique, Emacs displays a list of completions. 730When completion is not unique, Emacs displays a list of completions.
731This messes up your window configuration. With this variable set, IDLWAVE 731This messes up your window configuration. With this variable set, IDLWAVE
732restores the old configuration after successful completion." 732restores the old configuration after successful completion."
@@ -741,13 +741,13 @@ The variables in this group govern this."
741 :group 'idlwave) 741 :group 'idlwave)
742 742
743(defcustom idlwave-do-actions nil 743(defcustom idlwave-do-actions nil
744 "*Non-nil means performs actions when indenting. 744 "Non-nil means performs actions when indenting.
745The actions that can be performed are listed in `idlwave-indent-action-table'." 745The actions that can be performed are listed in `idlwave-indent-action-table'."
746 :group 'idlwave-abbrev-and-indent-action 746 :group 'idlwave-abbrev-and-indent-action
747 :type 'boolean) 747 :type 'boolean)
748 748
749(defcustom idlwave-abbrev-start-char "\\" 749(defcustom idlwave-abbrev-start-char "\\"
750 "*A single character string used to start abbreviations in abbrev mode. 750 "A single character string used to start abbreviations in abbrev mode.
751Possible characters to chose from: ~`\% 751Possible characters to chose from: ~`\%
752or even '?'. '.' is not a good choice because it can make structure 752or even '?'. '.' is not a good choice because it can make structure
753field names act like abbrevs in certain circumstances. 753field names act like abbrevs in certain circumstances.
@@ -759,7 +759,7 @@ is loaded."
759 :type 'string) 759 :type 'string)
760 760
761(defcustom idlwave-surround-by-blank nil 761(defcustom idlwave-surround-by-blank nil
762 "*Non-nil means, enable `idlwave-surround'. 762 "Non-nil means, enable `idlwave-surround'.
763If non-nil, `=',`<',`>',`&',`,', `->' are surrounded with spaces by 763If non-nil, `=',`<',`>',`&',`,', `->' are surrounded with spaces by
764`idlwave-surround'. 764`idlwave-surround'.
765See help for `idlwave-indent-action-table' for symbols using `idlwave-surround'. 765See help for `idlwave-indent-action-table' for symbols using `idlwave-surround'.
@@ -774,7 +774,7 @@ Also see help for `idlwave-surround'."
774 :type 'boolean) 774 :type 'boolean)
775 775
776(defcustom idlwave-pad-keyword t 776(defcustom idlwave-pad-keyword t
777 "*Non-nil means pad '=' in keywords (routine calls or defs) like assignment. 777 "Non-nil means pad '=' in keywords (routine calls or defs) like assignment.
778Whenever `idlwave-surround' is non-nil then this affects how '=' is 778Whenever `idlwave-surround' is non-nil then this affects how '=' is
779padded for keywords and for variables. If t, pad the same as for 779padded for keywords and for variables. If t, pad the same as for
780assignments. If nil then spaces are removed. With any other value, 780assignments. If nil then spaces are removed. With any other value,
@@ -786,22 +786,22 @@ spaces are left unchanged."
786 (const :tag "Keep space near `='" 'keep))) 786 (const :tag "Keep space near `='" 'keep)))
787 787
788(defcustom idlwave-show-block t 788(defcustom idlwave-show-block t
789 "*Non-nil means point blinks to block beginning for `idlwave-show-begin'." 789 "Non-nil means point blinks to block beginning for `idlwave-show-begin'."
790 :group 'idlwave-abbrev-and-indent-action 790 :group 'idlwave-abbrev-and-indent-action
791 :type 'boolean) 791 :type 'boolean)
792 792
793(defcustom idlwave-expand-generic-end nil 793(defcustom idlwave-expand-generic-end nil
794 "*Non-nil means expand generic END to ENDIF/ENDELSE/ENDWHILE etc." 794 "Non-nil means expand generic END to ENDIF/ENDELSE/ENDWHILE etc."
795 :group 'idlwave-abbrev-and-indent-action 795 :group 'idlwave-abbrev-and-indent-action
796 :type 'boolean) 796 :type 'boolean)
797 797
798(defcustom idlwave-reindent-end t 798(defcustom idlwave-reindent-end t
799 "*Non-nil means re-indent line after END was typed." 799 "Non-nil means re-indent line after END was typed."
800 :group 'idlwave-abbrev-and-indent-action 800 :group 'idlwave-abbrev-and-indent-action
801 :type 'boolean) 801 :type 'boolean)
802 802
803(defcustom idlwave-abbrev-move t 803(defcustom idlwave-abbrev-move t
804 "*Non-nil means the abbrev hook can move point. 804 "Non-nil means the abbrev hook can move point.
805Set to nil by `idlwave-expand-region-abbrevs'. To see the abbrev 805Set to nil by `idlwave-expand-region-abbrevs'. To see the abbrev
806definitions, use the command `list-abbrevs', for abbrevs that move 806definitions, use the command `list-abbrevs', for abbrevs that move
807point. Moving point is useful, for example, to place point between 807point. Moving point is useful, for example, to place point between
@@ -812,7 +812,7 @@ See `idlwave-check-abbrev'."
812 :type 'boolean) 812 :type 'boolean)
813 813
814(defcustom idlwave-abbrev-change-case nil 814(defcustom idlwave-abbrev-change-case nil
815 "*Non-nil means all abbrevs will be forced to either upper or lower case. 815 "Non-nil means all abbrevs will be forced to either upper or lower case.
816If the value t, all expanded abbrevs will be upper case. 816If the value t, all expanded abbrevs will be upper case.
817If the value is 'down then abbrevs will be forced to lower case. 817If the value is 'down then abbrevs will be forced to lower case.
818If nil, the case will not change. 818If nil, the case will not change.
@@ -822,7 +822,7 @@ upper case, regardless of this variable."
822 :type 'boolean) 822 :type 'boolean)
823 823
824(defcustom idlwave-reserved-word-upcase nil 824(defcustom idlwave-reserved-word-upcase nil
825 "*Non-nil means, reserved words will be made upper case via abbrev expansion. 825 "Non-nil means, reserved words will be made upper case via abbrev expansion.
826If nil case of reserved words is controlled by `idlwave-abbrev-change-case'. 826If nil case of reserved words is controlled by `idlwave-abbrev-change-case'.
827Has effect only if in abbrev-mode." 827Has effect only if in abbrev-mode."
828 :group 'idlwave-abbrev-and-indent-action 828 :group 'idlwave-abbrev-and-indent-action
@@ -859,7 +859,7 @@ Has effect only if in abbrev-mode."
859;; '(capitalize-word -1) t) 859;; '(capitalize-word -1) t)
860 860
861(defvar idlwave-indent-action-table nil 861(defvar idlwave-indent-action-table nil
862 "*Associated array containing action lists of search string (car), 862 "Associated array containing action lists of search string (car),
863and function as a cdr. This table is used by `idlwave-indent-line'. 863and function as a cdr. This table is used by `idlwave-indent-line'.
864See documentation for `idlwave-do-action' for a complete description of 864See documentation for `idlwave-do-action' for a complete description of
865the action lists. 865the action lists.
@@ -869,7 +869,7 @@ binding is not requested.
869See help on `idlwave-action-and-binding' for examples.") 869See help on `idlwave-action-and-binding' for examples.")
870 870
871(defvar idlwave-indent-expand-table nil 871(defvar idlwave-indent-expand-table nil
872 "*Associated array containing action lists of search string (car), 872 "Associated array containing action lists of search string (car),
873and function as a cdr. The table is used by the 873and function as a cdr. The table is used by the
874`idlwave-indent-and-action' function. See documentation for 874`idlwave-indent-and-action' function. See documentation for
875`idlwave-do-action' for a complete description of the action lists. 875`idlwave-do-action' for a complete description of the action lists.
@@ -948,14 +948,14 @@ See help on `idlwave-action-and-binding' for examples.")
948; 948;
949;- 949;-
950") 950")
951 "*A list (PATHNAME STRING) specifying the doc-header template to use for 951 "A list (PATHNAME STRING) specifying the doc-header template to use for
952summarizing a file. If PATHNAME is non-nil then this file will be included. 952summarizing a file. If PATHNAME is non-nil then this file will be included.
953Otherwise STRING is used. If nil, the file summary will be omitted. 953Otherwise STRING is used. If nil, the file summary will be omitted.
954For example you might set PATHNAME to the path for the 954For example you might set PATHNAME to the path for the
955lib_template.pro file included in the IDL distribution.") 955lib_template.pro file included in the IDL distribution.")
956 956
957(defcustom idlwave-header-to-beginning-of-file t 957(defcustom idlwave-header-to-beginning-of-file t
958 "*Non-nil means, the documentation header will always be at start of file. 958 "Non-nil means, the documentation header will always be at start of file.
959When nil, the header is positioned between the PRO/FUNCTION line of 959When nil, the header is positioned between the PRO/FUNCTION line of
960the current routine and the code, allowing several routine headers in 960the current routine and the code, allowing several routine headers in
961a file." 961a file."
@@ -963,12 +963,12 @@ a file."
963 :type 'boolean) 963 :type 'boolean)
964 964
965(defcustom idlwave-timestamp-hook 'idlwave-default-insert-timestamp 965(defcustom idlwave-timestamp-hook 'idlwave-default-insert-timestamp
966 "*The hook function used to update the timestamp of a function." 966 "The hook function used to update the timestamp of a function."
967 :group 'idlwave-documentation 967 :group 'idlwave-documentation
968 :type 'function) 968 :type 'function)
969 969
970(defcustom idlwave-doc-modifications-keyword "HISTORY" 970(defcustom idlwave-doc-modifications-keyword "HISTORY"
971 "*The modifications keyword to use with the log documentation commands. 971 "The modifications keyword to use with the log documentation commands.
972A ':' is added to the keyword end. 972A ':' is added to the keyword end.
973Inserted by doc-header and used to position logs by doc-modification. 973Inserted by doc-header and used to position logs by doc-modification.
974If nil it will not be inserted." 974If nil it will not be inserted."
@@ -976,12 +976,12 @@ If nil it will not be inserted."
976 :type 'string) 976 :type 'string)
977 977
978(defcustom idlwave-doclib-start "^;+\\+" 978(defcustom idlwave-doclib-start "^;+\\+"
979 "*Regexp matching the start of a document library header." 979 "Regexp matching the start of a document library header."
980 :group 'idlwave-documentation 980 :group 'idlwave-documentation
981 :type 'regexp) 981 :type 'regexp)
982 982
983(defcustom idlwave-doclib-end "^;+-" 983(defcustom idlwave-doclib-end "^;+-"
984 "*Regexp matching the end of a document library header." 984 "Regexp matching the end of a document library header."
985 :group 'idlwave-documentation 985 :group 'idlwave-documentation
986 :type 'regexp) 986 :type 'regexp)
987 987
@@ -992,7 +992,7 @@ If nil it will not be inserted."
992 :group 'idlwave) 992 :group 'idlwave)
993 993
994(defcustom idlwave-shell-explicit-file-name "idl" 994(defcustom idlwave-shell-explicit-file-name "idl"
995 "*If non-nil, this is the command to run IDL. 995 "If non-nil, this is the command to run IDL.
996Should be an absolute file path or path relative to the current environment 996Should be an absolute file path or path relative to the current environment
997execution search path. If you want to specify command line switches 997execution search path. If you want to specify command line switches
998for the IDL program, use `idlwave-shell-command-line-options'. 998for the IDL program, use `idlwave-shell-command-line-options'.
@@ -1003,7 +1003,7 @@ it without compromising backwards-compatibility."
1003 :type 'string) 1003 :type 'string)
1004 1004
1005(defcustom idlwave-shell-command-line-options nil 1005(defcustom idlwave-shell-command-line-options nil
1006 "*A list of command line options for calling the IDL program. 1006 "A list of command line options for calling the IDL program.
1007Since IDL is executed directly without going through a shell like /bin/sh, 1007Since IDL is executed directly without going through a shell like /bin/sh,
1008this should be a list of strings like '(\"-rt=file\" \"-nw\") with a separate 1008this should be a list of strings like '(\"-rt=file\" \"-nw\") with a separate
1009string for each argument. But you may also give a single string which 1009string for each argument. But you may also give a single string which
@@ -1015,7 +1015,7 @@ split it for you."
1015 :group 'idlwave-external-programs) 1015 :group 'idlwave-external-programs)
1016 1016
1017(defcustom idlwave-help-application "idlhelp" 1017(defcustom idlwave-help-application "idlhelp"
1018 "*The external application providing reference help for programming. 1018 "The external application providing reference help for programming.
1019Obsolete, if the IDL Assistant is being used for help." 1019Obsolete, if the IDL Assistant is being used for help."
1020 :group 'idlwave-external-programs 1020 :group 'idlwave-external-programs
1021 :type 'string) 1021 :type 'string)
@@ -1040,7 +1040,7 @@ are `control', `meta', `super', `hyper', `alt', and `shift'."
1040 (const shift))) 1040 (const shift)))
1041 1041
1042(defcustom idlwave-shell-automatic-start nil 1042(defcustom idlwave-shell-automatic-start nil
1043 "*If non-nil attempt invoke `idlwave-shell' if not already running. 1043 "If non-nil attempt invoke `idlwave-shell' if not already running.
1044This is checked when an attempt to send a command to an 1044This is checked when an attempt to send a command to an
1045IDL process is made." 1045IDL process is made."
1046 :group 'idlwave-shell-general-setup 1046 :group 'idlwave-shell-general-setup
@@ -1054,7 +1054,7 @@ IDL process is made."
1054 :group 'idlwave) 1054 :group 'idlwave)
1055 1055
1056(defcustom idlwave-startup-message t 1056(defcustom idlwave-startup-message t
1057 "*Non-nil displays a startup message when `idlwave-mode' is first called." 1057 "Non-nil displays a startup message when `idlwave-mode' is first called."
1058 :group 'idlwave-misc 1058 :group 'idlwave-misc
1059 :type 'boolean) 1059 :type 'boolean)
1060 1060
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index 73e167d1587..cd6c8869d9f 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -72,7 +72,7 @@
72;;;###autoload 72;;;###autoload
73(defcustom inferior-lisp-filter-regexp 73(defcustom inferior-lisp-filter-regexp
74 (purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'") 74 (purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'")
75 "*What not to save on inferior Lisp's input history. 75 "What not to save on inferior Lisp's input history.
76Input matching this regexp is not saved on the input history in Inferior Lisp 76Input matching this regexp is not saved on the input history in Inferior Lisp
77mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword 77mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
78\(as in :a, :c, etc.)" 78\(as in :a, :c, etc.)"
@@ -139,13 +139,13 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
139 139
140;;;###autoload 140;;;###autoload
141(defcustom inferior-lisp-program (purecopy "lisp") 141(defcustom inferior-lisp-program (purecopy "lisp")
142 "*Program name for invoking an inferior Lisp in Inferior Lisp mode." 142 "Program name for invoking an inferior Lisp in Inferior Lisp mode."
143 :type 'string 143 :type 'string
144 :group 'inferior-lisp) 144 :group 'inferior-lisp)
145 145
146;;;###autoload 146;;;###autoload
147(defcustom inferior-lisp-load-command (purecopy "(load \"%s\")\n") 147(defcustom inferior-lisp-load-command (purecopy "(load \"%s\")\n")
148 "*Format-string for building a Lisp expression to load a file. 148 "Format-string for building a Lisp expression to load a file.
149This format string should use `%s' to substitute a file name 149This format string should use `%s' to substitute a file name
150and should result in a Lisp expression that will command the inferior Lisp 150and should result in a Lisp expression that will command the inferior Lisp
151to load that file. The default works acceptably on most Lisps. 151to load that file. The default works acceptably on most Lisps.
@@ -211,7 +211,7 @@ buffer with \\[set-variable].")
211 211
212;;;###autoload 212;;;###autoload
213(defvar inferior-lisp-mode-hook '() 213(defvar inferior-lisp-mode-hook '()
214 "*Hook for customizing Inferior Lisp mode.") 214 "Hook for customizing Inferior Lisp mode.")
215 215
216(put 'inferior-lisp-mode 'mode-class 'special) 216(put 'inferior-lisp-mode 'mode-class 'special)
217 217
@@ -453,7 +453,7 @@ This holds a cons cell of the form `(DIRECTORY . FILE)'
453describing the last `lisp-load-file' or `lisp-compile-file' command.") 453describing the last `lisp-load-file' or `lisp-compile-file' command.")
454 454
455(defcustom lisp-source-modes '(lisp-mode) 455(defcustom lisp-source-modes '(lisp-mode)
456 "*Used to determine if a buffer contains Lisp source code. 456 "Used to determine if a buffer contains Lisp source code.
457If it's loaded into a buffer that is in one of these major modes, it's 457If it's loaded into a buffer that is in one of these major modes, it's
458considered a Lisp source file by `lisp-load-file' and `lisp-compile-file'. 458considered a Lisp source file by `lisp-load-file' and `lisp-compile-file'.
459Used by these commands to determine defaults." 459Used by these commands to determine defaults."
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el
index b1884bd105b..20f91ce2d9e 100644
--- a/lisp/progmodes/m4-mode.el
+++ b/lisp/progmodes/m4-mode.el
@@ -80,7 +80,7 @@
80 "Default font-lock-keywords for `m4 mode'.") 80 "Default font-lock-keywords for `m4 mode'.")
81 81
82(defcustom m4-mode-hook nil 82(defcustom m4-mode-hook nil
83 "*Hook called by `m4-mode'." 83 "Hook called by `m4-mode'."
84 :type 'hook 84 :type 'hook
85 :group 'm4) 85 :group 'm4)
86 86
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el
index b4ca1ba665f..a173b11500e 100644
--- a/lisp/progmodes/make-mode.el
+++ b/lisp/progmodes/make-mode.el
@@ -129,18 +129,18 @@
129 :version "22.1") 129 :version "22.1")
130 130
131(defcustom makefile-browser-buffer-name "*Macros and Targets*" 131(defcustom makefile-browser-buffer-name "*Macros and Targets*"
132 "*Name of the macro- and target browser buffer." 132 "Name of the macro- and target browser buffer."
133 :type 'string 133 :type 'string
134 :group 'makefile) 134 :group 'makefile)
135 135
136(defcustom makefile-target-colon ":" 136(defcustom makefile-target-colon ":"
137 "*String to append to all target names inserted by `makefile-insert-target'. 137 "String to append to all target names inserted by `makefile-insert-target'.
138\":\" or \"::\" are common values." 138\":\" or \"::\" are common values."
139 :type 'string 139 :type 'string
140 :group 'makefile) 140 :group 'makefile)
141 141
142(defcustom makefile-macro-assign " = " 142(defcustom makefile-macro-assign " = "
143 "*String to append to all macro names inserted by `makefile-insert-macro'. 143 "String to append to all macro names inserted by `makefile-insert-macro'.
144The normal value should be \" = \", since this is what 144The normal value should be \" = \", since this is what
145standard make expects. However, newer makes such as dmake 145standard make expects. However, newer makes such as dmake
146allow a larger variety of different macro assignments, so you 146allow a larger variety of different macro assignments, so you
@@ -149,69 +149,69 @@ might prefer to use \" += \" or \" := \" ."
149 :group 'makefile) 149 :group 'makefile)
150 150
151(defcustom makefile-electric-keys nil 151(defcustom makefile-electric-keys nil
152 "*If non-nil, Makefile mode should install electric keybindings. 152 "If non-nil, Makefile mode should install electric keybindings.
153Default is nil." 153Default is nil."
154 :type 'boolean 154 :type 'boolean
155 :group 'makefile) 155 :group 'makefile)
156 156
157(defcustom makefile-use-curly-braces-for-macros-p nil 157(defcustom makefile-use-curly-braces-for-macros-p nil
158 "*Controls the style of generated macro references. 158 "Controls the style of generated macro references.
159Non-nil means macro references should use curly braces, like `${this}'. 159Non-nil means macro references should use curly braces, like `${this}'.
160nil means use parentheses, like `$(this)'." 160nil means use parentheses, like `$(this)'."
161 :type 'boolean 161 :type 'boolean
162 :group 'makefile) 162 :group 'makefile)
163 163
164(defcustom makefile-tab-after-target-colon t 164(defcustom makefile-tab-after-target-colon t
165 "*If non-nil, insert a TAB after a target colon. 165 "If non-nil, insert a TAB after a target colon.
166Otherwise, a space is inserted. 166Otherwise, a space is inserted.
167The default is t." 167The default is t."
168 :type 'boolean 168 :type 'boolean
169 :group 'makefile) 169 :group 'makefile)
170 170
171(defcustom makefile-browser-leftmost-column 10 171(defcustom makefile-browser-leftmost-column 10
172 "*Number of blanks to the left of the browser selection mark." 172 "Number of blanks to the left of the browser selection mark."
173 :type 'integer 173 :type 'integer
174 :group 'makefile) 174 :group 'makefile)
175 175
176(defcustom makefile-browser-cursor-column 10 176(defcustom makefile-browser-cursor-column 10
177 "*Column the cursor goes to when it moves up or down in the Makefile browser." 177 "Column the cursor goes to when it moves up or down in the Makefile browser."
178 :type 'integer 178 :type 'integer
179 :group 'makefile) 179 :group 'makefile)
180 180
181(defcustom makefile-backslash-column 48 181(defcustom makefile-backslash-column 48
182 "*Column in which `makefile-backslash-region' inserts backslashes." 182 "Column in which `makefile-backslash-region' inserts backslashes."
183 :type 'integer 183 :type 'integer
184 :group 'makefile) 184 :group 'makefile)
185 185
186(defcustom makefile-backslash-align t 186(defcustom makefile-backslash-align t
187 "*If non-nil, `makefile-backslash-region' will align backslashes." 187 "If non-nil, `makefile-backslash-region' will align backslashes."
188 :type 'boolean 188 :type 'boolean
189 :group 'makefile) 189 :group 'makefile)
190 190
191(defcustom makefile-browser-selected-mark "+ " 191(defcustom makefile-browser-selected-mark "+ "
192 "*String used to mark selected entries in the Makefile browser." 192 "String used to mark selected entries in the Makefile browser."
193 :type 'string 193 :type 'string
194 :group 'makefile) 194 :group 'makefile)
195 195
196(defcustom makefile-browser-unselected-mark " " 196(defcustom makefile-browser-unselected-mark " "
197 "*String used to mark unselected entries in the Makefile browser." 197 "String used to mark unselected entries in the Makefile browser."
198 :type 'string 198 :type 'string
199 :group 'makefile) 199 :group 'makefile)
200 200
201(defcustom makefile-browser-auto-advance-after-selection-p t 201(defcustom makefile-browser-auto-advance-after-selection-p t
202 "*If non-nil, cursor will move after item is selected in Makefile browser." 202 "If non-nil, cursor will move after item is selected in Makefile browser."
203 :type 'boolean 203 :type 'boolean
204 :group 'makefile) 204 :group 'makefile)
205 205
206(defcustom makefile-pickup-everything-picks-up-filenames-p nil 206(defcustom makefile-pickup-everything-picks-up-filenames-p nil
207 "*If non-nil, `makefile-pickup-everything' picks up filenames as targets. 207 "If non-nil, `makefile-pickup-everything' picks up filenames as targets.
208This means it calls `makefile-pickup-filenames-as-targets'. 208This means it calls `makefile-pickup-filenames-as-targets'.
209Otherwise filenames are omitted." 209Otherwise filenames are omitted."
210 :type 'boolean 210 :type 'boolean
211 :group 'makefile) 211 :group 'makefile)
212 212
213(defcustom makefile-cleanup-continuations nil 213(defcustom makefile-cleanup-continuations nil
214 "*If non-nil, automatically clean up continuation lines when saving. 214 "If non-nil, automatically clean up continuation lines when saving.
215A line is cleaned up by removing all whitespace following a trailing 215A line is cleaned up by removing all whitespace following a trailing
216backslash. This is done silently. 216backslash. This is done silently.
217IMPORTANT: Please note that enabling this option causes Makefile mode 217IMPORTANT: Please note that enabling this option causes Makefile mode
@@ -220,7 +220,7 @@ to MODIFY A FILE WITHOUT YOUR CONFIRMATION when \"it seems necessary\"."
220 :group 'makefile) 220 :group 'makefile)
221 221
222(defcustom makefile-mode-hook nil 222(defcustom makefile-mode-hook nil
223 "*Normal hook run by `makefile-mode'." 223 "Normal hook run by `makefile-mode'."
224 :type 'hook 224 :type 'hook
225 :group 'makefile) 225 :group 'makefile)
226 226
@@ -247,7 +247,7 @@ you enter a \".\" at the beginning of a line in `makefile-mode'."
247 247
248(defcustom makefile-runtime-macros-list 248(defcustom makefile-runtime-macros-list
249 '(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$")) 249 '(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$"))
250 "*List of macros that are resolved by make at runtime. 250 "List of macros that are resolved by make at runtime.
251If you insert a macro reference using `makefile-insert-macro-ref', the name 251If you insert a macro reference using `makefile-insert-macro-ref', the name
252of the macro is checked against this list. If it can be found its name will 252of the macro is checked against this list. If it can be found its name will
253not be enclosed in { } or ( )." 253not be enclosed in { } or ( )."
@@ -553,14 +553,14 @@ not be enclosed in { } or ( )."
553;; ------------------------------------------------------------ 553;; ------------------------------------------------------------
554 554
555(defcustom makefile-brave-make "make" 555(defcustom makefile-brave-make "make"
556 "*How to invoke make, for `makefile-query-targets'. 556 "How to invoke make, for `makefile-query-targets'.
557This should identify a `make' command that can handle the `-q' option." 557This should identify a `make' command that can handle the `-q' option."
558 :type 'string 558 :type 'string
559 :group 'makefile) 559 :group 'makefile)
560 560
561(defcustom makefile-query-one-target-method-function 561(defcustom makefile-query-one-target-method-function
562 'makefile-query-by-make-minus-q 562 'makefile-query-by-make-minus-q
563 "*Function to call to determine whether a make target is up to date. 563 "Function to call to determine whether a make target is up to date.
564The function must satisfy this calling convention: 564The function must satisfy this calling convention:
565 565
566* As its first argument, it must accept the name of the target to 566* As its first argument, it must accept the name of the target to
@@ -579,7 +579,7 @@ The function must satisfy this calling convention:
579 'makefile-query-one-target-method-function) 579 'makefile-query-one-target-method-function)
580 580
581(defcustom makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*" 581(defcustom makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*"
582 "*Name of the Up-to-date overview buffer." 582 "Name of the Up-to-date overview buffer."
583 :type 'string 583 :type 'string
584 :group 'makefile) 584 :group 'makefile)
585 585
diff --git a/lisp/progmodes/modula2.el b/lisp/progmodes/modula2.el
index 0c43a3ed354..d634efebe5b 100644
--- a/lisp/progmodes/modula2.el
+++ b/lisp/progmodes/modula2.el
@@ -65,7 +65,7 @@
65 :group 'modula2) 65 :group 'modula2)
66 66
67(defcustom m2-end-comment-column 75 67(defcustom m2-end-comment-column 75
68 "*Column for aligning the end of a comment, in Modula-2." 68 "Column for aligning the end of a comment, in Modula-2."
69 :type 'integer 69 :type 'integer
70 :group 'modula2) 70 :group 'modula2)
71 71
@@ -104,7 +104,7 @@
104 "Keymap used in Modula-2 mode.") 104 "Keymap used in Modula-2 mode.")
105 105
106(defcustom m2-indent 5 106(defcustom m2-indent 5
107 "*This variable gives the indentation in Modula-2-Mode." 107 "This variable gives the indentation in Modula-2-Mode."
108 :type 'integer 108 :type 'integer
109 :group 'modula2) 109 :group 'modula2)
110(put 'm2-indent 'safe-local-variable 110(put 'm2-indent 'safe-local-variable
diff --git a/lisp/progmodes/octave-inf.el b/lisp/progmodes/octave-inf.el
index 2cae41889bd..f77e24e665a 100644
--- a/lisp/progmodes/octave-inf.el
+++ b/lisp/progmodes/octave-inf.el
@@ -79,7 +79,7 @@ mode, set this to (\"-q\" \"--traditional\")."
79 "Syntax table in use in inferior-octave-mode buffers.") 79 "Syntax table in use in inferior-octave-mode buffers.")
80 80
81(defcustom inferior-octave-mode-hook nil 81(defcustom inferior-octave-mode-hook nil
82 "*Hook to be run when Inferior Octave mode is started." 82 "Hook to be run when Inferior Octave mode is started."
83 :type 'hook 83 :type 'hook
84 :group 'octave-inferior) 84 :group 'octave-inferior)
85 85
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 95f1adec40e..8f7f313753c 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -183,42 +183,42 @@
183(put 'pascal-mode 'font-lock-defaults '(pascal-font-lock-keywords nil t)) 183(put 'pascal-mode 'font-lock-defaults '(pascal-font-lock-keywords nil t))
184 184
185(defcustom pascal-indent-level 3 185(defcustom pascal-indent-level 3
186 "*Indentation of Pascal statements with respect to containing block." 186 "Indentation of Pascal statements with respect to containing block."
187 :type 'integer 187 :type 'integer
188 :group 'pascal) 188 :group 'pascal)
189 189
190(defcustom pascal-case-indent 2 190(defcustom pascal-case-indent 2
191 "*Indentation for case statements." 191 "Indentation for case statements."
192 :type 'integer 192 :type 'integer
193 :group 'pascal) 193 :group 'pascal)
194 194
195(defcustom pascal-auto-newline nil 195(defcustom pascal-auto-newline nil
196 "*Non-nil means automatically insert newlines in certain cases. 196 "Non-nil means automatically insert newlines in certain cases.
197These include after semicolons and after the punctuation mark after an `end'." 197These include after semicolons and after the punctuation mark after an `end'."
198 :type 'boolean 198 :type 'boolean
199 :group 'pascal) 199 :group 'pascal)
200 200
201(defcustom pascal-indent-nested-functions t 201(defcustom pascal-indent-nested-functions t
202 "*Non-nil means nested functions are indented." 202 "Non-nil means nested functions are indented."
203 :type 'boolean 203 :type 'boolean
204 :group 'pascal) 204 :group 'pascal)
205 205
206(defcustom pascal-tab-always-indent t 206(defcustom pascal-tab-always-indent t
207 "*Non-nil means TAB in Pascal mode should always reindent the current line. 207 "Non-nil means TAB in Pascal mode should always reindent the current line.
208If this is nil, TAB inserts a tab if it is at the end of the line 208If this is nil, TAB inserts a tab if it is at the end of the line
209and follows non-whitespace text." 209and follows non-whitespace text."
210 :type 'boolean 210 :type 'boolean
211 :group 'pascal) 211 :group 'pascal)
212 212
213(defcustom pascal-auto-endcomments t 213(defcustom pascal-auto-endcomments t
214 "*Non-nil means automatically insert comments after certain `end's. 214 "Non-nil means automatically insert comments after certain `end's.
215Specifically, this is done after the ends of cases statements and functions. 215Specifically, this is done after the ends of cases statements and functions.
216The name of the function or case is included between the braces." 216The name of the function or case is included between the braces."
217 :type 'boolean 217 :type 'boolean
218 :group 'pascal) 218 :group 'pascal)
219 219
220(defcustom pascal-auto-lineup '(all) 220(defcustom pascal-auto-lineup '(all)
221 "*List of contexts where auto lineup of :'s or ='s should be done. 221 "List of contexts where auto lineup of :'s or ='s should be done.
222Elements can be of type: 'paramlist', 'declaration' or 'case', which will 222Elements can be of type: 'paramlist', 'declaration' or 'case', which will
223do auto lineup in parameterlist, declarations or case-statements 223do auto lineup in parameterlist, declarations or case-statements
224respectively. The word 'all' will do all lineups. '(case paramlist) for 224respectively. The word 'all' will do all lineups. '(case paramlist) for
@@ -232,7 +232,7 @@ will do all lineups."
232 :group 'pascal) 232 :group 'pascal)
233 233
234(defvar pascal-toggle-completions nil 234(defvar pascal-toggle-completions nil
235 "*Non-nil meant \\<pascal-mode-map>\\[pascal-complete-word] would try all possible completions one by one. 235 "Non-nil meant \\<pascal-mode-map>\\[pascal-complete-word] would try all possible completions one by one.
236Repeated use of \\[pascal-complete-word] would show you all of them. 236Repeated use of \\[pascal-complete-word] would show you all of them.
237Normally, when there is more than one possible completion, 237Normally, when there is more than one possible completion,
238it displays a list of all possible completions.") 238it displays a list of all possible completions.")
@@ -241,7 +241,7 @@ it displays a list of all possible completions.")
241 241
242(defcustom pascal-type-keywords 242(defcustom pascal-type-keywords
243 '("array" "file" "packed" "char" "integer" "real" "string" "record") 243 '("array" "file" "packed" "char" "integer" "real" "string" "record")
244 "*Keywords for types used when completing a word in a declaration or parmlist. 244 "Keywords for types used when completing a word in a declaration or parmlist.
245These include integer, real, char, etc. 245These include integer, real, char, etc.
246The types defined within the Pascal program 246The types defined within the Pascal program
247are handled in another way, and should not be added to this list." 247are handled in another way, and should not be added to this list."
@@ -251,7 +251,7 @@ are handled in another way, and should not be added to this list."
251(defcustom pascal-start-keywords 251(defcustom pascal-start-keywords
252 '("begin" "end" "function" "procedure" "repeat" "until" "while" 252 '("begin" "end" "function" "procedure" "repeat" "until" "while"
253 "read" "readln" "reset" "rewrite" "write" "writeln") 253 "read" "readln" "reset" "rewrite" "write" "writeln")
254 "*Keywords to complete when standing at the first word of a statement. 254 "Keywords to complete when standing at the first word of a statement.
255These are keywords such as begin, repeat, until, readln. 255These are keywords such as begin, repeat, until, readln.
256The procedures and variables defined within the Pascal program 256The procedures and variables defined within the Pascal program
257are handled in another way, and should not be added to this list." 257are handled in another way, and should not be added to this list."
@@ -260,7 +260,7 @@ are handled in another way, and should not be added to this list."
260 260
261(defcustom pascal-separator-keywords 261(defcustom pascal-separator-keywords
262 '("downto" "else" "mod" "div" "then") 262 '("downto" "else" "mod" "div" "then")
263 "*Keywords to complete when NOT standing at the first word of a statement. 263 "Keywords to complete when NOT standing at the first word of a statement.
264These are keywords such as downto, else, mod, then. 264These are keywords such as downto, else, mod, then.
265Variables and function names defined within the Pascal program 265Variables and function names defined within the Pascal program
266are handled in another way, and should not be added to this list." 266are handled in another way, and should not be added to this list."
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index e7afd0e0e67..aab5f8f65a4 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -378,7 +378,7 @@ The expansion is entirely correct because it uses the C preprocessor."
378 ;; we are: we have to go back to the beginning of this 378 ;; we are: we have to go back to the beginning of this
379 ;; "string" and count from there. 379 ;; "string" and count from there.
380 (condition-case nil 380 (condition-case nil
381 (progn 381 (progn
382 ;; Start after the first char since it doesn't have 382 ;; Start after the first char since it doesn't have
383 ;; paren-syntax (an alternative would be to let-bind 383 ;; paren-syntax (an alternative would be to let-bind
384 ;; parse-sexp-lookup-properties). 384 ;; parse-sexp-lookup-properties).
@@ -388,7 +388,11 @@ The expansion is entirely correct because it uses the C preprocessor."
388 ;; In case of error, make sure we don't move backward. 388 ;; In case of error, make sure we don't move backward.
389 (scan-error (goto-char startpos) nil)) 389 (scan-error (goto-char startpos) nil))
390 (not (or (nth 8 (parse-partial-sexp 390 (not (or (nth 8 (parse-partial-sexp
391 (point) limit nil nil state 'syntax-table)) 391 ;; Since we don't know if point is within
392 ;; the first or the scond arg, we have to
393 ;; start from the beginning.
394 (if twoargs (1+ (nth 8 state)) (point))
395 limit nil nil state 'syntax-table))
392 ;; If we have a self-paired opener and a twoargs 396 ;; If we have a self-paired opener and a twoargs
393 ;; command, the form is s/../../ so we have to skip 397 ;; command, the form is s/../../ so we have to skip
394 ;; a second time. 398 ;; a second time.
@@ -411,17 +415,17 @@ The expansion is entirely correct because it uses the C preprocessor."
411 ;; s{...}{...}) we're right after the first arg, so we still have to 415 ;; s{...}{...}) we're right after the first arg, so we still have to
412 ;; handle the second part. 416 ;; handle the second part.
413 (when (and twoargs close) 417 (when (and twoargs close)
414 ;; Skip whitespace and make sure that font-lock will 418 ;; Skip whitespace and make sure that font-lock will
415 ;; refontify the second part in the proper context. 419 ;; refontify the second part in the proper context.
416 (put-text-property 420 (put-text-property
417 (point) (progn (forward-comment (point-max)) (point)) 421 (point) (progn (forward-comment (point-max)) (point))
418 'syntax-multiline t) 422 'syntax-multiline t)
419 ;; 423 ;;
420 (when (< (point) limit) 424 (when (< (point) limit)
421 (put-text-property (point) (1+ (point)) 425 (put-text-property (point) (1+ (point))
422 'syntax-table 426 'syntax-table
423 (if (assoc (char-after) 427 (if (assoc (char-after)
424 perl-quote-like-pairs) 428 perl-quote-like-pairs)
425 ;; Put an `e' in the cdr to mark this 429 ;; Put an `e' in the cdr to mark this
426 ;; char as "second arg starter". 430 ;; char as "second arg starter".
427 (string-to-syntax "|e") 431 (string-to-syntax "|e")
@@ -464,7 +468,7 @@ The expansion is entirely correct because it uses the C preprocessor."
464 (t (funcall (default-value 'font-lock-syntactic-face-function) state)))) 468 (t (funcall (default-value 'font-lock-syntactic-face-function) state))))
465 469
466(defcustom perl-indent-level 4 470(defcustom perl-indent-level 4
467 "*Indentation of Perl statements with respect to containing block." 471 "Indentation of Perl statements with respect to containing block."
468 :type 'integer 472 :type 'integer
469 :group 'perl) 473 :group 'perl)
470 474
@@ -481,28 +485,28 @@ The expansion is entirely correct because it uses the C preprocessor."
481;;;###autoload(put 'perl-label-offset 'safe-local-variable 'integerp) 485;;;###autoload(put 'perl-label-offset 'safe-local-variable 'integerp)
482 486
483(defcustom perl-continued-statement-offset 4 487(defcustom perl-continued-statement-offset 4
484 "*Extra indent for lines not starting new statements." 488 "Extra indent for lines not starting new statements."
485 :type 'integer 489 :type 'integer
486 :group 'perl) 490 :group 'perl)
487(defcustom perl-continued-brace-offset -4 491(defcustom perl-continued-brace-offset -4
488 "*Extra indent for substatements that start with open-braces. 492 "Extra indent for substatements that start with open-braces.
489This is in addition to `perl-continued-statement-offset'." 493This is in addition to `perl-continued-statement-offset'."
490 :type 'integer 494 :type 'integer
491 :group 'perl) 495 :group 'perl)
492(defcustom perl-brace-offset 0 496(defcustom perl-brace-offset 0
493 "*Extra indentation for braces, compared with other text in same context." 497 "Extra indentation for braces, compared with other text in same context."
494 :type 'integer 498 :type 'integer
495 :group 'perl) 499 :group 'perl)
496(defcustom perl-brace-imaginary-offset 0 500(defcustom perl-brace-imaginary-offset 0
497 "*Imagined indentation of an open brace that actually follows a statement." 501 "Imagined indentation of an open brace that actually follows a statement."
498 :type 'integer 502 :type 'integer
499 :group 'perl) 503 :group 'perl)
500(defcustom perl-label-offset -2 504(defcustom perl-label-offset -2
501 "*Offset of Perl label lines relative to usual indentation." 505 "Offset of Perl label lines relative to usual indentation."
502 :type 'integer 506 :type 'integer
503 :group 'perl) 507 :group 'perl)
504(defcustom perl-indent-continued-arguments nil 508(defcustom perl-indent-continued-arguments nil
505 "*If non-nil offset of argument lines relative to usual indentation. 509 "If non-nil offset of argument lines relative to usual indentation.
506If nil, continued arguments are aligned with the first argument." 510If nil, continued arguments are aligned with the first argument."
507 :type '(choice integer (const nil)) 511 :type '(choice integer (const nil))
508 :group 'perl) 512 :group 'perl)
@@ -517,7 +521,7 @@ nonwhite character on the line."
517;; I changed the default to nil for consistency with general Emacs 521;; I changed the default to nil for consistency with general Emacs
518;; conventions -- rms. 522;; conventions -- rms.
519(defcustom perl-tab-to-comment nil 523(defcustom perl-tab-to-comment nil
520 "*Non-nil means TAB moves to eol or makes a comment in some cases. 524 "Non-nil means TAB moves to eol or makes a comment in some cases.
521For lines which don't need indenting, TAB either indents an 525For lines which don't need indenting, TAB either indents an
522existing comment, moves to end-of-line, or if at end-of-line already, 526existing comment, moves to end-of-line, or if at end-of-line already,
523create a new comment." 527create a new comment."
@@ -525,7 +529,7 @@ create a new comment."
525 :group 'perl) 529 :group 'perl)
526 530
527(defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]" 531(defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]"
528 "*Lines starting with this regular expression are not auto-indented." 532 "Lines starting with this regular expression are not auto-indented."
529 :type 'regexp 533 :type 'regexp
530 :group 'perl) 534 :group 'perl)
531 535
@@ -752,6 +756,7 @@ changed by, or (parse-state) if line starts in a quoted string."
752 (setq shift-amt 756 (setq shift-amt
753 (cond ((eq (char-after bof) ?=) 0) 757 (cond ((eq (char-after bof) ?=) 0)
754 ((listp (setq indent (perl-calculate-indent bof))) indent) 758 ((listp (setq indent (perl-calculate-indent bof))) indent)
759 ((eq 'noindent indent) indent)
755 ((looking-at (or nochange perl-nochange)) 0) 760 ((looking-at (or nochange perl-nochange)) 0)
756 (t 761 (t
757 (skip-chars-forward " \t\f") 762 (skip-chars-forward " \t\f")
@@ -845,7 +850,7 @@ Optional argument PARSE-START should be the position of `beginning-of-defun'."
845 ;; following_quotep minimum_paren-depth_this_scan) 850 ;; following_quotep minimum_paren-depth_this_scan)
846 ;; Parsing stops if depth in parentheses becomes equal to third arg. 851 ;; Parsing stops if depth in parentheses becomes equal to third arg.
847 (setq containing-sexp (nth 1 state))) 852 (setq containing-sexp (nth 1 state)))
848 (cond ((nth 3 state) state) ; In a quoted string? 853 (cond ((nth 3 state) 'noindent) ; In a quoted string?
849 ((null containing-sexp) ; Line is at top level. 854 ((null containing-sexp) ; Line is at top level.
850 (skip-chars-forward " \t\f") 855 (skip-chars-forward " \t\f")
851 (if (= (following-char) ?{) 856 (if (= (following-char) ?{)
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index a8ee6f4bff4..74c8c31b425 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -3621,12 +3621,12 @@ a new comment is created."
3621 (indent-for-comment))) 3621 (indent-for-comment)))
3622 3622
3623(defun prolog-indent-predicate () 3623(defun prolog-indent-predicate ()
3624 "*Indent the current predicate." 3624 "Indent the current predicate."
3625 (interactive) 3625 (interactive)
3626 (indent-region (prolog-pred-start) (prolog-pred-end) nil)) 3626 (indent-region (prolog-pred-start) (prolog-pred-end) nil))
3627 3627
3628(defun prolog-indent-buffer () 3628(defun prolog-indent-buffer ()
3629 "*Indent the entire buffer." 3629 "Indent the entire buffer."
3630 (interactive) 3630 (interactive)
3631 (indent-region (point-min) (point-max) nil)) 3631 (indent-region (point-min) (point-max) nil))
3632 3632
diff --git a/lisp/progmodes/ps-mode.el b/lisp/progmodes/ps-mode.el
index e85fa0476b0..bf52eff8f9a 100644
--- a/lisp/progmodes/ps-mode.el
+++ b/lisp/progmodes/ps-mode.el
@@ -60,17 +60,17 @@
60;; User variables. 60;; User variables.
61 61
62(defcustom ps-mode-auto-indent t 62(defcustom ps-mode-auto-indent t
63 "*Should we use autoindent?" 63 "Should we use autoindent?"
64 :group 'PostScript-edit 64 :group 'PostScript-edit
65 :type 'boolean) 65 :type 'boolean)
66 66
67(defcustom ps-mode-tab 4 67(defcustom ps-mode-tab 4
68 "*Number of spaces to use when indenting." 68 "Number of spaces to use when indenting."
69 :group 'PostScript-edit 69 :group 'PostScript-edit
70 :type 'integer) 70 :type 'integer)
71 71
72(defcustom ps-mode-paper-size '(595 842) 72(defcustom ps-mode-paper-size '(595 842)
73 "*Default paper size. 73 "Default paper size.
74 74
75When inserting an EPSF template these values are used 75When inserting an EPSF template these values are used
76to set the boundingbox to include the whole page. 76to set the boundingbox to include the whole page.
@@ -117,12 +117,12 @@ When the figure is finished these values should be replaced."
117 (lpr-command (if (memq system-type '(usg-unix-v hpux irix)) 117 (lpr-command (if (memq system-type '(usg-unix-v hpux irix))
118 "lp" "lpr"))) 118 "lp" "lpr")))
119 (lpr-buffer))) 119 (lpr-buffer)))
120 "*Lisp function to print current buffer as PostScript." 120 "Lisp function to print current buffer as PostScript."
121 :group 'PostScript-edit 121 :group 'PostScript-edit
122 :type 'function) 122 :type 'function)
123 123
124(defcustom ps-run-prompt "\\(GS\\(<[0-9]+\\)?>\\)+" 124(defcustom ps-run-prompt "\\(GS\\(<[0-9]+\\)?>\\)+"
125 "*Regexp to match prompt in interactive PostScript." 125 "Regexp to match prompt in interactive PostScript."
126 :group 'PostScript-interaction 126 :group 'PostScript-interaction
127 :type 'regexp) 127 :type 'regexp)
128 128
@@ -139,7 +139,7 @@ When the figure is finished these values should be replaced."
139 ("^\\(Current file position is\\) \\([0-9]+\\)" 139 ("^\\(Current file position is\\) \\([0-9]+\\)"
140 (1 font-lock-comment-face nil nil) 140 (1 font-lock-comment-face nil nil)
141 (2 font-lock-warning-face nil nil)))) 141 (2 font-lock-warning-face nil nil))))
142 "*Medium level highlighting of messages from the PostScript interpreter. 142 "Medium level highlighting of messages from the PostScript interpreter.
143 143
144See documentation on font-lock for details." 144See documentation on font-lock for details."
145 :group 'PostScript-interaction 145 :group 'PostScript-interaction
@@ -155,17 +155,17 @@ See documentation on font-lock for details."
155 (boolean :tag "Laxmatch" :value t)))))) 155 (boolean :tag "Laxmatch" :value t))))))
156 156
157(defcustom ps-run-x '("gs" "-r72" "-sPAPERSIZE=a4") 157(defcustom ps-run-x '("gs" "-r72" "-sPAPERSIZE=a4")
158 "*Command as list to run PostScript with graphic display." 158 "Command as list to run PostScript with graphic display."
159 :group 'PostScript-interaction 159 :group 'PostScript-interaction
160 :type '(repeat string)) 160 :type '(repeat string))
161 161
162(defcustom ps-run-dumb '("gs" "-dNODISPLAY") 162(defcustom ps-run-dumb '("gs" "-dNODISPLAY")
163 "*Command as list to run PostScript without graphic display." 163 "Command as list to run PostScript without graphic display."
164 :group 'PostScript-interaction 164 :group 'PostScript-interaction
165 :type '(repeat string)) 165 :type '(repeat string))
166 166
167(defcustom ps-run-init nil 167(defcustom ps-run-init nil
168 "*String of commands to send to PostScript to start interactive. 168 "String of commands to send to PostScript to start interactive.
169 169
170Example: \"executive\" 170Example: \"executive\"
171 171
@@ -174,13 +174,13 @@ You won't need to set this option for Ghostscript."
174 :type '(choice (const nil) string)) 174 :type '(choice (const nil) string))
175 175
176(defcustom ps-run-error-line-numbers nil 176(defcustom ps-run-error-line-numbers nil
177 "*What values are used by the PostScript interpreter in error messages?" 177 "What values are used by the PostScript interpreter in error messages?"
178 :group 'PostScript-interaction 178 :group 'PostScript-interaction
179 :type '(choice (const :tag "line numbers" t) 179 :type '(choice (const :tag "line numbers" t)
180 (const :tag "byte counts" nil))) 180 (const :tag "byte counts" nil)))
181 181
182(defcustom ps-run-tmp-dir nil 182(defcustom ps-run-tmp-dir nil
183 "*Name of directory to place temporary file. 183 "Name of directory to place temporary file.
184If nil, use `temporary-file-directory'." 184If nil, use `temporary-file-directory'."
185 :group 'PostScript-interaction 185 :group 'PostScript-interaction
186 :type '(choice (const nil) directory)) 186 :type '(choice (const nil) directory))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 3ef872d26eb..f7566c31b41 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -494,7 +494,7 @@ statement."
494 494
495 495
496(defcustom python-pdbtrack-do-tracking-p t 496(defcustom python-pdbtrack-do-tracking-p t
497 "*Controls whether the pdbtrack feature is enabled or not. 497 "Controls whether the pdbtrack feature is enabled or not.
498 498
499When non-nil, pdbtrack is enabled in all comint-based buffers, 499When non-nil, pdbtrack is enabled in all comint-based buffers,
500e.g. shell interaction buffers and the *Python* buffer. 500e.g. shell interaction buffers and the *Python* buffer.
@@ -509,7 +509,7 @@ having to restart the program."
509(make-variable-buffer-local 'python-pdbtrack-do-tracking-p) 509(make-variable-buffer-local 'python-pdbtrack-do-tracking-p)
510 510
511(defcustom python-pdbtrack-minor-mode-string " PDB" 511(defcustom python-pdbtrack-minor-mode-string " PDB"
512 "*Minor-mode sign to be displayed when pdbtrack is active." 512 "Minor-mode sign to be displayed when pdbtrack is active."
513 :type 'string 513 :type 'string
514 :group 'python) 514 :group 'python)
515 515
@@ -1288,7 +1288,7 @@ modified by the user. Additional arguments are added when the command
1288is used by `run-python' et al.") 1288is used by `run-python' et al.")
1289 1289
1290(defvar python-buffer nil 1290(defvar python-buffer nil
1291 "*The current Python process buffer. 1291 "The current Python process buffer.
1292 1292
1293Commands that send text from source buffers to Python processes have 1293Commands that send text from source buffers to Python processes have
1294to choose a process to send to. This is determined by buffer-local 1294to choose a process to send to. This is determined by buffer-local
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index bf264972940..66aa256f947 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -96,7 +96,7 @@
96 (regexp-opt (append ruby-modifier-beg-keywords ruby-block-op-keywords)) 96 (regexp-opt (append ruby-modifier-beg-keywords ruby-block-op-keywords))
97 "Regexp to match hanging block modifiers.") 97 "Regexp to match hanging block modifiers.")
98 98
99(defconst ruby-block-end-re "\\<end\\>") 99(defconst ruby-block-end-re "\\_<end\\_>")
100 100
101(eval-and-compile 101(eval-and-compile
102 (defconst ruby-here-doc-beg-re 102 (defconst ruby-here-doc-beg-re
@@ -115,9 +115,9 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
115 (match-string 6))))) 115 (match-string 6)))))
116 116
117(defconst ruby-delimiter 117(defconst ruby-delimiter
118 (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\<\\(" 118 (concat "[?$/%(){}#\"'`.:]\\|<<\\|\\[\\|\\]\\|\\_<\\("
119 ruby-block-beg-re 119 ruby-block-beg-re
120 "\\)\\>\\|" ruby-block-end-re 120 "\\)\\_>\\|" ruby-block-end-re
121 "\\|^=begin\\|" ruby-here-doc-beg-re)) 121 "\\|^=begin\\|" ruby-here-doc-beg-re))
122 122
123(defconst ruby-negative 123(defconst ruby-negative
@@ -166,6 +166,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'."
166 (modify-syntax-entry ?$ "." table) 166 (modify-syntax-entry ?$ "." table)
167 (modify-syntax-entry ?? "_" table) 167 (modify-syntax-entry ?? "_" table)
168 (modify-syntax-entry ?_ "_" table) 168 (modify-syntax-entry ?_ "_" table)
169 (modify-syntax-entry ?: "_" table)
169 (modify-syntax-entry ?< "." table) 170 (modify-syntax-entry ?< "." table)
170 (modify-syntax-entry ?> "." table) 171 (modify-syntax-entry ?> "." table)
171 (modify-syntax-entry ?& "." table) 172 (modify-syntax-entry ?& "." table)
@@ -565,7 +566,7 @@ and `\\' when preceded by `?'."
565 (setq nest (cons (cons nil pnt) nest)) 566 (setq nest (cons (cons nil pnt) nest))
566 (setq depth (1+ depth)))) 567 (setq depth (1+ depth))))
567 (goto-char (match-end 0))) 568 (goto-char (match-end 0)))
568 ((looking-at (concat "\\<\\(" ruby-block-beg-re "\\)\\>")) 569 ((looking-at (concat "\\_<\\(" ruby-block-beg-re "\\)\\_>"))
569 (and 570 (and
570 (save-match-data 571 (save-match-data
571 (or (not (looking-at (concat "do" ruby-keyword-end-re))) 572 (or (not (looking-at (concat "do" ruby-keyword-end-re)))
@@ -864,7 +865,7 @@ move backward."
864 ;; It seems like it should move to the line where indentation should deepen, 865 ;; It seems like it should move to the line where indentation should deepen,
865 ;; but ruby-indent-beg-re only accounts for whitespace before class, module and def, 866 ;; but ruby-indent-beg-re only accounts for whitespace before class, module and def,
866 ;; so this will only match other block beginners at the beginning of the line. 867 ;; so this will only match other block beginners at the beginning of the line.
867 (and (re-search-backward (concat "^\\(" ruby-indent-beg-re "\\)\\b") nil 'move) 868 (and (re-search-backward (concat "^\\(" ruby-indent-beg-re "\\)\\_>") nil 'move)
868 (beginning-of-line))) 869 (beginning-of-line)))
869 870
870(defun ruby-move-to-block (n) 871(defun ruby-move-to-block (n)
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el
index 82a4985015f..1fa75f239eb 100644
--- a/lisp/progmodes/scheme.el
+++ b/lisp/progmodes/scheme.el
@@ -229,7 +229,7 @@ Set this to nil if you normally use another dialect."
229(defcustom dsssl-sgml-declaration 229(defcustom dsssl-sgml-declaration
230 "<!DOCTYPE style-sheet PUBLIC \"-//James Clark//DTD DSSSL Style Sheet//EN\"> 230 "<!DOCTYPE style-sheet PUBLIC \"-//James Clark//DTD DSSSL Style Sheet//EN\">
231" 231"
232 "*An SGML declaration for the DSSSL file. 232 "An SGML declaration for the DSSSL file.
233If it is defined as a string this will be inserted into an empty buffer 233If it is defined as a string this will be inserted into an empty buffer
234which is in `dsssl-mode'. It is typically James Clark's style-sheet 234which is in `dsssl-mode'. It is typically James Clark's style-sheet
235doctype, as required for Jade." 235doctype, as required for Jade."
@@ -251,7 +251,7 @@ See `run-hooks'."
251 251
252;; This is shared by cmuscheme and xscheme. 252;; This is shared by cmuscheme and xscheme.
253(defcustom scheme-program-name "scheme" 253(defcustom scheme-program-name "scheme"
254 "*Program invoked by the `run-scheme' command." 254 "Program invoked by the `run-scheme' command."
255 :type 'string 255 :type 'string
256 :group 'scheme) 256 :group 'scheme)
257 257
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 48b19524b8c..f60ce185bc7 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1410,7 +1410,7 @@ This list is used when switching between buffer-local and global
1410values of variables, and for the commands using indentation styles.") 1410values of variables, and for the commands using indentation styles.")
1411 1411
1412(defvar sh-make-vars-local t 1412(defvar sh-make-vars-local t
1413 "*Controls whether indentation variables are local to the buffer. 1413 "Controls whether indentation variables are local to the buffer.
1414If non-nil, indentation variables are made local initially. 1414If non-nil, indentation variables are made local initially.
1415If nil, you can later make the variables local by invoking 1415If nil, you can later make the variables local by invoking
1416command `sh-make-vars-local'. 1416command `sh-make-vars-local'.
@@ -1876,7 +1876,7 @@ region, clear header."
1876 1876
1877;; Indentation stuff. 1877;; Indentation stuff.
1878(defun sh-must-support-indent () 1878(defun sh-must-support-indent ()
1879 "*Signal an error if the shell type for this buffer is not supported. 1879 "Signal an error if the shell type for this buffer is not supported.
1880Also, the buffer must be in Shell-script mode." 1880Also, the buffer must be in Shell-script mode."
1881 (unless sh-indent-supported-here 1881 (unless sh-indent-supported-here
1882 (error "This buffer's shell does not support indentation through Emacs"))) 1882 (error "This buffer's shell does not support indentation through Emacs")))
@@ -2885,7 +2885,7 @@ so that `occur-next' and `occur-prev' will work."
2885 2885
2886;; Is this really worth having? 2886;; Is this really worth having?
2887(defvar sh-learned-buffer-hook nil 2887(defvar sh-learned-buffer-hook nil
2888 "*An abnormal hook, called with an alist of learned variables.") 2888 "An abnormal hook, called with an alist of learned variables.")
2889;; Example of how to use sh-learned-buffer-hook 2889;; Example of how to use sh-learned-buffer-hook
2890;; 2890;;
2891;; (defun what-i-learned (list) 2891;; (defun what-i-learned (list)
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index 7536126e8f1..2adb34c7824 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -48,7 +48,7 @@ Otherwise TAB indents only when point is within
48the run of whitespace at the beginning of the line.") 48the run of whitespace at the beginning of the line.")
49 49
50(defcustom simula-tab-always-indent simula-tab-always-indent-default 50(defcustom simula-tab-always-indent simula-tab-always-indent-default
51 "*Non-nil means TAB in SIMULA mode should always reindent the current line. 51 "Non-nil means TAB in SIMULA mode should always reindent the current line.
52Otherwise TAB indents only when point is within 52Otherwise TAB indents only when point is within
53the run of whitespace at the beginning of the line." 53the run of whitespace at the beginning of the line."
54 :type 'boolean 54 :type 'boolean
@@ -58,7 +58,7 @@ the run of whitespace at the beginning of the line."
58 "Indentation of SIMULA statements with respect to containing block.") 58 "Indentation of SIMULA statements with respect to containing block.")
59 59
60(defcustom simula-indent-level simula-indent-level-default 60(defcustom simula-indent-level simula-indent-level-default
61 "*Indentation of SIMULA statements with respect to containing block." 61 "Indentation of SIMULA statements with respect to containing block."
62 :type 'integer 62 :type 'integer
63 :group 'simula) 63 :group 'simula)
64 64
@@ -67,7 +67,7 @@ the run of whitespace at the beginning of the line."
67 "Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.") 67 "Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.")
68 68
69(defcustom simula-substatement-offset simula-substatement-offset-default 69(defcustom simula-substatement-offset simula-substatement-offset-default
70 "*Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE." 70 "Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE."
71 :type 'integer 71 :type 'integer
72 :group 'simula) 72 :group 'simula)
73 73
@@ -79,7 +79,7 @@ the previous line of the statement.")
79 79
80(defcustom simula-continued-statement-offset 80(defcustom simula-continued-statement-offset
81 simula-continued-statement-offset-default 81 simula-continued-statement-offset-default
82 "*Extra indentation for lines not starting a statement or substatement. 82 "Extra indentation for lines not starting a statement or substatement.
83If value is a list, each line in a multipleline continued statement 83If value is a list, each line in a multipleline continued statement
84will have the car of the list extra indentation with respect to 84will have the car of the list extra indentation with respect to
85the previous line of the statement." 85the previous line of the statement."
@@ -90,7 +90,7 @@ the previous line of the statement."
90 "Offset of SIMULA label lines relative to usual indentation.") 90 "Offset of SIMULA label lines relative to usual indentation.")
91 91
92(defcustom simula-label-offset simula-label-offset-default 92(defcustom simula-label-offset simula-label-offset-default
93 "*Offset of SIMULA label lines relative to usual indentation." 93 "Offset of SIMULA label lines relative to usual indentation."
94 :type 'integer 94 :type 'integer
95 :group 'simula) 95 :group 'simula)
96 96
@@ -100,7 +100,7 @@ Value is a cons cell, the car is extra THEN indentation and the cdr
100extra ELSE indentation. IF after ELSE is indented as the starting IF.") 100extra ELSE indentation. IF after ELSE is indented as the starting IF.")
101 101
102(defcustom simula-if-indent simula-if-indent-default 102(defcustom simula-if-indent simula-if-indent-default
103 "*Extra indentation of THEN and ELSE with respect to the starting IF. 103 "Extra indentation of THEN and ELSE with respect to the starting IF.
104Value is a cons cell, the car is extra THEN indentation and the cdr 104Value is a cons cell, the car is extra THEN indentation and the cdr
105extra ELSE indentation. IF after ELSE is indented as the starting IF." 105extra ELSE indentation. IF after ELSE is indented as the starting IF."
106 :type '(cons integer integer) 106 :type '(cons integer integer)
@@ -112,7 +112,7 @@ Value is a cons cell, the car is extra WHEN indentation
112and the cdr extra OTHERWISE indentation.") 112and the cdr extra OTHERWISE indentation.")
113 113
114(defcustom simula-inspect-indent simula-inspect-indent-default 114(defcustom simula-inspect-indent simula-inspect-indent-default
115 "*Extra indentation of WHEN and OTHERWISE with respect to the INSPECT. 115 "Extra indentation of WHEN and OTHERWISE with respect to the INSPECT.
116Value is a cons cell, the car is extra WHEN indentation 116Value is a cons cell, the car is extra WHEN indentation
117and the cdr extra OTHERWISE indentation." 117and the cdr extra OTHERWISE indentation."
118 :type '(cons integer integer) 118 :type '(cons integer integer)
@@ -122,7 +122,7 @@ and the cdr extra OTHERWISE indentation."
122 "Non-nil means `simula-indent-line' function may reindent previous line.") 122 "Non-nil means `simula-indent-line' function may reindent previous line.")
123 123
124(defcustom simula-electric-indent simula-electric-indent-default 124(defcustom simula-electric-indent simula-electric-indent-default
125 "*Non-nil means `simula-indent-line' function may reindent previous line." 125 "Non-nil means `simula-indent-line' function may reindent previous line."
126 :type 'boolean 126 :type 'boolean
127 :group 'simula) 127 :group 'simula)
128 128
@@ -132,7 +132,7 @@ Value is one of the symbols `upcase', `downcase', `capitalize',
132\(as in) `abbrev-table' or nil if they should not be changed.") 132\(as in) `abbrev-table' or nil if they should not be changed.")
133 133
134(defcustom simula-abbrev-keyword simula-abbrev-keyword-default 134(defcustom simula-abbrev-keyword simula-abbrev-keyword-default
135 "*Specify how to convert case for SIMULA keywords. 135 "Specify how to convert case for SIMULA keywords.
136Value is one of the symbols `upcase', `downcase', `capitalize', 136Value is one of the symbols `upcase', `downcase', `capitalize',
137\(as in) `abbrev-table' or nil if they should not be changed." 137\(as in) `abbrev-table' or nil if they should not be changed."
138 :type '(choice (const upcase) (const downcase) (const capitalize)(const nil)) 138 :type '(choice (const upcase) (const downcase) (const capitalize)(const nil))
@@ -144,7 +144,7 @@ Value is one of the symbols `upcase', `downcase', `capitalize',
144\(as in) `abbrev-table', or nil if they should not be changed.") 144\(as in) `abbrev-table', or nil if they should not be changed.")
145 145
146(defcustom simula-abbrev-stdproc simula-abbrev-stdproc-default 146(defcustom simula-abbrev-stdproc simula-abbrev-stdproc-default
147 "*Specify how to convert case for standard SIMULA procedure and class names. 147 "Specify how to convert case for standard SIMULA procedure and class names.
148Value is one of the symbols `upcase', `downcase', `capitalize', 148Value is one of the symbols `upcase', `downcase', `capitalize',
149\(as in) `abbrev-table', or nil if they should not be changed." 149\(as in) `abbrev-table', or nil if they should not be changed."
150 :type '(choice (const upcase) (const downcase) (const capitalize) 150 :type '(choice (const upcase) (const downcase) (const capitalize)
@@ -152,7 +152,7 @@ Value is one of the symbols `upcase', `downcase', `capitalize',
152 :group 'simula) 152 :group 'simula)
153 153
154(defcustom simula-abbrev-file nil 154(defcustom simula-abbrev-file nil
155 "*File with extra abbrev definitions for use in SIMULA mode. 155 "File with extra abbrev definitions for use in SIMULA mode.
156These are used together with the standard abbrev definitions for SIMULA. 156These are used together with the standard abbrev definitions for SIMULA.
157Please note that the standard definitions are required 157Please note that the standard definitions are required
158for SIMULA mode to function correctly." 158for SIMULA mode to function correctly."
diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el
index 0198b32ec9f..f1ab01fd07f 100644
--- a/lisp/progmodes/tcl.el
+++ b/lisp/progmodes/tcl.el
@@ -120,24 +120,24 @@
120 :group 'languages) 120 :group 'languages)
121 121
122(defcustom tcl-indent-level 4 122(defcustom tcl-indent-level 4
123 "*Indentation of Tcl statements with respect to containing block." 123 "Indentation of Tcl statements with respect to containing block."
124 :type 'integer 124 :type 'integer
125 :group 'tcl) 125 :group 'tcl)
126(put 'tcl-indent-level 'safe-local-variable 'integerp) 126(put 'tcl-indent-level 'safe-local-variable 'integerp)
127 127
128(defcustom tcl-continued-indent-level 4 128(defcustom tcl-continued-indent-level 4
129 "*Indentation of continuation line relative to first line of command." 129 "Indentation of continuation line relative to first line of command."
130 :type 'integer 130 :type 'integer
131 :group 'tcl) 131 :group 'tcl)
132(put 'tcl-continued-indent-level 'safe-local-variable 'integerp) 132(put 'tcl-continued-indent-level 'safe-local-variable 'integerp)
133 133
134(defcustom tcl-auto-newline nil 134(defcustom tcl-auto-newline nil
135 "*Non-nil means automatically newline before and after braces you insert." 135 "Non-nil means automatically newline before and after braces you insert."
136 :type 'boolean 136 :type 'boolean
137 :group 'tcl) 137 :group 'tcl)
138 138
139(defcustom tcl-tab-always-indent tab-always-indent 139(defcustom tcl-tab-always-indent tab-always-indent
140 "*Control effect of TAB key. 140 "Control effect of TAB key.
141If t (the default), always indent current line. 141If t (the default), always indent current line.
142If nil and point is not in the indentation area at the beginning of 142If nil and point is not in the indentation area at the beginning of
143the line, a TAB is inserted. 143the line, a TAB is inserted.
@@ -157,7 +157,7 @@ to take place:
157 157
158 158
159(defcustom tcl-electric-hash-style nil ;; 'smart 159(defcustom tcl-electric-hash-style nil ;; 'smart
160 "*Style of electric hash insertion to use. 160 "Style of electric hash insertion to use.
161Possible values are `backslash', meaning that `\\' quoting should be 161Possible values are `backslash', meaning that `\\' quoting should be
162done; `quote', meaning that `\"' quoting should be done; `smart', 162done; `quote', meaning that `\"' quoting should be done; `smart',
163meaning that the choice between `backslash' and `quote' should be 163meaning that the choice between `backslash' and `quote' should be
@@ -168,27 +168,27 @@ taken to mean `smart'. The default is nil."
168 :group 'tcl) 168 :group 'tcl)
169 169
170(defcustom tcl-help-directory-list nil 170(defcustom tcl-help-directory-list nil
171 "*List of topmost directories containing TclX help files." 171 "List of topmost directories containing TclX help files."
172 :type '(repeat directory) 172 :type '(repeat directory)
173 :group 'tcl) 173 :group 'tcl)
174 174
175(defcustom tcl-use-smart-word-finder t 175(defcustom tcl-use-smart-word-finder t
176 "*If not nil, use smart way to find current word, for Tcl help feature." 176 "If not nil, use smart way to find current word, for Tcl help feature."
177 :type 'boolean 177 :type 'boolean
178 :group 'tcl) 178 :group 'tcl)
179 179
180(defcustom tcl-application "wish" 180(defcustom tcl-application "wish"
181 "*Name of Tcl program to run in inferior Tcl mode." 181 "Name of Tcl program to run in inferior Tcl mode."
182 :type 'string 182 :type 'string
183 :group 'tcl) 183 :group 'tcl)
184 184
185(defcustom tcl-command-switches nil 185(defcustom tcl-command-switches nil
186 "*List of switches to supply to the `tcl-application' program." 186 "List of switches to supply to the `tcl-application' program."
187 :type '(repeat string) 187 :type '(repeat string)
188 :group 'tcl) 188 :group 'tcl)
189 189
190(defcustom tcl-prompt-regexp "^\\(% \\|\\)" 190(defcustom tcl-prompt-regexp "^\\(% \\|\\)"
191 "*If not nil, a regexp that will match the prompt in the inferior process. 191 "If not nil, a regexp that will match the prompt in the inferior process.
192If nil, the prompt is the name of the application with \">\" appended. 192If nil, the prompt is the name of the application with \">\" appended.
193 193
194The default is \"^\\(% \\|\\)\", which will match the default primary 194The default is \"^\\(% \\|\\)\", which will match the default primary
@@ -197,7 +197,7 @@ and secondary prompts for tclsh and wish."
197 :group 'tcl) 197 :group 'tcl)
198 198
199(defcustom inferior-tcl-source-command "source %s\n" 199(defcustom inferior-tcl-source-command "source %s\n"
200 "*Format-string for building a Tcl command to load a file. 200 "Format-string for building a Tcl command to load a file.
201This format string should use `%s' to substitute a file name 201This format string should use `%s' to substitute a file name
202and should result in a Tcl expression that will command the 202and should result in a Tcl expression that will command the
203inferior Tcl to load that file. The filename will be appropriately 203inferior Tcl to load that file. The filename will be appropriately
@@ -301,7 +301,7 @@ quoted for Tcl."
301 ["Tcl help" tcl-help-on-word tcl-help-directory-list])) 301 ["Tcl help" tcl-help-on-word tcl-help-directory-list]))
302 302
303(defvar inferior-tcl-buffer nil 303(defvar inferior-tcl-buffer nil
304 "*The current inferior-tcl process buffer. 304 "The current inferior-tcl process buffer.
305 305
306MULTIPLE PROCESS SUPPORT 306MULTIPLE PROCESS SUPPORT
307=========================================================================== 307===========================================================================
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el
index 7f3f99f5cfb..6737bf229a0 100644
--- a/lisp/progmodes/vera-mode.el
+++ b/lisp/progmodes/vera-mode.el
@@ -90,12 +90,12 @@
90 :group 'languages) 90 :group 'languages)
91 91
92(defcustom vera-basic-offset 2 92(defcustom vera-basic-offset 2
93 "*Amount of basic offset used for indentation." 93 "Amount of basic offset used for indentation."
94 :type 'integer 94 :type 'integer
95 :group 'vera) 95 :group 'vera)
96 96
97(defcustom vera-underscore-is-part-of-word nil 97(defcustom vera-underscore-is-part-of-word nil
98 "*Non-nil means consider the underscore character `_' as part of word. 98 "Non-nil means consider the underscore character `_' as part of word.
99An identifier containing underscores is then treated as a single word in 99An identifier containing underscores is then treated as a single word in
100select and move operations. All parts of an identifier separated by underscore 100select and move operations. All parts of an identifier separated by underscore
101are treated as single words otherwise." 101are treated as single words otherwise."
@@ -103,7 +103,7 @@ are treated as single words otherwise."
103 :group 'vera) 103 :group 'vera)
104 104
105(defcustom vera-intelligent-tab t 105(defcustom vera-intelligent-tab t
106 "*Non-nil means `TAB' does indentation, word completion and tab insertion. 106 "Non-nil means `TAB' does indentation, word completion and tab insertion.
107That is, if preceding character is part of a word then complete word, 107That is, if preceding character is part of a word then complete word,
108else if not at beginning of line then insert tab, 108else if not at beginning of line then insert tab,
109else if last command was a `TAB' or `RET' then dedent one step, 109else if last command was a `TAB' or `RET' then dedent one step,
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 73e3cd9980f..c8ef8f0324c 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -419,7 +419,7 @@ Set `verilog-in-hooks' during this time, to assist AUTO caches."
419 419
420(defcustom verilog-linter 420(defcustom verilog-linter
421 "echo 'No verilog-linter set, see \"M-x describe-variable verilog-linter\"'" 421 "echo 'No verilog-linter set, see \"M-x describe-variable verilog-linter\"'"
422 "*Unix program and arguments to call to run a lint checker on Verilog source. 422 "Unix program and arguments to call to run a lint checker on Verilog source.
423Depending on the `verilog-set-compile-command', this may be invoked when 423Depending on the `verilog-set-compile-command', this may be invoked when
424you type \\[compile]. When the compile completes, \\[next-error] will take 424you type \\[compile]. When the compile completes, \\[next-error] will take
425you to the next lint error." 425you to the next lint error."
@@ -429,7 +429,7 @@ you to the next lint error."
429 429
430(defcustom verilog-coverage 430(defcustom verilog-coverage
431 "echo 'No verilog-coverage set, see \"M-x describe-variable verilog-coverage\"'" 431 "echo 'No verilog-coverage set, see \"M-x describe-variable verilog-coverage\"'"
432 "*Program and arguments to use to annotate for coverage Verilog source. 432 "Program and arguments to use to annotate for coverage Verilog source.
433Depending on the `verilog-set-compile-command', this may be invoked when 433Depending on the `verilog-set-compile-command', this may be invoked when
434you type \\[compile]. When the compile completes, \\[next-error] will take 434you type \\[compile]. When the compile completes, \\[next-error] will take
435you to the next lint error." 435you to the next lint error."
@@ -439,7 +439,7 @@ you to the next lint error."
439 439
440(defcustom verilog-simulator 440(defcustom verilog-simulator
441 "echo 'No verilog-simulator set, see \"M-x describe-variable verilog-simulator\"'" 441 "echo 'No verilog-simulator set, see \"M-x describe-variable verilog-simulator\"'"
442 "*Program and arguments to use to interpret Verilog source. 442 "Program and arguments to use to interpret Verilog source.
443Depending on the `verilog-set-compile-command', this may be invoked when 443Depending on the `verilog-set-compile-command', this may be invoked when
444you type \\[compile]. When the compile completes, \\[next-error] will take 444you type \\[compile]. When the compile completes, \\[next-error] will take
445you to the next lint error." 445you to the next lint error."
@@ -449,7 +449,7 @@ you to the next lint error."
449 449
450(defcustom verilog-compiler 450(defcustom verilog-compiler
451 "echo 'No verilog-compiler set, see \"M-x describe-variable verilog-compiler\"'" 451 "echo 'No verilog-compiler set, see \"M-x describe-variable verilog-compiler\"'"
452 "*Program and arguments to use to compile Verilog source. 452 "Program and arguments to use to compile Verilog source.
453Depending on the `verilog-set-compile-command', this may be invoked when 453Depending on the `verilog-set-compile-command', this may be invoked when
454you type \\[compile]. When the compile completes, \\[next-error] will take 454you type \\[compile]. When the compile completes, \\[next-error] will take
455you to the next lint error." 455you to the next lint error."
@@ -460,7 +460,7 @@ you to the next lint error."
460(defcustom verilog-preprocessor 460(defcustom verilog-preprocessor
461 ;; Very few tools give preprocessed output, so we'll default to Verilog-Perl 461 ;; Very few tools give preprocessed output, so we'll default to Verilog-Perl
462 "vppreproc __FLAGS__ __FILE__" 462 "vppreproc __FLAGS__ __FILE__"
463 "*Program and arguments to use to preprocess Verilog source. 463 "Program and arguments to use to preprocess Verilog source.
464This is invoked with `verilog-preprocess', and depending on the 464This is invoked with `verilog-preprocess', and depending on the
465`verilog-set-compile-command', may also be invoked when you type 465`verilog-set-compile-command', may also be invoked when you type
466\\[compile]. When the compile completes, \\[next-error] will 466\\[compile]. When the compile completes, \\[next-error] will
@@ -480,7 +480,7 @@ Alternatively use the \"Choose Compilation Action\" menu. See
480`verilog-set-compile-command' for more information.") 480`verilog-set-compile-command' for more information.")
481 481
482(defcustom verilog-highlight-translate-off nil 482(defcustom verilog-highlight-translate-off nil
483 "*Non-nil means background-highlight code excluded from translation. 483 "Non-nil means background-highlight code excluded from translation.
484That is, all code between \"// synopsys translate_off\" and 484That is, all code between \"// synopsys translate_off\" and
485\"// synopsys translate_on\" is highlighted using a different background color 485\"// synopsys translate_on\" is highlighted using a different background color
486\(face `verilog-font-lock-translate-off-face'). 486\(face `verilog-font-lock-translate-off-face').
@@ -495,7 +495,7 @@ entry \"Fontify Buffer\"). XEmacs: turn off and on font locking."
495(put 'verilog-highlight-translate-off 'safe-local-variable 'verilog-booleanp) 495(put 'verilog-highlight-translate-off 'safe-local-variable 'verilog-booleanp)
496 496
497(defcustom verilog-auto-lineup 'declarations 497(defcustom verilog-auto-lineup 'declarations
498 "*Type of statements to lineup across multiple lines. 498 "Type of statements to lineup across multiple lines.
499If 'all' is selected, then all line ups described below are done. 499If 'all' is selected, then all line ups described below are done.
500 500
501If 'declaration', then just declarations are lined up with any 501If 'declaration', then just declarations are lined up with any
@@ -526,13 +526,13 @@ are lineup only when \\[verilog-pretty-declarations] is typed."
526 :group 'verilog-mode-indent ) 526 :group 'verilog-mode-indent )
527 527
528(defcustom verilog-indent-level 3 528(defcustom verilog-indent-level 3
529 "*Indentation of Verilog statements with respect to containing block." 529 "Indentation of Verilog statements with respect to containing block."
530 :group 'verilog-mode-indent 530 :group 'verilog-mode-indent
531 :type 'integer) 531 :type 'integer)
532(put 'verilog-indent-level 'safe-local-variable 'integerp) 532(put 'verilog-indent-level 'safe-local-variable 'integerp)
533 533
534(defcustom verilog-indent-level-module 3 534(defcustom verilog-indent-level-module 3
535 "*Indentation of Module level Verilog statements (eg always, initial). 535 "Indentation of Module level Verilog statements (eg always, initial).
536Set to 0 to get initial and always statements lined up on the left side of 536Set to 0 to get initial and always statements lined up on the left side of
537your screen." 537your screen."
538 :group 'verilog-mode-indent 538 :group 'verilog-mode-indent
@@ -540,14 +540,14 @@ your screen."
540(put 'verilog-indent-level-module 'safe-local-variable 'integerp) 540(put 'verilog-indent-level-module 'safe-local-variable 'integerp)
541 541
542(defcustom verilog-indent-level-declaration 3 542(defcustom verilog-indent-level-declaration 3
543 "*Indentation of declarations with respect to containing block. 543 "Indentation of declarations with respect to containing block.
544Set to 0 to get them list right under containing block." 544Set to 0 to get them list right under containing block."
545 :group 'verilog-mode-indent 545 :group 'verilog-mode-indent
546 :type 'integer) 546 :type 'integer)
547(put 'verilog-indent-level-declaration 'safe-local-variable 'integerp) 547(put 'verilog-indent-level-declaration 'safe-local-variable 'integerp)
548 548
549(defcustom verilog-indent-declaration-macros nil 549(defcustom verilog-indent-declaration-macros nil
550 "*How to treat macro expansions in a declaration. 550 "How to treat macro expansions in a declaration.
551If nil, indent as: 551If nil, indent as:
552 input [31:0] a; 552 input [31:0] a;
553 input `CP; 553 input `CP;
@@ -561,7 +561,7 @@ If non nil, treat as:
561(put 'verilog-indent-declaration-macros 'safe-local-variable 'verilog-booleanp) 561(put 'verilog-indent-declaration-macros 'safe-local-variable 'verilog-booleanp)
562 562
563(defcustom verilog-indent-lists t 563(defcustom verilog-indent-lists t
564 "*How to treat indenting items in a list. 564 "How to treat indenting items in a list.
565If t (the default), indent as: 565If t (the default), indent as:
566 always @( posedge a or 566 always @( posedge a or
567 reset ) begin 567 reset ) begin
@@ -574,58 +574,58 @@ If nil, treat as:
574(put 'verilog-indent-lists 'safe-local-variable 'verilog-booleanp) 574(put 'verilog-indent-lists 'safe-local-variable 'verilog-booleanp)
575 575
576(defcustom verilog-indent-level-behavioral 3 576(defcustom verilog-indent-level-behavioral 3
577 "*Absolute indentation of first begin in a task or function block. 577 "Absolute indentation of first begin in a task or function block.
578Set to 0 to get such code to start at the left side of the screen." 578Set to 0 to get such code to start at the left side of the screen."
579 :group 'verilog-mode-indent 579 :group 'verilog-mode-indent
580 :type 'integer) 580 :type 'integer)
581(put 'verilog-indent-level-behavioral 'safe-local-variable 'integerp) 581(put 'verilog-indent-level-behavioral 'safe-local-variable 'integerp)
582 582
583(defcustom verilog-indent-level-directive 1 583(defcustom verilog-indent-level-directive 1
584 "*Indentation to add to each level of `ifdef declarations. 584 "Indentation to add to each level of `ifdef declarations.
585Set to 0 to have all directives start at the left side of the screen." 585Set to 0 to have all directives start at the left side of the screen."
586 :group 'verilog-mode-indent 586 :group 'verilog-mode-indent
587 :type 'integer) 587 :type 'integer)
588(put 'verilog-indent-level-directive 'safe-local-variable 'integerp) 588(put 'verilog-indent-level-directive 'safe-local-variable 'integerp)
589 589
590(defcustom verilog-cexp-indent 2 590(defcustom verilog-cexp-indent 2
591 "*Indentation of Verilog statements split across lines." 591 "Indentation of Verilog statements split across lines."
592 :group 'verilog-mode-indent 592 :group 'verilog-mode-indent
593 :type 'integer) 593 :type 'integer)
594(put 'verilog-cexp-indent 'safe-local-variable 'integerp) 594(put 'verilog-cexp-indent 'safe-local-variable 'integerp)
595 595
596(defcustom verilog-case-indent 2 596(defcustom verilog-case-indent 2
597 "*Indentation for case statements." 597 "Indentation for case statements."
598 :group 'verilog-mode-indent 598 :group 'verilog-mode-indent
599 :type 'integer) 599 :type 'integer)
600(put 'verilog-case-indent 'safe-local-variable 'integerp) 600(put 'verilog-case-indent 'safe-local-variable 'integerp)
601 601
602(defcustom verilog-auto-newline t 602(defcustom verilog-auto-newline t
603 "*True means automatically newline after semicolons." 603 "True means automatically newline after semicolons."
604 :group 'verilog-mode-indent 604 :group 'verilog-mode-indent
605 :type 'boolean) 605 :type 'boolean)
606(put 'verilog-auto-newline 'safe-local-variable 'verilog-booleanp) 606(put 'verilog-auto-newline 'safe-local-variable 'verilog-booleanp)
607 607
608(defcustom verilog-auto-indent-on-newline t 608(defcustom verilog-auto-indent-on-newline t
609 "*True means automatically indent line after newline." 609 "True means automatically indent line after newline."
610 :group 'verilog-mode-indent 610 :group 'verilog-mode-indent
611 :type 'boolean) 611 :type 'boolean)
612(put 'verilog-auto-indent-on-newline 'safe-local-variable 'verilog-booleanp) 612(put 'verilog-auto-indent-on-newline 'safe-local-variable 'verilog-booleanp)
613 613
614(defcustom verilog-tab-always-indent t 614(defcustom verilog-tab-always-indent t
615 "*True means TAB should always re-indent the current line. 615 "True means TAB should always re-indent the current line.
616A nil value means TAB will only reindent when at the beginning of the line." 616A nil value means TAB will only reindent when at the beginning of the line."
617 :group 'verilog-mode-indent 617 :group 'verilog-mode-indent
618 :type 'boolean) 618 :type 'boolean)
619(put 'verilog-tab-always-indent 'safe-local-variable 'verilog-booleanp) 619(put 'verilog-tab-always-indent 'safe-local-variable 'verilog-booleanp)
620 620
621(defcustom verilog-tab-to-comment nil 621(defcustom verilog-tab-to-comment nil
622 "*True means TAB moves to the right hand column in preparation for a comment." 622 "True means TAB moves to the right hand column in preparation for a comment."
623 :group 'verilog-mode-actions 623 :group 'verilog-mode-actions
624 :type 'boolean) 624 :type 'boolean)
625(put 'verilog-tab-to-comment 'safe-local-variable 'verilog-booleanp) 625(put 'verilog-tab-to-comment 'safe-local-variable 'verilog-booleanp)
626 626
627(defcustom verilog-indent-begin-after-if t 627(defcustom verilog-indent-begin-after-if t
628 "*If true, indent begin statements following if, else, while, for and repeat. 628 "If true, indent begin statements following if, else, while, for and repeat.
629Otherwise, line them up." 629Otherwise, line them up."
630 :group 'verilog-mode-indent 630 :group 'verilog-mode-indent
631 :type 'boolean) 631 :type 'boolean)
@@ -633,14 +633,14 @@ Otherwise, line them up."
633 633
634 634
635(defcustom verilog-align-ifelse nil 635(defcustom verilog-align-ifelse nil
636 "*If true, align `else' under matching `if'. 636 "If true, align `else' under matching `if'.
637Otherwise else is lined up with first character on line holding matching if." 637Otherwise else is lined up with first character on line holding matching if."
638 :group 'verilog-mode-indent 638 :group 'verilog-mode-indent
639 :type 'boolean) 639 :type 'boolean)
640(put 'verilog-align-ifelse 'safe-local-variable 'verilog-booleanp) 640(put 'verilog-align-ifelse 'safe-local-variable 'verilog-booleanp)
641 641
642(defcustom verilog-minimum-comment-distance 10 642(defcustom verilog-minimum-comment-distance 10
643 "*Minimum distance (in lines) between begin and end required before a comment. 643 "Minimum distance (in lines) between begin and end required before a comment.
644Setting this variable to zero results in every end acquiring a comment; the 644Setting this variable to zero results in every end acquiring a comment; the
645default avoids too many redundant comments in tight quarters." 645default avoids too many redundant comments in tight quarters."
646 :group 'verilog-mode-indent 646 :group 'verilog-mode-indent
@@ -648,7 +648,7 @@ default avoids too many redundant comments in tight quarters."
648(put 'verilog-minimum-comment-distance 'safe-local-variable 'integerp) 648(put 'verilog-minimum-comment-distance 'safe-local-variable 'integerp)
649 649
650(defcustom verilog-highlight-p1800-keywords nil 650(defcustom verilog-highlight-p1800-keywords nil
651 "*True means highlight words newly reserved by IEEE-1800. 651 "True means highlight words newly reserved by IEEE-1800.
652These will appear in `verilog-font-lock-p1800-face' in order to gently 652These will appear in `verilog-font-lock-p1800-face' in order to gently
653suggest changing where these words are used as variables to something else. 653suggest changing where these words are used as variables to something else.
654A nil value means highlight these words as appropriate for the SystemVerilog 654A nil value means highlight these words as appropriate for the SystemVerilog
@@ -659,7 +659,7 @@ to see the effect as font color choices are cached by Emacs."
659(put 'verilog-highlight-p1800-keywords 'safe-local-variable 'verilog-booleanp) 659(put 'verilog-highlight-p1800-keywords 'safe-local-variable 'verilog-booleanp)
660 660
661(defcustom verilog-highlight-grouping-keywords nil 661(defcustom verilog-highlight-grouping-keywords nil
662 "*True means highlight grouping keywords 'begin' and 'end' more dramatically. 662 "True means highlight grouping keywords 'begin' and 'end' more dramatically.
663If false, these words are in the `font-lock-type-face'; if True then they are in 663If false, these words are in the `font-lock-type-face'; if True then they are in
664`verilog-font-lock-ams-face'. Some find that special highlighting on these 664`verilog-font-lock-ams-face'. Some find that special highlighting on these
665grouping constructs allow the structure of the code to be understood at a glance." 665grouping constructs allow the structure of the code to be understood at a glance."
@@ -668,7 +668,7 @@ grouping constructs allow the structure of the code to be understood at a glance
668(put 'verilog-highlight-grouping-keywords 'safe-local-variable 'verilog-booleanp) 668(put 'verilog-highlight-grouping-keywords 'safe-local-variable 'verilog-booleanp)
669 669
670(defcustom verilog-highlight-modules nil 670(defcustom verilog-highlight-modules nil
671 "*True means highlight module statements for `verilog-load-file-at-point'. 671 "True means highlight module statements for `verilog-load-file-at-point'.
672When true, mousing over module names will allow jumping to the 672When true, mousing over module names will allow jumping to the
673module definition. If false, this is not supported. Setting 673module definition. If false, this is not supported. Setting
674this is experimental, and may lead to bad performance." 674this is experimental, and may lead to bad performance."
@@ -677,7 +677,7 @@ this is experimental, and may lead to bad performance."
677(put 'verilog-highlight-modules 'safe-local-variable 'verilog-booleanp) 677(put 'verilog-highlight-modules 'safe-local-variable 'verilog-booleanp)
678 678
679(defcustom verilog-highlight-includes t 679(defcustom verilog-highlight-includes t
680 "*True means highlight module statements for `verilog-load-file-at-point'. 680 "True means highlight module statements for `verilog-load-file-at-point'.
681When true, mousing over include file names will allow jumping to the 681When true, mousing over include file names will allow jumping to the
682file referenced. If false, this is not supported." 682file referenced. If false, this is not supported."
683 :group 'verilog-mode-indent 683 :group 'verilog-mode-indent
@@ -685,7 +685,7 @@ file referenced. If false, this is not supported."
685(put 'verilog-highlight-includes 'safe-local-variable 'verilog-booleanp) 685(put 'verilog-highlight-includes 'safe-local-variable 'verilog-booleanp)
686 686
687(defcustom verilog-auto-declare-nettype nil 687(defcustom verilog-auto-declare-nettype nil
688 "*Non-nil specifies the data type to use with `verilog-auto-input' etc. 688 "Non-nil specifies the data type to use with `verilog-auto-input' etc.
689Set this to \"wire\" if the Verilog code uses \"`default_nettype 689Set this to \"wire\" if the Verilog code uses \"`default_nettype
690none\". Note using `default_nettype none isn't recommended practice; this 690none\". Note using `default_nettype none isn't recommended practice; this
691mode is experimental." 691mode is experimental."
@@ -695,7 +695,7 @@ mode is experimental."
695(put 'verilog-auto-declare-nettype 'safe-local-variable `stringp) 695(put 'verilog-auto-declare-nettype 'safe-local-variable `stringp)
696 696
697(defcustom verilog-auto-wire-type nil 697(defcustom verilog-auto-wire-type nil
698 "*Non-nil specifies the data type to use with `verilog-auto-wire' etc. 698 "Non-nil specifies the data type to use with `verilog-auto-wire' etc.
699Set this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'." 699Set this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'."
700 :version "24.1" 700 :version "24.1"
701 :group 'verilog-mode-actions 701 :group 'verilog-mode-actions
@@ -703,21 +703,21 @@ Set this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'."
703(put 'verilog-auto-wire-type 'safe-local-variable `stringp) 703(put 'verilog-auto-wire-type 'safe-local-variable `stringp)
704 704
705(defcustom verilog-auto-endcomments t 705(defcustom verilog-auto-endcomments t
706 "*True means insert a comment /* ... */ after 'end's. 706 "True means insert a comment /* ... */ after 'end's.
707The name of the function or case will be set between the braces." 707The name of the function or case will be set between the braces."
708 :group 'verilog-mode-actions 708 :group 'verilog-mode-actions
709 :type 'boolean) 709 :type 'boolean)
710(put 'verilog-auto-endcomments 'safe-local-variable 'verilog-booleanp) 710(put 'verilog-auto-endcomments 'safe-local-variable 'verilog-booleanp)
711 711
712(defcustom verilog-auto-delete-trailing-whitespace nil 712(defcustom verilog-auto-delete-trailing-whitespace nil
713 "*True means to `delete-trailing-whitespace' in `verilog-auto'." 713 "True means to `delete-trailing-whitespace' in `verilog-auto'."
714 :version "24.1" 714 :version "24.1"
715 :group 'verilog-mode-actions 715 :group 'verilog-mode-actions
716 :type 'boolean) 716 :type 'boolean)
717(put 'verilog-auto-delete-trailing-whitespace 'safe-local-variable 'verilog-booleanp) 717(put 'verilog-auto-delete-trailing-whitespace 'safe-local-variable 'verilog-booleanp)
718 718
719(defcustom verilog-auto-ignore-concat nil 719(defcustom verilog-auto-ignore-concat nil
720 "*True means ignore signals in {...} concatenations for AUTOWIRE etc. 720 "True means ignore signals in {...} concatenations for AUTOWIRE etc.
721This will exclude signals referenced as pin connections in {...} 721This will exclude signals referenced as pin connections in {...}
722from AUTOWIRE, AUTOOUTPUT and friends. This flag should be set 722from AUTOWIRE, AUTOOUTPUT and friends. This flag should be set
723for backward compatibility only and not set in new designs; it 723for backward compatibility only and not set in new designs; it
@@ -727,7 +727,7 @@ may be removed in future versions."
727(put 'verilog-auto-ignore-concat 'safe-local-variable 'verilog-booleanp) 727(put 'verilog-auto-ignore-concat 'safe-local-variable 'verilog-booleanp)
728 728
729(defcustom verilog-auto-read-includes nil 729(defcustom verilog-auto-read-includes nil
730 "*True means to automatically read includes before AUTOs. 730 "True means to automatically read includes before AUTOs.
731This will do a `verilog-read-defines' and `verilog-read-includes' before 731This will do a `verilog-read-defines' and `verilog-read-includes' before
732each AUTO expansion. This makes it easier to embed defines and includes, 732each AUTO expansion. This makes it easier to embed defines and includes,
733but can result in very slow reading times if there are many or large 733but can result in very slow reading times if there are many or large
@@ -737,7 +737,7 @@ include files."
737(put 'verilog-auto-read-includes 'safe-local-variable 'verilog-booleanp) 737(put 'verilog-auto-read-includes 'safe-local-variable 'verilog-booleanp)
738 738
739(defcustom verilog-auto-save-policy nil 739(defcustom verilog-auto-save-policy nil
740 "*Non-nil indicates action to take when saving a Verilog buffer with AUTOs. 740 "Non-nil indicates action to take when saving a Verilog buffer with AUTOs.
741A value of `force' will always do a \\[verilog-auto] automatically if 741A value of `force' will always do a \\[verilog-auto] automatically if
742needed on every save. A value of `detect' will do \\[verilog-auto] 742needed on every save. A value of `detect' will do \\[verilog-auto]
743automatically when it thinks necessary. A value of `ask' will query the 743automatically when it thinks necessary. A value of `ask' will query the
@@ -750,7 +750,7 @@ sub-module's port list has changed."
750 :type '(choice (const nil) (const ask) (const detect) (const force))) 750 :type '(choice (const nil) (const ask) (const detect) (const force)))
751 751
752(defcustom verilog-auto-star-expand t 752(defcustom verilog-auto-star-expand t
753 "*Non-nil indicates to expand a SystemVerilog .* instance ports. 753 "Non-nil indicates to expand a SystemVerilog .* instance ports.
754They will be expanded in the same way as if there was a AUTOINST in the 754They will be expanded in the same way as if there was a AUTOINST in the
755instantiation. See also `verilog-auto-star' and `verilog-auto-star-save'." 755instantiation. See also `verilog-auto-star' and `verilog-auto-star-save'."
756 :group 'verilog-mode-actions 756 :group 'verilog-mode-actions
@@ -758,7 +758,7 @@ instantiation. See also `verilog-auto-star' and `verilog-auto-star-save'."
758(put 'verilog-auto-star-expand 'safe-local-variable 'verilog-booleanp) 758(put 'verilog-auto-star-expand 'safe-local-variable 'verilog-booleanp)
759 759
760(defcustom verilog-auto-star-save nil 760(defcustom verilog-auto-star-save nil
761 "*Non-nil indicates to save to disk SystemVerilog .* instance expansions. 761 "Non-nil indicates to save to disk SystemVerilog .* instance expansions.
762A nil value indicates direct connections will be removed before saving. 762A nil value indicates direct connections will be removed before saving.
763Only meaningful to those created due to `verilog-auto-star-expand' being set. 763Only meaningful to those created due to `verilog-auto-star-expand' being set.
764 764
@@ -775,7 +775,7 @@ always be saved."
775 "Text from file-local-variables during last evaluation.") 775 "Text from file-local-variables during last evaluation.")
776 776
777(defvar verilog-diff-function 'verilog-diff-report 777(defvar verilog-diff-function 'verilog-diff-report
778 "*Function to run when `verilog-diff-auto' detects differences. 778 "Function to run when `verilog-diff-auto' detects differences.
779Function takes three arguments, the original buffer, the 779Function takes three arguments, the original buffer, the
780difference buffer, and the point in original buffer with the 780difference buffer, and the point in original buffer with the
781first difference.") 781first difference.")
@@ -869,11 +869,11 @@ See `compilation-error-regexp-alist-alist' for the formatting. For XEmacs.")
869 ("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 bold t) 869 ("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 bold t)
870 ("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 2 bold t) 870 ("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 2 bold t)
871 ) 871 )
872 "*Keywords to also highlight in Verilog *compilation* buffers. 872 "Keywords to also highlight in Verilog *compilation* buffers.
873Only used in XEmacs; GNU Emacs uses `verilog-error-regexp-emacs-alist'.") 873Only used in XEmacs; GNU Emacs uses `verilog-error-regexp-emacs-alist'.")
874 874
875(defcustom verilog-library-flags '("") 875(defcustom verilog-library-flags '("")
876 "*List of standard Verilog arguments to use for /*AUTOINST*/. 876 "List of standard Verilog arguments to use for /*AUTOINST*/.
877These arguments are used to find files for `verilog-auto', and match 877These arguments are used to find files for `verilog-auto', and match
878the flags accepted by a standard Verilog-XL simulator. 878the flags accepted by a standard Verilog-XL simulator.
879 879
@@ -904,7 +904,7 @@ See also the variables mentioned above."
904(put 'verilog-library-flags 'safe-local-variable 'listp) 904(put 'verilog-library-flags 'safe-local-variable 'listp)
905 905
906(defcustom verilog-library-directories '(".") 906(defcustom verilog-library-directories '(".")
907 "*List of directories when looking for files for /*AUTOINST*/. 907 "List of directories when looking for files for /*AUTOINST*/.
908The directory may be relative to the current file, or absolute. 908The directory may be relative to the current file, or absolute.
909Environment variables are also expanded in the directory names. 909Environment variables are also expanded in the directory names.
910Having at least the current directory is a good idea. 910Having at least the current directory is a good idea.
@@ -927,7 +927,7 @@ and `verilog-library-extensions'."
927(put 'verilog-library-directories 'safe-local-variable 'listp) 927(put 'verilog-library-directories 'safe-local-variable 'listp)
928 928
929(defcustom verilog-library-files '() 929(defcustom verilog-library-files '()
930 "*List of files to search for modules. 930 "List of files to search for modules.
931AUTOINST will use this when it needs to resolve a module name. 931AUTOINST will use this when it needs to resolve a module name.
932This is a complete path, usually to a technology file with many standard 932This is a complete path, usually to a technology file with many standard
933cells defined in it. 933cells defined in it.
@@ -949,14 +949,14 @@ See also `verilog-library-flags', `verilog-library-directories'."
949(put 'verilog-library-files 'safe-local-variable 'listp) 949(put 'verilog-library-files 'safe-local-variable 'listp)
950 950
951(defcustom verilog-library-extensions '(".v" ".sv") 951(defcustom verilog-library-extensions '(".v" ".sv")
952 "*List of extensions to use when looking for files for /*AUTOINST*/. 952 "List of extensions to use when looking for files for /*AUTOINST*/.
953See also `verilog-library-flags', `verilog-library-directories'." 953See also `verilog-library-flags', `verilog-library-directories'."
954 :type '(repeat string) 954 :type '(repeat string)
955 :group 'verilog-mode-auto) 955 :group 'verilog-mode-auto)
956(put 'verilog-library-extensions 'safe-local-variable 'listp) 956(put 'verilog-library-extensions 'safe-local-variable 'listp)
957 957
958(defcustom verilog-active-low-regexp nil 958(defcustom verilog-active-low-regexp nil
959 "*If set, treat signals matching this regexp as active low. 959 "If set, treat signals matching this regexp as active low.
960This is used for AUTORESET and AUTOTIEOFF. For proper behavior, 960This is used for AUTORESET and AUTOTIEOFF. For proper behavior,
961you will probably also need `verilog-auto-reset-widths' set." 961you will probably also need `verilog-auto-reset-widths' set."
962 :group 'verilog-mode-auto 962 :group 'verilog-mode-auto
@@ -964,7 +964,7 @@ you will probably also need `verilog-auto-reset-widths' set."
964(put 'verilog-active-low-regexp 'safe-local-variable 'stringp) 964(put 'verilog-active-low-regexp 'safe-local-variable 'stringp)
965 965
966(defcustom verilog-auto-sense-include-inputs nil 966(defcustom verilog-auto-sense-include-inputs nil
967 "*If true, AUTOSENSE should include all inputs. 967 "If true, AUTOSENSE should include all inputs.
968If nil, only inputs that are NOT output signals in the same block are 968If nil, only inputs that are NOT output signals in the same block are
969included." 969included."
970 :group 'verilog-mode-auto 970 :group 'verilog-mode-auto
@@ -972,7 +972,7 @@ included."
972(put 'verilog-auto-sense-include-inputs 'safe-local-variable 'verilog-booleanp) 972(put 'verilog-auto-sense-include-inputs 'safe-local-variable 'verilog-booleanp)
973 973
974(defcustom verilog-auto-sense-defines-constant nil 974(defcustom verilog-auto-sense-defines-constant nil
975 "*If true, AUTOSENSE should assume all defines represent constants. 975 "If true, AUTOSENSE should assume all defines represent constants.
976When true, the defines will not be included in sensitivity lists. To 976When true, the defines will not be included in sensitivity lists. To
977maintain compatibility with other sites, this should be set at the bottom 977maintain compatibility with other sites, this should be set at the bottom
978of each Verilog file that requires it, rather than being set globally." 978of each Verilog file that requires it, rather than being set globally."
@@ -981,7 +981,7 @@ of each Verilog file that requires it, rather than being set globally."
981(put 'verilog-auto-sense-defines-constant 'safe-local-variable 'verilog-booleanp) 981(put 'verilog-auto-sense-defines-constant 'safe-local-variable 'verilog-booleanp)
982 982
983(defcustom verilog-auto-reset-blocking-in-non t 983(defcustom verilog-auto-reset-blocking-in-non t
984 "*If true, AUTORESET will reset those signals which were 984 "If true, AUTORESET will reset those signals which were
985assigned with blocking assignments (=) even in a block with 985assigned with blocking assignments (=) even in a block with
986non-blocking assignments (<=). 986non-blocking assignments (<=).
987 987
@@ -995,7 +995,7 @@ those temporaries reset. See example in `verilog-auto-reset'."
995(put 'verilog-auto-reset-blocking-in-non 'safe-local-variable 'verilog-booleanp) 995(put 'verilog-auto-reset-blocking-in-non 'safe-local-variable 'verilog-booleanp)
996 996
997(defcustom verilog-auto-reset-widths t 997(defcustom verilog-auto-reset-widths t
998 "*If true, AUTORESET should determine the width of signals. 998 "If true, AUTORESET should determine the width of signals.
999This is then used to set the width of the zero (32'h0 for example). This 999This is then used to set the width of the zero (32'h0 for example). This
1000is required by some lint tools that aren't smart enough to ignore widths of 1000is required by some lint tools that aren't smart enough to ignore widths of
1001the constant zero. This may result in ugly code when parameters determine 1001the constant zero. This may result in ugly code when parameters determine
@@ -1005,13 +1005,13 @@ the MSB or LSB of a signal inside an AUTORESET."
1005(put 'verilog-auto-reset-widths 'safe-local-variable 'verilog-booleanp) 1005(put 'verilog-auto-reset-widths 'safe-local-variable 'verilog-booleanp)
1006 1006
1007(defcustom verilog-assignment-delay "" 1007(defcustom verilog-assignment-delay ""
1008 "*Text used for delays in delayed assignments. Add a trailing space if set." 1008 "Text used for delays in delayed assignments. Add a trailing space if set."
1009 :group 'verilog-mode-auto 1009 :group 'verilog-mode-auto
1010 :type 'string) 1010 :type 'string)
1011(put 'verilog-assignment-delay 'safe-local-variable 'stringp) 1011(put 'verilog-assignment-delay 'safe-local-variable 'stringp)
1012 1012
1013(defcustom verilog-auto-arg-sort nil 1013(defcustom verilog-auto-arg-sort nil
1014 "*If set, AUTOARG signal names will be sorted, not in declaration order. 1014 "If set, AUTOARG signal names will be sorted, not in declaration order.
1015Declaration order is advantageous with order based instantiations 1015Declaration order is advantageous with order based instantiations
1016and is the default for backward compatibility. Sorted order 1016and is the default for backward compatibility. Sorted order
1017reduces changes when declarations are moved around in a file, and 1017reduces changes when declarations are moved around in a file, and
@@ -1023,7 +1023,7 @@ See also `verilog-auto-inst-sort'."
1023(put 'verilog-auto-arg-sort 'safe-local-variable 'verilog-booleanp) 1023(put 'verilog-auto-arg-sort 'safe-local-variable 'verilog-booleanp)
1024 1024
1025(defcustom verilog-auto-inst-dot-name nil 1025(defcustom verilog-auto-inst-dot-name nil
1026 "*If true, when creating ports with AUTOINST, use .name syntax. 1026 "If true, when creating ports with AUTOINST, use .name syntax.
1027This will use \".port\" instead of \".port(port)\" when possible. 1027This will use \".port\" instead of \".port(port)\" when possible.
1028This is only legal in SystemVerilog files, and will confuse older 1028This is only legal in SystemVerilog files, and will confuse older
1029simulators. Setting `verilog-auto-inst-vector' to nil may also 1029simulators. Setting `verilog-auto-inst-vector' to nil may also
@@ -1033,7 +1033,7 @@ be desirable to increase how often .name will be used."
1033(put 'verilog-auto-inst-dot-name 'safe-local-variable 'verilog-booleanp) 1033(put 'verilog-auto-inst-dot-name 'safe-local-variable 'verilog-booleanp)
1034 1034
1035(defcustom verilog-auto-inst-param-value nil 1035(defcustom verilog-auto-inst-param-value nil
1036 "*If set, AUTOINST will replace parameters with the parameter value. 1036 "If set, AUTOINST will replace parameters with the parameter value.
1037If nil, leave parameters as symbolic names. 1037If nil, leave parameters as symbolic names.
1038 1038
1039Parameters must be in Verilog 2001 format #(...), and if a parameter is not 1039Parameters must be in Verilog 2001 format #(...), and if a parameter is not
@@ -1070,7 +1070,7 @@ instead expand to:
1070(put 'verilog-auto-inst-param-value 'safe-local-variable 'verilog-booleanp) 1070(put 'verilog-auto-inst-param-value 'safe-local-variable 'verilog-booleanp)
1071 1071
1072(defcustom verilog-auto-inst-sort nil 1072(defcustom verilog-auto-inst-sort nil
1073 "*If set, AUTOINST signal names will be sorted, not in declaration order. 1073 "If set, AUTOINST signal names will be sorted, not in declaration order.
1074Also affects AUTOINSTPARAM. Declaration order is the default for 1074Also affects AUTOINSTPARAM. Declaration order is the default for
1075backward compatibility, and as some teams prefer signals that are 1075backward compatibility, and as some teams prefer signals that are
1076declared together to remain together. Sorted order reduces 1076declared together to remain together. Sorted order reduces
@@ -1083,7 +1083,7 @@ See also `verilog-auto-arg-sort'."
1083(put 'verilog-auto-inst-sort 'safe-local-variable 'verilog-booleanp) 1083(put 'verilog-auto-inst-sort 'safe-local-variable 'verilog-booleanp)
1084 1084
1085(defcustom verilog-auto-inst-vector t 1085(defcustom verilog-auto-inst-vector t
1086 "*If true, when creating default ports with AUTOINST, use bus subscripts. 1086 "If true, when creating default ports with AUTOINST, use bus subscripts.
1087If nil, skip the subscript when it matches the entire bus as declared in 1087If nil, skip the subscript when it matches the entire bus as declared in
1088the module (AUTOWIRE signals always are subscripted, you must manually 1088the module (AUTOWIRE signals always are subscripted, you must manually
1089declare the wire to have the subscripts removed.) Setting this to nil may 1089declare the wire to have the subscripts removed.) Setting this to nil may
@@ -1093,7 +1093,7 @@ speed up some simulators, but is less general and harder to read, so avoid."
1093(put 'verilog-auto-inst-vector 'safe-local-variable 'verilog-booleanp) 1093(put 'verilog-auto-inst-vector 'safe-local-variable 'verilog-booleanp)
1094 1094
1095(defcustom verilog-auto-inst-template-numbers nil 1095(defcustom verilog-auto-inst-template-numbers nil
1096 "*If true, when creating templated ports with AUTOINST, add a comment. 1096 "If true, when creating templated ports with AUTOINST, add a comment.
1097 1097
1098If t, the comment will add the line number of the template that 1098If t, the comment will add the line number of the template that
1099was used for that port declaration. This setting is suggested 1099was used for that port declaration. This setting is suggested
@@ -1110,34 +1110,34 @@ won't merge conflict."
1110 '(lambda (x) (memq x '(nil t lhs)))) 1110 '(lambda (x) (memq x '(nil t lhs))))
1111 1111
1112(defcustom verilog-auto-inst-column 40 1112(defcustom verilog-auto-inst-column 40
1113 "*Indent-to column number for net name part of AUTOINST created pin." 1113 "Indent-to column number for net name part of AUTOINST created pin."
1114 :group 'verilog-mode-indent 1114 :group 'verilog-mode-indent
1115 :type 'integer) 1115 :type 'integer)
1116(put 'verilog-auto-inst-column 'safe-local-variable 'integerp) 1116(put 'verilog-auto-inst-column 'safe-local-variable 'integerp)
1117 1117
1118(defcustom verilog-auto-input-ignore-regexp nil 1118(defcustom verilog-auto-input-ignore-regexp nil
1119 "*If set, when creating AUTOINPUT list, ignore signals matching this regexp. 1119 "If set, when creating AUTOINPUT list, ignore signals matching this regexp.
1120See the \\[verilog-faq] for examples on using this." 1120See the \\[verilog-faq] for examples on using this."
1121 :group 'verilog-mode-auto 1121 :group 'verilog-mode-auto
1122 :type 'string) 1122 :type 'string)
1123(put 'verilog-auto-input-ignore-regexp 'safe-local-variable 'stringp) 1123(put 'verilog-auto-input-ignore-regexp 'safe-local-variable 'stringp)
1124 1124
1125(defcustom verilog-auto-inout-ignore-regexp nil 1125(defcustom verilog-auto-inout-ignore-regexp nil
1126 "*If set, when creating AUTOINOUT list, ignore signals matching this regexp. 1126 "If set, when creating AUTOINOUT list, ignore signals matching this regexp.
1127See the \\[verilog-faq] for examples on using this." 1127See the \\[verilog-faq] for examples on using this."
1128 :group 'verilog-mode-auto 1128 :group 'verilog-mode-auto
1129 :type 'string) 1129 :type 'string)
1130(put 'verilog-auto-inout-ignore-regexp 'safe-local-variable 'stringp) 1130(put 'verilog-auto-inout-ignore-regexp 'safe-local-variable 'stringp)
1131 1131
1132(defcustom verilog-auto-output-ignore-regexp nil 1132(defcustom verilog-auto-output-ignore-regexp nil
1133 "*If set, when creating AUTOOUTPUT list, ignore signals matching this regexp. 1133 "If set, when creating AUTOOUTPUT list, ignore signals matching this regexp.
1134See the \\[verilog-faq] for examples on using this." 1134See the \\[verilog-faq] for examples on using this."
1135 :group 'verilog-mode-auto 1135 :group 'verilog-mode-auto
1136 :type 'string) 1136 :type 'string)
1137(put 'verilog-auto-output-ignore-regexp 'safe-local-variable 'stringp) 1137(put 'verilog-auto-output-ignore-regexp 'safe-local-variable 'stringp)
1138 1138
1139(defcustom verilog-auto-tieoff-declaration "wire" 1139(defcustom verilog-auto-tieoff-declaration "wire"
1140 "*Data type used for the declaration for AUTOTIEOFF. If \"wire\" then 1140 "Data type used for the declaration for AUTOTIEOFF. If \"wire\" then
1141create a wire, if \"assign\" create an assignment, else the data type for 1141create a wire, if \"assign\" create an assignment, else the data type for
1142variable creation." 1142variable creation."
1143 :version "24.1" 1143 :version "24.1"
@@ -1146,58 +1146,58 @@ variable creation."
1146(put 'verilog-auto-tieoff-declaration 'safe-local-variable 'stringp) 1146(put 'verilog-auto-tieoff-declaration 'safe-local-variable 'stringp)
1147 1147
1148(defcustom verilog-auto-tieoff-ignore-regexp nil 1148(defcustom verilog-auto-tieoff-ignore-regexp nil
1149 "*If set, when creating AUTOTIEOFF list, ignore signals matching this regexp. 1149 "If set, when creating AUTOTIEOFF list, ignore signals matching this regexp.
1150See the \\[verilog-faq] for examples on using this." 1150See the \\[verilog-faq] for examples on using this."
1151 :group 'verilog-mode-auto 1151 :group 'verilog-mode-auto
1152 :type 'string) 1152 :type 'string)
1153(put 'verilog-auto-tieoff-ignore-regexp 'safe-local-variable 'stringp) 1153(put 'verilog-auto-tieoff-ignore-regexp 'safe-local-variable 'stringp)
1154 1154
1155(defcustom verilog-auto-unused-ignore-regexp nil 1155(defcustom verilog-auto-unused-ignore-regexp nil
1156 "*If set, when creating AUTOUNUSED list, ignore signals matching this regexp. 1156 "If set, when creating AUTOUNUSED list, ignore signals matching this regexp.
1157See the \\[verilog-faq] for examples on using this." 1157See the \\[verilog-faq] for examples on using this."
1158 :group 'verilog-mode-auto 1158 :group 'verilog-mode-auto
1159 :type 'string) 1159 :type 'string)
1160(put 'verilog-auto-unused-ignore-regexp 'safe-local-variable 'stringp) 1160(put 'verilog-auto-unused-ignore-regexp 'safe-local-variable 'stringp)
1161 1161
1162(defcustom verilog-typedef-regexp nil 1162(defcustom verilog-typedef-regexp nil
1163 "*If non-nil, regular expression that matches Verilog-2001 typedef names. 1163 "If non-nil, regular expression that matches Verilog-2001 typedef names.
1164For example, \"_t$\" matches typedefs named with _t, as in the C language." 1164For example, \"_t$\" matches typedefs named with _t, as in the C language."
1165 :group 'verilog-mode-auto 1165 :group 'verilog-mode-auto
1166 :type 'string) 1166 :type 'string)
1167(put 'verilog-typedef-regexp 'safe-local-variable 'stringp) 1167(put 'verilog-typedef-regexp 'safe-local-variable 'stringp)
1168 1168
1169(defcustom verilog-mode-hook 'verilog-set-compile-command 1169(defcustom verilog-mode-hook 'verilog-set-compile-command
1170 "*Hook run after Verilog mode is loaded." 1170 "Hook run after Verilog mode is loaded."
1171 :type 'hook 1171 :type 'hook
1172 :group 'verilog-mode) 1172 :group 'verilog-mode)
1173 1173
1174(defcustom verilog-auto-hook nil 1174(defcustom verilog-auto-hook nil
1175 "*Hook run after `verilog-mode' updates AUTOs." 1175 "Hook run after `verilog-mode' updates AUTOs."
1176 :group 'verilog-mode-auto 1176 :group 'verilog-mode-auto
1177 :type 'hook) 1177 :type 'hook)
1178 1178
1179(defcustom verilog-before-auto-hook nil 1179(defcustom verilog-before-auto-hook nil
1180 "*Hook run before `verilog-mode' updates AUTOs." 1180 "Hook run before `verilog-mode' updates AUTOs."
1181 :group 'verilog-mode-auto 1181 :group 'verilog-mode-auto
1182 :type 'hook) 1182 :type 'hook)
1183 1183
1184(defcustom verilog-delete-auto-hook nil 1184(defcustom verilog-delete-auto-hook nil
1185 "*Hook run after `verilog-mode' deletes AUTOs." 1185 "Hook run after `verilog-mode' deletes AUTOs."
1186 :group 'verilog-mode-auto 1186 :group 'verilog-mode-auto
1187 :type 'hook) 1187 :type 'hook)
1188 1188
1189(defcustom verilog-before-delete-auto-hook nil 1189(defcustom verilog-before-delete-auto-hook nil
1190 "*Hook run before `verilog-mode' deletes AUTOs." 1190 "Hook run before `verilog-mode' deletes AUTOs."
1191 :group 'verilog-mode-auto 1191 :group 'verilog-mode-auto
1192 :type 'hook) 1192 :type 'hook)
1193 1193
1194(defcustom verilog-getopt-flags-hook nil 1194(defcustom verilog-getopt-flags-hook nil
1195 "*Hook run after `verilog-getopt-flags' determines the Verilog option lists." 1195 "Hook run after `verilog-getopt-flags' determines the Verilog option lists."
1196 :group 'verilog-mode-auto 1196 :group 'verilog-mode-auto
1197 :type 'hook) 1197 :type 'hook)
1198 1198
1199(defcustom verilog-before-getopt-flags-hook nil 1199(defcustom verilog-before-getopt-flags-hook nil
1200 "*Hook run before `verilog-getopt-flags' determines the Verilog option lists." 1200 "Hook run before `verilog-getopt-flags' determines the Verilog option lists."
1201 :group 'verilog-mode-auto 1201 :group 'verilog-mode-auto
1202 :type 'hook) 1202 :type 'hook)
1203 1203
@@ -1211,17 +1211,17 @@ For example, \"_t$\" matches typedefs named with _t, as in the C language."
1211;; Customization variables: 1211;; Customization variables:
1212;; 1212;;
1213(defvar verilog-date-scientific-format nil 1213(defvar verilog-date-scientific-format nil
1214 "*If non-nil, dates are written in scientific format (e.g. 1997/09/17). 1214 "If non-nil, dates are written in scientific format (e.g. 1997/09/17).
1215If nil, in European format (e.g. 17.09.1997). The brain-dead American 1215If nil, in European format (e.g. 17.09.1997). The brain-dead American
1216format (e.g. 09/17/1997) is not supported.") 1216format (e.g. 09/17/1997) is not supported.")
1217 1217
1218(defvar verilog-company nil 1218(defvar verilog-company nil
1219 "*Default name of Company for Verilog header. 1219 "Default name of Company for Verilog header.
1220If set will become buffer local.") 1220If set will become buffer local.")
1221(make-variable-buffer-local 'verilog-company) 1221(make-variable-buffer-local 'verilog-company)
1222 1222
1223(defvar verilog-project nil 1223(defvar verilog-project nil
1224 "*Default name of Project for Verilog header. 1224 "Default name of Project for Verilog header.
1225If set will become buffer local.") 1225If set will become buffer local.")
1226(make-variable-buffer-local 'verilog-project) 1226(make-variable-buffer-local 'verilog-project)
1227 1227
@@ -6686,7 +6686,7 @@ Region is defined by B and EDPOS."
6686(defvar verilog-buffer-to-use nil) 6686(defvar verilog-buffer-to-use nil)
6687(defvar verilog-flag nil) 6687(defvar verilog-flag nil)
6688(defvar verilog-toggle-completions nil 6688(defvar verilog-toggle-completions nil
6689 "*True means \\<verilog-mode-map>\\[verilog-complete-word] should try all possible completions one by one. 6689 "True means \\<verilog-mode-map>\\[verilog-complete-word] should try all possible completions one by one.
6690Repeated use of \\[verilog-complete-word] will show you all of them. 6690Repeated use of \\[verilog-complete-word] will show you all of them.
6691Normally, when there is more than one possible completion, 6691Normally, when there is more than one possible completion,
6692it displays a list of all possible completions.") 6692it displays a list of all possible completions.")
@@ -6701,13 +6701,13 @@ it displays a list of all possible completions.")
6701 "rtranif1" "semaphore" "time" "tran" "tranif0" "tranif1" "tri" "tri0" "tri1" 6701 "rtranif1" "semaphore" "time" "tran" "tranif0" "tranif1" "tri" "tri0" "tri1"
6702 "triand" "trior" "trireg" "wand" "wire" "wor" "xnor" "xor" 6702 "triand" "trior" "trireg" "wand" "wire" "wor" "xnor" "xor"
6703 ) 6703 )
6704 "*Keywords for types used when completing a word in a declaration or parmlist. 6704 "Keywords for types used when completing a word in a declaration or parmlist.
6705\(integer, real, reg...)") 6705\(integer, real, reg...)")
6706 6706
6707(defvar verilog-cpp-keywords 6707(defvar verilog-cpp-keywords
6708 '("module" "macromodule" "primitive" "timescale" "define" "ifdef" "ifndef" "else" 6708 '("module" "macromodule" "primitive" "timescale" "define" "ifdef" "ifndef" "else"
6709 "endif") 6709 "endif")
6710 "*Keywords to complete when at first word of a line in declarative scope. 6710 "Keywords to complete when at first word of a line in declarative scope.
6711\(initial, always, begin, assign...) 6711\(initial, always, begin, assign...)
6712The procedures and variables defined within the Verilog program 6712The procedures and variables defined within the Verilog program
6713will be completed at runtime and should not be added to this list.") 6713will be completed at runtime and should not be added to this list.")
@@ -6721,7 +6721,7 @@ will be completed at runtime and should not be added to this list.")
6721 "task" "endtask" "primitive" "endprimitive" 6721 "task" "endtask" "primitive" "endprimitive"
6722 ) 6722 )
6723 verilog-type-keywords) 6723 verilog-type-keywords)
6724 "*Keywords to complete when at first word of a line in declarative scope. 6724 "Keywords to complete when at first word of a line in declarative scope.
6725\(initial, always, begin, assign...) 6725\(initial, always, begin, assign...)
6726The procedures and variables defined within the Verilog program 6726The procedures and variables defined within the Verilog program
6727will be completed at runtime and should not be added to this list.") 6727will be completed at runtime and should not be added to this list.")
@@ -6732,28 +6732,28 @@ will be completed at runtime and should not be added to this list.")
6732 "endgenerate" "endinterface" "endpackage" "endspecify" "endtask" 6732 "endgenerate" "endinterface" "endpackage" "endspecify" "endtask"
6733 "for" "fork" "if" "join" "join_any" "join_none" "repeat" "return" 6733 "for" "fork" "if" "join" "join_any" "join_none" "repeat" "return"
6734 "while") 6734 "while")
6735 "*Keywords to complete when at first word of a line in behavioral scope. 6735 "Keywords to complete when at first word of a line in behavioral scope.
6736\(begin, if, then, else, for, fork...) 6736\(begin, if, then, else, for, fork...)
6737The procedures and variables defined within the Verilog program 6737The procedures and variables defined within the Verilog program
6738will be completed at runtime and should not be added to this list.") 6738will be completed at runtime and should not be added to this list.")
6739 6739
6740(defvar verilog-tf-keywords 6740(defvar verilog-tf-keywords
6741 '("begin" "break" "fork" "join" "join_any" "join_none" "case" "end" "endtask" "endfunction" "if" "else" "for" "while" "repeat") 6741 '("begin" "break" "fork" "join" "join_any" "join_none" "case" "end" "endtask" "endfunction" "if" "else" "for" "while" "repeat")
6742 "*Keywords to complete when at first word of a line in a task or function. 6742 "Keywords to complete when at first word of a line in a task or function.
6743\(begin, if, then, else, for, fork.) 6743\(begin, if, then, else, for, fork.)
6744The procedures and variables defined within the Verilog program 6744The procedures and variables defined within the Verilog program
6745will be completed at runtime and should not be added to this list.") 6745will be completed at runtime and should not be added to this list.")
6746 6746
6747(defvar verilog-case-keywords 6747(defvar verilog-case-keywords
6748 '("begin" "fork" "join" "join_any" "join_none" "case" "end" "endcase" "if" "else" "for" "repeat") 6748 '("begin" "fork" "join" "join_any" "join_none" "case" "end" "endcase" "if" "else" "for" "repeat")
6749 "*Keywords to complete when at first word of a line in case scope. 6749 "Keywords to complete when at first word of a line in case scope.
6750\(begin, if, then, else, for, fork...) 6750\(begin, if, then, else, for, fork...)
6751The procedures and variables defined within the Verilog program 6751The procedures and variables defined within the Verilog program
6752will be completed at runtime and should not be added to this list.") 6752will be completed at runtime and should not be added to this list.")
6753 6753
6754(defvar verilog-separator-keywords 6754(defvar verilog-separator-keywords
6755 '("else" "then" "begin") 6755 '("else" "then" "begin")
6756 "*Keywords to complete when NOT standing at the first word of a statement. 6756 "Keywords to complete when NOT standing at the first word of a statement.
6757\(else, then, begin...) 6757\(else, then, begin...)
6758Variables and function names defined within the Verilog program 6758Variables and function names defined within the Verilog program
6759will be completed at runtime and should not be added to this list.") 6759will be completed at runtime and should not be added to this list.")
@@ -6786,10 +6786,10 @@ will be completed at runtime and should not be added to this list.")
6786 ("tranif1" "inout" "inout") 6786 ("tranif1" "inout" "inout")
6787 ("xnor" "output") 6787 ("xnor" "output")
6788 ("xor" "output")) 6788 ("xor" "output"))
6789 "*Map of direction for each positional argument to each gate primitive.") 6789 "Map of direction for each positional argument to each gate primitive.")
6790 6790
6791(defvar verilog-gate-keywords (mapcar `car verilog-gate-ios) 6791(defvar verilog-gate-keywords (mapcar `car verilog-gate-ios)
6792 "*Keywords for gate primitives.") 6792 "Keywords for gate primitives.")
6793 6793
6794(defun verilog-string-diff (str1 str2) 6794(defun verilog-string-diff (str1 str2)
6795 "Return index of first letter where STR1 and STR2 differs." 6795 "Return index of first letter where STR1 and STR2 differs."
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index c9bf638bb59..9b7ee5d6aa0 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -198,7 +198,7 @@ Examples:
198 :group 'vhdl) 198 :group 'vhdl)
199 199
200(defcustom vhdl-indent-tabs-mode nil 200(defcustom vhdl-indent-tabs-mode nil
201 "*Non-nil means indentation can insert tabs. 201 "Non-nil means indentation can insert tabs.
202Overrides local variable `indent-tabs-mode'." 202Overrides local variable `indent-tabs-mode'."
203 :type 'boolean 203 :type 'boolean
204 :group 'vhdl-mode) 204 :group 'vhdl-mode)
@@ -322,7 +322,7 @@ Overrides local variable `indent-tabs-mode'."
322 ("^ *Compiling \"\\(.+\\)\" " 1) 322 ("^ *Compiling \"\\(.+\\)\" " 1)
323 nil) 323 nil)
324 ) 324 )
325 "*List of available VHDL compilers and their properties. 325 "List of available VHDL compilers and their properties.
326Each list entry specifies the following items for a compiler: 326Each list entry specifies the following items for a compiler:
327Compiler: 327Compiler:
328 Compiler name : name used in option `vhdl-compiler' to choose compiler 328 Compiler name : name used in option `vhdl-compiler' to choose compiler
@@ -429,7 +429,7 @@ NOTE: Activate new error and file message regexps and reflect the new setting
429 :group 'vhdl-compile) 429 :group 'vhdl-compile)
430 430
431(defcustom vhdl-compiler "ModelSim" 431(defcustom vhdl-compiler "ModelSim"
432 "*Specifies the VHDL compiler to be used for syntax analysis. 432 "Specifies the VHDL compiler to be used for syntax analysis.
433Select a compiler name from the ones defined in option `vhdl-compiler-alist'." 433Select a compiler name from the ones defined in option `vhdl-compiler-alist'."
434 :type (let ((alist vhdl-compiler-alist) list) 434 :type (let ((alist vhdl-compiler-alist) list)
435 (while alist 435 (while alist
@@ -439,7 +439,7 @@ Select a compiler name from the ones defined in option `vhdl-compiler-alist'."
439 :group 'vhdl-compile) 439 :group 'vhdl-compile)
440 440
441(defcustom vhdl-compile-use-local-error-regexp t 441(defcustom vhdl-compile-use-local-error-regexp t
442 "*Non-nil means use buffer-local `compilation-error-regexp-alist'. 442 "Non-nil means use buffer-local `compilation-error-regexp-alist'.
443In this case, only error message regexps for VHDL compilers are active if 443In this case, only error message regexps for VHDL compilers are active if
444compilation is started from a VHDL buffer. Otherwise, the error message 444compilation is started from a VHDL buffer. Otherwise, the error message
445regexps are appended to the predefined global regexps, and all regexps are 445regexps are appended to the predefined global regexps, and all regexps are
@@ -451,7 +451,7 @@ NOTE: Activate the new setting by restarting Emacs."
451 :group 'vhdl-compile) 451 :group 'vhdl-compile)
452 452
453(defcustom vhdl-makefile-generation-hook nil 453(defcustom vhdl-makefile-generation-hook nil
454 "*Functions to run at the end of Makefile generation. 454 "Functions to run at the end of Makefile generation.
455Allows to insert user specific parts into a Makefile. 455Allows to insert user specific parts into a Makefile.
456 456
457Example: 457Example:
@@ -462,7 +462,7 @@ Example:
462 :group 'vhdl-compile) 462 :group 'vhdl-compile)
463 463
464(defcustom vhdl-default-library "work" 464(defcustom vhdl-default-library "work"
465 "*Name of default library. 465 "Name of default library.
466Is overwritten by project settings if a project is active." 466Is overwritten by project settings if a project is active."
467 :type 'string 467 :type 'string
468 :group 'vhdl-compile) 468 :group 'vhdl-compile)
@@ -488,7 +488,7 @@ Is overwritten by project settings if a project is active."
488-- This is a multi-line project description 488-- This is a multi-line project description
489-- that can be used as a project dependent part of the file header. 489-- that can be used as a project dependent part of the file header.
490")) 490"))
491 "*List of projects and their properties. 491 "List of projects and their properties.
492 Name : name used in option `vhdl-project' to choose project 492 Name : name used in option `vhdl-project' to choose project
493 Title : title of project (single-line string) 493 Title : title of project (single-line string)
494 Default directory: default project directory (absolute path) 494 Default directory: default project directory (absolute path)
@@ -594,7 +594,7 @@ NOTE: Reflect the new setting in the choice list of option `vhdl-project'
594 :group 'vhdl-project) 594 :group 'vhdl-project)
595 595
596(defcustom vhdl-project nil 596(defcustom vhdl-project nil
597 "*Specifies the default for the current project. 597 "Specifies the default for the current project.
598Select a project name from the ones defined in option `vhdl-project-alist'. 598Select a project name from the ones defined in option `vhdl-project-alist'.
599Is used to determine the project title and description to be inserted in file 599Is used to determine the project title and description to be inserted in file
600headers and the source files/directories to be scanned in the hierarchy 600headers and the source files/directories to be scanned in the hierarchy
@@ -608,7 +608,7 @@ browser. The current project can also be changed temporarily in the menu."
608 :group 'vhdl-project) 608 :group 'vhdl-project)
609 609
610(defcustom vhdl-project-file-name '("\\1.prj") 610(defcustom vhdl-project-file-name '("\\1.prj")
611 "*List of file names/paths for importing/exporting project setups. 611 "List of file names/paths for importing/exporting project setups.
612\"\\1\" is replaced by the project name (SPC is replaced by `_'), \"\\2\" is 612\"\\1\" is replaced by the project name (SPC is replaced by `_'), \"\\2\" is
613replaced by the user name (allows to have user-specific project setups). 613replaced by the user name (allows to have user-specific project setups).
614The first entry is used as file name to import/export individual project 614The first entry is used as file name to import/export individual project
@@ -624,7 +624,7 @@ in global directories)."
624 :group 'vhdl-project) 624 :group 'vhdl-project)
625 625
626(defcustom vhdl-project-auto-load '(startup) 626(defcustom vhdl-project-auto-load '(startup)
627 "*Automatically load project setups from files. 627 "Automatically load project setups from files.
628All project setup files that match the file names specified in option 628All project setup files that match the file names specified in option
629`vhdl-project-file-name' are automatically loaded. The project of the 629`vhdl-project-file-name' are automatically loaded. The project of the
630\(alphabetically) last loaded setup of the first `vhdl-project-file-name' 630\(alphabetically) last loaded setup of the first `vhdl-project-file-name'
@@ -635,7 +635,7 @@ A project setup file can be obtained by exporting a project (see menu).
635 :group 'vhdl-project) 635 :group 'vhdl-project)
636 636
637(defcustom vhdl-project-sort t 637(defcustom vhdl-project-sort t
638 "*Non-nil means projects are displayed in alphabetical order." 638 "Non-nil means projects are displayed in alphabetical order."
639 :type 'boolean 639 :type 'boolean
640 :group 'vhdl-project) 640 :group 'vhdl-project)
641 641
@@ -648,7 +648,7 @@ A project setup file can be obtained by exporting a project (see menu).
648 :group 'vhdl-compose) 648 :group 'vhdl-compose)
649 649
650(defcustom vhdl-standard '(87 nil) 650(defcustom vhdl-standard '(87 nil)
651 "*VHDL standards used. 651 "VHDL standards used.
652Basic standard: 652Basic standard:
653 VHDL'87 : IEEE Std 1076-1987 653 VHDL'87 : IEEE Std 1076-1987
654 VHDL'93 : IEEE Std 1076-1993 654 VHDL'93 : IEEE Std 1076-1993
@@ -675,13 +675,13 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
675 :group 'vhdl-style) 675 :group 'vhdl-style)
676 676
677(defcustom vhdl-basic-offset 2 677(defcustom vhdl-basic-offset 2
678 "*Amount of basic offset used for indentation. 678 "Amount of basic offset used for indentation.
679This value is used by + and - symbols in `vhdl-offsets-alist'." 679This value is used by + and - symbols in `vhdl-offsets-alist'."
680 :type 'integer 680 :type 'integer
681 :group 'vhdl-style) 681 :group 'vhdl-style)
682 682
683(defcustom vhdl-upper-case-keywords nil 683(defcustom vhdl-upper-case-keywords nil
684 "*Non-nil means convert keywords to upper case. 684 "Non-nil means convert keywords to upper case.
685This is done when typed or expanded or by the fix case functions." 685This is done when typed or expanded or by the fix case functions."
686 :type 'boolean 686 :type 'boolean
687 :set (lambda (variable value) 687 :set (lambda (variable value)
@@ -689,7 +689,7 @@ This is done when typed or expanded or by the fix case functions."
689 :group 'vhdl-style) 689 :group 'vhdl-style)
690 690
691(defcustom vhdl-upper-case-types nil 691(defcustom vhdl-upper-case-types nil
692 "*Non-nil means convert standardized types to upper case. 692 "Non-nil means convert standardized types to upper case.
693This is done when expanded or by the fix case functions." 693This is done when expanded or by the fix case functions."
694 :type 'boolean 694 :type 'boolean
695 :set (lambda (variable value) 695 :set (lambda (variable value)
@@ -697,7 +697,7 @@ This is done when expanded or by the fix case functions."
697 :group 'vhdl-style) 697 :group 'vhdl-style)
698 698
699(defcustom vhdl-upper-case-attributes nil 699(defcustom vhdl-upper-case-attributes nil
700 "*Non-nil means convert standardized attributes to upper case. 700 "Non-nil means convert standardized attributes to upper case.
701This is done when expanded or by the fix case functions." 701This is done when expanded or by the fix case functions."
702 :type 'boolean 702 :type 'boolean
703 :set (lambda (variable value) 703 :set (lambda (variable value)
@@ -705,7 +705,7 @@ This is done when expanded or by the fix case functions."
705 :group 'vhdl-style) 705 :group 'vhdl-style)
706 706
707(defcustom vhdl-upper-case-enum-values nil 707(defcustom vhdl-upper-case-enum-values nil
708 "*Non-nil means convert standardized enumeration values to upper case. 708 "Non-nil means convert standardized enumeration values to upper case.
709This is done when expanded or by the fix case functions." 709This is done when expanded or by the fix case functions."
710 :type 'boolean 710 :type 'boolean
711 :set (lambda (variable value) 711 :set (lambda (variable value)
@@ -713,7 +713,7 @@ This is done when expanded or by the fix case functions."
713 :group 'vhdl-style) 713 :group 'vhdl-style)
714 714
715(defcustom vhdl-upper-case-constants t 715(defcustom vhdl-upper-case-constants t
716 "*Non-nil means convert standardized constants to upper case. 716 "Non-nil means convert standardized constants to upper case.
717This is done when expanded." 717This is done when expanded."
718 :type 'boolean 718 :type 'boolean
719 :set (lambda (variable value) 719 :set (lambda (variable value)
@@ -721,7 +721,7 @@ This is done when expanded."
721 :group 'vhdl-style) 721 :group 'vhdl-style)
722 722
723(defcustom vhdl-use-direct-instantiation 'standard 723(defcustom vhdl-use-direct-instantiation 'standard
724 "*Non-nil means use VHDL'93 direct component instantiation. 724 "Non-nil means use VHDL'93 direct component instantiation.
725 Never : never 725 Never : never
726 Standard: only in VHDL standards that allow it (VHDL'93 and higher) 726 Standard: only in VHDL standards that allow it (VHDL'93 and higher)
727 Always : always" 727 Always : always"
@@ -737,7 +737,7 @@ This is done when expanded."
737 737
738(defcustom vhdl-entity-file-name '(".*" . "\\&") 738(defcustom vhdl-entity-file-name '(".*" . "\\&")
739 (concat 739 (concat
740 "*Specifies how the entity file name is obtained. 740 "Specifies how the entity file name is obtained.
741The entity file name can be obtained by modifying the entity name (e.g. 741The entity file name can be obtained by modifying the entity name (e.g.
742attaching or stripping off a substring). The file extension is automatically 742attaching or stripping off a substring). The file extension is automatically
743taken from the file name of the current buffer." 743taken from the file name of the current buffer."
@@ -749,7 +749,7 @@ taken from the file name of the current buffer."
749 749
750(defcustom vhdl-architecture-file-name '("\\(.*\\) \\(.*\\)" . "\\1_\\2") 750(defcustom vhdl-architecture-file-name '("\\(.*\\) \\(.*\\)" . "\\1_\\2")
751 (concat 751 (concat
752 "*Specifies how the architecture file name is obtained. 752 "Specifies how the architecture file name is obtained.
753The architecture file name can be obtained by modifying the entity 753The architecture file name can be obtained by modifying the entity
754and/or architecture name (e.g. attaching or stripping off a substring). The 754and/or architecture name (e.g. attaching or stripping off a substring). The
755file extension is automatically taken from the file name of the current 755file extension is automatically taken from the file name of the current
@@ -764,7 +764,7 @@ access to both names (see default setting as example)."
764 764
765(defcustom vhdl-configuration-file-name '(".*" . "\\&") 765(defcustom vhdl-configuration-file-name '(".*" . "\\&")
766 (concat 766 (concat
767 "*Specifies how the configuration file name is obtained. 767 "Specifies how the configuration file name is obtained.
768The configuration file name can be obtained by modifying the configuration 768The configuration file name can be obtained by modifying the configuration
769name (e.g. attaching or stripping off a substring). The file extension is 769name (e.g. attaching or stripping off a substring). The file extension is
770automatically taken from the file name of the current buffer." 770automatically taken from the file name of the current buffer."
@@ -776,7 +776,7 @@ automatically taken from the file name of the current buffer."
776 776
777(defcustom vhdl-package-file-name '(".*" . "\\&") 777(defcustom vhdl-package-file-name '(".*" . "\\&")
778 (concat 778 (concat
779 "*Specifies how the package file name is obtained. 779 "Specifies how the package file name is obtained.
780The package file name can be obtained by modifying the package name (e.g. 780The package file name can be obtained by modifying the package name (e.g.
781attaching or stripping off a substring). The file extension is automatically 781attaching or stripping off a substring). The file extension is automatically
782taken from the file name of the current buffer. Package files can be created 782taken from the file name of the current buffer. Package files can be created
@@ -789,7 +789,7 @@ file name."
789 :group 'vhdl-compose) 789 :group 'vhdl-compose)
790 790
791(defcustom vhdl-file-name-case 'identity 791(defcustom vhdl-file-name-case 'identity
792 "*Specifies how to change case for obtaining file names. 792 "Specifies how to change case for obtaining file names.
793When deriving a file name from a VHDL unit name, case can be changed as 793When deriving a file name from a VHDL unit name, case can be changed as
794follows: 794follows:
795 As Is: case is not changed (taken as is) 795 As Is: case is not changed (taken as is)
@@ -809,7 +809,7 @@ follows:
809 :group 'vhdl) 809 :group 'vhdl)
810 810
811(defcustom vhdl-electric-keywords '(vhdl user) 811(defcustom vhdl-electric-keywords '(vhdl user)
812 "*Type of keywords for which electrification is enabled. 812 "Type of keywords for which electrification is enabled.
813 VHDL keywords: invoke built-in templates 813 VHDL keywords: invoke built-in templates
814 User keywords: invoke user models (see option `vhdl-model-alist')" 814 User keywords: invoke user models (see option `vhdl-model-alist')"
815 :type '(set (const :tag "VHDL keywords" vhdl) 815 :type '(set (const :tag "VHDL keywords" vhdl)
@@ -819,7 +819,7 @@ follows:
819 :group 'vhdl-template) 819 :group 'vhdl-template)
820 820
821(defcustom vhdl-optional-labels 'process 821(defcustom vhdl-optional-labels 'process
822 "*Constructs for which labels are to be queried. 822 "Constructs for which labels are to be queried.
823Template generators prompt for optional labels for: 823Template generators prompt for optional labels for:
824 None : no constructs 824 None : no constructs
825 Processes only: processes only (also procedurals in VHDL-AMS) 825 Processes only: processes only (also procedurals in VHDL-AMS)
@@ -830,7 +830,7 @@ Template generators prompt for optional labels for:
830 :group 'vhdl-template) 830 :group 'vhdl-template)
831 831
832(defcustom vhdl-insert-empty-lines 'unit 832(defcustom vhdl-insert-empty-lines 'unit
833 "*Specifies whether to insert empty lines in some templates. 833 "Specifies whether to insert empty lines in some templates.
834This improves readability of code. Empty lines are inserted in: 834This improves readability of code. Empty lines are inserted in:
835 None : no constructs 835 None : no constructs
836 Design units only: entities, architectures, configurations, packages only 836 Design units only: entities, architectures, configurations, packages only
@@ -845,7 +845,7 @@ Replaces option `vhdl-additional-empty-lines'."
845 :group 'vhdl-compose) 845 :group 'vhdl-compose)
846 846
847(defcustom vhdl-argument-list-indent nil 847(defcustom vhdl-argument-list-indent nil
848 "*Non-nil means indent argument lists relative to opening parenthesis. 848 "Non-nil means indent argument lists relative to opening parenthesis.
849That is, argument, association, and port lists start on the same line as the 849That is, argument, association, and port lists start on the same line as the
850opening parenthesis and subsequent lines are indented accordingly. 850opening parenthesis and subsequent lines are indented accordingly.
851Otherwise, lists start on a new line and are indented as normal code." 851Otherwise, lists start on a new line and are indented as normal code."
@@ -855,7 +855,7 @@ Otherwise, lists start on a new line and are indented as normal code."
855 :group 'vhdl-compose) 855 :group 'vhdl-compose)
856 856
857(defcustom vhdl-association-list-with-formals t 857(defcustom vhdl-association-list-with-formals t
858 "*Non-nil means write association lists with formal parameters. 858 "Non-nil means write association lists with formal parameters.
859Templates prompt for formal and actual parameters (ports/generics). 859Templates prompt for formal and actual parameters (ports/generics).
860When pasting component instantiations, formals are included. 860When pasting component instantiations, formals are included.
861If nil, only a list of actual parameters is entered." 861If nil, only a list of actual parameters is entered."
@@ -865,17 +865,17 @@ If nil, only a list of actual parameters is entered."
865 :group 'vhdl-compose) 865 :group 'vhdl-compose)
866 866
867(defcustom vhdl-conditions-in-parenthesis nil 867(defcustom vhdl-conditions-in-parenthesis nil
868 "*Non-nil means place parenthesis around condition expressions." 868 "Non-nil means place parenthesis around condition expressions."
869 :type 'boolean 869 :type 'boolean
870 :group 'vhdl-template) 870 :group 'vhdl-template)
871 871
872(defcustom vhdl-zero-string "'0'" 872(defcustom vhdl-zero-string "'0'"
873 "*String to use for a logic zero." 873 "String to use for a logic zero."
874 :type 'string 874 :type 'string
875 :group 'vhdl-template) 875 :group 'vhdl-template)
876 876
877(defcustom vhdl-one-string "'1'" 877(defcustom vhdl-one-string "'1'"
878 "*String to use for a logic one." 878 "String to use for a logic one."
879 :type 'string 879 :type 'string
880 :group 'vhdl-template) 880 :group 'vhdl-template)
881 881
@@ -906,7 +906,7 @@ If nil, only a list of actual parameters is entered."
906------------------------------------------------------------------------------- 906-------------------------------------------------------------------------------
907 907
908" 908"
909 "*String or file to insert as file header. 909 "String or file to insert as file header.
910If the string specifies an existing file name, the contents of the file is 910If the string specifies an existing file name, the contents of the file is
911inserted, otherwise the string itself is inserted as file header. 911inserted, otherwise the string itself is inserted as file header.
912Type `C-j' for newlines. 912Type `C-j' for newlines.
@@ -936,7 +936,7 @@ dependent part of the file header and can also contain the above keywords."
936 :group 'vhdl-header) 936 :group 'vhdl-header)
937 937
938(defcustom vhdl-file-footer "" 938(defcustom vhdl-file-footer ""
939 "*String or file to insert as file footer. 939 "String or file to insert as file footer.
940If the string specifies an existing file name, the contents of the file is 940If the string specifies an existing file name, the contents of the file is
941inserted, otherwise the string itself is inserted as file footer (i.e. at 941inserted, otherwise the string itself is inserted as file footer (i.e. at
942the end of the file). 942the end of the file).
@@ -946,7 +946,7 @@ The same keywords as in option `vhdl-file-header' can be used."
946 :group 'vhdl-header) 946 :group 'vhdl-header)
947 947
948(defcustom vhdl-company-name "" 948(defcustom vhdl-company-name ""
949 "*Name of company to insert in file header. 949 "Name of company to insert in file header.
950See option `vhdl-file-header'." 950See option `vhdl-file-header'."
951 :type 'string 951 :type 'string
952 :group 'vhdl-header) 952 :group 'vhdl-header)
@@ -955,14 +955,14 @@ See option `vhdl-file-header'."
955------------------------------------------------------------------------------- 955-------------------------------------------------------------------------------
956-- Copyright (c) <year> <company> 956-- Copyright (c) <year> <company>
957" 957"
958 "*Copyright string to insert in file header. 958 "Copyright string to insert in file header.
959Can be multi-line string (type `C-j' for newline) and contain other file 959Can be multi-line string (type `C-j' for newline) and contain other file
960header keywords (see option `vhdl-file-header')." 960header keywords (see option `vhdl-file-header')."
961 :type 'string 961 :type 'string
962 :group 'vhdl-header) 962 :group 'vhdl-header)
963 963
964(defcustom vhdl-platform-spec "" 964(defcustom vhdl-platform-spec ""
965 "*Specification of VHDL platform to insert in file header. 965 "Specification of VHDL platform to insert in file header.
966The platform specification should contain names and versions of the 966The platform specification should contain names and versions of the
967simulation and synthesis tools used. 967simulation and synthesis tools used.
968See option `vhdl-file-header'." 968See option `vhdl-file-header'."
@@ -970,7 +970,7 @@ See option `vhdl-file-header'."
970 :group 'vhdl-header) 970 :group 'vhdl-header)
971 971
972(defcustom vhdl-date-format "%Y-%m-%d" 972(defcustom vhdl-date-format "%Y-%m-%d"
973 "*Specifies the date format to use in the header. 973 "Specifies the date format to use in the header.
974This string is passed as argument to the command `format-time-string'. 974This string is passed as argument to the command `format-time-string'.
975For more information on format strings, see the documentation for the 975For more information on format strings, see the documentation for the
976`format-time-string' command (C-h f `format-time-string')." 976`format-time-string' command (C-h f `format-time-string')."
@@ -978,7 +978,7 @@ For more information on format strings, see the documentation for the
978 :group 'vhdl-header) 978 :group 'vhdl-header)
979 979
980(defcustom vhdl-modify-date-prefix-string "-- Last update: " 980(defcustom vhdl-modify-date-prefix-string "-- Last update: "
981 "*Prefix string of modification date in VHDL file header. 981 "Prefix string of modification date in VHDL file header.
982If actualization of the modification date is called (menu, 982If actualization of the modification date is called (menu,
983`\\[vhdl-template-modify]'), this string is searched and the rest 983`\\[vhdl-template-modify]'), this string is searched and the rest
984of the line replaced by the current date." 984of the line replaced by the current date."
@@ -986,7 +986,7 @@ of the line replaced by the current date."
986 :group 'vhdl-header) 986 :group 'vhdl-header)
987 987
988(defcustom vhdl-modify-date-on-saving t 988(defcustom vhdl-modify-date-on-saving t
989 "*Non-nil means update the modification date when the buffer is saved. 989 "Non-nil means update the modification date when the buffer is saved.
990Calls function `\\[vhdl-template-modify]'). 990Calls function `\\[vhdl-template-modify]').
991 991
992NOTE: Activate the new setting in a VHDL buffer by using the menu entry 992NOTE: Activate the new setting in a VHDL buffer by using the menu entry
@@ -1000,26 +1000,26 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1000 :group 'vhdl-template) 1000 :group 'vhdl-template)
1001 1001
1002(defcustom vhdl-reset-kind 'async 1002(defcustom vhdl-reset-kind 'async
1003 "*Specifies which kind of reset to use in sequential processes." 1003 "Specifies which kind of reset to use in sequential processes."
1004 :type '(choice (const :tag "None" none) 1004 :type '(choice (const :tag "None" none)
1005 (const :tag "Synchronous" sync) 1005 (const :tag "Synchronous" sync)
1006 (const :tag "Asynchronous" async)) 1006 (const :tag "Asynchronous" async))
1007 :group 'vhdl-sequential-process) 1007 :group 'vhdl-sequential-process)
1008 1008
1009(defcustom vhdl-reset-active-high nil 1009(defcustom vhdl-reset-active-high nil
1010 "*Non-nil means reset in sequential processes is active high. 1010 "Non-nil means reset in sequential processes is active high.
1011Otherwise, reset is active low." 1011Otherwise, reset is active low."
1012 :type 'boolean 1012 :type 'boolean
1013 :group 'vhdl-sequential-process) 1013 :group 'vhdl-sequential-process)
1014 1014
1015(defcustom vhdl-clock-rising-edge t 1015(defcustom vhdl-clock-rising-edge t
1016 "*Non-nil means rising edge of clock triggers sequential processes. 1016 "Non-nil means rising edge of clock triggers sequential processes.
1017Otherwise, falling edge triggers." 1017Otherwise, falling edge triggers."
1018 :type 'boolean 1018 :type 'boolean
1019 :group 'vhdl-sequential-process) 1019 :group 'vhdl-sequential-process)
1020 1020
1021(defcustom vhdl-clock-edge-condition 'standard 1021(defcustom vhdl-clock-edge-condition 'standard
1022 "*Syntax of the clock edge condition. 1022 "Syntax of the clock edge condition.
1023 Standard: \"clk'event and clk = '1'\" 1023 Standard: \"clk'event and clk = '1'\"
1024 Function: \"rising_edge(clk)\"" 1024 Function: \"rising_edge(clk)\""
1025 :type '(choice (const :tag "Standard" standard) 1025 :type '(choice (const :tag "Standard" standard)
@@ -1027,12 +1027,12 @@ Otherwise, falling edge triggers."
1027 :group 'vhdl-sequential-process) 1027 :group 'vhdl-sequential-process)
1028 1028
1029(defcustom vhdl-clock-name "" 1029(defcustom vhdl-clock-name ""
1030 "*Name of clock signal to use in templates." 1030 "Name of clock signal to use in templates."
1031 :type 'string 1031 :type 'string
1032 :group 'vhdl-sequential-process) 1032 :group 'vhdl-sequential-process)
1033 1033
1034(defcustom vhdl-reset-name "" 1034(defcustom vhdl-reset-name ""
1035 "*Name of reset signal to use in templates." 1035 "Name of reset signal to use in templates."
1036 :type 'string 1036 :type 'string
1037 :group 'vhdl-sequential-process) 1037 :group 'vhdl-sequential-process)
1038 1038
@@ -1054,7 +1054,7 @@ begin -- process <label>
1054 end if; 1054 end if;
1055end process <label>;" 1055end process <label>;"
1056 "e" "")) 1056 "e" ""))
1057 "*List of user models. 1057 "List of user models.
1058VHDL models (templates) can be specified by the user in this list. They can be 1058VHDL models (templates) can be specified by the user in this list. They can be
1059invoked from the menu, through key bindings (`C-c C-m ...'), or by keyword 1059invoked from the menu, through key bindings (`C-c C-m ...'), or by keyword
1060electrification (i.e. overriding existing or creating new keywords, see 1060electrification (i.e. overriding existing or creating new keywords, see
@@ -1103,7 +1103,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1103 1103
1104(defcustom vhdl-compose-architecture-name '(".*" . "str") 1104(defcustom vhdl-compose-architecture-name '(".*" . "str")
1105 (concat 1105 (concat
1106 "*Specifies how the component architecture name is obtained. 1106 "Specifies how the component architecture name is obtained.
1107The component architecture name can be obtained by modifying the entity name 1107The component architecture name can be obtained by modifying the entity name
1108\(e.g. attaching or stripping off a substring). 1108\(e.g. attaching or stripping off a substring).
1109If TO STRING is empty, the architecture name is queried." 1109If TO STRING is empty, the architecture name is queried."
@@ -1115,7 +1115,7 @@ If TO STRING is empty, the architecture name is queried."
1115(defcustom vhdl-compose-configuration-name 1115(defcustom vhdl-compose-configuration-name
1116 '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg") 1116 '("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg")
1117 (concat 1117 (concat
1118 "*Specifies how the configuration name is obtained. 1118 "Specifies how the configuration name is obtained.
1119The configuration name can be obtained by modifying the entity and/or 1119The configuration name can be obtained by modifying the entity and/or
1120architecture name (e.g. attaching or stripping off a substring). The string 1120architecture name (e.g. attaching or stripping off a substring). The string
1121that is matched against the regexp is the concatenation of the entity and the 1121that is matched against the regexp is the concatenation of the entity and the
@@ -1129,7 +1129,7 @@ default setting as example)."
1129(defcustom vhdl-components-package-name 1129(defcustom vhdl-components-package-name
1130 '((".*" . "\\&_components") . "components") 1130 '((".*" . "\\&_components") . "components")
1131 (concat 1131 (concat
1132 "*Specifies how the name for the components package is obtained. 1132 "Specifies how the name for the components package is obtained.
1133The components package is a package containing all component declarations for 1133The components package is a package containing all component declarations for
1134the current design. Its name can be obtained by modifying the project name 1134the current design. Its name can be obtained by modifying the project name
1135\(e.g. attaching or stripping off a substring). If no project is defined, the 1135\(e.g. attaching or stripping off a substring). If no project is defined, the
@@ -1142,19 +1142,19 @@ DIRECTORY entry is chosen."
1142 :group 'vhdl-compose) 1142 :group 'vhdl-compose)
1143 1143
1144(defcustom vhdl-use-components-package nil 1144(defcustom vhdl-use-components-package nil
1145 "*Non-nil means use a separate components package for component declarations. 1145 "Non-nil means use a separate components package for component declarations.
1146Otherwise, component declarations are inserted and searched for in the 1146Otherwise, component declarations are inserted and searched for in the
1147architecture declarative parts." 1147architecture declarative parts."
1148 :type 'boolean 1148 :type 'boolean
1149 :group 'vhdl-compose) 1149 :group 'vhdl-compose)
1150 1150
1151(defcustom vhdl-compose-include-header t 1151(defcustom vhdl-compose-include-header t
1152 "*Non-nil means include a header in automatically generated files." 1152 "Non-nil means include a header in automatically generated files."
1153 :type 'boolean 1153 :type 'boolean
1154 :group 'vhdl-compose) 1154 :group 'vhdl-compose)
1155 1155
1156(defcustom vhdl-compose-create-files 'single 1156(defcustom vhdl-compose-create-files 'single
1157 "*Specifies whether new files should be created for the new component. 1157 "Specifies whether new files should be created for the new component.
1158The component's entity and architecture are inserted: 1158The component's entity and architecture are inserted:
1159 None : in current buffer 1159 None : in current buffer
1160 Single file : in new single file 1160 Single file : in new single file
@@ -1167,14 +1167,14 @@ The file names are obtained from variables `vhdl-entity-file-name' and
1167 :group 'vhdl-compose) 1167 :group 'vhdl-compose)
1168 1168
1169(defcustom vhdl-compose-configuration-create-file nil 1169(defcustom vhdl-compose-configuration-create-file nil
1170 "*Specifies whether a new file should be created for the configuration. 1170 "Specifies whether a new file should be created for the configuration.
1171If non-nil, a new file is created for the configuration. 1171If non-nil, a new file is created for the configuration.
1172The file name is obtained from variable `vhdl-configuration-file-name'." 1172The file name is obtained from variable `vhdl-configuration-file-name'."
1173 :type 'boolean 1173 :type 'boolean
1174 :group 'vhdl-compose) 1174 :group 'vhdl-compose)
1175 1175
1176(defcustom vhdl-compose-configuration-hierarchical t 1176(defcustom vhdl-compose-configuration-hierarchical t
1177 "*Specifies whether hierarchical configurations should be created. 1177 "Specifies whether hierarchical configurations should be created.
1178If non-nil, automatically created configurations are hierarchical and include 1178If non-nil, automatically created configurations are hierarchical and include
1179the whole hierarchy of subcomponents. Otherwise the configuration only 1179the whole hierarchy of subcomponents. Otherwise the configuration only
1180includes one level of subcomponents." 1180includes one level of subcomponents."
@@ -1182,7 +1182,7 @@ includes one level of subcomponents."
1182 :group 'vhdl-compose) 1182 :group 'vhdl-compose)
1183 1183
1184(defcustom vhdl-compose-configuration-use-subconfiguration t 1184(defcustom vhdl-compose-configuration-use-subconfiguration t
1185 "*Specifies whether subconfigurations should be used inside configurations. 1185 "Specifies whether subconfigurations should be used inside configurations.
1186If non-nil, automatically created configurations use configurations in binding 1186If non-nil, automatically created configurations use configurations in binding
1187indications for subcomponents, if such configurations exist. Otherwise, 1187indications for subcomponents, if such configurations exist. Otherwise,
1188entities are used in binding indications for subcomponents." 1188entities are used in binding indications for subcomponents."
@@ -1196,22 +1196,22 @@ entities are used in binding indications for subcomponents."
1196 :group 'vhdl-compose) 1196 :group 'vhdl-compose)
1197 1197
1198(defcustom vhdl-include-port-comments nil 1198(defcustom vhdl-include-port-comments nil
1199 "*Non-nil means include port comments when a port is pasted." 1199 "Non-nil means include port comments when a port is pasted."
1200 :type 'boolean 1200 :type 'boolean
1201 :group 'vhdl-port) 1201 :group 'vhdl-port)
1202 1202
1203(defcustom vhdl-include-direction-comments nil 1203(defcustom vhdl-include-direction-comments nil
1204 "*Non-nil means include port direction in instantiations as comments." 1204 "Non-nil means include port direction in instantiations as comments."
1205 :type 'boolean 1205 :type 'boolean
1206 :group 'vhdl-port) 1206 :group 'vhdl-port)
1207 1207
1208(defcustom vhdl-include-type-comments nil 1208(defcustom vhdl-include-type-comments nil
1209 "*Non-nil means include generic/port type in instantiations as comments." 1209 "Non-nil means include generic/port type in instantiations as comments."
1210 :type 'boolean 1210 :type 'boolean
1211 :group 'vhdl-port) 1211 :group 'vhdl-port)
1212 1212
1213(defcustom vhdl-include-group-comments 'never 1213(defcustom vhdl-include-group-comments 'never
1214 "*Specifies whether to include group comments and spacings. 1214 "Specifies whether to include group comments and spacings.
1215The comments and empty lines between groups of ports are pasted: 1215The comments and empty lines between groups of ports are pasted:
1216 Never : never 1216 Never : never
1217 Declarations: in entity/component/constant/signal declarations only 1217 Declarations: in entity/component/constant/signal declarations only
@@ -1223,7 +1223,7 @@ The comments and empty lines between groups of ports are pasted:
1223 1223
1224(defcustom vhdl-actual-port-name '(".*" . "\\&") 1224(defcustom vhdl-actual-port-name '(".*" . "\\&")
1225 (concat 1225 (concat
1226 "*Specifies how actual port names are obtained from formal port names. 1226 "Specifies how actual port names are obtained from formal port names.
1227In a component instantiation, an actual port name can be obtained by 1227In a component instantiation, an actual port name can be obtained by
1228modifying the formal port name (e.g. attaching or stripping off a substring)." 1228modifying the formal port name (e.g. attaching or stripping off a substring)."
1229 vhdl-name-doc-string) 1229 vhdl-name-doc-string)
@@ -1233,7 +1233,7 @@ modifying the formal port name (e.g. attaching or stripping off a substring)."
1233 1233
1234(defcustom vhdl-instance-name '(".*" . "\\&_%d") 1234(defcustom vhdl-instance-name '(".*" . "\\&_%d")
1235 (concat 1235 (concat
1236 "*Specifies how an instance name is obtained. 1236 "Specifies how an instance name is obtained.
1237The instance name can be obtained by modifying the name of the component to be 1237The instance name can be obtained by modifying the name of the component to be
1238instantiated (e.g. attaching or stripping off a substring). \"%d\" is replaced 1238instantiated (e.g. attaching or stripping off a substring). \"%d\" is replaced
1239by a unique number (starting with 1). 1239by a unique number (starting with 1).
@@ -1250,7 +1250,7 @@ If TO STRING is empty, the instance name is queried."
1250 1250
1251(defcustom vhdl-testbench-entity-name '(".*" . "\\&_tb") 1251(defcustom vhdl-testbench-entity-name '(".*" . "\\&_tb")
1252 (concat 1252 (concat
1253 "*Specifies how the testbench entity name is obtained. 1253 "Specifies how the testbench entity name is obtained.
1254The entity name of a testbench can be obtained by modifying the name of 1254The entity name of a testbench can be obtained by modifying the name of
1255the component to be tested (e.g. attaching or stripping off a substring)." 1255the component to be tested (e.g. attaching or stripping off a substring)."
1256 vhdl-name-doc-string) 1256 vhdl-name-doc-string)
@@ -1260,7 +1260,7 @@ the component to be tested (e.g. attaching or stripping off a substring)."
1260 1260
1261(defcustom vhdl-testbench-architecture-name '(".*" . "") 1261(defcustom vhdl-testbench-architecture-name '(".*" . "")
1262 (concat 1262 (concat
1263 "*Specifies how the testbench architecture name is obtained. 1263 "Specifies how the testbench architecture name is obtained.
1264The testbench architecture name can be obtained by modifying the name of 1264The testbench architecture name can be obtained by modifying the name of
1265the component to be tested (e.g. attaching or stripping off a substring). 1265the component to be tested (e.g. attaching or stripping off a substring).
1266If TO STRING is empty, the architecture name is queried." 1266If TO STRING is empty, the architecture name is queried."
@@ -1271,7 +1271,7 @@ If TO STRING is empty, the architecture name is queried."
1271 1271
1272(defcustom vhdl-testbench-configuration-name vhdl-compose-configuration-name 1272(defcustom vhdl-testbench-configuration-name vhdl-compose-configuration-name
1273 (concat 1273 (concat
1274 "*Specifies how the testbench configuration name is obtained. 1274 "Specifies how the testbench configuration name is obtained.
1275The configuration name of a testbench can be obtained by modifying the entity 1275The configuration name of a testbench can be obtained by modifying the entity
1276and/or architecture name (e.g. attaching or stripping off a substring). The 1276and/or architecture name (e.g. attaching or stripping off a substring). The
1277string that is matched against the regexp is the concatenation of the entity 1277string that is matched against the regexp is the concatenation of the entity
@@ -1284,7 +1284,7 @@ names (see default setting as example)."
1284 1284
1285(defcustom vhdl-testbench-dut-name '(".*" . "DUT") 1285(defcustom vhdl-testbench-dut-name '(".*" . "DUT")
1286 (concat 1286 (concat
1287 "*Specifies how a DUT instance name is obtained. 1287 "Specifies how a DUT instance name is obtained.
1288The design-under-test instance name (i.e. the component instantiated in the 1288The design-under-test instance name (i.e. the component instantiated in the
1289testbench) can be obtained by modifying the component name (e.g. attaching 1289testbench) can be obtained by modifying the component name (e.g. attaching
1290or stripping off a substring)." 1290or stripping off a substring)."
@@ -1294,7 +1294,7 @@ or stripping off a substring)."
1294 :group 'vhdl-testbench) 1294 :group 'vhdl-testbench)
1295 1295
1296(defcustom vhdl-testbench-include-header t 1296(defcustom vhdl-testbench-include-header t
1297 "*Non-nil means include a header in automatically generated files." 1297 "Non-nil means include a header in automatically generated files."
1298 :type 'boolean 1298 :type 'boolean
1299 :group 'vhdl-testbench) 1299 :group 'vhdl-testbench)
1300 1300
@@ -1302,7 +1302,7 @@ or stripping off a substring)."
1302 -- clock 1302 -- clock
1303 signal Clk : std_logic := '1'; 1303 signal Clk : std_logic := '1';
1304" 1304"
1305 "*String or file to be inserted in the testbench declarative part. 1305 "String or file to be inserted in the testbench declarative part.
1306If the string specifies an existing file name, the contents of the file is 1306If the string specifies an existing file name, the contents of the file is
1307inserted, otherwise the string itself is inserted in the testbench 1307inserted, otherwise the string itself is inserted in the testbench
1308architecture before the BEGIN keyword. 1308architecture before the BEGIN keyword.
@@ -1322,7 +1322,7 @@ Type `C-j' for newlines."
1322 wait until Clk = '1'; 1322 wait until Clk = '1';
1323 end process WaveGen_Proc; 1323 end process WaveGen_Proc;
1324" 1324"
1325 "*String or file to be inserted in the testbench statement part. 1325 "String or file to be inserted in the testbench statement part.
1326If the string specifies an existing file name, the contents of the file is 1326If the string specifies an existing file name, the contents of the file is
1327inserted, otherwise the string itself is inserted in the testbench 1327inserted, otherwise the string itself is inserted in the testbench
1328architecture before the END keyword. 1328architecture before the END keyword.
@@ -1331,22 +1331,22 @@ Type `C-j' for newlines."
1331 :group 'vhdl-testbench) 1331 :group 'vhdl-testbench)
1332 1332
1333(defcustom vhdl-testbench-initialize-signals nil 1333(defcustom vhdl-testbench-initialize-signals nil
1334 "*Non-nil means initialize signals with `0' when declared in testbench." 1334 "Non-nil means initialize signals with `0' when declared in testbench."
1335 :type 'boolean 1335 :type 'boolean
1336 :group 'vhdl-testbench) 1336 :group 'vhdl-testbench)
1337 1337
1338(defcustom vhdl-testbench-include-library t 1338(defcustom vhdl-testbench-include-library t
1339 "*Non-nil means a library/use clause for std_logic_1164 is included." 1339 "Non-nil means a library/use clause for std_logic_1164 is included."
1340 :type 'boolean 1340 :type 'boolean
1341 :group 'vhdl-testbench) 1341 :group 'vhdl-testbench)
1342 1342
1343(defcustom vhdl-testbench-include-configuration t 1343(defcustom vhdl-testbench-include-configuration t
1344 "*Non-nil means a testbench configuration is attached at the end." 1344 "Non-nil means a testbench configuration is attached at the end."
1345 :type 'boolean 1345 :type 'boolean
1346 :group 'vhdl-testbench) 1346 :group 'vhdl-testbench)
1347 1347
1348(defcustom vhdl-testbench-create-files 'single 1348(defcustom vhdl-testbench-create-files 'single
1349 "*Specifies whether new files should be created for the testbench. 1349 "Specifies whether new files should be created for the testbench.
1350testbench entity and architecture are inserted: 1350testbench entity and architecture are inserted:
1351 None : in current buffer 1351 None : in current buffer
1352 Single file : in new single file 1352 Single file : in new single file
@@ -1360,7 +1360,7 @@ and `vhdl-testbench-architecture-file-name'."
1360 1360
1361(defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name 1361(defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name
1362 (concat 1362 (concat
1363 "*Specifies how the testbench entity file name is obtained. 1363 "Specifies how the testbench entity file name is obtained.
1364The entity file name can be obtained by modifying the testbench entity name 1364The entity file name can be obtained by modifying the testbench entity name
1365\(e.g. attaching or stripping off a substring). The file extension is 1365\(e.g. attaching or stripping off a substring). The file extension is
1366automatically taken from the file name of the current buffer. Testbench 1366automatically taken from the file name of the current buffer. Testbench
@@ -1373,7 +1373,7 @@ absolute path to the file name."
1373 1373
1374(defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name 1374(defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name
1375 (concat 1375 (concat
1376 "*Specifies how the testbench architecture file name is obtained. 1376 "Specifies how the testbench architecture file name is obtained.
1377The architecture file name can be obtained by modifying the testbench entity 1377The architecture file name can be obtained by modifying the testbench entity
1378and/or architecture name (e.g. attaching or stripping off a substring). The 1378and/or architecture name (e.g. attaching or stripping off a substring). The
1379string that is matched against the regexp is the concatenation of the entity 1379string that is matched against the regexp is the concatenation of the entity
@@ -1392,17 +1392,17 @@ name."
1392 :group 'vhdl) 1392 :group 'vhdl)
1393 1393
1394(defcustom vhdl-self-insert-comments t 1394(defcustom vhdl-self-insert-comments t
1395 "*Non-nil means various templates automatically insert help comments." 1395 "Non-nil means various templates automatically insert help comments."
1396 :type 'boolean 1396 :type 'boolean
1397 :group 'vhdl-comment) 1397 :group 'vhdl-comment)
1398 1398
1399(defcustom vhdl-prompt-for-comments t 1399(defcustom vhdl-prompt-for-comments t
1400 "*Non-nil means various templates prompt for user definable comments." 1400 "Non-nil means various templates prompt for user definable comments."
1401 :type 'boolean 1401 :type 'boolean
1402 :group 'vhdl-comment) 1402 :group 'vhdl-comment)
1403 1403
1404(defcustom vhdl-inline-comment-column 40 1404(defcustom vhdl-inline-comment-column 40
1405 "*Column to indent and align inline comments to. 1405 "Column to indent and align inline comments to.
1406Overrides local option `comment-column'. 1406Overrides local option `comment-column'.
1407 1407
1408NOTE: Activate the new setting in a VHDL buffer by using the menu entry 1408NOTE: Activate the new setting in a VHDL buffer by using the menu entry
@@ -1411,7 +1411,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1411 :group 'vhdl-comment) 1411 :group 'vhdl-comment)
1412 1412
1413(defcustom vhdl-end-comment-column 79 1413(defcustom vhdl-end-comment-column 79
1414 "*End of comment column. 1414 "End of comment column.
1415Comments that exceed this column number are wrapped. 1415Comments that exceed this column number are wrapped.
1416 1416
1417NOTE: Activate the new setting in a VHDL buffer by using the menu entry 1417NOTE: Activate the new setting in a VHDL buffer by using the menu entry
@@ -1427,19 +1427,19 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1427 :group 'vhdl) 1427 :group 'vhdl)
1428 1428
1429(defcustom vhdl-auto-align t 1429(defcustom vhdl-auto-align t
1430 "*Non-nil means align some templates automatically after generation." 1430 "Non-nil means align some templates automatically after generation."
1431 :type 'boolean 1431 :type 'boolean
1432 :group 'vhdl-align) 1432 :group 'vhdl-align)
1433 1433
1434(defcustom vhdl-align-groups t 1434(defcustom vhdl-align-groups t
1435 "*Non-nil means align groups of code lines separately. 1435 "Non-nil means align groups of code lines separately.
1436A group of code lines is a region of consecutive lines between two lines that 1436A group of code lines is a region of consecutive lines between two lines that
1437match the regexp in option `vhdl-align-group-separate'." 1437match the regexp in option `vhdl-align-group-separate'."
1438 :type 'boolean 1438 :type 'boolean
1439 :group 'vhdl-align) 1439 :group 'vhdl-align)
1440 1440
1441(defcustom vhdl-align-group-separate "^\\s-*$" 1441(defcustom vhdl-align-group-separate "^\\s-*$"
1442 "*Regexp for matching a line that separates groups of lines for alignment. 1442 "Regexp for matching a line that separates groups of lines for alignment.
1443Examples: 1443Examples:
1444 \"^\\s-*$\": matches an empty line 1444 \"^\\s-*$\": matches an empty line
1445 \"^\\s-*\\(--.*\\)?$\": matches an empty line or a comment-only line" 1445 \"^\\s-*\\(--.*\\)?$\": matches an empty line or a comment-only line"
@@ -1447,7 +1447,7 @@ Examples:
1447 :group 'vhdl-align) 1447 :group 'vhdl-align)
1448 1448
1449(defcustom vhdl-align-same-indent t 1449(defcustom vhdl-align-same-indent t
1450 "*Non-nil means align blocks with same indent separately. 1450 "Non-nil means align blocks with same indent separately.
1451When a region or the entire buffer is aligned, the code is divided into 1451When a region or the entire buffer is aligned, the code is divided into
1452blocks of same indent which are aligned separately (except for argument/port 1452blocks of same indent which are aligned separately (except for argument/port
1453lists). This gives nicer alignment in most cases. 1453lists). This gives nicer alignment in most cases.
@@ -1461,7 +1461,7 @@ Option `vhdl-align-groups' still applies within these blocks."
1461 :group 'vhdl) 1461 :group 'vhdl)
1462 1462
1463(defcustom vhdl-highlight-keywords t 1463(defcustom vhdl-highlight-keywords t
1464 "*Non-nil means highlight VHDL keywords and other standardized words. 1464 "Non-nil means highlight VHDL keywords and other standardized words.
1465The following faces are used: 1465The following faces are used:
1466 `font-lock-keyword-face' : keywords 1466 `font-lock-keyword-face' : keywords
1467 `font-lock-type-face' : standardized types 1467 `font-lock-type-face' : standardized types
@@ -1477,7 +1477,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1477 :group 'vhdl-highlight) 1477 :group 'vhdl-highlight)
1478 1478
1479(defcustom vhdl-highlight-names t 1479(defcustom vhdl-highlight-names t
1480 "*Non-nil means highlight declaration names and construct labels. 1480 "Non-nil means highlight declaration names and construct labels.
1481The following faces are used: 1481The following faces are used:
1482 `font-lock-function-name-face' : names in declarations of units, 1482 `font-lock-function-name-face' : names in declarations of units,
1483 subprograms, components, as well as labels of VHDL constructs 1483 subprograms, components, as well as labels of VHDL constructs
@@ -1494,7 +1494,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1494 :group 'vhdl-highlight) 1494 :group 'vhdl-highlight)
1495 1495
1496(defcustom vhdl-highlight-special-words nil 1496(defcustom vhdl-highlight-special-words nil
1497 "*Non-nil means highlight words with special syntax. 1497 "Non-nil means highlight words with special syntax.
1498The words with syntax and color specified in option `vhdl-special-syntax-alist' 1498The words with syntax and color specified in option `vhdl-special-syntax-alist'
1499are highlighted accordingly. 1499are highlighted accordingly.
1500Can be used for visual support of naming conventions. 1500Can be used for visual support of naming conventions.
@@ -1507,7 +1507,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1507 :group 'vhdl-highlight) 1507 :group 'vhdl-highlight)
1508 1508
1509(defcustom vhdl-highlight-forbidden-words nil 1509(defcustom vhdl-highlight-forbidden-words nil
1510 "*Non-nil means highlight forbidden words. 1510 "Non-nil means highlight forbidden words.
1511The reserved words specified in option `vhdl-forbidden-words' or having the 1511The reserved words specified in option `vhdl-forbidden-words' or having the
1512syntax specified in option `vhdl-forbidden-syntax' are highlighted in a 1512syntax specified in option `vhdl-forbidden-syntax' are highlighted in a
1513warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to 1513warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to
@@ -1522,7 +1522,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1522 :group 'vhdl-highlight) 1522 :group 'vhdl-highlight)
1523 1523
1524(defcustom vhdl-highlight-verilog-keywords nil 1524(defcustom vhdl-highlight-verilog-keywords nil
1525 "*Non-nil means highlight Verilog keywords as reserved words. 1525 "Non-nil means highlight Verilog keywords as reserved words.
1526Verilog keywords are highlighted in a warning color (face 1526Verilog keywords are highlighted in a warning color (face
1527`vhdl-font-lock-reserved-words-face') to indicate not to use them. 1527`vhdl-font-lock-reserved-words-face') to indicate not to use them.
1528 1528
@@ -1535,7 +1535,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1535 :group 'vhdl-highlight) 1535 :group 'vhdl-highlight)
1536 1536
1537(defcustom vhdl-highlight-translate-off nil 1537(defcustom vhdl-highlight-translate-off nil
1538 "*Non-nil means background-highlight code excluded from translation. 1538 "Non-nil means background-highlight code excluded from translation.
1539That is, all code between \"-- pragma translate_off\" and 1539That is, all code between \"-- pragma translate_off\" and
1540\"-- pragma translate_on\" is highlighted using a different background color 1540\"-- pragma translate_on\" is highlighted using a different background color
1541\(face `vhdl-font-lock-translate-off-face'). 1541\(face `vhdl-font-lock-translate-off-face').
@@ -1549,7 +1549,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1549 :group 'vhdl-highlight) 1549 :group 'vhdl-highlight)
1550 1550
1551(defcustom vhdl-highlight-case-sensitive nil 1551(defcustom vhdl-highlight-case-sensitive nil
1552 "*Non-nil means consider case for highlighting. 1552 "Non-nil means consider case for highlighting.
1553Possible trade-off: 1553Possible trade-off:
1554 non-nil also upper-case VHDL words are highlighted, but case of words with 1554 non-nil also upper-case VHDL words are highlighted, but case of words with
1555 special syntax is not considered 1555 special syntax is not considered
@@ -1566,7 +1566,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1566 '(("generic/constant" "\\w+_[cg]" "Gold3" "BurlyWood1") 1566 '(("generic/constant" "\\w+_[cg]" "Gold3" "BurlyWood1")
1567 ("type" "\\w+_t" "ForestGreen" "PaleGreen") 1567 ("type" "\\w+_t" "ForestGreen" "PaleGreen")
1568 ("variable" "\\w+_v" "Grey50" "Grey80")) 1568 ("variable" "\\w+_v" "Grey50" "Grey80"))
1569 "*List of special syntax to be highlighted. 1569 "List of special syntax to be highlighted.
1570If option `vhdl-highlight-special-words' is non-nil, words with the specified 1570If option `vhdl-highlight-special-words' is non-nil, words with the specified
1571syntax (as regular expression) are highlighted in the corresponding color. 1571syntax (as regular expression) are highlighted in the corresponding color.
1572 1572
@@ -1599,7 +1599,7 @@ NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu
1599 :group 'vhdl-highlight) 1599 :group 'vhdl-highlight)
1600 1600
1601(defcustom vhdl-forbidden-words '() 1601(defcustom vhdl-forbidden-words '()
1602 "*List of forbidden words to be highlighted. 1602 "List of forbidden words to be highlighted.
1603If option `vhdl-highlight-forbidden-words' is non-nil, these reserved 1603If option `vhdl-highlight-forbidden-words' is non-nil, these reserved
1604words are highlighted in a warning color to indicate not to use them. 1604words are highlighted in a warning color to indicate not to use them.
1605 1605
@@ -1612,7 +1612,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1612 :group 'vhdl-highlight) 1612 :group 'vhdl-highlight)
1613 1613
1614(defcustom vhdl-forbidden-syntax "" 1614(defcustom vhdl-forbidden-syntax ""
1615 "*Syntax of forbidden words to be highlighted. 1615 "Syntax of forbidden words to be highlighted.
1616If option `vhdl-highlight-forbidden-words' is non-nil, words with this 1616If option `vhdl-highlight-forbidden-words' is non-nil, words with this
1617syntax are highlighted in a warning color to indicate not to use them. 1617syntax are highlighted in a warning color to indicate not to use them.
1618Can be used to highlight too long identifiers (e.g. \"\\w\\w\\w\\w\\w\\w\\w\\w\\w\\w+\" 1618Can be used to highlight too long identifiers (e.g. \"\\w\\w\\w\\w\\w\\w\\w\\w\\w\\w+\"
@@ -1627,7 +1627,7 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1627 :group 'vhdl-highlight) 1627 :group 'vhdl-highlight)
1628 1628
1629(defcustom vhdl-directive-keywords '("pragma" "synopsys") 1629(defcustom vhdl-directive-keywords '("pragma" "synopsys")
1630 "*List of compiler directive keywords recognized for highlighting. 1630 "List of compiler directive keywords recognized for highlighting.
1631 1631
1632NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu 1632NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1633 entry \"Fontify Buffer\")." 1633 entry \"Fontify Buffer\")."
@@ -1643,13 +1643,13 @@ NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
1643 :group 'vhdl) 1643 :group 'vhdl)
1644 1644
1645(defcustom vhdl-speedbar-auto-open nil 1645(defcustom vhdl-speedbar-auto-open nil
1646 "*Non-nil means automatically open speedbar at startup. 1646 "Non-nil means automatically open speedbar at startup.
1647Alternatively, the speedbar can be opened from the VHDL menu." 1647Alternatively, the speedbar can be opened from the VHDL menu."
1648 :type 'boolean 1648 :type 'boolean
1649 :group 'vhdl-speedbar) 1649 :group 'vhdl-speedbar)
1650 1650
1651(defcustom vhdl-speedbar-display-mode 'files 1651(defcustom vhdl-speedbar-display-mode 'files
1652 "*Specifies the default displaying mode when opening speedbar. 1652 "Specifies the default displaying mode when opening speedbar.
1653Alternatively, the displaying mode can be selected from the speedbar menu or 1653Alternatively, the displaying mode can be selected from the speedbar menu or
1654by typing `f' (files), `h' (directory hierarchy) or `H' (project hierarchy)." 1654by typing `f' (files), `h' (directory hierarchy) or `H' (project hierarchy)."
1655 :type '(choice (const :tag "Files" files) 1655 :type '(choice (const :tag "Files" files)
@@ -1658,7 +1658,7 @@ by typing `f' (files), `h' (directory hierarchy) or `H' (project hierarchy)."
1658 :group 'vhdl-speedbar) 1658 :group 'vhdl-speedbar)
1659 1659
1660(defcustom vhdl-speedbar-scan-limit '(10000000 (1000000 50)) 1660(defcustom vhdl-speedbar-scan-limit '(10000000 (1000000 50))
1661 "*Limits scanning of large files and netlists. 1661 "Limits scanning of large files and netlists.
1662Design units: maximum file size to scan for design units 1662Design units: maximum file size to scan for design units
1663Hierarchy (instances of subcomponents): 1663Hierarchy (instances of subcomponents):
1664 File size: maximum file size to scan for instances (in bytes) 1664 File size: maximum file size to scan for instances (in bytes)
@@ -1685,18 +1685,18 @@ prevent the scanning of large netlists."
1685 :group 'vhdl-speedbar) 1685 :group 'vhdl-speedbar)
1686 1686
1687(defcustom vhdl-speedbar-jump-to-unit t 1687(defcustom vhdl-speedbar-jump-to-unit t
1688 "*Non-nil means jump to the design unit code when opened in a buffer. 1688 "Non-nil means jump to the design unit code when opened in a buffer.
1689The buffer cursor position is left unchanged otherwise." 1689The buffer cursor position is left unchanged otherwise."
1690 :type 'boolean 1690 :type 'boolean
1691 :group 'vhdl-speedbar) 1691 :group 'vhdl-speedbar)
1692 1692
1693(defcustom vhdl-speedbar-update-on-saving t 1693(defcustom vhdl-speedbar-update-on-saving t
1694 "*Automatically update design hierarchy when buffer is saved." 1694 "Automatically update design hierarchy when buffer is saved."
1695 :type 'boolean 1695 :type 'boolean
1696 :group 'vhdl-speedbar) 1696 :group 'vhdl-speedbar)
1697 1697
1698(defcustom vhdl-speedbar-save-cache '(hierarchy display) 1698(defcustom vhdl-speedbar-save-cache '(hierarchy display)
1699 "*Automatically save modified hierarchy caches when exiting Emacs. 1699 "Automatically save modified hierarchy caches when exiting Emacs.
1700 Hierarchy: design hierarchy information 1700 Hierarchy: design hierarchy information
1701 Display: displaying information (which design units to expand)" 1701 Display: displaying information (which design units to expand)"
1702 :type '(set (const :tag "Hierarchy" hierarchy) 1702 :type '(set (const :tag "Hierarchy" hierarchy)
@@ -1704,7 +1704,7 @@ The buffer cursor position is left unchanged otherwise."
1704 :group 'vhdl-speedbar) 1704 :group 'vhdl-speedbar)
1705 1705
1706(defcustom vhdl-speedbar-cache-file-name ".emacs-vhdl-cache-\\1-\\2" 1706(defcustom vhdl-speedbar-cache-file-name ".emacs-vhdl-cache-\\1-\\2"
1707 "*Name of file for saving hierarchy cache. 1707 "Name of file for saving hierarchy cache.
1708\"\\1\" is replaced by the project name if a project is specified, 1708\"\\1\" is replaced by the project name if a project is specified,
1709\"directory\" otherwise. \"\\2\" is replaced by the user name (allows for 1709\"directory\" otherwise. \"\\2\" is replaced by the user name (allows for
1710different users to have cache files in the same directory). Can also have 1710different users to have cache files in the same directory). Can also have
@@ -1718,20 +1718,20 @@ an absolute path (i.e. all caches can be stored in one global directory)."
1718 :group 'vhdl) 1718 :group 'vhdl)
1719 1719
1720(defcustom vhdl-index-menu nil 1720(defcustom vhdl-index-menu nil
1721 "*Non-nil means add an index menu for a source file when loading. 1721 "Non-nil means add an index menu for a source file when loading.
1722Alternatively, the speedbar can be used. Note that the index menu scans a file 1722Alternatively, the speedbar can be used. Note that the index menu scans a file
1723when it is opened, while speedbar only scans the file upon request." 1723when it is opened, while speedbar only scans the file upon request."
1724 :type 'boolean 1724 :type 'boolean
1725 :group 'vhdl-menu) 1725 :group 'vhdl-menu)
1726 1726
1727(defcustom vhdl-source-file-menu nil 1727(defcustom vhdl-source-file-menu nil
1728 "*Non-nil means add a menu of all source files in current directory. 1728 "Non-nil means add a menu of all source files in current directory.
1729Alternatively, the speedbar can be used." 1729Alternatively, the speedbar can be used."
1730 :type 'boolean 1730 :type 'boolean
1731 :group 'vhdl-menu) 1731 :group 'vhdl-menu)
1732 1732
1733(defcustom vhdl-hideshow-menu nil 1733(defcustom vhdl-hideshow-menu nil
1734 "*Non-nil means add hideshow menu and functionality at startup. 1734 "Non-nil means add hideshow menu and functionality at startup.
1735Hideshow can also be enabled from the VHDL Mode menu. 1735Hideshow can also be enabled from the VHDL Mode menu.
1736Hideshow allows hiding code of various VHDL constructs. 1736Hideshow allows hiding code of various VHDL constructs.
1737 1737
@@ -1741,7 +1741,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1741 :group 'vhdl-menu) 1741 :group 'vhdl-menu)
1742 1742
1743(defcustom vhdl-hide-all-init nil 1743(defcustom vhdl-hide-all-init nil
1744 "*Non-nil means hide all design units initially after a file is loaded." 1744 "Non-nil means hide all design units initially after a file is loaded."
1745 :type 'boolean 1745 :type 'boolean
1746 :group 'vhdl-menu) 1746 :group 'vhdl-menu)
1747 1747
@@ -1751,7 +1751,7 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1751 :group 'vhdl) 1751 :group 'vhdl)
1752 1752
1753(defcustom vhdl-print-two-column t 1753(defcustom vhdl-print-two-column t
1754 "*Non-nil means print code in two columns and landscape format. 1754 "Non-nil means print code in two columns and landscape format.
1755Adjusts settings in a way that PostScript printing (\"File\" menu, `ps-print') 1755Adjusts settings in a way that PostScript printing (\"File\" menu, `ps-print')
1756prints VHDL files in a nice two-column landscape style. 1756prints VHDL files in a nice two-column landscape style.
1757 1757
@@ -1761,7 +1761,7 @@ NOTE: Activate the new setting by restarting Emacs.
1761 :group 'vhdl-print) 1761 :group 'vhdl-print)
1762 1762
1763(defcustom vhdl-print-customize-faces t 1763(defcustom vhdl-print-customize-faces t
1764 "*Non-nil means use an optimized set of faces for PostScript printing. 1764 "Non-nil means use an optimized set of faces for PostScript printing.
1765 1765
1766NOTE: Activate the new setting by restarting Emacs. 1766NOTE: Activate the new setting by restarting Emacs.
1767 Overrides `ps-print' settings locally." 1767 Overrides `ps-print' settings locally."
@@ -1774,7 +1774,7 @@ NOTE: Activate the new setting by restarting Emacs.
1774 :group 'vhdl) 1774 :group 'vhdl)
1775 1775
1776(defcustom vhdl-intelligent-tab t 1776(defcustom vhdl-intelligent-tab t
1777 "*Non-nil means `TAB' does indentation, word completion and tab insertion. 1777 "Non-nil means `TAB' does indentation, word completion and tab insertion.
1778That is, if preceding character is part of a word then complete word, 1778That is, if preceding character is part of a word then complete word,
1779else if not at beginning of line then insert tab, 1779else if not at beginning of line then insert tab,
1780else if last command was a `TAB' or `RET' then dedent one step, 1780else if last command was a `TAB' or `RET' then dedent one step,
@@ -1788,28 +1788,28 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1788 :group 'vhdl-misc) 1788 :group 'vhdl-misc)
1789 1789
1790(defcustom vhdl-indent-syntax-based t 1790(defcustom vhdl-indent-syntax-based t
1791 "*Non-nil means indent lines of code based on their syntactic context. 1791 "Non-nil means indent lines of code based on their syntactic context.
1792Otherwise, a line is indented like the previous nonblank line. This can be 1792Otherwise, a line is indented like the previous nonblank line. This can be
1793useful in large files where syntax-based indentation gets very slow." 1793useful in large files where syntax-based indentation gets very slow."
1794 :type 'boolean 1794 :type 'boolean
1795 :group 'vhdl-misc) 1795 :group 'vhdl-misc)
1796 1796
1797(defcustom vhdl-word-completion-case-sensitive nil 1797(defcustom vhdl-word-completion-case-sensitive nil
1798 "*Non-nil means word completion using `TAB' is case sensitive. 1798 "Non-nil means word completion using `TAB' is case sensitive.
1799That is, `TAB' completes words that start with the same letters and case. 1799That is, `TAB' completes words that start with the same letters and case.
1800Otherwise, case is ignored." 1800Otherwise, case is ignored."
1801 :type 'boolean 1801 :type 'boolean
1802 :group 'vhdl-misc) 1802 :group 'vhdl-misc)
1803 1803
1804(defcustom vhdl-word-completion-in-minibuffer t 1804(defcustom vhdl-word-completion-in-minibuffer t
1805 "*Non-nil enables word completion in minibuffer (for template prompts). 1805 "Non-nil enables word completion in minibuffer (for template prompts).
1806 1806
1807NOTE: Activate the new setting by restarting Emacs." 1807NOTE: Activate the new setting by restarting Emacs."
1808 :type 'boolean 1808 :type 'boolean
1809 :group 'vhdl-misc) 1809 :group 'vhdl-misc)
1810 1810
1811(defcustom vhdl-underscore-is-part-of-word nil 1811(defcustom vhdl-underscore-is-part-of-word nil
1812 "*Non-nil means consider the underscore character `_' as part of word. 1812 "Non-nil means consider the underscore character `_' as part of word.
1813An identifier containing underscores is then treated as a single word in 1813An identifier containing underscores is then treated as a single word in
1814select and move operations. All parts of an identifier separated by underscore 1814select and move operations. All parts of an identifier separated by underscore
1815are treated as single words otherwise. 1815are treated as single words otherwise.
@@ -1844,24 +1844,24 @@ NOTE: Activate the new setting in a VHDL buffer by using the menu entry
1844;; Internal variables 1844;; Internal variables
1845 1845
1846(defvar vhdl-menu-max-size 20 1846(defvar vhdl-menu-max-size 20
1847 "*Specifies the maximum size of a menu before splitting it into submenus.") 1847 "Specifies the maximum size of a menu before splitting it into submenus.")
1848 1848
1849(defvar vhdl-progress-interval 1 1849(defvar vhdl-progress-interval 1
1850 "*Interval used to update progress status during long operations. 1850 "Interval used to update progress status during long operations.
1851If a number, percentage complete gets updated after each interval of 1851If a number, percentage complete gets updated after each interval of
1852that many seconds. To inhibit all messages, set this option to nil.") 1852that many seconds. To inhibit all messages, set this option to nil.")
1853 1853
1854(defvar vhdl-inhibit-startup-warnings-p nil 1854(defvar vhdl-inhibit-startup-warnings-p nil
1855 "*If non-nil, inhibits start up compatibility warnings.") 1855 "If non-nil, inhibits start up compatibility warnings.")
1856 1856
1857(defvar vhdl-strict-syntax-p nil 1857(defvar vhdl-strict-syntax-p nil
1858 "*If non-nil, all syntactic symbols must be found in `vhdl-offsets-alist'. 1858 "If non-nil, all syntactic symbols must be found in `vhdl-offsets-alist'.
1859If the syntactic symbol for a particular line does not match a symbol 1859If the syntactic symbol for a particular line does not match a symbol
1860in the offsets alist, an error is generated, otherwise no error is 1860in the offsets alist, an error is generated, otherwise no error is
1861reported and the syntactic symbol is ignored.") 1861reported and the syntactic symbol is ignored.")
1862 1862
1863(defvar vhdl-echo-syntactic-information-p nil 1863(defvar vhdl-echo-syntactic-information-p nil
1864 "*If non-nil, syntactic info is echoed when the line is indented.") 1864 "If non-nil, syntactic info is echoed when the line is indented.")
1865 1865
1866(defconst vhdl-offsets-alist-default 1866(defconst vhdl-offsets-alist-default
1867 '((string . -1000) 1867 '((string . -1000)
@@ -1889,7 +1889,7 @@ Do not change this constant! See the variable `vhdl-offsets-alist' for
1889more information.") 1889more information.")
1890 1890
1891(defvar vhdl-offsets-alist (copy-alist vhdl-offsets-alist-default) 1891(defvar vhdl-offsets-alist (copy-alist vhdl-offsets-alist-default)
1892 "*Association list of syntactic element symbols and indentation offsets. 1892 "Association list of syntactic element symbols and indentation offsets.
1893As described below, each cons cell in this list has the form: 1893As described below, each cons cell in this list has the form:
1894 1894
1895 (SYNTACTIC-SYMBOL . OFFSET) 1895 (SYNTACTIC-SYMBOL . OFFSET)
@@ -1950,7 +1950,7 @@ Here is the current list of valid syntactic element symbols:
1950 package-body -- inside a package body") 1950 package-body -- inside a package body")
1951 1951
1952(defvar vhdl-comment-only-line-offset 0 1952(defvar vhdl-comment-only-line-offset 0
1953 "*Extra offset for line which contains only the start of a comment. 1953 "Extra offset for line which contains only the start of a comment.
1954Can contain an integer or a cons cell of the form: 1954Can contain an integer or a cons cell of the form:
1955 1955
1956 (NON-ANCHORED-OFFSET . ANCHORED-OFFSET) 1956 (NON-ANCHORED-OFFSET . ANCHORED-OFFSET)
@@ -1961,7 +1961,7 @@ the amount of offset to give column-zero anchored comment-only lines.
1961Just an integer as value is equivalent to (<val> . 0)") 1961Just an integer as value is equivalent to (<val> . 0)")
1962 1962
1963(defvar vhdl-special-indent-hook nil 1963(defvar vhdl-special-indent-hook nil
1964 "*Hook for user defined special indentation adjustments. 1964 "Hook for user defined special indentation adjustments.
1965This hook gets called after a line is indented by the mode.") 1965This hook gets called after a line is indented by the mode.")
1966 1966
1967(defvar vhdl-style-alist 1967(defvar vhdl-style-alist
@@ -2003,7 +2003,7 @@ your style, only those that are different from the default.")
2003 (setq vhdl-style-alist (cons default vhdl-style-alist)))) 2003 (setq vhdl-style-alist (cons default vhdl-style-alist))))
2004 2004
2005(defvar vhdl-mode-hook nil 2005(defvar vhdl-mode-hook nil
2006 "*Hook called by `vhdl-mode'.") 2006 "Hook called by `vhdl-mode'.")
2007 2007
2008 2008
2009;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2009;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el
index 1f50910330c..f9d83da1a3a 100644
--- a/lisp/progmodes/xscheme.el
+++ b/lisp/progmodes/xscheme.el
@@ -48,7 +48,7 @@
48 "Name of xscheme buffer that we're currently interacting with.") 48 "Name of xscheme buffer that we're currently interacting with.")
49 49
50(defvar xscheme-expressions-ring-max 30 50(defvar xscheme-expressions-ring-max 30
51 "*Maximum length of Scheme expressions ring.") 51 "Maximum length of Scheme expressions ring.")
52 52
53(defvar xscheme-expressions-ring nil 53(defvar xscheme-expressions-ring nil
54 "List of expressions recently transmitted to the Scheme process.") 54 "List of expressions recently transmitted to the Scheme process.")
@@ -116,12 +116,12 @@ from being inserted into the process-buffer.")
116 :group 'lisp) 116 :group 'lisp)
117 117
118(defcustom scheme-band-name nil 118(defcustom scheme-band-name nil
119 "*Band loaded by the `run-scheme' command." 119 "Band loaded by the `run-scheme' command."
120 :type '(choice (const nil) string) 120 :type '(choice (const nil) string)
121 :group 'xscheme) 121 :group 'xscheme)
122 122
123(defcustom scheme-program-arguments nil 123(defcustom scheme-program-arguments nil
124 "*Arguments passed to the Scheme program by the `run-scheme' command." 124 "Arguments passed to the Scheme program by the `run-scheme' command."
125 :type '(choice (const nil) string) 125 :type '(choice (const nil) string)
126 :group 'xscheme) 126 :group 'xscheme)
127 127