FS-4144 --resolve

This commit is contained in:
Anthony Minessale 2012-04-27 15:28:17 -05:00
parent 481df053ac
commit 2a0ca295cc
1 changed files with 13 additions and 18 deletions

View File

@ -1559,27 +1559,22 @@ SWITCH_STANDARD_API(regex_function)
goto error;
}
if ((proceed = switch_regex_perform(argv[0], argv[1], &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) {
if (argc > 2) {
len = (strlen(argv[0]) + strlen(argv[2]) + 10) * proceed;
substituted = malloc(len);
switch_assert(substituted);
memset(substituted, 0, len);
switch_replace_char(argv[2], '%', '$', SWITCH_FALSE);
switch_perform_substitution(re, proceed, argv[2], argv[0], substituted, len, ovector);
proceed = switch_regex_perform(argv[0], argv[1], &re, ovector, sizeof(ovector) / sizeof(ovector[0]));
stream->write_function(stream, "%s", substituted);
free(substituted);
} else {
stream->write_function(stream, "true");
}
if (argc > 2) {
len = (strlen(argv[0]) + strlen(argv[2]) + 10) * proceed;
substituted = malloc(len);
switch_assert(substituted);
memset(substituted, 0, len);
switch_replace_char(argv[2], '%', '$', SWITCH_FALSE);
switch_perform_substitution(re, proceed, argv[2], argv[0], substituted, len, ovector);
stream->write_function(stream, "%s", substituted);
free(substituted);
} else {
if (argc > 2) {
stream->write_function(stream, "%s", argv[0]);
} else {
stream->write_function(stream, "false");
}
stream->write_function(stream, proceed ? "true" : "false");
}
goto ok;
error: