File tree 2 files changed +29
-3
lines changed
2 files changed +29
-3
lines changed Original file line number Diff line number Diff line change 131
131
// use as it is
132
132
}
133
133
else if (IS_INTEGER (src_val )) {
134
- src_ser = Append_Byte (0 , Int8u (src_val )); // creates a binary
134
+ src_ser = BUF_FORM ;
135
+ SERIES_DATA (src_ser )[0 ] = Int8u (src_val );
136
+ SERIES_TAIL (src_ser ) = 1 ;
135
137
}
136
138
else if (IS_BLOCK (src_val )) {
137
139
src_ser = Join_Binary (src_val ); // NOTE: it's the shared FORM buffer!
138
140
}
139
141
else if (IS_CHAR (src_val )) {
140
- src_ser = Make_Binary ( 6 ); // (I hate unicode)
142
+ src_ser = BUF_FORM ;
141
143
src_ser -> tail = Encode_UTF8_Char (BIN_HEAD (src_ser ), VAL_CHAR (src_val ));
142
144
}
143
145
else if (ANY_STR (src_val )) {
155
157
else Trap_Arg (src_val );
156
158
}
157
159
else if (IS_CHAR (src_val )) {
158
- src_ser = Append_Byte (0 , VAL_CHAR (src_val )); // unicode ok too
160
+ src_ser = BUF_FORM ;
161
+ RESET_TAIL (src_ser );
162
+ src_ser = Append_Byte (src_ser , VAL_CHAR (src_val )); // unicode ok too
159
163
}
160
164
else if (IS_BLOCK (src_val )) {
161
165
src_ser = Form_Tight_Block (src_val );
Original file line number Diff line number Diff line change @@ -479,6 +479,28 @@ Rebol [
479
479
--assert 0 = p/made-blocks
480
480
--assert 0 = p/made-objects
481
481
482
+ ;@@ https://github.com/Oldes/Rebol-issues/issues/1606
483
+ --test-- "dp [change binary! integer!]"
484
+ b: #{ 000000 }
485
+ --assert 0 = select dp [change b 255 ] 'series-made
486
+ --assert b = #{ FF0000 }
487
+ --assert 0 = select dp [change/dup b 255 3 ] 'series-made
488
+ --assert b = #{ FFFFFF }
489
+ --test-- "dp [change binary! char!]"
490
+ b: #{ 000000 }
491
+ --assert 0 = select dp [change b #"a" ] 'series-made
492
+ --assert b = #{ 610000 }
493
+ --assert 0 = select dp [change/dup b #"a" 3 ] 'series-made
494
+ --assert b = #{ 616161 }
495
+ --assert 0 = select dp [change/dup b #"á" 3 ] 'series-made
496
+ --assert b = #{ C3A1C3A1C3A1 }
497
+ --test-- "dp [change string! char!]"
498
+ b: "xxx"
499
+ --assert 0 = select dp [change b #"a" ] 'series-made
500
+ --assert b = "axx"
501
+ --assert 0 = select dp [change/dup b #"a" 3 ] 'series-made
502
+ --assert b = "aaa"
503
+
482
504
===end-group===
483
505
484
506
~~~end-file~~~
You can’t perform that action at this time.
0 commit comments