summaryrefslogtreecommitdiff
path: root/main/say.c
diff options
context:
space:
mode:
authorJonathan Rose <jrose@digium.com>2011-10-04 19:51:27 +0000
committerJonathan Rose <jrose@digium.com>2011-10-04 19:51:27 +0000
commit29b4c1a9f1951bd5a5eafce49b875cdf442c64a8 (patch)
treee583b6d2172906dfd7bb7fea3ee70f59519a9fc7 /main/say.c
parent635118043dfaa5832bd00f54c6c23a13f18d9e41 (diff)
Merged revisions 339353 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ................ r339353 | jrose | 2011-10-04 14:44:02 -0500 (Tue, 04 Oct 2011) | 18 lines Merged revisions 339352 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r339352 | jrose | 2011-10-04 14:33:12 -0500 (Tue, 04 Oct 2011) | 12 lines Removes improper use of sound 'and' in German language mode from application saynumber Asterisk would say 'Five hundert und sechs und zwanzig' instead of 'Five hundert sechs und zwanzig'... which is both weird sounding and wrong. This patch makes sure Asterisk will only say the 'and' word between the single digit and double digit places. (closes issue ASTERISK-18212) Reported By: Lionel Elie Mamane Patches: upstream_germand_no_and.diff (License #5402) uploaded by Lionel Elie Mamane ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@339354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/say.c')
-rw-r--r--main/say.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/main/say.c b/main/say.c
index 871b899ee..e242b655d 100644
--- a/main/say.c
+++ b/main/say.c
@@ -837,6 +837,9 @@ static int ast_say_number_full_de(struct ast_channel *chan, int num, const char
* - 1000 is 'tausend', however all other instances are 'ein tausend'
* - 1000000 is always 'eine million'
* - "million" is different in singular and plural form
+ * - 'and' should not go between a hundreds place value and any
+ * tens/ones place values that follows it. i.e 136 is ein hundert
+ * sechs und dreizig, not ein hundert und sechs und dreizig.
*/
if (num < 0) {
ast_copy_string(fn, "digits/minus", sizeof(fn));
@@ -844,10 +847,7 @@ static int ast_say_number_full_de(struct ast_channel *chan, int num, const char
num = -num;
} else {
num = 0;
- }
- } else if (num < 100 && t) {
- ast_copy_string(fn, "digits/and", sizeof(fn));
- t = 0;
+ }
} else if (num == 1 && mf == -1) {
snprintf(fn, sizeof(fn), "digits/%dF", num);
num = 0;
@@ -875,7 +875,6 @@ static int ast_say_number_full_de(struct ast_channel *chan, int num, const char
snprintf(fn, sizeof(fn), "digits/%d", hundreds);
}
ast_copy_string(fna, "digits/hundred", sizeof(fna));
- t = 1;
} else if (num == 1000 && t == 0) {
ast_copy_string(fn, "digits/thousand", sizeof(fn));
num = 0;