Annotation of mandoc/literals.c, Revision 1.4
1.4 ! kristaps 1: /* $Id: literals.c,v 1.3 2008/12/08 16:29:57 kristaps Exp $ */
1.1 kristaps 2: /*
3: * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
4: *
5: * Permission to use, copy, modify, and distribute this software for any
6: * purpose with or without fee is hereby granted, provided that the
7: * above copyright notice and this permission notice appear in all
8: * copies.
9: *
10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11: * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12: * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13: * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14: * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15: * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16: * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17: * PERFORMANCE OF THIS SOFTWARE.
18: */
19: #include <assert.h>
20: #include <string.h>
21: #include <stdlib.h>
22:
23: #include "libmdocml.h"
24: #include "private.h"
25: #include "ml.h"
26:
1.4 ! kristaps 27: /* FIXME: make this roff_section and so on. */
! 28:
1.1 kristaps 29:
30: char *
1.2 kristaps 31: ml_section(enum roffmsec sec)
32: {
33:
34: switch (sec) {
35: case(ROFF_MSEC_1):
36: return("1");
37: case(ROFF_MSEC_2):
38: return("2");
39: case(ROFF_MSEC_3):
40: return("3");
41: case(ROFF_MSEC_3p):
42: return("3p");
43: case(ROFF_MSEC_4):
44: return("4");
45: case(ROFF_MSEC_5):
46: return("5");
47: case(ROFF_MSEC_6):
48: return("6");
49: case(ROFF_MSEC_7):
50: return("7");
51: case(ROFF_MSEC_8):
52: return("8");
53: case(ROFF_MSEC_9):
54: return("9");
55: case(ROFF_MSEC_UNASS):
56: return("unass");
57: case(ROFF_MSEC_DRAFT):
58: return("draft");
59: case(ROFF_MSEC_PAPER):
60: return("paper");
61: default:
62: break;
63: }
64:
65: abort();
66: /* NOTREACHED */
67: }
68:
69:
70: char *
1.1 kristaps 71: ml_literal(int tok, const int *argc,
72: const char **argv, const char **morep)
73: {
74:
75: switch (tok) {
76: case (ROFF_Ex):
77: return ("The %s utility exits 0 on success, and "
78: ">0 if an error occurs.");
79: case (ROFF_Rv):
80: return ("The %s() function returns the value 0 if "
81: "successful; otherwise the value -1 "
82: "is returned and the global variable "
83: "<span class=\"inline-Va\">errno</span> "
84: "is set to indicate the error.");
85: case (ROFF_In):
86: return("#include <%s>");
87: case (ROFF_At):
88: /* FIXME: this should be in roff.c. */
89: assert(NULL == *argv);
90: assert(ROFF_ARGMAX == *argc);
91: if (NULL == *morep)
92: return("AT&T UNIX");
1.3 kristaps 93: if (0 == strcmp(*morep, "v1"))
94: return("Version 1 AT&T UNIX");
95: else if (0 == strcmp(*morep, "v2"))
96: return("Version 2 AT&T UNIX");
97: else if (0 == strcmp(*morep, "v3"))
98: return("Version 3 AT&T UNIX");
99: else if (0 == strcmp(*morep, "v6"))
1.1 kristaps 100: return("Version 6 AT&T UNIX");
101: else if (0 == strcmp(*morep, "v7"))
102: return("Version 7 AT&T UNIX");
103: else if (0 == strcmp(*morep, "32v"))
104: return("Version 32v AT&T UNIX");
105: else if (0 == strcmp(*morep, "V.1"))
106: return("AT&T System V.1 UNIX");
107: else if (0 == strcmp(*morep, "V.4"))
108: return("AT&T System V.4 UNIX");
109: abort();
110: /* NOTREACHED */
111: case (ROFF_St):
112: assert(ROFF_ARGMAX != *argc);
113: assert(NULL == *argv);
114: switch (*argc) {
115: case(ROFF_p1003_1_88):
116: return("IEEE Std 1003.1-1988 "
117: "(“POSIX”)");
118: case(ROFF_p1003_1_90):
119: return("IEEE Std 1003.1-1990 "
120: "(“POSIX”)");
121: case(ROFF_p1003_1_96):
122: return("ISO/IEC 9945-1:1996 "
123: "(“POSIX”)");
124: case(ROFF_p1003_1_2001):
125: return("IEEE Std 1003.1-2001 "
126: "(“POSIX”)");
127: case(ROFF_p1003_1_2004):
128: return("IEEE Std 1003.1-2004 "
129: "(“POSIX”)");
130: case(ROFF_p1003_1):
131: return("IEEE Std 1003.1 "
132: "(“POSIX”)");
133: case(ROFF_p1003_1b):
134: return("IEEE Std 1003.1b "
135: "(“POSIX”)");
136: case(ROFF_p1003_1b_93):
137: return("IEEE Std 1003.1b-1993 "
138: "(“POSIX”)");
139: case(ROFF_p1003_1c_95):
140: return("IEEE Std 1003.1c-1995 "
141: "(“POSIX”)");
142: case(ROFF_p1003_1g_2000):
143: return("IEEE Std 1003.1g-2000 "
144: "(“POSIX”)");
145: case(ROFF_p1003_2_92):
146: return("IEEE Std 1003.2-1992 "
147: "(“POSIX.2”)");
148: case(ROFF_p1387_2_95):
149: return("IEEE Std 1387.2-1995 "
150: "(“POSIX.7.2”)");
151: case(ROFF_p1003_2):
152: return("IEEE Std 1003.2 "
153: "(“POSIX.2”)");
154: case(ROFF_p1387_2):
155: return("IEEE Std 1387.2 "
156: "(“POSIX.7.2”)");
157: case(ROFF_isoC_90):
158: return("ISO/IEC 9899:1990 "
159: "(“ISO C90”)");
160: case(ROFF_isoC_amd1):
161: return("ISO/IEC 9899/AMD1:1995 "
162: "(“ISO C90”)");
163: case(ROFF_isoC_tcor1):
164: return("ISO/IEC 9899/TCOR1:1994 "
165: "(“ISO C90”)");
166: case(ROFF_isoC_tcor2):
167: return("ISO/IEC 9899/TCOR2:1995 "
168: "(“ISO C90”)");
169: case(ROFF_isoC_99):
170: return("ISO/IEC 9899:1999 "
171: "(“ISO C99”)");
172: case(ROFF_ansiC):
173: return("ANSI X3.159-1989 "
174: "(“ANSI C”)");
175: case(ROFF_ansiC_89):
176: return("ANSI X3.159-1989 "
177: "(“ANSI C”)");
178: case(ROFF_ansiC_99):
179: return("ANSI/ISO/IEC 9899-1999 "
180: "(“ANSI C99”)");
181: case(ROFF_ieee754):
182: return("IEEE Std 754-1985");
183: case(ROFF_iso8802_3):
184: return("ISO 8802-3: 1989");
185: case(ROFF_xpg3):
186: return("X/Open Portability Guide Issue 3 "
187: "(“XPG3”)");
188: case(ROFF_xpg4):
189: return("X/Open Portability Guide Issue 4 "
190: "(“XPG4”)");
191: case(ROFF_xpg4_2):
192: return("X/Open Portability Guide Issue 4.2 "
193: "(“XPG4.2”)");
194: case(ROFF_xpg4_3):
195: return("X/Open Portability Guide Issue 4.3 "
196: "(“XPG4.3”)");
197: case(ROFF_xbd5):
198: return("X/Open System Interface Definitions "
199: "Issue 5 (“XBD5”)");
200: case(ROFF_xcu5):
201: return("X/Open Commands and Utilities Issue 5 "
202: "(“XCU5”)");
203: case(ROFF_xsh5):
204: return("X/Open System Interfaces and Headers "
205: "Issue 5 (“XSH5”)");
206: case(ROFF_xns5):
207: return("X/Open Networking Services Issue 5 "
208: "(“XNS5”)");
209: case(ROFF_xns5_2d2_0):
210: return("X/Open Networking Services "
211: "Issue 5.2 Draft 2.0 "
212: "(“XNS5.2D2.0”)");
213: case(ROFF_xcurses4_2):
214: return("X/Open Curses Issue 4 Version 2 "
215: "(“XCURSES4.2”)");
216: case(ROFF_susv2):
217: return("Version 2 of the Single "
218: "UNIX Specification");
219: case(ROFF_susv3):
220: return("Version 3 of the Single "
221: "UNIX Specification");
222: case(ROFF_svid4):
223: return("System V Interface Definition, Fourth "
224: "Edition (“SVID4”)");
225: default:
226: break;
227: }
228: abort();
229: /* NOTREACHED */
230: case (ROFF_Bt):
231: return("is currently in beta test.");
232: case (ROFF_Ud):
233: return("currently under development.");
234: case (ROFF_Fx):
235: return("FreeBSD");
236: case (ROFF_Nx):
237: return("NetBSD");
238: case (ROFF_Ox):
239: return("OpenBSD");
240: case (ROFF_Ux):
241: return("UNIX");
242: case (ROFF_Bx):
243: return("BSD");
244: case (ROFF_Bsx):
245: return("BSDI BSD/OS");
246: default:
247: break;
248: }
249: abort();
250: /* NOTREACHED */
251: }
252:
CVSweb