Skip to content

Commit e29b737

Browse files
committed
FIX: replace binary! integer! integer!
fixes: Oldes/Rebol-issues#2412
1 parent 103f5c6 commit e29b737

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/mezz/mezz-series.r

+9-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,15 @@ replace: func [
145145
length? :search
146146
]
147147
binary? target [
148-
unless binary? :search [search: to-binary :search] ; Must be convertable
148+
unless binary? :search [ ; Must be convertable
149+
if integer? :search [
150+
if any [:search > 255 :search < 0] [
151+
cause-error 'Script 'out-of-range :search
152+
]
153+
search: to char! :search
154+
]
155+
search: to binary! :search
156+
]
149157
length? :search
150158
]
151159
any-block? :search [length? :search]

src/tests/units/series-test.r3

+7
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,13 @@ Rebol [
548548
--assert 32 = take #{20}
549549
--assert 4 = take #{04}
550550

551+
--test-- "REPLACE binary! integer! integer!"
552+
;@@ https://github.com/Oldes/Rebol-issues/issues/2412
553+
b: #{010201}
554+
--assert #{010301} = replace b 2 3
555+
--assert #{000300} = replace/all b 1 0
556+
--assert error? try [replace b 257 0]
557+
551558
--test-- "any-string? binary!"
552559
;@@ https://github.com/Oldes/Rebol-issues/issues/820
553560
--assert not any-string? #{}

0 commit comments

Comments
 (0)