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

Annotation of mandoc/literals.c, Revision 1.2

1.2     ! kristaps    1: /* $Id: literals.c,v 1.1 2008/12/07 22:40:18 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:                                "&gt;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 &lt;%s&gt;");
                     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&amp;T UNIX");
                     91:                if (0 == strcmp(*morep, "v6"))
                     92:                        return("Version 6 AT&amp;T UNIX");
                     93:                else if (0 == strcmp(*morep, "v7"))
                     94:                        return("Version 7 AT&amp;T UNIX");
                     95:                else if (0 == strcmp(*morep, "32v"))
                     96:                        return("Version 32v AT&amp;T UNIX");
                     97:                else if (0 == strcmp(*morep, "V.1"))
                     98:                        return("AT&amp;T System V.1 UNIX");
                     99:                else if (0 == strcmp(*morep, "V.4"))
                    100:                        return("AT&amp;T System V.4 UNIX");
                    101:                abort();
                    102:                /* NOTREACHED */
                    103:        case (ROFF_St):
                    104:                assert(ROFF_ARGMAX != *argc);
                    105:                assert(NULL == *argv);
                    106:                switch (*argc) {
                    107:                case(ROFF_p1003_1_88):
                    108:                        return("IEEE Std 1003.1-1988 "
                    109:                                        "(&#8220;POSIX&#8221;)");
                    110:                case(ROFF_p1003_1_90):
                    111:                        return("IEEE Std 1003.1-1990 "
                    112:                                        "(&#8220;POSIX&#8221;)");
                    113:                case(ROFF_p1003_1_96):
                    114:                        return("ISO/IEC 9945-1:1996 "
                    115:                                        "(&#8220;POSIX&#8221;)");
                    116:                case(ROFF_p1003_1_2001):
                    117:                        return("IEEE Std 1003.1-2001 "
                    118:                                        "(&#8220;POSIX&#8221;)");
                    119:                case(ROFF_p1003_1_2004):
                    120:                        return("IEEE Std 1003.1-2004 "
                    121:                                        "(&#8220;POSIX&#8221;)");
                    122:                case(ROFF_p1003_1):
                    123:                        return("IEEE Std 1003.1 "
                    124:                                        "(&#8220;POSIX&#8221;)");
                    125:                case(ROFF_p1003_1b):
                    126:                        return("IEEE Std 1003.1b "
                    127:                                        "(&#8220;POSIX&#8221;)");
                    128:                case(ROFF_p1003_1b_93):
                    129:                        return("IEEE Std 1003.1b-1993 "
                    130:                                        "(&#8220;POSIX&#8221;)");
                    131:                case(ROFF_p1003_1c_95):
                    132:                        return("IEEE Std 1003.1c-1995 "
                    133:                                        "(&#8220;POSIX&#8221;)");
                    134:                case(ROFF_p1003_1g_2000):
                    135:                        return("IEEE Std 1003.1g-2000 "
                    136:                                        "(&#8220;POSIX&#8221;)");
                    137:                case(ROFF_p1003_2_92):
                    138:                        return("IEEE Std 1003.2-1992 "
                    139:                                        "(&#8220;POSIX.2&#8221;)");
                    140:                case(ROFF_p1387_2_95):
                    141:                        return("IEEE Std 1387.2-1995 "
                    142:                                        "(&#8220;POSIX.7.2&#8221;)");
                    143:                case(ROFF_p1003_2):
                    144:                        return("IEEE Std 1003.2 "
                    145:                                        "(&#8220;POSIX.2&#8221;)");
                    146:                case(ROFF_p1387_2):
                    147:                        return("IEEE Std 1387.2 "
                    148:                                        "(&#8220;POSIX.7.2&#8221;)");
                    149:                case(ROFF_isoC_90):
                    150:                        return("ISO/IEC 9899:1990 "
                    151:                                        "(&#8220;ISO C90&#8221;)");
                    152:                case(ROFF_isoC_amd1):
                    153:                        return("ISO/IEC 9899/AMD1:1995 "
                    154:                                        "(&#8220;ISO C90&#8221;)");
                    155:                case(ROFF_isoC_tcor1):
                    156:                        return("ISO/IEC 9899/TCOR1:1994 "
                    157:                                        "(&#8220;ISO C90&#8221;)");
                    158:                case(ROFF_isoC_tcor2):
                    159:                        return("ISO/IEC 9899/TCOR2:1995 "
                    160:                                        "(&#8220;ISO C90&#8221;)");
                    161:                case(ROFF_isoC_99):
                    162:                        return("ISO/IEC 9899:1999 "
                    163:                                        "(&#8220;ISO C99&#8221;)");
                    164:                case(ROFF_ansiC):
                    165:                        return("ANSI X3.159-1989 "
                    166:                                        "(&#8220;ANSI C&#8221;)");
                    167:                case(ROFF_ansiC_89):
                    168:                        return("ANSI X3.159-1989 "
                    169:                                        "(&#8220;ANSI C&#8221;)");
                    170:                case(ROFF_ansiC_99):
                    171:                        return("ANSI/ISO/IEC 9899-1999 "
                    172:                                        "(&#8220;ANSI C99&#8221;)");
                    173:                case(ROFF_ieee754):
                    174:                        return("IEEE Std 754-1985");
                    175:                case(ROFF_iso8802_3):
                    176:                        return("ISO 8802-3: 1989");
                    177:                case(ROFF_xpg3):
                    178:                        return("X/Open Portability Guide Issue 3 "
                    179:                                        "(&#8220;XPG3&#8221;)");
                    180:                case(ROFF_xpg4):
                    181:                        return("X/Open Portability Guide Issue 4 "
                    182:                                        "(&#8220;XPG4&#8221;)");
                    183:                case(ROFF_xpg4_2):
                    184:                        return("X/Open Portability Guide Issue 4.2 "
                    185:                                        "(&#8220;XPG4.2&#8221;)");
                    186:                case(ROFF_xpg4_3):
                    187:                        return("X/Open Portability Guide Issue 4.3 "
                    188:                                        "(&#8220;XPG4.3&#8221;)");
                    189:                case(ROFF_xbd5):
                    190:                        return("X/Open System Interface Definitions "
                    191:                                        "Issue 5 (&#8220;XBD5&#8221;)");
                    192:                case(ROFF_xcu5):
                    193:                        return("X/Open Commands and Utilities Issue 5 "
                    194:                                        "(&#8220;XCU5&#8221;)");
                    195:                case(ROFF_xsh5):
                    196:                        return("X/Open System Interfaces and Headers "
                    197:                                        "Issue 5 (&#8220;XSH5&#8221;)");
                    198:                case(ROFF_xns5):
                    199:                        return("X/Open Networking Services Issue 5 "
                    200:                                        "(&#8220;XNS5&#8221;)");
                    201:                case(ROFF_xns5_2d2_0):
                    202:                        return("X/Open Networking Services "
                    203:                                        "Issue 5.2 Draft 2.0 "
                    204:                                        "(&#8220;XNS5.2D2.0&#8221;)");
                    205:                case(ROFF_xcurses4_2):
                    206:                        return("X/Open Curses Issue 4 Version 2 "
                    207:                                        "(&#8220;XCURSES4.2&#8221;)");
                    208:                case(ROFF_susv2):
                    209:                        return("Version 2 of the Single "
                    210:                                        "UNIX Specification");
                    211:                case(ROFF_susv3):
                    212:                        return("Version 3 of the Single "
                    213:                                        "UNIX Specification");
                    214:                case(ROFF_svid4):
                    215:                        return("System V Interface Definition, Fourth "
                    216:                                        "Edition (&#8220;SVID4&#8221;)");
                    217:                default:
                    218:                        break;
                    219:                }
                    220:                abort();
                    221:                /* NOTREACHED */
                    222:        case (ROFF_Bt):
                    223:                return("is currently in beta test.");
                    224:        case (ROFF_Ud):
                    225:                return("currently under development.");
                    226:        case (ROFF_Fx):
                    227:                return("FreeBSD");
                    228:        case (ROFF_Nx):
                    229:                return("NetBSD");
                    230:        case (ROFF_Ox):
                    231:                return("OpenBSD");
                    232:        case (ROFF_Ux):
                    233:                return("UNIX");
                    234:        case (ROFF_Bx):
                    235:                return("BSD");
                    236:        case (ROFF_Bsx):
                    237:                return("BSDI BSD/OS");
                    238:        default:
                    239:                break;
                    240:        }
                    241:        abort();
                    242:        /* NOTREACHED */
                    243: }
                    244:

CVSweb