aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvy Snow <ivy@sgri.net>2017-12-26 12:43:00 +0800
committerIvy Snow <ivy@sgri.net>2017-12-26 12:43:00 +0800
commitc8cddb849a658156fbeeee42044f670da5c648a1 (patch)
treefa5ae480070a9cc2c36cc9f31de1d20bbd5f391a
parent544e99310d9f183b4add85c360de2df65ba64598 (diff)
downloadvcpkg-c8cddb849a658156fbeeee42044f670da5c648a1.tar.gz
vcpkg-c8cddb849a658156fbeeee42044f670da5c648a1.zip
[libconfig] update to 1.7.1
-rw-r--r--ports/libconfig/CMakeLists.txt9
-rw-r--r--ports/libconfig/CONTROL3
-rw-r--r--ports/libconfig/fix-scanner-header-msvc-patch.patch108
-rw-r--r--ports/libconfig/fix-scanner-source-msvc-patch.patch1122
-rw-r--r--ports/libconfig/portfile.cmake12
-rw-r--r--ports/libconfig/scandir.c112
6 files changed, 8 insertions, 1358 deletions
diff --git a/ports/libconfig/CMakeLists.txt b/ports/libconfig/CMakeLists.txt
index 8762917ef..fe70cb9dd 100644
--- a/ports/libconfig/CMakeLists.txt
+++ b/ports/libconfig/CMakeLists.txt
@@ -3,26 +3,26 @@ project(libconfig C CXX)
if(MSVC)
add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS)
- add_definitions(-Dscandir=libconfig_scandir)
endif()
set(C_SOURCES
lib/grammar.c
lib/libconfig.c
lib/scanctx.c
- lib/win32/scandir.c
lib/scanner.c
lib/strbuf.c
+ lib/strvec.c
+ lib/util.c
+ lib/wincompat.c
)
set(CPP_SOURCES
lib/libconfigcpp.cc
)
-find_path(DIRENT_H dirent.h)
find_path(STDINT_H stdint.h)
-include_directories(lib ${DIRENT_H} ${STDINT_H})
+include_directories(lib ${STDINT_H})
add_definitions(-DYY_NO_UNISTD_H -DYY_USE_CONST)
@@ -37,6 +37,7 @@ else()
target_compile_definitions(libconfig++ PUBLIC -DLIBCONFIGXX_STATIC)
endif()
+target_link_libraries(libconfig shlwapi)
target_link_libraries(libconfig++ PRIVATE libconfig)
install(
diff --git a/ports/libconfig/CONTROL b/ports/libconfig/CONTROL
index cd0469369..d8d00ddd4 100644
--- a/ports/libconfig/CONTROL
+++ b/ports/libconfig/CONTROL
@@ -1,4 +1,3 @@
Source: libconfig
-Version: 1.6.0-1
+Version: 1.7.1
Description: C/C++ library for processing configuration files
-Build-Depends: dirent
diff --git a/ports/libconfig/fix-scanner-header-msvc-patch.patch b/ports/libconfig/fix-scanner-header-msvc-patch.patch
deleted file mode 100644
index c2e13c2ff..000000000
--- a/ports/libconfig/fix-scanner-header-msvc-patch.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-diff --git a/lib/scanner.h b/lib/scanner.h
-index cdca3bb..1fc0509 100644
---- a/lib/scanner.h
-+++ b/lib/scanner.h
-@@ -13,7 +13,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
-@@ -132,7 +132,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
-
- #ifndef YY_TYPEDEF_YY_BUFFER_STATE
-@@ -162,7 +170,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
-@@ -206,13 +214,13 @@ void libconfig_yypop_buffer_state (yyscan_t yyscanner );
-
- 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 );
- void libconfig_yyfree (void * ,yyscan_t yyscanner );
-
--#define libconfig_yywrap(yyscanner) 1
-+#define libconfig_yywrap(n) 1
- #define YY_SKIP_YYWRAP
-
- #define yytext_ptr yytext_r
-@@ -221,7 +229,8 @@ void libconfig_yyfree (void * ,yyscan_t yyscanner );
- #define INITIAL 0
- #define COMMENT 1
- #define STRING 2
--#define INCLUDE 3
-+#define INCLUDE_F 3
-+#define INCLUDE_D 4
-
- #endif
-
-@@ -260,7 +269,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 );
-
-@@ -268,10 +277,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 );
-@@ -302,7 +307,12 @@ static int yy_flex_strlen (yyconst char * ,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
-
- /* Number of entries by which start-condition stack grows. */
-@@ -337,8 +347,8 @@ extern int libconfig_yylex \
- #undef YY_DECL
- #endif
-
--#line 207 "scanner.l"
-+#line 315 "scanner.l"
-
--#line 343 "scanner.h"
-+#line 353 "scanner.h"
- #undef libconfig_yyIN_HEADER
- #endif /* libconfig_yyHEADER_H */
diff --git a/ports/libconfig/fix-scanner-source-msvc-patch.patch b/ports/libconfig/fix-scanner-source-msvc-patch.patch
deleted file mode 100644
index e8f24e638..000000000
--- a/ports/libconfig/fix-scanner-source-msvc-patch.patch
+++ /dev/null
@@ -1,1122 +0,0 @@
-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"
diff --git a/ports/libconfig/portfile.cmake b/ports/libconfig/portfile.cmake
index 73028de7c..2862a8e95 100644
--- a/ports/libconfig/portfile.cmake
+++ b/ports/libconfig/portfile.cmake
@@ -3,20 +3,12 @@ include(vcpkg_common_functions)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO hyperrealm/libconfig
- REF v1.6
- SHA512 6222110851970fda11d21e73bc322be95fb1ce62c513e2f4cc7875d7b32d1d211860971692db679edf8ac46151033a132fc669bd16590fec56360ef3a6e584f8
+ REF v1.7.1
+ SHA512 b58b468e9e2d5175fbde1ad9765c6604dc9b3f3944613a88404a45d0d232e7d79a47321bf3c06b97cb46a2104b4313fad5c7f8944149f550b7af51ad523e775e
HEAD_REF master
)
-vcpkg_apply_patches(
- SOURCE_PATH ${SOURCE_PATH}
- PATCHES
- "${CMAKE_CURRENT_LIST_DIR}/fix-scanner-source-msvc-patch.patch"
- "${CMAKE_CURRENT_LIST_DIR}/fix-scanner-header-msvc-patch.patch"
-)
-
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/scandir.c DESTINATION ${SOURCE_PATH}/lib/win32)
vcpkg_configure_cmake(
diff --git a/ports/libconfig/scandir.c b/ports/libconfig/scandir.c
deleted file mode 100644
index cab75716e..000000000
--- a/ports/libconfig/scandir.c
+++ /dev/null
@@ -1,112 +0,0 @@
-// "$Id: scandir.c 1339 2006-04-03 22:47:29Z spitzak $"
-//
-// Copyright 1998-2006 by Bill Spitzak and others.
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA.
-//
-// Please report all bugs and problems to "fltk-bugs@fltk.org".
-
-// Emulation of posix scandir() call
-// This source file is #include'd by scandir.c
-// THIS IS A C FILE! DO NOT CHANGE TO C++!!!
-// See @http://www.fltk.org/strfiles/1779/scandir.c
-
-#include <string.h>
-#include <windows.h>
-#include <stdlib.h>
-#include <io.h>
-#include <dirent.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef FILENAME_MAX
-#define FILENAME_MAX 2048
-#endif
-
-/**
- * The scandir() function reads the directory dirname and builds an array of
- * pointers to directory entries. It returns the number of entries in the array.
- * A pointer to the array of directory entries is stored in the location
- * referenced by namelist.
- */
-int libconfig_scandir(const char *dirname, struct dirent ***namelist,
- int (*select)(struct dirent *),
- int (*compar)(struct dirent **, struct dirent **)) {
- char *d;
- WIN32_FIND_DATA find;
- HANDLE h;
- int nDir = 0, NDir = 0;
- struct dirent **dir = 0, *selectDir;
- unsigned long ret;
- char findIn[MAX_PATH*4];
-
- //utf8tomb(dirname, strlen(dirname), findIn, _MAX_PATH);
- strcpy(findIn, dirname);
-
- d = findIn+strlen(findIn);
- if (d==findIn) *d++ = '.';
- if (*(d-1)!='/' && *(d-1)!='\\') *d++ = '/';
- *d++ = '*';
- *d++ = 0;
-
- if ((h=FindFirstFile(findIn, &find))==INVALID_HANDLE_VALUE) {
- ret = GetLastError();
- if (ret != ERROR_NO_MORE_FILES) {
- // TODO: return some error code
- }
- *namelist = dir;
- return nDir;
- }
- do {
- selectDir=(struct dirent*)malloc(sizeof(struct dirent));
- strcpy(selectDir->d_name, find.cFileName);
- if (!select || (*select)(selectDir)) {
- if (nDir==NDir) {
- struct dirent **tempDir = (struct dirent **)calloc(sizeof(struct dirent*), NDir+33);
- if (NDir) memcpy(tempDir, dir, sizeof(struct dirent*)*NDir);
- if (dir) free(dir);
- dir = tempDir;
- NDir += 32;
- }
- dir[nDir] = selectDir;
- nDir++;
- dir[nDir] = 0;
- } else {
- free(selectDir);
- }
- } while (FindNextFile(h, &find));
- ret = GetLastError();
- if (ret != ERROR_NO_MORE_FILES) {
- // TODO: return some error code
- }
- FindClose(h);
-
- if (compar) qsort (dir, nDir, sizeof(*dir),
- (int(*)(const void*, const void*))compar);
-
- *namelist = dir;
- return nDir;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-//
-// End of "$Id: scandir.c 1339 2006-04-03 22:47:29Z spitzak $".
-//