mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-28 12:05:47 +08:00
* Makefile.in (cygcheck.o): Fix so that actual mingw include files are used.
* cygcheck.cc (find_on_path): Translate from cygwin path when qualified path name found. (pretty_id): New function. Dump output of id command. (dump_sysinfo): Call pretty_id for CYGWIN=ntsec and CYGWIN=nontsec cases.
This commit is contained in:
parent
005c3065eb
commit
dbc49afd52
@ -1,3 +1,12 @@
|
||||
2003-02-28 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* Makefile.in (cygcheck.o): Fix so that actual mingw include files are
|
||||
used.
|
||||
* cygcheck.cc (find_on_path): Translate from cygwin path when qualified
|
||||
path name found.
|
||||
(pretty_id): New function. Dump output of id command.
|
||||
(dump_sysinfo): Call pretty_id for CYGWIN=ntsec and CYGWIN=nontsec cases.
|
||||
|
||||
2003-02-12 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* cygpath.cc (doit): Allocate more space for non-path filename.
|
||||
|
@ -147,10 +147,10 @@ endif
|
||||
|
||||
cygcheck.o: cygcheck.cc
|
||||
ifdef VERBOSE
|
||||
${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) -I$(updir) $<
|
||||
${CXX} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) -I$(updir) $<
|
||||
else
|
||||
@echo $(CXX) $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) ... $^;\
|
||||
${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) -I$(updir) $<
|
||||
${CXX} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) -I$(updir) $<
|
||||
endif
|
||||
|
||||
strace.o: strace.cc
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* cygcheck.cc
|
||||
|
||||
Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
||||
Copyright 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
@ -13,7 +13,9 @@
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include <ctype.h>
|
||||
#include <io.h>
|
||||
#include <windows.h>
|
||||
#include "path.h"
|
||||
#include "cygwin/include/sys/cygwin.h"
|
||||
#include "cygwin/include/mntent.h"
|
||||
#include "cygwin/include/getopt.h"
|
||||
@ -171,7 +173,7 @@ find_on_path (char *file, char *default_extension,
|
||||
static char rv[4000];
|
||||
char tmp[4000], *ptr = rv;
|
||||
|
||||
if (file == NULL)
|
||||
if (!file)
|
||||
{
|
||||
keyeprint ("find_on_path: NULL pointer for file");
|
||||
return 0;
|
||||
@ -184,7 +186,7 @@ find_on_path (char *file, char *default_extension,
|
||||
}
|
||||
|
||||
if (strchr (file, ':') || strchr (file, '\\') || strchr (file, '/'))
|
||||
return file;
|
||||
return cygpath (file, NULL);
|
||||
|
||||
if (strchr (file, '.'))
|
||||
default_extension = (char *) "";
|
||||
@ -759,6 +761,74 @@ scan_registry (RegInfo * prev, HKEY hKey, char *name, int cygnus)
|
||||
free (subkey_name);
|
||||
}
|
||||
|
||||
void
|
||||
pretty_id (const char *s, char *cygwin, size_t cyglen)
|
||||
{
|
||||
char *groups[16384];
|
||||
|
||||
strcpy (cygwin + cyglen++, " ");
|
||||
strcpy (cygwin + cyglen, s);
|
||||
putenv (cygwin);
|
||||
|
||||
char *id = cygpath ("/bin/id.exe", NULL);
|
||||
for (char *p = id; p = strchr (p, '/'); p++)
|
||||
*p = '\\';
|
||||
|
||||
if (access (id, X_OK))
|
||||
{
|
||||
fprintf (stderr, "`id' program not found\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
FILE *f = popen (id, "rt");
|
||||
|
||||
char buf[16384];
|
||||
fgets (buf, sizeof (buf), f);
|
||||
char *uid = strtok (buf, " ") + sizeof ("uid=") - 1;
|
||||
char *gid = strtok (NULL, " ") + sizeof ("gid=") - 1;
|
||||
char **ng;
|
||||
size_t sz = 0;
|
||||
for (ng = groups; (*ng = strtok (NULL, ",")); ng++)
|
||||
{
|
||||
char *p = strchr (*ng, '\n');
|
||||
if (p)
|
||||
*p = '\0';
|
||||
if (ng == groups)
|
||||
*ng += sizeof ("groups=") - 1;
|
||||
size_t len = strlen (*ng);
|
||||
if (sz < len)
|
||||
sz = len;
|
||||
}
|
||||
|
||||
printf ("\n%s output (%s)\n", id, s);
|
||||
int szmaybe = sizeof ("UID: ") + strlen (uid) - 1;
|
||||
if (sz < szmaybe)
|
||||
sz = szmaybe;
|
||||
sz += 1;
|
||||
int n = 80 / (int) sz;
|
||||
sz = -sz;
|
||||
ng[0] += sizeof ("groups=") - 1;
|
||||
printf ("UID: %*s GID: %s\n", sz + (sizeof ("UID: ") - 1), uid, gid);
|
||||
int i = 0;
|
||||
for (char **g = groups; g < ng; g++)
|
||||
{
|
||||
if (i < n)
|
||||
i++;
|
||||
else
|
||||
{
|
||||
i = 0;
|
||||
puts ("");
|
||||
}
|
||||
if (++i <= n && g != (ng - 1))
|
||||
printf ("%*s ", sz, *g);
|
||||
else
|
||||
{
|
||||
printf ("%s\n", *g);
|
||||
i = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
dump_sysinfo ()
|
||||
{
|
||||
@ -878,6 +948,16 @@ dump_sysinfo ()
|
||||
s = e + 1;
|
||||
}
|
||||
|
||||
fflush (stdout);
|
||||
|
||||
char *cygwin = getenv ("CYGWIN") ?: const_cast <char *> ("CYGWIN=");
|
||||
size_t cyglen = strlen (cygwin);
|
||||
cygwin = strcpy ((char *) malloc (cyglen + sizeof (" nontsec")), cygwin);
|
||||
pretty_id ("nontsec", cygwin, cyglen);
|
||||
pretty_id ("ntsec", cygwin, cyglen);
|
||||
cygwin[cyglen] = 0;
|
||||
putenv (cygwin);
|
||||
|
||||
if (!GetSystemDirectory (tmp, 4000))
|
||||
keyeprint ("dump_sysinfo: GetSystemDirectory()");
|
||||
printf ("\nSysDir: %s\n", tmp);
|
||||
|
Loading…
x
Reference in New Issue
Block a user