changeset 74431:ab6be62cb44d

(fortran-mode-abbrev-table): Define abbrevs even if abbrev-table is non-nil (saved user abbrevs may have been restored).
author Glenn Morris <rgm@gnu.org>
date Tue, 05 Dec 2006 05:24:48 +0000
parents 1ca429066367
children 07d0c7e67ef3
files lisp/progmodes/fortran.el
diffstat 1 files changed, 73 insertions(+), 71 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/fortran.el	Tue Dec 05 05:24:24 2006 +0000
+++ b/lisp/progmodes/fortran.el	Tue Dec 05 05:24:48 2006 +0000
@@ -604,80 +604,82 @@
 
 
 (defvar fortran-mode-abbrev-table
-  (let (abbrevs-changed)
+  (progn
     (define-abbrev-table 'fortran-mode-abbrev-table nil)
-    ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
-    ;; Only use `apply' to quieten the byte-compiler.
-    (mapcar
-     (function (lambda (element)
-                 (condition-case nil
-                     (apply 'define-abbrev fortran-mode-abbrev-table
-                            (append element '(nil 0 t)))
-                   (wrong-number-of-arguments
-                    (apply 'define-abbrev fortran-mode-abbrev-table
-                           (append element '(nil 0)))))))
-     '((";au"   "automatic"         )
-       (";b"    "byte"              )
-       (";bd"   "block data"        )
-       (";ch"   "character"         )
-       (";cl"   "close"             )
-       (";c"    "continue"          )
-       (";cm"   "common"            )
-       (";cx"   "complex"           )
-       (";df"   "define"            )
-       (";di"   "dimension"         )
-       (";do"   "double"            )
-       (";dc"   "double complex"    )
-       (";dp"   "double precision"  )
-       (";dw"   "do while"          )
-       (";e"    "else"              )
-       (";ed"   "enddo"             )
-       (";el"   "elseif"            )
-       (";en"   "endif"             )
-       (";eq"   "equivalence"       )
-       (";ew"   "endwhere"          )
-       (";ex"   "external"          )
-       (";ey"   "entry"             )
-       (";f"    "format"            )
-       (";fa"   ".false."           )
-       (";fu"   "function"          )
-       (";g"    "goto"              )
-       (";im"   "implicit"          )
-       (";ib"   "implicit byte"     )
-       (";ic"   "implicit complex"  )
-       (";ich"  "implicit character")
-       (";ii"   "implicit integer"  )
-       (";il"   "implicit logical"  )
-       (";ir"   "implicit real"     )
-       (";inc"  "include"           )
-       (";in"   "integer"           )
-       (";intr" "intrinsic"         )
-       (";l"    "logical"           )
-       (";n"    "namelist"          )
-       (";o"    "open"              )   ; was ;op
-       (";pa"   "parameter"         )
-       (";pr"   "program"           )
-       (";ps"   "pause"             )
-       (";p"    "print"             )
-       (";rc"   "record"            )
-       (";re"   "real"              )
-       (";r"    "read"              )
-       (";rt"   "return"            )
-       (";rw"   "rewind"            )
-       (";s"    "stop"              )
-       (";sa"   "save"              )
-       (";st"   "structure"         )
-       (";sc"   "static"            )
-       (";su"   "subroutine"        )
-       (";tr"   ".true."            )
-       (";ty"   "type"              )
-       (";vo"   "volatile"          )
-       (";w"    "write"             )
-       (";wh"   "where"             )))
-    fortran-mode-abbrev-table))
+    fortran-mode-abbrev-table)
+  "Abbrev table for Fortran mode.")
+
+(let (abbrevs-changed)
+  ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
+  ;; Only use `apply' to quieten the byte-compiler.
+  (mapcar
+   (function (lambda (element)
+               (condition-case nil
+                   (apply 'define-abbrev fortran-mode-abbrev-table
+                          (append element '(nil 0 t)))
+                 (wrong-number-of-arguments
+                  (apply 'define-abbrev fortran-mode-abbrev-table
+                         (append element '(nil 0)))))))
+   '((";au"   "automatic"         )
+     (";b"    "byte"              )
+     (";bd"   "block data"        )
+     (";ch"   "character"         )
+     (";cl"   "close"             )
+     (";c"    "continue"          )
+     (";cm"   "common"            )
+     (";cx"   "complex"           )
+     (";df"   "define"            )
+     (";di"   "dimension"         )
+     (";do"   "double"            )
+     (";dc"   "double complex"    )
+     (";dp"   "double precision"  )
+     (";dw"   "do while"          )
+     (";e"    "else"              )
+     (";ed"   "enddo"             )
+     (";el"   "elseif"            )
+     (";en"   "endif"             )
+     (";eq"   "equivalence"       )
+     (";ew"   "endwhere"          )
+     (";ex"   "external"          )
+     (";ey"   "entry"             )
+     (";f"    "format"            )
+     (";fa"   ".false."           )
+     (";fu"   "function"          )
+     (";g"    "goto"              )
+     (";im"   "implicit"          )
+     (";ib"   "implicit byte"     )
+     (";ic"   "implicit complex"  )
+     (";ich"  "implicit character")
+     (";ii"   "implicit integer"  )
+     (";il"   "implicit logical"  )
+     (";ir"   "implicit real"     )
+     (";inc"  "include"           )
+     (";in"   "integer"           )
+     (";intr" "intrinsic"         )
+     (";l"    "logical"           )
+     (";n"    "namelist"          )
+     (";o"    "open"              )     ; was ;op
+     (";pa"   "parameter"         )
+     (";pr"   "program"           )
+     (";ps"   "pause"             )
+     (";p"    "print"             )
+     (";rc"   "record"            )
+     (";re"   "real"              )
+     (";r"    "read"              )
+     (";rt"   "return"            )
+     (";rw"   "rewind"            )
+     (";s"    "stop"              )
+     (";sa"   "save"              )
+     (";st"   "structure"         )
+     (";sc"   "static"            )
+     (";su"   "subroutine"        )
+     (";tr"   ".true."            )
+     (";ty"   "type"              )
+     (";vo"   "volatile"          )
+     (";w"    "write"             )
+     (";wh"   "where"             ))))
 
 
-
 ;;;###autoload
 (defun fortran-mode ()
   "Major mode for editing Fortran code in fixed format.