From ec1e2b5df5f391b3af9f2a0f25d4e70a98ad44a3 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Mon, 14 Sep 2020 08:31:17 +0200 Subject: inih: remove unused code This avoids -fanalyzer false-positive in GCC 10: https://bugzilla.redhat.com/show_bug.cgi?id=1878600 as well as the cppcheck warning: "variableScope:lib/inih/ini.c:99,style,The scope of the variable 'start' can be reduced." Signed-off-by: Daiki Ueno --- lib/inih/ini.c | 72 ++++------------------------------------------------------ lib/inih/ini.h | 26 --------------------- 2 files changed, 4 insertions(+), 94 deletions(-) diff --git a/lib/inih/ini.c b/lib/inih/ini.c index 81df6a037f..0393625b71 100644 --- a/lib/inih/ini.c +++ b/lib/inih/ini.c @@ -24,12 +24,6 @@ https://github.com/benhoyt/inih #define MAX_SECTION 50 #define MAX_NAME 50 -/* Used by ini_parse_string() to keep track of string parsing state. */ -typedef struct { - const char* ptr; - size_t num_left; -} ini_parse_string_ctx; - /* Strip whitespace chars off end of given string, in place. Return s. */ static char* rstrip(char* s) { @@ -76,8 +70,7 @@ static char* strncpy0(char* dest, const char* src, size_t size) } /* See documentation in header file. */ -int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user) +int ini_parse_file(FILE* file, ini_handler handler, void* user) { /* Uses a fair bit of stack (use heap instead if you need to) */ #if INI_USE_STACK @@ -94,7 +87,6 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, char section[MAX_SECTION] = ""; char prev_name[MAX_NAME] = ""; - char* start; char* end; char* name; char* value; @@ -115,7 +107,8 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, #endif /* Scan through stream line by line */ - while (reader(line, max_line, stream) != NULL) { + while (fgets(line, max_line, file) != NULL) { + char* start; #if INI_ALLOW_REALLOC && !INI_USE_STACK offset = strlen(line); while (offset == max_line - 1 && line[offset - 1] != '\n') { @@ -128,7 +121,7 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, return -2; } line = new_line; - if (reader(line + offset, max_line - offset, stream) == NULL) + if (fgets(line + offset, max_line - offset, file) == NULL) break; if (max_line >= INI_MAX_LINE) break; @@ -210,60 +203,3 @@ int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, return error; } - -/* See documentation in header file. */ -int ini_parse_file(FILE* file, ini_handler handler, void* user) -{ - return ini_parse_stream((ini_reader)fgets, file, handler, user); -} - -/* See documentation in header file. */ -int ini_parse(const char* filename, ini_handler handler, void* user) -{ - FILE* file; - int error; - - file = fopen(filename, "r"); - if (!file) - return -1; - error = ini_parse_file(file, handler, user); - fclose(file); - return error; -} - -/* An ini_reader function to read the next line from a string buffer. This - is the fgets() equivalent used by ini_parse_string(). */ -static char* ini_reader_string(char* str, int num, void* stream) { - ini_parse_string_ctx* ctx = (ini_parse_string_ctx*)stream; - const char* ctx_ptr = ctx->ptr; - size_t ctx_num_left = ctx->num_left; - char* strp = str; - char c; - - if (ctx_num_left == 0 || num < 2) - return NULL; - - while (num > 1 && ctx_num_left != 0) { - c = *ctx_ptr++; - ctx_num_left--; - *strp++ = c; - if (c == '\n') - break; - num--; - } - - *strp = '\0'; - ctx->ptr = ctx_ptr; - ctx->num_left = ctx_num_left; - return str; -} - -/* See documentation in header file. */ -int ini_parse_string(const char* string, ini_handler handler, void* user) { - ini_parse_string_ctx ctx; - - ctx.ptr = string; - ctx.num_left = strlen(string); - return ini_parse_stream((ini_reader)ini_reader_string, &ctx, handler, - user); -} diff --git a/lib/inih/ini.h b/lib/inih/ini.h index 6c3d664d2e..a8fef27f85 100644 --- a/lib/inih/ini.h +++ b/lib/inih/ini.h @@ -36,36 +36,10 @@ typedef int (*ini_handler)(void* user, const char* section, /* Typedef for prototype of fgets-style reader function. */ typedef char* (*ini_reader)(char* str, int num, void* stream); -/* Parse given INI-style file. May have [section]s, name=value pairs - (whitespace stripped), and comments starting with ';' (semicolon). Section - is "" if name=value pair parsed before any section heading. name:value - pairs are also supported as a concession to Python's configparser. - - For each name=value pair parsed, call handler function with given user - pointer as well as section, name, and value (data only valid for duration - of handler call). Handler should return nonzero on success, zero on error. - - Returns 0 on success, line number of first error on parse error (doesn't - stop on first error), -1 on file open error, or -2 on memory allocation - error (only when INI_USE_STACK is zero). -*/ -int ini_parse(const char* filename, ini_handler handler, void* user); - /* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't close the file when it's finished -- the caller must do that. */ int ini_parse_file(FILE* file, ini_handler handler, void* user); -/* Same as ini_parse(), but takes an ini_reader function pointer instead of - filename. Used for implementing custom or string-based I/O (see also - ini_parse_string). */ -int ini_parse_stream(ini_reader reader, void* stream, ini_handler handler, - void* user); - -/* Same as ini_parse(), but takes a zero-terminated string with the INI data -instead of a file. Useful for parsing INI data from a network socket or -already in memory. */ -int ini_parse_string(const char* string, ini_handler handler, void* user); - /* Nonzero to allow multi-line value parsing, in the style of Python's configparser. If allowed, ini_parse() will call the handler with the same name for each subsequent line parsed. */ -- cgit v1.2.1