]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool: remove newlines from all helpf/notef/warnf/errorf calls
authorDaniel Stenberg <daniel@haxx.se>
Tue, 30 May 2023 12:44:56 +0000 (14:44 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 1 Jun 2023 06:18:21 +0000 (08:18 +0200)
Make voutf() always add one.

Closes #11226

13 files changed:
src/tool_cb_hdr.c
src/tool_cb_wrt.c
src/tool_easysrc.c
src/tool_filetime.c
src/tool_formparse.c
src/tool_getparam.c
src/tool_helpers.c
src/tool_main.c
src/tool_msgs.c
src/tool_operate.c
src/tool_paramhlp.c
src/tool_parsecfg.c
src/tool_setopt.c

index ed22ef460a0585e43e609fce7af80aa071a54c44..36fe00ecc22e32c07e84dbb3dbf59b902ce50701 100644 (file)
@@ -83,7 +83,7 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
 #ifdef DEBUGBUILD
   if(size * nmemb > (size_t)CURL_MAX_HTTP_HEADER) {
     warnf(per->config->global, "Header data exceeds single call write "
-          "limit!\n");
+          "limit!");
     return CURL_WRITEFUNC_ERROR;
   }
 #endif
index 9f1bca852473b0450ae96f30ac81f6130990bc18..2f3b55a73f08041341f26364d4dda90574741e6b 100644 (file)
@@ -62,14 +62,14 @@ bool tool_create_output_file(struct OutStruct *outs,
   DEBUGASSERT(config);
   global = config->global;
   if(!fname || !*fname) {
-    warnf(global, "Remote filename has no length!\n");
+    warnf(global, "Remote filename has no length!");
     return FALSE;
   }
 
   if(config->output_dir && outs->is_cd_filename) {
     aname = aprintf("%s/%s", config->output_dir, fname);
     if(!aname) {
-      errorf(global, "out of memory\n");
+      errorf(global, "out of memory");
       return FALSE;
     }
     fname = aname;
@@ -95,12 +95,12 @@ bool tool_create_output_file(struct OutStruct *outs,
       /* Guard against wraparound in new filename */
       if(newlen < len) {
         free(aname);
-        errorf(global, "overflow in filename generation\n");
+        errorf(global, "overflow in filename generation");
         return FALSE;
       }
       newname = malloc(newlen);
       if(!newname) {
-        errorf(global, "out of memory\n");
+        errorf(global, "out of memory");
         free(aname);
         return FALSE;
       }
@@ -133,7 +133,7 @@ bool tool_create_output_file(struct OutStruct *outs,
   }
 
   if(!file) {
-    warnf(global, "Failed to open the file %s: %s\n", fname,
+    warnf(global, "Failed to open the file %s: %s", fname,
           strerror(errno));
     free(aname);
     return FALSE;
@@ -176,13 +176,13 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
   if(config->show_headers) {
     if(bytes > (size_t)CURL_MAX_HTTP_HEADER) {
       warnf(config->global, "Header data size exceeds single call write "
-            "limit!\n");
+            "limit!");
       return CURL_WRITEFUNC_ERROR;
     }
   }
   else {
     if(bytes > (size_t)CURL_MAX_WRITE_SIZE) {
-      warnf(config->global, "Data size exceeds single call write limit!\n");
+      warnf(config->global, "Data size exceeds single call write limit!");
       return CURL_WRITEFUNC_ERROR;
     }
   }
@@ -211,7 +211,7 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
         check_fails = TRUE;
     }
     if(check_fails) {
-      warnf(config->global, "Invalid output struct data for write callback\n");
+      warnf(config->global, "Invalid output struct data for write callback");
       return CURL_WRITEFUNC_ERROR;
     }
   }
@@ -225,7 +225,7 @@ size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
     if(memchr(buffer, 0, bytes)) {
       warnf(config->global, "Binary output can mess up your terminal. "
             "Use \"--output -\" to tell curl to output it to your terminal "
-            "anyway, or consider \"--output <FILE>\" to save to a file.\n");
+            "anyway, or consider \"--output <FILE>\" to save to a file.");
       config->synthetic_error = TRUE;
       return CURL_WRITEFUNC_ERROR;
     }
index 0239e398c2f98e05e5b1435165003a386d34b366..f2474130419e4d0d70d5eec93c019f43e894f823 100644 (file)
@@ -186,7 +186,7 @@ void dumpeasysrc(struct GlobalConfig *config)
   else
     out = stdout;
   if(!out)
-    warnf(config, "Failed to open %s to write libcurl code!\n", o);
+    warnf(config, "Failed to open %s to write libcurl code!", o);
   else {
     int i;
     const char *c;
index 937775cb8aa82c245065608039b38c37b38cd5eb..054d34fe2ef23d9b2ac1f2bd3eaf49a91e669473 100644 (file)
@@ -55,7 +55,7 @@ curl_off_t getfiletime(const char *filename, struct GlobalConfig *global)
           | ((curl_off_t)ft.dwHighDateTime) << 32;
 
       if(converted < CURL_OFF_T_C(116444736000000000)) {
-        warnf(global, "Failed to get filetime: underflow\n");
+        warnf(global, "Failed to get filetime: underflow");
       }
       else {
         result = (converted - CURL_OFF_T_C(116444736000000000)) / 10000000;
@@ -63,14 +63,14 @@ curl_off_t getfiletime(const char *filename, struct GlobalConfig *global)
     }
     else {
       warnf(global, "Failed to get filetime: "
-            "GetFileTime failed: GetLastError %u\n",
+            "GetFileTime failed: GetLastError %u",
             (unsigned int)GetLastError());
     }
     CloseHandle(hfile);
   }
   else if(GetLastError() != ERROR_FILE_NOT_FOUND) {
     warnf(global, "Failed to get filetime: "
-          "CreateFile failed: GetLastError %u\n",
+          "CreateFile failed: GetLastError %u",
           (unsigned int)GetLastError());
   }
 #else
@@ -79,7 +79,7 @@ curl_off_t getfiletime(const char *filename, struct GlobalConfig *global)
     result = (curl_off_t)statbuf.st_mtime;
   }
   else if(errno != ENOENT) {
-    warnf(global, "Failed to get filetime: %s\n", strerror(errno));
+    warnf(global, "Failed to get filetime: %s", strerror(errno));
   }
 #endif
   return result;
