]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix some problems with saying dates and times for the "tw" langauge
authorRussell Bryant <russell@russellbryant.com>
Thu, 14 Jun 2007 21:08:23 +0000 (21:08 +0000)
committerRussell Bryant <russell@russellbryant.com>
Thu, 14 Jun 2007 21:08:23 +0000 (21:08 +0000)
(issue #9964, ljmid)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@69358 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/say.c

index 20f73b5b10fb2f9b31b2fe318c5cf5c047296cf4..4d05848d0f9b68347ba6729e1a80a34d306c6a6f 100644 (file)
@@ -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 */