diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-25 19:42:49 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-25 19:42:49 +0000 |
commit | 6a9efcbdb672ff3a3cbb8a1d7f9dc576f81cf03a (patch) | |
tree | b4e6d8811efcc591cb21d81e14befc34e2d56ba2 /main/say.c | |
parent | ceaea45ceb989cc55721124d38fc993b292b545d (diff) |
Merged revisions 214071 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r214071 | tilghman | 2009-08-25 14:32:48 -0500 (Tue, 25 Aug 2009) | 17 lines
Merged revisions 214068-214069 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r214068 | tilghman | 2009-08-25 14:26:50 -0500 (Tue, 25 Aug 2009) | 6 lines
Fix pronunciation of German dates.
(closes issue #15273)
Reported by: Benjamin Kluck
Patches:
say_c.patch uploaded by Benjamin Kluck (license 803)
........
r214069 | tilghman | 2009-08-25 14:28:42 -0500 (Tue, 25 Aug 2009) | 2 lines
I should always compile before committing...
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@214074 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/say.c')
-rw-r--r-- | main/say.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/main/say.c b/main/say.c index 1f0683ce1..c70e91418 100644 --- a/main/say.c +++ b/main/say.c @@ -3717,6 +3717,12 @@ int ast_say_date_with_format_en(struct ast_channel *chan, time_t t, const char * return res; } +static char next_item(const char *format) +{ + const char *next = ast_skip_blanks(format); + return *next; +} + /* Danish syntax */ int ast_say_date_with_format_da(struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) { @@ -3811,14 +3817,14 @@ int ast_say_date_with_format_da(struct ast_channel *chan, time_t t, const char * /* FALLTRHU */ case 'k': /* 24-Hour */ - res = ast_say_number(chan, tm.tm_hour, ints, lang, (char *) NULL); + res = ast_say_number(chan, tm.tm_hour, ints, lang, (char *) NULL); break; case 'M': /* Minute */ - if (tm.tm_min > 0 || format[offset+ 1 ] == 'S' ) { /* zero 'digits/0' only if seconds follow (kind of a hack) */ - res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); + if (tm.tm_min > 0 || next_item(&format[offset + 1]) == 'S') { /* zero 'digits/0' only if seconds follow */ + res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); } - if ( !res && format[offset + 1] == 'S' ) { /* minutes only if seconds follow (kind of a hack) */ + if (!res && next_item(&format[offset + 1]) == 'S') { /* minutes only if seconds follow */ if (tm.tm_min == 1) { res = wait_file(chan, ints, "digits/minute", lang); } else { @@ -4015,10 +4021,13 @@ int ast_say_date_with_format_de(struct ast_channel *chan, time_t t, const char * break; case 'M': /* Minute */ - if (tm.tm_min > 0 || format[offset+ 1 ] == 'S' ) { /* zero 'digits/0' only if seconds follow (kind of a hack) */ - res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); + if (next_item(&format[offset + 1]) == 'S') { /* zero 'digits/0' only if seconds follow */ + res = ast_say_number(chan, tm.tm_min, ints, lang, "f"); /* female only if we say digits/minutes */ + } else if (tm.tm_min > 0) { + res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL); } - if ( !res && format[offset + 1] == 'S' ) { /* minutes only if seconds follow (kind of a hack) */ + + if (!res && next_item(&format[offset + 1]) == 'S') { /* minutes only if seconds follow */ if (tm.tm_min == 1) { res = wait_file(chan, ints, "digits/minute", lang); } else { @@ -4096,7 +4105,7 @@ int ast_say_date_with_format_de(struct ast_channel *chan, time_t t, const char * if (!res) { res = ast_say_number(chan, tm.tm_sec, ints, lang, "f"); if (!res) { - res = wait_file(chan, ints, "digits/seconds", lang); + res = wait_file(chan, ints, tm.tm_sec == 1 ? "digits/second" : "digits/seconds", lang); } } break; |