@@ -47,7 +47,7 @@ typedef struct regex_t
47
47
{
48
48
unsigned char ch ; /* the character itself */
49
49
unsigned char * ccl ; /* OR a pointer to characters in class */
50
- };
50
+ } u ;
51
51
} regex_t ;
52
52
53
53
@@ -155,7 +155,7 @@ re_t re_compile(const char* pattern)
155
155
default :
156
156
{
157
157
re_compiled [j ].type = CHAR ;
158
- re_compiled [j ].ch = pattern [i ];
158
+ re_compiled [j ].u . ch = pattern [i ];
159
159
} break ;
160
160
}
161
161
}
@@ -222,14 +222,14 @@ re_t re_compile(const char* pattern)
222
222
}
223
223
/* Null-terminate string end */
224
224
ccl_buf [ccl_bufidx ++ ] = 0 ;
225
- re_compiled [j ].ccl = & ccl_buf [buf_begin ];
225
+ re_compiled [j ].u . ccl = & ccl_buf [buf_begin ];
226
226
} break ;
227
227
228
228
/* Other characters: */
229
229
default :
230
230
{
231
231
re_compiled [j ].type = CHAR ;
232
- re_compiled [j ].ch = c ;
232
+ re_compiled [j ].u . ch = c ;
233
233
} break ;
234
234
}
235
235
/* no buffer-out-of-bounds access on invalid patterns - see https://github.com/kokke/tiny-regex-c/commit/1a279e04014b70b0695fba559a7c05d55e6ee90b */
@@ -267,7 +267,7 @@ void re_print(regex_t* pattern)
267
267
printf (" [" );
268
268
for (j = 0 ; j < MAX_CHAR_CLASS_LEN ; ++ j )
269
269
{
270
- c = pattern [i ].ccl [j ];
270
+ c = pattern [i ].u . ccl [j ];
271
271
if ((c == '\0' ) || (c == ']' ))
272
272
{
273
273
break ;
@@ -278,7 +278,7 @@ void re_print(regex_t* pattern)
278
278
}
279
279
else if (pattern [i ].type == CHAR )
280
280
{
281
- printf (" '%c'" , pattern [i ].ch );
281
+ printf (" '%c'" , pattern [i ].u . ch );
282
282
}
283
283
printf ("\n" );
284
284
}
@@ -384,15 +384,15 @@ static int matchone(regex_t p, char c)
384
384
switch (p .type )
385
385
{
386
386
case DOT : return matchdot (c );
387
- case CHAR_CLASS : return matchcharclass (c , (const char * )p .ccl );
388
- case INV_CHAR_CLASS : return !matchcharclass (c , (const char * )p .ccl );
387
+ case CHAR_CLASS : return matchcharclass (c , (const char * )p .u . ccl );
388
+ case INV_CHAR_CLASS : return !matchcharclass (c , (const char * )p .u . ccl );
389
389
case DIGIT : return matchdigit (c );
390
390
case NOT_DIGIT : return !matchdigit (c );
391
391
case ALPHA : return matchalphanum (c );
392
392
case NOT_ALPHA : return !matchalphanum (c );
393
393
case WHITESPACE : return matchwhitespace (c );
394
394
case NOT_WHITESPACE : return !matchwhitespace (c );
395
- default : return (p .ch == c );
395
+ default : return (p .u . ch == c );
396
396
}
397
397
}
398
398
0 commit comments