Fix some problems with saying dates and times for the "tw" langauge

(issue #9964, ljmid)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69358 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Russell Bryant 18 years ago
parent 5305d9c27f
commit 45ad7fcec8

@ -5183,7 +5183,7 @@ int ast_say_date_with_format_tw(struct ast_channel *chan, time_t time, const cha
char sndfile[256], nextmsg[256];
if (format == NULL)
format = "YBdA 'digits/at' HM";
format = "YBdAkM";
ast_localtime(&time,&tm,timezone);
@ -5221,16 +5221,17 @@ int ast_say_date_with_format_tw(struct ast_channel *chan, time_t time, const cha
case 'e':
/* First - Thirtyfirst */
if (!(tm.tm_mday % 10) || (tm.tm_mday < 10)) {
snprintf(nextmsg,sizeof(nextmsg), "digits/h-%d", tm.tm_mday);
snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_mday);
res = wait_file(chan,ints,nextmsg,lang);
} else {
snprintf(nextmsg,sizeof(nextmsg), "digits/h-%dh", tm.tm_mday - (tm.tm_mday % 10));
snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_mday - (tm.tm_mday % 10));
res = wait_file(chan,ints,nextmsg,lang);
if(!res) {
snprintf(nextmsg,sizeof(nextmsg), "digits/h-%d", tm.tm_mday % 10);
snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_mday % 10);
res = wait_file(chan,ints,nextmsg,lang);
}
}
if(!res) res = wait_file(chan,ints,"ri",lang);
break;
case 'Y':
/* Year */
@ -5300,12 +5301,12 @@ int ast_say_date_with_format_tw(struct ast_channel *chan, time_t time, const cha
}
break;
case 'H':
if (tm.tm_hour < 10) {
res = wait_file(chan, ints, "digits/0", lang);
}
case 'k':
/* 24-Hour */
if (!(tm.tm_hour % 10) || tm.tm_hour < 10) {
if (tm.tm_hour < 10) {
res = wait_file(chan, ints, "digits/0", lang);
}
snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_hour);
res = wait_file(chan,ints,nextmsg,lang);
} else {
@ -5406,7 +5407,7 @@ int ast_say_date_with_format_tw(struct ast_channel *chan, time_t time, const cha
}
break;
case 'R':
res = ast_say_date_with_format_tw(chan, time, ints, lang, "HM", timezone);
res = ast_say_date_with_format_tw(chan, time, ints, lang, "kM", timezone);
break;
case 'S':
/* Seconds */

Loading…
Cancel
Save