apps/nshlib: Back out 516a7433444ad4234c468c9729bf9990f4752e65. While the change is fuly functional and adds a pleasing symmetry to the control commands, it is also redundant and serves no real purpose other than requiring more FLASH.
This commit is contained in:
parent
f759ad3196
commit
f2ef84f048
@ -122,18 +122,15 @@ Looping
|
|||||||
These works from the command line but are primarily intended for use
|
These works from the command line but are primarily intended for use
|
||||||
within NSH scripts (see the sh command). The syntax is as follows:
|
within NSH scripts (see the sh command). The syntax is as follows:
|
||||||
|
|
||||||
while [!] <test-cmd>; do <cmd-sequence>; done
|
while <test-cmd>; do <cmd-sequence>; done
|
||||||
|
|
||||||
Execute <cmd-sequence> as long as <test-cmd> has an exit status of
|
Execute <cmd-sequence> as long as <test-cmd> has an exit status of
|
||||||
zero (OR non-zero if inverted with '!').
|
zero.
|
||||||
|
|
||||||
until [!] <test-cmd>; do <cmd-sequence>; done
|
until <test-cmd>; do <cmd-sequence>; done
|
||||||
|
|
||||||
Execute <cmd-sequence> as long as <test-cmd> has a non-zero exit
|
Execute <cmd-sequence> as long as <test-cmd> has a non-zero exit
|
||||||
status (OR zero if inverted with '!').
|
status.
|
||||||
|
|
||||||
Note that 'while' is equivalent to 'until' if the command result is
|
|
||||||
inverted.
|
|
||||||
|
|
||||||
A break command is also supported. The break command is only meaningful
|
A break command is also supported. The break command is only meaningful
|
||||||
within the body of the a while or until loop, between the do and done
|
within the body of the a while or until loop, between the do and done
|
||||||
|
@ -776,8 +776,7 @@ enum nsh_lp_e
|
|||||||
struct nsh_loop_s
|
struct nsh_loop_s
|
||||||
{
|
{
|
||||||
uint8_t lp_enable : 1; /* Loop command processing is enabled */
|
uint8_t lp_enable : 1; /* Loop command processing is enabled */
|
||||||
uint8_t lp_inverted : 1; /* TRUE: inverted logic ('while ! <cmd>') */
|
uint8_t lp_unused : 5;
|
||||||
uint8_t lp_unused : 4;
|
|
||||||
uint8_t lp_state : 2; /* Loop state (see enume nsh_lp_e) */
|
uint8_t lp_state : 2; /* Loop state (see enume nsh_lp_e) */
|
||||||
#ifndef CONFIG_NSH_DISABLE_ITEF
|
#ifndef CONFIG_NSH_DISABLE_ITEF
|
||||||
uint8_t lp_iendx; /* Saved if-then-else-fi index */
|
uint8_t lp_iendx; /* Saved if-then-else-fi index */
|
||||||
|
@ -439,8 +439,6 @@ static int nsh_saveresult(FAR struct nsh_vtbl_s *vtbl, bool result)
|
|||||||
|
|
||||||
if (np->np_lpstate[np->np_lpndx].lp_state == NSH_LOOP_WHILE)
|
if (np->np_lpstate[np->np_lpndx].lp_state == NSH_LOOP_WHILE)
|
||||||
{
|
{
|
||||||
result ^= np->np_lpstate[np->np_lpndx].lp_inverted;
|
|
||||||
|
|
||||||
np->np_fail = false;
|
np->np_fail = false;
|
||||||
np->np_lpstate[np->np_lpndx].lp_enable = (result == OK);
|
np->np_lpstate[np->np_lpndx].lp_enable = (result == OK);
|
||||||
return OK;
|
return OK;
|
||||||
@ -457,8 +455,6 @@ static int nsh_saveresult(FAR struct nsh_vtbl_s *vtbl, bool result)
|
|||||||
|
|
||||||
else if (np->np_lpstate[np->np_lpndx].lp_state == NSH_LOOP_UNTIL)
|
else if (np->np_lpstate[np->np_lpndx].lp_state == NSH_LOOP_UNTIL)
|
||||||
{
|
{
|
||||||
result ^= np->np_lpstate[np->np_lpndx].lp_inverted;
|
|
||||||
|
|
||||||
np->np_fail = false;
|
np->np_fail = false;
|
||||||
np->np_lpstate[np->np_lpndx].lp_enable = (result != OK);
|
np->np_lpstate[np->np_lpndx].lp_enable = (result != OK);
|
||||||
return OK;
|
return OK;
|
||||||
@ -1774,7 +1770,6 @@ static int nsh_loop(FAR struct nsh_vtbl_s *vtbl, FAR char **ppcmd,
|
|||||||
bool whilematch;
|
bool whilematch;
|
||||||
bool untilmatch;
|
bool untilmatch;
|
||||||
bool enable;
|
bool enable;
|
||||||
bool inverted = false;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (cmd != NULL)
|
if (cmd != NULL)
|
||||||
@ -1797,22 +1792,6 @@ static int nsh_loop(FAR struct nsh_vtbl_s *vtbl, FAR char **ppcmd,
|
|||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for inverted logic */
|
|
||||||
|
|
||||||
if (strcmp(*ppcmd, "!") == 0)
|
|
||||||
{
|
|
||||||
inverted = true;
|
|
||||||
|
|
||||||
/* Get the next cmd */
|
|
||||||
|
|
||||||
*ppcmd = nsh_argument(vtbl, saveptr, memlist);
|
|
||||||
if (*ppcmd == NULL || **ppcmd == '\0')
|
|
||||||
{
|
|
||||||
nsh_output(vtbl, g_fmtarginvalid, cmd);
|
|
||||||
goto errout;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Verify that "while" or "until" is valid in this context */
|
/* Verify that "while" or "until" is valid in this context */
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@ -1849,13 +1828,12 @@ static int nsh_loop(FAR struct nsh_vtbl_s *vtbl, FAR char **ppcmd,
|
|||||||
np->np_jump = false;
|
np->np_jump = false;
|
||||||
#endif
|
#endif
|
||||||
np->np_lpndx++;
|
np->np_lpndx++;
|
||||||
np->np_lpstate[np->np_lpndx].lp_state = state;
|
np->np_lpstate[np->np_lpndx].lp_state = state;
|
||||||
np->np_lpstate[np->np_lpndx].lp_enable = enable;
|
np->np_lpstate[np->np_lpndx].lp_enable = enable;
|
||||||
np->np_lpstate[np->np_lpndx].lp_inverted = inverted;
|
|
||||||
#ifndef CONFIG_NSH_DISABLE_ITEF
|
#ifndef CONFIG_NSH_DISABLE_ITEF
|
||||||
np->np_lpstate[np->np_lpndx].lp_iendx = np->np_iendx;
|
np->np_lpstate[np->np_lpndx].lp_iendx = np->np_iendx;
|
||||||
#endif
|
#endif
|
||||||
np->np_lpstate[np->np_lpndx].lp_topoffs = offset;
|
np->np_lpstate[np->np_lpndx].lp_topoffs = offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if the token is "do" */
|
/* Check if the token is "do" */
|
||||||
@ -1959,13 +1937,12 @@ static int nsh_loop(FAR struct nsh_vtbl_s *vtbl, FAR char **ppcmd,
|
|||||||
|
|
||||||
errout:
|
errout:
|
||||||
#ifndef NSH_DISABLE_SEMICOLON
|
#ifndef NSH_DISABLE_SEMICOLON
|
||||||
np->np_jump = false;
|
np->np_jump = false;
|
||||||
#endif
|
#endif
|
||||||
np->np_lpndx = 0;
|
np->np_lpndx = 0;
|
||||||
np->np_lpstate[0].lp_state = NSH_LOOP_NORMAL;
|
np->np_lpstate[0].lp_state = NSH_LOOP_NORMAL;
|
||||||
np->np_lpstate[0].lp_enable = true;
|
np->np_lpstate[0].lp_enable = true;
|
||||||
np->np_lpstate[0].lp_inverted = false;
|
np->np_lpstate[0].lp_topoffs = 0;
|
||||||
np->np_lpstate[0].lp_topoffs = 0;
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user