u-boot/cmd
Marek Vasut 721307eba0 cmd: exit: Fix return value propagation out of environment scripts
Make sure the 'exit' command as well as 'exit $val' command exits
from environment scripts immediately and propagates return value
out of those scripts fully. That means the following behavior is
expected:

"
=> setenv foo 'echo bar ; exit 1' ; run foo ; echo $?
bar
1
=> setenv foo 'echo bar ; exit 0' ; run foo ; echo $?
bar
0
=> setenv foo 'echo bar ; exit -2' ; run foo ; echo $?
bar
0
"

As well as the followin behavior:

"
=> setenv foo 'echo bar ; exit 3 ; echo fail'; run foo; echo $?
bar
3
=> setenv foo 'echo bar ; exit 1 ; echo fail'; run foo; echo $?
bar
1
=> setenv foo 'echo bar ; exit 0 ; echo fail'; run foo; echo $?
bar
0
=> setenv foo 'echo bar ; exit -1 ; echo fail'; run foo; echo $?
bar
0
=> setenv foo 'echo bar ; exit -2 ; echo fail'; run foo; echo $?
bar
0
=> setenv foo 'echo bar ; exit ; echo fail'; run foo; echo $?
bar
0
"

Fixes: 8c4e3b79bd ("cmd: exit: Fix return value")
Reviewed-by: Hector Palacios <hector.palacios@digi.com>
Signed-off-by: Marek Vasut <marex@denx.de>
2023-01-11 15:02:24 -05:00
..
arm cmd: exception: arm64: fix undefined, add faults 2022-03-02 13:59:29 -05:00
broadcom global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mvebu cmd: change the return value when argc error 2023-01-11 11:54:50 -05:00
riscv cmd/sbi: user friendly short texts 2022-10-20 15:22:15 +08:00
sandbox cmd: sandbox: implement exception command 2020-12-13 07:58:17 -07:00
ti global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_* 2022-12-05 16:06:07 -05:00
x86 Merge https://source.denx.de/u-boot/custodians/u-boot-x86 2021-08-02 21:35:50 -04:00
.gitignore
ab_select.c part: Support getting whole disk from part_get_info_by_dev_and_name_or_num 2021-02-26 15:30:55 +01:00
abootimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
acpi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
adc.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
addrmap.c cmd: Add a command to display the address map 2021-03-05 10:25:43 +05:30
adtimg.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
aes.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
armflash.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
avb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
axi.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
bcb.c cmd: bcb: select user(0) hwpart in __bcb_load() 2022-10-21 21:37:47 -04:00
bdinfo.c video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
bind.c cmd: bind: Fix driver binding on a device 2021-10-12 14:19:52 +02:00
binop.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
blk_common.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
blkcache.c cmd:Elaborate 'blkcache' cmd HELP statement 2021-08-04 15:58:31 -04:00
blob.c global: Migrate CONFIG_SYS_FSL* symbols to the CFG_SYS namespace 2022-11-10 10:08:55 -05:00
bloblist.c cmd: Add missing check for CONFIG_SYS_LONGHELP 2021-03-27 15:04:30 +13:00
bmp.c video: cmd: Drop old LCD code 2022-10-30 20:07:17 +01:00
boot.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
bootcount.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
bootdev.c bootstd: Add a bootdev command 2022-04-25 10:00:04 -04:00
bootefi.c efi_loader: remove efi_delete_handle on loadfile2 2022-10-16 12:23:22 +02:00
bootflow.c bootstd: Support bootflows with global bootmeths 2022-08-12 08:17:11 -04:00
booti.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
bootm.c bootm: Drop #ifdef from do_bootm() 2022-10-17 21:17:12 -06:00
bootmenu.c global: Migrate CONFIG_POSTBOOTMENU to CFG 2022-12-23 10:14:52 -05:00
bootmeth.c bootstd: Allow bootmeths to be marked as global 2022-08-12 08:17:10 -04:00
bootstage.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
bootz.c treewide: Drop bootm_headers_t typedef 2022-09-29 16:07:57 -04:00
btrfs.c treewide: Fix Marek's name and change my e-mail address 2022-07-21 10:14:04 +02:00
button.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
cache.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cat.c cmd: cat: add new command 2022-10-11 15:40:48 -04:00
cbfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
clk.c cmd: clk: fix long help message 2022-02-25 01:41:04 -05:00
clone.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
cls.c video: Rename CONFIG_DM_VIDEO to CONFIG_VIDEO 2022-10-30 20:07:17 +01:00
config.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
conitrace.c cmd: conitrace: increase wait for next key 2021-01-13 02:38:01 +01:00
console.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
cpu.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
cramfs.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cros_ec.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
cyclic.c cyclic: switch to using hlist instead of list 2022-11-02 08:41:55 +01:00
dataflash_mmc_mux.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
date.c global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
demo.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
dfu.c cmd/dfu: Enable 'dfu list' command without DFU_OVER_USB 2022-02-11 11:29:23 -05:00
diag.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
disk.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
dm.c dm: core: fix a typo in help text 2022-08-26 16:32:59 -06:00
echo.c cmd: change suppress newline in echo command 2021-01-25 01:15:33 +01:00
eeprom.c cmd: eeprom: don't truncate target address at 32-bit 2022-11-02 13:58:17 -04:00
efi.c efi: Support the efi command in the app 2022-01-15 10:57:22 +01:00
eficonfig_sbkey.c eficonfig: EFI_VARIABLE_APPEND_WRITE is not set for null key 2022-12-20 16:06:48 +01:00
eficonfig.c eficonfig: avoid SetVariable between GetNextVariableName calls 2022-12-20 16:06:48 +01:00
efidebug.c efi_loader: carve out efi_get_memory_map_alloc() 2023-01-06 22:27:30 +01:00
elf.c boot: Call flush() before booting 2022-09-24 11:34:38 -04:00
erofs.c fs/erofs: add filesystem commands 2022-03-15 16:19:29 -04:00
ethsw.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
event.c event: Add a command 2022-03-10 08:28:36 -05:00
exit.c cmd: exit: Fix return value propagation out of environment scripts 2023-01-11 15:02:24 -05:00
ext2.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ext4.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
extension_board.c cmd: undefined return value of do_extension_apply() 2022-08-04 13:59:59 -04:00
fastboot.c fastboot: remove #ifdef CONFIG when it is possible 2023-01-11 15:02:24 -05:00
fat.c cmd: fat: Use do_save() for fatwrite 2020-10-23 13:33:07 -04:00
fdt.c cmd: fdt: Fix iteration over elements above index 1 in fdt get 2022-11-22 15:13:35 -07:00
flash.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
font.c video: Add commands to list and change fonts 2022-10-30 20:01:40 +01:00
fpga.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
fpgad.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
fs_uuid.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
fs.c cmd: fs: Add command to list supported fs types 2020-07-07 15:36:59 -04:00
fuse.c cmd: fuse: Add a command to read fuses to memory 2022-02-18 18:12:23 +01:00
fwu_mdata.c FWU: cmd: Add a command to read FWU metadata 2022-10-31 14:47:33 -04:00
gettime.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
gpio.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
gpt.c cmd: gpt: add subcommand repair 2022-05-06 14:39:15 -04:00
hash.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
help.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
host.c dm: sandbox: Switch over to using the new host uclass 2022-11-07 16:24:30 -07:00
i2c.c global: Migrate CONFIG_SYS_I2C_DIRECT_BUS to CFG 2022-12-23 10:15:12 -05:00
ide.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
ini.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
io.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
iotrace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
irq.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
itest.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
jffs2.c Audit <flash.h> inclusion 2022-08-04 16:18:47 -04:00
kaslrseed.c cmd: kaslrseed: add command to generate value from hwrng 2021-12-24 10:54:56 +08:00
Kconfig cmd: mtdparts: add SYS_MTDPARTS_RUNTIME dependency on CONFIG_MTDIDS/MTDPARTS_DEFAULT 2023-01-11 11:54:50 -05:00
led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
legacy_led.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
legacy-mtd-utils.c cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
legacy-mtd-utils.h cmd: nand/sf: isolate legacy code 2019-12-04 17:10:51 -05:00
license.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
load.c serial: Call flush() before changing baudrate 2022-09-24 11:34:38 -04:00
log.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
lsblk.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
lzmadec.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mac.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
Makefile eficonfig: add UEFI Secure Boot Key enrollment interface 2022-11-22 12:00:45 +01:00
mbr.c mbr: Correct verification check 2021-11-28 16:51:51 -07:00
md5sum.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mdio.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mem.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
mfsl.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
mii.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
misc.c cmd/misc: Stop using a function pointer 2022-06-22 21:29:47 -04:00
mmc.c blk: Rename if_type to uclass_id 2022-09-25 08:30:05 -06:00
mp.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
mtd.c cmd: mtd: check if a block has to be skipped or erased 2022-12-10 14:35:55 +01:00
mtdparts.c configs: remove support of MTDIDS_DEFAULT/MTDPARTS_DEFAULT 2022-12-12 16:46:07 -05:00
mux.c cmd: Add a mux command 2020-10-28 11:49:31 -04:00
nand.c cmd: nand: Extend nand info to print ecc information 2022-12-10 11:11:25 +01:00
net.c net: Remove eth_legacy.c 2022-12-07 16:04:17 -05:00
nvedit_efi.c cmd: simplify do_env_set_efi() 2022-10-06 22:54:57 +02:00
nvedit.c cmd: env: Add indirect to indirectly set values 2022-04-07 16:50:42 -04:00
nvme.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
onenand.c cmd: onenand: fix printf codes 2022-05-05 15:06:02 -04:00
optee_rpmb.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
osd.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
panic.c cmd: add a panic command 2020-07-08 17:21:46 -04:00
part.c cmd: part: list all 128 GPT partitions 2022-01-15 10:57:22 +01:00
pause.c cmd: Add pause command 2022-09-02 13:40:42 -04:00
pcap.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
pci.c pci: Remove duplicate PCI_REGION_IO / "io" line 2022-09-29 10:10:39 -04:00
pinmux.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
pmc.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
pmic.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
printf.c cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
printf.h cmd: setexpr: add format string handling 2021-07-27 14:50:47 -04:00
pstore.c pstore: Support already existing reserved-memory node 2022-02-14 13:03:49 -05:00
pvblock.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
pwm.c cmd: pwm: fix typo 'eisable' -> 'disable' 2022-03-04 15:20:06 -05:00
pxe.c pxe: Allow calling the pxe_get logic directly 2021-11-11 19:02:43 -05:00
qfw.c global: Migrate CONFIG_RAMDISK_ADDR to CFG 2022-12-23 10:15:11 -05:00
read.c dm: core: Support sandbox with read interface 2022-08-12 08:14:24 -04:00
reginfo.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
regulator.c cmd: List all uclass devices regardless of probe error 2022-10-17 21:17:12 -06:00
reiser.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
remoteproc.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
rng.c cmd: rng: Use a statically allocated array for random bytes 2022-08-02 23:50:02 +03:00
rockusb.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
rtc.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
sata.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
sb.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
scp03.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
scsi.c blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
setexpr.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
sf.c Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
sha1sum.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
sleep.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
smccc.c WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
sound.c cmd: avoid endless loop in sound play command 2023-01-04 13:17:42 +01:00
source.c cmd: source: Support specifying config name 2022-12-31 13:35:19 -05:00
spi.c spi: spi-uclass: Add new spi_get_bus_and_cs() implementation 2022-05-23 09:33:10 -04:00
spl.c arm: use CONFIG_SUPPORT_PASSING_ATAGS 2021-09-24 14:30:46 -04:00
sqfs.c fs/squashfs: add filesystem commands 2020-08-07 22:31:32 -04:00
stackprot_test.c cmd: wrong printf() code in do_test_stackprot_fail() 2022-02-11 10:52:37 -05:00
strings.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
sysboot.c pxe: Refactor sysboot to have one helper 2021-11-11 19:02:39 -05:00
temperature.c cmd: add temperature command 2022-10-11 15:40:48 -04:00
terminal.c terminal: only serial_reinit_all if available 2021-04-12 17:44:55 -04:00
test.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
thordown.c thor: add support for the dfu_alt_info reintialization from the flashed script 2021-01-31 14:08:56 +01:00
time.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
timer.c cmd: Split out timer command from the sleep command 2020-10-23 13:33:07 -04:00
tlv_eeprom.c cmd: tlv_eeprom 2021-10-21 07:39:05 +02:00
tpm_test.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
tpm-common.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-user-utils.h tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
tpm-v1.c tpm: Require a digest source when extending the PCR 2022-09-03 16:53:58 +03:00
tpm-v2.c tpm: Allow reporting the internal state 2022-09-03 16:59:05 +03:00
trace.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
tsi148.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
ubi.c cmd: ubi: Add 'ubi list' command for printing list of all UBI volumes 2022-10-12 08:55:31 -04:00
ubifs.c cmd: ubifs: Do not show usage when command fails 2022-11-23 13:06:12 -05:00
ufs.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
universe.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
unlz4.c lz4: Use a private header for U-Boot 2021-10-09 13:09:56 -04:00
unzip.c sandbox: Enable support for the gzip command 2021-12-26 23:02:19 +01:00
usb_gadget_sdp.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
usb_mass_storage.c cyclic: Use schedule() instead of WATCHDOG_RESET() 2022-09-18 10:26:33 +02:00
usb.c net: Remove eth_legacy.c 2022-12-07 16:04:17 -05:00
vbe.c vbe: Add a command to show the VBE state 2022-10-31 11:04:00 -04:00
version.c common: Drop display_options.h from common header 2022-08-10 13:46:55 -04:00
video.c video: Move the console commands to cmd/ 2022-10-30 19:55:22 +01:00
virtio.c dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1.c global: Convert simple_strtoul() with decimal to dectoul() 2021-08-02 13:32:14 -04:00
wdt.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
wol.c command: Remove the cmd_tbl_t typedef 2020-05-18 18:36:55 -04:00
ximg.c treewide: Drop image_header_t typedef 2022-09-29 16:07:57 -04:00
xxd.c cmd: xxd: add new command 2022-10-11 15:40:48 -04:00
yaffs2.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zfs.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
zip.c global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00