diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-07-10 15:11:06 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-10 15:11:06 -0700 |
| commit | a4f50bed86429b0d7be6886352a43c21b45d9bef (patch) | |
| tree | cfa8714e819aef013eb4a11f65508137ea1484ea /ports/libconfig/fix-scanner-source-msvc-patch.patch | |
| parent | 0d7961a8509f34a6d43697b701657989ba08fb67 (diff) | |
| parent | ce69ed555265ec85fd4c24a44600354b94930758 (diff) | |
| download | vcpkg-a4f50bed86429b0d7be6886352a43c21b45d9bef.tar.gz vcpkg-a4f50bed86429b0d7be6886352a43c21b45d9bef.zip | |
Merge pull request #1366 from atkawa7/libconfig
[libconfig] init #1343
Diffstat (limited to 'ports/libconfig/fix-scanner-source-msvc-patch.patch')
| -rw-r--r-- | ports/libconfig/fix-scanner-source-msvc-patch.patch | 1122 |
1 files changed, 1122 insertions, 0 deletions
diff --git a/ports/libconfig/fix-scanner-source-msvc-patch.patch b/ports/libconfig/fix-scanner-source-msvc-patch.patch new file mode 100644 index 000000000..e8f24e638 --- /dev/null +++ b/ports/libconfig/fix-scanner-source-msvc-patch.patch @@ -0,0 +1,1122 @@ +diff --git a/lib/scanner.c b/lib/scanner.c +index dc07eb0..efb6730 100644 +--- a/lib/scanner.c ++++ b/lib/scanner.c +@@ -9,7 +9,7 @@ + #define FLEX_SCANNER + #define YY_FLEX_MAJOR_VERSION 2 + #define YY_FLEX_MINOR_VERSION 5 +-#define YY_FLEX_SUBMINOR_VERSION 39 ++#define YY_FLEX_SUBMINOR_VERSION 35 + #if YY_FLEX_SUBMINOR_VERSION > 0 + #define FLEX_BETA + #endif +@@ -159,7 +159,15 @@ typedef void* yyscan_t; + + /* Size of default input buffer. */ + #ifndef YY_BUF_SIZE ++#ifdef __ia64__ ++/* On IA-64, the buffer size is 16k, not 8k. ++ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. ++ * Ditto for the __ia64__ case accordingly. ++ */ ++#define YY_BUF_SIZE 32768 ++#else + #define YY_BUF_SIZE 16384 ++#endif /* __ia64__ */ + #endif + + /* The state buf must be large enough to hold one state per character in the main buffer. +@@ -171,11 +179,6 @@ typedef void* yyscan_t; + typedef struct yy_buffer_state *YY_BUFFER_STATE; + #endif + +-#ifndef YY_TYPEDEF_YY_SIZE_T +-#define YY_TYPEDEF_YY_SIZE_T +-typedef size_t yy_size_t; +-#endif +- + #define EOB_ACT_CONTINUE_SCAN 0 + #define EOB_ACT_END_OF_FILE 1 + #define EOB_ACT_LAST_MATCH 2 +@@ -194,13 +197,6 @@ typedef size_t yy_size_t; + if ( yytext[yyl] == '\n' )\ + --yylineno;\ + }while(0) +- #define YY_LINENO_REWIND_TO(dst) \ +- do {\ +- const char *p;\ +- for ( p = yy_cp-1; p >= (dst); --p)\ +- if ( *p == '\n' )\ +- --yylineno;\ +- }while(0) + + /* Return all but the first "n" matched characters back to the input stream. */ + #define yyless(n) \ +@@ -218,6 +214,11 @@ typedef size_t yy_size_t; + + #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) + ++#ifndef YY_TYPEDEF_YY_SIZE_T ++#define YY_TYPEDEF_YY_SIZE_T ++typedef size_t yy_size_t; ++#endif ++ + #ifndef YY_STRUCT_YY_BUFFER_STATE + #define YY_STRUCT_YY_BUFFER_STATE + struct yy_buffer_state +@@ -235,7 +236,7 @@ struct yy_buffer_state + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ +- yy_size_t yy_n_chars; ++ int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to +@@ -314,7 +315,7 @@ static void libconfig_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yys + + YY_BUFFER_STATE libconfig_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); + YY_BUFFER_STATE libconfig_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); +-YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); ++YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); + + void *libconfig_yyalloc (yy_size_t ,yyscan_t yyscanner ); + void *libconfig_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); +@@ -344,7 +345,7 @@ void libconfig_yyfree (void * ,yyscan_t yyscanner ); + + #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +-#define libconfig_yywrap(yyscanner) 1 ++#define libconfig_yywrap(n) 1 + #define YY_SKIP_YYWRAP + + typedef unsigned char YY_CHAR; +@@ -368,8 +369,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; + +-#define YY_NUM_RULES 42 +-#define YY_END_OF_BUFFER 43 ++#define YY_NUM_RULES 47 ++#define YY_END_OF_BUFFER 48 + /* This struct is not used in this scanner, + but its presence is necessary. */ + struct yy_trans_info +@@ -377,20 +378,21 @@ struct yy_trans_info + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +-static yyconst flex_int16_t yy_accept[103] = ++static yyconst flex_int16_t yy_accept[117] = + { 0, +- 0, 0, 0, 0, 0, 0, 0, 0, 43, 41, +- 22, 21, 21, 5, 41, 37, 38, 29, 41, 24, +- 30, 41, 31, 31, 23, 39, 29, 29, 35, 36, +- 25, 26, 22, 41, 3, 4, 3, 6, 15, 14, +- 17, 20, 42, 22, 0, 40, 29, 30, 31, 30, +- 0, 1, 0, 30, 0, 32, 0, 29, 29, 22, +- 0, 0, 2, 6, 12, 0, 11, 10, 7, 8, +- 9, 17, 19, 18, 0, 30, 30, 0, 0, 30, +- 32, 33, 29, 29, 0, 0, 0, 30, 34, 29, +- 27, 0, 13, 34, 28, 0, 0, 0, 0, 0, +- +- 16, 0 ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 48, 46, 27, 26, 26, 5, 46, 42, 43, 34, ++ 46, 29, 35, 46, 36, 36, 28, 44, 34, 34, ++ 40, 41, 30, 31, 27, 46, 3, 4, 3, 6, ++ 15, 14, 17, 20, 47, 22, 25, 47, 27, 0, ++ 45, 34, 35, 36, 35, 0, 1, 0, 35, 0, ++ 37, 0, 34, 34, 27, 0, 0, 2, 6, 12, ++ 0, 11, 10, 7, 8, 9, 17, 19, 18, 22, ++ 24, 23, 0, 35, 35, 0, 0, 35, 37, 38, ++ 34, 34, 0, 0, 0, 35, 39, 34, 32, 0, ++ ++ 13, 39, 33, 0, 0, 0, 0, 0, 0, 16, ++ 0, 0, 0, 0, 21, 0 + } ; + + static yyconst flex_int32_t yy_ec[256] = +@@ -434,110 +436,116 @@ static yyconst flex_int32_t yy_meta[49] = + 3, 3, 3, 3, 3, 3, 1, 1 + } ; + +-static yyconst flex_int16_t yy_base[113] = ++static yyconst flex_int16_t yy_base[129] = + { 0, +- 0, 47, 47, 48, 46, 47, 48, 49, 203, 204, +- 200, 204, 204, 204, 198, 204, 204, 0, 45, 204, +- 47, 50, 60, 74, 204, 204, 178, 28, 204, 204, +- 204, 204, 64, 158, 204, 204, 183, 0, 204, 63, +- 0, 204, 83, 195, 193, 204, 0, 88, 102, 98, +- 62, 204, 190, 104, 119, 162, 0, 67, 65, 121, +- 127, 124, 204, 0, 204, 0, 204, 204, 204, 204, +- 204, 0, 204, 204, 108, 117, 122, 134, 132, 136, +- 204, 139, 136, 116, 126, 0, 140, 142, 135, 130, +- 0, 102, 204, 204, 0, 85, 72, 63, 98, 158, +- +- 204, 204, 169, 173, 177, 181, 183, 187, 191, 89, +- 66, 63 ++ 0, 47, 47, 48, 46, 47, 48, 49, 50, 53, ++ 223, 224, 220, 224, 224, 224, 218, 224, 224, 0, ++ 46, 224, 49, 54, 62, 76, 224, 224, 198, 33, ++ 224, 224, 224, 224, 70, 178, 224, 224, 203, 0, ++ 224, 64, 0, 224, 61, 0, 224, 65, 215, 213, ++ 224, 0, 89, 100, 94, 109, 224, 212, 113, 125, ++ 187, 0, 70, 88, 100, 172, 169, 224, 0, 224, ++ 0, 224, 224, 224, 224, 224, 0, 224, 224, 0, ++ 224, 224, 58, 115, 127, 137, 129, 139, 224, 184, ++ 181, 123, 172, 0, 141, 143, 181, 125, 0, 165, ++ ++ 224, 224, 0, 160, 167, 165, 133, 159, 163, 224, ++ 156, 149, 166, 161, 224, 224, 169, 173, 177, 181, ++ 185, 187, 191, 195, 199, 136, 119, 81 + } ; + +-static yyconst flex_int16_t yy_def[113] = ++static yyconst flex_int16_t yy_def[129] = + { 0, +- 102, 1, 103, 103, 104, 104, 105, 105, 102, 102, +- 102, 102, 102, 102, 106, 102, 102, 107, 102, 102, +- 102, 102, 102, 102, 102, 102, 107, 107, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 108, 102, 102, +- 109, 102, 102, 102, 106, 102, 107, 102, 102, 102, +- 102, 102, 106, 102, 102, 102, 110, 107, 107, 102, +- 102, 102, 102, 108, 102, 111, 102, 102, 102, 102, +- 102, 109, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 110, 107, 107, 102, 112, 102, 102, 102, 107, +- 107, 102, 102, 102, 107, 102, 102, 102, 102, 102, +- +- 102, 0, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102 ++ 116, 1, 117, 117, 118, 118, 119, 119, 120, 120, ++ 116, 116, 116, 116, 116, 116, 121, 116, 116, 122, ++ 116, 116, 116, 116, 116, 116, 116, 116, 122, 122, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 123, ++ 116, 116, 124, 116, 116, 125, 116, 116, 116, 121, ++ 116, 122, 116, 116, 116, 116, 116, 121, 116, 116, ++ 116, 126, 122, 122, 116, 116, 116, 116, 123, 116, ++ 127, 116, 116, 116, 116, 116, 124, 116, 116, 125, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 126, ++ 122, 122, 116, 128, 116, 116, 116, 122, 122, 116, ++ ++ 116, 116, 122, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 0, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116 + } ; + +-static yyconst flex_int16_t yy_nxt[253] = ++static yyconst flex_int16_t yy_nxt[273] = + { 0, +- 10, 11, 12, 13, 13, 14, 15, 16, 17, 18, +- 19, 20, 19, 21, 22, 23, 24, 25, 26, 25, +- 10, 18, 18, 18, 27, 18, 18, 18, 18, 28, +- 18, 18, 29, 10, 30, 10, 18, 18, 18, 27, +- 18, 18, 18, 18, 28, 18, 31, 32, 33, 36, +- 36, 39, 39, 42, 42, 59, 37, 37, 48, 52, +- 49, 49, 50, 50, 53, 60, 93, 34, 65, 86, +- 51, 59, 75, 54, 75, 49, 49, 76, 76, 40, +- 40, 43, 43, 55, 61, 51, 56, 54, 73, 49, +- 49, 57, 82, 83, 66, 84, 67, 55, 55, 100, +- +- 56, 99, 68, 50, 50, 69, 70, 71, 83, 98, +- 84, 51, 55, 50, 50, 54, 74, 49, 49, 77, +- 77, 51, 60, 76, 76, 55, 51, 78, 56, 79, +- 97, 79, 76, 76, 80, 80, 51, 77, 77, 91, +- 55, 61, 78, 96, 87, 78, 87, 80, 80, 88, +- 88, 80, 80, 95, 91, 88, 88, 88, 88, 100, +- 78, 94, 92, 101, 90, 89, 85, 62, 95, 35, +- 35, 35, 35, 38, 38, 38, 38, 41, 41, 41, +- 41, 45, 45, 45, 45, 47, 47, 64, 81, 64, +- 64, 72, 46, 72, 72, 46, 44, 63, 62, 58, +- +- 46, 44, 102, 9, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102 ++ 12, 13, 14, 15, 15, 16, 17, 18, 19, 20, ++ 21, 22, 21, 23, 24, 25, 26, 27, 28, 27, ++ 12, 20, 20, 20, 29, 20, 20, 20, 20, 30, ++ 20, 20, 31, 12, 32, 12, 20, 20, 20, 29, ++ 20, 20, 20, 20, 30, 20, 33, 34, 35, 38, ++ 38, 41, 41, 44, 44, 47, 39, 39, 47, 53, ++ 64, 54, 54, 57, 55, 55, 78, 36, 58, 70, ++ 81, 65, 56, 84, 84, 59, 64, 54, 54, 42, ++ 42, 45, 45, 48, 101, 60, 48, 56, 61, 59, ++ 66, 54, 54, 62, 79, 71, 91, 72, 82, 60, ++ ++ 60, 65, 61, 73, 55, 55, 74, 75, 76, 55, ++ 55, 91, 56, 59, 60, 54, 54, 56, 92, 83, ++ 66, 83, 94, 60, 84, 84, 61, 56, 85, 85, ++ 84, 84, 56, 92, 108, 87, 86, 87, 60, 90, ++ 88, 88, 85, 85, 88, 88, 99, 95, 103, 95, ++ 86, 86, 96, 96, 88, 88, 96, 96, 96, 96, ++ 108, 99, 114, 103, 110, 86, 115, 114, 109, 37, ++ 37, 37, 37, 40, 40, 40, 40, 43, 43, 43, ++ 43, 46, 46, 46, 46, 50, 50, 50, 50, 52, ++ 52, 69, 113, 69, 69, 77, 112, 77, 77, 80, ++ ++ 111, 80, 80, 107, 106, 105, 104, 102, 100, 98, ++ 97, 93, 67, 89, 51, 51, 49, 68, 67, 63, ++ 51, 49, 116, 11, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116 + } ; + +-static yyconst flex_int16_t yy_chk[253] = ++static yyconst flex_int16_t yy_chk[273] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, +- 4, 5, 6, 7, 8, 28, 3, 4, 19, 22, +- 19, 19, 21, 21, 22, 33, 112, 2, 40, 111, +- 21, 28, 51, 23, 51, 23, 23, 51, 51, 5, +- 6, 7, 8, 23, 33, 21, 23, 24, 43, 24, +- 24, 23, 110, 58, 40, 59, 40, 24, 23, 99, +- +- 24, 98, 40, 48, 48, 40, 40, 40, 58, 97, +- 59, 48, 24, 50, 50, 49, 43, 49, 49, 54, +- 54, 50, 60, 75, 75, 49, 48, 54, 49, 55, +- 96, 55, 76, 76, 55, 55, 50, 77, 77, 84, +- 49, 60, 54, 92, 78, 77, 78, 79, 79, 78, +- 78, 80, 80, 90, 84, 87, 87, 88, 88, 100, +- 77, 89, 85, 100, 83, 82, 62, 61, 90, 103, +- 103, 103, 103, 104, 104, 104, 104, 105, 105, 105, +- 105, 106, 106, 106, 106, 107, 107, 108, 56, 108, +- 108, 109, 53, 109, 109, 45, 44, 37, 34, 27, +- +- 15, 11, 9, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, +- 102, 102 ++ 4, 5, 6, 7, 8, 9, 3, 4, 10, 21, ++ 30, 21, 21, 24, 23, 23, 45, 2, 24, 42, ++ 48, 35, 23, 83, 83, 25, 30, 25, 25, 5, ++ 6, 7, 8, 9, 128, 25, 10, 23, 25, 26, ++ 35, 26, 26, 25, 45, 42, 63, 42, 48, 26, ++ ++ 25, 65, 26, 42, 53, 53, 42, 42, 42, 55, ++ 55, 63, 53, 54, 26, 54, 54, 55, 64, 56, ++ 65, 56, 127, 54, 56, 56, 54, 53, 59, 59, ++ 84, 84, 55, 64, 107, 60, 59, 60, 54, 126, ++ 60, 60, 85, 85, 87, 87, 92, 86, 98, 86, ++ 85, 59, 86, 86, 88, 88, 95, 95, 96, 96, ++ 108, 92, 114, 98, 108, 85, 114, 113, 107, 117, ++ 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, ++ 119, 120, 120, 120, 120, 121, 121, 121, 121, 122, ++ 122, 123, 112, 123, 123, 124, 111, 124, 124, 125, ++ ++ 109, 125, 125, 106, 105, 104, 100, 97, 93, 91, ++ 90, 67, 66, 61, 58, 50, 49, 39, 36, 29, ++ 17, 13, 11, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, ++ 116, 116 + } ; + + /* Table of booleans, true if rule could match eol. */ +-static yyconst flex_int32_t yy_rule_can_match_eol[43] = ++static yyconst flex_int32_t yy_rule_can_match_eol[48] = + { 0, + 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, +- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +- 0, 0, 0, }; ++ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, }; + + /* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. +@@ -550,7 +558,7 @@ static yyconst flex_int32_t yy_rule_can_match_eol[43] = + /* -*- mode: C -*- */ + /* -------------------------------------------------------------------------- + libconfig - A library for processing structured configuration files +- Copyright (C) 2005-2014 Mark A Lindner ++ Copyright (C) 2005-2015 Mark A Lindner + + This file is part of libconfig. + +@@ -577,9 +585,11 @@ static yyconst flex_int32_t yy_rule_can_match_eol[43] = + #endif + + #include <stdlib.h> ++#include <errno.h> + #include <ctype.h> + #include <string.h> + #include <limits.h> ++#include <dirent.h> + #include "parsectx.h" + #include "scanctx.h" + #include "grammar.h" +@@ -621,13 +631,30 @@ static unsigned long long fromhex(const char *s) + #endif /* __MINGW32__ */ + } + ++static int filter_dotfiles(const struct dirent *de) ++{ ++ const char *fname = de->d_name; ++ ++#ifdef _DIRENT_HAVE_D_TYPE ++ /* filter out non-files and non-symlinks */ ++ if((de->d_type != DT_REG) && (de->d_type != DT_LNK) && (de->d_type != DT_UNKNOWN)) ++ return 0; ++#endif ++ ++ return (fname /* != NULL */ ++ && ('\0' != fname[0]) /* can't really happen */ ++ && ('.' != fname[0]) ++ ) ? 1 : 0 ; ++} + +-#line 626 "scanner.c" ++ ++#line 652 "scanner.c" + + #define INITIAL 0 + #define COMMENT 1 + #define STRING 2 +-#define INCLUDE 3 ++#define INCLUDE_F 3 ++#define INCLUDE_D 4 + + #ifndef YY_NO_UNISTD_H + /* Special case for "unistd.h", since it is non-ANSI. We include it way +@@ -652,8 +679,8 @@ struct yyguts_t + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; +- yy_size_t yy_n_chars; +- yy_size_t yyleng_r; ++ int yy_n_chars; ++ int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; +@@ -706,7 +733,7 @@ FILE *libconfig_yyget_out (yyscan_t yyscanner ); + + void libconfig_yyset_out (FILE * out_str ,yyscan_t yyscanner ); + +-yy_size_t libconfig_yyget_leng (yyscan_t yyscanner ); ++int libconfig_yyget_leng (yyscan_t yyscanner ); + + char *libconfig_yyget_text (yyscan_t yyscanner ); + +@@ -714,10 +741,6 @@ int libconfig_yyget_lineno (yyscan_t yyscanner ); + + void libconfig_yyset_lineno (int line_number ,yyscan_t yyscanner ); + +-int libconfig_yyget_column (yyscan_t yyscanner ); +- +-void libconfig_yyset_column (int column_no ,yyscan_t yyscanner ); +- + YYSTYPE * libconfig_yyget_lval (yyscan_t yyscanner ); + + void libconfig_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner ); +@@ -754,7 +777,12 @@ static int input (yyscan_t yyscanner ); + + /* Amount of stuff to slurp up with each read. */ + #ifndef YY_READ_BUF_SIZE ++#ifdef __ia64__ ++/* On IA-64, the buffer size is 16k, not 8k */ ++#define YY_READ_BUF_SIZE 16384 ++#else + #define YY_READ_BUF_SIZE 8192 ++#endif /* __ia64__ */ + #endif + + /* Copy whatever the last rule matched to the standard output. */ +@@ -861,6 +889,11 @@ YY_DECL + register int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + ++#line 121 "scanner.l" ++ ++ ++#line 896 "scanner.c" ++ + yylval = yylval_param; + + if ( !yyg->yy_init ) +@@ -889,12 +922,6 @@ YY_DECL + libconfig_yy_load_buffer_state(yyscanner ); + } + +- { +-#line 102 "scanner.l" +- +- +-#line 897 "scanner.c" +- + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; +@@ -912,7 +939,7 @@ YY_DECL + yy_match: + do + { +- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; ++ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; +@@ -921,13 +948,13 @@ yy_match: + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 103 ) ++ if ( yy_current_state >= 117 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } +- while ( yy_current_state != 102 ); ++ while ( yy_current_state != 116 ); + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + +@@ -938,7 +965,7 @@ yy_find_action: + + if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) + { +- yy_size_t yyl; ++ int yyl; + for ( yyl = 0; yyl < yyleng; ++yyl ) + if ( yytext[yyl] == '\n' ) + +@@ -961,69 +988,69 @@ do_action: /* This label is used only to access EOF actions. */ + + case 1: + YY_RULE_SETUP +-#line 104 "scanner.l" ++#line 123 "scanner.l" + { BEGIN COMMENT; } + YY_BREAK + case 2: + YY_RULE_SETUP +-#line 105 "scanner.l" ++#line 124 "scanner.l" + { BEGIN INITIAL; } + YY_BREAK + case 3: + YY_RULE_SETUP +-#line 106 "scanner.l" ++#line 125 "scanner.l" + { /* ignore */ } + YY_BREAK + case 4: + /* rule 4 can match eol */ + YY_RULE_SETUP +-#line 107 "scanner.l" ++#line 126 "scanner.l" + { /* ignore */ } + YY_BREAK + case 5: + YY_RULE_SETUP +-#line 109 "scanner.l" ++#line 128 "scanner.l" + { BEGIN STRING; } + YY_BREAK + case 6: + /* rule 6 can match eol */ + YY_RULE_SETUP +-#line 110 "scanner.l" ++#line 129 "scanner.l" + { scanctx_append_string(yyextra, yytext); } + YY_BREAK + case 7: + YY_RULE_SETUP +-#line 111 "scanner.l" ++#line 130 "scanner.l" + { scanctx_append_string(yyextra, "\n"); } + YY_BREAK + case 8: + YY_RULE_SETUP +-#line 112 "scanner.l" ++#line 131 "scanner.l" + { scanctx_append_string(yyextra, "\r"); } + YY_BREAK + case 9: + YY_RULE_SETUP +-#line 113 "scanner.l" ++#line 132 "scanner.l" + { scanctx_append_string(yyextra, "\t"); } + YY_BREAK + case 10: + YY_RULE_SETUP +-#line 114 "scanner.l" ++#line 133 "scanner.l" + { scanctx_append_string(yyextra, "\f"); } + YY_BREAK + case 11: + YY_RULE_SETUP +-#line 115 "scanner.l" ++#line 134 "scanner.l" + { scanctx_append_string(yyextra, "\\"); } + YY_BREAK + case 12: + YY_RULE_SETUP +-#line 116 "scanner.l" ++#line 135 "scanner.l" + { scanctx_append_string(yyextra, "\""); } + YY_BREAK + case 13: + YY_RULE_SETUP +-#line 117 "scanner.l" ++#line 136 "scanner.l" + { + char c[2] = { (char)(strtol(yytext + 2, NULL, 16) & 0xFF), + 0 }; +@@ -1032,12 +1059,12 @@ YY_RULE_SETUP + YY_BREAK + case 14: + YY_RULE_SETUP +-#line 122 "scanner.l" ++#line 141 "scanner.l" + { scanctx_append_string(yyextra, "\\"); } + YY_BREAK + case 15: + YY_RULE_SETUP +-#line 123 "scanner.l" ++#line 142 "scanner.l" + { + yylval->sval = scanctx_take_string(yyextra); + BEGIN INITIAL; +@@ -1046,198 +1073,304 @@ YY_RULE_SETUP + YY_BREAK + case 16: + YY_RULE_SETUP +-#line 129 "scanner.l" +-{ BEGIN INCLUDE; } ++#line 148 "scanner.l" ++{ BEGIN INCLUDE_F; } + YY_BREAK + case 17: + /* rule 17 can match eol */ + YY_RULE_SETUP +-#line 130 "scanner.l" ++#line 149 "scanner.l" + { scanctx_append_string(yyextra, yytext); } + YY_BREAK + case 18: + YY_RULE_SETUP +-#line 131 "scanner.l" ++#line 150 "scanner.l" + { scanctx_append_string(yyextra, "\\"); } + YY_BREAK + case 19: + YY_RULE_SETUP +-#line 132 "scanner.l" ++#line 151 "scanner.l" + { scanctx_append_string(yyextra, "\""); } + YY_BREAK + case 20: + YY_RULE_SETUP +-#line 133 "scanner.l" ++#line 152 "scanner.l" + { +- const char *error; +- FILE *fp = scanctx_push_include(yyextra, +- (void *)YY_CURRENT_BUFFER, +- &error); +- if(fp) +- { +- yyin = fp; +- libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner); +- } +- else +- { +- yyextra->config->error_text = error; +- yyextra->config->error_file = scanctx_current_filename( +- yyextra); +- yyextra->config->error_line = libconfig_yyget_lineno( +- yyscanner); +- return TOK_ERROR; +- } +- BEGIN INITIAL; +- } ++ const char *error; ++ FILE *fp = scanctx_push_include(yyextra, ++ (void *)YY_CURRENT_BUFFER, ++ scanctx_getpath(yyextra), ++ &error); ++ if(fp) ++ { ++ yyin = fp; ++ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner ++ ); ++ } ++ else ++ { ++ yyextra->config->error_text = error; ++ yyextra->config->error_file = scanctx_current_filename( ++ yyextra); ++ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner); ++ return TOK_ERROR; ++ } ++ BEGIN INITIAL; ++ } + YY_BREAK + case 21: +-/* rule 21 can match eol */ + YY_RULE_SETUP +-#line 157 "scanner.l" +-{ /* ignore */ } ++#line 177 "scanner.l" ++{ BEGIN INCLUDE_D; } + YY_BREAK + case 22: ++/* rule 22 can match eol */ + YY_RULE_SETUP +-#line 158 "scanner.l" +-{ /* ignore */ } ++#line 178 "scanner.l" ++{ scanctx_append_string(yyextra, yytext); } + YY_BREAK + case 23: + YY_RULE_SETUP +-#line 160 "scanner.l" +-{ return(TOK_EQUALS); } ++#line 179 "scanner.l" ++{ scanctx_append_string(yyextra, "\\"); } + YY_BREAK + case 24: + YY_RULE_SETUP +-#line 161 "scanner.l" +-{ return(TOK_COMMA); } ++#line 180 "scanner.l" ++{ scanctx_append_string(yyextra, "\""); } + YY_BREAK + case 25: + YY_RULE_SETUP +-#line 162 "scanner.l" +-{ return(TOK_GROUP_START); } ++#line 181 "scanner.l" ++{ ++ const char *error; ++ const char* basedir; ++ FILE *fp = NULL; ++ ++ basedir = scanctx_getpath(yyextra); ++ if(scanctx_dirscan(yyextra, basedir, filter_dotfiles, NULL) < 0) ++ { ++ if(basedir) ++ free((void*)basedir); ++ return TOK_ERROR; ++ } ++ ++ if(scanctx_inloop(yyextra)) ++ { ++ fp = scanctx_push_include(yyextra, ++ (void *)YY_CURRENT_BUFFER, ++ scanctx_filename(yyextra, NULL, scanctx_dirnext(yyextra)), ++ &error ++ ); ++ ++ if(fp) ++ { ++ yyin = fp; ++ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner ++ ); ++ } ++ else ++ { ++ yyextra->config->error_text = error; ++ yyextra->config->error_file = scanctx_current_filename(yyextra); ++ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner); ++ } ++ } ++ else ++ scanctx_dirend(yyextra); /* avoid leaks */ ++ ++ BEGIN INITIAL; ++ } + YY_BREAK + case 26: ++/* rule 26 can match eol */ + YY_RULE_SETUP +-#line 163 "scanner.l" +-{ return(TOK_GROUP_END); } ++#line 223 "scanner.l" ++{ /* ignore */ } + YY_BREAK + case 27: + YY_RULE_SETUP +-#line 164 "scanner.l" +-{ yylval->ival = 1; return(TOK_BOOLEAN); } ++#line 224 "scanner.l" ++{ /* ignore */ } + YY_BREAK + case 28: + YY_RULE_SETUP +-#line 165 "scanner.l" +-{ yylval->ival = 0; return(TOK_BOOLEAN); } ++#line 226 "scanner.l" ++{ return(TOK_EQUALS); } + YY_BREAK + case 29: + YY_RULE_SETUP +-#line 166 "scanner.l" +-{ yylval->sval = yytext; return(TOK_NAME); } ++#line 227 "scanner.l" ++{ return(TOK_COMMA); } + YY_BREAK + case 30: + YY_RULE_SETUP +-#line 167 "scanner.l" +-{ yylval->fval = atof(yytext); return(TOK_FLOAT); } ++#line 228 "scanner.l" ++{ return(TOK_GROUP_START); } + YY_BREAK + case 31: + YY_RULE_SETUP +-#line 168 "scanner.l" ++#line 229 "scanner.l" ++{ return(TOK_GROUP_END); } ++ YY_BREAK ++case 32: ++YY_RULE_SETUP ++#line 230 "scanner.l" ++{ yylval->ival = 1; return(TOK_BOOLEAN); } ++ YY_BREAK ++case 33: ++YY_RULE_SETUP ++#line 231 "scanner.l" ++{ yylval->ival = 0; return(TOK_BOOLEAN); } ++ YY_BREAK ++case 34: ++YY_RULE_SETUP ++#line 232 "scanner.l" ++{ yylval->sval = yytext; return(TOK_NAME); } ++ YY_BREAK ++case 35: ++YY_RULE_SETUP ++#line 233 "scanner.l" ++{ yylval->fval = atof(yytext); return(TOK_FLOAT); } ++ YY_BREAK ++case 36: ++YY_RULE_SETUP ++#line 234 "scanner.l" + { + long long llval; +- llval = atoll(yytext); ++ char *endptr; ++ int errsave = errno; ++ errno = 0; ++ llval = strtoll(yytext, &endptr, 0); /* base 10 or base 8 */ ++ if(*endptr || errno) ++ { ++ errno = 0; ++ return(TOK_ERROR); /* some error occured ... */ ++ } ++ errno = errsave; ++ if((*yytext == '0') && (*(yytext+1) != '\0')) ++ { /* it's octal... so INT we go */ ++ yylval->ival = (int)(llval); ++ return(TOK_INTEGER); ++ } ++ + if((llval < INT_MIN) || (llval > INT_MAX)) + { +- yylval->llval = llval; +- return(TOK_INTEGER64); ++ yylval->llval = llval; ++ return(TOK_INTEGER64); + } + else + { +- yylval->ival = llval; +- return(TOK_INTEGER); ++ yylval->ival = llval; ++ return(TOK_INTEGER); + } + } + YY_BREAK +-case 32: ++case 37: + YY_RULE_SETUP +-#line 182 "scanner.l" ++#line 263 "scanner.l" + { yylval->llval = atoll(yytext); return(TOK_INTEGER64); } + YY_BREAK +-case 33: ++case 38: + YY_RULE_SETUP +-#line 183 "scanner.l" ++#line 264 "scanner.l" + { + yylval->ival = strtoul(yytext, NULL, 16); + return(TOK_HEX); + } + YY_BREAK +-case 34: ++case 39: + YY_RULE_SETUP +-#line 187 "scanner.l" ++#line 268 "scanner.l" + { yylval->llval = fromhex(yytext); return(TOK_HEX64); } + YY_BREAK +-case 35: ++case 40: + YY_RULE_SETUP +-#line 188 "scanner.l" ++#line 269 "scanner.l" + { return(TOK_ARRAY_START); } + YY_BREAK +-case 36: ++case 41: + YY_RULE_SETUP +-#line 189 "scanner.l" ++#line 270 "scanner.l" + { return(TOK_ARRAY_END); } + YY_BREAK +-case 37: ++case 42: + YY_RULE_SETUP +-#line 190 "scanner.l" ++#line 271 "scanner.l" + { return(TOK_LIST_START); } + YY_BREAK +-case 38: ++case 43: + YY_RULE_SETUP +-#line 191 "scanner.l" ++#line 272 "scanner.l" + { return(TOK_LIST_END); } + YY_BREAK +-case 39: ++case 44: + YY_RULE_SETUP +-#line 192 "scanner.l" ++#line 273 "scanner.l" + { return(TOK_SEMICOLON); } + YY_BREAK +-case 40: ++case 45: + *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */ + yyg->yy_c_buf_p = yy_cp -= 1; + YY_DO_BEFORE_ACTION; /* set up yytext again */ + YY_RULE_SETUP +-#line 193 "scanner.l" ++#line 274 "scanner.l" + { /* ignore */ } + YY_BREAK +-case 41: ++case 46: + YY_RULE_SETUP +-#line 194 "scanner.l" ++#line 275 "scanner.l" + { return(TOK_GARBAGE); } + YY_BREAK + case YY_STATE_EOF(INITIAL): + case YY_STATE_EOF(COMMENT): + case YY_STATE_EOF(STRING): +-case YY_STATE_EOF(INCLUDE): +-#line 196 "scanner.l" ++case YY_STATE_EOF(INCLUDE_F): ++case YY_STATE_EOF(INCLUDE_D): ++#line 277 "scanner.l" + { +- YY_BUFFER_STATE buf = (YY_BUFFER_STATE)scanctx_pop_include( +- yyextra); +- if(buf) +- { +- libconfig_yy_delete_buffer(YY_CURRENT_BUFFER,yyscanner); +- libconfig_yy_switch_to_buffer(buf,yyscanner); +- } +- else +- yyterminate(); +- } ++ const char* error; ++ FILE *fp; ++ YY_BUFFER_STATE buf = (YY_BUFFER_STATE)scanctx_pop_include(yyextra); ++ if(buf) ++ { ++ libconfig_yy_delete_buffer(YY_CURRENT_BUFFER,yyscanner); ++ libconfig_yy_switch_to_buffer(buf,yyscanner); ++ } ++ else /* if no more buffers, we are done */ ++ yyterminate(); ++ ++ if(scanctx_inloop(yyextra)) ++ { ++ /* gotta keep looping.... */ ++ fp = scanctx_push_include(yyextra, ++ (void *)YY_CURRENT_BUFFER, ++ scanctx_filename(yyextra, NULL, scanctx_dirnext(yyextra)), ++ &error ++ ); ++ if(fp) ++ { ++ yyin = fp; ++ libconfig_yy_switch_to_buffer(libconfig_yy_create_buffer(yyin,YY_BUF_SIZE,yyscanner),yyscanner ++ ); ++ } ++ else ++ { ++ yyextra->config->error_text = error; ++ yyextra->config->error_file = scanctx_current_filename(yyextra); ++ yyextra->config->error_line = libconfig_yyget_lineno(yyscanner); ++ } ++ } ++ else /* not on loop, or just finished */ ++ scanctx_dirend(yyextra); ++ } + YY_BREAK +-case 42: ++case 47: + YY_RULE_SETUP +-#line 207 "scanner.l" ++#line 315 "scanner.l" + ECHO; + YY_BREAK +-#line 1241 "scanner.c" ++#line 1374 "scanner.c" + + case YY_END_OF_BUFFER: + { +@@ -1367,7 +1500,6 @@ ECHO; + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +- } /* end of user's declarations */ + } /* end of libconfig_yylex */ + + /* yy_get_next_buffer - try to read in a new buffer +@@ -1424,21 +1556,21 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + + else + { +- yy_size_t num_to_read = ++ int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ +- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; ++ YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { +- yy_size_t new_size = b->yy_buf_size * 2; ++ int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; +@@ -1469,7 +1601,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), +- yyg->yy_n_chars, num_to_read ); ++ yyg->yy_n_chars, (size_t) num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } +@@ -1532,7 +1664,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 103 ) ++ if ( yy_current_state >= 117 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; +@@ -1561,13 +1693,12 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; +- if ( yy_current_state >= 103 ) ++ if ( yy_current_state >= 117 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; +- yy_is_jam = (yy_current_state == 102); ++ yy_is_jam = (yy_current_state == 116); + +- (void)yyg; + return yy_is_jam ? 0 : yy_current_state; + } + +@@ -1596,7 +1727,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) + + else + { /* need more input */ +- yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++ int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) +@@ -1884,7 +2015,7 @@ void libconfig_yypop_buffer_state (yyscan_t yyscanner) + */ + static void libconfig_yyensure_buffer_stack (yyscan_t yyscanner) + { +- yy_size_t num_to_alloc; ++ int num_to_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { +@@ -1982,12 +2113,12 @@ YY_BUFFER_STATE libconfig_yy_scan_string (yyconst char * yystr , yyscan_t yyscan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +-YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) ++YY_BUFFER_STATE libconfig_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) + { + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; +- yy_size_t i; ++ int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; +@@ -2097,7 +2228,7 @@ FILE *libconfig_yyget_out (yyscan_t yyscanner) + /** Get the length of the current token. + * @param yyscanner The scanner object. + */ +-yy_size_t libconfig_yyget_leng (yyscan_t yyscanner) ++int libconfig_yyget_leng (yyscan_t yyscanner) + { + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +@@ -2133,7 +2264,7 @@ void libconfig_yyset_lineno (int line_number , yyscan_t yyscanner) + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) +- YY_FATAL_ERROR( "libconfig_yyset_lineno called with no buffer" ); ++ yy_fatal_error( "libconfig_yyset_lineno called with no buffer" , yyscanner); + + yylineno = line_number; + } +@@ -2148,7 +2279,7 @@ void libconfig_yyset_column (int column_no , yyscan_t yyscanner) + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) +- YY_FATAL_ERROR( "libconfig_yyset_column called with no buffer" ); ++ yy_fatal_error( "libconfig_yyset_column called with no buffer" , yyscanner); + + yycolumn = column_no; + } +@@ -2372,4 +2503,4 @@ void libconfig_yyfree (void * ptr , yyscan_t yyscanner) + + #define YYTABLES_NAME "yytables" + +-#line 207 "scanner.l" ++#line 315 "scanner.l" |