@@ -101,7 +101,7 @@ void setfiletime(curl_off_t filetime, const char *filename,
        Windows FILETIME without overflow: 30827-12-31T23:59:59. */
     if(filetime > CURL_OFF_T_C(910670515199)) {
       warnf(global, "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
-            " on outfile: overflow\n", filetime);
+            " on outfile: overflow", filetime);
       curlx_unicodefree(tchar_filename);
       return;
     }
@@ -119,14 +119,14 @@ void setfiletime(curl_off_t filetime, const char *filename,
       ft.dwHighDateTime = (DWORD)(converted >> 32);
       if(!SetFileTime(hfile, NULL, &ft, &ft)) {
         warnf(global, "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
-              " on outfile: SetFileTime failed: GetLastError %u\n",
+              " on outfile: SetFileTime failed: GetLastError %u",
               filetime, (unsigned int)GetLastError());
       }
       CloseHandle(hfile);
     }
     else {
       warnf(global, "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
-            " on outfile: CreateFile failed: GetLastError %u\n",
+            " on outfile: CreateFile failed: GetLastError %u",
             filetime, (unsigned int)GetLastError());
     }
 
@@ -136,7 +136,7 @@ void setfiletime(curl_off_t filetime, const char *filename,
     times[0].tv_usec = times[1].tv_usec = 0;
     if(utimes(filename, times)) {
       warnf(global, "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
-            " on '%s': %s\n", filetime, filename, strerror(errno));
+            " on '%s': %s", filetime, filename, strerror(errno));
     }
 
 #elif defined(HAVE_UTIME)
@@ -145,7 +145,7 @@ void setfiletime(curl_off_t filetime, const char *filename,
     times.modtime = (time_t)filetime;
     if(utime(filename, &times)) {
       warnf(global, "Failed to set filetime %" CURL_FORMAT_CURL_OFF_T
-            " on '%s': %s\n", filetime, filename, strerror(errno));
+            " on '%s': %s", filetime, filename, strerror(errno));
     }
 #endif
   }
