Package: procps
Version: 1:3.2.7-3
Severity: normal
Tags: patch

Hi,

When Irix mode is enabled, the format for %CPU is %4.0f since we need to
show more than 100%.  However, when threads are shown (H), we don't need
any more since a single thread can't use more than 100% of a single CPU.

The attached patch thus makes use of format %4.0f only when Irix mode is
enabled and threads are not shown.


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (900, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.20-1-686-bigmem (SMP w/2 CPU cores)
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/bash

Versions of packages procps depends on:
ii  libc6                     2.7-5          GNU C Library: Shared libraries
ii  libncurses5               5.6+20071215-1 Shared libraries for terminal hand
ii  lsb-base                  3.1-23.1       Linux Standard Base 3.1 init scrip

Versions of packages procps recommends:
ii  psmisc                        22.5-1     Utilities that use the proc filesy

-- no debconf information

-- 
Samuel Thibault <[EMAIL PROTECTED]>
--- top.c.orig  2008-01-02 02:20:16.000000000 +0100
+++ top.c       2008-01-02 02:25:02.000000000 +0100
@@ -1774,7 +1774,8 @@
       confighlp(Winstk[i].rc.fieldscur);
    }
 
-   if(Rc.mode_irixps && smp_num_cpus>1){
+   if(Rc.mode_irixps && smp_num_cpus>1 && 
+      !(CHKw(Curwin, Show_THREADS))) {
       // good for 100 CPUs per process
       pcpu_max_value = 9999.0;
       Fieldstab[P_CPU].fmts = " %4.0f";
@@ -2561,6 +2562,15 @@
       case 'H':
          if (VIZCHKc) {
             TOGw(Curwin, Show_THREADS);
+            if(Rc.mode_irixps && smp_num_cpus>1 &&
+               !(CHKw(Curwin, Show_THREADS))){
+               // good for 100 CPUs per process
+               pcpu_max_value = 9999.0;
+               Fieldstab[P_CPU].fmts = " %4.0f";
+            } else {
+               pcpu_max_value = 99.9;
+               Fieldstab[P_CPU].fmts = " %#4.1f";
+            }
             show_msg(fmtmk("Show threads %s"
                , CHKw(Curwin, Show_THREADS) ? "On" : "Off"));
          }
@@ -2617,7 +2627,8 @@
          Rc.mode_irixps = !Rc.mode_irixps;
          show_msg(fmtmk("Irix mode %s", Rc.mode_irixps ? "On" : "Off"));
 #endif
-         if(Rc.mode_irixps && smp_num_cpus>1){
+         if(Rc.mode_irixps && smp_num_cpus>1 &&
+            !(CHKw(Curwin, Show_THREADS))){
             // good for 100 CPUs per process
             pcpu_max_value = 9999.0;
             Fieldstab[P_CPU].fmts = " %4.0f";

Reply via email to