Skip to content

Commit a1e327e

Browse files
authored
Merge pull request #51 from smlavine/master
Give the union in regex_t a name - thanks @smlavine
2 parents 6658eed + 38455e1 commit a1e327e

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

re.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)