index 7842c033b1e24594b32bb256fa724bb4eeb89be4..0dff4c985006b1cf32b4a12ebad3818747e154ac 100644 (file)
@@ -202,7 +202,7 @@ size_t tool_mime_stdin_read(char *buffer,
       if(ferror(stdin)) {
         /* Show error only once. */
         if(sip->config) {
-          warnf(sip->config, "stdin: %s\n", strerror(errno));
+          warnf(sip->config, "stdin: %s", strerror(errno));
           sip->config = NULL;
         }
         return CURL_READFUNC_ABORT;
@@ -369,7 +369,7 @@ static char *get_param_word(struct OperationConfig *config, char **str,
           ++ptr;
         }
         if(trailing_data)
-          warnf(config->global, "Trailing data after quoted form parameter\n");
+          warnf(config->global, "Trailing data after quoted form parameter");
         *str = ptr;
         return word_begin + 1;
       }
@@ -448,7 +448,7 @@ static int read_field_headers(struct OperationConfig *config,
     pos++;
     if(!incomment) {
       if(hdrlen == sizeof(hdrbuf) - 1) {
-        warnf(config->global, "File %s line %d: header too long (truncated)\n",
+        warnf(config->global, "File %s line %d: header too long (truncated)",
               filename, lineno);
         c = ' ';
       }
@@ -506,7 +506,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
 
       /* verify that this is a fine type specifier */
       if(2 != sscanf(type, "%127[^/ ]/%127[^;, \n]", type_major, type_minor)) {
-        warnf(config->global, "Illegally formatted content-type field!\n");
+        warnf(config->global, "Illegally formatted content-type field!");
         curl_slist_free_all(headers);
         return -1; /* illegal content-type syntax! */
       }
@@ -558,7 +558,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
         *endpos = '\0';
         fp = fopen(hdrfile, FOPEN_READTEXT);
         if(!fp)
-          warnf(config->global, "Cannot read from %s: %s\n", hdrfile,
+          warnf(config->global, "Cannot read from %s: %s", hdrfile,
                 strerror(errno));
         else {
           int i = read_field_headers(config, hdrfile, fp, &headers);
@@ -620,7 +620,7 @@ static int get_param_part(struct OperationConfig *config, char endchar,
       sep = *p;
       *endpos = '\0';
       if(*unknown)
-        warnf(config->global, "skip unknown form field: %s\n", unknown);
+        warnf(config->global, "skip unknown form field: %s", unknown);
     }
   }
 
@@ -631,25 +631,25 @@ static int get_param_part(struct OperationConfig *config, char endchar,
   if(ptype)
     *ptype = type;
   else if(type)
-    warnf(config->global, "Field content type not allowed here: %s\n", type);
+    warnf(config->global, "Field content type not allowed here: %s", type);
 
   if(pfilename)
     *pfilename = filename;
   else if(filename)
     warnf(config->global,
-          "Field file name not allowed here: %s\n", filename);
+          "Field file name not allowed here: %s", filename);
 
   if(pencoder)
     *pencoder = encoder;
   else if(encoder)
     warnf(config->global,
-          "Field encoder not allowed here: %s\n", encoder);
+          "Field encoder not allowed here: %s", encoder);
 
   if(pheaders)
     *pheaders = headers;
   else if(headers) {
     warnf(config->global,
-          "Field headers not allowed here: %s\n", headers->data);
+          "Field headers not allowed here: %s", headers->data);
     curl_slist_free_all(headers);
   }
 
@@ -772,7 +772,7 @@ int formparse(struct OperationConfig *config,
     else if(!name && !strcmp(contp, ")") && !literal_value) {
       /* Ending a multipart. */
       if(*mimecurrent == *mimeroot) {
-        warnf(config->global, "no multipart to terminate!\n");
+        warnf(config->global, "no multipart to terminate!");
         goto fail;
       }
       *mimecurrent = (*mimecurrent)->parent;
@@ -818,7 +818,7 @@ int formparse(struct OperationConfig *config,
                libcurl. */
           if(part->size > 0) {
             warnf(config->global,
-                  "error while reading standard input\n");
+                  "error while reading standard input");
             goto fail;
           }
           Curl_safefree(part->data);
@@ -855,7 +855,7 @@ int formparse(struct OperationConfig *config,
                libcurl. */
           if(part->size > 0) {
             warnf(config->global,
-                  "error while reading standard input\n");
+                  "error while reading standard input");
             goto fail;
           }
           Curl_safefree(part->data);
@@ -888,7 +888,7 @@ int formparse(struct OperationConfig *config,
       if(sep) {
         *contp = (char) sep;
         warnf(config->global,
-              "garbage at end of field specification: %s\n", contp);
+              "garbage at end of field specification: %s", contp);
       }
     }
 
@@ -896,7 +896,7 @@ int formparse(struct OperationConfig *config,
     SET_TOOL_MIME_PTR(part, name);
   }
   else {
-    warnf(config->global, "Illegally formatted input field!\n");
+    warnf(config->global, "Illegally formatted input field!");
     goto fail;
   }
   err = 0;
index 1bda56755a97370c7779e4579fb3fbdb69bb9c09..bcff83824c448642bcbbd768e8ad17d2f70e3d4b 100644 (file)
@@ -506,7 +506,7 @@ static ParameterError GetSizeParameter(struct GlobalConfig *global,
   curl_off_t value;
 
   if(curlx_strtoofft(arg, &unit, 10, &value)) {
-    warnf(global, "invalid number specified for %s\n", which);
+    warnf(global, "invalid number specified for %s", which);
     return PARAM_BAD_USE;
   }
 
@@ -539,7 +539,7 @@ static ParameterError GetSizeParameter(struct GlobalConfig *global,
     /* for plain bytes, leave as-is */
     break;
   default:
-    warnf(global, "unsupported %s unit. Use G, M, K or B!\n", which);
+    warnf(global, "unsupported %s unit. Use G, M, K or B!", which);
     return PARAM_BAD_USE;
   }
   *value_out = value;
@@ -603,7 +603,7 @@ static ParameterError data_urlencode(struct GlobalConfig *global,
       if(!file)
         warnf(global,
               "Couldn't read data from file \"%s\", this makes "
-              "an empty POST.\n", nextarg);
+              "an empty POST.", nextarg);
     }
 
     err = file2memory(&postdata, &size, file);
@@ -666,7 +666,7 @@ static void sethttpver(struct GlobalConfig *global,
 {
   if(config->httpversion &&
      (config->httpversion != httpversion))
-    warnf(global, "Overrides previous HTTP version option\n");
+    warnf(global, "Overrides previous HTTP version option");
 
   config->httpversion = httpversion;
 }
@@ -793,7 +793,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       if((aliases[hit].desc == ARG_FILENAME) &&
          (nextarg[0] == '-') && nextarg[1]) {
         /* if the file name looks like a command line option */
-        warnf(global, "The file name argument '%s' looks like a flag.\n",
+        warnf(global, "The file name argument '%s' looks like a flag.",
               nextarg);
       }
     }
@@ -862,17 +862,17 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       case 'g': /* --trace */
         GetStr(&global->trace_dump, nextarg);
         if(global->tracetype && (global->tracetype != TRACE_BIN))
-          warnf(global, "--trace overrides an earlier trace/verbose option\n");
+          warnf(global, "--trace overrides an earlier trace/verbose option");
         global->tracetype = TRACE_BIN;
         break;
       case 'G': /* --npn */
-        warnf(global, "--npn is no longer supported\n");
+        warnf(global, "--npn is no longer supported");
         break;
       case 'h': /* --trace-ascii */
         GetStr(&global->trace_dump, nextarg);
         if(global->tracetype && (global->tracetype != TRACE_ASCII))
           warnf(global,
-                "--trace-ascii overrides an earlier trace/verbose option\n");
+                "--trace-ascii overrides an earlier trace/verbose option");
         global->tracetype = TRACE_ASCII;
         break;
       case 'H': /* --alpn */
@@ -927,7 +927,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
             numerator = 24*60*60*1000;
             break;
           default:
-            errorf(global, "unsupported --rate unit\n");
+            errorf(global, "unsupported --rate unit");
             return PARAM_BAD_USE;
           }
         }
@@ -1113,7 +1113,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         config->ftp_ssl = toggle;
         if(config->ftp_ssl)
           warnf(global,
-                "--ssl is an insecure option, consider --ssl-reqd instead\n");
+                "--ssl is an insecure option, consider --ssl-reqd instead");
         break;
       case 'b': /* --ftp-pasv */
         Curl_safefree(config->ftpport);
@@ -1255,7 +1255,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       case 'z': /* --libcurl */
 #ifdef CURL_DISABLE_LIBCURL_OPTION
         warnf(global,
-              "--libcurl option was disabled at build-time!\n");
+              "--libcurl option was disabled at build-time!");
         return PARAM_OPTION_UNKNOWN;
 #else
         GetStr(&global->libcurl, nextarg);
