diff -NaurwB curl-7.19.2.orig/src/main.c curl-7.19.2/src/main.c
--- curl-7.19.2.orig/src/main.c	2008-10-28 23:12:02.000000000 +0100
+++ curl-7.19.2/src/main.c	2009-01-04 00:08:45.000000000 +0100
@@ -94,6 +94,11 @@
 #include <locale.h> /* for setlocale() */
 #endif
 
+#define HAVE_WCHAR_H 1
+#ifdef HAVE_WCHAR_H
+#include <wchar.h> /* for mbsrtowcs() */
+#endif
+
 #define ENABLE_CURLX_PRINTF
 /* make the curlx header define all printf() functions to use the curlx_*
    versions instead */
@@ -498,6 +503,7 @@
   bool tracetime; /* include timestamp? */
   long httpversion;
   bool progressmode;
+  char *progress_prefix;
   bool nobuffer;
   bool globoff;
   bool use_httpget;
@@ -784,6 +790,7 @@
     "    --post301       Do not switch to GET after following a 301 redirect (H)",
     "    --post302       Do not switch to GET after following a 302 redirect (H)",
     " -#/--progress-bar  Display transfer progress as a progress bar",
+    "    --progress-bar-prefix Prefix to be displayed before the progress bar",
     " -x/--proxy <host[:port]> Use HTTP proxy on given port",
     "    --proxy-anyauth Pick \"any\" proxy authentication method (H)",
     "    --proxy-basic   Use Basic authentication on the proxy (H)",
@@ -1672,7 +1679,7 @@
     {"$2", "socks5-hostname", TRUE},
     {"$3", "keepalive-time",  TRUE},
     {"$4", "post302",    FALSE},
-
+    {"$5", "progress-bar-prefix",TRUE},
     {"0", "http1.0",     FALSE},
     {"1", "tlsv1",       FALSE},
     {"2", "sslv2",       FALSE},
@@ -2181,6 +2188,9 @@
       case '4': /* --post302 */
         config->post302 = toggle;
         break;
+      case '5': /* --progress-bar-prefix */
+        GetStr(&config->progress_prefix, nextarg);
+        break;
       }
       break;
     case '#': /* --progress-bar */
@@ -3297,6 +3307,7 @@
   int width;
   FILE *out; /* where to write everything to */
   curl_off_t initial_size;
+  char* prefix;
 };
 
 static int myprogress (void *clientp,
@@ -3347,8 +3358,13 @@
       line[i] = '#';
     }
     line[i] = '\0';
+    if(bar->prefix) {
+      snprintf( format, sizeof(format), "%%s%%-%ds %%5.1f%%%%", barwidth );
+      snprintf( outline, sizeof(outline), format, bar->prefix, line, percent );
+    } else {
     snprintf( format, sizeof(format), "%%-%ds %%5.1f%%%%", barwidth );
     snprintf( outline, sizeof(outline), format, line, percent );
+    }
     fprintf( bar->out, "\r%s", outline );
   }
   fflush(bar->out);
@@ -3399,6 +3415,25 @@
   bar->width = scr_size[0] - 1;
 #endif
 
+  if(config->progress_prefix) {
+#ifdef HAVE_WCHAR_H
+    mbstate_t state;
+    memset(&state, 0, sizeof(state));
+    const char** ptr = (const char**)(&config->progress_prefix);
+    size_t length = mbsrtowcs(NULL, ptr, 0, &state);
+    if(length == (size_t)-1) {
+#endif
+      int length = strlen(config->progress_prefix);
+#ifdef HAVE_WCHAR_H
+    }
+#endif
+    if(length > bar->width) {
+      length /= 2;
+      config->progress_prefix[length] = '\0';
+    }
+    bar->width -= length;
+    bar->prefix = config->progress_prefix;
+  }
   bar->out = config->errors;
 }
 

