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