@@ -1333,7 +1333,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         GetStr(&config->mail_auth, nextarg);
         break;
       case 'J': /* --metalink */
-        errorf(global, "--metalink is disabled\n");
+        errorf(global, "--metalink is disabled");
         return PARAM_BAD_USE;
       case '6': /* --sasl-authzid */
         GetStr(&config->sasl_authzid, nextarg);
@@ -1345,7 +1345,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
 #ifdef CURLDEBUG
         global->test_event_based = toggle;
 #else
-        warnf(global, "--test-event is ignored unless a debug build!\n");
+        warnf(global, "--test-event is ignored unless a debug build!");
 #endif
         break;
       case 'M': /* --unix-socket */
@@ -1488,11 +1488,11 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       break;
     case '2':
       /* SSL version 2 */
-      warnf(global, "Ignores instruction to use SSLv2\n");
+      warnf(global, "Ignores instruction to use SSLv2");
       break;
     case '3':
       /* SSL version 3 */
-      warnf(global, "Ignores instruction to use SSLv3\n");
+      warnf(global, "Ignores instruction to use SSLv3");
       break;
     case '4':
       /* IPv4 */
@@ -1620,7 +1620,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
           file = fopen(nextarg, "rb");
           if(!file)
             warnf(global, "Couldn't read data from file \"%s\", this makes "
-                  "an empty POST.\n", nextarg);
+                  "an empty POST.", nextarg);
         }
 
         if((subletter == 'b') || /* --data-binary */
@@ -1967,7 +1967,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       }
       if(config->failonerror && config->failwithbody) {
         errorf(config->global, "You must select either --fail or "
-               "--fail-with-body, not both.\n");
+               "--fail-with-body, not both.");
         return PARAM_BAD_USE;
       }
       break;
@@ -2016,7 +2016,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         bool use_stdin = !strcmp(&nextarg[1], "-");
         FILE *file = use_stdin?stdin:fopen(&nextarg[1], FOPEN_READTEXT);
         if(!file)
-          warnf(global, "Failed to open %s!\n", &nextarg[1]);
+          warnf(global, "Failed to open %s!", &nextarg[1]);
         else {
           err = file2memory(&string, &len, file);
           if(!err && string) {
@@ -2075,7 +2075,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       break;
     case 'K': /* parse config file */
       if(parseconfig(nextarg, global)) {
-        errorf(global, "cannot read config from '%s'\n", nextarg);
+        errorf(global, "cannot read config from '%s'", nextarg);
         return PARAM_READ_ERROR;
       }
       break;
@@ -2102,7 +2102,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       if(toggle) { /* --no-manual shows no manual... */
 #ifndef USE_MANUAL
         warnf(global,
-              "built-in manual was disabled at build-time!\n");
+              "built-in manual was disabled at build-time");
 #endif
         return PARAM_MANUAL_REQUESTED;
       }
@@ -2172,7 +2172,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
       /* fill in the outfile */
       if('o' == letter) {
         if(!*nextarg) {
-          warnf(global, "output file name has no length\n");
+          warnf(global, "output file name has no length");
           return PARAM_BAD_USE;
         }
         GetStr(&url->outfile, nextarg);
@@ -2233,12 +2233,12 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
         char buffer[32];
         curl_off_t off;
         if(curlx_strtoofft(nextarg, NULL, 10, &off)) {
-          warnf(global, "unsupported range point\n");
+          warnf(global, "unsupported range point");
           return PARAM_BAD_USE;
         }
         warnf(global,
               "A specified range MUST include at least one dash (-). "
-              "Appending one for you!\n");
+              "Appending one for you!");
         msnprintf(buffer, sizeof(buffer), "%" CURL_FORMAT_CURL_OFF_T "-", off);
         Curl_safefree(config->range);
         config->range = strdup(buffer);
@@ -2253,7 +2253,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
             warnf(global, "Invalid character is found in given range. "
                   "A specified range MUST have only digits in "
                   "\'start\'-\'stop\'. The server's response to this "
-                  "request is uncertain.\n");
+                  "request is uncertain.");
             break;
           }
           tmp_range++;
