-/* $Id: mandoc.c,v 1.117 2020/01/19 16:44:50 schwarze Exp $ */
+/* $Id: mandoc.c,v 1.119 2021/08/10 12:55:03 schwarze Exp $ */
/*
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2011-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011-2015, 2017-2021 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
case 'C':
switch (cp[1]) {
case 'B':
- return ESCAPE_FONTBOLD;
+ return ESCAPE_FONTCB;
case 'I':
- return ESCAPE_FONTITALIC;
+ return ESCAPE_FONTCI;
case 'R':
case 'W':
- return ESCAPE_FONTCW;
+ return ESCAPE_FONTCR;
default:
return ESCAPE_ERROR;
}
case 'O':
case 'V':
case 'Y':
- gly = (*start)[-1] == 'f' ? ESCAPE_FONT : ESCAPE_IGNORE;
+ case '*':
+ switch ((*start)[-1]) {
+ case 'f':
+ gly = ESCAPE_FONT;
+ break;
+ case '*':
+ gly = ESCAPE_DEVICE;
+ break;
+ default:
+ gly = ESCAPE_IGNORE;
+ break;
+ }
switch (**start) {
case '(':
if ((*start)[-1] == 'O')
break;
}
break;
- case '*':
- if (strncmp(*start, "(.T", 3) != 0)
- abort();
- gly = ESCAPE_DEVICE;
- *start = ++*end;
- *sz = 2;
- break;
/*
* These escapes are of the form \X'Y', where 'X' is the trigger
+ 1 == *sz)
gly = ESCAPE_UNICODE;
break;
+ case ESCAPE_DEVICE:
+ assert(*sz == 2 && (*start)[0] == '.' && (*start)[1] == 'T');
+ break;
default:
break;
}