Re: [Bashburn-info] Nick, I'm reverting the change you made to configfunc.sh
Brought to you by:
bashburn
From: Nick W. <ni...@li...> - 2008-09-29 18:40:41
|
On Mon, 29 Sep 2008 19:00:52 +0100 Nick Warne <ni...@li...> wrote: > On Mon, 29 Sep 2008 13:53:12 -0400 (EDT) > "Steven W. Orr" <st...@sy...> wrote: > > > On Monday, Sep 29th 2008 at 13:41 -0000, quoth Nick Warne: > > > > =>On Mon, 29 Sep 2008 13:38:13 -0400 (EDT) > > =>"Steven W. Orr" <st...@sy...> wrote: > > => > > =>> On Monday, Sep 29th 2008 at 13:29 -0000, quoth Nick Warne: > > =>> > > =>> =>On Mon, 29 Sep 2008 18:25:56 +0100 > > =>> =>Nick Warne <ni...@li...> wrote: > > =>> => > > =>> =>> On Mon, 29 Sep 2008 13:21:47 -0400 (EDT) > > =>> =>> "Steven W. Orr" <st...@sy...> wrote: > > =>> =>> > > =>> =>> > Just so you know what's happening, > > =>> =>> > > > =>> =>> > (( ${!BB_CONFIG_VAR} == 0 )) && return 1 > > =>> =>> > > > =>> =>> > says, "Indirect through BB_CONFIG_VAR and see if it's > > value is =>> 0. =>> > BB_CONFIG_VAR is only ever equal to either > > =>> BB_CONFIG_MODIFIED or =>> > BB_ADVANCED_CONFIG_MODIFIED. Both > > of =>> those variables are declared =>> > to be of type integer > > using =>> typeset -i =>> > > > =>> =>> > typeset -i BB_CONFIG_MODIFIED=0 > > =>> =>> > typeset -i BB_ADVANCED_CONFIG_MODIFIED=0 > > =>> =>> > > > =>> =>> > So, if you test (( ${BB_CONFIG_VAR} == 0 )) it will always > > be =>> =>> > false. And if you test to see if it's equal to 'true' > > then =>> that's a =>> > problem also because you're testing it > > inside an =>> arithmetic test, =>> > i.e. (( )) instead of [[ ]]. > > Because bash does =>> not require integer =>> > variables to be > > preceeded by a dollarsign =>> in an arithmetic context, =>> > it > > should complain that there is no =>> variable called true but =>> > > > instead it just converts the true to a =>> 1 because it's not equal > > to =>> > 0. =>> =>> > > > =>> =>> > Something is going on where you might have (for some > > reason I =>> don't =>> > know about) a value for BB_CONFIG_VAR of > > null (""). =>> =>> > > > =>> =>> > I need to see more about why you're getting a syntax > > problem. =>> =>> > > > =>> =>> > > > =>> =>> > > =>> =>> Attached in script output. > > =>> => > > =>> =>Ummm. WTF. Bloody thing got stripped of the mail - let me > > gzip it. =>> > > =>> I just checked in a change. Tell me if it fixes it for you. > > =>> > > =>> Also, what rev of bash are you running? > > =>> > > =>Nope, same issue. > > => > > =>GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu) > > =>Copyright (C) 2005 Free Software Foundation, Inc. > > > > Don't know what to say. Can you start putting print statements in? > > When you go into bbconfmenu, BB_CONFIG_VAR *has* to be one or the > > other. > > > > You can see it being set in configure and advanced. > > > Well, you could be onto something here. Glad I am not going mad > again... > > My changes marked <---HERE: > > # Confirmation routine on leaving configuration. > get_confirm() > { > echo "$BB_CONFIG_VAR" <--------------------------------- HERE > (( ${!BB_CONFIG_VAR} == 0 )) && return 1 > > > And the output running BB: > > |-(Actions) > |- 19) Apply changes > |- 20) Apply defaults > |- 21) Revert changes > |- 22) Back > Your Choice? |> 22 > > BB_CONFIG_MODIFIED <--------------- HERE > /usr/lib/Bashburn/lib/func/configfunc.sh: line 33: ((: == 0 : syntax > error: operand expected (error token is "== 0 ") It appears you > changed an option but did not apply it. > > Here you can select 'n' to go back and do so; > If you wish to ignore the change, select 'y'. OK, I think I have your logic here. This works too (for me (tm) ) get_confirm() { (( BB_CONFIG_VAR == 0 )) && return 1 It works perfectly... I change something, that test fails so I get asked if I meant to apply changes - if I don't change anything, nothing happens and I go back to menu. Nick -- Free Software Foundation Associate Member 5508 |