24 #define ENABLE_CURLX_PRINTF 37 #define CURLRC DOT_CHAR "curlrc" 41 #define ISSEP(x,dash) (!dash && (((x) == '=') || ((x) == ':'))) 43 static const char *
unslashquote(
const char *line,
char *param);
57 if(!filename || !*filename) {
64 if(strlen(home) < (
sizeof(filebuffer) - strlen(
CURLRC))) {
65 snprintf(filebuffer,
sizeof(filebuffer),
75 filename = filebuffer;
82 int n = GetModuleFileNameA(0, filebuffer,
sizeof(filebuffer));
83 if(n > 0 && n < (
int)
sizeof(filebuffer)) {
85 char *lastdirchar = strrchr(filebuffer,
'\\');
90 remaining =
sizeof(filebuffer) - strlen(filebuffer);
91 if(strlen(
CURLRC) < remaining - 1) {
97 filename = filebuffer;
103 filename = filebuffer;
117 if(strcmp(filename,
"-"))
134 alloced_param =
FALSE;
155 dashed_option = option[0]==
'-'?
TRUE:
FALSE;
157 while(*line && !
ISSPACE(*line) && !
ISSEP(*line, dashed_option))
165 fprintf(stderr,
"GOT: %s\n", option);
169 while(*line && (
ISSPACE(*line) ||
ISSEP(*line, dashed_option)))
176 param =
malloc(strlen(line) + 1);
183 alloced_param =
TRUE;
188 while(*line && !
ISSPACE(*line))
207 warnf(operation->
global,
"%s:%d: warning: '%s' uses unquoted " 208 "white space in the line that may cause side-effects!\n",
209 filename, lineno, option);
219 fprintf(stderr,
"PARAM: \"%s\"\n",(param ? param :
"(null)"));
221 res =
getparameter(option, param, &usedarg, global, operation);
223 if(!res && param && *param && !usedarg)
231 if(operation->
next) {
246 operation = operation->
next;
255 if(!strcmp(filename,
"-")) {
256 filename =
"<stdin>";
263 warnf(operation->
global,
"%s:%d: warning: '%s' %s\n",
264 filename, lineno, option, reason);
291 while(*line && (*line !=
'\"')) {
297 switch(out = *line) {
335 if(NULL == fgets(buf,
sizeof(buf), fp))
344 size_t linelen = strlen(line);
345 ptr =
realloc(line, linelen + strlen(buf) + 1);
351 strcpy(&line[linelen], buf);
353 nl = strchr(line,
'\n');
bool param(const std::string ¶m_name, T ¶m_val, const T &default_val)
struct OperationConfig * prev
UNITTEST_START char * ptr
struct OperationConfig * last
#define realloc(ptr, size)
struct GlobalConfig * global
struct OperationConfig * next
#define Curl_safefree(ptr)
struct OperationConfig * first