source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* texi2mdoc: Add all of the accents and fix their weird parsing rules.
@ 2015-02-24 20:07 kristaps
  0 siblings, 0 replies; only message in thread
From: kristaps @ 2015-02-24 20:07 UTC (permalink / raw)
  To: source

Log Message:
-----------
Add all of the accents and fix their weird parsing rules.
Add lots more symbols, while there.

Modified Files:
--------------
    texi2mdoc:
        extern.h
        main.c
        texi2mdoc.1

Revision Data
-------------
Index: extern.h
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/extern.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lextern.h -Lextern.h -u -p -r1.11 -r1.12
--- extern.h
+++ extern.h
@@ -23,9 +23,13 @@
  * different story.
  */
 enum	texicmd {
+	TEXICMD_A4PAPER,
+	TEXICMD_AA,
+	TEXICMD_AASMALL,
 	TEXICMD_ACRONYM,
 	TEXICMD_ACUTE,
-	TEXICMD_A4PAPER,
+	TEXICMD_AE,
+	TEXICMD_AESMALL,
 	TEXICMD_ANCHOR,
 	TEXICMD_APPENDIX,
 	TEXICMD_APPENDIXSEC,
@@ -83,12 +87,16 @@ enum	texicmd {
 	TEXICMD_DEFVRX,
 	TEXICMD_DETAILMENU,
 	TEXICMD_DFN,
+	TEXICMD_DH,
+	TEXICMD_DHSMALL,
 	TEXICMD_DIRCATEGORY,
 	TEXICMD_DIRENTRY,
 	TEXICMD_DISPLAY,
 	TEXICMD_DMN,
 	TEXICMD_DOCUMENTDESCRPITION,
 	TEXICMD_DOCUMENTENCODING,
+	TEXICMD_DOTACCENT,
+	TEXICMD_DOTLESS,
 	TEXICMD_DOTS,
 	TEXICMD_EMAIL,
 	TEXICMD_EMPH,
@@ -99,6 +107,7 @@ enum	texicmd {
 	TEXICMD_EQUIV,
 	TEXICMD_ERROR,
 	TEXICMD_EXAMPLE,
+	TEXICMD_EXCLAMDOWN,
 	TEXICMD_EXDENT,
 	TEXICMD_EXPANSION,
 	TEXICMD_FILE,
@@ -109,6 +118,7 @@ enum	texicmd {
 	TEXICMD_FORMAT,
 	TEXICMD_GRAVE,
 	TEXICMD_GROUP,
+	TEXICMD_H,
 	TEXICMD_HEADING,
 	TEXICMD_HEADINGS,
 	TEXICMD_HEADITEM,
@@ -141,9 +151,12 @@ enum	texicmd {
 	TEXICMD_KBD,
 	TEXICMD_KEY,
 	TEXICMD_KINDEX,
+	TEXICMD_L,
 	TEXICMD_LATEX,
 	TEXICMD_LOWERSECTIONS,
+	TEXICMD_LSMALL,
 	TEXICMD_MACRO,
+	TEXICMD_MACRON,
 	TEXICMD_MATH,
 	TEXICMD_MENU,
 	TEXICMD_MINUS,
@@ -152,20 +165,29 @@ enum	texicmd {
 	TEXICMD_NEWLINE,
 	TEXICMD_NODE,
 	TEXICMD_NOINDENT,
+	TEXICMD_O,
+	TEXICMD_OE,
+	TEXICMD_OESMALL,
+	TEXICMD_OGONEK,
 	TEXICMD_OPTION,
-	TEXICMD_PXREF,
-	TEXICMD_QUESTIONMARK,
-	TEXICMD_QUOTATION,
+	TEXICMD_ORDF,
+	TEXICMD_ORDM,
+	TEXICMD_OSMALL,
 	TEXICMD_PAGE,
 	TEXICMD_PARINDENT,
 	TEXICMD_PERIOD,
 	TEXICMD_PINDEX,
 	TEXICMD_PRINTINDEX,
+	TEXICMD_PXREF,
+	TEXICMD_QUESTIONDOWN,
+	TEXICMD_QUESTIONMARK,
+	TEXICMD_QUOTATION,
 	TEXICMD_R,
 	TEXICMD_RAISESECTIONS,
 	TEXICMD_REF,
 	TEXICMD_REFILL,
 	TEXICMD_RESULT,
+	TEXICMD_RINGACCENT,
 	TEXICMD_SAMP,
 	TEXICMD_SANSSERIF,
 	TEXICMD_SC,
@@ -203,13 +225,19 @@ enum	texicmd {
 	TEXICMD_TABLE,
 	TEXICMD_TEX,
 	TEXICMD_TEXSYM,
+	TEXICMD_TH,
+	TEXICMD_THSMALL,
 	TEXICMD_TIE,
+	TEXICMD_TIEACCENT,
 	TEXICMD_TILDE,
 	TEXICMD_TINDEX,
 	TEXICMD_TITLE,
 	TEXICMD_TITLEFONT,
 	TEXICMD_TITLEPAGE,
 	TEXICMD_TOP,
+	TEXICMD_U,
+	TEXICMD_UBARACCENT,
+	TEXICMD_UDOTACCENT,
 	TEXICMD_UMLAUT,
 	TEXICMD_UNNUMBERED,
 	TEXICMD_UNNUMBEREDSEC,
@@ -218,6 +246,7 @@ enum	texicmd {
 	TEXICMD_UREF,
 	TEXICMD_URL,
 	TEXICMD_USER_INDEX,
+	TEXICMD_V,
 	TEXICMD_VALUE,
 	TEXICMD_VAR,
 	TEXICMD_VERB,
Index: main.c
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/main.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -Lmain.c -Lmain.c -u -p -r1.41 -r1.42
--- main.c
+++ main.c
@@ -77,9 +77,13 @@ static	void doverbinclude(struct texi *,
 
 static	const struct texitok __texitoks[TEXICMD__MAX] = {
 	/* TEXICMD__BEGIN */
+	{ doignline, "afourpaper", 10 }, /* TEXICMD_A4PAPER */
+	{ dosymbol, "AA", 2 }, /* TEXICMD_AA */
+	{ dosymbol, "aa", 2 }, /* TEXICMD_AASMALL */
 	{ doignargn, "acronym", 7 }, /* TEXICMD_ACRONYM */
 	{ doaccent, "'", 1 }, /* TEXICMD_ACUTE */
-	{ doignline, "afourpaper", 10 }, /* TEXICMD_A4PAPER */
+	{ dosymbol, "AE", 2 }, /* TEXICMD_AE */
+	{ dosymbol, "ae", 2 }, /* TEXICMD_AESMALL */
 	{ doignbracket, "anchor", 6 }, /* TEXICMD_ANCHOR */
 	{ dosection, "appendix", 8 }, /* TEXICMD_APPENDIX */
 	{ dosection, "appendixsec", 11 }, /* TEXICMD_APPENDIXSEC */
@@ -137,12 +141,16 @@ static	const struct texitok __texitoks[T
 	{ dodefn, "defvrx", 6 }, /* TEXICMD_DEFVRX */
 	{ doignblock, "detailmenu", 10 }, /* TEXICMD_DETAILMENU */
 	{ doinline, "dfn", 3 }, /* TEXICMD_DFN */
+	{ dosymbol, "DH", 2 }, /* TEXICMD_DH */
+	{ dosymbol, "dh", 2 }, /* TEXICMD_DHSMALL */
 	{ doignline, "dircategory", 11 }, /* TEXICMD_DIRCATEGORY */
 	{ doignblock, "direntry", 8 }, /* TEXICMD_DIRENTRY */
 	{ dodisplay, "display", 7 }, /* TEXICMD_DISPLAY */
 	{ doignbracket, "dmn", 3 }, /* TEXICMD_DMN */
 	{ doignblock, "documentdescription", 19 }, /* TEXICMD_DOCUMENTDESCRIPTION */
 	{ doignline, "documentencoding", 16 }, /* TEXICMD_DOCUMENTENCODING */
+	{ doaccent, "dotaccent", 9 }, /* TEXICMD_DOTACCENT */
+	{ doaccent, "dotless", 7 }, /* TEXICMD_DOTLESS */
 	{ dosymbol, "dots", 4 }, /* TEXICMD_DOTS */
 	{ dolink, "email", 5 }, /* TEXICMD_EMAIL */
 	{ doinline, "emph", 4 }, /* TEXICMD_EMPH */
@@ -153,6 +161,7 @@ static	const struct texitok __texitoks[T
 	{ dosymbol, "equiv", 5 }, /* TEXICMD_EQUIV */
 	{ dosymbol, "error", 5 }, /* TEXICMD_ERROR */
 	{ doexample, "example", 7 }, /* TEXICMD_EXAMPLE */
+	{ dosymbol, "exclamdown", 10 }, /* TEXICMD_EXCLAMDOWN */
 	{ doignline, "exdent", 6 }, /* TEXICMD_EXDENT */
 	{ dosymbol, "expansion", 9 }, /* TEXICMD_EXPANSION */
 	{ doinline, "file", 4 }, /* TEXICMD_FILE */
@@ -163,6 +172,7 @@ static	const struct texitok __texitoks[T
 	{ dodisplay, "format", 6 }, /* TEXICMD_FORMAT */
 	{ doaccent, "`", 1 }, /* TEXICMD_GRAVE */
 	{ doblock, "group", 5 }, /* TEXICMD_GROUP */
+	{ doaccent, "H", 1 }, /* TEXICMD_H */
 	{ dosection, "heading", 7 }, /* TEXICMD_HEADING */
 	{ doignline, "headings", 8 }, /* TEXICMD_HEADINGS */
 	{ doitem, "headitem", 8 }, /* TEXICMD_HEADITEM */
@@ -195,9 +205,12 @@ static	const struct texitok __texitoks[T
 	{ doinline, "kbd", 3 }, /* TEXICMD_KBD */
 	{ dobracket, "key", 3 }, /* TEXICMD_KEY */
 	{ doignline, "kindex", 6 }, /* TEXICMD_KINDEX */
+	{ dosymbol, "L", 1 }, /* TEXICMD_L */
 	{ dosymbol, "LaTeX", 5 }, /* TEXICMD_LATEX */
 	{ dosecoffs, "lowersections", 13 }, /* TEXICMD_LOWERSECTIONS */
+	{ dosymbol, "l", 1 }, /* TEXICMD_LSMALL */
 	{ domacro, "macro", 5 }, /* TEXICMD_MACRO */
+	{ doaccent, "=", 1 }, /* TEXICMD_MACRON */
 	{ domath, "math", 4 }, /* TEXICMD_MATH */
 	{ doignblock, "menu", 4 }, /* TEXICMD_MENU */
 	{ dosymbol, "minus", 5 }, /* TEXICMD_MINUS */
@@ -206,20 +219,29 @@ static	const struct texitok __texitoks[T
 	{ dosymbol, "\n", 1 }, /* TEXICMD_NEWLINE */
 	{ doignline, "node", 4 }, /* TEXICMD_NODE */
 	{ doignline, "noindent", 8 }, /* TEXICMD_NOINDENT */
+	{ dosymbol, "O", 1 }, /* TEXICMD_O */
+	{ dosymbol, "OE", 2 }, /* TEXICMD_OE */
+	{ dosymbol, "oe", 2 }, /* TEXICMD_OESMALL */
+	{ doaccent, "ogonek", 6 }, /* TEXICMD_OGONEK */
 	{ doinline, "option", 6 }, /* TEXICMD_OPTION */
-	{ dolink, "pxref", 5 }, /* TEXICMD_PXREF */
-	{ dosymbol, "?", 1 }, /* TEXICMD_QUESTIONMARK */
-	{ doquotation, "quotation", 9 }, /* TEXICMD_QUOTATION */
+	{ dosymbol, "ordf", 4 }, /* TEXICMD_ORDF */
+	{ dosymbol, "ordm", 4 }, /* TEXICMD_ORDM */
+	{ dosymbol, "o", 1 }, /* TEXICMD_OSMALL */
 	{ doignline, "page", 4 }, /* TEXICMD_PAGE */
 	{ doignline, "paragraphindent", 15 }, /* TEXICMD_PARINDENT */
 	{ dosymbol, ".", 1 }, /* TEXICMD_PERIOD */
 	{ doignline, "pindex", 6 }, /* TEXICMD_PINDEX */
 	{ doignline, "printindex", 10 }, /* TEXICMD_PRINTINDEX */
+	{ dolink, "pxref", 5 }, /* TEXICMD_PXREF */
+	{ dosymbol, "questiondown", 12 }, /* TEXICMD_QUESTIONDOWN */
+	{ dosymbol, "?", 1 }, /* TEXICMD_QUESTIONMARK */
+	{ doquotation, "quotation", 9 }, /* TEXICMD_QUOTATION */
 	{ doinline, "r", 1 }, /* TEXICMD_R */
 	{ dosecoffs, "raisesections", 13 }, /* TEXICMD_RAISESECTIONS */
 	{ dobracket, "ref", 3 }, /* TEXICMD_REF */
 	{ doignline, "refill", 6 }, /* TEXICMD_REFILL */
 	{ dosymbol, "result", 6 }, /* TEXICMD_RESULT */
+	{ doaccent, "ringaccent", 10 }, /* TEXICMD_RINGACCENT */
 	{ doinline, "samp", 4 }, /* TEXICMD_SAMP */
 	{ doinline, "sansserif", 9 }, /* TEXICMD_SANSSERIF */
 	{ dobracket, "sc", 2 }, /* TEXICMD_SC */
@@ -257,13 +279,19 @@ static	const struct texitok __texitoks[T
 	{ dotable, "table", 5 }, /* TEXICMD_TABLE */
 	{ doignblock, "tex", 3 }, /* TEXICMD_TEX */
 	{ dosymbol, "TeX", 3 }, /* TEXICMD_TEXSYM */
+	{ dosymbol, "TH", 2 }, /* TEXICMD_TH */
+	{ dosymbol, "th", 2 }, /* TEXICMD_THSMALL */
 	{ dosymbol, "tie", 3 }, /* TEXICMD_TIE */
+	{ doaccent, "tieaccent", 9 }, /* TEXICMD_TIEACCENT */
 	{ doaccent, "~", 1 }, /* TEXICMD_TILDE */
 	{ doignline, "tindex", 6 }, /* TEXICMD_TINDEX */
 	{ doignline, "title", 5 }, /* TEXICMD_TITLE */
 	{ dobracket, "titlefont", 9 }, /* TEXICMD_TITLEFONT */
 	{ doignblock, "titlepage", 9 }, /* TEXICMD_TITLEPAGE */
 	{ dotop, "top", 3 }, /* TEXICMD_TOP */
+	{ doaccent, "u", 1 }, /* TEXICMD_U */
+	{ doaccent, "ubaraccent", 10 }, /* TEXICMD_UBARACCENT */
+	{ doaccent, "udotaccent", 10 }, /* TEXICMD_UDOTACCENT */
 	{ doaccent, "\"", 1 }, /* TEXICMD_UMLAUT */
 	{ dosection, "unnumbered", 10 }, /* TEXICMD_UNNUMBERED */
 	{ dosection, "unnumberedsec", 13 }, /* TEXICMD_UNNUMBEREDSEC */
@@ -272,6 +300,7 @@ static	const struct texitok __texitoks[T
 	{ dolink, "uref", 4 }, /* TEXICMD_UREF */
 	{ dolink, "url", 3 }, /* TEXICMD_URL */
 	{ doignline, "", 0 }, /* TEXICMD_USER_INDEX */
+	{ doaccent, "v", 1 }, /* TEXICMD_V */
 	{ dovalue, "value", 5 }, /* TEXICMD_VALUE */
 	{ doinline, "var", 3 }, /* TEXICMD_VAR */
 	{ doverb, "verb", 4 }, /* TEXICMD_VERB */
@@ -877,31 +906,39 @@ static void
 doaccent(struct texi *p, enum texicmd cmd, 
 	const char *buf, size_t sz, size_t *pos)
 {
+	int	 brace = 0;
 
-	if (*pos == sz)
+	if (*pos == sz) {
+		texiwarn(p, "truncated: @%s", texitoks[cmd].tok);
 		return;
-	if (p->seenws && p->outcol && 0 == p->literal)
+	}
+
+	/* Pad us with space, if necessary. */
+	if (p->seenws && p->outcol && 0 == p->literal) {
 		texiputchar(p, ' ');
-	p->seenws = 0;
-	switch (cmd) {
-	case (TEXICMD_CEDILLA):
-		/* Strange rules... */
+		p->seenws = 0;
+	}
+
+	/*
+	 * If we're braced, then that's that.
+	 * Otherwise, in a special Texinfo case: if we're a non
+	 * alphabetic command of one letter, then the next character is
+	 * the critical one.
+	 * Otherwise, space can sit between us and our argument.
+	 */
+	if ('{' == buf[*pos]) {
+		brace = 1;
+		advance(p, buf, pos);
+	} else if (isalpha(texitoks[cmd].tok[0])) 
 		while (*pos < sz && isws(buf[*pos]))
 			advance(p, buf, pos);
-		if (*pos == sz || '{' != buf[*pos])
-			return;
-		advance(p, buf, pos);
-		switch (buf[*pos]) {
-		case ('c'): case ('C'):
-			texiputchars(p, "\\(,");
-			texiputchar(p, buf[*pos]);
-			break;
-		default:
-			texiputchar(p, buf[*pos]);
-			break;
-		}
-		advance(p, buf, pos);
-		break;
+
+	if (*pos == sz) {
+		texiwarn(p, "truncated: @%s", texitoks[cmd].tok);
+		return;
+	}
+
+	switch (cmd) {
 	case (TEXICMD_ACUTE):
 		switch (buf[*pos]) {
 		case ('a'): case ('A'):
@@ -910,11 +947,21 @@ doaccent(struct texi *p, enum texicmd cm
 		case ('o'): case ('O'):
 		case ('u'): case ('U'):
 			texiputchars(p, "\\(\'");
-			texiputchar(p, buf[*pos]);
 			break;
 		default:
-			texiputchar(p, buf[*pos]);
+			texiwarn(p, "ignoring accent");
+			break;
 		}
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
+		break;
+	case (TEXICMD_CEDILLA):
+		if ('c' == buf[*pos] || 'C' == buf[*pos])
+			texiputchars(p, "\\(,");
+		else
+			texiwarn(p, "ignoring accent");
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
 		break;
 	case (TEXICMD_CIRCUMFLEX):
 		switch (buf[*pos]) {
@@ -924,12 +971,21 @@ doaccent(struct texi *p, enum texicmd cm
 		case ('o'): case ('O'):
 		case ('u'): case ('U'):
 			texiputchars(p, "\\(^");
-			texiputchar(p, buf[*pos]);
 			break;
 		default:
-			texiputchar(p, buf[*pos]);
+			texiwarn(p, "ignoring accent");
 			break;
 		}
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
+		break;
+	case (TEXICMD_DOTLESS):
+		if ('i' == buf[*pos] || 'j' == buf[*pos])
+			texiputchars(p, "\\(.");
+		else
+			texiwarn(p, "ignoring accent");
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
 		break;
 	case (TEXICMD_GRAVE):
 		switch (buf[*pos]) {
@@ -939,11 +995,13 @@ doaccent(struct texi *p, enum texicmd cm
 		case ('o'): case ('O'):
 		case ('u'): case ('U'):
 			texiputchars(p, "\\(`");
-			texiputchar(p, buf[*pos]);
 			break;
 		default:
-			texiputchar(p, buf[*pos]);
+			texiwarn(p, "ignoring accent");
+			break;
 		}
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
 		break;
 	case (TEXICMD_TILDE):
 		switch (buf[*pos]) {
@@ -951,12 +1009,13 @@ doaccent(struct texi *p, enum texicmd cm
 		case ('n'): case ('N'):
 		case ('o'): case ('O'):
 			texiputchars(p, "\\(~");
-			texiputchar(p, buf[*pos]);
 			break;
 		default:
-			texiputchar(p, buf[*pos]);
+			texiwarn(p, "ignoring accent");
 			break;
 		}
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
 		break;
 	case (TEXICMD_UMLAUT):
 		switch (buf[*pos]) {
@@ -967,17 +1026,39 @@ doaccent(struct texi *p, enum texicmd cm
 		case ('u'): case ('U'):
 		case ('y'):
 			texiputchars(p, "\\(:");
-			texiputchar(p, buf[*pos]);
 			break;
 		default:
-			texiputchar(p, buf[*pos]);
+			texiwarn(p, "ignoring accent");
 			break;
 		}
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
 		break;
 	default:
-		abort();
+		texiputchar(p, buf[*pos]);
+		advance(p, buf, pos);
+		break;
+	}
+
+	if (brace) {
+		while (*pos < sz && '}' != buf[*pos]) {
+			texiputchar(p, buf[*pos]);
+			advance(p, buf, pos);
+		}
+		if (*pos < sz)
+			advance(p, buf, pos);
+	} 
+
+	switch (cmd) {
+	case (TEXICMD_TIEACCENT):
+		texiputchar(p, ']');
+		break;
+	case (TEXICMD_DOTACCENT):
+		texiputchar(p, '*');
+		break;
+	default:
+		break;
 	}
-	advance(p, buf, pos);
 }
 
 static void
@@ -985,12 +1066,25 @@ dosymbol(struct texi *p, enum texicmd cm
 	const char *buf, size_t sz, size_t *pos)
 {
 
+	/* Remember to pad us. */
 	if (p->seenws && p->outcol && 0 == p->literal) {
 		texiputchar(p, ' ');
 		p->seenws = 0;
 	}
 
 	switch (cmd) {
+	case (TEXICMD_AA):
+		texiputchars(p, "\\(oA");
+		break;
+	case (TEXICMD_AASMALL):
+		texiputchars(p, "\\(oa");
+		break;
+	case (TEXICMD_AE):
+		texiputchars(p, "\\(AE");
+		break;
+	case (TEXICMD_AESMALL):
+		texiputchars(p, "\\(ae");
+		break;
 	case (TEXICMD_ASTERISK):
 	case (TEXICMD_NEWLINE):
 	case (TEXICMD_SPACE):
@@ -1012,6 +1106,12 @@ dosymbol(struct texi *p, enum texicmd cm
 	case (TEXICMD_COPYRIGHT):
 		texiputchars(p, "\\(co");
 		break;
+	case (TEXICMD_DH):
+		texiputchars(p, "\\(-D");
+		break;
+	case (TEXICMD_DHSMALL):
+		texiputchars(p, "\\(Sd");
+		break;
 	case (TEXICMD_DOTS):
 	case (TEXICMD_ENDDOTS):
 		texiputchars(p, "...");
@@ -1022,18 +1122,48 @@ dosymbol(struct texi *p, enum texicmd cm
 	case (TEXICMD_ERROR):
 		texiputchars(p, "error\\(->");
 		break;
+	case (TEXICMD_EXCLAMDOWN):
+		texiputchars(p, "\\(r!");
+		break;
 	case (TEXICMD_EXPANSION):
 		texiputchars(p, "\\(->");
 		break;
+	case (TEXICMD_L):
+		texiputchars(p, "\\(/L");
+		break;
 	case (TEXICMD_LATEX):
 		texiputchars(p, "LaTeX");
 		break;
+	case (TEXICMD_LSMALL):
+		texiputchars(p, "\\(/l");
+		break;
 	case (TEXICMD_MINUS):
 		texiputchars(p, "\\-");
 		break;
+	case (TEXICMD_O):
+		texiputchars(p, "\\(/O");
+		break;
+	case (TEXICMD_OE):
+		texiputchars(p, "\\(OE");
+		break;
+	case (TEXICMD_OESMALL):
+		texiputchars(p, "\\(oe");
+		break;
+	case (TEXICMD_ORDF):
+		texiputchars(p, "a");
+		break;
+	case (TEXICMD_ORDM):
+		texiputchars(p, "o");
+		break;
+	case (TEXICMD_OSMALL):
+		texiputchars(p, "\\(/o");
+		break;
 	case (TEXICMD_PERIOD):
 		texiputchar(p, '.');
 		break;
+	case (TEXICMD_QUESTIONDOWN):
+		texiputchars(p, "\\(r?");
+		break;
 	case (TEXICMD_QUESTIONMARK):
 		texiputchar(p, '?');
 		break;
@@ -1055,6 +1185,12 @@ dosymbol(struct texi *p, enum texicmd cm
 	case (TEXICMD_TEXSYM):
 		texiputchars(p, "TeX");
 		break;
+	case (TEXICMD_TH):
+		texiputchars(p, "\\(TP");
+		break;
+	case (TEXICMD_THSMALL):
+		texiputchars(p, "\\(Tp");
+		break;
 	case (TEXICMD_TIE):
 		texiputchars(p, "\\ ");
 		break;
@@ -1065,7 +1201,8 @@ dosymbol(struct texi *p, enum texicmd cm
 		abort();
 	}
 
-	if (texitoks[cmd].len > 1)
+	/* Alphabetic commands have braces we ignore. */
+	if (isalpha(texitoks[cmd].tok[0]))
 		doignbracket(p, cmd, buf, sz, pos);
 }
 
Index: texi2mdoc.1
===================================================================
RCS file: /home/cvs/mdocml/texi2mdoc/texi2mdoc.1,v
retrieving revision 1.8
retrieving revision 1.9
diff -Ltexi2mdoc.1 -Ltexi2mdoc.1 -u -p -r1.8 -r1.9
--- texi2mdoc.1
+++ texi2mdoc.1
@@ -105,6 +105,10 @@ with the text.
 Moreover, many commands that might contain useful information (such as
 .Li @footnote )
 are thrown away.
+.Pp
+Not all accent marks are supported by
+.Xr mdoc 7 :
+carons, breves, etc.
 .\" .Sh BUGS
 .Sh SECURITY CONSIDERATIONS
 As a security precaution,
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-02-24 20:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-24 20:07 texi2mdoc: Add all of the accents and fix their weird parsing rules kristaps

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).