cURL-build-win32/patch/curl_tool_parsecfg.diff

77 lines
2.8 KiB
Diff
Raw Normal View History

2024-08-01 22:24:44 +02:00
src/tool_parsecfg.c | 42 ++++++++++++++++--------------------------
1 file changed, 16 insertions(+), 26 deletions(-)
diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c
index d0a3159..6034b17 100644
--- a/src/tool_parsecfg.c
+++ b/src/tool_parsecfg.c
2022-06-28 22:45:53 +02:00
@@ -47,29 +47,20 @@ static const char *unslashquote(const char *line, char *param);
2021-06-10 01:50:43 +02:00
static bool my_get_line(FILE *fp, struct curlx_dynbuf *, bool *error);
2023-12-07 01:29:52 +01:00
#ifdef _WIN32
2022-06-21 22:03:39 +02:00
-static FILE *execpath(const char *filename, char **pathp)
2021-06-10 01:50:43 +02:00
+static FILE *execpath(const TCHAR *filename)
2021-06-09 16:11:19 +02:00
{
2022-06-21 22:03:39 +02:00
- static char filebuffer[512];
2021-06-09 19:47:18 +02:00
- /* Get the filename of our executable. GetModuleFileName is already declared
2024-08-01 22:24:44 +02:00
- * via inclusions done in setup header file. We assume that we are using
2021-06-09 16:11:19 +02:00
- * the ASCII version here.
2021-06-09 19:47:18 +02:00
- */
2021-06-09 16:11:19 +02:00
- unsigned long len = GetModuleFileNameA(0, filebuffer, sizeof(filebuffer));
- if(len > 0 && len < sizeof(filebuffer)) {
- /* We got a valid filename - get the directory part */
2021-06-10 01:45:25 +02:00
- char *lastdirchar = strrchr(filebuffer, '\\');
2021-06-09 19:47:18 +02:00
+ static const size_t BUFFSIZE = 512;
+ TCHAR filebuffer[BUFFSIZE];
+ unsigned long len = GetModuleFileName(0, filebuffer, BUFFSIZE);
2021-06-10 01:45:25 +02:00
+ if((len > 0) && (len < BUFFSIZE)) {
+ TCHAR *lastdirchar = _tcsrchr(filebuffer, TEXT('\\'));
2021-06-09 19:47:18 +02:00
if(lastdirchar) {
2021-06-09 16:11:19 +02:00
- size_t remaining;
- *lastdirchar = 0;
- /* If we have enough space, build the RC filename */
- remaining = sizeof(filebuffer) - strlen(filebuffer);
- if(strlen(filename) < remaining - 1) {
2022-06-21 22:03:39 +02:00
- FILE *f;
2021-06-09 16:11:19 +02:00
- msnprintf(lastdirchar, remaining, "%s%s", DIR_CHAR, filename);
2022-06-21 22:03:39 +02:00
- *pathp = filebuffer;
- f = fopen(filebuffer, FOPEN_READTEXT);
- return f;
2021-06-10 01:50:43 +02:00
- }
2021-06-10 01:45:25 +02:00
+ *lastdirchar = TEXT('\0');
2021-06-09 19:47:18 +02:00
+ }
2021-06-10 01:45:25 +02:00
+ if (_tcslen(filebuffer) + _tcslen(filename) + 2U < BUFFSIZE) {
+ _tcscat(filebuffer, TEXT("\\"));
+ _tcscat(filebuffer, filename);
2021-06-10 01:54:46 +02:00
+ return _tfopen(filebuffer, TEXT(FOPEN_READTEXT));
2021-06-10 01:45:25 +02:00
}
2021-06-09 16:11:19 +02:00
}
2021-06-08 22:24:45 +02:00
2022-06-28 22:45:53 +02:00
@@ -89,7 +80,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
2022-06-21 22:03:39 +02:00
if(!filename) {
/* NULL means load .curlrc from homedir! */
- char *curlrc = findfile(".curlrc", CURLRC_DOTSCORE);
+ char *curlrc = NULL; /* findfile(".curlrc", CURLRC_DOTSCORE); */
if(curlrc) {
file = fopen(curlrc, FOPEN_READTEXT);
if(!file) {
2022-06-28 22:45:53 +02:00
@@ -100,14 +91,13 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
2021-06-10 01:50:43 +02:00
}
2023-12-07 01:29:52 +01:00
#ifdef _WIN32 /* Windows */
2022-06-21 22:03:39 +02:00
else {
- char *fullp;
2021-06-10 01:50:43 +02:00
/* check for .curlrc then _curlrc in the dir of the executable */
2022-06-21 22:03:39 +02:00
- file = execpath(".curlrc", &fullp);
+ file = execpath(TEXT(".curlrc") /*,&fullp*/);
2021-06-10 01:50:43 +02:00
if(!file)
2022-06-21 22:03:39 +02:00
- file = execpath("_curlrc", &fullp);
+ file = execpath(TEXT("_curlrc") /*,&fullp*/);
if(file)
/* this is the filename we read from */
- filename = fullp;
+ filename = ".curlrc";
2021-06-10 01:50:43 +02:00
}
#endif
2022-06-21 22:03:39 +02:00
}