[Asterisk-code-review] say: Don't prepend ampersand erroneously. (asterisk[19])
Friendly Automation
asteriskteam at digium.com
Wed Oct 26 09:00:45 CDT 2022
Friendly Automation has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/19482 )
Change subject: say: Don't prepend ampersand erroneously.
......................................................................
say: Don't prepend ampersand erroneously.
Some logic in say.c for determining if we need
to also add an ampersand for file seperation was faulty,
as non-successful files would increment the count, causing
a leading ampersand to be added improperly.
This is fixed, and a unit test that captures this regression
is also added.
ASTERISK-30248 #close
Change-Id: I02c1d3a11d82fe4ea8b462070cbd1effb5834d2b
---
M funcs/func_sayfiles.c
M main/say.c
2 files changed, 31 insertions(+), 3 deletions(-)
Approvals:
George Joseph: Looks good to me, approved
Friendly Automation: Approved for Submit
diff --git a/funcs/func_sayfiles.c b/funcs/func_sayfiles.c
index d3f3341..7e0ece2 100644
--- a/funcs/func_sayfiles.c
+++ b/funcs/func_sayfiles.c
@@ -211,6 +211,15 @@
res = AST_TEST_FAIL;
}
+ /* + should be ignored and there should not be a leading & */
+ ast_str_set(&expr, 0, "${SAYFILES(+18005551212,digits)}");
+ ast_str_substitute_variables(&result, 0, NULL, ast_str_buffer(expr));
+ if (strcmp(ast_str_buffer(result), "digits/1&digits/8&digits/0&digits/0&digits/5&digits/5&digits/5&digits/1&digits/2&digits/1&digits/2") != 0) {
+ ast_test_status_update(test, "SAYFILES(+18005551212,digits) test failed ('%s')\n",
+ ast_str_buffer(result));
+ res = AST_TEST_FAIL;
+ }
+
ast_str_set(&expr, 0, "${SAYFILES(35,number)}");
ast_str_substitute_variables(&result, 0, NULL, ast_str_buffer(expr));
if (strcmp(ast_str_buffer(result), "digits/30&digits/5") != 0) {
diff --git a/main/say.c b/main/say.c
index b60d4bf..14e43df 100644
--- a/main/say.c
+++ b/main/say.c
@@ -160,7 +160,7 @@
}
if ((fn && ast_fileexists(fn, NULL, lang) > 0) ||
(snprintf(asciibuf + 13, sizeof(asciibuf) - 13, "%d", str[num]) > 0 && ast_fileexists(asciibuf, NULL, lang) > 0 && (fn = asciibuf))) {
- ast_str_append(&filenames, 0, (num == 0 ? "%s" : "&%s"), fn);
+ ast_str_append(&filenames, 0, "%s%s", ast_str_strlen(filenames) ? "&" : "", fn);
}
if (upper || lower) {
continue;
@@ -282,7 +282,7 @@
fn = fnbuf;
}
if (fn && ast_fileexists(fn, NULL, lang) > 0) {
- ast_str_append(&filenames, 0, (num == 0 ? "%s" : "&%s"), fn);
+ ast_str_append(&filenames, 0, "%s%s", ast_str_strlen(filenames) ? "&" : "", fn);
}
num++;
}
@@ -336,7 +336,7 @@
break;
}
if (fn && ast_fileexists(fn, NULL, lang) > 0) {
- ast_str_append(&filenames, 0, (num == 0 ? "%s" : "&%s"), fn);
+ ast_str_append(&filenames, 0, "%s%s", ast_str_strlen(filenames) ? "&" : "", fn);
}
num++;
}
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/19482
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 19
Gerrit-Change-Id: I02c1d3a11d82fe4ea8b462070cbd1effb5834d2b
Gerrit-Change-Number: 19482
Gerrit-PatchSet: 1
Gerrit-Owner: N A <asterisk at phreaknet.org>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20221026/7450ab02/attachment.html>
More information about the asterisk-code-review
mailing list