diff options
author | Christopher Faylor <me@cgf.cx> | 2004-10-15 13:57:56 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-10-15 13:57:56 +0000 |
commit | 167f0d851375bb0c21b39a315526866b7b7affd1 (patch) | |
tree | c9ec7d5e6d59279b1af0d03675c92c9f71280098 /winsup/utils | |
parent | 12a638f990d6bb2456097cc303f3ace6cfb5ec3b (diff) | |
download | cygnal-167f0d851375bb0c21b39a315526866b7b7affd1.tar.gz cygnal-167f0d851375bb0c21b39a315526866b7b7affd1.tar.bz2 cygnal-167f0d851375bb0c21b39a315526866b7b7affd1.zip |
* cygcheck.cc (pretty_id): Don't exit on id error. Fix size calculations.
Diffstat (limited to 'winsup/utils')
-rw-r--r-- | winsup/utils/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/utils/cygcheck.cc | 19 |
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 { |