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

Annotation of mandoc/roff.h, Revision 1.41

1.41    ! schwarze    1: /*     $Id: roff.h,v 1.40 2017/02/16 03:00:23 schwarze Exp $   */
1.1       kristaps    2: /*
1.28      schwarze    3:  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
1.38      schwarze    4:  * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
1.1       kristaps    5:  *
                      6:  * Permission to use, copy, modify, and distribute this software for any
1.12      kristaps    7:  * purpose with or without fee is hereby granted, provided that the above
                      8:  * copyright notice and this permission notice appear in all copies.
1.1       kristaps    9:  *
1.28      schwarze   10:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
1.12      kristaps   11:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1.28      schwarze   12:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
1.12      kristaps   13:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     14:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     15:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     16:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1.1       kristaps   17:  */
                     18:
1.29      schwarze   19: struct mdoc_arg;
                     20: union  mdoc_data;
                     21:
1.32      schwarze   22: enum   roff_macroset {
                     23:        MACROSET_NONE = 0,
                     24:        MACROSET_MDOC,
                     25:        MACROSET_MAN
                     26: };
                     27:
1.29      schwarze   28: enum   roff_sec {
                     29:        SEC_NONE = 0,
                     30:        SEC_NAME,
                     31:        SEC_LIBRARY,
                     32:        SEC_SYNOPSIS,
                     33:        SEC_DESCRIPTION,
                     34:        SEC_CONTEXT,
                     35:        SEC_IMPLEMENTATION,     /* IMPLEMENTATION NOTES */
                     36:        SEC_RETURN_VALUES,
                     37:        SEC_ENVIRONMENT,
                     38:        SEC_FILES,
                     39:        SEC_EXIT_STATUS,
                     40:        SEC_EXAMPLES,
                     41:        SEC_DIAGNOSTICS,
                     42:        SEC_COMPATIBILITY,
                     43:        SEC_ERRORS,
                     44:        SEC_SEE_ALSO,
                     45:        SEC_STANDARDS,
                     46:        SEC_HISTORY,
                     47:        SEC_AUTHORS,
                     48:        SEC_CAVEATS,
                     49:        SEC_BUGS,
                     50:        SEC_SECURITY,
                     51:        SEC_CUSTOM,
                     52:        SEC__MAX
                     53: };
                     54:
1.28      schwarze   55: enum   roff_type {
                     56:        ROFFT_ROOT,
                     57:        ROFFT_BLOCK,
                     58:        ROFFT_HEAD,
                     59:        ROFFT_BODY,
                     60:        ROFFT_TAIL,
                     61:        ROFFT_ELEM,
                     62:        ROFFT_TEXT,
                     63:        ROFFT_TBL,
                     64:        ROFFT_EQN
1.29      schwarze   65: };
                     66:
