Skip to content

Commit a253f5e

Browse files
committed
CHANGE: A plain, explicit QUIT from nested scripts returning UNSET! instead of 0
resolves: Oldes/Rebol-issues#2250
1 parent 9cb6315 commit a253f5e

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

src/core/c-do.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -1835,7 +1835,8 @@ x*/ static REBINT Do_Args_Light(REBVAL *func, REBVAL *path, REBSER *block, REBCN
18351835

18361836
if (arg) {
18371837
if (IS_NONE(arg)) {
1838-
SET_INTEGER(TASK_THIS_VALUE, 0);
1838+
//SET_INTEGER(TASK_THIS_VALUE, 0); // for (do {quit}) == 0
1839+
SET_UNSET(TASK_THIS_VALUE); // for (do {quit}) == unset!
18391840
} else
18401841
*TASK_THIS_VALUE = *arg; // save the value
18411842
} else {

src/tests/units/evaluation-test.r3

+5
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ Rebol [
9090
--assert unset? do %units/files/unset.r3
9191
--assert dir = what-dir
9292

93+
--test-- "script with quit"
94+
;@@ https://github.com/Oldes/Rebol-issues/issues/2250
95+
--assert unset? do %units/files/quit.r3
96+
--assert 42 = do %units/files/quit-return.r3
97+
9398
===end-group===
9499

95100
===start-group=== "do function"

src/tests/units/files/quit-return.r3

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Rebol [title: "Script which uses quit/return"]
2+
quit/return 42
3+
print "Hello"

src/tests/units/files/quit.r3

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Rebol [title: "Script which uses quit"]
2+
quit
3+
print "Hello"

0 commit comments

Comments
 (0)