@@ -2330,7 +2330,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
           return PARAM_NO_MEM;
         if(global->tracetype && (global->tracetype != TRACE_PLAIN))
           warnf(global,
-                "-v, --verbose overrides an earlier trace/verbose option\n");
+                "-v, --verbose overrides an earlier trace/verbose option");
         global->tracetype = TRACE_PLAIN;
       }
       else
@@ -2461,7 +2461,7 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
           warnf(global,
                 "Illegal date format for -z, --time-cond (and not "
                 "a file name). Disabling time condition. "
-                "See curl_getdate(3) for valid date syntax.\n");
+                "See curl_getdate(3) for valid date syntax.");
         }
       }
       break;
@@ -2537,7 +2537,7 @@ ParameterError parse_args(struct GlobalConfig *global, int argc,
               result = PARAM_NO_MEM;
           }
           else {
-            errorf(global, "missing URL before --next\n");
+            errorf(global, "missing URL before --next");
             result = PARAM_BAD_USE;
           }
         }
@@ -2570,9 +2570,9 @@ ParameterError parse_args(struct GlobalConfig *global, int argc,
     const char *reason = param2text(result);
 
     if(orig_opt && strcmp(":", orig_opt))
-      helpf(stderr, "option %s: %s\n", orig_opt, reason);
+      helpf(stderr, "option %s: %s", orig_opt, reason);
     else
-      helpf(stderr, "%s\n", reason);
+      helpf(stderr, "%s", reason);
   }
 
   curlx_unicodefree(orig_opt);
index 52d312d1aa7ee51c1328a27c608e68b10e970384..1e36f0613a63d8d1e5831fb3f66ac6bd9116255f 100644 (file)
@@ -99,7 +99,7 @@ int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
     return 0;
   }
   warnf(config->global, "You can only select one HTTP request method! "
-        "You asked for both %s and %s.\n",
+        "You asked for both %s and %s.",
         reqname[req], reqname[*store]);
 
   return 1;
@@ -122,11 +122,11 @@ void customrequest_helper(struct OperationConfig *config, HttpReq req,
     ;
   else if(curl_strequal(method, dflt[req])) {
     notef(config->global, "Unnecessary use of -X or --request, %s is already "
-          "inferred.\n", dflt[req]);
+          "inferred.", dflt[req]);
   }
   else if(curl_strequal(method, "head")) {
     warnf(config->global,
           "Setting custom HTTP method to HEAD with -X/--request may not work "
-          "the way you want. Consider using -I/--head instead.\n");
+          "the way you want. Consider using -I/--head instead.");
   }
 }
index 2b7743a7e4a0045f18a76dfb9f651e88eed626c5..e65b087d801d1651eb1ed8e7606c018ad71d7f04 100644 (file)
@@ -175,17 +175,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;
   }
 