1.41    ! schwarze   67: enum   roff_tok {
        !            68:        ROFF_ab = 0,
        !            69:        ROFF_ad,
        !            70:        ROFF_af,
        !            71:        ROFF_aln,
        !            72:        ROFF_als,
        !            73:        ROFF_am,
        !            74:        ROFF_am1,
        !            75:        ROFF_ami,
        !            76:        ROFF_ami1,
        !            77:        ROFF_as,
        !            78:        ROFF_as1,
        !            79:        ROFF_asciify,
        !            80:        ROFF_backtrace,
        !            81:        ROFF_bd,
        !            82:        ROFF_bleedat,
        !            83:        ROFF_blm,
        !            84:        ROFF_box,
        !            85:        ROFF_boxa,
        !            86:        ROFF_bp,
        !            87:        ROFF_BP,
        !            88:        /* MAN_br, MDOC_br */
        !            89:        ROFF_break,
        !            90:        ROFF_breakchar,
        !            91:        ROFF_brnl,
        !            92:        ROFF_brp,
        !            93:        ROFF_brpnl,
        !            94:        ROFF_c2,
        !            95:        ROFF_cc,
        !            96:        ROFF_ce,
        !            97:        ROFF_cf,
        !            98:        ROFF_cflags,
        !            99:        ROFF_ch,
        !           100:        ROFF_char,
        !           101:        ROFF_chop,
        !           102:        ROFF_class,
        !           103:        ROFF_close,
        !           104:        ROFF_CL,
        !           105:        ROFF_color,
        !           106:        ROFF_composite,
        !           107:        ROFF_continue,
        !           108:        ROFF_cp,
        !           109:        ROFF_cropat,
        !           110:        ROFF_cs,
        !           111:        ROFF_cu,
        !           112:        ROFF_da,
        !           113:        ROFF_dch,
        !           114:        ROFF_Dd,
        !           115:        ROFF_de,
        !           116:        ROFF_de1,
        !           117:        ROFF_defcolor,
        !           118:        ROFF_dei,
        !           119:        ROFF_dei1,
        !           120:        ROFF_device,
        !           121:        ROFF_devicem,
        !           122:        ROFF_di,
        !           123:        ROFF_do,
        !           124:        ROFF_ds,
        !           125:        ROFF_ds1,
        !           126:        ROFF_dwh,
        !           127:        ROFF_dt,
        !           128:        ROFF_ec,
        !           129:        ROFF_ecr,
        !           130:        ROFF_ecs,
        !           131:        ROFF_el,
        !           132:        ROFF_em,
        !           133:        ROFF_EN,
        !           134:        ROFF_eo,
        !           135:        ROFF_EP,
        !           136:        ROFF_EQ,
        !           137:        ROFF_errprint,
        !           138:        ROFF_ev,
        !           139:        ROFF_evc,
        !           140:        ROFF_ex,
        !           141:        ROFF_fallback,
        !           142:        ROFF_fam,
        !           143:        ROFF_fc,
        !           144:        ROFF_fchar,
        !           145:        ROFF_fcolor,
        !           146:        ROFF_fdeferlig,
        !           147:        ROFF_feature,
        !           148:        /* MAN_fi; ignored in mdoc(7) */
        !           149:        ROFF_fkern,
        !           150:        ROFF_fl,
        !           151:        ROFF_flig,
        !           152:        ROFF_fp,
        !           153:        ROFF_fps,
        !           154:        ROFF_fschar,
        !           155:        ROFF_fspacewidth,
        !           156:        ROFF_fspecial,
        !           157:        /* MAN_ft; ignored in mdoc(7) */
        !           158:        ROFF_ftr,
        !           159:        ROFF_fzoom,
        !           160:        ROFF_gcolor,
        !           161:        ROFF_hc,
        !           162:        ROFF_hcode,
        !           163:        ROFF_hidechar,
        !           164:        ROFF_hla,
        !           165:        ROFF_hlm,
        !           166:        ROFF_hpf,
        !           167:        ROFF_hpfa,
        !           168:        ROFF_hpfcode,
        !           169:        ROFF_hw,
        !           170:        ROFF_hy,
        !           171:        ROFF_hylang,
        !           172:        ROFF_hylen,
        !           173:        ROFF_hym,
        !           174:        ROFF_hypp,
        !           175:        ROFF_hys,
        !           176:        ROFF_ie,
        !           177:        ROFF_if,
        !           178:        ROFF_ig,
        !           179:        /* MAN_in; ignored in mdoc(7) */
        !           180:        ROFF_index,
        !           181:        ROFF_it,
        !           182:        ROFF_itc,
        !           183:        ROFF_IX,
        !           184:        ROFF_kern,
        !           185:        ROFF_kernafter,
        !           186:        ROFF_kernbefore,
        !           187:        ROFF_kernpair,
        !           188:        ROFF_lc,
        !           189:        ROFF_lc_ctype,
        !           190:        ROFF_lds,
        !           191:        ROFF_length,
        !           192:        ROFF_letadj,
        !           193:        ROFF_lf,
        !           194:        ROFF_lg,
        !           195:        ROFF_lhang,
        !           196:        ROFF_linetabs,
        !           197:        /* MAN_ll, MDOC_ll */
        !           198:        ROFF_lnr,
        !           199:        ROFF_lnrf,
        !           200:        ROFF_lpfx,
        !           201:        ROFF_ls,
        !           202:        ROFF_lsm,
        !           203:        ROFF_lt,
        !           204:        ROFF_mc,
        !           205:        ROFF_mediasize,
        !           206:        ROFF_minss,
        !           207:        ROFF_mk,
        !           208:        ROFF_mso,
        !           209:        ROFF_na,
        !           210:        ROFF_ne,
        !           211:        /* MAN_nf; ignored in mdoc(7) */
        !           212:        ROFF_nh,
        !           213:        ROFF_nhychar,
        !           214:        ROFF_nm,
        !           215:        ROFF_nn,
        !           216:        ROFF_nop,
        !           217:        ROFF_nr,
        !           218:        ROFF_nrf,
        !           219:        ROFF_nroff,
        !           220:        ROFF_ns,
        !           221:        ROFF_nx,
        !           222:        ROFF_open,
        !           223:        ROFF_opena,
        !           224:        ROFF_os,
        !           225:        ROFF_output,
        !           226:        ROFF_padj,
        !           227:        ROFF_papersize,
        !           228:        ROFF_pc,
        !           229:        ROFF_pev,
        !           230:        ROFF_pi,
        !           231:        ROFF_PI,
        !           232:        ROFF_pl,
        !           233:        ROFF_pm,
        !           234:        ROFF_pn,
        !           235:        ROFF_pnr,
        !           236:        ROFF_po,
        !           237:        ROFF_ps,
        !           238:        ROFF_psbb,
        !           239:        ROFF_pshape,
        !           240:        ROFF_pso,
        !           241:        ROFF_ptr,
        !           242:        ROFF_pvs,
        !           243:        ROFF_rchar,
        !           244:        ROFF_rd,
        !           245:        ROFF_recursionlimit,
        !           246:        ROFF_return,
        !           247:        ROFF_rfschar,
        !           248:        ROFF_rhang,
        !           249:        ROFF_rj,
        !           250:        ROFF_rm,
        !           251:        ROFF_rn,
        !           252:        ROFF_rnn,
        !           253:        ROFF_rr,
        !           254:        ROFF_rs,
        !           255:        ROFF_rt,
        !           256:        ROFF_schar,
        !           257:        ROFF_sentchar,
        !           258:        ROFF_shc,
        !           259:        ROFF_shift,
        !           260:        ROFF_sizes,
        !           261:        ROFF_so,
        !           262:        /* MAN_sp, MDOC_sp */
        !           263:        ROFF_spacewidth,
        !           264:        ROFF_special,
        !           265:        ROFF_spreadwarn,
        !           266:        ROFF_ss,
        !           267:        ROFF_sty,
        !           268:        ROFF_substring,
        !           269:        ROFF_sv,
        !           270:        ROFF_sy,
        !           271:        ROFF_T_,
        !           272:        ROFF_ta,
        !           273:        ROFF_tc,
        !           274:        ROFF_TE,
        !           275:        ROFF_TH,
        !           276:        ROFF_ti,
        !           277:        ROFF_tkf,
        !           278:        ROFF_tl,
        !           279:        ROFF_tm,
        !           280:        ROFF_tm1,
        !           281:        ROFF_tmc,
        !           282:        ROFF_tr,
        !           283:        ROFF_track,
        !           284:        ROFF_transchar,
        !           285:        ROFF_trf,
        !           286:        ROFF_trimat,
        !           287:        ROFF_trin,
        !           288:        ROFF_trnt,
        !           289:        ROFF_troff,
        !           290:        ROFF_TS,
        !           291:        ROFF_uf,
        !           292:        ROFF_ul,
        !           293:        ROFF_unformat,
        !           294:        ROFF_unwatch,
        !           295:        ROFF_unwatchn,
        !           296:        ROFF_vpt,
        !           297:        ROFF_vs,
        !           298:        ROFF_warn,
        !           299:        ROFF_warnscale,
        !           300:        ROFF_watch,
        !           301:        ROFF_watchlength,
        !           302:        ROFF_watchn,
        !           303:        ROFF_wh,
        !           304:        ROFF_while,
        !           305:        ROFF_write,
        !           306:        ROFF_writec,
        !           307:        ROFF_writem,
        !           308:        ROFF_xflag,
        !           309:        ROFF_cblock,
        !           310:        ROFF_USERDEF,
        !           311:        TOKEN_NONE,
        !           312:        MDOC_Dd,
        !           313:        MDOC_Dt,
        !           314:        MDOC_Os,
        !           315:        MDOC_Sh,
        !           316:        MDOC_Ss,
        !           317:        MDOC_Pp,
        !           318:        MDOC_D1,
        !           319:        MDOC_Dl,
        !           320:        MDOC_Bd,
        !           321:        MDOC_Ed,
        !           322:        MDOC_Bl,
        !           323:        MDOC_El,
        !           324:        MDOC_It,
        !           325:        MDOC_Ad,
        !           326:        MDOC_An,
        !           327:        MDOC_Ap,
        !           328:        MDOC_Ar,
        !           329:        MDOC_Cd,
        !           330:        MDOC_Cm,
        !           331:        MDOC_Dv,
        !           332:        MDOC_Er,
        !           333:        MDOC_Ev,
        !           334:        MDOC_Ex,
        !           335:        MDOC_Fa,
        !           336:        MDOC_Fd,
        !           337:        MDOC_Fl,
        !           338:        MDOC_Fn,
        !           339:        MDOC_Ft,
        !           340:        MDOC_Ic,
        !           341:        MDOC_In,
        !           342:        MDOC_Li,
        !           343:        MDOC_Nd,
        !           344:        MDOC_Nm,
        !           345:        MDOC_Op,
        !           346:        MDOC_Ot,
        !           347:        MDOC_Pa,
        !           348:        MDOC_Rv,
        !           349:        MDOC_St,
        !           350:        MDOC_Va,
        !           351:        MDOC_Vt,
        !           352:        MDOC_Xr,
        !           353:        MDOC__A,
        !           354:        MDOC__B,
        !           355:        MDOC__D,
        !           356:        MDOC__I,
        !           357:        MDOC__J,
        !           358:        MDOC__N,
        !           359:        MDOC__O,
        !           360:        MDOC__P,
        !           361:        MDOC__R,
        !           362:        MDOC__T,
        !           363:        MDOC__V,
        !           364:        MDOC_Ac,
        !           365:        MDOC_Ao,
        !           366:        MDOC_Aq,
        !           367:        MDOC_At,
        !           368:        MDOC_Bc,
        !           369:        MDOC_Bf,
        !           370:        MDOC_Bo,
        !           371:        MDOC_Bq,
        !           372:        MDOC_Bsx,
        !           373:        MDOC_Bx,
        !           374:        MDOC_Db,
        !           375:        MDOC_Dc,
        !           376:        MDOC_Do,
        !           377:        MDOC_Dq,
        !           378:        MDOC_Ec,
        !           379:        MDOC_Ef,
        !           380:        MDOC_Em,
        !           381:        MDOC_Eo,
        !           382:        MDOC_Fx,
        !           383:        MDOC_Ms,
        !           384:        MDOC_No,
        !           385:        MDOC_Ns,
        !           386:        MDOC_Nx,
        !           387:        MDOC_Ox,
        !           388:        MDOC_Pc,
        !           389:        MDOC_Pf,
        !           390:        MDOC_Po,
        !           391:        MDOC_Pq,
        !           392:        MDOC_Qc,
        !           393:        MDOC_Ql,
        !           394:        MDOC_Qo,
        !           395:        MDOC_Qq,
        !           396:        MDOC_Re,
        !           397:        MDOC_Rs,
        !           398:        MDOC_Sc,
        !           399:        MDOC_So,
        !           400:        MDOC_Sq,
        !           401:        MDOC_Sm,
        !           402:        MDOC_Sx,
        !           403:        MDOC_Sy,
        !           404:        MDOC_Tn,
        !           405:        MDOC_Ux,
        !           406:        MDOC_Xc,
        !           407:        MDOC_Xo,
        !           408:        MDOC_Fo,
        !           409:        MDOC_Fc,
        !           410:        MDOC_Oo,
        !           411:        MDOC_Oc,
        !           412:        MDOC_Bk,
        !           413:        MDOC_Ek,
        !           414:        MDOC_Bt,
        !           415:        MDOC_Hf,
        !           416:        MDOC_Fr,
        !           417:        MDOC_Ud,
        !           418:        MDOC_Lb,
        !           419:        MDOC_Lp,
        !           420:        MDOC_Lk,
        !           421:        MDOC_Mt,
        !           422:        MDOC_Brq,
        !           423:        MDOC_Bro,
        !           424:        MDOC_Brc,
        !           425:        MDOC__C,
        !           426:        MDOC_Es,
        !           427:        MDOC_En,
        !           428:        MDOC_Dx,
        !           429:        MDOC__Q,
        !           430:        MDOC_br,
        !           431:        MDOC_sp,
        !           432:        MDOC__U,
        !           433:        MDOC_Ta,
        !           434:        MDOC_ll,
        !           435:        MDOC_MAX,
        !           436:        MAN_TH,
        !           437:        MAN_SH,
        !           438:        MAN_SS,
        !           439:        MAN_TP,
        !           440:        MAN_LP,
        !           441:        MAN_PP,
        !           442:        MAN_P,
        !           443:        MAN_IP,
        !           444:        MAN_HP,
        !           445:        MAN_SM,
        !           446:        MAN_SB,
        !           447:        MAN_BI,
        !           448:        MAN_IB,
        !           449:        MAN_BR,
        !           450:        MAN_RB,
        !           451:        MAN_R,
        !           452:        MAN_B,
        !           453:        MAN_I,
        !           454:        MAN_IR,
        !           455:        MAN_RI,
        !           456:        MAN_br,
        !           457:        MAN_sp,
        !           458:        MAN_nf,
        !           459:        MAN_fi,
        !           460:        MAN_RE,
        !           461:        MAN_RS,
        !           462:        MAN_DT,
        !           463:        MAN_UC,
        !           464:        MAN_PD,
        !           465:        MAN_AT,
        !           466:        MAN_in,
        !           467:        MAN_ft,
        !           468:        MAN_OP,
        !           469:        MAN_EX,
        !           470:        MAN_EE,
        !           471:        MAN_UR,
        !           472:        MAN_UE,
        !           473:        MAN_ll,
        !           474:        MAN_MAX
        !           475: };
        !           476:
