https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=7701a023ff6e5861b0d875551070fa4df3e2525c

commit 7701a023ff6e5861b0d875551070fa4df3e2525c
Author: Corinna Vinschen <[email protected]>
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 <[email protected]>

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  <[email protected]>
+
+       * 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  <[email protected]>
 
        * 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

Reply via email to