index 4f082d5c176f0c26e271feb37afcc86fccc7f3c1..9a2281baf3f6e7accdc47650f54ff33af43db8de 100644 (file)
@@ -42,6 +42,7 @@ static void voutf(struct GlobalConfig *config,
                   va_list ap)
 {
   size_t width = (79 - strlen(prefix));
+  DEBUGASSERT(!strchr(fmt, '\n'));
   if(!config->silent) {
     size_t len;
     char *ptr;
@@ -74,6 +75,7 @@ static void voutf(struct GlobalConfig *config,
       }
       else {
         fputs(ptr, stderr);
+        fputs("\n", stderr);
         len = 0;
       }
     }
@@ -115,9 +117,11 @@ void helpf(FILE *errors, const char *fmt, ...)
   if(fmt) {
     va_list ap;
     va_start(ap, fmt);
+    DEBUGASSERT(!strchr(fmt, '\n'));
     fputs("curl: ", errors); /* prefix it */
     vfprintf(errors, fmt, ap);
     va_end(ap);
+    fputs("\n", errors); /* newline it */
   }
   fprintf(errors, "curl: try 'curl --help' "
 #ifdef USE_MANUAL
index 823967b7443c4507058e7136d14cbc522b3315bd..a5b53f83d3d173f2a184cbf806b7ce0ed1bb2057 100644 (file)
@@ -306,7 +306,7 @@ static CURLcode pre_transfer(struct GlobalConfig *global,
     if((per->infd == -1) || fstat(per->infd, &fileinfo))
 #endif
     {
-      helpf(stderr, "Can't open '%s'!\n", per->uploadfile);
+      helpf(stderr, "Can't open '%s'", per->uploadfile);
       if(per->infd != -1) {
         close(per->infd);
         per->infd = STDIN_FILENO;
@@ -426,7 +426,7 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
   if(!result && config->xattr && outs->fopened && outs->stream) {
     int rc = fwrite_xattr(curl, per->this_url, fileno(outs->stream));
     if(rc)
-      warnf(config->global, "Error setting extended attributes on '%s': %s\n",
+      warnf(config->global, "Error setting extended attributes on '%s': %s",
             outs->filename, strerror(errno));
   }
 
@@ -576,7 +576,7 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
       }
       warnf(config->global, "Problem %s. "
             "Will retry in %ld seconds. "
-            "%ld retries left.\n",
+            "%ld retries left.",
             m[retry], sleeptime/1000L, per->retry_numretries);
 
       per->retry_numretries--;
@@ -589,9 +589,9 @@ static CURLcode post_per_transfer(struct GlobalConfig *global,
         int rc;
         /* We have written data to an output file, we truncate file
          */
-        if(!global->silent)
-          fprintf(stderr, "Throwing away %"  CURL_FORMAT_CURL_OFF_T " bytes\n",
-                  outs->bytes);
+        notef(config->global,
+              "Throwing away %"  CURL_FORMAT_CURL_OFF_T " bytes",
+              outs->bytes);
         fflush(outs->stream);
         /* truncate file at the position where we started appending */
 #ifdef HAVE_FTRUNCATE
@@ -642,7 +642,7 @@ noretry:
         fprintf(stderr, "curl: (%d) Failed writing body\n", result);
     }
     if(result && config->rm_partial) {
-      notef(global, "Removing output file: %s\n", outs->filename);
+      notef(global, "Removing output file: %s", outs->filename);
       unlink(outs->filename);
     }
   }
@@ -734,7 +734,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
         httpgetfields = state->httpgetfields = strdup(config->postfields);
         Curl_safefree(config->postfields);
         if(!httpgetfields) {
-          errorf(global, "out of memory\n");
+          errorf(global, "out of memory");
           result = CURLE_OUT_OF_MEMORY;
         }
         else if(SetHTTPrequest(config,
@@ -777,7 +777,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
       state->up = 0;
       if(!warn_more_options) {
         /* only show this once */
-        warnf(config->global, "Got more output options than URLs\n");
+        warnf(config->global, "Got more output options than URLs");
         warn_more_options = TRUE;
       }
       continue; /* next URL please */
@@ -787,7 +787,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
     if(urlnode->outfile && !state->outfiles) {
       state->outfiles = strdup(urlnode->outfile);
       if(!state->outfiles) {
-        errorf(global, "out of memory\n");
+        errorf(global, "out of memory");
         result = CURLE_OUT_OF_MEMORY;
         break;
       }
@@ -815,12 +815,12 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           if(inglob) {
             result = glob_next_url(&state->uploadfile, inglob);
             if(result == CURLE_OUT_OF_MEMORY)
-              errorf(global, "out of memory\n");
+              errorf(global, "out of memory");
           }
           else if(!state->up) {
             state->uploadfile = strdup(infiles);
             if(!state->uploadfile) {
-              errorf(global, "out of memory\n");
+              errorf(global, "out of memory");
               result = CURLE_OUT_OF_MEMORY;
             }
           }
@@ -872,7 +872,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           FILE *file = fopen(config->etag_compare_file, FOPEN_READTEXT);
           if(!file && !config->etag_save_file) {
             errorf(global,
-                   "Failed to open %s\n", config->etag_compare_file);
+                   "Failed to open %s", config->etag_compare_file);
             result = CURLE_READ_ERROR;
             break;
           }
@@ -889,7 +889,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             if(file)
               fclose(file);
             errorf(global,
-                   "Failed to allocate memory for custom etag header\n");
+                   "Failed to allocate memory for custom etag header");
             result = CURLE_OUT_OF_MEMORY;
             break;
           }
@@ -912,7 +912,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             FILE *newfile = fopen(config->etag_save_file, "wb");
             if(!newfile) {
               warnf(global, "Failed creating file for saving etags: \"%s\". "
-                    "Skip this transfer\n", config->etag_save_file);
+                    "Skip this transfer", config->etag_save_file);
               Curl_safefree(state->outfiles);
               glob_cleanup(state->urls);
               return CURLE_OK;
@@ -988,7 +988,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             newfile = fopen(config->headerfile, "ab");
 
             if(!newfile) {
-              errorf(global, "Failed to open %s\n", config->headerfile);
+              errorf(global, "Failed to open %s", config->headerfile);
               result = CURLE_WRITE_ERROR;
               break;
             }
@@ -1055,11 +1055,11 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             result = get_url_file_name(&per->outfile, per->this_url);
             if(result) {
               errorf(global, "Failed to extract a sensible file name"
-                     " from the URL to use for storage!\n");
+                     " from the URL to use for storage!");
               break;
             }
             if(!*per->outfile && !config->content_disposition) {
-              errorf(global, "Remote file name has no length!\n");
+              errorf(global, "Remote file name has no length!");
               result = CURLE_WRITE_ERROR;
               break;
             }
@@ -1071,11 +1071,11 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             Curl_safefree(storefile);
             if(result) {
               /* bad globbing */
-              warnf(global, "bad output glob!\n");
+              warnf(global, "bad output glob!");
               break;
             }
             if(!*per->outfile) {
-              warnf(global, "output glob produces empty string!\n");
+              warnf(global, "output glob produces empty string!");
               result = CURLE_WRITE_ERROR;
               break;
             }
@@ -1130,7 +1130,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             FILE *file = fopen(per->outfile, "ab");
 #endif
             if(!file) {
-              errorf(global, "Can't open '%s'!\n", per->outfile);
+              errorf(global, "Can't open '%s'", per->outfile);
               result = CURLE_WRITE_ERROR;
               break;
             }
@@ -1177,7 +1177,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             warnf(global,
                   "Using --anyauth or --proxy-anyauth with upload from stdin"
                   " involves a big risk of it not working. Use a temporary"
-                  " file or a fixed auth type instead!\n");
+                  " file or a fixed auth type instead!");
           }
 
           DEBUGASSERT(per->infdopen == FALSE);
@@ -1187,7 +1187,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           if(!strcmp(per->uploadfile, ".")) {
             if(curlx_nonblock((curl_socket_t)per->infd, TRUE) < 0)
               warnf(global,
-                    "fcntl failed on fd=%d: %s\n", per->infd, strerror(errno));
+                    "fcntl failed on fd=%d: %s", per->infd, strerror(errno));
           }
         }
 
