--- main.c.~1.197.~	2003-08-18 15:04:29.000000000 -0700
+++ main.c	2003-09-17 11:41:02.000000000 -0700
@@ -1777,14 +1777,34 @@
     case 'V':
     {
       const char **proto;
+      FILE *out_file;
 
-      printf(CURL_ID "%s\n", curl_version());
+      /*
+       * Figure out where to send output.  Either stdout,
+       * or the first outfile specified with -o/--output.
+       */
+      if (config->url_list && config->url_list->outfile &&
+	  (config->url_list->flags & GETOUT_OUTFILE) &&
+	  !curl_strequal("-",config->url_list->outfile))
+      {
+	out_file = fopen(config->url_list->outfile,"w");
+	if (!out_file)
+	{
+	  fprintf(config->errors,"error opening %s, "
+		  "using stdout\n",config->url_list->outfile);
+	  out_file = stdout;
+	}
+      }
+      else
+	out_file = stdout;
+
+      fprintf(out_file,CURL_ID "%s\n", curl_version());
       if (curlinfo->protocols) {
-        printf("Protocols: ");
+        fprintf(out_file,"Protocols: ");
         for (proto=curlinfo->protocols; *proto; ++proto) {
-          printf("%s ", *proto);
+          fprintf(out_file,"%s ", *proto);
         }
-        puts(""); /* newline */
+        fprintf(out_file,"\n");
       }
       if(curlinfo->features) {
         unsigned int i;
@@ -1802,13 +1822,15 @@
           {"Debug", CURL_VERSION_DEBUG},
           {"AsynchDNS", CURL_VERSION_ASYNCHDNS}
         };
-        printf("Features: ");
+        fprintf(out_file,"Features: ");
         for(i=0; i<sizeof(feats)/sizeof(feats[0]); i++) {
           if(curlinfo->features & feats[i].bitmask)
-            printf("%s ", feats[i].name);
+            fprintf(out_file,"%s ", feats[i].name);
         }
-        puts(""); /* newline */
+        fprintf(out_file,"\n");
       }
+      if (out_file != stdout)
+	fclose(out_file);
     }
     return PARAM_HELP_REQUESTED;
     case 'w':
@@ -2519,6 +2541,7 @@
 
   main_init(); /* inits */
 
+  config->errors = stderr;
   config->showerror=TRUE;
   config->conf=CONF_DEFAULT;
   config->use_httpget=FALSE;

