aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2009-10-03 19:28:05 +0000
committerChong Yidong2009-10-03 19:28:05 +0000
commite6e267fcba9251bbb7eeb66ca55c08e47c635ab8 (patch)
tree91cf36bb9e07372ef8df6bf3d52ec9da8119e05b
parented6b01957ea6cc8a51a38e6094c202219b23e86d (diff)
downloademacs-e6e267fcba9251bbb7eeb66ca55c08e47c635ab8.tar.gz
emacs-e6e267fcba9251bbb7eeb66ca55c08e47c635ab8.zip
* cedet/srecode/srt-mode.el (srecode-template-mode): Doc fix.
* files.el (auto-mode-alist): Add .srt and Project.ede. * cedet/semantic.el (semantic-mode): Handle srecode-template-mode-hook as well. * cedet/srecode/template.el: Remove hook variable. * cedet/ede/proj-comp.el: Require ede/pmake when compiling. * cedet/ede.el (ede-target-forms-menu): Don't enable if no projects exist. * cedet/srecode/map.el (srecode-map-base-template-dir): Look for templates in data-directory. * cedet/ede/srecode.el (ede-srecode-setup): Use default templates directory. * cedet/semantic/util-modes.el (semantic-highlight-func-mode): Doc fix. * cedet/ede/proj-comp.el (ede-proj-makefile-insert-variables): Only insert each variable once. * cedet/ede/pmake.el (ede-pmake-insert-variable-once): New macro. (ede-pmake-insert-variable-shared): Use it. * cedet/ede/cpp-root.el (ede-preprocessor-map): Do not deref table for lexical table iff table is nil.
-rw-r--r--lisp/ChangeLog36
-rw-r--r--lisp/cedet/ede.el4
-rw-r--r--lisp/cedet/ede/cpp-root.el4
-rw-r--r--lisp/cedet/ede/pmake.el36
-rw-r--r--lisp/cedet/ede/proj-comp.el12
-rw-r--r--lisp/cedet/ede/srecode.el28
-rw-r--r--lisp/cedet/semantic.el16
-rw-r--r--lisp/cedet/semantic/util-modes.el6
-rw-r--r--lisp/cedet/srecode/map.el7
-rw-r--r--lisp/cedet/srecode/srt-mode.el2
-rw-r--r--lisp/cedet/srecode/template.el10
-rw-r--r--lisp/files.el2
12 files changed, 104 insertions, 59 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 424d9860ac7..7ab1f0931b2 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,39 @@
12009-10-03 Chong Yidong <cyd@stupidchicken.com>
2
3 * cedet/srecode/srt-mode.el (srecode-template-mode): Doc fix.
4
5 * files.el (auto-mode-alist): Add .srt and Project.ede.
6
7 * cedet/semantic.el (semantic-mode): Handle
8 srecode-template-mode-hook as well.
9
10 * cedet/srecode/template.el: Remove hook variable.
11
12 * cedet/ede/proj-comp.el: Require ede/pmake when compiling.
13
14 * cedet/ede.el (ede-target-forms-menu): Don't enable if no
15 projects exist.
16
17 * cedet/srecode/map.el (srecode-map-base-template-dir): Look for
18 templates in data-directory.
19
20 * cedet/ede/srecode.el (ede-srecode-setup): Use default templates
21 directory.
22
232009-09-30 Eric Ludlam <zappo@gnu.org>
24
25 * cedet/semantic/util-modes.el (semantic-highlight-func-mode): Doc
26 fix.
27
28 * cedet/ede/proj-comp.el (ede-proj-makefile-insert-variables):
29 Only insert each variable once.
30
31 * cedet/ede/pmake.el (ede-pmake-insert-variable-once): New macro.
32 (ede-pmake-insert-variable-shared): Use it.
33
34 * cedet/ede/cpp-root.el (ede-preprocessor-map): Do not deref table
35 for lexical table iff table is nil.
36
12009-10-03 Dan Nicolaescu <dann@ics.uci.edu> 372009-10-03 Dan Nicolaescu <dann@ics.uci.edu>
2 38
3 * vc.el: Remove commented out code. 39 * vc.el: Remove commented out code.
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index 42c4508e52d..53087e12658 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -659,7 +659,9 @@ Argument MENU-DEF is the menu definition to use."
659 "Target Forms" 659 "Target Forms"
660 (let ((obj (or ede-selected-object ede-object))) 660 (let ((obj (or ede-selected-object ede-object)))
661 (append 661 (append
662 '([ "Add File" ede-add-file (ede-current-project) ] 662 '([ "Add File" ede-add-file
663 (and (ede-current-project)
664 (oref (ede-current-project) targets)) ]
663 [ "Remove File" ede-remove-file 665 [ "Remove File" ede-remove-file
664 (and ede-object 666 (and ede-object
665 (or (listp ede-object) 667 (or (listp ede-object)
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el
index e1e348ac947..c30df8dbb0d 100644
--- a/lisp/cedet/ede/cpp-root.el
+++ b/lisp/cedet/ede/cpp-root.el
@@ -491,8 +491,8 @@ Also set up the lexical preprocessor map."
491 (when (not table) 491 (when (not table)
492 (message "Cannot find file %s in project." F)) 492 (message "Cannot find file %s in project." F))
493 (when (and table (semanticdb-needs-refresh-p table)) 493 (when (and table (semanticdb-needs-refresh-p table))
494 (semanticdb-refresh-table table)) 494 (semanticdb-refresh-table table)
495 (setq spp (append spp (oref table lexical-table))))) 495 (setq spp (append spp (oref table lexical-table))))))
496 (oref this spp-files)) 496 (oref this spp-files))
497 spp)) 497 spp))
498 498
diff --git a/lisp/cedet/ede/pmake.el b/lisp/cedet/ede/pmake.el
index 4d3f8484ddd..79775429130 100644
--- a/lisp/cedet/ede/pmake.el
+++ b/lisp/cedet/ede/pmake.el
@@ -240,20 +240,32 @@ MFILENAME is the makefile to generate."
240 "Add VARNAME into the current Makefile. 240 "Add VARNAME into the current Makefile.
241Execute BODY in a location where a value can be placed." 241Execute BODY in a location where a value can be placed."
242 `(let ((addcr t) (v ,varname)) 242 `(let ((addcr t) (v ,varname))
243 (if (re-search-backward (concat "^" v "\\s-*=") nil t) 243 (if (re-search-backward (concat "^" v "\\s-*=") nil t)
244 (progn 244 (progn
245 (ede-pmake-end-of-variable) 245 (ede-pmake-end-of-variable)
246 (if (< (current-column) 40) 246 (if (< (current-column) 40)
247 (if (and (/= (preceding-char) ?=) 247 (if (and (/= (preceding-char) ?=)
248 (/= (preceding-char) ? )) 248 (/= (preceding-char) ? ))
249 (insert " ")) 249 (insert " "))
250 (insert "\\\n ")) 250 (insert "\\\n "))
251 (setq addcr nil)) 251 (setq addcr nil))
252 (insert v "=")) 252 (insert v "="))
253 ,@body
254 (if addcr (insert "\n"))
255 (goto-char (point-max))))
256(put 'ede-pmake-insert-variable-shared 'lisp-indent-function 1)
257
258(defmacro ede-pmake-insert-variable-once (varname &rest body)
259 "Add VARNAME into the current Makefile if it doesn't exist.
260Execute BODY in a location where a value can be placed."
261 `(let ((addcr t) (v ,varname))
262 (unless (re-search-backward (concat "^" v "\\s-*=") nil t)
263 (insert v "=")
253 ,@body 264 ,@body
254 (if addcr (insert "\n")) 265 (if addcr (insert "\n"))
255 (goto-char (point-max)))) 266 (goto-char (point-max)))
256(put 'ede-pmake-insert-variable-shared 'lisp-indent-function 1) 267 ))
268(put 'ede-pmake-insert-variable-once 'lisp-indent-function 1)
257 269
258;;; SOURCE VARIABLE NAME CONSTRUCTION 270;;; SOURCE VARIABLE NAME CONSTRUCTION
259 271
diff --git a/lisp/cedet/ede/proj-comp.el b/lisp/cedet/ede/proj-comp.el
index 2bda2dd106e..be91c25d5f0 100644
--- a/lisp/cedet/ede/proj-comp.el
+++ b/lisp/cedet/ede/proj-comp.el
@@ -46,6 +46,7 @@
46 46
47(require 'ede) ;source object 47(require 'ede) ;source object
48(require 'ede/autoconf-edit) 48(require 'ede/autoconf-edit)
49(eval-when-compile (require 'ede/pmake))
49 50
50;;; Types: 51;;; Types:
51(defclass ede-compilation-program (eieio-instance-inheritor) 52(defclass ede-compilation-program (eieio-instance-inheritor)
@@ -256,12 +257,11 @@ This will prevent rules from creating duplicate variables or rules."
256 (with-slots (variables) this 257 (with-slots (variables) this
257 (mapcar 258 (mapcar
258 (lambda (var) 259 (lambda (var)
259 (insert (car var) "=") 260 (ede-pmake-insert-variable-once (car var)
260 (let ((cd (cdr var))) 261 (let ((cd (cdr var)))
261 (if (listp cd) 262 (if (listp cd)
262 (mapc (lambda (c) (insert " " c)) cd) 263 (mapc (lambda (c) (insert " " c)) cd)
263 (insert cd))) 264 (insert cd)))))
264 (insert "\n"))
265 variables)))) 265 variables))))
266 266
267(defmethod ede-compiler-intermediate-objects-p ((this ede-compiler)) 267(defmethod ede-compiler-intermediate-objects-p ((this ede-compiler))
diff --git a/lisp/cedet/ede/srecode.el b/lisp/cedet/ede/srecode.el
index 5f64ed3c7d0..0870517a46e 100644
--- a/lisp/cedet/ede/srecode.el
+++ b/lisp/cedet/ede/srecode.el
@@ -37,27 +37,13 @@
37 37
38;;; Code: 38;;; Code:
39(defun ede-srecode-setup () 39(defun ede-srecode-setup ()
40 "Update various paths to get SRecode to identify our macros." 40 "Initialize Srecode for EDE."
41 (let* ((lib (locate-library "ede.el" t)) 41 (require 'srecode/map)
42 (ededir (file-name-directory lib)) 42 (require 'srecode/find)
43 (tmpdir (file-name-as-directory 43 (srecode-map-update-map t)
44 (expand-file-name "templates" ededir)))) 44 ;; We don't call this unless we need it. Load in the templates.
45 (when (not tmpdir) 45 (srecode-load-tables-for-mode 'makefile-mode)
46 (error "Unable to location EDE Templates directory")) 46 (srecode-load-tables-for-mode 'makefile-mode 'ede))
47
48 ;; Rig up the map.
49 (require 'srecode/map)
50 (require 'srecode/find)
51 (add-to-list 'srecode-map-load-path tmpdir)
52 (srecode-map-update-map t)
53
54 ;; We don't call this unless we need it. Load in the templates.
55 (srecode-load-tables-for-mode 'makefile-mode)
56 (srecode-load-tables-for-mode 'makefile-mode 'ede)
57
58 ;; @todo - autoconf files.
59
60 ))
61 47
62(defmacro ede-srecode-insert-with-dictionary (template &rest forms) 48(defmacro ede-srecode-insert-with-dictionary (template &rest forms)
63 "Insert TEMPLATE after executing FORMS with a dictionary. 49 "Insert TEMPLATE after executing FORMS with a dictionary.
diff --git a/lisp/cedet/semantic.el b/lisp/cedet/semantic.el
index a0c7db7b47d..03b04f1d5a5 100644
--- a/lisp/cedet/semantic.el
+++ b/lisp/cedet/semantic.el
@@ -176,7 +176,7 @@ For language specific hooks, make sure you define this as a local hook.
176 176
177This hook should not be used any more. 177This hook should not be used any more.
178Use `semantic-after-toplevel-cache-change-hook' instead.") 178Use `semantic-after-toplevel-cache-change-hook' instead.")
179(make-obsolete-variable 'semantic-after-toplevel-bovinate-hook nil) 179(make-obsolete-variable 'semantic-after-toplevel-bovinate-hook nil "23.2")
180 180
181(defvar semantic-after-toplevel-cache-change-hook nil 181(defvar semantic-after-toplevel-cache-change-hook nil
182 "Hooks run after the buffer tag list has changed. 182 "Hooks run after the buffer tag list has changed.
@@ -661,7 +661,7 @@ Does nothing if the current buffer doesn't need reparsing."
661(defun semantic-bovinate-toplevel (&optional ignored) 661(defun semantic-bovinate-toplevel (&optional ignored)
662 "Backward Compatibility Function." 662 "Backward Compatibility Function."
663 (semantic-fetch-tags)) 663 (semantic-fetch-tags))
664(make-obsolete 'semantic-bovinate-toplevel 'semantic-fetch-tags) 664(make-obsolete 'semantic-bovinate-toplevel 'semantic-fetch-tags "23.2")
665 665
666;; Another approach is to let Emacs call the parser on idle time, when 666;; Another approach is to let Emacs call the parser on idle time, when
667;; needed, use `semantic-fetch-available-tags' to only retrieve 667;; needed, use `semantic-fetch-available-tags' to only retrieve
@@ -793,7 +793,7 @@ code blocks in methods. If `bovine-inner-scope' can also support
793commands, use `semantic-bovinate-from-nonterminal-full'." 793commands, use `semantic-bovinate-from-nonterminal-full'."
794 (semantic-parse-region start end nonterm depth t)) 794 (semantic-parse-region start end nonterm depth t))
795(make-obsolete 'semantic-bovinate-region-until-error 795(make-obsolete 'semantic-bovinate-region-until-error
796 'semantic-parse-region) 796 'semantic-parse-region "23.2")
797 797
798(defsubst semantic-bovinate-from-nonterminal 798(defsubst semantic-bovinate-from-nonterminal
799 (start end nonterm &optional depth length) 799 (start end nonterm &optional depth length)
@@ -821,7 +821,7 @@ When used in a `lambda' of a MATCH-LIST, there is no need to include
821a START and END part." 821a START and END part."
822 (semantic-parse-region start end nonterm (or depth 1))) 822 (semantic-parse-region start end nonterm (or depth 1)))
823(make-obsolete 'semantic-bovinate-from-nonterminal-full 823(make-obsolete 'semantic-bovinate-from-nonterminal-full
824 'semantic-parse-region) 824 'semantic-parse-region "23.2")
825 825
826;;; User interface 826;;; User interface
827 827
@@ -1055,7 +1055,9 @@ Semantic mode.
1055 (add-hook 'makefile-mode-hook 'semantic-default-make-setup) 1055 (add-hook 'makefile-mode-hook 'semantic-default-make-setup)
1056 (add-hook 'c-mode-hook 'semantic-default-c-setup) 1056 (add-hook 'c-mode-hook 'semantic-default-c-setup)
1057 (add-hook 'c++-mode-hook 'semantic-default-c-setup) 1057 (add-hook 'c++-mode-hook 'semantic-default-c-setup)
1058 (add-hook 'html-mode-hook 'semantic-default-html-setup)) 1058 (add-hook 'html-mode-hook 'semantic-default-html-setup)
1059 (add-hook 'html-mode-hook 'semantic-default-html-setup)
1060 (add-hook 'srecode-template-mode-hook 'srecode-template-setup-parser))
1059 ;; Disable all Semantic features. 1061 ;; Disable all Semantic features.
1060 (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn) 1062 (remove-hook 'mode-local-init-hook 'semantic-new-buffer-fcn)
1061 (remove-hook 'javascript-mode-hook 'wisent-javascript-setup-parser) 1063 (remove-hook 'javascript-mode-hook 'wisent-javascript-setup-parser)
@@ -1066,6 +1068,7 @@ Semantic mode.
1066 (remove-hook 'c-mode-hook 'semantic-default-c-setup) 1068 (remove-hook 'c-mode-hook 'semantic-default-c-setup)
1067 (remove-hook 'c++-mode-hook 'semantic-default-c-setup) 1069 (remove-hook 'c++-mode-hook 'semantic-default-c-setup)
1068 (remove-hook 'html-mode-hook 'semantic-default-html-setup) 1070 (remove-hook 'html-mode-hook 'semantic-default-html-setup)
1071 (remove-hook 'srecode-template-mode-hook 'srecode-template-setup-parser)
1069 1072
1070 ;; FIXME: handle semanticdb-load-ebrowse-caches 1073 ;; FIXME: handle semanticdb-load-ebrowse-caches
1071 (dolist (mode semantic-submode-list) 1074 (dolist (mode semantic-submode-list)
@@ -1104,6 +1107,9 @@ minor mode can be turned on only if semantic feature is available and
1104the current buffer was set up for parsing. Return non-nil if the 1107the current buffer was set up for parsing. Return non-nil if the
1105minor mode is enabled." t nil) 1108minor mode is enabled." t nil)
1106 1109
1110(autoload 'srecode-template-setup-parser "srecode/srecode-template"
1111 "Set up buffer for parsing SRecode template files." t nil)
1112
1107(provide 'semantic) 1113(provide 'semantic)
1108 1114
1109;; Semantic-util is a part of the semantic API. Include it last 1115;; Semantic-util is a part of the semantic API. Include it last
diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el
index b740b128941..592394465ae 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -874,7 +874,7 @@ when it lands in the sticky line."
874 "Setup option `semantic-stickyfunc-mode'. 874 "Setup option `semantic-stickyfunc-mode'.
875For semantic enabled buffers, make the function declaration for the top most 875For semantic enabled buffers, make the function declaration for the top most
876function \"sticky\". This is accomplished by putting the first line of 876function \"sticky\". This is accomplished by putting the first line of
877text for that function in Emacs 21's header line." 877text for that function in the header line."
878 (if semantic-stickyfunc-mode 878 (if semantic-stickyfunc-mode
879 (progn 879 (progn
880 (unless (and (featurep 'semantic) (semantic-active-p)) 880 (unless (and (featurep 'semantic) (semantic-active-p))
@@ -911,7 +911,7 @@ Enables/disables making the header line of functions sticky.
911A function (or other tag class specified by 911A function (or other tag class specified by
912`semantic-stickyfunc-sticky-classes') has a header line, meaning the 912`semantic-stickyfunc-sticky-classes') has a header line, meaning the
913first line which describes the rest of the construct. This first 913first line which describes the rest of the construct. This first
914line is what is displayed in the Emacs 21 header line. 914line is what is displayed in the header line.
915 915
916With prefix argument ARG, turn on if positive, otherwise off. The 916With prefix argument ARG, turn on if positive, otherwise off. The
917minor mode can be turned on only if semantic feature is available and 917minor mode can be turned on only if semantic feature is available and
@@ -1149,7 +1149,7 @@ current tag declaration."
1149;;;###autoload 1149;;;###autoload
1150(defun semantic-highlight-func-mode (&optional arg) 1150(defun semantic-highlight-func-mode (&optional arg)
1151 "Minor mode to highlight the first line of the current tag. 1151 "Minor mode to highlight the first line of the current tag.
1152Enables/disables making the header line of functions sticky. 1152Enables/disables making the current function's first line light up.
1153A function (or other tag class specified by 1153A function (or other tag class specified by
1154`semantic-stickyfunc-sticky-classes') is highlighted, meaning the 1154`semantic-stickyfunc-sticky-classes') is highlighted, meaning the
1155first line which describes the rest of the construct. 1155first line which describes the rest of the construct.
diff --git a/lisp/cedet/srecode/map.el b/lisp/cedet/srecode/map.el
index 32723128325..dfe031c41ae 100644
--- a/lisp/cedet/srecode/map.el
+++ b/lisp/cedet/srecode/map.el
@@ -36,10 +36,7 @@
36 36
37(defun srecode-map-base-template-dir () 37(defun srecode-map-base-template-dir ()
38 "Find the base template directory for SRecode." 38 "Find the base template directory for SRecode."
39 (let* ((lib (locate-library "srecode.el")) 39 (expand-file-name "srecode" data-directory))
40 (dir (file-name-directory lib)))
41 (expand-file-name "templates/" dir)
42 ))
43 40
44;;; Current MAP 41;;; Current MAP
45;; 42;;
@@ -399,7 +396,7 @@ Return non-nil if the map changed."
399 (list (srecode-map-base-template-dir) 396 (list (srecode-map-base-template-dir)
400 (expand-file-name "~/.srecode/") 397 (expand-file-name "~/.srecode/")
401 ) 398 )
402 "*Global load path for SRecode template files." 399 "Global load path for SRecode template files."
403 :group 'srecode 400 :group 'srecode
404 :type '(repeat file) 401 :type '(repeat file)
405 :set 'srecode-map-load-path-set) 402 :set 'srecode-map-load-path-set)
diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el
index 7b5322aa1fa..e10c163b8db 100644
--- a/lisp/cedet/srecode/srt-mode.el
+++ b/lisp/cedet/srecode/srt-mode.el
@@ -184,7 +184,7 @@ we can tell font lock about them.")
184 184
185;;;###autoload 185;;;###autoload
186(defun srecode-template-mode () 186(defun srecode-template-mode ()
187 "Major-mode for writing srecode macros." 187 "Major-mode for writing SRecode macros."
188 (interactive) 188 (interactive)
189 (kill-all-local-variables) 189 (kill-all-local-variables)
190 (setq major-mode 'srecode-template-mode 190 (setq major-mode 'srecode-template-mode
diff --git a/lisp/cedet/srecode/template.el b/lisp/cedet/srecode/template.el
index e20afd0c1c4..b4f372c1370 100644
--- a/lisp/cedet/srecode/template.el
+++ b/lisp/cedet/srecode/template.el
@@ -39,6 +39,7 @@
39 ans) 39 ans)
40 )) 40 ))
41 41
42;;;###autoload
42(defun srecode-template-setup-parser () 43(defun srecode-template-setup-parser ()
43 "Setup buffer for parse." 44 "Setup buffer for parse."
44 (srecode-template-wy--install-parser) 45 (srecode-template-wy--install-parser)
@@ -61,10 +62,13 @@
61 senator-step-at-tag-classes '(function variable) 62 senator-step-at-tag-classes '(function variable)
62 )) 63 ))
63 64
64;;;;###autoload
65(add-hook 'srecode-template-mode-hook 'srecode-template-setup-parser)
66
67(provide 'srecode/template) 65(provide 'srecode/template)
68 66
67;; Local variables:
68;; generated-autoload-file: "loaddefs.el"
69;; generated-autoload-feature: srecode/loaddefs
70;; generated-autoload-load-name: "srecode/template"
71;; End:
72
69;; arch-tag: 037fbca7-e846-4521-b801-3463f50c3080 73;; arch-tag: 037fbca7-e846-4521-b801-3463f50c3080
70;;; srecode/template.el ends here 74;;; srecode/template.el ends here
diff --git a/lisp/files.el b/lisp/files.el
index ac058efde08..4e8ae6cedcd 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2178,6 +2178,7 @@ since only a single case-insensitive search through the alist is made."
2178 ("\\.dtx\\'" . doctex-mode) 2178 ("\\.dtx\\'" . doctex-mode)
2179 ("\\.org\\'" . org-mode) 2179 ("\\.org\\'" . org-mode)
2180 ("\\.el\\'" . emacs-lisp-mode) 2180 ("\\.el\\'" . emacs-lisp-mode)
2181 ("Project\\.ede\\'" . emacs-lisp-mode)
2181 ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode) 2182 ("\\.\\(scm\\|stk\\|ss\\|sch\\)\\'" . scheme-mode)
2182 ("\\.l\\'" . lisp-mode) 2183 ("\\.l\\'" . lisp-mode)
2183 ("\\.li?sp\\'" . lisp-mode) 2184 ("\\.li?sp\\'" . lisp-mode)
@@ -2237,6 +2238,7 @@ since only a single case-insensitive search through the alist is made."
2237 ("\\.f9[05]\\'" . f90-mode) 2238 ("\\.f9[05]\\'" . f90-mode)
2238 ("\\.indent\\.pro\\'" . fundamental-mode) ; to avoid idlwave-mode 2239 ("\\.indent\\.pro\\'" . fundamental-mode) ; to avoid idlwave-mode
2239 ("\\.\\(pro\\|PRO\\)\\'" . idlwave-mode) 2240 ("\\.\\(pro\\|PRO\\)\\'" . idlwave-mode)
2241 ("\\.srt\\'" . srecode-template-mode)
2240 ("\\.prolog\\'" . prolog-mode) 2242 ("\\.prolog\\'" . prolog-mode)
2241 ("\\.tar\\'" . tar-mode) 2243 ("\\.tar\\'" . tar-mode)
2242 ;; The list of archive file extensions should be in sync with 2244 ;; The list of archive file extensions should be in sync with