1.31      schwarze  477: enum   roff_next {
                    478:        ROFF_NEXT_SIBLING = 0,
                    479:        ROFF_NEXT_CHILD
                    480: };
                    481:
1.29      schwarze  482: /*
                    483:  * Indicates that a BODY's formatting has ended, but
                    484:  * the scope is still open.  Used for badly nested blocks.
                    485:  */
                    486: enum   mdoc_endbody {
                    487:        ENDBODY_NOT = 0,
1.40      schwarze  488:        ENDBODY_SPACE   /* Is broken: append a space. */
1.29      schwarze  489: };
                    490:
                    491: struct roff_node {
                    492:        struct roff_node *parent;  /* Parent AST node. */
                    493:        struct roff_node *child;   /* First child AST node. */
                    494:        struct roff_node *last;    /* Last child AST node. */
                    495:        struct roff_node *next;    /* Sibling AST node. */
                    496:        struct roff_node *prev;    /* Prior sibling AST node. */
                    497:        struct roff_node *head;    /* BLOCK */
                    498:        struct roff_node *body;    /* BLOCK/ENDBODY */
                    499:        struct roff_node *tail;    /* BLOCK */
                    500:        struct mdoc_arg  *args;    /* BLOCK/ELEM */
                    501:        union mdoc_data  *norm;    /* Normalized arguments. */
                    502:        char             *string;  /* TEXT */
                    503:        const struct tbl_span *span; /* TBL */
                    504:        const struct eqn *eqn;     /* EQN */
                    505:        int               line;    /* Input file line number. */
                    506:        int               pos;     /* Input file column number. */
                    507:        int               flags;
1.39      schwarze  508: #define        NODE_VALID       (1 << 0)  /* Has been validated. */
                    509: #define        NODE_ENDED       (1 << 1)  /* Gone past body end mark. */
                    510: #define        NODE_EOS         (1 << 2)  /* At sentence boundary. */
                    511: #define        NODE_LINE        (1 << 3)  /* First macro/text on line. */
                    512: #define        NODE_SYNPRETTY   (1 << 4)  /* SYNOPSIS-style formatting. */
                    513: #define        NODE_BROKEN      (1 << 5)  /* Must validate parent when ending. */
                    514: #define        NODE_DELIMO      (1 << 6)
                    515: #define        NODE_DELIMC      (1 << 7)
1.38      schwarze  516: #define        NODE_NOSRC       (1 << 8)  /* Generated node, not in input file. */
                    517: #define        NODE_NOPRT       (1 << 9)  /* Shall not print anything. */
1.29      schwarze  518:        int               prev_font; /* Before entering this node. */
                    519:        int               aux;     /* Decoded node data, type-dependent. */
1.41    ! schwarze  520:        enum roff_tok     tok;     /* Request or macro ID. */
1.29      schwarze  521:        enum roff_type    type;    /* AST node type. */
                    522:        enum roff_sec     sec;     /* Current named section. */
                    523:        enum mdoc_endbody end;     /* BODY */
1.28      schwarze  524: };
1.30      schwarze  525:
                    526: struct roff_meta {
                    527:        char             *msec;    /* Manual section, usually a digit. */
                    528:        char             *vol;     /* Manual volume title. */
                    529:        char             *os;      /* Operating system. */
                    530:        char             *arch;    /* Machine architecture. */
                    531:        char             *title;   /* Manual title, usually CAPS. */
                    532:        char             *name;    /* Leading manual name. */
                    533:        char             *date;    /* Normalized date. */
                    534:        int               hasbody; /* Document is not empty. */
1.31      schwarze  535: };
                    536:
                    537: struct roff_man {
                    538:        struct roff_meta  meta;    /* Document meta-data. */
                    539:        struct mparse    *parse;   /* Parse pointer. */
                    540:        struct roff      *roff;    /* Roff parser state data. */
                    541:        const char       *defos;   /* Default operating system. */
                    542:        struct roff_node *first;   /* The first node parsed. */
                    543:        struct roff_node *last;    /* The last node parsed. */
                    544:        struct roff_node *last_es; /* The most recent Es node. */
                    545:        int               quick;   /* Abort parse early. */
                    546:        int               flags;   /* Parse flags. */
                    547: #define        MDOC_LITERAL     (1 << 1)  /* In a literal scope. */
                    548: #define        MDOC_PBODY       (1 << 2)  /* In the document body. */
                    549: #define        MDOC_NEWLINE     (1 << 3)  /* First macro/text in a line. */
1.35      schwarze  550: #define        MDOC_PHRASE      (1 << 4)  /* In a Bl -column phrase. */
                    551: #define        MDOC_PHRASELIT   (1 << 5)  /* Literal within a phrase. */
1.31      schwarze  552: #define        MDOC_FREECOL     (1 << 6)  /* `It' invocation should close. */
                    553: #define        MDOC_SYNOPSIS    (1 << 7)  /* SYNOPSIS-style formatting. */
                    554: #define        MDOC_KEEP        (1 << 8)  /* In a word keep. */
                    555: #define        MDOC_SMOFF       (1 << 9)  /* Spacing is off. */
                    556: #define        MDOC_NODELIMC    (1 << 10) /* Disable closing delimiter handling. */
                    557: #define        MAN_ELINE        (1 << 11) /* Next-line element scope. */
                    558: #define        MAN_BLINE        (1 << 12) /* Next-line block scope. */
1.35      schwarze  559: #define        MDOC_PHRASEQF    (1 << 13) /* Quote first word encountered. */
                    560: #define        MDOC_PHRASEQL    (1 << 14) /* Quote last word of this phrase. */
                    561: #define        MDOC_PHRASEQN    (1 << 15) /* Quote first word of the next phrase. */
1.31      schwarze  562: #define        MAN_LITERAL       MDOC_LITERAL
                    563: #define        MAN_NEWLINE       MDOC_NEWLINE
1.32      schwarze  564:        enum roff_macroset macroset; /* Kind of high-level macros used. */
1.31      schwarze  565:        enum roff_sec     lastsec; /* Last section seen. */
                    566:        enum roff_sec     lastnamed; /* Last standard section seen. */
                    567:        enum roff_next    next;    /* Where to put the next node. */
1.30      schwarze  568: };
1.34      schwarze  569:
1.41    ! schwarze  570: extern const char *const *roff_name;
1.34      schwarze  571:
                    572: void            deroff(char **, const struct roff_node *);

CVSweb