This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
[newlib-cygwin] Drop Windows 2000 considerations in ps, fix uid field length
- From: Corinna Vinschen <corinna at sourceware dot org>
- To: cygwin-cvs at sourceware dot org
- Date: 10 Jun 2015 09:07:36 -0000
- Subject: [newlib-cygwin] Drop Windows 2000 considerations in ps, fix uid field length
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7701a023ff6e5861b0d875551070fa4df3e2525c
commit 7701a023ff6e5861b0d875551070fa4df3e2525c
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Wed Jun 10 11:07:27 2015 +0200
Drop Windows 2000 considerations in ps, fix uid field length
* ps.cc (main): Widen UID field in long format to accommodate longer
UIDs since Cygwin 1.7.34. Remove Windows 2000 considerations. Fix
comments accordingly.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/utils/ChangeLog | 6 ++++++
winsup/utils/ps.cc | 47 ++++++++++++++++-------------------------------
2 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 70fef4a..f9a25b2 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,3 +1,9 @@
+2015-06-10 Corinna Vinschen <corinna@vinschen.de>
+
+ * ps.cc (main): Widen UID field in long format to accommodate longer
+ UIDs since Cygwin 1.7.34. Remove Windows 2000 considerations. Fix
+ comments accordingly.
+
2015-06-08 Corinna Vinschen <corinna@vinschen.de>
* path.cc (from_fstab_line): Don't convert slashes to backslashes for
diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc
index 952b63e..081fd6e 100644
--- a/winsup/utils/ps.cc
+++ b/winsup/utils/ps.cc
@@ -158,8 +158,8 @@ main (int argc, char *argv[])
const char *dfmt = "%7d%4s%10s %s\n";
const char *ftitle = " UID PID PPID TTY STIME COMMAND\n";
const char *ffmt = "%8.8s%8d%8d%4s%10s %s\n";
- const char *ltitle = " PID PPID PGID WINPID TTY UID STIME COMMAND\n";
- const char *lfmt = "%c %7d %7d %7d %10u %4s %4u %8s %s\n";
+ const char *ltitle = " PID PPID PGID WINPID TTY UID STIME COMMAND\n";
+ const char *lfmt = "%c %7d %7d %7d %10u %4s %8u %8s %s\n";
char ch;
PUNICODE_STRING uni = (PUNICODE_STRING) unicode_buf;
void *drive_map = NULL;
@@ -259,27 +259,15 @@ main (int argc, char *argv[])
version.dwOSVersionInfoSize = sizeof version;
GetVersionEx (&version);
if (version.dwMajorVersion <= 5) /* pre-Vista */
- {
- proc_access = PROCESS_QUERY_INFORMATION;
- if (version.dwMinorVersion < 1) /* Windows 2000 */
- proc_access |= PROCESS_VM_READ;
- else
- {
- }
- }
-
- /* Except on Windows 2000, fetch an opaque drive mapping object from the
- Cygwin DLL. This is used to map NT device paths to Win32 paths. */
- if (!(proc_access & PROCESS_VM_READ))
- {
- drive_map = (void *) cygwin_internal (CW_ALLOC_DRIVE_MAP);
- /* Check old Cygwin version. */
- if (drive_map == (void *) -1)
- drive_map = NULL;
- /* Allow fallback to GetModuleFileNameEx for post-W2K. */
- if (!drive_map)
- proc_access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ;
- }
+ proc_access = PROCESS_QUERY_INFORMATION;
+
+ drive_map = (void *) cygwin_internal (CW_ALLOC_DRIVE_MAP);
+ /* Check old Cygwin version. */
+ if (drive_map == (void *) -1)
+ drive_map = NULL;
+ /* Allow fallback to GetModuleFileNameEx. */
+ if (!drive_map)
+ proc_access = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ;
}
for (int pid = 0;
@@ -332,9 +320,9 @@ main (int argc, char *argv[])
if (!h)
continue;
/* We use NtQueryInformationProcess in the first place, because
- GetModuleFileNameEx does not work on 64 bit systems when trying
+ GetModuleFileNameEx does not work under WOW64 when trying
to fetch module names of 64 bit processes. */
- if (!(proc_access & PROCESS_VM_READ)) /* Windows 2000 */
+ if (!(proc_access & PROCESS_VM_READ))
{
status = NtQueryInformationProcess (h, ProcessImageFileName, uni,
sizeof unicode_buf, NULL);
@@ -358,12 +346,9 @@ main (int argc, char *argv[])
}
}
}
- else
- {
- if (GetModuleFileNameExW (h, NULL, (PWCHAR) unicode_buf,
- NT_MAX_PATH))
- win32path = (wchar_t *) unicode_buf;
- }
+ else if (GetModuleFileNameExW (h, NULL, (PWCHAR) unicode_buf,
+ NT_MAX_PATH))
+ win32path = (wchar_t *) unicode_buf;
if (win32path)
wcstombs (pname, win32path, sizeof pname);
else