diff --git a/src/mezz/mezz-series.reb b/src/mezz/mezz-series.reb index e9167a5fcd..c47648ff4d 100644 --- a/src/mezz/mezz-series.reb +++ b/src/mezz/mezz-series.reb @@ -380,6 +380,23 @@ alter: func [ ) [append series :value] ] +supplement: func [ + "Append value if not found; returns series at same position." + series [block!] {(modified)} + value + /case "Case-sensitive comparison" + /local result +][ + result: series ; to return series at same position if value is found + any[ + either case [ + find/case series :value + ][ find series :value ] + append series :value + ] + result +] + collect: func [ "Evaluates a block, storing values via KEEP function, and returns block of collected values." body [block!] "Block to evaluate" diff --git a/src/tests/units/module-test.r3 b/src/tests/units/module-test.r3 index 21603dd9bb..80a694c397 100644 --- a/src/tests/units/module-test.r3 +++ b/src/tests/units/module-test.r3 @@ -3,15 +3,15 @@ Rebol [ Author: "Peter W A Wood, Oldes" File: %module-test.r3 Tabs: 4 - Needs: [%../quick-test-module.r3] + Needs: %../quick-test-module.r3 ] ~~~start-file~~~ "module!" -modules-test-dir: join what-dir %units/files/ -unless find system/options/module-paths modules-test-dir [ - append system/options/module-paths modules-test-dir -] +; extend module-paths with units/files/ directory +; so modules there can be located +supplement system/options/module-paths join what-dir %units/files/ + ===start-group=== "module keywords" --test-- "hidden" diff --git a/src/tests/units/series-test.r3 b/src/tests/units/series-test.r3 index 74c929c6a6..d086a0e47b 100644 --- a/src/tests/units/series-test.r3 +++ b/src/tests/units/series-test.r3 @@ -169,6 +169,16 @@ Rebol [ --assert #"b" = select/same "aAbcdAe" "A" --assert #"e" = select/same/last "aAbcdAe" "A" +--test- "SUPPLEMENT" + ;@@ https://github.com/Oldes/Rebol-wishes/issues/11 + b: [] + --assert [%a] = supplement b %a + --assert [%a %b] = supplement b %b + --assert [%a %b] = supplement b %a + --assert [%a %b #"a"] = supplement b #"a" + --assert [%a %b #"a"] = supplement b #"A" ; case-insensitive + --assert [%a %b #"a" #"A"] = supplement/case b #"A" + ===end-group=== ===start-group=== "PATH notation"