]> granicus.if.org Git - procps-ng/log
procps-ng
11 years agotop: consolidate logic dealing with resetting a window
Jim Warner [Wed, 27 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: consolidate logic dealing with resetting a window

This commit just gathers all the logic associated with
resetting/normalizing a single window in one function.

In the future, should the window structure be expanded
to support added functionality, the act of maintaining
it will have been made a little bit easier, hopefully.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: make user's choice for insert/overtype persistent
Jim Warner [Wed, 27 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: make user's choice for insert/overtype persistent

When true line input editing with paste capability was
was re-introduced in the commit below, the concept for
the distinct insert/overtype mode was also introduced.
But such a distinction did not survive an <Enter> key.

With this commit, the cursor state is made persistent.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 477b10c0bd00ed8750c02a9580e606baadb0e6f4

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: allow no input with the maximum task ('n') prompt
Jim Warner [Wed, 27 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: allow no input with the maximum task ('n') prompt

When both 'kill' and 'renice' commands were changed to
provide a default pid, the 'n' command (maximum tasks)
should have also changed to continue to accept just an
<Enter> key under the get_int function's new protocol.

This patch corrects that behavior, accepting no input.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 39f4067c66141921a9ca2a5170df1fa2151f3182

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: allow re-ordering of saved line input upon recall
Jim Warner [Fri, 22 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: allow re-ordering of saved line input upon recall

The original implementation of input line recall keeps
strings in the order established when initially added.
With this commit, that has been changed so any matched
string moves to the top of the saved input line stack.

[ well technically not the top since that's occupied ]
[ by an 'empty' string which serves multiple masters ]

Thus, the most frequently referenced strings over time
will percolate up and remain the most easily recalled.
But just in case anybody prefers the strict historical
ordering, a #define can restore the original behavior.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 2efe275512f62f1e25fda96ebc8446b52c6882f0

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: improve the response to ^Z if awaiting line input
Jim Warner [Fri, 22 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: improve the response to ^Z if awaiting line input

Now that line input offers users full editing freedom,
if top were to be suspended after issuing a prompt for
input, upon resumption an extra keystroke is necessary
to satisfy the outstanding read & refresh the display.

With this patch that extra keystroke is not necessary.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 477b10c0bd00ed8750c02a9580e606baadb0e6f4

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: some idiot broke 'idle' mode with u/U 'exclusion'
Jim Warner [Thu, 21 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: some idiot broke 'idle' mode with u/U 'exclusion'

This patch fixes the single stinkin' source line which
was responsible for breaking the top idle-mode toggle.

Without this change, either 'u' or 'U' must be invoked
just once before the 'i' command would show something.

(yes, everything's perfectly justified once again but)
(i'm not very happy over the need for this damn patch)

Reference(s):
commit d04297843f14e399c699c29b4222b9c9d168c116

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoNEWS: top's changes to be included in the next release
Jim Warner [Wed, 20 Feb 2013 06:00:00 +0000 (00:00 -0600)]
NEWS: top's changes to be included in the next release

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: enable recall of previous input lines for re-edit
Jim Warner [Fri, 15 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: enable recall of previous input lines for re-edit

With this commit, users can now retrieve previous line
input for re-editing and/or re-input using the Up/Down
arrow keys (or their aliases). This mirrors the 'bash'
or 'less' interface and represents a major enhancement
achieved via a somewhat minor impact to our code base.

[ 33 lines of code, 5 closing braces & some comments ]
[ all in 1 function, when TERMIOS_ONLY isn't defined ]

Currently, the upper limit for such recallable strings
has been set at 50 but that could be easily increased.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: enable true line input editing with paste support
Jim Warner [Fri, 15 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: enable true line input editing with paste support

This patch changes the TERMIO_PROXY define back to the
former TERMIOS_ONLY thus changing the top default too.

Plus we can now use true line input editing while also
retaining paste capability. That former native termios
support provided only a limited destructive backspace.

Now we exploit the Left/Right arrow keys, Home/End and
Delete. Plus, the Insert key can toggle overtype mode!

[ The stage is now set for a really huge improvement ]
[ to any user input terminated with the <Enter> key. ]
[ So please stay tuned for the next patch to arrive! ]

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit fa21a6ca819f0f8442849552d0c499e79263ffdb

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: enable user filtering via inclusion and exclusion
Jim Warner [Wed, 13 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: enable user filtering via inclusion and exclusion

With this commit top can now display users which match
a user id/name or just those users which do not match.

The distinction is based on the presence or absence of
a leading exclamation point '!' (C negation operator).

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
Wishlist, http://bugs.debian.org/682086

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: end reliance on strdup not failing & roll our own
Jim Warner [Mon, 11 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: end reliance on strdup not failing & roll our own

Lately, top has begun to rely more and more on dynamic
memory allocations rather than the static buffers that
were found in many of its structures. This was perhaps
most evident in the increasing use of the strdup call.

This commit trades that function call for the internal
equivalent which will protect us from malloc failures.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: man document now properly reflects delay interval
Jim Warner [Sat, 9 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: man document now properly reflects delay interval

This commit corrects one reference to 'decimal place'.

Even though a running top supports a delay interval of
unlimited precision, and a delay interval of thousands
of a second in the rcfile, we intentionally imply that
any delay interval is limited to tenths of a sec only.

Later in the man document, in section 7a, one finds an
admission that a user can set any desired delay value.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/tt,4

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: keep cursor hidden after Inspect 'Locate' request
Jim Warner [Thu, 7 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: keep cursor hidden after Inspect 'Locate' request

A recent commit, that was intended to normalize cursor
handling, unintentionally exposed the cursor following
an Inspect 'Locate' request. This change will hide the
cursor once again through inst_view_choice's lifetime.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit f3a87cf634976a6d2a05c5dde19458f7a222e499

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: the third time was charmed for end-of-job reports
Jim Warner [Tue, 5 Feb 2013 06:00:00 +0000 (00:00 -0600)]
top: the third time was charmed for end-of-job reports

When top was changed to allow some core dumps, the two
potential end-of-job reports were disabled by mistake.
Later, that was corrected so that those reports always
were allowed, if the respective #defines were enabled.

However, if there was an early exit via a command line
option or an error, those reports should not be shown.

This commit may have gotten it right on our third try!

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 1da293bf59187c734acfa89615265ecaf04b3a95
commit d747659ad80ac6e704ce0bc11150d13ab1622f6b

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agopgrep: Documentation fixes
static.vortex@gmx.com [Wed, 13 Feb 2013 17:36:11 +0000 (23:06 +0530)]
pgrep: Documentation fixes

Minor fixes to the help output and manpage of pgrep.

11 years agopmap: fixing pidlist allocation & disabling vmflags in -X
Jaromir Capik [Thu, 14 Feb 2013 12:55:51 +0000 (13:55 +0100)]
pmap: fixing pidlist allocation & disabling vmflags in -X

This commit fixes allocation of the pid list so that it
is sufficient for storing the list terminator.

Additionally the vmflags printing in the -X mode is disabled
because it's too long. From now the vmflags are displayed
in the -XX mode only.

11 years agopmap - removing the column width constraints in the -X/-XX modes
Jaromir Capik [Thu, 7 Feb 2013 16:56:55 +0000 (17:56 +0100)]
pmap - removing the column width constraints in the -X/-XX modes

This commit changes the width measurement principle in the -X/-XX
modes so that a width of totals is measured instead of the width
of summands. The value of totals is always higher than the value
of summands. That additionally prevents the totals from having
a wrong indentation.

This commit also removes the minimum column width constraints
hardcoded to 7 characters.

11 years agopmap: fixing broken indentation in the -X/-XX modes
Jaromir Capik [Wed, 6 Feb 2013 22:01:54 +0000 (23:01 +0100)]
pmap: fixing broken indentation in the -X/-XX modes

This commit changes the processing principle of the -X/-XX modes
from 1-pass to 2-pass. A separate width measurement stage has been
added, so that the real maximum widths can be measured and used
for correct indentation.

The firstmapping variable now has a new value (2) used for the
width measurement stage (1st pass). The printing is disabled
in this stage. The file position is reset to the beginning
of the file once the end of file is reached and the printing stage
(2nd pass) begins.
It's questionable if this approach is sensitive to Read-after-Write
race conditions. Anyway, this feature is a good candidate for
a complete redesign in the future.

Additionally this commit introduces a final cleaning of the list
used for the evaluation of totals in the -X/-XX modes.

11 years agotop: lift the field management 6 col width restriction
Jim Warner [Thu, 31 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: lift the field management 6 col width restriction

When two somewhat cryptic error messages were recently
changed to more user friendly text, the logic limiting
maximum columns was left unchanged at six. This always
was a rather arbitrary limit but now the revised error
message could actually be misleading (ok, a huge lie).

With a 1 line code change (macro actually), this patch
lifts the internal restriction on maximum columns. Now
the real limit is based on a window's physical x-axis.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 5a27c8095ef015e9c40709ba3186422bdf3fc069
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,6

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: disable tty scrollback buffer to improve SIGWINCH
Jim Warner [Thu, 31 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: disable tty scrollback buffer to improve SIGWINCH

A scrollback buffer used in several terminal emulators
could be a real inconvenience to a user following some
resize operations. Extra keystroke(s) would frequently
be required in order to properly render top's display.

After much sleuthing we unearthed two terminfo strings
which have the effect of disabling/restoring that darn
scrollback buffer. They were well hidden under a title
of strings 'to start/end programs using cup'. In turn,
'cup' deals with a tty's cursor addressing capability.

We don't care what you call them or what they refer to
so long as they get the job done. And these really do!
Be advised, however, that there are some side effects,
several of which can even be considered as beneficial:

. enter_ca_mode/smcup/ti disables scrollback buffering
( and that's good, it's what we had always hoped for )

. exit_ca_mode/rmcup/te restores the scrollback buffer
( but also restores screen contents existing pre-top )
( which is different from former program end results )
( where that last rendered screen was left untouched )

. the above screen replacement would impact ^Z suspend
( thus we keep the scrollback buffer disabled during )
( the suspend/resume sequence so that the users will )
( have a visual clue that top is suspended not ended )

If a terminal does not support these terminfo strings,
we will revert to top's former behavior at program end
where we position the cursor at screen bottom and then
output a single newline character. This will prevent a
shell prompt from embedding within top's final screen.

This commit's approach has been tested under a variety
of emulators and window managers, many of which linked
with libvte and others that employed their own scheme.
Examples are: gnome_terminal; kde konsole; lxterminal;
terminator; terminology; urxvt; xfce4-terminal; xterm.

I do now believe that the whole SIGWINCH deal is done!

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/top-won-the-sigwinch-war
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,4

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agopmap: empty output or crashes on ppc/s390 caused by wrong pidlist type
Jaromir Capik [Mon, 4 Feb 2013 17:21:39 +0000 (18:21 +0100)]
pmap: empty output or crashes on ppc/s390 caused by wrong pidlist type

Previously the pidlist variable was defined as unsigned long *
whilst the openproc function accepts pid_t *.
Both target types differ in size (8 != 4) and therefore the issue
mainly affects big endian architectures.

This commit changes the pidlist type to pid_t * so that it's
compatible with openproc.

11 years agotop: make field management window size error non-fatal
Jim Warner [Tue, 29 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: make field management window size error non-fatal

Reference(s):
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,3

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: normalize miscellaneous putp screen manipulations
Jim Warner [Tue, 29 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: normalize miscellaneous putp screen manipulations

This commit standardizes the usage of several terminfo
strings concerned with cursor position and visibility.

Henceforth we will adopt the following informal rules:

. Cap_home vs. Cap_clr_scr is preferred where possible
. Cap_curs_huge will be used with prompts for line i/p
. Cap_curs_huge will be used with help & color mapping
. Cap_curs_hide will be in effect in any other context

We've also added a missing Cap_clr_scr to the 2nd help
screen whenever the SIGWINCH interrupt was recognized.
This prevents a 'duplicated' row from appearing at the
top of the display (when resizing from small to large)
depending on an emulator's scrollback buffer contents.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: a few small adjustments to reduce display flicker
Jim Warner [Tue, 29 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: a few small adjustments to reduce display flicker

This change involves the Fields Management logic only.

With user position being maintained after signals, the
previous algorithm unfortunately used Cap_clr_eos with
each iteration of the loop. The screen flicker invited
with that choice was not apparent under all emulators.

With this commit, clearing to end-of-screen has become
conditional on whether or not there was a true resize.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit ba9092ad83d37d9eb91ded49380a9bedeba4bac6

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agobuild sys: add configure option for impact of SIGWINCH
Jim Warner [Tue, 29 Jan 2013 06:00:00 +0000 (00:00 -0600)]
build sys: add configure option for impact of SIGWINCH

Reference(s):
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,3
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,5

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: change default allow/suppress define for SIGWINCH
Jim Warner [Tue, 29 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: change default allow/suppress define for SIGWINCH

No top #define is enabled and that constitutes default
behavior. So whenever a default behavior should change
the define must be changed too if it is to remain off.

This commit simply changes top's default behavior with
respect to allowing/suppressing any potential flood of
SIGWINCH during resize operations, if running under X.

Formerly top would block those signals to reduce costs
of repeated refreshes. That yields a requirement where
the user would have to provide another keystroke for a
final display update. That keystroke may not always be
needed now, but it ultimately depends on some terminal
emulator's scrollback buffer. In any case, the cost of
re-sizing may go up a bit, under most window managers.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit 4f33b6b8c56464b4044deb29a3bb0e32622e108f
http://www.freelists.org/post/procps/top-won-the-sigwinch-war
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,4
http://www.freelists.org/post/procps/top-won-the-sigwinch-war,5

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agopmap vmflags support
Craig Small [Thu, 24 Jan 2013 11:39:42 +0000 (22:39 +1100)]
pmap vmflags support

Some new kernel version added a line in /proc/pid/smaps listing a processes vmflags. This broke pmap such that pmap -X and pmap -XX would always fail.

This patch adds support for the vmflags field so that -X and -XX work again AND they display the flags.

Merge commit 'refs/merge-requests/8' of git://gitorious.org/procps/procps into merge-requests/8

11 years agopmap -x has RSS and Dirty summary
Andrey Bondarenko [Thu, 24 Jan 2013 11:26:27 +0000 (22:26 +1100)]
pmap -x has RSS and Dirty summary

This is largely Andrey's patch based upon merge request #7
If KLONG != 8 the summary didn't print for RRS and Dirty, this commit
restores this behavour for both sizes.

Ref: https://gitorious.org/procps/procps/merge_requests/7

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agoMerge commit 'refs/merge-requests/6' of git://gitorious.org/procps/procps into merge...
Craig Small [Thu, 24 Jan 2013 10:51:13 +0000 (21:51 +1100)]
Merge commit 'refs/merge-requests/6' of git://gitorious.org/procps/procps into merge-requests/6

11 years agops.1: fix --group description
Andreas Bießmann [Wed, 23 Jan 2013 11:45:59 +0000 (12:45 +0100)]
ps.1: fix --group description

The --group switch tells about parameter 'grplist' but detailed description
names it 'grouplist'.
This patch changes 'grouplist' to 'grplist'.

Signed-off-by: Andreas Bießmann <andreas@biessmann.de>
Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agotop: update man document for current screen & SIGWINCH
Jim Warner [Wed, 16 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: update man document for current screen & SIGWINCH

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: offer define to allow/suppress excessive SIGWINCH
Jim Warner [Wed, 16 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: offer define to allow/suppress excessive SIGWINCH

After carefully working our way to the point where the
excessive SIGWINCH interrupts are now throttled, along
comes a commit which reverses all those prior efforts.

Actually it doesn't. It simply allows one to choose if
all those efforts should be reversed or remain active.

Why in the world would you even want to consider that?

Quite simply, to opt for responsiveness over overhead.
Oh, and depending on the terminal emulator used for X,
by enabling this OFF_SIGWINCH #define you will be able
to avoid the need for an extra keystroke after resize.

Besides it was an interesting programming challenge to
see just how few lines of code would be needed to make
it possible. Bottom line? Only 1 source line required!
(actually 0 lines, since the define disables one line)

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/unwanted-topinspect-window-enclosure-with-the-terminal-size-change

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: immunize against window manager flood of SIGWINCH
Jim Warner [Wed, 16 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: immunize against window manager flood of SIGWINCH

Whew, it was nip-and-tuck there for awhile but finally
we solved the SIGWINCH overload problem one finds with
most X window managers. Now if a window manager should
try to inundate ol' top with repeated SIGWINCH signals
they won't even be received so can't impact us at all.

And we achieve this miracle having never even issued a
sigprocmask, so all the top code executes with signals
totally unblocked. Intuition suggests it probably rubs
even more salt in the wound, but au contraire mon ami!

The key to our success was simply trading the 'select'
call for its cousin 'pselect'. Not only does that call
provide nanosecond granularity (vs. the former's usec)
but it takes a sigset_t parm which can then atomically
block the troublesome SIGWINCH guy until user input or
optional timeout. Net result? No more signal overload!

Now, if only we could just coax all terminal emulators
into one identical standard buffering scheme plus find
some way to emulate the most recent SIGWINCH, it would
be perfect. We would then obviate the user requirement
of typing yet 1 more key before seeing proper results.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/unwanted-topinspect-window-enclosure-with-the-terminal-size-change
http://www.freelists.org/post/procps/Sourceforge-project,7

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: refactor all the low-level i/o logic for SIGWINCH
Jim Warner [Wed, 16 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: refactor all the low-level i/o logic for SIGWINCH

This commit primarily involves renaming functions plus
reorganizing logic in preparation for the next changes
which will hopefully yield the 'final solution' to the
excessive SIGWINCH signals under most window managers.

In this specific patch, the most significant change is
the introduction of a new 'ioa' function (io avail) to
focus all logic dealing with unsolicited user keyboard
input and exposed to signals and/or optional timeouts.

That new function is where our signal overload will be
ultimately defeated, if it is at all humanly possible.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/unwanted-topinspect-window-enclosure-with-the-terminal-size-change

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: preserve current screen when receiving a SIGWINCH
Jim Warner [Wed, 16 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: preserve current screen when receiving a SIGWINCH

Prior to this commit, top has always taken the easiest
(safest?) approach when dealing with those troublesome
SIGWINCH interrupts. Whenever the user was on a screen
other than the main display, any signal received would
force an immediate exit, returning to the main screen.

With these changes, top will retain the user's current
position regardless of what screen he/she was viewing.

In support the following additional changes were made:
* the initial help screen requires an explicit end key
` not 'any other key' formerly used to request an exit
* the colors mapping screen instructions were improved
* ^Z response was made immediate, eliminating the flag
* the sigaction's SA_RESTART flag had to be eliminated
* sigprocmask logic was normailize to the bare minimum
* the POSIX.1-2004 async-signal safe functions used in
` the signal handlers were acknowledged and documented

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
http://www.freelists.org/post/procps/unwanted-topinspect-window-enclosure-with-the-terminal-size-change

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: even more miscellaneous accumulated modifications
Jim Warner [Fri, 11 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: even more miscellaneous accumulated modifications

This commit just addresses the following minor issues:

. eliminate the leading tab character upon error exits
. standardized single key input as 'keyin', not 'chin'
. symbolic keys changed to guarantee no negative value
. placed most 'case' statement labels on a unique line
. standardized lvalue/rvalue convention in while loops
. fixed prototype declaration in the 'debug_END' macro

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: circumvent an ncurses version 5.9.20121017 glitch
Jim Warner [Mon, 7 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: circumvent an ncurses version 5.9.20121017 glitch

Some testing under a new distro revealed what appeared
to be a broken top Inspect request. When the selection
was made, the resulting output was scrambled/scrunched
at the bottom of the screen (as if ^J's were missing).

This anomaly surfaced under Fedora-18 which happens to
use the above ncurses version. The bug was not present
in version 5.9.20120714 (available with openSUSE 12.2)
or the more widely available version of: 5.9.20110404.

It has now been confirmed that this problem originated
in version 5.9.20120825. It was then that buffering of
output was changed from stdio to some internal ncurses
scheme so as to avoid problems with its SIGTSTP logic.

Thanks to a very prompt response from Thomas E. Dickey
we also learned that contrary to the documentation the
putp logic does not call putchar internally. Thus, the
single putchar that Inspect was employing was actually
mixing 2 different buffering schemes: ncurses & stdio.

Thus, from now on we'll use putp() exclusively and try
to achieve single char output as efficiently as we can
while meeting that putp() string argument requirement.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
https://bugzilla.redhat.com/892674

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: prevent display corruption in Locate highlighting
Jim Warner [Fri, 4 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: prevent display corruption in Locate highlighting

There existed a small chance that the display could be
corrupted when a search string was found within a row.
For that to happen, conditions like these were needed:

. a very short Locate string was active in some window
. the string matched part of a terminfo <esc> sequence
. that sequence was used in highlighting running tasks
. the 'x' toggle was active (sort column highlighting)

One solution to this potential problem was to manually
turn off sort column highlighting before using Locate.
But rather than rely on a user remedy, we'll automate.

Since other top provisions were already being enforced
when Locate was in use (off 'i' and/or 'u'/'U'), we'll
now also force column highlighting off when the search
string in a given window is not empty. However, unlike
idle tasks and user filtering, when that search string
*is* emptied, we restore highlighting for that window.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: accumulated miscellaneous code and comment tweaks
Jim Warner [Wed, 2 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: accumulated miscellaneous code and comment tweaks

This commit just addresses the following minor issues:

. restored both lost end-of-job reporting capabilities
. added missing initializers to the DEF_RCFILE #define
. added 'nls_maybe' eye-catcher to the 'Scaled_sfxtab'
. removed a now superfluous 'READMINSZ' assertion test
. man document references to 'top' are more consistent

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agotop: happy new year while incrementing copyright dates
Jim Warner [Tue, 1 Jan 2013 06:00:00 +0000 (00:00 -0600)]
top: happy new year while incrementing copyright dates

Signed-off-by: Jim Warner <james.warner@comcast.net>
11 years agoAdded support for vmflags in pmap
William Orr [Wed, 23 Jan 2013 03:46:24 +0000 (22:46 -0500)]
Added support for vmflags in pmap

11 years agosysctl.8: format fix in synopsis v3.3.6
David Prévot [Tue, 1 Jan 2013 02:16:33 +0000 (13:16 +1100)]
sysctl.8: format fix in synopsis

a tiny patch to fix sysctl.8 synopsis
Bug-Debian: http://bugs.debian.org/675848

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agoExpose freeproc for libproc
Craig Small [Tue, 1 Jan 2013 02:13:44 +0000 (13:13 +1100)]
Expose freeproc for libproc

freeproc was missing from the libproc API which meant while you could
allocate proc structures, you couldn't free them!

Bug-Debian: http://bugs.debian.org/681653

11 years agops.1: format fix in notes
David Prévot [Tue, 1 Jan 2013 02:12:25 +0000 (13:12 +1100)]
ps.1: format fix in notes

The “.I\-aux” syntax is broken (missing space): as a result, the hyphen
doesn't show up in the man page. Furthermore, according to man(1)
conventions, and in consistency with the rest of the manpage, it should
be bold instead of italic, the attached patch fixes this issue.

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agoUpdated NEWS for procps 3.3.6
Craig Small [Tue, 1 Jan 2013 01:52:09 +0000 (12:52 +1100)]
Updated NEWS for procps 3.3.6

Signed-off-by: Craig Small <csmall@enc.com.au>
11 years agotop: eliminate task row anomalies with active searches
Jim Warner [Sun, 30 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: eliminate task row anomalies with active searches

This potential problem is caused by frequently spawned
and short lived tasks which happen to sort above a row
containing a match from an active Locate request. It's
most likely to be visible when under Forest View mode.

This commit will eliminate a potential duplicated row.

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotest for previous commit
Craig Small [Wed, 26 Dec 2012 12:21:44 +0000 (23:21 +1100)]
test for previous commit

Add a test routine to test for --since option added to uptime in
previous commit

12 years agouptime: add since option
Frank Fesevur [Wed, 26 Dec 2012 12:14:09 +0000 (23:14 +1100)]
uptime: add since option

The --since or -s option will show the time since the host was online.
Reference(s):
http://www.freelists.org/post/procps/Patch-Added-since-option-to-uptime

Signed-off-by: Craig Small <csmall@enc.com.au>
12 years agotop: tweak the help screen text and termcap attributes
Jim Warner [Sun, 23 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: tweak the help screen text and termcap attributes

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: place inspect demo buffer on par with read buffer
Jim Warner [Sun, 23 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: place inspect demo buffer on par with read buffer

Both of the 'file' and 'pipe' Inspect read buffers are
always 2048 bytes bigger than is actually needed which
provided for some slightly simplified row paint logic.

However, with no real rcfile inspect entries, and thus
operating in 'demo' mode, the allocated buffer is only
2048 bytes total. This can produce a valgrind warning.

This commit simply puts the inspect 'demo' buffer on a
par with other allocated real buffers (an extra 2048).

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agoAdded pmap -X and -XX tests
Craig Small [Sun, 23 Dec 2012 23:05:24 +0000 (10:05 +1100)]
Added pmap -X and -XX tests

The two extra extended pmap options were not tested previously.
We test against our known process and process 1 which we should
not be able to get data for.

Unfortunately, the tests cannot catch SEGSEGVs but they should.

Signed-off-by: Craig Small <csmall@enc.com.au>
12 years agotop: add '0' toggle (zero suppress) to the help screen
Jim Warner [Sat, 22 Dec 2012 07:23:45 +0000 (01:23 -0600)]
top: add '0' toggle (zero suppress) to the help screen

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agoNEWS: updated with additional changes for next release
Jim Warner [Sat, 22 Dec 2012 06:00:00 +0000 (00:00 -0600)]
NEWS: updated with additional changes for next release

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agopmap avoid SEGV potential with new X/XX detail options
Jim Warner [Sat, 22 Dec 2012 06:00:00 +0000 (00:00 -0600)]
pmap avoid SEGV potential with new X/XX detail options

While permissions suggests that /proc/#/smaps contents
are world-readable, in practice this file might not be
available to a non-root process. Whether this is a bug
in the kernel or an intentional design decision really
makes no difference. This commit will protect pmap -X.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Reference(s):
commit faec340719de6db8f64c468cf1dec84ffdd914a3
Author: Dimitrios Apostolou <jimis@gmx.net>
Date:   Thu Sep 27 22:08:04 2012 +1000

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: just touch up some comments for esthetic purposes
Jim Warner [Thu, 20 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: just touch up some comments for esthetic purposes

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: extend command line sort field override provision
Jim Warner [Thu, 20 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: extend command line sort field override provision

In a effort to anticipate a potential future wishlist,
the recent '-o' sort override command line switch will
now support an override of the sort direction as well.

By prepending a '+' or '-' to any valid field name the
user will be able to guarantee a specific desired sort
direction. The '+' forces a high-to-low (normal) order
while a '-' reverses that to yield a low-to-high sort.

Without this addition users would be left to the mercy
of whatever was last specified for Curwin as reflected
in the rcfile or top's default of a high-to-low order.

(everything is perfectly justified plus right margins)
(are completely filled, but of course it must be luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: extend scaled process memory range to include PiB
Jim Warner [Tue, 18 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: extend scaled process memory range to include PiB

The recent change to task area memory scaling was just
a little short of optimum in its consistency and upper
limits. In fact, top could only scale memory fields up
to a maximum of 99.9999 TiB (with VIRT a little more).

While that seems like more than enough it was actually
artificially low, due to an unnecessary decimal place.

So, this commit standardizes both precision and widths
to achieve a minimum amount of scaling beyond the user
requested target plus reclaim some horizontal spacing.

. VIRT & DATA are now 7 bytes wide (not eight and six)
. other memory fields are 6 wide (were formerly seven)
. as before, KiB shows whole numbers only (no decimal)
. MiB, for its precision, shows a single decimal place
. all other memory ranges display three decimal places

The net result is a more homogeneous display with less
forced scaling and the recovery of three lost columns.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s);
http://www.freelists.org/post/procps/top-enhancements-i-hope,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: extend scaled summary memory range to include EiB
Jim Warner [Tue, 18 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: extend scaled summary memory range to include EiB

This commit increases the upper limit for summary area
memory scaling to 9999.999 Exbibytes. It also enhances
the man page through a helpful table for equivalences.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-regression-reports
http://www.freelists.org/post/procps/top-enhancements-i-hope,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: enable foreign users under 'u'/'U' task filtering
Jim Warner [Tue, 18 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: enable foreign users under 'u'/'U' task filtering

This commit will allow user filtering as long as there
is a valid number representing a potential user ID. It
will serve, for example, chroot environments where the
specific user may be unknown to a host, or vice versa.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-enhancements-i-hope,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: do not catch SIGHUP, when operating in batch mode
Jim Warner [Tue, 18 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: do not catch SIGHUP, when operating in batch mode

This commit was adapted from the openSUSE patch, whose
original comments appear between the --- marker below.

It should be noted, however, that the original changes
were ineffective (wasted) because 'Batch' mode had not
yet been set when signals were being checked and their
handlers established. Thus, SIGHUP was never bypassed.

(of course, only our comments are perfectly justified)

------------------------------------------------------
Do not setup SIGHUP signal handler if we are in the batch mode

Top enables a signal handler for the SIGHUP signal (loss of terminal).  While
this makes sense for top's default interactive mode, it doesn't make any sense
for batch mode. If you run top in nohup just to collect data over time and
disconnect top finishes which is not what one would expect.
------------------------------------------------------

Reference(s):
http://www.freelists.org/post/procps/top-enhancements-i-hope,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: limit task cpu % based on total number of threads
Jim Warner [Tue, 18 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: limit task cpu % based on total number of threads

Everyone has either accepted this potential distortion
or patched top to eliminate it. Now, the time has come
to regain some consistency when calculating that %CPU.

We'll now limit such values to: 100.0 * total threads.
And, it took way too long to address this little flaw.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-regression-reports
http://www.freelists.org/post/procps/top-regression-reports,1

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: make rcfile immune from a potential locale change
Jim Warner [Mon, 17 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: make rcfile immune from a potential locale change

The delay interval is kept in the rcfile in a floating
point format and is thus susceptible to changes in the
locale between invocations. So values written as #,###
could not be read if a new locale uses decimal points.

This commit takes control of our own decimal point and
will henceforth make top immune to locale switcharoos.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-has-a-localedpendent-config-file-toprc
http://lists.opensuse.org/opensuse-bugs/2012-12/msg01466.html

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: add the ability to suppress zeros in most columns
Jim Warner [Sat, 15 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: add the ability to suppress zeros in most columns

With the increased width and precision of memory and %
columns, the proliferation of 0's when there's nothing
to report seems like a distraction versus useful data.

This commit introduces the '0' toggle which can either
display or suppress those zeros. And, like the scaling
states this new state is also preserved in the rcfile.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: provide the means to adjust scaled process memory
Jim Warner [Fri, 14 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: provide the means to adjust scaled process memory

This commit is an unrequested outgrowth of the earlier
change dealing with summary area memory field scaling.
That user selectable scaling provision is now extended
to include 6 (at present) task oriented memory fields.

The new companion 'e' (lower case) interactive command
has been added and, like the 'E' command, it can cycle
each of the currently displayed memory columns between
KiB through TiB. There are, however, some differences.

Where '+' indicates summary area truncation at a given
radix, task memory fields are automatically scaled for
their column. Thus, not all rows use the same scaling.

And, while summary area field widths were not changed,
the task memory columns were widened in order to offer
more meaningful data when the radix was increased. The
precision is automatically increased in step with each
radix: MiB displays 2 decimal places, GiB 3 and TiB 4.

To compliment that additional precision, both the %CPU
and %MEM fields were widened by 1 column and now offer
precision up to 3 decimal places. But, unique to %CPU,
widening could already have occurred due to the number
of processors in some massively parallel boxes. At any
rate, total extra width for both memory and percentage
fields could amount to twenty (precious) columns more.

So for both the memory and % fields the original width
(along with loss of precision) can be restored via new
compiler conditionals which this commit also provides.

p.s. and it will be rcfile preserved for any restarts!

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-regression-reports

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: provide the means to adjust scaled summary memory
Jim Warner [Fri, 14 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: provide the means to adjust scaled summary memory

Earlier this year, the switch from KiB to Mib as shown
in top's summary area was postponed to those occasions
when KiB exceeded 8 digits. In hindsight that may have
moved top in the wrong direction, given the difficulty
of digesting such large numbers of digits at a glance.

This commit adds a new 'E' interactive command used to
cycle the displayed memory amounts ranging from KiB to
TiB. Thus, users can choose the radix they wish shown.

p.s. and it will be rcfile preserved for any restarts!

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-regression-reports

commit 95f22017309f0025c724258335cf586b1d939e68
Author: James Cloos <cloos@jhcloos.com>
Date:   Mon Feb 6 00:00:00 2012 -0500

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: provide command line sort field override switches
Jim Warner [Thu, 13 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: provide command line sort field override switches

This commit adds two new command line switches dealing
with the potential need to automate/script the setting
of top's current sort field independent of the rcfile.

The -o (lower case) switch requires a lone valid field
name as an argument, from among the 42 currently used.
Then, it overrides the config file's Curwin->sortindx.

And since field names are now translatable, they could
diverge from those reflected in the documentation. So,
a 2nd switch of -O (upper case) is also provided which
outputs all names as translated and understood by top.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
Bug-Redhat: https://bugzilla.redhat.com/871844
http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857,9
http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857,15
http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857,16

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: follow ps lead, allow core dumps where applicable
Jim Warner [Wed, 12 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: follow ps lead, allow core dumps where applicable

Reference(s):
Bug-Redhat: https://bugzilla.redhat.com/871825
commit c1f10d11bc7fbab3af54a2b16e6db721b7e44f5c
http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: follow ps lead, treat SIGUSR1/SIGUSR2 as harmless
Jim Warner [Wed, 12 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: follow ps lead, treat SIGUSR1/SIGUSR2 as harmless

Reference(s):
commit f62fd63d9e01bb06e9b699b4c0cebaf163718283
http://www.freelists.org/post/procps/PATCH-procps-states-a-bug-is-hit-when-receiving-a-signal-871824

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: remove undocumented alias ('V') for version ('v')
Jim Warner [Tue, 11 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: remove undocumented alias ('V') for version ('v')

This is doubtless not quite the solution envisioned by
the submitter, but 'V' should probably never have been
used as an alias for 'v' now that we have forest-view.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
Bug-Redhat: https://bugzilla.redhat.com/848290

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: add pseudo type to the inspect demo '=' provision
Jim Warner [Mon, 10 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: add pseudo type to the inspect demo '=' provision

When 'type' was added to the alternate status line for
the '=' key, the need for the demonstration 'type' was
overlooked. This commit avoids the '(null)' potential.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s);
commit 3b2b9a95e6ee628ac957851d8fa1cd343e8f0c01

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agoAllow core file generation by ps command (rhbz#871825, rhbz#512857)
Jaromir Capik [Wed, 12 Dec 2012 14:37:42 +0000 (15:37 +0100)]
Allow core file generation by ps command (rhbz#871825, rhbz#512857)

Since the ps command handles signals with it's own handler, it doesn't create
core files when something wrong happens. The attached patch restores the ps
command ability to create core files by calling the default handler once we
print our custom message. The original RH's workaround masked SIGABRT and
SIGSEGV signals and that would conflict with the original intention of the
custom signal handler and also with the filtering patch I sent in my previous
email. Moreover, this solution generates core for all relevant signals (SIGFPE,
etc.).

Bug-Redhat: http://bugzilla.redhat.com/871825
Bug-Redhat: http://bugzilla.redhat.com/512857
Reference: http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857

Signed-off-by: Craig Small <csmall@enc.com.au>
12 years agops.test: see truncated user/group names as valid
Wouter van Kesteren [Mon, 10 Dec 2012 15:11:04 +0000 (16:11 +0100)]
ps.test: see truncated user/group names as valid

With ps now truncating the names instead of chaning to UIDs for long
usernames, the check needs to be updated too

12 years agoFix for : procps states a bug is hit when receiving a signal (rhbz#871824, rhbz#441656)
Jaromir Capik [Wed, 12 Dec 2012 11:02:52 +0000 (12:02 +0100)]
Fix for : procps states a bug is hit when receiving a signal (rhbz#871824, rhbz#441656)

Bug-Redhat: http://bugzilla.redhat.com/871824
Bug-Redhat: http://bugzilla.redhat.com/441656

12 years agoFixing negative ETIME field in ps (rhbz#871819, rhbz#433266)
Jaromir Capik [Wed, 12 Dec 2012 10:56:27 +0000 (11:56 +0100)]
Fixing negative ETIME field in ps (rhbz#871819, rhbz#433266)

12 years agotop: highlight all regular search string(s) when found
Jim Warner [Sat, 8 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: highlight all regular search string(s) when found

With the recent inspect search highlight provisions in
place, the lack of highlighting in task based searches
has grown from being only irritating to a real defect.

Thus, this commit introduces parallel functionality to
those searches initiated within a visible task window.
And just as separate inspect searches are possible for
each selection, per window task searches are provided.

However, it should be noted that there are differences
between task based searches and inspect type searches:

* There is no concept of out-of-view data when dealing
. with task rows -- if the data can't bee seen, it has
. not, in fact, been constructed from a proc_t struct.

* While inspect data is output at the character level,
. up to now all task display data was only potentially
. output and it was always based on a complete string.

* With task search highlighting, rows now containing a
. match must be output in pieces and, therefore, can't
. be optimized away like other rows which haven't been
. been altered. This is because top cannot predict the
. the contents of a search string or, how many matches
. might occur in a given row. Short search strings and
. many matches would raise buffer needs geometrically.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: refine inspect logic for already in-place matches
Jim Warner [Thu, 6 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: refine inspect logic for already in-place matches

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: add inspect entry 'type' to alternate status line
Jim Warner [Thu, 6 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: add inspect entry 'type' to alternate status line

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: correct an inspect spelling error with nls impact
Jim Warner [Wed, 5 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: correct an inspect spelling error with nls impact

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: fix pid value displayed when kill default applies
Jim Warner [Wed, 5 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: fix pid value displayed when kill default applies

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: provide inspect selections with separate searches
Jim Warner [Tue, 4 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: provide inspect selections with separate searches

This commit extends Inspect provisions for 'find/next'
to each individual selection. Thus a user can maintain
multiple active searches without having to reissue the
locate command whenever the current selection changes.

To emphasize this feature the View screen now displays
the current active locate string or 'N/A' if inactive.
Such a reminder is important when no found matches are
present on the 1st display page, given that they would
otherwise be apparent via the additional highlighting.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: highlight all inspect search string(s) when found
Jim Warner [Mon, 3 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: highlight all inspect search string(s) when found

We have modeled the Inspect search provisions on those
provided by the 'less' pager. With this commit we take
the next step and provide for highlighting any strings
matched (and in view). Of course, top will continue to
adjust the beginning column so as to bring out-of-view
matches into view, while highlighting visible matches.

However, top won't emulate every 'less' behavior since
the following are seen as flaws in the user interface.

* when viewing true binary data, less makes no attempt
. to smooth the right margin by truncating unprintable
. symbols, thus creatng ragged unappealing right edges

* when viewing true binary data, less will always fail
. search requests regardless of surrounding characters

* less refuses to bring out-of-view found matches into
. view by adjusting the left-most column, if necessary

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: generalize handling of questionable rcfile issues
Jim Warner [Sun, 2 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: generalize handling of questionable rcfile issues

Previously top would warn users if an older version of
an rcfile was about to be overwritten. That's assuming
that RCFILE_NOERR was not defined. This left, however,
other potential rcfile issues or questions unattended.

For example, if a faulty 'inspect' redirected echo had
overwritten all window entries or if the inspect entry
was not 'pipe' or 'file' (actually, just a 'p' or 'f')
then top would silently accept it but look no further.

With this commit top will try to process every inspect
entry, while preserving unrecognized entries. Plus all
other non-fatal rcfile errors will now alert a user to
the potential overwrite when the 'W' command is given.

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: correct input anomaly if 'key repeat' is too fast
Jim Warner [Sat, 1 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: correct input anomaly if 'key repeat' is too fast

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: fix isolated inspect spelling error, man document
Jim Warner [Sat, 1 Dec 2012 06:00:00 +0000 (00:00 -0600)]
top: fix isolated inspect spelling error, man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: give inspect search algorithm a significant boost
Jim Warner [Wed, 28 Nov 2012 06:00:00 +0000 (00:00 -0600)]
top: give inspect search algorithm a significant boost

The Inspect find algorithm has always been challenging
given the possibility that 'rows' might contain binary
data. Be that as it may, two small changes have proven
to dramatically improve the performance of such scans.

The first involves the case wherein if no match on the
'substring' portion of a row was found, then a pointer
representing the substring was increased by the length
of the search string, not the better/longer substring.
Thus, portions of the substring were always rescanned!

The second performance boost was achieved in this way:
pre-scanning each raw row for just the first character
in the search string now determines if a full match is
even possible. Therefore, repeated unproductive strstr
calls on individual substrings within that row will be
avoided. In a nutshell, 1 'if' with '}' did the trick!

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: give inspect display page algorithm a small boost
Jim Warner [Wed, 28 Nov 2012 06:00:00 +0000 (00:00 -0600)]
top: give inspect display page algorithm a small boost

This commit improves display performance when the user
has scrolled horizontally past the end of a top 'row'.

We can avoid the need to memset our buffer with spaces
and putp those spaces individually by exploiting logic
that already exists. If one '\n' character is inserted
into the buffer instead, the next terminfo string sent
will be Cap_clr_eol achieving exactly the same effect!

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: use the type size_t more consistently for inspect
Jim Warner [Wed, 28 Nov 2012 06:00:00 +0000 (00:00 -0600)]
top: use the type size_t more consistently for inspect

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agoNEWS: updated with changes for the new release (3.3.6)
Jim Warner [Sun, 25 Nov 2012 06:00:07 +0000 (00:00 -0600)]
NEWS: updated with changes for the new release (3.3.6)

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: add a flexible 'Inspect' capability, man document
Jim Warner [Sun, 25 Nov 2012 06:00:06 +0000 (00:00 -0600)]
top: add a flexible 'Inspect' capability, man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: add a flexible 'Inspect' capability
Jim Warner [Sun, 25 Nov 2012 05:00:05 +0000 (00:00 -0500)]
top: add a flexible 'Inspect' capability

This commit introduces an extremely powerful, flexible
brand new capability.  Now, users can pause the normal
iterative display and inspect the contents of any file
or output from any script, command, or even pipelines.

It's invoked via the 'Y' interactive command which, in
turn, is supported with simple user supplied additions
as new entries in the top personal configuration file.

A separate new 'Inspect' window supports scrolling and
searching, similar to the main top display.  Except it
extends existing 'L'/'&' (locate/locate-next) commands
so that an out-of-view match automatically adjusts the
horizontal position bringing such data into view.  And
it provides for multiple successive same line matches.

Also, the basic 'more/less' navigation keys are active
in this new 'Inspect' window, to ease user transition.

There are no program changes required when entries are
added to or deleted from the rcfile.  And there are no
known limits to the complexity of a script, command or
pipeline, other than the unidirectional nature imposed
by the 'popen' function call which top cannot violate.

Since it's impossible to predict exactly what contents
will be generated, top treats all output as raw binary
data.  Any control characters display in '^C' notation
while all other unprintable characters show as '<AB>'.

The biggest problem encountered was with the find/next
capability since that strstr guy was really diminished
given the possibility that numerous 'strings' could be
encountered *within* many of top's raw, binary 'rows'.

Oh, and another problem was in maintaining the perfect
left & right text justification of this commit message
along with all of the commit summaries.  Some of those
summaries (like this very one) are of course, slightly
shorter, to make room for the 'man document' addition.

Enjoy!

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: kill/nice provide for a default pid, man document
Jim Warner [Sun, 25 Nov 2012 05:00:04 +0000 (00:00 -0500)]
top: kill/nice provide for a default pid, man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: kill/nice provide for a default pid
Jim Warner [Sun, 25 Nov 2012 05:00:03 +0000 (00:00 -0500)]
top: kill/nice provide for a default pid

As an aid to the above 2 commands, and as a prelude to
an upcoming 'inspect other output' capability, the act
of selecting a process for either has been simplified.

Positioning a task as the first one displayed, via the
up/down arrow keys, will now establish it as a default
selection for the appropriate command.  Thus, that pid
will then be incorporated in a subsequent input prompt.

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: quiet lintian with escaped dashes in man document
Jim Warner [Sun, 25 Nov 2012 05:00:00 +0000 (00:00 -0500)]
top: quiet lintian with escaped dashes in man document

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agotop: include under nls support an overlooked error msg
Jim Warner [Sun, 25 Nov 2012 05:00:01 +0000 (00:00 -0500)]
top: include under nls support an overlooked error msg

Signed-off-by: Jim Warner <james.warner@comcast.net>
12 years agodo not complain when negating selection if we can't find a user/group
Lyonel Vincent [Sun, 25 Nov 2012 16:23:39 +0000 (17:23 +0100)]
do not complain when negating selection if we can't find a user/group

12 years agoAdd -c count option to pkill
Craig Small [Wed, 21 Nov 2012 11:11:17 +0000 (22:11 +1100)]
Add -c count option to pkill

Possibly by a side-effect but pkill -c option used to work which would
print the number of killed processes.  This small change restores this
functionality.

Bug-Debian: http://bugs.debian.org/693783

Signed-off-by: Craig Small <csmall@enc.com.au>
12 years agoUpdated news for 3.3.5
Craig Small [Tue, 6 Nov 2012 12:01:08 +0000 (23:01 +1100)]
Updated news for 3.3.5

12 years agops: cut out code unused code
Sami Kerola [Fri, 2 Nov 2012 17:50:59 +0000 (17:50 +0000)]
ps: cut out code unused code

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
12 years agowatch: fix compiler warnings
Sami Kerola [Fri, 2 Nov 2012 17:50:58 +0000 (17:50 +0000)]
watch: fix compiler warnings

watch.c:255:14: warning: no previous declaration for 'get_time_usec' [-Wmissing-declarations]
watch.c:303:6: warning: no previous declaration for 'output_header' [-Wmissing-declarations]
watch.c:364:5: warning: no previous declaration for 'run_command' [-Wmissing-declarations]

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
12 years agovmstat: fix compiler warnings
Sami Kerola [Fri, 2 Nov 2012 17:50:57 +0000 (17:50 +0000)]
vmstat: fix compiler warnings

vmstat.c:817:7: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
vmstat.c:708:7: warning: shadowed declaration is here [-Wshadow]

Signed-off-by: Sami Kerola <kerolasa@iki.fi>