Fossil SCM
Allow the style= attribute in wiki markup.
Commit
717cd2782c41addd04e1b37107d0505645562dfa
Parent
869e27e739921ad…
1 file changed
+104
-85
+104
-85
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -54,43 +54,45 @@ | ||
| 54 | 54 | #define ATTR_NAME 17 |
| 55 | 55 | #define ATTR_ROWSPAN 18 |
| 56 | 56 | #define ATTR_SIZE 19 |
| 57 | 57 | #define ATTR_SRC 20 |
| 58 | 58 | #define ATTR_START 21 |
| 59 | -#define ATTR_TARGET 22 | |
| 60 | -#define ATTR_TYPE 23 | |
| 61 | -#define ATTR_VALIGN 24 | |
| 62 | -#define ATTR_VALUE 25 | |
| 63 | -#define ATTR_VSPACE 26 | |
| 64 | -#define ATTR_WIDTH 27 | |
| 65 | -#define AMSK_ALIGN 0x0000001 | |
| 66 | -#define AMSK_ALT 0x0000002 | |
| 67 | -#define AMSK_BGCOLOR 0x0000004 | |
| 68 | -#define AMSK_BORDER 0x0000008 | |
| 69 | -#define AMSK_CELLPADDING 0x0000010 | |
| 70 | -#define AMSK_CELLSPACING 0x0000020 | |
| 71 | -#define AMSK_CLEAR 0x0000040 | |
| 72 | -#define AMSK_COLOR 0x0000080 | |
| 73 | -#define AMSK_COLSPAN 0x0000100 | |
| 74 | -#define AMSK_COMPACT 0x0000200 | |
| 75 | -#define AMSK_FACE 0x0000400 | |
| 76 | -#define AMSK_HEIGHT 0x0000800 | |
| 77 | -#define AMSK_HREF 0x0001000 | |
| 78 | -#define AMSK_HSPACE 0x0002000 | |
| 79 | -#define AMSK_ID 0x0004000 | |
| 80 | -#define AMSK_NAME 0x0008000 | |
| 81 | -#define AMSK_ROWSPAN 0x0010000 | |
| 82 | -#define AMSK_SIZE 0x0020000 | |
| 83 | -#define AMSK_SRC 0x0040000 | |
| 84 | -#define AMSK_START 0x0080000 | |
| 85 | -#define AMSK_TYPE 0x0100000 | |
| 86 | -#define AMSK_VALIGN 0x0200000 | |
| 87 | -#define AMSK_VALUE 0x0400000 | |
| 88 | -#define AMSK_VSPACE 0x0800000 | |
| 89 | -#define AMSK_WIDTH 0x1000000 | |
| 90 | -#define AMSK_CLASS 0x2000000 | |
| 91 | -#define AMSK_TARGET 0x4000000 | |
| 59 | +#define ATTR_STYLE 22 | |
| 60 | +#define ATTR_TARGET 23 | |
| 61 | +#define ATTR_TYPE 24 | |
| 62 | +#define ATTR_VALIGN 25 | |
| 63 | +#define ATTR_VALUE 26 | |
| 64 | +#define ATTR_VSPACE 27 | |
| 65 | +#define ATTR_WIDTH 28 | |
| 66 | +#define AMSK_ALIGN 0x00000001 | |
| 67 | +#define AMSK_ALT 0x00000002 | |
| 68 | +#define AMSK_BGCOLOR 0x00000004 | |
| 69 | +#define AMSK_BORDER 0x00000008 | |
| 70 | +#define AMSK_CELLPADDING 0x00000010 | |
| 71 | +#define AMSK_CELLSPACING 0x00000020 | |
| 72 | +#define AMSK_CLASS 0x00000040 | |
| 73 | +#define AMSK_CLEAR 0x00000080 | |
| 74 | +#define AMSK_COLOR 0x00000100 | |
| 75 | +#define AMSK_COLSPAN 0x00000200 | |
| 76 | +#define AMSK_COMPACT 0x00000400 | |
| 77 | +#define AMSK_FACE 0x00000800 | |
| 78 | +#define AMSK_HEIGHT 0x00001000 | |
| 79 | +#define AMSK_HREF 0x00002000 | |
| 80 | +#define AMSK_HSPACE 0x00004000 | |
| 81 | +#define AMSK_ID 0x00008000 | |
| 82 | +#define AMSK_NAME 0x00010000 | |
| 83 | +#define AMSK_ROWSPAN 0x00020000 | |
| 84 | +#define AMSK_SIZE 0x00040000 | |
| 85 | +#define AMSK_SRC 0x00080000 | |
| 86 | +#define AMSK_START 0x00100000 | |
| 87 | +#define AMSK_STYLE 0x00200000 | |
| 88 | +#define AMSK_TARGET 0x00400000 | |
| 89 | +#define AMSK_TYPE 0x00800000 | |
| 90 | +#define AMSK_VALIGN 0x01000000 | |
| 91 | +#define AMSK_VALUE 0x02000000 | |
| 92 | +#define AMSK_VSPACE 0x04000000 | |
| 93 | +#define AMSK_WIDTH 0x08000000 | |
| 92 | 94 | |
| 93 | 95 | static const struct AllowedAttribute { |
| 94 | 96 | const char *zName; |
| 95 | 97 | unsigned int iMask; |
| 96 | 98 | } aAttribute[] = { |
| @@ -114,10 +116,11 @@ | ||
| 114 | 116 | { "name", AMSK_NAME, }, |
| 115 | 117 | { "rowspan", AMSK_ROWSPAN, }, |
| 116 | 118 | { "size", AMSK_SIZE, }, |
| 117 | 119 | { "src", AMSK_SRC, }, |
| 118 | 120 | { "start", AMSK_START, }, |
| 121 | + { "style", AMSK_STYLE, }, | |
| 119 | 122 | { "target", AMSK_TARGET, }, |
| 120 | 123 | { "type", AMSK_TYPE, }, |
| 121 | 124 | { "valign", AMSK_VALIGN, }, |
| 122 | 125 | { "value", AMSK_VALUE, }, |
| 123 | 126 | { "vspace", AMSK_VSPACE, }, |
| @@ -241,80 +244,96 @@ | ||
| 241 | 244 | short int iType; /* The MUTYPE_* code */ |
| 242 | 245 | int allowedAttr; /* Allowed attributes on this markup */ |
| 243 | 246 | } aMarkup[] = { |
| 244 | 247 | { 0, MARKUP_INVALID, 0, 0 }, |
| 245 | 248 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 246 | - AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET }, | |
| 247 | - { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, 0 }, | |
| 248 | - { "b", MARKUP_B, MUTYPE_FONT, 0 }, | |
| 249 | - { "big", MARKUP_BIG, MUTYPE_FONT, 0 }, | |
| 250 | - { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, 0 }, | |
| 251 | - { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, | |
| 252 | - { "center", MARKUP_CENTER, MUTYPE_BLOCK, 0 }, | |
| 253 | - { "cite", MARKUP_CITE, MUTYPE_FONT, 0 }, | |
| 254 | - { "code", MARKUP_CODE, MUTYPE_FONT, 0 }, | |
| 249 | + AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET|AMSK_STYLE }, | |
| 250 | + { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, AMSK_STYLE }, | |
| 251 | + { "b", MARKUP_B, MUTYPE_FONT, AMSK_STYLE }, | |
| 252 | + { "big", MARKUP_BIG, MUTYPE_FONT, AMSK_STYLE }, | |
| 253 | + { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, AMSK_STYLE }, | |
| 254 | + { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, | |
| 255 | + { "center", MARKUP_CENTER, MUTYPE_BLOCK, AMSK_STYLE }, | |
| 256 | + { "cite", MARKUP_CITE, MUTYPE_FONT, AMSK_STYLE }, | |
| 257 | + { "code", MARKUP_CODE, MUTYPE_FONT, AMSK_STYLE }, | |
| 255 | 258 | { "col", MARKUP_COL, MUTYPE_SINGLE, |
| 256 | - AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH }, | |
| 259 | + AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE }, | |
| 257 | 260 | { "colgroup", MARKUP_COLGROUP, MUTYPE_BLOCK, |
| 258 | - AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH}, | |
| 259 | - { "dd", MARKUP_DD, MUTYPE_LI, 0 }, | |
| 260 | - { "dfn", MARKUP_DFN, MUTYPE_FONT, 0 }, | |
| 261 | - { "div", MARKUP_DIV, MUTYPE_BLOCK, AMSK_ID|AMSK_CLASS }, | |
| 262 | - { "dl", MARKUP_DL, MUTYPE_LIST, AMSK_COMPACT }, | |
| 263 | - { "dt", MARKUP_DT, MUTYPE_LI, 0 }, | |
| 264 | - { "em", MARKUP_EM, MUTYPE_FONT, 0 }, | |
| 261 | + AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE}, | |
| 262 | + { "dd", MARKUP_DD, MUTYPE_LI, AMSK_STYLE }, | |
| 263 | + { "dfn", MARKUP_DFN, MUTYPE_FONT, AMSK_STYLE }, | |
| 264 | + { "div", MARKUP_DIV, MUTYPE_BLOCK, | |
| 265 | + AMSK_ID|AMSK_CLASS|AMSK_STYLE }, | |
| 266 | + { "dl", MARKUP_DL, MUTYPE_LIST, | |
| 267 | + AMSK_COMPACT|AMSK_STYLE }, | |
| 268 | + { "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE }, | |
| 269 | + { "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE }, | |
| 265 | 270 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 266 | - AMSK_COLOR|AMSK_FACE|AMSK_SIZE }, | |
| 267 | - { "h1", MARKUP_H1, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 268 | - { "h2", MARKUP_H2, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 269 | - { "h3", MARKUP_H3, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 270 | - { "h4", MARKUP_H4, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 271 | - { "h5", MARKUP_H5, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 272 | - { "h6", MARKUP_H6, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 271 | + AMSK_COLOR|AMSK_FACE|AMSK_SIZE|AMSK_STYLE }, | |
| 272 | + { "h1", MARKUP_H1, MUTYPE_BLOCK, | |
| 273 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 274 | + { "h2", MARKUP_H2, MUTYPE_BLOCK, | |
| 275 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 276 | + { "h3", MARKUP_H3, MUTYPE_BLOCK, | |
| 277 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 278 | + { "h4", MARKUP_H4, MUTYPE_BLOCK, | |
| 279 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 280 | + { "h5", MARKUP_H5, MUTYPE_BLOCK, | |
| 281 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 282 | + { "h6", MARKUP_H6, MUTYPE_BLOCK, | |
| 283 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 273 | 284 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 274 | - AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH|AMSK_CLASS }, | |
| 275 | - { "i", MARKUP_I, MUTYPE_FONT, 0 }, | |
| 285 | + AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH| | |
| 286 | + AMSK_STYLE|AMSK_CLASS }, | |
| 287 | + { "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE }, | |
| 276 | 288 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| 277 | 289 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 278 | - AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH }, | |
| 279 | - { "kbd", MARKUP_KBD, MUTYPE_FONT, 0 }, | |
| 290 | + AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE }, | |
| 291 | + { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE }, | |
| 280 | 292 | { "li", MARKUP_LI, MUTYPE_LI, |
| 281 | - AMSK_TYPE|AMSK_VALUE }, | |
| 293 | + AMSK_TYPE|AMSK_VALUE|AMSK_STYLE }, | |
| 282 | 294 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 283 | 295 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 284 | 296 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 285 | - AMSK_START|AMSK_TYPE|AMSK_COMPACT }, | |
| 286 | - { "p", MARKUP_P, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 287 | - { "pre", MARKUP_PRE, MUTYPE_BLOCK, 0 }, | |
| 288 | - { "s", MARKUP_S, MUTYPE_FONT, 0 }, | |
| 289 | - { "samp", MARKUP_SAMP, MUTYPE_FONT, 0 }, | |
| 290 | - { "small", MARKUP_SMALL, MUTYPE_FONT, 0 }, | |
| 291 | - { "span", MARKUP_SPAN, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 292 | - { "strike", MARKUP_STRIKE, MUTYPE_FONT, 0 }, | |
| 293 | - { "strong", MARKUP_STRONG, MUTYPE_FONT, 0 }, | |
| 294 | - { "sub", MARKUP_SUB, MUTYPE_FONT, 0 }, | |
| 295 | - { "sup", MARKUP_SUP, MUTYPE_FONT, 0 }, | |
| 297 | + AMSK_START|AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, | |
| 298 | + { "p", MARKUP_P, MUTYPE_BLOCK, | |
| 299 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 300 | + { "pre", MARKUP_PRE, MUTYPE_BLOCK, AMSK_STYLE }, | |
| 301 | + { "s", MARKUP_S, MUTYPE_FONT, AMSK_STYLE }, | |
| 302 | + { "samp", MARKUP_SAMP, MUTYPE_FONT, AMSK_STYLE }, | |
| 303 | + { "small", MARKUP_SMALL, MUTYPE_FONT, AMSK_STYLE }, | |
| 304 | + { "span", MARKUP_SPAN, MUTYPE_BLOCK, | |
| 305 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 306 | + { "strike", MARKUP_STRIKE, MUTYPE_FONT, AMSK_STYLE }, | |
| 307 | + { "strong", MARKUP_STRONG, MUTYPE_FONT, AMSK_STYLE }, | |
| 308 | + { "sub", MARKUP_SUB, MUTYPE_FONT, AMSK_STYLE }, | |
| 309 | + { "sup", MARKUP_SUP, MUTYPE_FONT, AMSK_STYLE }, | |
| 296 | 310 | { "table", MARKUP_TABLE, MUTYPE_TABLE, |
| 297 | 311 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_BORDER|AMSK_CELLPADDING| |
| 298 | - AMSK_CELLSPACING|AMSK_HSPACE|AMSK_VSPACE|AMSK_CLASS }, | |
| 299 | - { "tbody", MARKUP_TBODY, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 312 | + AMSK_CELLSPACING|AMSK_HSPACE|AMSK_VSPACE|AMSK_CLASS| | |
| 313 | + AMSK_STYLE }, | |
| 314 | + { "tbody", MARKUP_TBODY, MUTYPE_BLOCK, | |
| 315 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 300 | 316 | { "td", MARKUP_TD, MUTYPE_TD, |
| 301 | 317 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 302 | - AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS }, | |
| 303 | - { "tfoot", MARKUP_TFOOT, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 318 | + AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 319 | + { "tfoot", MARKUP_TFOOT, MUTYPE_BLOCK, | |
| 320 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 304 | 321 | { "th", MARKUP_TH, MUTYPE_TD, |
| 305 | 322 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 306 | - AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS }, | |
| 307 | - { "thead", MARKUP_THEAD, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, | |
| 323 | + AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 324 | + { "thead", MARKUP_THEAD, MUTYPE_BLOCK, | |
| 325 | + AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 308 | 326 | { "tr", MARKUP_TR, MUTYPE_TR, |
| 309 | - AMSK_ALIGN|AMSK_BGCOLOR|AMSK_VALIGN|AMSK_CLASS }, | |
| 310 | - { "tt", MARKUP_TT, MUTYPE_FONT, 0 }, | |
| 311 | - { "u", MARKUP_U, MUTYPE_FONT, 0 }, | |
| 327 | + AMSK_ALIGN|AMSK_BGCOLOR|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, | |
| 328 | + { "tt", MARKUP_TT, MUTYPE_FONT, AMSK_STYLE }, | |
| 329 | + { "u", MARKUP_U, MUTYPE_FONT, AMSK_STYLE }, | |
| 312 | 330 | { "ul", MARKUP_UL, MUTYPE_LIST, |
| 313 | - AMSK_TYPE|AMSK_COMPACT }, | |
| 314 | - { "var", MARKUP_VAR, MUTYPE_FONT, 0 }, | |
| 315 | - { "verbatim", MARKUP_VERBATIM, MUTYPE_SPECIAL, AMSK_ID|AMSK_TYPE }, | |
| 331 | + AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, | |
| 332 | + { "var", MARKUP_VAR, MUTYPE_FONT, AMSK_STYLE }, | |
| 333 | + { "verbatim", MARKUP_VERBATIM, MUTYPE_SPECIAL, | |
| 334 | + AMSK_ID|AMSK_TYPE }, | |
| 316 | 335 | }; |
| 317 | 336 | |
| 318 | 337 | void show_allowed_wiki_markup( void ){ |
| 319 | 338 | int i; /* loop over allowedAttr */ |
| 320 | 339 | |
| 321 | 340 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -54,43 +54,45 @@ | |
| 54 | #define ATTR_NAME 17 |
| 55 | #define ATTR_ROWSPAN 18 |
| 56 | #define ATTR_SIZE 19 |
| 57 | #define ATTR_SRC 20 |
| 58 | #define ATTR_START 21 |
| 59 | #define ATTR_TARGET 22 |
| 60 | #define ATTR_TYPE 23 |
| 61 | #define ATTR_VALIGN 24 |
| 62 | #define ATTR_VALUE 25 |
| 63 | #define ATTR_VSPACE 26 |
| 64 | #define ATTR_WIDTH 27 |
| 65 | #define AMSK_ALIGN 0x0000001 |
| 66 | #define AMSK_ALT 0x0000002 |
| 67 | #define AMSK_BGCOLOR 0x0000004 |
| 68 | #define AMSK_BORDER 0x0000008 |
| 69 | #define AMSK_CELLPADDING 0x0000010 |
| 70 | #define AMSK_CELLSPACING 0x0000020 |
| 71 | #define AMSK_CLEAR 0x0000040 |
| 72 | #define AMSK_COLOR 0x0000080 |
| 73 | #define AMSK_COLSPAN 0x0000100 |
| 74 | #define AMSK_COMPACT 0x0000200 |
| 75 | #define AMSK_FACE 0x0000400 |
| 76 | #define AMSK_HEIGHT 0x0000800 |
| 77 | #define AMSK_HREF 0x0001000 |
| 78 | #define AMSK_HSPACE 0x0002000 |
| 79 | #define AMSK_ID 0x0004000 |
| 80 | #define AMSK_NAME 0x0008000 |
| 81 | #define AMSK_ROWSPAN 0x0010000 |
| 82 | #define AMSK_SIZE 0x0020000 |
| 83 | #define AMSK_SRC 0x0040000 |
| 84 | #define AMSK_START 0x0080000 |
| 85 | #define AMSK_TYPE 0x0100000 |
| 86 | #define AMSK_VALIGN 0x0200000 |
| 87 | #define AMSK_VALUE 0x0400000 |
| 88 | #define AMSK_VSPACE 0x0800000 |
| 89 | #define AMSK_WIDTH 0x1000000 |
| 90 | #define AMSK_CLASS 0x2000000 |
| 91 | #define AMSK_TARGET 0x4000000 |
| 92 | |
| 93 | static const struct AllowedAttribute { |
| 94 | const char *zName; |
| 95 | unsigned int iMask; |
| 96 | } aAttribute[] = { |
| @@ -114,10 +116,11 @@ | |
| 114 | { "name", AMSK_NAME, }, |
| 115 | { "rowspan", AMSK_ROWSPAN, }, |
| 116 | { "size", AMSK_SIZE, }, |
| 117 | { "src", AMSK_SRC, }, |
| 118 | { "start", AMSK_START, }, |
| 119 | { "target", AMSK_TARGET, }, |
| 120 | { "type", AMSK_TYPE, }, |
| 121 | { "valign", AMSK_VALIGN, }, |
| 122 | { "value", AMSK_VALUE, }, |
| 123 | { "vspace", AMSK_VSPACE, }, |
| @@ -241,80 +244,96 @@ | |
| 241 | short int iType; /* The MUTYPE_* code */ |
| 242 | int allowedAttr; /* Allowed attributes on this markup */ |
| 243 | } aMarkup[] = { |
| 244 | { 0, MARKUP_INVALID, 0, 0 }, |
| 245 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 246 | AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET }, |
| 247 | { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, 0 }, |
| 248 | { "b", MARKUP_B, MUTYPE_FONT, 0 }, |
| 249 | { "big", MARKUP_BIG, MUTYPE_FONT, 0 }, |
| 250 | { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, 0 }, |
| 251 | { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, |
| 252 | { "center", MARKUP_CENTER, MUTYPE_BLOCK, 0 }, |
| 253 | { "cite", MARKUP_CITE, MUTYPE_FONT, 0 }, |
| 254 | { "code", MARKUP_CODE, MUTYPE_FONT, 0 }, |
| 255 | { "col", MARKUP_COL, MUTYPE_SINGLE, |
| 256 | AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH }, |
| 257 | { "colgroup", MARKUP_COLGROUP, MUTYPE_BLOCK, |
| 258 | AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH}, |
| 259 | { "dd", MARKUP_DD, MUTYPE_LI, 0 }, |
| 260 | { "dfn", MARKUP_DFN, MUTYPE_FONT, 0 }, |
| 261 | { "div", MARKUP_DIV, MUTYPE_BLOCK, AMSK_ID|AMSK_CLASS }, |
| 262 | { "dl", MARKUP_DL, MUTYPE_LIST, AMSK_COMPACT }, |
| 263 | { "dt", MARKUP_DT, MUTYPE_LI, 0 }, |
| 264 | { "em", MARKUP_EM, MUTYPE_FONT, 0 }, |
| 265 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 266 | AMSK_COLOR|AMSK_FACE|AMSK_SIZE }, |
| 267 | { "h1", MARKUP_H1, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 268 | { "h2", MARKUP_H2, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 269 | { "h3", MARKUP_H3, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 270 | { "h4", MARKUP_H4, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 271 | { "h5", MARKUP_H5, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 272 | { "h6", MARKUP_H6, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 273 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 274 | AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH|AMSK_CLASS }, |
| 275 | { "i", MARKUP_I, MUTYPE_FONT, 0 }, |
| 276 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| 277 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 278 | AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH }, |
| 279 | { "kbd", MARKUP_KBD, MUTYPE_FONT, 0 }, |
| 280 | { "li", MARKUP_LI, MUTYPE_LI, |
| 281 | AMSK_TYPE|AMSK_VALUE }, |
| 282 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 283 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 284 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 285 | AMSK_START|AMSK_TYPE|AMSK_COMPACT }, |
| 286 | { "p", MARKUP_P, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 287 | { "pre", MARKUP_PRE, MUTYPE_BLOCK, 0 }, |
| 288 | { "s", MARKUP_S, MUTYPE_FONT, 0 }, |
| 289 | { "samp", MARKUP_SAMP, MUTYPE_FONT, 0 }, |
| 290 | { "small", MARKUP_SMALL, MUTYPE_FONT, 0 }, |
| 291 | { "span", MARKUP_SPAN, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 292 | { "strike", MARKUP_STRIKE, MUTYPE_FONT, 0 }, |
| 293 | { "strong", MARKUP_STRONG, MUTYPE_FONT, 0 }, |
| 294 | { "sub", MARKUP_SUB, MUTYPE_FONT, 0 }, |
| 295 | { "sup", MARKUP_SUP, MUTYPE_FONT, 0 }, |
| 296 | { "table", MARKUP_TABLE, MUTYPE_TABLE, |
| 297 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_BORDER|AMSK_CELLPADDING| |
| 298 | AMSK_CELLSPACING|AMSK_HSPACE|AMSK_VSPACE|AMSK_CLASS }, |
| 299 | { "tbody", MARKUP_TBODY, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 300 | { "td", MARKUP_TD, MUTYPE_TD, |
| 301 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 302 | AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS }, |
| 303 | { "tfoot", MARKUP_TFOOT, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 304 | { "th", MARKUP_TH, MUTYPE_TD, |
| 305 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 306 | AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS }, |
| 307 | { "thead", MARKUP_THEAD, MUTYPE_BLOCK, AMSK_ALIGN|AMSK_CLASS }, |
| 308 | { "tr", MARKUP_TR, MUTYPE_TR, |
| 309 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_VALIGN|AMSK_CLASS }, |
| 310 | { "tt", MARKUP_TT, MUTYPE_FONT, 0 }, |
| 311 | { "u", MARKUP_U, MUTYPE_FONT, 0 }, |
| 312 | { "ul", MARKUP_UL, MUTYPE_LIST, |
| 313 | AMSK_TYPE|AMSK_COMPACT }, |
| 314 | { "var", MARKUP_VAR, MUTYPE_FONT, 0 }, |
| 315 | { "verbatim", MARKUP_VERBATIM, MUTYPE_SPECIAL, AMSK_ID|AMSK_TYPE }, |
| 316 | }; |
| 317 | |
| 318 | void show_allowed_wiki_markup( void ){ |
| 319 | int i; /* loop over allowedAttr */ |
| 320 | |
| 321 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -54,43 +54,45 @@ | |
| 54 | #define ATTR_NAME 17 |
| 55 | #define ATTR_ROWSPAN 18 |
| 56 | #define ATTR_SIZE 19 |
| 57 | #define ATTR_SRC 20 |
| 58 | #define ATTR_START 21 |
| 59 | #define ATTR_STYLE 22 |
| 60 | #define ATTR_TARGET 23 |
| 61 | #define ATTR_TYPE 24 |
| 62 | #define ATTR_VALIGN 25 |
| 63 | #define ATTR_VALUE 26 |
| 64 | #define ATTR_VSPACE 27 |
| 65 | #define ATTR_WIDTH 28 |
| 66 | #define AMSK_ALIGN 0x00000001 |
| 67 | #define AMSK_ALT 0x00000002 |
| 68 | #define AMSK_BGCOLOR 0x00000004 |
| 69 | #define AMSK_BORDER 0x00000008 |
| 70 | #define AMSK_CELLPADDING 0x00000010 |
| 71 | #define AMSK_CELLSPACING 0x00000020 |
| 72 | #define AMSK_CLASS 0x00000040 |
| 73 | #define AMSK_CLEAR 0x00000080 |
| 74 | #define AMSK_COLOR 0x00000100 |
| 75 | #define AMSK_COLSPAN 0x00000200 |
| 76 | #define AMSK_COMPACT 0x00000400 |
| 77 | #define AMSK_FACE 0x00000800 |
| 78 | #define AMSK_HEIGHT 0x00001000 |
| 79 | #define AMSK_HREF 0x00002000 |
| 80 | #define AMSK_HSPACE 0x00004000 |
| 81 | #define AMSK_ID 0x00008000 |
| 82 | #define AMSK_NAME 0x00010000 |
| 83 | #define AMSK_ROWSPAN 0x00020000 |
| 84 | #define AMSK_SIZE 0x00040000 |
| 85 | #define AMSK_SRC 0x00080000 |
| 86 | #define AMSK_START 0x00100000 |
| 87 | #define AMSK_STYLE 0x00200000 |
| 88 | #define AMSK_TARGET 0x00400000 |
| 89 | #define AMSK_TYPE 0x00800000 |
| 90 | #define AMSK_VALIGN 0x01000000 |
| 91 | #define AMSK_VALUE 0x02000000 |
| 92 | #define AMSK_VSPACE 0x04000000 |
| 93 | #define AMSK_WIDTH 0x08000000 |
| 94 | |
| 95 | static const struct AllowedAttribute { |
| 96 | const char *zName; |
| 97 | unsigned int iMask; |
| 98 | } aAttribute[] = { |
| @@ -114,10 +116,11 @@ | |
| 116 | { "name", AMSK_NAME, }, |
| 117 | { "rowspan", AMSK_ROWSPAN, }, |
| 118 | { "size", AMSK_SIZE, }, |
| 119 | { "src", AMSK_SRC, }, |
| 120 | { "start", AMSK_START, }, |
| 121 | { "style", AMSK_STYLE, }, |
| 122 | { "target", AMSK_TARGET, }, |
| 123 | { "type", AMSK_TYPE, }, |
| 124 | { "valign", AMSK_VALIGN, }, |
| 125 | { "value", AMSK_VALUE, }, |
| 126 | { "vspace", AMSK_VSPACE, }, |
| @@ -241,80 +244,96 @@ | |
| 244 | short int iType; /* The MUTYPE_* code */ |
| 245 | int allowedAttr; /* Allowed attributes on this markup */ |
| 246 | } aMarkup[] = { |
| 247 | { 0, MARKUP_INVALID, 0, 0 }, |
| 248 | { "a", MARKUP_A, MUTYPE_HYPERLINK, |
| 249 | AMSK_HREF|AMSK_NAME|AMSK_CLASS|AMSK_TARGET|AMSK_STYLE }, |
| 250 | { "address", MARKUP_ADDRESS, MUTYPE_BLOCK, AMSK_STYLE }, |
| 251 | { "b", MARKUP_B, MUTYPE_FONT, AMSK_STYLE }, |
| 252 | { "big", MARKUP_BIG, MUTYPE_FONT, AMSK_STYLE }, |
| 253 | { "blockquote", MARKUP_BLOCKQUOTE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 254 | { "br", MARKUP_BR, MUTYPE_SINGLE, AMSK_CLEAR }, |
| 255 | { "center", MARKUP_CENTER, MUTYPE_BLOCK, AMSK_STYLE }, |
| 256 | { "cite", MARKUP_CITE, MUTYPE_FONT, AMSK_STYLE }, |
| 257 | { "code", MARKUP_CODE, MUTYPE_FONT, AMSK_STYLE }, |
| 258 | { "col", MARKUP_COL, MUTYPE_SINGLE, |
| 259 | AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE }, |
| 260 | { "colgroup", MARKUP_COLGROUP, MUTYPE_BLOCK, |
| 261 | AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE}, |
| 262 | { "dd", MARKUP_DD, MUTYPE_LI, AMSK_STYLE }, |
| 263 | { "dfn", MARKUP_DFN, MUTYPE_FONT, AMSK_STYLE }, |
| 264 | { "div", MARKUP_DIV, MUTYPE_BLOCK, |
| 265 | AMSK_ID|AMSK_CLASS|AMSK_STYLE }, |
| 266 | { "dl", MARKUP_DL, MUTYPE_LIST, |
| 267 | AMSK_COMPACT|AMSK_STYLE }, |
| 268 | { "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE }, |
| 269 | { "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE }, |
| 270 | { "font", MARKUP_FONT, MUTYPE_FONT, |
| 271 | AMSK_COLOR|AMSK_FACE|AMSK_SIZE|AMSK_STYLE }, |
| 272 | { "h1", MARKUP_H1, MUTYPE_BLOCK, |
| 273 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 274 | { "h2", MARKUP_H2, MUTYPE_BLOCK, |
| 275 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 276 | { "h3", MARKUP_H3, MUTYPE_BLOCK, |
| 277 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 278 | { "h4", MARKUP_H4, MUTYPE_BLOCK, |
| 279 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 280 | { "h5", MARKUP_H5, MUTYPE_BLOCK, |
| 281 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 282 | { "h6", MARKUP_H6, MUTYPE_BLOCK, |
| 283 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 284 | { "hr", MARKUP_HR, MUTYPE_SINGLE, |
| 285 | AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH| |
| 286 | AMSK_STYLE|AMSK_CLASS }, |
| 287 | { "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE }, |
| 288 | { "img", MARKUP_IMG, MUTYPE_SINGLE, |
| 289 | AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT| |
| 290 | AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE }, |
| 291 | { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE }, |
| 292 | { "li", MARKUP_LI, MUTYPE_LI, |
| 293 | AMSK_TYPE|AMSK_VALUE|AMSK_STYLE }, |
| 294 | { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 }, |
| 295 | { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 }, |
| 296 | { "ol", MARKUP_OL, MUTYPE_LIST, |
| 297 | AMSK_START|AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, |
| 298 | { "p", MARKUP_P, MUTYPE_BLOCK, |
| 299 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 300 | { "pre", MARKUP_PRE, MUTYPE_BLOCK, AMSK_STYLE }, |
| 301 | { "s", MARKUP_S, MUTYPE_FONT, AMSK_STYLE }, |
| 302 | { "samp", MARKUP_SAMP, MUTYPE_FONT, AMSK_STYLE }, |
| 303 | { "small", MARKUP_SMALL, MUTYPE_FONT, AMSK_STYLE }, |
| 304 | { "span", MARKUP_SPAN, MUTYPE_BLOCK, |
| 305 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 306 | { "strike", MARKUP_STRIKE, MUTYPE_FONT, AMSK_STYLE }, |
| 307 | { "strong", MARKUP_STRONG, MUTYPE_FONT, AMSK_STYLE }, |
| 308 | { "sub", MARKUP_SUB, MUTYPE_FONT, AMSK_STYLE }, |
| 309 | { "sup", MARKUP_SUP, MUTYPE_FONT, AMSK_STYLE }, |
| 310 | { "table", MARKUP_TABLE, MUTYPE_TABLE, |
| 311 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_BORDER|AMSK_CELLPADDING| |
| 312 | AMSK_CELLSPACING|AMSK_HSPACE|AMSK_VSPACE|AMSK_CLASS| |
| 313 | AMSK_STYLE }, |
| 314 | { "tbody", MARKUP_TBODY, MUTYPE_BLOCK, |
| 315 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 316 | { "td", MARKUP_TD, MUTYPE_TD, |
| 317 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 318 | AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 319 | { "tfoot", MARKUP_TFOOT, MUTYPE_BLOCK, |
| 320 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 321 | { "th", MARKUP_TH, MUTYPE_TD, |
| 322 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_COLSPAN| |
| 323 | AMSK_ROWSPAN|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 324 | { "thead", MARKUP_THEAD, MUTYPE_BLOCK, |
| 325 | AMSK_ALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 326 | { "tr", MARKUP_TR, MUTYPE_TR, |
| 327 | AMSK_ALIGN|AMSK_BGCOLOR|AMSK_VALIGN|AMSK_CLASS|AMSK_STYLE }, |
| 328 | { "tt", MARKUP_TT, MUTYPE_FONT, AMSK_STYLE }, |
| 329 | { "u", MARKUP_U, MUTYPE_FONT, AMSK_STYLE }, |
| 330 | { "ul", MARKUP_UL, MUTYPE_LIST, |
| 331 | AMSK_TYPE|AMSK_COMPACT|AMSK_STYLE }, |
| 332 | { "var", MARKUP_VAR, MUTYPE_FONT, AMSK_STYLE }, |
| 333 | { "verbatim", MARKUP_VERBATIM, MUTYPE_SPECIAL, |
| 334 | AMSK_ID|AMSK_TYPE }, |
| 335 | }; |
| 336 | |
| 337 | void show_allowed_wiki_markup( void ){ |
| 338 | int i; /* loop over allowedAttr */ |
| 339 | |
| 340 |