[BACK]Return to literals.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

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:                                "&gt;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 &lt;%s&gt;");
                     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&amp;T UNIX");
1.3       kristaps   93:                if (0 == strcmp(*morep, "v1"))
                     94:                        return("Version 1 AT&amp;T UNIX");
                     95:                else if (0 == strcmp(*morep, "v2"))
                     96:                        return("Version 2 AT&amp;T UNIX");
                     97:                else if (0 == strcmp(*morep, "v3"))
                     98:                        return("Version 3 AT&amp;T UNIX");
                     99:                else if (0 == strcmp(*morep, "v6"))
1.1       kristaps  100:                        return("Version 6 AT&amp;T UNIX");
                    101:                else if (0 == strcmp(*morep, "v7"))
                    102:                        return("Version 7 AT&amp;T UNIX");
                    103:                else if (0 == strcmp(*morep, "32v"))
                    104:                        return("Version 32v AT&amp;T UNIX");
                    105:                else if (0 == strcmp(*morep, "V.1"))
                    106:                        return("AT&amp;T System V.1 UNIX");
                    107:                else if (0 == strcmp(*morep, "V.4"))
                    108:                        return("AT&amp;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:                                        "(&#8220;POSIX&#8221;)");
                    118:                case(ROFF_p1003_1_90):
                    119:                        return("IEEE Std 1003.1-1990 "
                    120:                                        "(&#8220;POSIX&#8221;)");
                    121:                case(ROFF_p1003_1_96):
                    122:                        return("ISO/IEC 9945-1:1996 "
                    123:                                        "(&#8220;POSIX&#8221;)");
                    124:                case(ROFF_p1003_1_2001):
                    125:                        return("IEEE Std 1003.1-2001 "
                    126:                                        "(&#8220;POSIX&#8221;)");
                    127:                case(ROFF_p1003_1_2004):
                    128:                        return("IEEE Std 1003.1-2004 "
                    129:                                        "(&#8220;POSIX&#8221;)");
                    130:                case(ROFF_p1003_1):
                    131:                        return("IEEE Std 1003.1 "
                    132:                                        "(&#8220;POSIX&#8221;)");
                    133:                case(ROFF_p1003_1b):
                    134:                        return("IEEE Std 1003.1b "
                    135:                                        "(&#8220;POSIX&#8221;)");
                    136:                case(ROFF_p1003_1b_93):
                    137:                        return("IEEE Std 1003.1b-1993 "
                    138:                                        "(&#8220;POSIX&#8221;)");
                    139:                case(ROFF_p1003_1c_95):
                    140:                        return("IEEE Std 1003.1c-1995 "
                    141:                                        "(&#8220;POSIX&#8221;)");
                    142:                case(ROFF_p1003_1g_2000):
                    143:                        return("IEEE Std 1003.1g-2000 "
                    144:                                        "(&#8220;POSIX&#8221;)");
                    145:                case(ROFF_p1003_2_92):
                    146:                        return("IEEE Std 1003.2-1992 "
                    147:                                        "(&#8220;POSIX.2&#8221;)");
                    148:                case(ROFF_p1387_2_95):
                    149:                        return("IEEE Std 1387.2-1995 "
                    150:                                        "(&#8220;POSIX.7.2&#8221;)");
                    151:                case(ROFF_p1003_2):
                    152:                        return("IEEE Std 1003.2 "
                    153:                                        "(&#8220;POSIX.2&#8221;)");
                    154:                case(ROFF_p1387_2):
                    155:                        return("IEEE Std 1387.2 "
                    156:                                        "(&#8220;POSIX.7.2&#8221;)");
                    157:                case(ROFF_isoC_90):
                    158:                        return("ISO/IEC 9899:1990 "
                    159:                                        "(&#8220;ISO C90&#8221;)");
                    160:                case(ROFF_isoC_amd1):
                    161:                        return("ISO/IEC 9899/AMD1:1995 "
                    162:                                        "(&#8220;ISO C90&#8221;)");
                    163:                case(ROFF_isoC_tcor1):
                    164:                        return("ISO/IEC 9899/TCOR1:1994 "
                    165:                                        "(&#8220;ISO C90&#8221;)");
                    166:                case(ROFF_isoC_tcor2):
                    167:                        return("ISO/IEC 9899/TCOR2:1995 "
                    168:                                        "(&#8220;ISO C90&#8221;)");
                    169:                case(ROFF_isoC_99):
                    170:                        return("ISO/IEC 9899:1999 "
                    171:                                        "(&#8220;ISO C99&#8221;)");
                    172:                case(ROFF_ansiC):
                    173:                        return("ANSI X3.159-1989 "
                    174:                                        "(&#8220;ANSI C&#8221;)");
                    175:                case(ROFF_ansiC_89):
                    176:                        return("ANSI X3.159-1989 "
                    177:                                        "(&#8220;ANSI C&#8221;)");
                    178:                case(ROFF_ansiC_99):
                    179:                        return("ANSI/ISO/IEC 9899-1999 "
                    180:                                        "(&#8220;ANSI C99&#8221;)");
                    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:                                        "(&#8220;XPG3&#8221;)");
                    188:                case(ROFF_xpg4):
                    189:                        return("X/Open Portability Guide Issue 4 "
                    190:                                        "(&#8220;XPG4&#8221;)");
                    191:                case(ROFF_xpg4_2):
                    192:                        return("X/Open Portability Guide Issue 4.2 "
                    193:                                        "(&#8220;XPG4.2&#8221;)");
                    194:                case(ROFF_xpg4_3):
                    195:                        return("X/Open Portability Guide Issue 4.3 "
                    196:                                        "(&#8220;XPG4.3&#8221;)");
                    197:                case(ROFF_xbd5):
                    198:                        return("X/Open System Interface Definitions "
                    199:                                        "Issue 5 (&#8220;XBD5&#8221;)");
                    200:                case(ROFF_xcu5):
                    201:                        return("X/Open Commands and Utilities Issue 5 "
                    202:                                        "(&#8220;XCU5&#8221;)");
                    203:                case(ROFF_xsh5):
                    204:                        return("X/Open System Interfaces and Headers "
                    205:                                        "Issue 5 (&#8220;XSH5&#8221;)");
                    206:                case(ROFF_xns5):
                    207:                        return("X/Open Networking Services Issue 5 "
                    208:                                        "(&#8220;XNS5&#8221;)");
                    209:                case(ROFF_xns5_2d2_0):
                    210:                        return("X/Open Networking Services "
                    211:                                        "Issue 5.2 Draft 2.0 "
                    212:                                        "(&#8220;XNS5.2D2.0&#8221;)");
                    213:                case(ROFF_xcurses4_2):
                    214:                        return("X/Open Curses Issue 4 Version 2 "
                    215:                                        "(&#8220;XCURSES4.2&#8221;)");
                    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 (&#8220;SVID4&#8221;)");
                    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