Project

General

Profile

Feature #10927 ยป 0001-Add-a-default-empty-string-to-string-replacements.patch

zimbatm (zimba tm), 03/02/2015 04:18 PM

View differences:

string.c
/*
* call-seq:
* str.sub!(pattern, replacement) -> str or nil
* str.sub!(pattern, replacement='') -> str or nil
* str.sub!(pattern) {|match| block } -> str or nil
*
* Performs the same substitution as String#sub in-place.
......
int iter = 0;
int tainted = 0;
long plen;
int min_arity = rb_block_given_p() ? 1 : 2;
long beg;
rb_check_arity(argc, min_arity, 2);
rb_check_arity(argc, 1, 2);
if (argc == 1) {
iter = 1;
if (rb_block_given_p()) {
iter = 1;
}
else {
repl = rb_str_new("", 0);
}
}
else {
repl = argv[1];
......
/*
* call-seq:
* str.sub(pattern, replacement) -> new_str
* str.sub(pattern, replacement='') -> new_str
* str.sub(pattern, hash) -> new_str
* str.sub(pattern) {|match| block } -> new_str
*
......
switch (argc) {
case 1:
RETURN_ENUMERATOR(str, argc, argv);
mode = ITER;
if (rb_block_given_p()) {
RETURN_ENUMERATOR(str, argc, argv);
mode = ITER;
}
else {
repl = rb_str_new("", 0);
}
break;
case 2:
repl = argv[1];
    (1-1/1)