Skip to contentSkip to conversation

HUSH parser fixes.

PATCH In review Pantelis Antoniou 2 participants 4 messages Mar 30, 2004 – Apr 18, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 HUSH parser fixes.

Hello

The following patch fixes various shortcomings in the hush parser.

1. A new test command was added. This is a simplified version of the one in the sh shell.

2. A new exit command was added which terminates the current executing script.

3. Handing of $? (exit code of last executed command), was wrong. Instead of being evaluated in the proper place it was evaluated once at the start of the evaluation.

For example the following script worked like this.

   test 1 -eq 2   # set $? to 1
   echo $?        # outputs 1
   test 1 -eq 1   # set $? to 0
   echo $?        # still outputs 1

Now it is fixed.

4. The simplified parser uses '(' and ')' for enclosing variables. This caused problems when migrating to hush because hash uses '{' and '}'. Modified to accept parentheses too.

Regards

Pantelis

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: parser.diffstat
Url: http://lists.denx.de/pipermail/u-boot/attachments/20040330/abd623e4/attachment.txt
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: parser.diff
Url: http://lists.denx.de/pipermail/u-boot/attachments/20040330/abd623e4/attachment-0001.txt

#1 lore raw
Quoted 14 lines · In message <[email protected]> you wrote:

The following patch fixes various shortcomings in the hush parser.

1. A new test command was added. This is a simplified version of the one in the sh shell.

2. A new exit command was added which terminates the current executing script.

3. Handing of $? (exit code of last executed command), was wrong. Instead of being evaluated in the proper place it was evaluated once at the start of the evaluation.

Quoted 8 lines

For example the following script worked like this.

   test 1 -eq 2   # set $? to 1
   echo $?        # outputs 1
   test 1 -eq 1   # set $? to 0
   echo $?        # still outputs 1

Now it is fixed.

Can you please re-submit a patch whioch included these 3 items only?

Quoted 3 lines

4. The simplified parser uses '(' and ')' for enclosing variables. This caused problems when migrating to hush because hash uses '{' and '}'. Modified to accept parentheses too.

Sorry, but I reject this patch. I want hush to stay as bourne shell compatible as possible. I'd much rather fix the simple command line parser to use ``${...}'' instead.

Best regards,

Wolfgang Denk

Signature · 6 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
GUIs  are  virtually  useless.  Learn  tools.  They're  configurable,
scriptable, automatable, cron-able, interoperable, etc. We don't need
no brain-dead winslurping monolithic claptrap.
                               -- Tom Christiansen in 371140df at csnews
#2 lore raw
Quoted 22 lines · Wolfgang Denk
Quoted 20 lines · In message <[email protected]> you wrote:

The following patch fixes various shortcomings in the hush parser.

1. A new test command was added. This is a simplified version of the one in the sh shell.

2. A new exit command was added which terminates the current executing script.

3. Handing of $? (exit code of last executed command), was wrong. Instead of being evaluated in the proper place it was evaluated once at the start of the evaluation.

For example the following script worked like this.

  test 1 -eq 2   # set $? to 1
  echo $?        # outputs 1
  test 1 -eq 1   # set $? to 0
  echo $?        # still outputs 1
Quoted 6 lines
Quoted 2 lines

Now it is fixed.

Can you please re-submit a patch whioch included these 3 items only?

Sure, coming right up.

Quoted 10 lines
Quoted 4 lines

4. The simplified parser uses '(' and ')' for enclosing variables. This caused problems when migrating to hush because hash uses '{' and '}'. Modified to accept parentheses too.

Sorry, but I reject this patch. I want hush to stay as bourne shell compatible as possible. I'd much rather fix the simple command line parser to use ``${...}'' instead.

Could I at least make it a compile option?
We have a number of boards in the field that would like to upgrade to hush without changing the configuration.

Quoted 5 lines

Best regards,

Wolfgang Denk

Regards

Pantelis

#3 lore raw
Quoted 9 lines · In message <[email protected]> you wrote:
Quoted 6 lines

Sorry, but I reject this patch. I want hush to stay as bourne shell compatible as possible. I'd much rather fix the simple command line parser to use ``${...}'' instead.

Could I at least make it a compile option?
We have a number of boards in the field that would like to upgrade to hush without changing the configuration.

Please see my previous message about this. If you upgrade to a new version of U-Boot anyway, you can for example use a standalone tool that is run once to convert the environment.

Best regards,

Wolfgang Denk

Signature · 3 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
C++ is the best example of second-system effect since OS/360.