aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2003-04-15 19:18:23 +0000
committerGlenn Morris2003-04-15 19:18:23 +0000
commita729409a9638dd446014238160a2f9155709f6f3 (patch)
treec24c1ca17bce64c57c161ffc8ec0341d8344e8c7
parent5416884dd37e7b4579ebb783948914c0d61e84b2 (diff)
downloademacs-a729409a9638dd446014238160a2f9155709f6f3.tar.gz
emacs-a729409a9638dd446014238160a2f9155709f6f3.zip
Whitespace changes, trivial commentary changes.
(f90, f90-indent, f90-program-indent, f90-continuation-indent) (f90-indented-comment-re, f90-imenu-generic-expression) (f90-mark-subprogram, f90-join-lines): Minor doc changes. (f90-menu): Shift definition to initialization of f90-mode-map. Add customization section. (f90-mode): Minor doc change. Do not call easy-menu-add. Set `beginning-of-defun-function' and `end-of-defun-function' to appropriate F90 functions. (f90-indent-line, f90-indent-line, f90-indent-subprogram) (f90-break-line, f90-do-auto-fill, f90-insert-end) (f90-upcase-keywords, f90-capitalize-keywords) (f90-downcase-keywords): Change interactive spec.
-rw-r--r--lisp/progmodes/f90.el187
1 files changed, 100 insertions, 87 deletions
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 45503aa1c17..8384dfdcf6e 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -65,7 +65,7 @@
65;; The function f90-comment-region toggles insertion of 65;; The function f90-comment-region toggles insertion of
66;; the variable f90-comment-region in every line of the region. 66;; the variable f90-comment-region in every line of the region.
67 67
68;; One common convention for free vs. fixed format is that free-format files 68;; One common convention for free vs. fixed format is that free format files
69;; have the ending .f90 or .f95 while fixed format files have the ending .f. 69;; have the ending .f90 or .f95 while fixed format files have the ending .f.
70;; Emacs automatically loads Fortran files in the appropriate mode based 70;; Emacs automatically loads Fortran files in the appropriate mode based
71;; on extension. You can modify this by adjusting the variable auto-mode-alist. 71;; on extension. You can modify this by adjusting the variable auto-mode-alist.
@@ -150,106 +150,106 @@
150;; Also thanks to the authors of the fortran and pascal modes, on which some 150;; Also thanks to the authors of the fortran and pascal modes, on which some
151;; of this code is built. 151;; of this code is built.
152 152
153;;; Code:
154
153;; TODO 155;; TODO
154;; Support for hideshow, align. 156;; Support for hideshow, align.
155;; OpenMP, preprocessor highlighting. 157;; OpenMP, preprocessor highlighting.
156 158
157;;; Code:
158
159(defvar comment-auto-fill-only-comments) 159(defvar comment-auto-fill-only-comments)
160(defvar font-lock-keywords) 160(defvar font-lock-keywords)
161 161
162;; User options 162;; User options
163 163
164(defgroup f90 nil 164(defgroup f90 nil
165 "Major mode for editing Fortran 90,95 code." 165 "Major mode for editing free format Fortran 90,95 code."
166 :group 'languages) 166 :group 'languages)
167 167
168(defgroup f90-indent nil 168(defgroup f90-indent nil
169 "Indentation in free-format Fortran." 169 "Indentation in free format Fortran."
170 :prefix "f90-" 170 :prefix "f90-"
171 :group 'f90) 171 :group 'f90)
172 172
173 173
174(defcustom f90-do-indent 3 174(defcustom f90-do-indent 3
175 "*Extra indentation applied to DO blocks." 175 "*Extra indentation applied to DO blocks."
176 :type 'integer 176 :type 'integer
177 :group 'f90-indent) 177 :group 'f90-indent)
178 178
179(defcustom f90-if-indent 3 179(defcustom f90-if-indent 3
180 "*Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks." 180 "*Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks."
181 :type 'integer 181 :type 'integer
182 :group 'f90-indent) 182 :group 'f90-indent)
183 183
184(defcustom f90-type-indent 3 184(defcustom f90-type-indent 3
185 "*Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks." 185 "*Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks."
186 :type 'integer 186 :type 'integer
187 :group 'f90-indent) 187 :group 'f90-indent)
188 188
189(defcustom f90-program-indent 2 189(defcustom f90-program-indent 2
190 "*Extra indentation applied to PROGRAM/MODULE/SUBROUTINE/FUNCTION blocks." 190 "*Extra indentation applied to PROGRAM, MODULE, SUBROUTINE, FUNCTION blocks."
191 :type 'integer 191 :type 'integer
192 :group 'f90-indent) 192 :group 'f90-indent)
193 193
194(defcustom f90-continuation-indent 5 194(defcustom f90-continuation-indent 5
195 "*Extra indentation applied to F90 continuation lines." 195 "*Extra indentation applied to continuation lines."
196 :type 'integer 196 :type 'integer
197 :group 'f90-indent) 197 :group 'f90-indent)
198 198
199(defcustom f90-comment-region "!!$" 199(defcustom f90-comment-region "!!$"
200 "*String inserted by \\[f90-comment-region] at start of each line in region." 200 "*String inserted by \\[f90-comment-region] at start of each line in region."
201 :type 'string 201 :type 'string
202 :group 'f90-indent) 202 :group 'f90-indent)
203 203
204(defcustom f90-indented-comment-re "!" 204(defcustom f90-indented-comment-re "!"
205 "*Regexp saying which comments to indent like code." 205 "*Regexp matching comments to indent as code."
206 :type 'regexp 206 :type 'regexp
207 :group 'f90-indent) 207 :group 'f90-indent)
208 208
209(defcustom f90-directive-comment-re "!hpf\\$" 209(defcustom f90-directive-comment-re "!hpf\\$"
210 "*Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented." 210 "*Regexp of comment-like directive like \"!HPF\\\\$\", not to be indented."
211 :type 'regexp 211 :type 'regexp
212 :group 'f90-indent) 212 :group 'f90-indent)
213 213
214(defcustom f90-beginning-ampersand t 214(defcustom f90-beginning-ampersand t
215 "*Non-nil gives automatic insertion of \& at start of continuation line." 215 "*Non-nil gives automatic insertion of \& at start of continuation line."
216 :type 'boolean 216 :type 'boolean
217 :group 'f90) 217 :group 'f90)
218 218
219(defcustom f90-smart-end 'blink 219(defcustom f90-smart-end 'blink
220 "*From an END statement, check and fill the end using matching block start. 220 "*From an END statement, check and fill the end using matching block start.
221Allowed values are 'blink, 'no-blink, and nil, which determine 221Allowed values are 'blink, 'no-blink, and nil, which determine
222whether to blink the matching beginning." 222whether to blink the matching beginning."
223 :type '(choice (const blink) (const no-blink) (const nil)) 223 :type '(choice (const blink) (const no-blink) (const nil))
224 :group 'f90) 224 :group 'f90)
225 225
226(defcustom f90-break-delimiters "[-+\\*/><=,% \t]" 226(defcustom f90-break-delimiters "[-+\\*/><=,% \t]"
227 "*Regexp holding list of delimiters at which lines may be broken." 227 "*Regexp holding list of delimiters at which lines may be broken."
228 :type 'regexp 228 :type 'regexp
229 :group 'f90) 229 :group 'f90)
230 230
231(defcustom f90-break-before-delimiters t 231(defcustom f90-break-before-delimiters t
232 "*Non-nil causes `f90-do-auto-fill' to break lines before delimiters." 232 "*Non-nil causes `f90-do-auto-fill' to break lines before delimiters."
233 :type 'boolean 233 :type 'boolean
234 :group 'f90) 234 :group 'f90)
235 235
236(defcustom f90-auto-keyword-case nil 236(defcustom f90-auto-keyword-case nil
237 "*Automatic case conversion of keywords. 237 "*Automatic case conversion of keywords.
238The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil." 238The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil."
239 :type '(choice (const downcase-word) (const upcase-word) 239 :type '(choice (const downcase-word) (const upcase-word)
240 (const capitalize-word) (const nil)) 240 (const capitalize-word) (const nil))
241 :group 'f90) 241 :group 'f90)
242 242
243(defcustom f90-leave-line-no nil 243(defcustom f90-leave-line-no nil
244 "*If non-nil, line numbers are not left justified." 244 "*If non-nil, line numbers are not left justified."
245 :type 'boolean 245 :type 'boolean
246 :group 'f90) 246 :group 'f90)
247 247
248(defcustom f90-mode-hook nil 248(defcustom f90-mode-hook nil
249 "Hook run when entering F90 mode." 249 "Hook run when entering F90 mode."
250 :type 'hook 250 :type 'hook
251 :options '(f90-add-imenu-menu) 251 :options '(f90-add-imenu-menu)
252 :group 'f90) 252 :group 'f90)
253 253
254;; User options end here. 254;; User options end here.
255 255
@@ -455,53 +455,64 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
455 (define-key map "-" 'f90-electric-insert) 455 (define-key map "-" 'f90-electric-insert)
456 (define-key map "*" 'f90-electric-insert) 456 (define-key map "*" 'f90-electric-insert)
457 (define-key map "/" 'f90-electric-insert) 457 (define-key map "/" 'f90-electric-insert)
458
459 (easy-menu-define f90-menu map "Menu for F90 mode."
460 `("F90"
461 ("Customization"
462 ,(custom-menu-create 'f90)
463 ["Set" Custom-set t]
464 ["Save" Custom-save t]
465 ["Reset to Current" Custom-reset-current t]
466 ["Reset to Saved" Custom-reset-saved t]
467 ["Reset to Standard Settings" Custom-reset-standard t]
468 )
469 "--"
470 ["Indent Subprogram" f90-indent-subprogram t]
471 ["Mark Subprogram" f90-mark-subprogram t]
472 ["Beginning of Subprogram" f90-beginning-of-subprogram t]
473 ["End of Subprogram" f90-end-of-subprogram t]
474 "--"
475 ["(Un)Comment Region" f90-comment-region mark-active]
476 ["Indent Region" f90-indent-region mark-active]
477 ["Fill Region" f90-fill-region mark-active]
478 "--"
479 ["Break Line at Point" f90-break-line t]
480 ["Join with Previous Line" f90-join-lines t]
481 ["Insert Block End" f90-insert-end t]
482 "--"
483 ("Highlighting"
484 ["Toggle font-lock-mode" font-lock-mode :selected font-lock-mode
485 :style toggle]
486 "--"
487 ["Light highlighting (level 1)" f90-font-lock-1 t]
488 ["Moderate highlighting (level 2)" f90-font-lock-2 t]
489 ["Heavy highlighting (level 3)" f90-font-lock-3 t]
490 ["Maximum highlighting (level 4)" f90-font-lock-4 t]
491 )
492 ("Change Keyword Case"
493 ["Upcase Keywords (buffer)" f90-upcase-keywords t]
494 ["Capitalize Keywords (buffer)" f90-capitalize-keywords t]
495 ["Downcase Keywords (buffer)" f90-downcase-keywords t]
496 "--"
497 ["Upcase Keywords (region)" f90-upcase-region-keywords
498 mark-active]
499 ["Capitalize Keywords (region)" f90-capitalize-region-keywords
500 mark-active]
501 ["Downcase Keywords (region)" f90-downcase-region-keywords
502 mark-active]
503 )
504 "--"
505 ["Toggle auto-fill" auto-fill-mode :selected auto-fill-function
506 :style toggle]
507 ["Toggle abbrev-mode" abbrev-mode :selected abbrev-mode
508 :style toggle]
509 ["Add imenu Menu" f90-add-imenu-menu
510 :active (not (lookup-key (current-local-map) [menu-bar index]))
511 :included (fboundp 'imenu-add-to-menubar)]))
458 map) 512 map)
459 "Keymap used in F90 mode.") 513 "Keymap used in F90 mode.")
460 514
461 515
462(easy-menu-define f90-menu f90-mode-map "Menu for F90 mode."
463 '("F90"
464 ["Indent Subprogram" f90-indent-subprogram t]
465 ["Mark Subprogram" f90-mark-subprogram t]
466 ["Beginning of Subprogram" f90-beginning-of-subprogram t]
467 ["End of Subprogram" f90-end-of-subprogram t]
468 "--"
469 ["(Un)Comment Region" f90-comment-region mark-active]
470 ["Indent Region" f90-indent-region mark-active]
471 ["Fill Region" f90-fill-region mark-active]
472 "--"
473 ["Break Line at Point" f90-break-line t]
474 ["Join with Previous Line" f90-join-lines t]
475 ["Insert Block End" f90-insert-end t]
476 "--"
477 ("Highlighting"
478 ["Toggle font-lock-mode" font-lock-mode :selected font-lock-mode
479 :style toggle]
480 "--"
481 ["Light highlighting (level 1)" f90-font-lock-1 t]
482 ["Moderate highlighting (level 2)" f90-font-lock-2 t]
483 ["Heavy highlighting (level 3)" f90-font-lock-3 t]
484 ["Maximum highlighting (level 4)" f90-font-lock-4 t]
485 )
486 ("Change Keyword Case"
487 ["Upcase Keywords (buffer)" f90-upcase-keywords t]
488 ["Capitalize Keywords (buffer)" f90-capitalize-keywords t]
489 ["Downcase Keywords (buffer)" f90-downcase-keywords t]
490 "--"
491 ["Upcase Keywords (region)" f90-upcase-region-keywords mark-active]
492 ["Capitalize Keywords (region)" f90-capitalize-region-keywords
493 mark-active]
494 ["Downcase Keywords (region)" f90-downcase-region-keywords mark-active]
495 )
496 "--"
497 ["Toggle auto-fill" auto-fill-mode :selected auto-fill-function
498 :style toggle]
499 ["Toggle abbrev-mode" abbrev-mode :selected abbrev-mode :style toggle]
500 ["Add imenu Menu" f90-add-imenu-menu
501 :active (not (lookup-key (current-local-map) [menu-bar index]))
502 :included (fboundp 'imenu-add-to-menubar)]
503 ))
504
505(defun f90-font-lock-1 () 516(defun f90-font-lock-1 ()
506 "Set `font-lock-keywords' to `f90-font-lock-keywords-1'." 517 "Set `font-lock-keywords' to `f90-font-lock-keywords-1'."
507 (interactive) 518 (interactive)
@@ -595,7 +606,7 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
595 "\\)" 606 "\\)"
596 "[ \t]*\\(function\\|subroutine\\)[ \t]+\\(\\sw+\\)") 607 "[ \t]*\\(function\\|subroutine\\)[ \t]+\\(\\sw+\\)")
597 4))) 608 4)))
598 "Generic imenu expression for F90 mode.") 609 "Value for `imenu-generic-expression' in F90 mode.")
599 610
600(defun f90-add-imenu-menu () 611(defun f90-add-imenu-menu ()
601 "Add an imenu menu to the menubar." 612 "Add an imenu menu to the menubar."
@@ -680,10 +691,11 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
680;;;###autoload 691;;;###autoload
681(defun f90-mode () 692(defun f90-mode ()
682 "Major mode for editing Fortran 90,95 code in free format. 693 "Major mode for editing Fortran 90,95 code in free format.
694For fixed format code, use `fortran-mode'.
683 695
696\\[f90-indent-line] indents the current line.
684\\[f90-indent-new-line] indents current line and creates a new\ 697\\[f90-indent-new-line] indents current line and creates a new\
685 indented line. 698 indented line.
686\\[f90-indent-line] indents the current line.
687\\[f90-indent-subprogram] indents the current subprogram. 699\\[f90-indent-subprogram] indents the current subprogram.
688 700
689Type `? or `\\[help-command] to display a list of built-in\ 701Type `? or `\\[help-command] to display a list of built-in\
@@ -752,8 +764,6 @@ with no args, if that value is non-nil."
752 (set (make-local-variable 'abbrev-all-caps) t) 764 (set (make-local-variable 'abbrev-all-caps) t)
753 (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill) 765 (set (make-local-variable 'normal-auto-fill-function) 'f90-do-auto-fill)
754 (setq indent-tabs-mode nil) ; auto buffer local 766 (setq indent-tabs-mode nil) ; auto buffer local
755 (easy-menu-add f90-menu)
756 ;; Setting up things for font-lock.
757 (set (make-local-variable 'font-lock-defaults) 767 (set (make-local-variable 'font-lock-defaults)
758 '((f90-font-lock-keywords f90-font-lock-keywords-1 768 '((f90-font-lock-keywords f90-font-lock-keywords-1
759 f90-font-lock-keywords-2 769 f90-font-lock-keywords-2
@@ -763,7 +773,10 @@ with no args, if that value is non-nil."
763 ;; Tell imenu how to handle f90. 773 ;; Tell imenu how to handle f90.
764 (set (make-local-variable 'imenu-case-fold-search) t) 774 (set (make-local-variable 'imenu-case-fold-search) t)
765 (set (make-local-variable 'imenu-generic-expression) 775 (set (make-local-variable 'imenu-generic-expression)
766 f90-imenu-generic-expression) 776 f90-imenu-generic-expression)
777 (set (make-local-variable 'beginning-of-defun-function)
778 'f90-beginning-of-subprogram)
779 (set (make-local-variable 'end-of-defun-function) 'f90-end-of-subprogram)
767 (set (make-local-variable 'add-log-current-defun-function) 780 (set (make-local-variable 'add-log-current-defun-function)
768 #'f90-current-defun) 781 #'f90-current-defun)
769 (run-hooks 'f90-mode-hook)) 782 (run-hooks 'f90-mode-hook))
@@ -1282,7 +1295,7 @@ A block is a subroutine, if-endif, etc."
1282 1295
1283 1296
1284(defun f90-mark-subprogram () 1297(defun f90-mark-subprogram ()
1285 "Put mark at end of F90 subprogram, point at beginning, push marks." 1298 "Put mark at end of F90 subprogram, point at beginning, push mark."
1286 (interactive) 1299 (interactive)
1287 (let ((pos (point)) program) 1300 (let ((pos (point)) program)
1288 (f90-end-of-subprogram) 1301 (f90-end-of-subprogram)
@@ -1318,7 +1331,7 @@ in the region, or, if already present, remove it."
1318 "Indent current line as F90 code. 1331 "Indent current line as F90 code.
1319Unless optional argument NO-UPDATE is non-nil, call `f90-update-line' 1332Unless optional argument NO-UPDATE is non-nil, call `f90-update-line'
1320after indenting." 1333after indenting."
1321 (interactive) 1334 (interactive "*P")
1322 (let (indent no-line-number (pos (make-marker)) (case-fold-search t)) 1335 (let (indent no-line-number (pos (make-marker)) (case-fold-search t))
1323 (set-marker pos (point)) 1336 (set-marker pos (point))
1324 (beginning-of-line) ; digits after & \n are not line-nos 1337 (beginning-of-line) ; digits after & \n are not line-nos
@@ -1342,10 +1355,10 @@ after indenting."
1342 (set-marker pos nil))) 1355 (set-marker pos nil)))
1343 1356
1344(defun f90-indent-new-line () 1357(defun f90-indent-new-line ()
1345 "Reindent current line, insert a newline and indent the newline. 1358 "Re-indent current line, insert a newline and indent the newline.
1346An abbrev before point is expanded if the variable `abbrev-mode' is non-nil. 1359An abbrev before point is expanded if the variable `abbrev-mode' is non-nil.
1347If run in the middle of a line, the line is not broken." 1360If run in the middle of a line, the line is not broken."
1348 (interactive) 1361 (interactive "*")
1349 (let (string cont (case-fold-search t)) 1362 (let (string cont (case-fold-search t))
1350 (if abbrev-mode (expand-abbrev)) 1363 (if abbrev-mode (expand-abbrev))
1351 (beginning-of-line) ; reindent where likely to be needed 1364 (beginning-of-line) ; reindent where likely to be needed
@@ -1473,7 +1486,7 @@ If run in the middle of a line, the line is not broken."
1473 1486
1474(defun f90-indent-subprogram () 1487(defun f90-indent-subprogram ()
1475 "Properly indent the subprogram containing point." 1488 "Properly indent the subprogram containing point."
1476 (interactive) 1489 (interactive "*")
1477 (save-excursion 1490 (save-excursion
1478 (let ((program (f90-mark-subprogram))) 1491 (let ((program (f90-mark-subprogram)))
1479 (if program 1492 (if program
@@ -1491,7 +1504,7 @@ If run in the middle of a line, the line is not broken."
1491 "Break line at point, insert continuation marker(s) and indent. 1504 "Break line at point, insert continuation marker(s) and indent.
1492Unless in a string or comment, or if the optional argument NO-UPDATE 1505Unless in a string or comment, or if the optional argument NO-UPDATE
1493is non-nil, call `f90-update-line' after inserting the continuation marker." 1506is non-nil, call `f90-update-line' after inserting the continuation marker."
1494 (interactive) 1507 (interactive "*P")
1495 (cond ((f90-in-string) 1508 (cond ((f90-in-string)
1496 (insert "&\n&")) 1509 (insert "&\n&"))
1497 ((f90-in-comment) 1510 ((f90-in-comment)
@@ -1517,7 +1530,7 @@ is non-nil, call `f90-update-line' after inserting the continuation marker."
1517(defun f90-do-auto-fill () 1530(defun f90-do-auto-fill ()
1518 "Break line if non-white characters beyond `fill-column'. 1531 "Break line if non-white characters beyond `fill-column'.
1519Update keyword case first." 1532Update keyword case first."
1520 (interactive) 1533 (interactive "*")
1521 ;; Break line before or after last delimiter (non-word char) if 1534 ;; Break line before or after last delimiter (non-word char) if
1522 ;; position is beyond fill-column. 1535 ;; position is beyond fill-column.
1523 ;; Will not break **, //, or => (as specified by f90-no-break-re). 1536 ;; Will not break **, //, or => (as specified by f90-no-break-re).
@@ -1536,7 +1549,7 @@ Update keyword case first."
1536 1549
1537(defun f90-join-lines (&optional arg) 1550(defun f90-join-lines (&optional arg)
1538 "Join current line to previous, fix whitespace, continuation, comments. 1551 "Join current line to previous, fix whitespace, continuation, comments.
1539With an argument, join current line to following line. 1552With optional argument ARG, join current line to following line.
1540Like `join-line', but handles F90 syntax." 1553Like `join-line', but handles F90 syntax."
1541 (interactive "*P") 1554 (interactive "*P")
1542 (beginning-of-line) 1555 (beginning-of-line)
@@ -1564,7 +1577,7 @@ Like `join-line', but handles F90 syntax."
1564 (goto-char beg-region) 1577 (goto-char beg-region)
1565 (while go-on 1578 (while go-on
1566 ;; Join as much as possible. 1579 ;; Join as much as possible.
1567 (while (progn 1580 (while (progn
1568 (end-of-line) 1581 (end-of-line)
1569 (skip-chars-backward " \t") 1582 (skip-chars-backward " \t")
1570 (eq (preceding-char) ?&)) 1583 (eq (preceding-char) ?&))
@@ -1662,7 +1675,7 @@ Leave point at the end of line."
1662 1675
1663(defun f90-insert-end () 1676(defun f90-insert-end ()
1664 "Insert a complete end statement matching beginning of present block." 1677 "Insert a complete end statement matching beginning of present block."
1665 (interactive) 1678 (interactive "*")
1666 (let ((f90-smart-end (or f90-smart-end 'blink))) 1679 (let ((f90-smart-end (or f90-smart-end 'blink)))
1667 (insert "end") 1680 (insert "end")
1668 (f90-indent-new-line))) 1681 (f90-indent-new-line)))
@@ -1703,17 +1716,17 @@ Any other key combination is executed normally."
1703 1716
1704(defun f90-upcase-keywords () 1717(defun f90-upcase-keywords ()
1705 "Upcase all F90 keywords in the buffer." 1718 "Upcase all F90 keywords in the buffer."
1706 (interactive) 1719 (interactive "*")
1707 (f90-change-keywords 'upcase-word)) 1720 (f90-change-keywords 'upcase-word))
1708 1721
1709(defun f90-capitalize-keywords () 1722(defun f90-capitalize-keywords ()
1710 "Capitalize all F90 keywords in the buffer." 1723 "Capitalize all F90 keywords in the buffer."
1711 (interactive) 1724 (interactive "*")
1712 (f90-change-keywords 'capitalize-word)) 1725 (f90-change-keywords 'capitalize-word))
1713 1726
1714(defun f90-downcase-keywords () 1727(defun f90-downcase-keywords ()
1715 "Downcase all F90 keywords in the buffer." 1728 "Downcase all F90 keywords in the buffer."
1716 (interactive) 1729 (interactive "*")
1717 (f90-change-keywords 'downcase-word)) 1730 (f90-change-keywords 'downcase-word))
1718 1731
1719(defun f90-upcase-region-keywords (beg end) 1732(defun f90-upcase-region-keywords (beg end)