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: https://origsvn.digium.com/svn/asterisk/trunk@214071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2009-08-25 19:32:48 +00:00
parent 9c653c4431
commit c18df321f0

View File

@@ -3781,6 +3781,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)
{
@@ -3875,14 +3881,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 {
@@ -4079,10 +4085,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 {
@@ -4160,7 +4169,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;