Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2004-10-15 17:57:56 +0400
committerChristopher Faylor <me@cgf.cx>2004-10-15 17:57:56 +0400
commit167f0d851375bb0c21b39a315526866b7b7affd1 (patch)
treec9ec7d5e6d59279b1af0d03675c92c9f71280098 /winsup/utils
parent12a638f990d6bb2456097cc303f3ace6cfb5ec3b (diff)
* cygcheck.cc (pretty_id): Don't exit on id error. Fix size calculations.
Diffstat (limited to 'winsup/utils')
-rw-r--r--winsup/utils/ChangeLog6
-rw-r--r--winsup/utils/cygcheck.cc19
2 files changed, 16 insertions, 9 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 9b236f031..1462b316e 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-15 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
+ Christopher Faylor <cgf@timesys.com>
+
+ * cygcheck.cc (pretty_id): Don't exit on id error. Fix size
+ calculations.
+
2004-10-14 Christopher Faylor <cgf@timesys.com>
Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index 327e3ccec..64130eeca 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -802,7 +802,7 @@ pretty_id (const char *s, char *cygwin, size_t cyglen)
else
{
fprintf (stderr, "garbled output from `id' command - no uid= found\n");
- exit (1);
+ return;
}
char *gid = strtok (NULL, ")");
if (gid)
@@ -810,14 +810,14 @@ pretty_id (const char *s, char *cygwin, size_t cyglen)
else
{
fprintf (stderr, "garbled output from `id' command - no gid= found\n");
- exit (1);
+ return;
}
char **ng = groups - 1;
size_t len_uid = strlen (uid);
size_t len_gid = strlen (gid);
- *++ng = groups[0] = (char *) alloca (len_uid += sizeof ("UID: )"));
- *++ng = groups[1] = (char *) alloca (len_uid += sizeof ("GID: )"));
+ *++ng = groups[0] = (char *) alloca (len_uid += sizeof ("UID: )") - 1);
+ *++ng = groups[1] = (char *) alloca (len_gid += sizeof ("GID: )") - 1);
sprintf (groups[0], "UID: %s)", uid);
sprintf (groups[1], "GID: %s)", gid);
size_t sz = max (len_uid, len_gid);
@@ -832,13 +832,14 @@ pretty_id (const char *s, char *cygwin, size_t cyglen)
if (sz < len)
sz = len;
}
+ ng--;
printf ("\nOutput from %s (%s)\n", id, s);
- int n = 80 / (int) sz;
- sz = -(sz + 1);
- int i = n - 2;
- for (char **g = groups; g < ng; g++)
- if ((g != ng - 1) && (++i < n))
+ int n = 80 / (int) ++sz;
+ int i = n ? n - 2 : 0;
+ sz = -sz;
+ for (char **g = groups; g <= ng; g++)
+ if ((g != ng) && (++i < n))
printf ("%*s ", sz, *g);
else
{