diff options
Diffstat (limited to 'curl/curl/tool_main.c')
-rw-r--r-- | curl/curl/tool_main.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/curl/curl/tool_main.c b/curl/curl/tool_main.c index 0eb4e6d..494ec02 100644 --- a/curl/curl/tool_main.c +++ b/curl/curl/tool_main.c @@ -29,19 +29,12 @@ #include <tchar.h> #endif -#ifdef HAVE_SIGNAL_H #include <signal.h> -#endif #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif -#ifdef USE_NSS -#include <nspr.h> -#include <plarenas.h> -#endif - #include <stdlib.h> /* setenv(), _putenv() */ #include <libca-certificates-curl/path.h> @@ -57,6 +50,7 @@ #include "tool_vms.h" #include "tool_main.h" #include "tool_libinfo.h" +#include "tool_stderr.h" /* * This is low-level hard-hacking memory leak tracking and similar. Using @@ -81,6 +75,7 @@ int vms_show = 0; * when command-line argument globbing is enabled under the MSYS shell, so turn * it off. */ +extern int _CRT_glob; int _CRT_glob = 0; #endif /* __MINGW32__ */ @@ -195,7 +190,6 @@ static CURLcode main_init(struct GlobalConfig *config) /* Initialise the global config */ config->showerror = FALSE; /* show errors when silent */ - config->errors = stderr; /* Default errors to stderr */ config->styled_output = TRUE; /* enable detection */ config->parallel_max = PARALLEL_DEFAULT; @@ -214,17 +208,17 @@ static CURLcode main_init(struct GlobalConfig *config) config->first->global = config; } else { - errorf(config, "error retrieving curl library information\n"); + errorf(config, "error retrieving curl library information"); free(config->first); } } else { - errorf(config, "error initializing curl library\n"); + errorf(config, "error initializing curl library"); free(config->first); } } else { - errorf(config, "error initializing curl\n"); + errorf(config, "error initializing curl"); result = CURLE_FAILED_INIT; } @@ -235,10 +229,6 @@ static void free_globalconfig(struct GlobalConfig *config) { Curl_safefree(config->trace_dump); - if(config->errors_fopened && config->errors) - fclose(config->errors); - config->errors = NULL; - if(config->trace_fopened && config->trace_stream) fclose(config->trace_stream); config->trace_stream = NULL; @@ -255,14 +245,6 @@ static void main_free(struct GlobalConfig *config) /* Cleanup the easy handle */ /* Main cleanup */ curl_global_cleanup(); -#ifdef USE_NSS - if(PR_Initialized()) { - /* prevent valgrind from reporting still reachable mem from NSPR arenas */ - PL_ArenaFinish(); - /* prevent valgrind from reporting possibly lost memory (fd cache, ...) */ - PR_Cleanup(); - } -#endif free_globalconfig(config); /* Free the config structures */ @@ -275,6 +257,11 @@ static void main_free(struct GlobalConfig *config) ** curl tool main function. */ #ifdef _UNICODE +#if defined(__GNUC__) +/* GCC doesn't know about wmain() */ +#pragma GCC diagnostic ignored "-Wmissing-prototypes" +#pragma GCC diagnostic ignored "-Wmissing-declarations" +#endif int wmain(int argc, wchar_t *argv[]) #else int main(int argc, char *argv[]) @@ -284,6 +271,8 @@ int main(int argc, char *argv[]) struct GlobalConfig global; memset(&global, 0, sizeof(global)); + tool_init_stderr(); + #ifdef WIN32 /* Undocumented diagnostic option to list the full paths of all loaded modules. This is purposely pre-init. */ @@ -297,13 +286,13 @@ int main(int argc, char *argv[]) /* win32_init must be called before other init routines. */ result = win32_init(); if(result) { - fprintf(stderr, "curl: (%d) Windows-specific init failed.\n", result); + errorf(&global, "(%d) Windows-specific init failed", result); return result; } #endif if(main_checkfds()) { - fprintf(stderr, "curl: out of file descriptors\n"); + errorf(&global, "out of file descriptors"); return CURLE_FAILED_INIT; } |