@@ -47,7 +47,7 @@ typedef struct regex_t
4747 {
4848 unsigned char ch ; /* the character itself */
4949 unsigned char * ccl ; /* OR a pointer to characters in class */
50- };
50+ } u ;
5151} regex_t ;
5252
5353
@@ -155,7 +155,7 @@ re_t re_compile(const char* pattern)
155155 default :
156156 {
157157 re_compiled [j ].type = CHAR ;
158- re_compiled [j ].ch = pattern [i ];
158+ re_compiled [j ].u . ch = pattern [i ];
159159 } break ;
160160 }
161161 }
@@ -222,14 +222,14 @@ re_t re_compile(const char* pattern)
222222 }
223223 /* Null-terminate string end */
224224 ccl_buf [ccl_bufidx ++ ] = 0 ;
225- re_compiled [j ].ccl = & ccl_buf [buf_begin ];
225+ re_compiled [j ].u . ccl = & ccl_buf [buf_begin ];
226226 } break ;
227227
228228 /* Other characters: */
229229 default :
230230 {
231231 re_compiled [j ].type = CHAR ;
232- re_compiled [j ].ch = c ;
232+ re_compiled [j ].u . ch = c ;
233233 } break ;
234234 }
235235 /* 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)
267267 printf (" [" );
268268 for (j = 0 ; j < MAX_CHAR_CLASS_LEN ; ++ j )
269269 {
270- c = pattern [i ].ccl [j ];
270+ c = pattern [i ].u . ccl [j ];
271271 if ((c == '\0' ) || (c == ']' ))
272272 {
273273 break ;
@@ -278,7 +278,7 @@ void re_print(regex_t* pattern)
278278 }
279279 else if (pattern [i ].type == CHAR )
280280 {
281- printf (" '%c'" , pattern [i ].ch );
281+ printf (" '%c'" , pattern [i ].u . ch );
282282 }
283283 printf ("\n" );
284284 }
@@ -384,15 +384,15 @@ static int matchone(regex_t p, char c)
384384 switch (p .type )
385385 {
386386 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 );
389389 case DIGIT : return matchdigit (c );
390390 case NOT_DIGIT : return !matchdigit (c );
391391 case ALPHA : return matchalphanum (c );
392392 case NOT_ALPHA : return !matchalphanum (c );
393393 case WHITESPACE : return matchwhitespace (c );
394394 case NOT_WHITESPACE : return !matchwhitespace (c );
395- default : return (p .ch == c );
395+ default : return (p .u . ch == c );
396396 }
397397}
398398
0 commit comments