Fossil SCM
Add the 'open' attribute to the list of allowed HTML attributes in markdown. This is to address [https://pikchr.org/home/forumpost/997861ea481833fb|pikchr forum post 997861ea48183], but (A) whether it _should_ be addressed is debatable and (B) it leaves is with only 1-2 bit slots for further attributes. This change was more invasive than desired because the OPEN attribute had to be inserted into the middle of a long list of sequential bitmasks.
Commit
64eb534c0902c01f4ec8fef523fb316a8905ed9f2736d40ff1d3e68bb70f3fc9
Parent
ca5ecf2223e7b2e…
1 file changed
+33
-30
+33
-30
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -80,10 +80,11 @@ | ||
| 80 | 80 | ATTR_HREF, |
| 81 | 81 | ATTR_HSPACE, |
| 82 | 82 | ATTR_ID, |
| 83 | 83 | ATTR_LINKS, |
| 84 | 84 | ATTR_NAME, |
| 85 | + ATTR_OPEN, | |
| 85 | 86 | ATTR_ROWSPAN, |
| 86 | 87 | ATTR_SIZE, |
| 87 | 88 | ATTR_SRC, |
| 88 | 89 | ATTR_START, |
| 89 | 90 | ATTR_STYLE, |
| @@ -95,40 +96,41 @@ | ||
| 95 | 96 | ATTR_VSPACE, |
| 96 | 97 | ATTR_WIDTH |
| 97 | 98 | }; |
| 98 | 99 | |
| 99 | 100 | enum amsk_t { |
| 100 | - AMSK_ALIGN = 0x00000001, | |
| 101 | - AMSK_ALT = 0x00000002, | |
| 102 | - AMSK_BGCOLOR = 0x00000004, | |
| 103 | - AMSK_BORDER = 0x00000008, | |
| 104 | - AMSK_CELLPADDING = 0x00000010, | |
| 105 | - AMSK_CELLSPACING = 0x00000020, | |
| 106 | - AMSK_CLASS = 0x00000040, | |
| 107 | - AMSK_CLEAR = 0x00000080, | |
| 108 | - AMSK_COLOR = 0x00000100, | |
| 109 | - AMSK_COLSPAN = 0x00000200, | |
| 110 | - AMSK_COMPACT = 0x00000400, | |
| 111 | - AMSK_FACE = 0x00000800, | |
| 112 | - AMSK_HEIGHT = 0x00001000, | |
| 113 | - AMSK_HREF = 0x00002000, | |
| 114 | - AMSK_HSPACE = 0x00004000, | |
| 115 | - AMSK_ID = 0x00008000, | |
| 116 | - AMSK_LINKS = 0x00010000, | |
| 117 | - AMSK_NAME = 0x00020000, | |
| 118 | - AMSK_ROWSPAN = 0x00040000, | |
| 119 | - AMSK_SIZE = 0x00080000, | |
| 120 | - AMSK_SRC = 0x00100000, | |
| 121 | - AMSK_START = 0x00200000, | |
| 122 | - AMSK_STYLE = 0x00400000, | |
| 123 | - AMSK_TARGET = 0x00800000, | |
| 124 | - AMSK_TITLE = 0x01000000, | |
| 125 | - AMSK_TYPE = 0x02000000, | |
| 126 | - AMSK_VALIGN = 0x04000000, | |
| 127 | - AMSK_VALUE = 0x08000000, | |
| 128 | - AMSK_VSPACE = 0x10000000, | |
| 129 | - AMSK_WIDTH = 0x20000000 | |
| 101 | + AMSK_ALIGN = 1 << 0, | |
| 102 | + AMSK_ALT = 1 << 1, | |
| 103 | + AMSK_BGCOLOR = 1 << 2, | |
| 104 | + AMSK_BORDER = 1 << 3, | |
| 105 | + AMSK_CELLPADDING = 1 << 4, | |
| 106 | + AMSK_CELLSPACING = 1 << 5, | |
| 107 | + AMSK_CLASS = 1 << 6, | |
| 108 | + AMSK_CLEAR = 1 << 7, | |
| 109 | + AMSK_COLOR = 1 << 8, | |
| 110 | + AMSK_COLSPAN = 1 << 9, | |
| 111 | + AMSK_COMPACT = 1 << 10, | |
| 112 | + AMSK_FACE = 1 << 11, | |
| 113 | + AMSK_HEIGHT = 1 << 12, | |
| 114 | + AMSK_HREF = 1 << 13, | |
| 115 | + AMSK_HSPACE = 1 << 14, | |
| 116 | + AMSK_ID = 1 << 15, | |
| 117 | + AMSK_LINKS = 1 << 16, | |
| 118 | + AMSK_NAME = 1 << 17, | |
| 119 | + AMSK_OPEN = 1 << 18, | |
| 120 | + AMSK_ROWSPAN = 1 << 19, | |
| 121 | + AMSK_SIZE = 1 << 20, | |
| 122 | + AMSK_SRC = 1 << 21, | |
| 123 | + AMSK_START = 1 << 22, | |
| 124 | + AMSK_STYLE = 1 << 23, | |
| 125 | + AMSK_TARGET = 1 << 24, | |
| 126 | + AMSK_TITLE = 1 << 25, | |
| 127 | + AMSK_TYPE = 1 << 26, | |
| 128 | + AMSK_VALIGN = 1 << 27, | |
| 129 | + AMSK_VALUE = 1 << 28, | |
| 130 | + AMSK_VSPACE = 1 << 29, | |
| 131 | + AMSK_WIDTH = 1 << 30 | |
| 130 | 132 | }; |
| 131 | 133 | |
| 132 | 134 | static const struct AllowedAttribute { |
| 133 | 135 | const char *zName; |
| 134 | 136 | unsigned int iMask; |
| @@ -153,10 +155,11 @@ | ||
| 153 | 155 | { "href", AMSK_HREF }, |
| 154 | 156 | { "hspace", AMSK_HSPACE }, |
| 155 | 157 | { "id", AMSK_ID }, |
| 156 | 158 | { "links", AMSK_LINKS }, |
| 157 | 159 | { "name", AMSK_NAME }, |
| 160 | + { "open", AMSK_OPEN }, | |
| 158 | 161 | { "rowspan", AMSK_ROWSPAN }, |
| 159 | 162 | { "size", AMSK_SIZE }, |
| 160 | 163 | { "src", AMSK_SRC }, |
| 161 | 164 | { "start", AMSK_START }, |
| 162 | 165 | { "style", AMSK_STYLE }, |
| 163 | 166 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -80,10 +80,11 @@ | |
| 80 | ATTR_HREF, |
| 81 | ATTR_HSPACE, |
| 82 | ATTR_ID, |
| 83 | ATTR_LINKS, |
| 84 | ATTR_NAME, |
| 85 | ATTR_ROWSPAN, |
| 86 | ATTR_SIZE, |
| 87 | ATTR_SRC, |
| 88 | ATTR_START, |
| 89 | ATTR_STYLE, |
| @@ -95,40 +96,41 @@ | |
| 95 | ATTR_VSPACE, |
| 96 | ATTR_WIDTH |
| 97 | }; |
| 98 | |
| 99 | enum amsk_t { |
| 100 | AMSK_ALIGN = 0x00000001, |
| 101 | AMSK_ALT = 0x00000002, |
| 102 | AMSK_BGCOLOR = 0x00000004, |
| 103 | AMSK_BORDER = 0x00000008, |
| 104 | AMSK_CELLPADDING = 0x00000010, |
| 105 | AMSK_CELLSPACING = 0x00000020, |
| 106 | AMSK_CLASS = 0x00000040, |
| 107 | AMSK_CLEAR = 0x00000080, |
| 108 | AMSK_COLOR = 0x00000100, |
| 109 | AMSK_COLSPAN = 0x00000200, |
| 110 | AMSK_COMPACT = 0x00000400, |
| 111 | AMSK_FACE = 0x00000800, |
| 112 | AMSK_HEIGHT = 0x00001000, |
| 113 | AMSK_HREF = 0x00002000, |
| 114 | AMSK_HSPACE = 0x00004000, |
| 115 | AMSK_ID = 0x00008000, |
| 116 | AMSK_LINKS = 0x00010000, |
| 117 | AMSK_NAME = 0x00020000, |
| 118 | AMSK_ROWSPAN = 0x00040000, |
| 119 | AMSK_SIZE = 0x00080000, |
| 120 | AMSK_SRC = 0x00100000, |
| 121 | AMSK_START = 0x00200000, |
| 122 | AMSK_STYLE = 0x00400000, |
| 123 | AMSK_TARGET = 0x00800000, |
| 124 | AMSK_TITLE = 0x01000000, |
| 125 | AMSK_TYPE = 0x02000000, |
| 126 | AMSK_VALIGN = 0x04000000, |
| 127 | AMSK_VALUE = 0x08000000, |
| 128 | AMSK_VSPACE = 0x10000000, |
| 129 | AMSK_WIDTH = 0x20000000 |
| 130 | }; |
| 131 | |
| 132 | static const struct AllowedAttribute { |
| 133 | const char *zName; |
| 134 | unsigned int iMask; |
| @@ -153,10 +155,11 @@ | |
| 153 | { "href", AMSK_HREF }, |
| 154 | { "hspace", AMSK_HSPACE }, |
| 155 | { "id", AMSK_ID }, |
| 156 | { "links", AMSK_LINKS }, |
| 157 | { "name", AMSK_NAME }, |
| 158 | { "rowspan", AMSK_ROWSPAN }, |
| 159 | { "size", AMSK_SIZE }, |
| 160 | { "src", AMSK_SRC }, |
| 161 | { "start", AMSK_START }, |
| 162 | { "style", AMSK_STYLE }, |
| 163 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -80,10 +80,11 @@ | |
| 80 | ATTR_HREF, |
| 81 | ATTR_HSPACE, |
| 82 | ATTR_ID, |
| 83 | ATTR_LINKS, |
| 84 | ATTR_NAME, |
| 85 | ATTR_OPEN, |
| 86 | ATTR_ROWSPAN, |
| 87 | ATTR_SIZE, |
| 88 | ATTR_SRC, |
| 89 | ATTR_START, |
| 90 | ATTR_STYLE, |
| @@ -95,40 +96,41 @@ | |
| 96 | ATTR_VSPACE, |
| 97 | ATTR_WIDTH |
| 98 | }; |
| 99 | |
| 100 | enum amsk_t { |
| 101 | AMSK_ALIGN = 1 << 0, |
| 102 | AMSK_ALT = 1 << 1, |
| 103 | AMSK_BGCOLOR = 1 << 2, |
| 104 | AMSK_BORDER = 1 << 3, |
| 105 | AMSK_CELLPADDING = 1 << 4, |
| 106 | AMSK_CELLSPACING = 1 << 5, |
| 107 | AMSK_CLASS = 1 << 6, |
| 108 | AMSK_CLEAR = 1 << 7, |
| 109 | AMSK_COLOR = 1 << 8, |
| 110 | AMSK_COLSPAN = 1 << 9, |
| 111 | AMSK_COMPACT = 1 << 10, |
| 112 | AMSK_FACE = 1 << 11, |
| 113 | AMSK_HEIGHT = 1 << 12, |
| 114 | AMSK_HREF = 1 << 13, |
| 115 | AMSK_HSPACE = 1 << 14, |
| 116 | AMSK_ID = 1 << 15, |
| 117 | AMSK_LINKS = 1 << 16, |
| 118 | AMSK_NAME = 1 << 17, |
| 119 | AMSK_OPEN = 1 << 18, |
| 120 | AMSK_ROWSPAN = 1 << 19, |
| 121 | AMSK_SIZE = 1 << 20, |
| 122 | AMSK_SRC = 1 << 21, |
| 123 | AMSK_START = 1 << 22, |
| 124 | AMSK_STYLE = 1 << 23, |
| 125 | AMSK_TARGET = 1 << 24, |
| 126 | AMSK_TITLE = 1 << 25, |
| 127 | AMSK_TYPE = 1 << 26, |
| 128 | AMSK_VALIGN = 1 << 27, |
| 129 | AMSK_VALUE = 1 << 28, |
| 130 | AMSK_VSPACE = 1 << 29, |
| 131 | AMSK_WIDTH = 1 << 30 |
| 132 | }; |
| 133 | |
| 134 | static const struct AllowedAttribute { |
| 135 | const char *zName; |
| 136 | unsigned int iMask; |
| @@ -153,10 +155,11 @@ | |
| 155 | { "href", AMSK_HREF }, |
| 156 | { "hspace", AMSK_HSPACE }, |
| 157 | { "id", AMSK_ID }, |
| 158 | { "links", AMSK_LINKS }, |
| 159 | { "name", AMSK_NAME }, |
| 160 | { "open", AMSK_OPEN }, |
| 161 | { "rowspan", AMSK_ROWSPAN }, |
| 162 | { "size", AMSK_SIZE }, |
| 163 | { "src", AMSK_SRC }, |
| 164 | { "start", AMSK_START }, |
| 165 | { "style", AMSK_STYLE }, |
| 166 |