errcnt=0
for x in @top_srcdir@/test/*.re; do
echo $x
+ switches=`basename $x|sed -e 's/^.*\.\([^.]*\)\..*$/-\1/g' -e 's/^[^-].*//'g`
# don't use the -o flag, since it makes it harder to diff.
outname=@builddir@/test/`basename ${x%.re}.temp`
- @builddir@/re2c $x 2>&1 | sed -e "s,$x,`basename $x`,g" -e "s,/\* Generated by re2c .*\*/,/\* Generated by re2c \*/,g" > $outname
+ @builddir@/re2c $switches $x 2>&1 | sed -e "s,$x,`basename $x`,g" -e "s,/\* Generated by re2c .*\*/,/\* Generated by re2c \*/,g" > $outname
if cmp -s ${x%.re}.c $outname; then
echo "Passed."
rm $outname
--- /dev/null
+/* Generated by re2c */
+#line 1 "cvsignore.re"
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+#line 16 "cvsignore.re"
+
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+
+#line 43 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ goto yy0;
+ ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+ yych = *YYCURSOR;
+ switch(yych){
+ case '$': goto yy2;
+ default: goto yy4;
+ }
+yy2: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'D': goto yy10;
+ case 'I': goto yy9;
+ case 'L': goto yy8;
+ case 'R': goto yy7;
+ case 'S': goto yy5;
+ default: goto yy3;
+ }
+yy3:
+#line 53 "cvsignore.re"
+{ output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+#line 69 "<stdout>"
+yy4: yych = *++YYCURSOR;
+ goto yy3;
+yy5: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy44;
+ default: goto yy6;
+ }
+yy6: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy3;
+ }
+yy7: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy32;
+ default: goto yy6;
+ }
+yy8: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy25;
+ default: goto yy6;
+ }
+yy9: yych = *++YYCURSOR;
+ switch(yych){
+ case 'd': goto yy19;
+ default: goto yy6;
+ }
+yy10: yych = *++YYCURSOR;
+ switch(yych){
+ case 'a': goto yy11;
+ default: goto yy6;
+ }
+yy11: yych = *++YYCURSOR;
+ switch(yych){
+ case 't': goto yy12;
+ default: goto yy6;
+ }
+yy12: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy13;
+ default: goto yy6;
+ }
+yy13: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy15;
+ case ':': goto yy14;
+ default: goto yy6;
+ }
+yy14: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy6;
+ default: goto yy18;
+ }
+yy15: ++YYCURSOR;
+ goto yy16;
+yy16:
+#line 48 "cvsignore.re"
+{ APPEND(L"$Date$"); goto loop; }
+#line 127 "<stdout>"
+yy17: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy18;
+yy18: switch(yych){
+ case 0x0A: goto yy6;
+ case '$': goto yy15;
+ default: goto yy17;
+ }
+yy19: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy21;
+ case ':': goto yy20;
+ default: goto yy6;
+ }
+yy20: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy6;
+ default: goto yy24;
+ }
+yy21: ++YYCURSOR;
+ goto yy22;
+yy22:
+#line 49 "cvsignore.re"
+{ APPEND(L"$Id$"); goto loop; }
+#line 153 "<stdout>"
+yy23: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy24;
+yy24: switch(yych){
+ case 0x0A: goto yy6;
+ case '$': goto yy21;
+ default: goto yy23;
+ }
+yy25: yych = *++YYCURSOR;
+ switch(yych){
+ case 'g': goto yy26;
+ default: goto yy6;
+ }
+yy26: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy28;
+ case ':': goto yy27;
+ default: goto yy6;
+ }
+yy27: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy6;
+ default: goto yy31;
+ }
+yy28: ++YYCURSOR;
+ goto yy29;
+yy29:
+#line 50 "cvsignore.re"
+{ APPEND(L"$Log$
+{ APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+{ APPEND(L"- Allow to test with specific switches by providing them in test filename
+{ APPEND(L"- Add first unicode tests
+{ APPEND(L""); goto loop; }
+#line 184 "<stdout>"
+yy30: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy31;
+yy31: switch(yych){
+ case 0x0A: goto yy6;
+ case '$': goto yy28;
+ default: goto yy30;
+ }
+yy32: yych = *++YYCURSOR;
+ switch(yych){
+ case 'v': goto yy33;
+ default: goto yy6;
+ }
+yy33: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy34;
+ default: goto yy6;
+ }
+yy34: yych = *++YYCURSOR;
+ switch(yych){
+ case 's': goto yy35;
+ default: goto yy6;
+ }
+yy35: yych = *++YYCURSOR;
+ switch(yych){
+ case 'i': goto yy36;
+ default: goto yy6;
+ }
+yy36: yych = *++YYCURSOR;
+ switch(yych){
+ case 'o': goto yy37;
+ default: goto yy6;
+ }
+yy37: yych = *++YYCURSOR;
+ switch(yych){
+ case 'n': goto yy38;
+ default: goto yy6;
+ }
+yy38: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy40;
+ case ':': goto yy39;
+ default: goto yy6;
+ }
+yy39: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy6;
+ default: goto yy43;
+ }
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 51 "cvsignore.re"
+{ APPEND(L"$Revision$"); goto loop; }
+#line 240 "<stdout>"
+yy42: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy43;
+yy43: switch(yych){
+ case 0x0A: goto yy6;
+ case '$': goto yy40;
+ default: goto yy42;
+ }
+yy44: yych = *++YYCURSOR;
+ switch(yych){
+ case 'u': goto yy45;
+ default: goto yy6;
+ }
+yy45: yych = *++YYCURSOR;
+ switch(yych){
+ case 'r': goto yy46;
+ default: goto yy6;
+ }
+yy46: yych = *++YYCURSOR;
+ switch(yych){
+ case 'c': goto yy47;
+ default: goto yy6;
+ }
+yy47: yych = *++YYCURSOR;
+ switch(yych){
+ case 'e': goto yy48;
+ default: goto yy6;
+ }
+yy48: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy50;
+ case ':': goto yy49;
+ default: goto yy6;
+ }
+yy49: yych = *++YYCURSOR;
+ switch(yych){
+ case '$': goto yy6;
+ default: goto yy53;
+ }
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 52 "cvsignore.re"
+{ APPEND(L"$Source$"); goto loop; }
+#line 286 "<stdout>"
+yy52: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy53;
+yy53: switch(yych){
+ case 0x0A: goto yy6;
+ case '$': goto yy50;
+ default: goto yy52;
+ }
+}
+#line 55 "cvsignore.re"
+
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}
--- /dev/null
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+/*!re2c
+any = (.|"\n");
+value = (":" (.\"$")+)?;
+cvsdat = "Date";
+cvsid = "Id";
+cvslog = "Log";
+cvsrev = "Revision";
+cvssrc = "Source";
+*/
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+/*!re2c
+
+"$" cvsdat value "$" { APPEND(L"$Date$"); goto loop; }
+"$" cvsid value "$" { APPEND(L"$Id$"); goto loop; }
+"$" cvslog value "$" { APPEND(L"$Log$
+"$" cvslog value "$" { APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+"$" cvslog value "$" { APPEND(L"- Allow to test with specific switches by providing them in test filename
+"$" cvslog value "$" { APPEND(L"- Add first unicode tests
+"$" cvslog value "$" { APPEND(L""); goto loop; }
+"$" cvsrev value "$" { APPEND(L"$Revision$"); goto loop; }
+"$" cvssrc value "$" { APPEND(L"$Source$"); goto loop; }
+any { output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+
+*/
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}
--- /dev/null
+/* Generated by re2c */
+#line 1 "cvsignore.s.re"
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+#line 16 "cvsignore.s.re"
+
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+
+#line 43 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ goto yy0;
+ ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+ yych = *YYCURSOR;
+ if(yych != '$') goto yy4;
+ goto yy2;
+yy2: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'D': goto yy10;
+ case 'I': goto yy9;
+ case 'L': goto yy8;
+ case 'R': goto yy7;
+ case 'S': goto yy5;
+ default: goto yy3;
+ }
+yy3:
+#line 53 "cvsignore.s.re"
+{ output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+#line 67 "<stdout>"
+yy4: yych = *++YYCURSOR;
+ goto yy3;
+yy5: yych = *++YYCURSOR;
+ if(yych == 'o') goto yy44;
+ goto yy6;
+yy6: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy3;
+ }
+yy7: yych = *++YYCURSOR;
+ if(yych == 'e') goto yy32;
+ goto yy6;
+yy8: yych = *++YYCURSOR;
+ if(yych == 'o') goto yy25;
+ goto yy6;
+yy9: yych = *++YYCURSOR;
+ if(yych == 'd') goto yy19;
+ goto yy6;
+yy10: yych = *++YYCURSOR;
+ if(yych != 'a') goto yy6;
+ goto yy11;
+yy11: yych = *++YYCURSOR;
+ if(yych != 't') goto yy6;
+ goto yy12;
+yy12: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy6;
+ goto yy13;
+yy13: yych = *++YYCURSOR;
+ if(yych == '$') goto yy15;
+ if(yych != ':') goto yy6;
+ goto yy14;
+yy14: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy18;
+yy15: ++YYCURSOR;
+ goto yy16;
+yy16:
+#line 48 "cvsignore.s.re"
+{ APPEND(L"$Date$"); goto loop; }
+#line 107 "<stdout>"
+yy17: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy18;
+yy18: if(yych == 0x0A) goto yy6;
+ if(yych == '$') goto yy15;
+ goto yy17;
+yy19: yych = *++YYCURSOR;
+ if(yych == '$') goto yy21;
+ if(yych != ':') goto yy6;
+ goto yy20;
+yy20: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy24;
+yy21: ++YYCURSOR;
+ goto yy22;
+yy22:
+#line 49 "cvsignore.s.re"
+{ APPEND(L"$Id$"); goto loop; }
+#line 127 "<stdout>"
+yy23: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy24;
+yy24: if(yych == 0x0A) goto yy6;
+ if(yych == '$') goto yy21;
+ goto yy23;
+yy25: yych = *++YYCURSOR;
+ if(yych != 'g') goto yy6;
+ goto yy26;
+yy26: yych = *++YYCURSOR;
+ if(yych == '$') goto yy28;
+ if(yych != ':') goto yy6;
+ goto yy27;
+yy27: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy31;
+yy28: ++YYCURSOR;
+ goto yy29;
+yy29:
+#line 50 "cvsignore.s.re"
+{ APPEND(L"$Log$
+{ APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+{ APPEND(L"- Allow to test with specific switches by providing them in test filename
+{ APPEND(L"- Add first unicode tests
+{ APPEND(L""); goto loop; }
+#line 150 "<stdout>"
+yy30: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy31;
+yy31: if(yych == 0x0A) goto yy6;
+ if(yych == '$') goto yy28;
+ goto yy30;
+yy32: yych = *++YYCURSOR;
+ if(yych != 'v') goto yy6;
+ goto yy33;
+yy33: yych = *++YYCURSOR;
+ if(yych != 'i') goto yy6;
+ goto yy34;
+yy34: yych = *++YYCURSOR;
+ if(yych != 's') goto yy6;
+ goto yy35;
+yy35: yych = *++YYCURSOR;
+ if(yych != 'i') goto yy6;
+ goto yy36;
+yy36: yych = *++YYCURSOR;
+ if(yych != 'o') goto yy6;
+ goto yy37;
+yy37: yych = *++YYCURSOR;
+ if(yych != 'n') goto yy6;
+ goto yy38;
+yy38: yych = *++YYCURSOR;
+ if(yych == '$') goto yy40;
+ if(yych != ':') goto yy6;
+ goto yy39;
+yy39: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy43;
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 51 "cvsignore.s.re"
+{ APPEND(L"$Revision$"); goto loop; }
+#line 188 "<stdout>"
+yy42: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy43;
+yy43: if(yych == 0x0A) goto yy6;
+ if(yych == '$') goto yy40;
+ goto yy42;
+yy44: yych = *++YYCURSOR;
+ if(yych != 'u') goto yy6;
+ goto yy45;
+yy45: yych = *++YYCURSOR;
+ if(yych != 'r') goto yy6;
+ goto yy46;
+yy46: yych = *++YYCURSOR;
+ if(yych != 'c') goto yy6;
+ goto yy47;
+yy47: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy6;
+ goto yy48;
+yy48: yych = *++YYCURSOR;
+ if(yych == '$') goto yy50;
+ if(yych != ':') goto yy6;
+ goto yy49;
+yy49: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy53;
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 52 "cvsignore.s.re"
+{ APPEND(L"$Source$"); goto loop; }
+#line 220 "<stdout>"
+yy52: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy53;
+yy53: if(yych == 0x0A) goto yy6;
+ if(yych == '$') goto yy50;
+ goto yy52;
+}
+#line 55 "cvsignore.s.re"
+
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}
--- /dev/null
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE char
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+/*!re2c
+any = (.|"\n");
+value = (":" (.\"$")+)?;
+cvsdat = "Date";
+cvsid = "Id";
+cvslog = "Log";
+cvsrev = "Revision";
+cvssrc = "Source";
+*/
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+/*!re2c
+
+"$" cvsdat value "$" { APPEND(L"$Date$"); goto loop; }
+"$" cvsid value "$" { APPEND(L"$Id$"); goto loop; }
+"$" cvslog value "$" { APPEND(L"$Log$
+"$" cvslog value "$" { APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+"$" cvslog value "$" { APPEND(L"- Allow to test with specific switches by providing them in test filename
+"$" cvslog value "$" { APPEND(L"- Add first unicode tests
+"$" cvslog value "$" { APPEND(L""); goto loop; }
+"$" cvsrev value "$" { APPEND(L"$Revision$"); goto loop; }
+"$" cvssrc value "$" { APPEND(L"$Source$"); goto loop; }
+any { output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+
+*/
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}
--- /dev/null
+/* Generated by re2c */
+#line 1 "cvsignore.w.re"
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE unsigned short
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+#line 16 "cvsignore.w.re"
+
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+
+#line 43 "<stdout>"
+{
+ YYCTYPE yych;
+ unsigned int yyaccept = 0;
+ goto yy0;
+ ++YYCURSOR;
+yy0:
+ if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
+ yych = *YYCURSOR;
+ if(yych != '$') goto yy4;
+ goto yy2;
+yy2: yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ switch(yych){
+ case 'D': goto yy10;
+ case 'I': goto yy9;
+ case 'L': goto yy8;
+ case 'R': goto yy7;
+ case 'S': goto yy5;
+ default: goto yy3;
+ }
+yy3:
+#line 53 "cvsignore.w.re"
+{ output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+#line 67 "<stdout>"
+yy4: yych = *++YYCURSOR;
+ goto yy3;
+yy5: yych = *++YYCURSOR;
+ if(yych == 'o') goto yy44;
+ goto yy6;
+yy6: YYCURSOR = YYMARKER;
+ switch(yyaccept){
+ case 0: goto yy3;
+ }
+yy7: yych = *++YYCURSOR;
+ if(yych == 'e') goto yy32;
+ goto yy6;
+yy8: yych = *++YYCURSOR;
+ if(yych == 'o') goto yy25;
+ goto yy6;
+yy9: yych = *++YYCURSOR;
+ if(yych == 'd') goto yy19;
+ goto yy6;
+yy10: yych = *++YYCURSOR;
+ if(yych != 'a') goto yy6;
+ goto yy11;
+yy11: yych = *++YYCURSOR;
+ if(yych != 't') goto yy6;
+ goto yy12;
+yy12: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy6;
+ goto yy13;
+yy13: yych = *++YYCURSOR;
+ if(yych == '$') goto yy15;
+ if(yych != ':') goto yy6;
+ goto yy14;
+yy14: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy18;
+yy15: ++YYCURSOR;
+ goto yy16;
+yy16:
+#line 48 "cvsignore.w.re"
+{ APPEND(L"$Date$"); goto loop; }
+#line 107 "<stdout>"
+yy17: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy18;
+yy18: if(yych == 0x000A) goto yy6;
+ if(yych == '$') goto yy15;
+ goto yy17;
+yy19: yych = *++YYCURSOR;
+ if(yych == '$') goto yy21;
+ if(yych != ':') goto yy6;
+ goto yy20;
+yy20: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy24;
+yy21: ++YYCURSOR;
+ goto yy22;
+yy22:
+#line 49 "cvsignore.w.re"
+{ APPEND(L"$Id$"); goto loop; }
+#line 127 "<stdout>"
+yy23: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy24;
+yy24: if(yych == 0x000A) goto yy6;
+ if(yych == '$') goto yy21;
+ goto yy23;
+yy25: yych = *++YYCURSOR;
+ if(yych != 'g') goto yy6;
+ goto yy26;
+yy26: yych = *++YYCURSOR;
+ if(yych == '$') goto yy28;
+ if(yych != ':') goto yy6;
+ goto yy27;
+yy27: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy31;
+yy28: ++YYCURSOR;
+ goto yy29;
+yy29:
+#line 50 "cvsignore.w.re"
+{ APPEND(L"$Log$
+{ APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+{ APPEND(L"- Allow to test with specific switches by providing them in test filename
+{ APPEND(L"- Add first unicode tests
+{ APPEND(L""); goto loop; }
+#line 150 "<stdout>"
+yy30: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy31;
+yy31: if(yych == 0x000A) goto yy6;
+ if(yych == '$') goto yy28;
+ goto yy30;
+yy32: yych = *++YYCURSOR;
+ if(yych != 'v') goto yy6;
+ goto yy33;
+yy33: yych = *++YYCURSOR;
+ if(yych != 'i') goto yy6;
+ goto yy34;
+yy34: yych = *++YYCURSOR;
+ if(yych != 's') goto yy6;
+ goto yy35;
+yy35: yych = *++YYCURSOR;
+ if(yych != 'i') goto yy6;
+ goto yy36;
+yy36: yych = *++YYCURSOR;
+ if(yych != 'o') goto yy6;
+ goto yy37;
+yy37: yych = *++YYCURSOR;
+ if(yych != 'n') goto yy6;
+ goto yy38;
+yy38: yych = *++YYCURSOR;
+ if(yych == '$') goto yy40;
+ if(yych != ':') goto yy6;
+ goto yy39;
+yy39: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy43;
+yy40: ++YYCURSOR;
+ goto yy41;
+yy41:
+#line 51 "cvsignore.w.re"
+{ APPEND(L"$Revision$"); goto loop; }
+#line 188 "<stdout>"
+yy42: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy43;
+yy43: if(yych == 0x000A) goto yy6;
+ if(yych == '$') goto yy40;
+ goto yy42;
+yy44: yych = *++YYCURSOR;
+ if(yych != 'u') goto yy6;
+ goto yy45;
+yy45: yych = *++YYCURSOR;
+ if(yych != 'r') goto yy6;
+ goto yy46;
+yy46: yych = *++YYCURSOR;
+ if(yych != 'c') goto yy6;
+ goto yy47;
+yy47: yych = *++YYCURSOR;
+ if(yych != 'e') goto yy6;
+ goto yy48;
+yy48: yych = *++YYCURSOR;
+ if(yych == '$') goto yy50;
+ if(yych != ':') goto yy6;
+ goto yy49;
+yy49: yych = *++YYCURSOR;
+ if(yych == '$') goto yy6;
+ goto yy53;
+yy50: ++YYCURSOR;
+ goto yy51;
+yy51:
+#line 52 "cvsignore.w.re"
+{ APPEND(L"$Source$"); goto loop; }
+#line 220 "<stdout>"
+yy52: ++YYCURSOR;
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
+ yych = *YYCURSOR;
+ goto yy53;
+yy53: if(yych == 0x000A) goto yy6;
+ if(yych == '$') goto yy50;
+ goto yy52;
+}
+#line 55 "cvsignore.w.re"
+
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}
--- /dev/null
+
+#define YYFILL(n) if (cursor >= limit) break;
+#define YYCTYPE unsigned short
+#define YYCURSOR cursor
+#define YYLIMIT limit
+#define YYMARKER marker
+
+/*!re2c
+any = (.|"\n");
+value = (":" (.\"$")+)?;
+cvsdat = "Date";
+cvsid = "Id";
+cvslog = "Log";
+cvsrev = "Revision";
+cvssrc = "Source";
+*/
+
+#define APPEND(text) \
+ append(output, outsize, text, sizeof(text) - sizeof(YYCTYPE))
+
+inline void append(YYCTYPE *output, size_t & outsize, const YYCTYPE * text, size_t len)
+{
+ memcpy(output + outsize, text, len);
+ outsize += (len / sizeof(YYCTYPE));
+}
+
+void scan(YYCTYPE *pText, size_t *pSize, int *pbChanged)
+{
+ // rule
+ // scan lines
+ // find $ in lines
+ // compact $<keyword>: .. $ to $<keyword>$
+
+ YYCTYPE *output;
+ const YYCTYPE *cursor, *limit, *marker;
+
+ cursor = marker = output = *pText;
+
+ size_t insize = *pSize;
+ size_t outsize = 0;
+
+ limit = cursor + insize;
+
+ while(1) {
+loop:
+/*!re2c
+
+"$" cvsdat value "$" { APPEND(L"$Date$"); goto loop; }
+"$" cvsid value "$" { APPEND(L"$Id$"); goto loop; }
+"$" cvslog value "$" { APPEND(L"$Log$
+"$" cvslog value "$" { APPEND(L"Revision 1.1 2005/12/29 15:42:02 helly
+"$" cvslog value "$" { APPEND(L"- Allow to test with specific switches by providing them in test filename
+"$" cvslog value "$" { APPEND(L"- Add first unicode tests
+"$" cvslog value "$" { APPEND(L""); goto loop; }
+"$" cvsrev value "$" { APPEND(L"$Revision$"); goto loop; }
+"$" cvssrc value "$" { APPEND(L"$Source$"); goto loop; }
+any { output[outsize++] = cursor[-1]; if (cursor >= limit) break; goto loop; }
+
+*/
+ }
+ output[outsize] = '\0';
+
+ // set the new size
+ *pSize = outsize;
+
+ *pbChanged = (insize == outsize) ? 0 : 1;
+}