File indexing completed on 2024-04-28 04:57:51

0001 #ifndef RequestHash_H
0002 #define RequestHash_H
0003 
0004 /* This file is part of the KDE libraries
0005    SPDX-FileCopyrightText: 2011 Martin Koller <kollix@aon.at>
0006 
0007    SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009 
0010 // Some known missing requests from mdoc(7):
0011 // - start or end of quotings
0012 
0013 // Some of the requests are from mdoc.
0014 // On Linux see the man pages mdoc(7), mdoc.samples(7) and groff_mdoc(7)
0015 // See also the online man pages of FreeBSD: mdoc(7)
0016 
0017 enum RequestNum {
0018     REQ_UNKNOWN = -1,
0019     REQ_ab,
0020     REQ_di,
0021     REQ_ds,
0022     REQ_as,
0023     REQ_br,
0024     REQ_c2,
0025     REQ_cc,
0026     REQ_ce,
0027     REQ_ec,
0028     REQ_eo,
0029     REQ_ex,
0030     REQ_fc,
0031     REQ_fi,
0032     REQ_ft, // groff(7) "FonT"
0033     REQ_el,
0034     REQ_ie,
0035     REQ_if,
0036     REQ_ig,
0037     REQ_nf,
0038     REQ_ps,
0039     REQ_sp,
0040     REQ_so,
0041     REQ_ta,
0042     REQ_ti,
0043     REQ_tm,
0044     REQ_B,
0045     REQ_I,
0046     REQ_Fd,
0047     REQ_Fn,
0048     REQ_Fo,
0049     REQ_Fc,
0050     REQ_OP,
0051     REQ_Ft,
0052     REQ_Fa,
0053     REQ_BR,
0054     REQ_BI,
0055     REQ_IB,
0056     REQ_IR,
0057     REQ_RB,
0058     REQ_RI,
0059     REQ_DT,
0060     REQ_IP, // man(7) "Indent Paragraph"
0061     REQ_TP,
0062     REQ_IX,
0063     REQ_P,
0064     REQ_LP,
0065     REQ_PP,
0066     REQ_HP,
0067     REQ_PD,
0068     REQ_Rs,
0069     REQ_RS,
0070     REQ_Re,
0071     REQ_RE,
0072     REQ_SB,
0073     REQ_SM,
0074     REQ_Ss,
0075     REQ_St,
0076     REQ_SS,
0077     REQ_Sh,
0078     REQ_SH, // man(7) "Sub Header"
0079     REQ_Sx,
0080     REQ_TS,
0081     REQ_Dt,
0082     REQ_TH,
0083     REQ_TX,
0084     REQ_rm,
0085     REQ_rn,
0086     REQ_nx,
0087     REQ_in,
0088     REQ_nr, // groff(7) "Number Register"
0089     REQ_am,
0090     REQ_de,
0091     REQ_de1, // groff(7) Same as .de but with compatibility mode switched off during macro expansion.
0092     REQ_Bl, // mdoc(7) "Begin List"
0093     REQ_El, // mdoc(7) "End List"
0094     REQ_It, // mdoc(7) "ITem"
0095     REQ_Bk,
0096     REQ_Ek,
0097     REQ_Dd,
0098     REQ_Os, // mdoc(7)
0099     REQ_Bt,
0100     REQ_At, // mdoc(7) "AT&t" (not parsable, not callable)
0101     REQ_Fx, // mdoc(7) "Freebsd" (not parsable, not callable)
0102     REQ_Nx,
0103     REQ_Ox,
0104     REQ_Bx, // mdoc(7) "Bsd"
0105     REQ_Ux, // mdoc(7) "UniX"
0106     REQ_Dl,
0107     REQ_Bd,
0108     REQ_Ed,
0109     REQ_Be,
0110     REQ_Xr, // mdoc(7) "eXternal Reference"
0111     REQ_Fl, // mdoc(7) "FLag"
0112     REQ_Pa,
0113     REQ_Pf,
0114     REQ_Pp,
0115     REQ_Dq, // mdoc(7) "Double Quote"
0116     REQ_Op,
0117     REQ_Oo,
0118     REQ_Oc,
0119     REQ_Pq, // mdoc(7) "Parenthese Quote"
0120     REQ_Ql,
0121     REQ_Sq, // mdoc(7) "Single Quote"
0122     REQ_Ar,
0123     REQ_Ad,
0124     REQ_Em, // mdoc(7) "EMphasis"
0125     REQ_Va,
0126     REQ_Nd,
0127     REQ_Nm,
0128     REQ_Cd,
0129     REQ_Cm,
0130     REQ_Ic,
0131     REQ_Ms,
0132     REQ_Or,
0133     REQ_Sy,
0134     REQ_Dv,
0135     REQ_Ev,
0136     REQ_Fr,
0137     REQ_Li,
0138     REQ_No,
0139     REQ_Ns,
0140     REQ_Tn,
0141     REQ_nN,
0142     REQ_perc_A,
0143     REQ_perc_D,
0144     REQ_perc_N,
0145     REQ_perc_O,
0146     REQ_perc_P,
0147     REQ_perc_Q,
0148     REQ_perc_V,
0149     REQ_perc_B,
0150     REQ_perc_J,
0151     REQ_perc_R,
0152     REQ_perc_T,
0153     REQ_An, // mdoc(7) "Author Name"
0154     REQ_Aq, // mdoc(7) "Angle bracket Quote"
0155     REQ_Bq, // mdoc(7) "Bracket Quote"
0156     REQ_Qq, // mdoc(7)  "straight double Quote"
0157     REQ_tr, // translate
0158     REQ_troff, // groff(7) "TROFF mode"
0159     REQ_nroff, // groff(7) "NROFF mode"
0160     REQ_als, // groff(7) "ALias String"
0161     REQ_rr, // groff(7) "Remove number Register"
0162     REQ_rnn, // groff(7) "ReName Number register"
0163     REQ_aln, // groff(7) "ALias Number register"
0164     REQ_shift, // groff(7) "SHIFT parameter"
0165     REQ_while, // groff(7) "WHILE loop"
0166     REQ_do, // groff(7) "DO command"
0167     REQ_Dx, // mdoc(7) "DragonFly" macro
0168     REQ_Ta, // mdoc(7) "Ta" inside .It macro
0169     REQ_break, // groff(7) "Break out of a while loop"
0170     REQ_nop, // groff(7) .nop macro
0171     REQ_URL, // man(7) .URL macro
0172     REQ_Sm, // mdoc(7) space mode
0173     REQ_Xo, // mdoc(7) extended argument list open
0174     REQ_Xc // mdoc(7) extended argument list close
0175 };
0176 
0177 class RequestHash
0178 {
0179 public:
0180     // return the RequestNum for given first len bytes from str or REQ_UNKNOWN
0181     // if an undefined key is searched
0182     static RequestNum getRequest(const char *str, int len);
0183 };
0184 
0185 #endif