summaryrefslogtreecommitdiffstats
path: root/winsup/utils/cygcheck.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/utils/cygcheck.cc')
-rw-r--r--winsup/utils/cygcheck.cc60
1 files changed, 47 insertions, 13 deletions
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index 11a04d467..0f905a956 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -8,6 +8,8 @@
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+typedef unsigned short uid_t;
+typedef unsigned short gid_t;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -16,6 +18,7 @@
#include <mntent.h>
#include <time.h>
#include <getopt.h>
+#include <ctype.h>
int verbose = 0;
int registry = 0;
@@ -134,18 +137,14 @@ init_paths ()
GetWindowsDirectory (tmp, 4000);
add_path (tmp, strlen (tmp));
- char *path = getenv ("PATH");
- if (path)
+ char *wpath = getenv ("PATH");
+ if (wpath)
{
- char wpath[4000];
- cygwin_posix_to_win32_path_list (path, wpath);
- char *b, *e, sep = ':';
- if (strchr (wpath, ';'))
- sep = ';';
+ char *b, *e;
b = wpath;
while (1)
{
- for (e = b; *e && *e != sep; e++);
+ for (e = b; *e && *e != ';'; e++);
add_path (b, e - b);
if (!*e)
break;
@@ -350,6 +349,7 @@ cygwin_info (HANDLE h)
return;
}
+ char *dll_major;
bufend = buf + size;
while (buf < bufend)
if ((buf = (char *) memchr (buf, '%', bufend - buf)) == NULL)
@@ -361,9 +361,33 @@ cygwin_info (HANDLE h)
char *p = strchr (buf += CYGPREFIX, '\n');
if (!p)
break;
- fputs (hello, stdout);
- fputs (" ", stdout);
- fwrite (buf, 1 + p - buf, 1, stdout);
+ if (strncasecmp (buf, "dll major:", 10) == 0)
+ {
+ dll_major = buf + 11;
+ continue;
+ }
+ char *s, pbuf[80];
+ int len;
+ len = 1 + p - buf;
+ if (strncasecmp (buf, "dll minor:", 10) != 0)
+ s = buf;
+ else
+ {
+ char c = dll_major[1];
+ dll_major[1] = '\0';
+ int maj = atoi (dll_major);
+ dll_major[1] = c;
+ int min = atoi (dll_major + 1);
+ sprintf (pbuf, "DLL version: %d.%d.%.*s", maj, min, len - 11, buf + 11);
+ len = strlen (s = pbuf);
+ }
+ if (strncmp (s, "dll", 3) == 0)
+ memcpy (s, "DLL", 3);
+ else if (strncmp (s, "api", 3) == 0)
+ memcpy (s, "API", 3);
+ else if (islower (*s))
+ *s = toupper (*s);
+ fprintf (stdout, "%s %.*s", hello, len, s);
hello = "";
}
@@ -987,6 +1011,18 @@ dump_sysinfo ()
unsigned int ml_fsname = 4, ml_dir = 7, ml_type = 6;
+ struct mntent *mnt;
+ setmntent (0, 0);
+ while ((mnt = getmntent (0)))
+ {
+ int n = (int) strlen (mnt->mnt_fsname);
+ if (ml_fsname < n)
+ ml_fsname = n;
+ n = (int) strlen (mnt->mnt_dir);
+ if (ml_dir < n)
+ ml_dir = n;
+ }
+
if (givehelp)
{
printf
@@ -995,9 +1031,7 @@ dump_sysinfo ()
ml_type, "-Type-", "-Flags-");
}
- struct mntent *mnt;
setmntent (0, 0);
-
while ((mnt = getmntent (0)))
{
printf ("%-*s %-*s %-*s %s\n",