Bug 620083

Summary: whiptail --gauge does not work as advertised
Product: [Fedora] Fedora Reporter: Joe Nuspl <nuspl>
Component: newtAssignee: Miroslav Lichvar <mlichvar>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: mlichvar
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: newt-0.52.12-1.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-08-06 12:24:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Simple patch to make the existing code work
none
Patch so behavior matches man page none

Description Joe Nuspl 2010-07-31 19:54:07 UTC
According to the whiptail manpage:

       --gauge text height width percent
              A gauge box displays a meter along the bottom of the box.  The
              meter indicates a percentage.  New percentages are read from
              standard input, one integer per line.  The meter is updated to
              reflect each new percentage.  If stdin is XXX, then subsequent
              lines up to another XXX are used for a new prompt.  The gauge
              exits when EOF is reached on stdin.

Running the following snippet does not change the text:

(
	echo 10
	sleep 5

	echo 20
	sleep 5

	echo XXX
	echo Replacement text
	echo XXX
	sleep 5

	echo 100
	sleep 1
) | whiptail --gauge "Original text" 10 40 0


# whiptail --version
whiptail (newt): 0.52.1

Comment 1 Joe Nuspl 2010-07-31 20:00:08 UTC
Created attachment 435793 [details]
Simple patch to make the existing code work

Looking at the code, I think the authors intent was for the first line after XXX to be the new percentage.  So the input would be of the form:

XXX
30
We're now at 30 percent complete.
XXX

I've attached a patch that makes it behave that way.

Comment 2 Joe Nuspl 2010-07-31 20:06:04 UTC
Created attachment 435794 [details]
Patch so behavior matches man page

The code as it exists does not match the behavior described in the man page.

My interpretation is that the input between XXX is just the text.  The input stream would be:

20
XXX
We're now at 20 percent complete.
XXX

This attached patch implements that behaviors.

Comment 3 Miroslav Lichvar 2010-08-02 09:49:42 UTC
Thanks for the patches. We are trying to be compatible with dialog, so the first one is actually correct.

I've pushed an updated patch (to 0.52.11) to the newt git repository and a man page description fix, so it's clear that after XXX should be a percentage.

This will be in newt-0.52.12.

Comment 4 Joe Nuspl 2010-08-02 18:17:08 UTC
Another issue:

sleep 5 | whiptail --gauge "multi\nline" 10 40 0

will display:

multi
 line

while dialog displays:

multi
line

With no leading space before line.

Comment 5 Miroslav Lichvar 2010-08-03 12:23:10 UTC
Should be fixed in git now. Thanks.