Mercurial > emacs
annotate lib-src/digest-doc.c @ 85536:a23a7c302a2c
Add some support for Fortran 2003 syntax:
(f90-type-indent): Now also applies to `enum'.
(f90-associate-indent): New user option.
(f90-keywords-re, f90-keywords-level-3-re, f90-procedures-re):
Add some F2003 keywords.
(f90-constants-re): New constant.
(f90-font-lock-keywords-1): Add `associate' blocks, and `abstract
Interface'.
(f90-font-lock-keywords-2): Add `enumerator', `generic', `procedure',
`class'. Arguments for `type'/`class' may have spaces. Add a new
element for functions with specified types. Add `end enum' and
`select type'. Add `implicit enumerator' and `procedure'. Add
`class default' and `type is', `class is'. Fix `go to' regexp.
(f90-font-lock-keywords-3): Add `asynchronous' attribute.
(f90-font-lock-keywords-4): Add `f90-constants-re'.
(f90-blocks-re): Add `enum' and `associate'.
(f90-else-like-re): Add `class is', `type is', and `class default'.
(f90-end-type-re): Add `enum'.
(f90-end-associate-re, f90-typeis-re): New constants.
(f90-end-block-re): Add `enum' and `associate'. Change from
optional whitespace to end-of-word, to avoid `enumerator'.
(f90-start-block-re): Add `select type', `abstract interface', and
`enum'. Avoid `type is', and `type (sometype)'.
(f90-mode-abbrev-table): Add `enumerator', `protected', and `volatile'.
(f90-mode): Doc fix.
(f90-looking-at-select-case): Doc fix. Add `select type'.
(f90-looking-at-associate): New function,
(f90-looking-at-type-like): Avoid `type is' and `type (sometype)'.
Add `enum' and `abstract interface'.
(f90-no-block-limit): Add `select type' and `abstract interface'.
(f90-get-correct-indent, f90-calculate-indent)
(f90-end-of-block, f90-beginning-of-block, f90-next-block)
(f90-indent-region, f90-match-end): : Handle `associate' blocks.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Mon, 22 Oct 2007 08:17:25 +0000 |
parents | 1f2482de3237 |
children | 5714ff101fd9 f55f9811f5d7 |
rev | line source |
---|---|
42260 | 1 /* Give this program DOC-mm.nn.oo as standard input and it outputs to |
36226 | 2 standard output a file of nroff output containing the doc strings. |
3 | |
64769
6358e3c6075c
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64083
diff
changeset
|
4 Copyright (C) 1987, 1994, 2001, 2002, 2003, 2004, |
75348 | 5 2005, 2006, 2007 Free Software Foundation, Inc. |
36226 | 6 |
7 This file is part of GNU Emacs. | |
9 | 8 |
36226 | 9 GNU Emacs is free software; you can redistribute it and/or modify |
10 it under the terms of the GNU General Public License as published by | |
78257
1f2482de3237
Switch license to GPLv3 or later.
Glenn Morris <rgm@gnu.org>
parents:
75348
diff
changeset
|
11 the Free Software Foundation; either version 3, or (at your option) |
36226 | 12 any later version. |
13 | |
14 GNU Emacs is distributed in the hope that it will be useful, | |
15 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 GNU General Public License for more details. | |
18 | |
19 You should have received a copy of the GNU General Public License | |
42258 | 20 along with GNU Emacs; see the file COPYING. If not, write to the |
64083 | 21 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
22 Boston, MA 02110-1301, USA. | |
42411
c67f88ae0e05
Remove trailing whitespaces.
Pavel Janík <Pavel@Janik.cz>
parents:
42260
diff
changeset
|
23 |
9 | 24 See also sorted-doc.c, which produces similar output |
25 but in texinfo format and sorted by function/variable name. */ | |
26 | |
27 #include <stdio.h> | |
9491
dd3b83e4ceb0
Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents:
9
diff
changeset
|
28 |
71195
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
29 #ifdef DOS_NT |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
30 #include <fcntl.h> /* for O_BINARY */ |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
31 #include <io.h> /* for setmode */ |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
32 #endif |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
33 |
9491
dd3b83e4ceb0
Eliminate some -Wall warnings.
David J. MacKenzie <djm@gnu.org>
parents:
9
diff
changeset
|
34 int |
9 | 35 main () |
36 { | |
37 register int ch; | |
38 register int notfirst = 0; | |
39 | |
71195
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
40 #ifdef DOS_NT |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
41 /* DOC is a binary file. */ |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
42 if (!isatty (fileno (stdin))) |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
43 setmode (fileno (stdin), O_BINARY); |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
44 #endif |
2a9a6318a6db
[DOS_NT] <top level>: Include fcntl.h and io.h.
Eli Zaretskii <eliz@gnu.org>
parents:
68647
diff
changeset
|
45 |
9 | 46 printf (".TL\n"); |
47 printf ("Command Summary for GNU Emacs\n"); | |
48 printf (".AU\nRichard M. Stallman\n"); | |
49 while ((ch = getchar ()) != EOF) | |
50 { | |
51 if (ch == '\037') | |
52 { | |
53 if (notfirst) | |
54 printf ("\n.DE"); | |
55 else | |
56 notfirst = 1; | |
57 | |
58 printf ("\n.SH\n"); | |
59 | |
60 ch = getchar (); | |
61 printf (ch == 'F' ? "Function " : "Variable "); | |
62 | |
63 while ((ch = getchar ()) != '\n') /* Changed this line */ | |
64 { | |
65 if (ch != EOF) | |
66 putchar (ch); | |
67 else | |
68 { | |
69 ungetc (ch, stdin); | |
70 break; | |
71 } | |
72 } | |
73 printf ("\n.DS L\n"); | |
74 } | |
75 else | |
76 putchar (ch); | |
77 } | |
78 return 0; | |
79 } | |
52401 | 80 |
81 /* arch-tag: 2ba2c9b0-4157-4eba-bd9f-967e3677e35f | |
82 (do not change this comment) */ |