Rolf Campbell wrote:
What about filenames with spaces in them? Wouldn't the output be ambiguous?
Mark Blackburn wrote:
Dunno if anybody will find this useful or not:
Currently if you say:
# cygpath -w /usr /lib
you get a usage error. With my patch you get:
# cygpath -w /usr /lib c:\cygwin\usr c:\cygwin\lib
Mark.
------------------------------------------------------------------------
Index: utils/cygpath.cc
===================================================================
RCS file: /cvs/src/src/winsup/utils/cygpath.cc,v
retrieving revision 1.28
diff -u -p -r1.28 cygpath.cc
--- utils/cygpath.cc 12 Jun 2003 20:40:58 -0000 1.28
+++ utils/cygpath.cc 17 Jul 2003 20:36:17 -0000
@@ -479,7 +479,7 @@ doit (char *filename)
}
}
- puts (buf);
+ printf ("%s", buf);
}
static void
@@ -675,11 +675,16 @@ main (int argc, char **argv)
if (output_flag)
dowin (o);
- if (optind != argc - 1)
+ if (optind > argc - 1)
usage (stderr, 1);
- filename = argv[optind];
- doit (filename);
+ for (int i=optind; argv[i]; i++) {
+ if (i != optind)
+ printf(" ");
+ filename = argv[i];
+ doit (filename);
+ }
+ printf("\n");
}
else
{
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
? aoeu Index: utils/cygpath.cc =================================================================== RCS file: /cvs/src/src/winsup/utils/cygpath.cc,v retrieving revision 1.28 diff -u -p -r1.28 cygpath.cc --- utils/cygpath.cc 12 Jun 2003 20:40:58 -0000 1.28 +++ utils/cygpath.cc 18 Jul 2003 05:20:07 -0000 @@ -30,6 +30,7 @@ static int shortname_flag, longname_flag static int ignore_flag, allusers_flag, output_flag; static int mixed_flag; static const char *format_type_arg; +static int quote_output; static struct option long_options[] = { {(char *) "absolute", no_argument, NULL, 'a'}, @@ -479,7 +480,10 @@ doit (char *filename) } } - puts (buf); + if (quote_output && strchr(buf,' ') != NULL) + printf("\"%s\"", buf); + else + printf ("%s", buf); } static void @@ -675,11 +679,21 @@ main (int argc, char **argv) if (output_flag) dowin (o); - if (optind != argc - 1) + if (optind > argc - 1) usage (stderr, 1); - filename = argv[optind]; - doit (filename); + if (optind == argc - 1) + quote_output = 0; + else + quote_output = 1; + + for (int i=optind; argv[i]; i++) { + if (i != optind) + printf(" "); + filename = argv[i]; + doit (filename); + } + printf("\n"); } else {
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/