changeset 92812:ce9eec736ca9

(fortran-mode-abbrev-table): Use newer form of define-abbrev, where supported. No need to bind abbrevs-changed for system abbrevs.
author Glenn Morris <rgm@gnu.org>
date Thu, 13 Mar 2008 03:26:47 +0000
parents 2dc33caeb08c
children 9c73b1f69e7e
files lisp/progmodes/fortran.el
diffstat 1 files changed, 66 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/fortran.el	Thu Mar 13 03:25:20 2008 +0000
+++ b/lisp/progmodes/fortran.el	Thu Mar 13 03:26:47 2008 +0000
@@ -676,75 +676,72 @@
     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.
-  (mapc
-   (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"             ))))
+;; Not in defvar because user abbrevs may be restored before this file loads.
+(mapc
+ (lambda (e)
+   (condition-case nil
+       (define-abbrev fortran-mode-abbrev-table (car e) (cdr e) nil :count 0
+         :system t)
+     (wrong-number-of-arguments         ; Emacs 22
+      (define-abbrev fortran-mode-abbrev-table (car e) (cdr e) nil 0 t))))
+   '((";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