@@ -1216,7 +1216,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             if(uerr) {
               result = urlerr_cvt(uerr);
               errorf(global, "(%d) Could not parse the URL, "
-                     "failed to set query\n", result);
+                     "failed to set query", result);
               config->synthetic_error = TRUE;
             }
             else {
@@ -1327,7 +1327,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
         my_setopt_str(curl, CURLOPT_PROXY, config->proxy);
 
         if(config->proxy && result) {
-          errorf(global, "proxy support is disabled in this libcurl\n");
+          errorf(global, "proxy support is disabled in this libcurl");
           config->synthetic_error = TRUE;
           result = CURLE_NOT_BUILT_IN;
           break;
@@ -1399,7 +1399,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
         switch(config->httpreq) {
         case HTTPREQ_SIMPLEPOST:
           if(config->resume_from) {
-            errorf(global, "cannot mix --continue-at with --data\n");
+            errorf(global, "cannot mix --continue-at with --data");
             result = CURLE_FAILED_INIT;
           }
           else {
@@ -1414,7 +1414,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           curl_mime_free(config->mimepost);
           config->mimepost = NULL;
           if(config->resume_from) {
-            errorf(global, "cannot mix --continue-at with --form\n");
+            errorf(global, "cannot mix --continue-at with --form");
             result = CURLE_FAILED_INIT;
           }
           else {
@@ -1489,7 +1489,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           my_setopt(curl, CURLOPT_HTTP09_ALLOWED,
                     config->http09_allowed ? 1L : 0L);
           if(result) {
-            errorf(global, "HTTP/0.9 is not supported in this build!\n");
+            errorf(global, "HTTP/0.9 is not supported in this build!");
             return result;
           }
 
@@ -1544,7 +1544,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
         if(config->capath) {
           result = res_setopt_str(curl, CURLOPT_CAPATH, config->capath);
           if(result == CURLE_NOT_BUILT_IN) {
-            warnf(global, "ignoring %s, not supported by libcurl\n",
+            warnf(global, "ignoring %s, not supported by libcurl",
                   capath_from_env?
                   "SSL_CERT_DIR environment variable":"--capath");
           }
@@ -1561,7 +1561,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
           if(result == CURLE_NOT_BUILT_IN) {
             if(config->proxy_capath) {
               warnf(global,
-                    "ignoring --proxy-capath, not supported by libcurl\n");
+                    "ignoring --proxy-capath, not supported by libcurl");
             }
           }
           else if(result)
@@ -1830,7 +1830,7 @@ static CURLcode single_transfer(struct GlobalConfig *global,
             if(result) {
               warnf(global,
                     "skipped provided cookie, the cookie header "
-                    "would go over %u bytes\n", MAX_COOKIE_LINE);
+                    "would go over %u bytes", MAX_COOKIE_LINE);
               break;
             }
           }
@@ -2441,7 +2441,7 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
   if(result)
     return result;
   if(!added) {
-    errorf(global, "no transfer performed\n");
+    errorf(global, "no transfer performed");
     return CURLE_READ_ERROR;
   }
   for(per = transfers; per;) {
@@ -2494,7 +2494,7 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
          milliseconds */
       long milli = tvdiff(tvnow(), start);
       if(milli < global->ms_per_transfer) {
-        notef(global, "Transfer took %ld ms, waits %ldms as set by --rate\n",
+        notef(global, "Transfer took %ld ms, waits %ldms as set by --rate",
               milli, global->ms_per_transfer - milli);
         /* The transfer took less time than wanted. Wait a little. */
         tool_go_sleep(global->ms_per_transfer - milli);
@@ -2523,7 +2523,7 @@ static CURLcode transfer_per_config(struct GlobalConfig *global,
 
   /* Check we have a url */
   if(!config->url_list || !config->url_list->url) {
-    helpf(stderr, "(%d) no URL specified!\n", CURLE_FAILED_INIT);
+    helpf(stderr, "(%d) no URL specified", CURLE_FAILED_INIT);
     return CURLE_FAILED_INIT;
   }
 
@@ -2570,7 +2570,7 @@ static CURLcode transfer_per_config(struct GlobalConfig *global,
         if(!config->cacert) {
           curl_free(env);
           curl_easy_cleanup(curltls);
-          errorf(global, "out of memory\n");
+          errorf(global, "out of memory");
           return CURLE_OUT_OF_MEMORY;
         }
       }
@@ -2581,7 +2581,7 @@ static CURLcode transfer_per_config(struct GlobalConfig *global,
           if(!config->capath) {
             curl_free(env);
             curl_easy_cleanup(curltls);
-            helpf(stderr, "out of memory\n");
+            errorf(global, "out of memory");
             return CURLE_OUT_OF_MEMORY;
           }
           capath_from_env = true;
@@ -2593,7 +2593,7 @@ static CURLcode transfer_per_config(struct GlobalConfig *global,
             if(!config->cacert) {
               curl_free(env);
               curl_easy_cleanup(curltls);
-              errorf(global, "out of memory\n");
+              errorf(global, "out of memory");
               return CURLE_OUT_OF_MEMORY;
             }
           }
@@ -2780,7 +2780,7 @@ CURLcode operate(struct GlobalConfig *global, int argc, argv_item_t argv[])
         }
       }
       else
-        errorf(global, "out of memory\n");
+        errorf(global, "out of memory");
     }
   }
 
index bfcb6fcb4d7684210dc4bbff5eca37d21762060f..d2248442b1e2665b4b470e3df27cbb5a709bf817 100644 (file)
@@ -418,7 +418,7 @@ ParameterError proto2num(struct OperationConfig *config,
            if no protocols are allowed */
         if(action == set)
           protoset[0] = NULL;
-        warnf(config->global, "unrecognized protocol '%s'\n", token);
+        warnf(config->global, "unrecognized protocol '%s'", token);
       }
     }
   }
@@ -566,7 +566,7 @@ int ftpfilemethod(struct OperationConfig *config, const char *str)
   if(curl_strequal("multicwd", str))
     return CURLFTPMETHOD_MULTICWD;
 
-  warnf(config->global, "unrecognized ftp file method '%s', using default\n",
+  warnf(config->global, "unrecognized ftp file method '%s', using default",
         str);
 
   return CURLFTPMETHOD_MULTICWD;
@@ -579,7 +579,7 @@ int ftpcccmethod(struct OperationConfig *config, const char *str)
   if(curl_strequal("active", str))
     return CURLFTPSSL_CCC_ACTIVE;
 
-  warnf(config->global, "unrecognized ftp CCC method '%s', using default\n",
+  warnf(config->global, "unrecognized ftp CCC method '%s', using default",
         str);
 
   return CURLFTPSSL_CCC_PASSIVE;
@@ -594,7 +594,7 @@ long delegation(struct OperationConfig *config, const char *str)
   if(curl_strequal("always", str))
     return CURLGSSAPI_DELEGATION_FLAG;
 
-  warnf(config->global, "unrecognized delegation method '%s', using none\n",
+  warnf(config->global, "unrecognized delegation method '%s', using none",
         str);
 
   return CURLGSSAPI_DELEGATION_NONE;
@@ -665,7 +665,7 @@ CURLcode get_args(struct OperationConfig *config, const size_t i)
   if(!config->useragent) {
     config->useragent = my_useragent();
     if(!config->useragent) {
-      errorf(config->global, "out of memory\n");
+      errorf(config->global, "out of memory");
       result = CURLE_OUT_OF_MEMORY;
     }
   }
index 50d03f6669ea8005ccbc60415d0aac8078fb0b63..cc932a93c47837a11639ee2c183d3971ebead24b 100644 (file)
@@ -210,7 +210,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
             break;
           default:
             warnf(operation->global, "%s:%d: warning: '%s' uses unquoted "
-                  "whitespace in the line that may cause side-effects!\n",
+                  "whitespace in the line that may cause side-effects!",
                   filename, lineno, option);
           }
         }
@@ -263,7 +263,7 @@ int parseconfig(const char *filename, struct GlobalConfig *global)
            res != PARAM_VERSION_INFO_REQUESTED &&
            res != PARAM_ENGINES_REQUESTED) {
           const char *reason = param2text(res);
-          warnf(operation->global, "%s:%d: warning: '%s' %s\n",
+          warnf(operation->global, "%s:%d: warning: '%s' %s",
                 filename, lineno, option, reason);
         }
       }
index 0f3cc83b95d99ea10a04a2eda4a271b2a8c47e0c..08e8c2373bce17e780867ee4a2a3093fc4ac7ee9 100644 (file)
@@ -294,7 +294,7 @@ CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
 
 #ifdef DEBUGBUILD
   if(ret)
-    warnf(config, "option %s returned error (%d)\n", name, (int)ret);
+    warnf(config, "option %s returned error (%d)", name, (int)ret);
 #endif
 nomem:
   return ret;