[Patch] Make cygcheck handle Window paths with spaces
Pierre A. Humblet
pierre@phumblet.no-ip.org
Tue Dec 30 20:15:00 GMT 2008
Formatting is more likely to be preserved in the attached files.
Pierre
2008-12-30 Pierre Humblet <Pierre.Humblet@ieee.org>
* cygcheck.cc (pretty_id): Quote the path for popen.
(dump_sysinfo_services): Ditto.
Index: cygcheck.cc
===================================================================
RCS file: /cvs/src/src/winsup/utils/cygcheck.cc,v
retrieving revision 1.105
diff -u -p -r1.105 cygcheck.cc
--- cygcheck.cc 12 Sep 2008 22:43:10 -0000 1.105
+++ cygcheck.cc 30 Dec 2008 19:20:32 -0000
@@ -1032,9 +1032,10 @@ pretty_id (const char *s, char *cygwin,
return;
}
- FILE *f = popen (id, "rt");
-
char buf[16384];
+ snprintf (buf, sizeof (buf), "\"%s\"", id);
+ FILE *f = popen (buf, "rt");
+
buf[0] = '\0';
fgets (buf, sizeof (buf), f);
pclose (f);
@@ -1118,7 +1119,7 @@ dump_sysinfo_services ()
}
/* check for a recent cygrunsrv */
- snprintf (buf, sizeof (buf), "%s --version", cygrunsrv);
+ snprintf (buf, sizeof (buf), "\"%s\" --version", cygrunsrv);
if ((f = popen (buf, "rt")) == NULL)
{
printf ("Failed to execute '%s', skipping services check.\n", buf);
@@ -1136,7 +1137,7 @@ dump_sysinfo_services ()
/* For verbose mode, just run cygrunsrv --list --verbose and copy output
verbatim; otherwise run cygrunsrv --list and then cygrunsrv --query for
each service. */
- snprintf (buf, sizeof (buf), (verbose ? "%s --list --verbose" : "%s --list"),
+ snprintf (buf, sizeof (buf), (verbose ? "\"%s\" --list --verbose" : "%s --list"),
cygrunsrv);
if ((f = popen (buf, "rt")) == NULL)
{
@@ -1167,7 +1168,7 @@ dump_sysinfo_services ()
if (nchars > 0)
for (char *srv = strtok (buf, "\n"); srv; srv = strtok (NULL, "\n"))
{
- snprintf (buf2, sizeof (buf2), "%s --query %s", cygrunsrv, srv);
+ snprintf (buf2, sizeof (buf2), "\"%s\" --query %s", cygrunsrv, srv);
if ((f = popen (buf2, "rt")) == NULL)
{
printf ("Failed to execute '%s', skipping services check.\n", buf2);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cygcheck.cc.diff
Type: application/octet-stream
Size: 1789 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20081230/2d8c561e/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ChangeLog.cygcheck
Type: application/octet-stream
Size: 151 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20081230/2d8c561e/attachment-0001.obj>
More information about the Cygwin-patches
mailing list