Skip to content

Commit 92c65fc

Browse files
committed
FIX: special char escaping when molding a file (so it is backwards loadable)
resolves: Oldes/Rebol-issues#2491
1 parent 7bf61fa commit 92c65fc

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/core/s-mold.c

+3
Original file line numberDiff line numberDiff line change
@@ -1597,6 +1597,9 @@ STOID Mold_Error(REBVAL *value, REB_MOLD *mold, REBFLG molded)
15971597
// so include also folowing chars for url escaping...
15981598
dc = b_cast("\x5C\x5E\x60\x7C\x7F");
15991599
for (c = (REBYTE)LEN_BYTES(dc); c > 0; c--) URL_Escapes[*dc++] = ESC_URL;
1600+
// required file escaping... https://github.com/Oldes/Rebol-issues/issues/2491
1601+
dc = b_cast("\x3A\x40\x5C\x5E\x7F");
1602+
for (c = (REBYTE)LEN_BYTES(dc); c > 0; c--) URL_Escapes[*dc++] = ESC_FILE;
16001603
}
16011604

16021605

src/tests/units/mold-test.r3

+12
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,18 @@ Rebol [
198198
===end-group===
199199

200200

201+
===start-group=== "mold file!"
202+
203+
--test-- "mold file escaping"
204+
;@@ https://github.com/Oldes/Rebol-issues/issues/2491
205+
for i 0 255 1 [
206+
f2: try [load mold f1: append copy %a to char! i]
207+
--assert f1 == f2
208+
]
209+
210+
===end-group===
211+
212+
201213
===start-group=== "mold-all"
202214

203215
--test-- "mold-true" --assert "true" = mold true

0 commit comments

Comments
 (0)