summaryrefslogtreecommitdiff
path: root/Build/source/libs/libgnuw32/user.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/libgnuw32/user.c')
-rw-r--r--Build/source/libs/libgnuw32/user.c224
1 files changed, 0 insertions, 224 deletions
diff --git a/Build/source/libs/libgnuw32/user.c b/Build/source/libs/libgnuw32/user.c
deleted file mode 100644
index ec870c278b4..00000000000
--- a/Build/source/libs/libgnuw32/user.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/* Utility and Unix shadow routines for XEmacs on Windows NT.
- Copyright (C) 1994, 1995 Free Software Foundation, Inc.
-
-This file is part of XEmacs.
-
-XEmacs is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-XEmacs is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with XEmacs; see the file COPYING. If not, write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
-
-
- Geoff Voelker (voelker@cs.washington.edu) 7-29-94 */
-
-/* Adapted for XEmacs by David Hobley <david@spook-le0.cia.com.au> */
-/* Sync'ed with Emacs 19.34.6 by Marc Paquette <marcpa@cam.org> */
-/* Adapted to fpTeX 0.4 by Fabrice Popineau <Fabrice.Popineau@supelec.fr> */
-
-/* Emulate getpwuid, getpwnam and others. */
-
-#include <win32lib.h>
-
-#define PASSWD_FIELD_SIZE 256
-
-static char the_passwd_name[PASSWD_FIELD_SIZE];
-static char the_passwd_passwd[PASSWD_FIELD_SIZE];
-static char the_passwd_gecos[PASSWD_FIELD_SIZE];
-static char the_passwd_dir[PASSWD_FIELD_SIZE];
-static char the_passwd_shell[PASSWD_FIELD_SIZE];
-
-struct passwd the_passwd =
-{
- the_passwd_name,
- the_passwd_passwd,
- 0,
- 0,
- 0,
- the_passwd_gecos,
- the_passwd_dir,
- the_passwd_shell,
-};
-
-int
-getuid ()
-{
- return the_passwd.pw_uid;
-}
-
-int
-geteuid ()
-{
- /* I could imagine arguing for checking to see whether the user is
- in the Administrators group and returning a UID of 0 for that
- case, but I don't know how wise that would be in the long run. */
- return getuid ();
-}
-
-int
-getgid ()
-{
- return the_passwd.pw_gid;
-}
-
-int
-getegid ()
-{
- return getgid ();
-}
-
-struct passwd *
-getpwuid (int uid)
-{
- if (uid == the_passwd.pw_uid)
- return &the_passwd;
- return NULL;
-}
-
-struct passwd *
-getpwnam (const char *name)
-{
- struct passwd *pw;
-
- pw = getpwuid (getuid ());
- if (!pw)
- return pw;
-
- if (stricmp (name, pw->pw_name))
- return NULL;
-
- return pw;
-}
-
-void
-init_user_info ()
-{
- /* Find the user's real name by opening the process token and
- looking up the name associated with the user-sid in that token.
-
- Use the relative portion of the identifier authority value from
- the user-sid as the user id value (same for group id using the
- primary group sid from the process token). */
-#if 0
- char user_sid[256], name[256], domain[256];
- DWORD length = sizeof (name), dlength = sizeof (domain), trash;
- HANDLE token = NULL;
- SID_NAME_USE user_type;
-
- if (OpenProcessToken (GetCurrentProcess (), TOKEN_QUERY, &token)
- && GetTokenInformation (token, TokenUser,
- (PVOID) user_sid, sizeof (user_sid), &trash)
- && LookupAccountSid (NULL, *((PSID *) user_sid), name, &length,
- domain, &dlength, &user_type))
- {
- strcpy (the_passwd.pw_name, name);
- /* Determine a reasonable uid value. */
- if (stricmp ("administrator", name) == 0)
- {
- the_passwd.pw_uid = 0;
- the_passwd.pw_gid = 0;
- }
- else
- {
- SID_IDENTIFIER_AUTHORITY * pSIA;
-
- pSIA = GetSidIdentifierAuthority (*((PSID *) user_sid));
- /* I believe the relative portion is the last 4 bytes (of 6)
- with msb first. */
- the_passwd.pw_uid = ((pSIA->Value[2] << 24) +
- (pSIA->Value[3] << 16) +
- (pSIA->Value[4] << 8) +
- (pSIA->Value[5] << 0));
- /* restrict to conventional uid range for normal users */
- the_passwd.pw_uid = the_passwd.pw_uid % 60001;
-
- /* Get group id */
- if (GetTokenInformation (token, TokenPrimaryGroup,
- (PVOID) user_sid, sizeof (user_sid), &trash))
- {
- SID_IDENTIFIER_AUTHORITY * pSIA;
-
- pSIA = GetSidIdentifierAuthority (*((PSID *) user_sid));
- the_passwd.pw_gid = ((pSIA->Value[2] << 24) +
- (pSIA->Value[3] << 16) +
- (pSIA->Value[4] << 8) +
- (pSIA->Value[5] << 0));
- /* I don't know if this is necessary, but for safety... */
- the_passwd.pw_gid = the_passwd.pw_gid % 60001;
- }
- else
- the_passwd.pw_gid = the_passwd.pw_uid;
- }
- }
- /* If security calls are not supported (presumably because we
- are running under Windows 95), fallback to this. */
- else
- if (GetUserName (name, &length))
- {
- strcpy (the_passwd.pw_name, name);
- if (stricmp ("administrator", name) == 0)
- the_passwd.pw_uid = 0;
- else
- the_passwd.pw_uid = 123;
- the_passwd.pw_gid = the_passwd.pw_uid;
- }
- else
-#else
- {
- strcpy (the_passwd.pw_name, "unknown");
- the_passwd.pw_uid = 123;
- the_passwd.pw_gid = 123;
- }
-#endif
-
- /* Ensure HOME and SHELL are defined. */
-#if 1
- /*
- * With XEmacs, setting $HOME is deprecated.
- * But with fpTeX, it is safer to assume $HOME defined.
- */
- {
- char *home = get_home_directory();
- if (home) {
- putenv(concat("HOME=", home));
- }
- else {
- putenv ("HOME=c:/");
- }
- }
-#endif
- if (getenv ("SHELL") == NULL)
- putenv ((GetVersion () & 0x80000000) ? "SHELL=command" : "SHELL=cmd");
-
- {
- /* Win2K problem : we need a specific TEMP directory with
- full access rights so that any user building a format file
- or a font file will build it with full access rights. The installer
- takes care of defining TEXMFTEMP=$SELFAUTOPARENT/tmp in the environment.
- If it is defined, then use it as the TEMP and TMP variables.
- */
- char *p;
- if ((p = getenv("TEXMFTEMP")) != NULL) {
- putenv(concat("TEMP=", p));
- putenv(concat("TMP=", p));
- }
- }
-
- /* Set dir and shell from environment variables. */
- strcpy (the_passwd.pw_dir, get_home_directory());
- strcpy (the_passwd.pw_shell, getenv ("SHELL"));
-
-#if 0
- if (token)
- CloseHandle (token);
-#endif
-}