]> granicus.if.org Git - curl/commitdiff
urlglob: improve error message
authorDaniel Stenberg <daniel@haxx.se>
Tue, 11 Sep 2018 20:03:47 +0000 (22:03 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 13 Sep 2018 06:04:49 +0000 (08:04 +0200)
to help user understand what the problem is

Reported-by: Daniel Shahaf
Fixes #2763
Closes #2977

src/tool_urlglob.c
tests/data/test75

index cb87706cc7138626b2ae0a92cfe660ab7486d690..e4a5c33db15d16773cb2d33ae27bb0ea184efe3c 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -459,18 +459,19 @@ CURLcode glob_url(URLGlob **glob, char *url, unsigned long *urlnum,
     *urlnum = amount;
   else {
     if(error && glob_expand->error) {
-      char text[128];
+      char text[512];
       const char *t;
       if(glob_expand->pos) {
-        snprintf(text, sizeof(text), "%s in column %zu", glob_expand->error,
-                 glob_expand->pos);
+        snprintf(text, sizeof(text), "%s in URL position %zu:\n%s\n%*s^",
+                 glob_expand->error,
+                 glob_expand->pos, url, glob_expand->pos - 1, " ");
         t = text;
       }
       else
         t = glob_expand->error;
 
       /* send error description to the error-stream */
-      fprintf(error, "curl: (%d) [globbing] %s\n", res, t);
+      fprintf(error, "curl: (%d) %s\n", res, t);
     }
     /* it failed, we cleanup */
     glob_cleanup(glob_expand);
index d8836b95ea7d5bd541df8e329b0cd3e8a98d444f..115963dfa9b16ff7efab4b8f600eedfe75fd971a 100644 (file)
@@ -44,7 +44,9 @@ perl %SRCDIR/libtest/test75.pl http://%HOSTIP:%HTTPPORT/ 22
 3
 </errorcode>
 <stdout mode="text">
-curl: (3) [globbing] bad range in column 47
+curl: (3) bad range in URL position 47:
+http://a-site-never-accessed.example.org/[2-1]
+                                              ^
 </stdout>
 </verify>
 </testcase>