[Asterisk-code-review] app_voicemail, say: Fix various leading whitespace problems (asterisk[17])
Joshua Colp
asteriskteam at digium.com
Mon Jan 20 09:33:10 CST 2020
Joshua Colp has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/13642 )
Change subject: app_voicemail, say: Fix various leading whitespace problems
......................................................................
app_voicemail, say: Fix various leading whitespace problems
In af90afd90c64c5183c2207d061f9aa15138081b2, Japanese language support
was added to app_voicemail and main/say.c, but the leading whitespace
is not consistent with Asterisk coding guidelines. This patch fixes
that.
Whitespace only, no functional change.
ASTERISK~23324
Reported by: Kevin McCoy
Change-Id: I72c725f5930084673749bd7c9cc426a987f08e87
---
M apps/app_voicemail.c
M main/say.c
2 files changed, 641 insertions(+), 640 deletions(-)
Approvals:
Joshua Colp: Looks good to me, but someone else must approve; Approved for Submit
George Joseph: Looks good to me, approved
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index cf944fd..dc19439 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -7889,29 +7889,29 @@
/* Japanese Syntax */
static int get_folder_ja(struct ast_channel *chan, int start)
{
- int x;
- int d;
- char fn[256];
- for (x = start; x< 5; x++) { /* For all folders */
- if ((d = ast_say_number(chan, x, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL))) {
- return d;
+ int x;
+ int d;
+ char fn[256];
+ for (x = start; x < 5; x++) { /* For all folders */
+ if ((d = ast_say_number(chan, x, AST_DIGIT_ANY, ast_channel_language(chan), (char *) NULL))) {
+ return d;
}
snprintf(fn, sizeof(fn), "vm-%s", mbox(NULL, x)); /* Folder name */
d = vm_play_folder_name(chan, fn);
if (d) {
- return d;
+ return d;
}
- d = ast_waitfordigit(chan, 500);
- if (d) {
- return d;
+ d = ast_waitfordigit(chan, 500);
+ if (d) {
+ return d;
}
- }
- d = ast_play_and_wait(chan, "vm-tocancel"); /* "or pound to cancel" */
- if (d) {
- return d;
}
- d = ast_waitfordigit(chan, 4000);
- return d;
+ d = ast_play_and_wait(chan, "vm-tocancel"); /* "or pound to cancel" */
+ if (d) {
+ return d;
+ }
+ d = ast_waitfordigit(chan, 4000);
+ return d;
}
/*!
@@ -7933,13 +7933,13 @@
res = ast_play_and_wait(chan, fn); /* Folder name */
while (((res < '0') || (res > '9')) &&
- (res != '#') && (res >= 0) &&
- loops < 4) {
- /* res = get_folder(chan, 0); */
- if (!strcasecmp(ast_channel_language(chan),"ja")) { /* Japanese syntax */
- res = get_folder_ja(chan, 0);
- } else { /* Default syntax */
- res = get_folder(chan, 0);
+ (res != '#') && (res >= 0) &&
+ loops < 4) {
+ /* res = get_folder(chan, 0); */
+ if (!strcasecmp(ast_channel_language(chan), "ja")) { /* Japanese syntax */
+ res = get_folder_ja(chan, 0);
+ } else { /* Default syntax */
+ res = get_folder(chan, 0);
}
loops++;
}
@@ -9309,15 +9309,15 @@
static int vm_play_folder_name_ja(struct ast_channel *chan, char *box)
{
- int cmd;
+ int cmd;
- if (!strcasecmp(box, "vm-INBOX") || !strcasecmp(box, "vm-Old")) {
- cmd = ast_play_and_wait(chan, box);
- return cmd ? cmd : ast_play_and_wait(chan, "vm-messages");
- } else {
- cmd = ast_play_and_wait(chan, box);
- return cmd;
- }
+ if (!strcasecmp(box, "vm-INBOX") || !strcasecmp(box, "vm-Old")) {
+ cmd = ast_play_and_wait(chan, box);
+ return cmd ? cmd : ast_play_and_wait(chan, "vm-messages");
+ } else {
+ cmd = ast_play_and_wait(chan, box);
+ return cmd;
+ }
}
static int vm_play_folder_name_pl(struct ast_channel *chan, char *box)
@@ -9362,8 +9362,8 @@
return vm_play_folder_name_gr(chan, box);
} else if (!strncasecmp(ast_channel_language(chan), "he", 2)) { /* Hebrew syntax */
return ast_play_and_wait(chan, box);
- } else if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* Japanese syntax */
- return vm_play_folder_name_ja(chan, box);
+ } else if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* Japanese syntax */
+ return vm_play_folder_name_ja(chan, box);
} else if (!strncasecmp(ast_channel_language(chan), "pl", 2)) {
return vm_play_folder_name_pl(chan, box);
} else if (!strncasecmp(ast_channel_language(chan), "ua", 2)) { /* Ukrainian syntax */
@@ -9591,40 +9591,40 @@
/* Japanese syntax */
static int vm_intro_ja(struct ast_channel *chan,struct vm_state *vms)
{
- /* Introduce messages they have */
- int res;
- if (vms->newmessages) {
- res = ast_play_and_wait(chan, "vm-INBOX");
- if (!res)
- res = ast_play_and_wait(chan, "vm-message");
- if (!res)
- res = ast_play_and_wait(chan, "jp-ga");
- if (!res)
- res = say_and_wait(chan, vms->newmessages, ast_channel_language(chan));
- if (vms->oldmessages && !res)
- res = ast_play_and_wait(chan, "silence/1");
+ /* Introduce messages they have */
+ int res;
+ if (vms->newmessages) {
+ res = ast_play_and_wait(chan, "vm-INBOX");
+ if (!res)
+ res = ast_play_and_wait(chan, "vm-message");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-ga");
+ if (!res)
+ res = say_and_wait(chan, vms->newmessages, ast_channel_language(chan));
+ if (vms->oldmessages && !res)
+ res = ast_play_and_wait(chan, "silence/1");
- }
- if (vms->oldmessages) {
- res = ast_play_and_wait(chan, "vm-Old");
- if (!res)
- res = ast_play_and_wait(chan, "vm-message");
- if (!res)
- res = ast_play_and_wait(chan, "jp-ga");
- if (!res)
- res = say_and_wait(chan, vms->oldmessages, ast_channel_language(chan));
- }
- if (!vms->oldmessages && !vms->newmessages) {
- res = ast_play_and_wait(chan, "vm-messages");
- if (!res)
- res = ast_play_and_wait(chan, "jp-wa");
- if (!res)
- res = ast_play_and_wait(chan, "jp-arimasen");
- }
- else {
- res = ast_play_and_wait(chan, "jp-arimasu");
- }
- return res;
+ }
+ if (vms->oldmessages) {
+ res = ast_play_and_wait(chan, "vm-Old");
+ if (!res)
+ res = ast_play_and_wait(chan, "vm-message");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-ga");
+ if (!res)
+ res = say_and_wait(chan, vms->oldmessages, ast_channel_language(chan));
+ }
+ if (!vms->oldmessages && !vms->newmessages) {
+ res = ast_play_and_wait(chan, "vm-messages");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-wa");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-arimasen");
+ }
+ else {
+ res = ast_play_and_wait(chan, "jp-arimasu");
+ }
+ return res;
} /* Japanese */
/* Default English syntax */
@@ -10538,82 +10538,82 @@
static int vm_instructions_ja(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, int skipadvanced, int in_urgent)
{
- int res = 0;
- /* Play instructions and wait for new command */
- while (!res) {
- if (vms->starting) {
- if (vms->lastmsg > -1) {
- res = vm_play_folder_name(chan, vms->vmbox);
- if (!res)
- res = ast_play_and_wait(chan, "jp-wa");
- if (!res)
- res = ast_play_and_wait(chan, "digits/1");
- if (!res)
- res = ast_play_and_wait(chan, "jp-wo");
- if (!res)
- res = ast_play_and_wait(chan, "silence/1");
- }
- if (!res)
- res = ast_play_and_wait(chan, "vm-opts");
- } else {
- /* Added for additional help */
- if (skipadvanced) {
- res = vm_play_folder_name(chan, vms->vmbox);
- if (!res)
- res = ast_play_and_wait(chan, "jp-wa");
- if (!res)
- res = ast_play_and_wait(chan, "digits/1");
- if (!res)
- res = ast_play_and_wait(chan, "jp-wo");
- if (!res)
- res = ast_play_and_wait(chan, "silence/1");
- res = ast_play_and_wait(chan, "vm-opts-full");
- }
- /* Logic:
- * If the current message is not the first OR
- * if we're listening to the first new message and there are
- * also urgent messages, then prompt for navigation to the
- * previous message
- */
- if (vms->curmsg || (!in_urgent && vms->urgentmessages > 0) || (ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0)) {
- res = ast_play_and_wait(chan, "vm-prev");
- }
- if (!res && !skipadvanced)
- res = ast_play_and_wait(chan, "vm-advopts");
- if (!res)
- res = ast_play_and_wait(chan, "vm-repeat");
- /* Logic:
- * If we're not listening to the last message OR
- * we're listening to the last urgent message and there are
- * also new non-urgent messages, then prompt for navigation
- * to the next message
- */
- if (!res && ((vms->curmsg != vms->lastmsg) || (in_urgent && vms->newmessages > 0) ||
- (ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0) )) {
- res = ast_play_and_wait(chan, "vm-next");
- }
- if (!res) {
- int curmsg_deleted;
+ int res = 0;
+ /* Play instructions and wait for new command */
+ while (!res) {
+ if (vms->starting) {
+ if (vms->lastmsg > -1) {
+ res = vm_play_folder_name(chan, vms->vmbox);
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-wa");
+ if (!res)
+ res = ast_play_and_wait(chan, "digits/1");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-wo");
+ if (!res)
+ res = ast_play_and_wait(chan, "silence/1");
+ }
+ if (!res)
+ res = ast_play_and_wait(chan, "vm-opts");
+ } else {
+ /* Added for additional help */
+ if (skipadvanced) {
+ res = vm_play_folder_name(chan, vms->vmbox);
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-wa");
+ if (!res)
+ res = ast_play_and_wait(chan, "digits/1");
+ if (!res)
+ res = ast_play_and_wait(chan, "jp-wo");
+ if (!res)
+ res = ast_play_and_wait(chan, "silence/1");
+ res = ast_play_and_wait(chan, "vm-opts-full");
+ }
+ /* Logic:
+ * If the current message is not the first OR
+ * if we're listening to the first new message and there are
+ * also urgent messages, then prompt for navigation to the
+ * previous message
+ */
+ if (vms->curmsg || (!in_urgent && vms->urgentmessages > 0) || (ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0)) {
+ res = ast_play_and_wait(chan, "vm-prev");
+ }
+ if (!res && !skipadvanced)
+ res = ast_play_and_wait(chan, "vm-advopts");
+ if (!res)
+ res = ast_play_and_wait(chan, "vm-repeat");
+ /* Logic:
+ * If we're not listening to the last message OR
+ * we're listening to the last urgent message and there are
+ * also new non-urgent messages, then prompt for navigation
+ * to the next message
+ */
+ if (!res && ((vms->curmsg != vms->lastmsg) || (in_urgent && vms->newmessages > 0) ||
+ (ast_test_flag(vmu, VM_MESSAGEWRAP) && vms->lastmsg > 0) )) {
+ res = ast_play_and_wait(chan, "vm-next");
+ }
+ if (!res) {
+ int curmsg_deleted;
#ifdef IMAP_STORAGE
- ast_mutex_lock(&vms->lock);
+ ast_mutex_lock(&vms->lock);
#endif
- curmsg_deleted = vms->deleted[vms->curmsg];
+ curmsg_deleted = vms->deleted[vms->curmsg];
#ifdef IMAP_STORAGE
- ast_mutex_unlock(&vms->lock);
+ ast_mutex_unlock(&vms->lock);
#endif
- if (!curmsg_deleted) {
- res = ast_play_and_wait(chan, "vm-delete");
- } else {
- res = ast_play_and_wait(chan, "vm-undelete");
- }
- if (!res) {
- res = ast_play_and_wait(chan, "vm-toforward");
- }
- if (!res) {
- res = ast_play_and_wait(chan, "vm-savemessage");
- }
- }
- }
+ if (!curmsg_deleted) {
+ res = ast_play_and_wait(chan, "vm-delete");
+ } else {
+ res = ast_play_and_wait(chan, "vm-undelete");
+ }
+ if (!res) {
+ res = ast_play_and_wait(chan, "vm-toforward");
+ }
+ if (!res) {
+ res = ast_play_and_wait(chan, "vm-savemessage");
+ }
+ }
+ }
if (!res) {
res = ast_play_and_wait(chan, "vm-helpexit");
@@ -10629,7 +10629,7 @@
}
- return res;
+ return res;
}
static int vm_instructions_zh(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, int skipadvanced, int in_urgent)
@@ -10658,16 +10658,15 @@
static int vm_instructions(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, int skipadvanced, int in_urgent)
{
- if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* Japanese syntax */
- return vm_instructions_ja(chan, vmu, vms, skipadvanced, in_urgent);
- } else if (vms->starting && !strncasecmp(ast_channel_language(chan), "zh", 2)) { /* CHINESE (Taiwan) syntax */
+ if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* Japanese syntax */
+ return vm_instructions_ja(chan, vmu, vms, skipadvanced, in_urgent);
+ } else if (vms->starting && !strncasecmp(ast_channel_language(chan), "zh", 2)) { /* CHINESE (Taiwan) syntax */
return vm_instructions_zh(chan, vmu, vms, skipadvanced, in_urgent);
} else { /* Default to ENGLISH */
return vm_instructions_en(chan, vmu, vms, skipadvanced, in_urgent);
}
}
-
static int vm_newuser_setup(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm_state *vms, char *fmtc, signed char record_gain)
{
int cmd = 0;
@@ -11093,21 +11092,21 @@
*/
static int vm_browse_messages_ja(struct ast_channel *chan, struct vm_state *vms, struct ast_vm_user *vmu)
{
- int cmd = 0;
+ int cmd = 0;
- if (vms->lastmsg > -1) {
- cmd = play_message(chan, vmu, vms);
- } else {
- snprintf(vms->fn, sizeof(vms->fn), "vm-%s", vms->curbox);
- cmd = ast_play_and_wait(chan, vms->fn);
- if (!cmd)
- cmd = ast_play_and_wait(chan, "vm-messages");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "jp-wa");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "jp-arimasen");
- }
- return cmd;
+ if (vms->lastmsg > -1) {
+ cmd = play_message(chan, vmu, vms);
+ } else {
+ snprintf(vms->fn, sizeof(vms->fn), "vm-%s", vms->curbox);
+ cmd = ast_play_and_wait(chan, vms->fn);
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "vm-messages");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "jp-wa");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "jp-arimasen");
+ }
+ return cmd;
}
/*!
@@ -11235,8 +11234,8 @@
return vm_browse_messages_he(chan, vms, vmu);
} else if (!strncasecmp(ast_channel_language(chan), "it", 2)) { /* ITALIAN */
return vm_browse_messages_it(chan, vms, vmu);
- } else if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* JAPANESE */
- return vm_browse_messages_ja(chan, vms, vmu);
+ } else if (!strncasecmp(ast_channel_language(chan), "ja", 2)) { /* JAPANESE */
+ return vm_browse_messages_ja(chan, vms, vmu);
} else if (!strncasecmp(ast_channel_language(chan), "pt", 2)) { /* PORTUGUESE */
return vm_browse_messages_pt(chan, vms, vmu);
} else if (!strncasecmp(ast_channel_language(chan), "vi", 2)) { /* VIETNAMESE */
@@ -12192,22 +12191,22 @@
break;
case '*': /* Help */
if (!vms.starting) {
- if (!strncasecmp(ast_channel_language(chan), "ja", 2)) {
- cmd = vm_play_folder_name(chan, vms.vmbox);
- if (!cmd)
- cmd = ast_play_and_wait(chan, "jp-wa");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "digits/1");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "jp-wo");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "silence/1");
- if (!cmd)
- cmd = ast_play_and_wait(chan, "vm-opts");
- if (!cmd)
- cmd = vm_instructions(chan, vmu, &vms, 1, in_urgent);
- break;
- }
+ if (!strncasecmp(ast_channel_language(chan), "ja", 2)) {
+ cmd = vm_play_folder_name(chan, vms.vmbox);
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "jp-wa");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "digits/1");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "jp-wo");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "silence/1");
+ if (!cmd)
+ cmd = ast_play_and_wait(chan, "vm-opts");
+ if (!cmd)
+ cmd = vm_instructions(chan, vmu, &vms, 1, in_urgent);
+ break;
+ }
cmd = ast_play_and_wait(chan, "vm-onefor");
if (!strncasecmp(ast_channel_language(chan), "he", 2)) {
cmd = ast_play_and_wait(chan, "vm-for");
diff --git a/main/say.c b/main/say.c
index f456459..e1b0620 100644
--- a/main/say.c
+++ b/main/say.c
@@ -2040,31 +2040,31 @@
m100 = m1000 % 100;
i100 = m1000 / 100;
- if (i100>0)
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->setki[i100]);
+ if (i100>0)
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->setki[i100]);
- if (m100 > 0 && m100 <= 9) {
- if (m1000 > 0)
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry2[m100]);
- else
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry[m100]);
- } else if (m100 % 10 == 0 && m100 != 0) {
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->dziesiatki[m100 / 10]);
- } else if (m100 > 10 && m100 <= 19) {
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->nastki[m100 % 10]);
- } else if (m100 > 20) {
- if (odm->separator_dziesiatek[0] == ' ') {
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->dziesiatki[m100 / 10]);
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry2[m100 % 10]);
- } else {
- char buf[10];
- char *b = buf;
- b = pl_append(b, odm->dziesiatki[m100 / 10]);
- b = pl_append(b, odm->separator_dziesiatek);
- pl_append(b, odm->cyfry2[m100 % 10]);
- pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, buf);
- }
- }
+ if (m100 > 0 && m100 <= 9) {
+ if (m1000 > 0)
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry2[m100]);
+ else
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry[m100]);
+ } else if (m100 % 10 == 0 && m100 != 0) {
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->dziesiatki[m100 / 10]);
+ } else if (m100 > 10 && m100 <= 19) {
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->nastki[m100 % 10]);
+ } else if (m100 > 20) {
+ if (odm->separator_dziesiatek[0] == ' ') {
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->dziesiatki[m100 / 10]);
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, odm->cyfry2[m100 % 10]);
+ } else {
+ char buf[10];
+ char *b = buf;
+ b = pl_append(b, odm->dziesiatki[m100 / 10]);
+ b = pl_append(b, odm->separator_dziesiatek);
+ pl_append(b, odm->cyfry2[m100 % 10]);
+ pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, buf);
+ }
+ }
if (rzad > 0) {
pl_odtworz_plik(chan, language, audiofd, ctrlfd, ints, pl_rzad_na_tekst(odm, i, rzad));
@@ -7913,66 +7913,67 @@
/* Japanese syntax */
static int ast_say_number_full_ja(struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd)
{
- int res = 0;
- int playh = 0;
- char fn[256] = "";
- if (!num)
- return ast_say_digits_full(chan, 0, ints, language, audiofd, ctrlfd);
+ int res = 0;
+ int playh = 0;
+ char fn[256] = "";
- while (!res && (num || playh)) {
- if (num < 0) {
- ast_copy_string(fn, "digits/minus", sizeof(fn));
- if ( num > INT_MIN ) {
- num = -num;
- } else {
- num = 0;
- }
- } else if (playh) {
- ast_copy_string(fn, "digits/hundred", sizeof(fn));
- playh = 0;
- } else if (num < 20) {
- snprintf(fn, sizeof(fn), "digits/%d", num);
- num = 0;
- } else if (num < 100) {
- snprintf(fn, sizeof(fn), "digits/%d", (num /10) * 10);
- num %= 10;
- } else {
- if (num < 1000){
- snprintf(fn, sizeof(fn), "digits/%d", (num/100));
- playh++;
- num %= 100;
- } else {
- if (num < 1000000) { /* 1,000,000 */
- res = ast_say_number_full_en(chan, num / 1000, ints, language, audiofd, ctrlfd);
- if (res)
- return res;
- num %= 1000;
- snprintf(fn, sizeof(fn), "digits/thousand");
- } else {
- if (num < 1000000000) { /* 1,000,000,000 */
- res = ast_say_number_full_en(chan, num / 1000000, ints, language, audiofd, ctrlfd);
- if (res)
- return res;
- num %= 1000000;
- ast_copy_string(fn, "digits/million", sizeof(fn));
- } else {
- ast_debug(1, "Number '%d' is too big for me\n", num);
- res = -1;
- }
- }
- }
- }
- if (!res) {
- if (!ast_streamfile(chan, fn, language)) {
- if ((audiofd > -1) && (ctrlfd > -1))
- res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
- else
- res = ast_waitstream(chan, ints);
- }
- ast_stopstream(chan);
- }
- }
- return res;
+ if (!num)
+ return ast_say_digits_full(chan, 0, ints, language, audiofd, ctrlfd);
+
+ while (!res && (num || playh)) {
+ if (num < 0) {
+ ast_copy_string(fn, "digits/minus", sizeof(fn));
+ if ( num > INT_MIN ) {
+ num = -num;
+ } else {
+ num = 0;
+ }
+ } else if (playh) {
+ ast_copy_string(fn, "digits/hundred", sizeof(fn));
+ playh = 0;
+ } else if (num < 20) {
+ snprintf(fn, sizeof(fn), "digits/%d", num);
+ num = 0;
+ } else if (num < 100) {
+ snprintf(fn, sizeof(fn), "digits/%d", (num /10) * 10);
+ num %= 10;
+ } else {
+ if (num < 1000){
+ snprintf(fn, sizeof(fn), "digits/%d", (num/100));
+ playh++;
+ num %= 100;
+ } else {
+ if (num < 1000000) { /* 1,000,000 */
+ res = ast_say_number_full_en(chan, num / 1000, ints, language, audiofd, ctrlfd);
+ if (res)
+ return res;
+ num %= 1000;
+ snprintf(fn, sizeof(fn), "digits/thousand");
+ } else {
+ if (num < 1000000000) { /* 1,000,000,000 */
+ res = ast_say_number_full_en(chan, num / 1000000, ints, language, audiofd, ctrlfd);
+ if (res)
+ return res;
+ num %= 1000000;
+ ast_copy_string(fn, "digits/million", sizeof(fn));
+ } else {
+ ast_debug(1, "Number '%d' is too big for me\n", num);
+ res = -1;
+ }
+ }
+ }
+ }
+ if (!res) {
+ if (!ast_streamfile(chan, fn, language)) {
+ if ((audiofd > -1) && (ctrlfd > -1))
+ res = ast_waitstream_full(chan, ints, audiofd, ctrlfd);
+ else
+ res = ast_waitstream(chan, ints);
+ }
+ ast_stopstream(chan);
+ }
+ }
+ return res;
}
@@ -8023,34 +8024,36 @@
/* Japanese syntax */
int ast_say_date_ja(struct ast_channel *chan, time_t t, const char *ints, const char *lang)
{
- struct ast_tm tm;
- struct timeval tv = { t, 0 };
- char fn[256];
- int res = 0;
- ast_localtime(&tv, &tm, NULL);
- if (!res)
- res = ast_say_number(chan, tm.tm_year + 1900, ints, lang, (char *) NULL);
- if (!res)
- res = ast_waitstream(chan, ints);
- if (!res)
- res = ast_streamfile(chan, "digits/nen", lang);
- if (!res) {
- snprintf(fn, sizeof(fn), "digits/mon-%d", tm.tm_mon);
- res = ast_streamfile(chan, fn, lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- }
- if (!res)
- res = ast_say_number(chan, tm.tm_mday, ints, lang, (char * ) NULL);
- if (!res)
- res = ast_streamfile(chan, "digits/nichi", lang);
- if (!res) {
- snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday);
- res = ast_streamfile(chan, fn, lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- }
- return res;
+ struct ast_tm tm;
+ struct timeval tv = { t, 0 };
+ char fn[256];
+ int res = 0;
+
+ ast_localtime(&tv, &tm, NULL);
+
+ if (!res)
+ res = ast_say_number(chan, tm.tm_year + 1900, ints, lang, (char *) NULL);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ if (!res)
+ res = ast_streamfile(chan, "digits/nen", lang);
+ if (!res) {
+ snprintf(fn, sizeof(fn), "digits/mon-%d", tm.tm_mon);
+ res = ast_streamfile(chan, fn, lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ }
+ if (!res)
+ res = ast_say_number(chan, tm.tm_mday, ints, lang, (char * ) NULL);
+ if (!res)
+ res = ast_streamfile(chan, "digits/nichi", lang);
+ if (!res) {
+ snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday);
+ res = ast_streamfile(chan, fn, lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ }
+ return res;
}
@@ -8113,47 +8116,46 @@
/* Japanese */
static int ast_say_time_ja(struct ast_channel *chan, time_t t, const char *ints, const char *lang)
{
+ struct timeval tv = { t, 0 };
+ struct ast_tm tm;
+ int res = 0;
+ int hour, pm=0;
- struct timeval tv = { t, 0 };
- struct ast_tm tm;
- int res = 0;
- int hour, pm=0;
+ ast_localtime(&tv, &tm, NULL);
+ hour = tm.tm_hour;
- ast_localtime(&tv, &tm, NULL);
- hour = tm.tm_hour;
+ if (!hour)
+ hour = 12;
+ else if (hour == 12)
+ pm = 1;
+ else if (hour > 12) {
+ hour -= 12;
+ pm = 1;
+ }
- if (!hour)
- hour = 12;
- else if (hour == 12)
- pm = 1;
- else if (hour > 12) {
- hour -= 12;
- pm = 1;
- }
-
- if (pm) {
- if (!res)
- res = ast_streamfile(chan, "digits/p-m", lang);
- } else {
- if (!res)
- res = ast_streamfile(chan, "digits/a-m", lang);
- }
- if (hour == 9 || hour == 21) {
- if (!res)
- res = ast_streamfile(chan, "digits/9_2", lang);
- } else {
- if (!res)
- res = ast_say_number(chan, hour, ints, lang, (char *) NULL);
- }
- if (!res)
- res = ast_streamfile(chan, "digits/ji", lang);
- if (!res)
- res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL);
- if (!res)
- res = ast_streamfile(chan, "digits/fun", lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- return res;
+ if (pm) {
+ if (!res)
+ res = ast_streamfile(chan, "digits/p-m", lang);
+ } else {
+ if (!res)
+ res = ast_streamfile(chan, "digits/a-m", lang);
+ }
+ if (hour == 9 || hour == 21) {
+ if (!res)
+ res = ast_streamfile(chan, "digits/9_2", lang);
+ } else {
+ if (!res)
+ res = ast_say_number(chan, hour, ints, lang, (char *) NULL);
+ }
+ if (!res)
+ res = ast_streamfile(chan, "digits/ji", lang);
+ if (!res)
+ res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL);
+ if (!res)
+ res = ast_streamfile(chan, "digits/fun", lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ return res;
}
@@ -8194,67 +8196,67 @@
/* Japanese syntax */
int ast_say_datetime_ja(struct ast_channel *chan, time_t t, const char *ints, const char *lang)
{
- struct timeval tv = { t, 0 };
- struct ast_tm tm;
- char fn[256];
- int res = 0;
- int hour, pm=0;
+ struct timeval tv = { t, 0 };
+ struct ast_tm tm;
+ char fn[256];
+ int res = 0;
+ int hour, pm = 0;
- ast_localtime(&tv, &tm, NULL);
+ ast_localtime(&tv, &tm, NULL);
- if (!res)
- res = ast_say_number(chan, tm.tm_year + 1900, ints, lang, (char *) NULL);
- if (!res)
- res = ast_streamfile(chan, "digits/nen", lang);
- if (!res) {
- snprintf(fn, sizeof(fn), "digits/mon-%d", tm.tm_mon);
- res = ast_streamfile(chan, fn, lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- }
- if (!res)
- res = ast_say_number(chan, tm.tm_mday, ints, lang, (char *) NULL);
- if (!res)
- res = ast_streamfile(chan, "digits/nichi", lang);
- if (!res) {
- snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday);
- res = ast_streamfile(chan, fn, lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- }
+ if (!res)
+ res = ast_say_number(chan, tm.tm_year + 1900, ints, lang, (char *) NULL);
+ if (!res)
+ res = ast_streamfile(chan, "digits/nen", lang);
+ if (!res) {
+ snprintf(fn, sizeof(fn), "digits/mon-%d", tm.tm_mon);
+ res = ast_streamfile(chan, fn, lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ }
+ if (!res)
+ res = ast_say_number(chan, tm.tm_mday, ints, lang, (char *) NULL);
+ if (!res)
+ res = ast_streamfile(chan, "digits/nichi", lang);
+ if (!res) {
+ snprintf(fn, sizeof(fn), "digits/day-%d", tm.tm_wday);
+ res = ast_streamfile(chan, fn, lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ }
- hour = tm.tm_hour;
- if (!hour)
- hour = 12;
- else if (hour == 12)
- pm = 1;
- else if (hour > 12) {
- hour -= 12;
- pm = 1;
- }
- if (pm) {
- if (!res)
- res = ast_streamfile(chan, "digits/p-m", lang);
- } else {
- if (!res)
- res = ast_streamfile(chan, "digits/a-m", lang);
- }
- if (hour == 9 || hour == 21) {
- if (!res)
- res = ast_streamfile(chan, "digits/9_2", lang);
- } else {
- if (!res)
- res = ast_say_number(chan, hour, ints, lang, (char *) NULL);
- }
- if (!res)
- res = ast_streamfile(chan, "digits/ji", lang);
- if (!res)
- res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL);
- if (!res)
- res = ast_streamfile(chan, "digits/fun", lang);
- if (!res)
- res = ast_waitstream(chan, ints);
- return res;
+ hour = tm.tm_hour;
+ if (!hour)
+ hour = 12;
+ else if (hour == 12)
+ pm = 1;
+ else if (hour > 12) {
+ hour -= 12;
+ pm = 1;
+ }
+ if (pm) {
+ if (!res)
+ res = ast_streamfile(chan, "digits/p-m", lang);
+ } else {
+ if (!res)
+ res = ast_streamfile(chan, "digits/a-m", lang);
+ }
+ if (hour == 9 || hour == 21) {
+ if (!res)
+ res = ast_streamfile(chan, "digits/9_2", lang);
+ } else {
+ if (!res)
+ res = ast_say_number(chan, hour, ints, lang, (char *) NULL);
+ }
+ if (!res)
+ res = ast_streamfile(chan, "digits/ji", lang);
+ if (!res)
+ res = ast_say_number(chan, tm.tm_min, ints, lang, (char *) NULL);
+ if (!res)
+ res = ast_streamfile(chan, "digits/fun", lang);
+ if (!res)
+ res = ast_waitstream(chan, ints);
+ return res;
}
/*! \brief Greek support
@@ -8433,269 +8435,269 @@
/* Japanese syntax */
int ast_say_date_with_format_ja(struct ast_channel *chan, time_t time, const char *ints, const char *lang, const char *format, const char *timezone)
{
- struct timeval tv = { time, 0 };
- struct ast_tm tm;
- int res=0, offset, sndoffset;
- char sndfile[256], nextmsg[256];
+ struct timeval tv = { time, 0 };
+ struct ast_tm tm;
+ int res = 0, offset, sndoffset;
+ char sndfile[256], nextmsg[256];
- if (!format)
- format = "YbdAPIMS";
+ if (!format)
+ format = "YbdAPIMS";
- ast_localtime(&tv, &tm, timezone);
+ ast_localtime(&tv, &tm, timezone);
- for (offset=0 ; format[offset] != '\0' ; offset++) {
- ast_log(LOG_DEBUG, "Parsing %c (offset %d) in %s\n", format[offset], offset, format);
- switch (format[offset]) {
- /* NOTE: if you add more options here, please try to be consistent with strftime(3) */
- case '\'':
- /* Literal name of a sound file */
- for (sndoffset = 0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
- sndfile[sndoffset] = format[offset];
- }
- sndfile[sndoffset] = '\0';
- res = wait_file(chan,ints,sndfile,lang);
- break;
- case 'A':
- case 'a':
- /* Sunday - Saturday */
- snprintf(nextmsg,sizeof(nextmsg), "digits/day-%d", tm.tm_wday);
- res = wait_file(chan,ints,nextmsg,lang);
- break;
- case 'B':
- case 'b':
- case 'h':
- /* January - December */
- snprintf(nextmsg,sizeof(nextmsg), "digits/mon-%d", tm.tm_mon);
- res = wait_file(chan,ints,nextmsg,lang);
- break;
- case 'd':
- case 'e':
- /* First - Thirtyfirst */
- if (tm.tm_mday < 21) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/h-%d_2", tm.tm_mday);
- res = wait_file(chan,ints,nextmsg,lang);
- } else if (tm.tm_mday < 30) {
- /* Between 21 and 29 - two sounds */
- res = wait_file(chan,ints, "digits/20",lang);
- if (!res) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_mday - 20);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- res = wait_file(chan,ints, "digits/nichi",lang);
- } else if (tm.tm_mday == 30) {
- /* 30 */
- res = wait_file(chan,ints, "digits/h-30_2",lang);
- } else {
- /* 31 */
- res = wait_file(chan,ints, "digits/30",lang);
- res = wait_file(chan,ints, "digits/1",lang);
- res = wait_file(chan,ints, "digits/nichi",lang);
- }
- break;
- case 'Y':
- /* Year */
- if (tm.tm_year > 99) {
- res = wait_file(chan,ints, "digits/2",lang);
- if (!res) {
- res = wait_file(chan,ints, "digits/thousand",lang);
- }
- if (tm.tm_year > 100) {
- if (!res) {
- /* This works until the end of 2020 */
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year - 100);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- }
- } else {
- if (tm.tm_year < 1) {
- /* I'm not going to handle 1900 and prior */
- /* We'll just be silent on the year, instead of bombing out. */
- } else {
- res = wait_file(chan,ints, "digits/19",lang);
- if (!res) {
- if (tm.tm_year <= 9) {
- /* 1901 - 1909 */
- res = wait_file(chan,ints, "digits/oh",lang);
- if (!res) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- } else if (tm.tm_year <= 20) {
- /* 1910 - 1920 */
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year);
- res = wait_file(chan,ints,nextmsg,lang);
- } else {
- /* 1921 - 1999 */
- int ten, one;
- ten = tm.tm_year / 10;
- one = tm.tm_year % 10;
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten * 10);
- res = wait_file(chan,ints,nextmsg,lang);
- if (!res) {
- if (one != 0) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- }
- }
- }
- }
- }
- res = wait_file(chan,ints, "digits/nen",lang);
- break;
- case 'P':
- case 'p':
- /* AM/PM */
- if (tm.tm_hour > 11)
- snprintf(nextmsg,sizeof(nextmsg), "digits/p-m");
- else
- snprintf(nextmsg,sizeof(nextmsg), "digits/a-m");
- res = wait_file(chan,ints,nextmsg,lang);
- break;
- case 'I':
- case 'l':
- /* 12-Hour */
- if (tm.tm_hour == 0)
- snprintf(nextmsg,sizeof(nextmsg), "digits/12");
- else if (tm.tm_hour == 9 || tm.tm_hour == 21)
- snprintf(nextmsg,sizeof(nextmsg), "digits/9_2");
- else if (tm.tm_hour > 12)
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_hour - 12);
- else
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_hour);
- res = wait_file(chan,ints,nextmsg,lang);
- if(!res) res = wait_file(chan,ints, "digits/ji",lang);
- break;
- case 'H':
- case 'k':
- if (!res) {
- if (tm.tm_hour != 0) {
- int remainder = tm.tm_hour;
- if (tm.tm_hour > 20) {
- res = wait_file(chan,ints, "digits/20",lang);
- remainder -= 20;
- }
- if (!res) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", remainder);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- }
- }
- res = wait_file(chan,ints, "digits/ji",lang);
- break;
- case 'M':
- /* Minute */
- if ((tm.tm_min < 21) || (tm.tm_min % 10 == 0)) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_min);
- res = wait_file(chan,ints,nextmsg,lang);
- } else {
- int ten, one;
- ten = (tm.tm_min / 10) * 10;
- one = (tm.tm_min % 10);
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten);
- res = wait_file(chan,ints,nextmsg,lang);
- if (!res) {
- /* Fifty, not fifty-zero */
- if (one != 0) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- }
- }
- res = wait_file(chan,ints, "digits/fun",lang);
- break;
- case 'Q':
- /* Shorthand for "Today", "Yesterday", or ABdY */
- {
- struct timeval now;
- struct ast_tm tmnow;
- time_t beg_today;
+ for (offset = 0; format[offset] != '\0'; offset++) {
+ ast_log(LOG_DEBUG, "Parsing %c (offset %d) in %s\n", format[offset], offset, format);
+ switch (format[offset]) {
+ /* NOTE: if you add more options here, please try to be consistent with strftime(3) */
+ case '\'':
+ /* Literal name of a sound file */
+ for (sndoffset = 0; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
+ sndfile[sndoffset] = format[offset];
+ }
+ sndfile[sndoffset] = '\0';
+ res = wait_file(chan,ints,sndfile,lang);
+ break;
+ case 'A':
+ case 'a':
+ /* Sunday - Saturday */
+ snprintf(nextmsg,sizeof(nextmsg), "digits/day-%d", tm.tm_wday);
+ res = wait_file(chan,ints,nextmsg,lang);
+ break;
+ case 'B':
+ case 'b':
+ case 'h':
+ /* January - December */
+ snprintf(nextmsg,sizeof(nextmsg), "digits/mon-%d", tm.tm_mon);
+ res = wait_file(chan,ints,nextmsg,lang);
+ break;
+ case 'd':
+ case 'e':
+ /* First - Thirtyfirst */
+ if (tm.tm_mday < 21) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/h-%d_2", tm.tm_mday);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else if (tm.tm_mday < 30) {
+ /* Between 21 and 29 - two sounds */
+ res = wait_file(chan,ints, "digits/20",lang);
+ if (!res) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_mday - 20);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ res = wait_file(chan,ints, "digits/nichi",lang);
+ } else if (tm.tm_mday == 30) {
+ /* 30 */
+ res = wait_file(chan,ints, "digits/h-30_2",lang);
+ } else {
+ /* 31 */
+ res = wait_file(chan,ints, "digits/30",lang);
+ res = wait_file(chan,ints, "digits/1",lang);
+ res = wait_file(chan,ints, "digits/nichi",lang);
+ }
+ break;
+ case 'Y':
+ /* Year */
+ if (tm.tm_year > 99) {
+ res = wait_file(chan,ints, "digits/2",lang);
+ if (!res) {
+ res = wait_file(chan,ints, "digits/thousand",lang);
+ }
+ if (tm.tm_year > 100) {
+ if (!res) {
+ /* This works until the end of 2020 */
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year - 100);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ } else {
+ if (tm.tm_year < 1) {
+ /* I'm not going to handle 1900 and prior */
+ /* We'll just be silent on the year, instead of bombing out. */
+ } else {
+ res = wait_file(chan,ints, "digits/19",lang);
+ if (!res) {
+ if (tm.tm_year <= 9) {
+ /* 1901 - 1909 */
+ res = wait_file(chan,ints, "digits/oh",lang);
+ if (!res) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ } else if (tm.tm_year <= 20) {
+ /* 1910 - 1920 */
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_year);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else {
+ /* 1921 - 1999 */
+ int ten, one;
+ ten = tm.tm_year / 10;
+ one = tm.tm_year % 10;
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten * 10);
+ res = wait_file(chan,ints,nextmsg,lang);
+ if (!res) {
+ if (one != 0) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ }
+ }
+ }
+ }
+ res = wait_file(chan,ints, "digits/nen",lang);
+ break;
+ case 'P':
+ case 'p':
+ /* AM/PM */
+ if (tm.tm_hour > 11)
+ snprintf(nextmsg,sizeof(nextmsg), "digits/p-m");
+ else
+ snprintf(nextmsg,sizeof(nextmsg), "digits/a-m");
+ res = wait_file(chan,ints,nextmsg,lang);
+ break;
+ case 'I':
+ case 'l':
+ /* 12-Hour */
+ if (tm.tm_hour == 0)
+ snprintf(nextmsg,sizeof(nextmsg), "digits/12");
+ else if (tm.tm_hour == 9 || tm.tm_hour == 21)
+ snprintf(nextmsg,sizeof(nextmsg), "digits/9_2");
+ else if (tm.tm_hour > 12)
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_hour - 12);
+ else
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_hour);
+ res = wait_file(chan,ints,nextmsg,lang);
+ if(!res) res = wait_file(chan,ints, "digits/ji",lang);
+ break;
+ case 'H':
+ case 'k':
+ if (!res) {
+ if (tm.tm_hour != 0) {
+ int remainder = tm.tm_hour;
+ if (tm.tm_hour > 20) {
+ res = wait_file(chan,ints, "digits/20",lang);
+ remainder -= 20;
+ }
+ if (!res) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", remainder);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ }
+ res = wait_file(chan,ints, "digits/ji",lang);
+ break;
+ case 'M':
+ /* Minute */
+ if ((tm.tm_min < 21) || (tm.tm_min % 10 == 0)) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_min);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else {
+ int ten, one;
+ ten = (tm.tm_min / 10) * 10;
+ one = (tm.tm_min % 10);
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten);
+ res = wait_file(chan,ints,nextmsg,lang);
+ if (!res) {
+ /* Fifty, not fifty-zero */
+ if (one != 0) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ }
+ res = wait_file(chan,ints, "digits/fun",lang);
+ break;
+ case 'Q':
+ /* Shorthand for "Today", "Yesterday", or ABdY */
+ {
+ struct timeval now;
+ struct ast_tm tmnow;
+ time_t beg_today;
- gettimeofday(&now,NULL);
- ast_localtime(&now,&tmnow,timezone);
- /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */
- /* In any case, it saves not having to do ast_mktime() */
- beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);
- if (beg_today < time) {
- /* Today */
- res = wait_file(chan,ints, "digits/today",lang);
- } else if (beg_today - 86400 < time) {
- /* Yesterday */
- res = wait_file(chan,ints, "digits/yesterday",lang);
- } else {
- res = ast_say_date_with_format(chan, time, ints, lang, "ABdY", timezone);
- }
- }
- break;
- case 'q':
- /* Shorthand for "" (today), "Yesterday", A (weekday), or ABdY */
- {
- struct timeval now;
- struct ast_tm tmnow;
- time_t beg_today;
+ gettimeofday(&now,NULL);
+ ast_localtime(&now,&tmnow,timezone);
+ /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */
+ /* In any case, it saves not having to do ast_mktime() */
+ beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);
+ if (beg_today < time) {
+ /* Today */
+ res = wait_file(chan,ints, "digits/today",lang);
+ } else if (beg_today - 86400 < time) {
+ /* Yesterday */
+ res = wait_file(chan,ints, "digits/yesterday",lang);
+ } else {
+ res = ast_say_date_with_format(chan, time, ints, lang, "ABdY", timezone);
+ }
+ }
+ break;
+ case 'q':
+ /* Shorthand for "" (today), "Yesterday", A (weekday), or ABdY */
+ {
+ struct timeval now;
+ struct ast_tm tmnow;
+ time_t beg_today;
- gettimeofday(&now,NULL);
- ast_localtime(&now,&tmnow,timezone);
- /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */
- /* In any case, it saves not having to do ast_mktime() */
- beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);
- if (beg_today < time) {
- /* Today */
- } else if ((beg_today - 86400) < time) {
- /* Yesterday */
- res = wait_file(chan,ints, "digits/yesterday",lang);
- } else if (beg_today - 86400 * 6 < time) {
- /* Within the last week */
- res = ast_say_date_with_format(chan, time, ints, lang, "A", timezone);
- } else {
- res = ast_say_date_with_format(chan, time, ints, lang, "ABdY", timezone);
- }
- }
- break;
- case 'R':
- res = ast_say_date_with_format(chan, time, ints, lang, "HM", timezone);
- break;
- case 'S':
- /* Seconds */
- if (tm.tm_sec == 0) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_sec);
- res = wait_file(chan,ints,nextmsg,lang);
- } else if ((tm.tm_sec < 21) || (tm.tm_sec % 10 == 0)) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_sec);
- res = wait_file(chan,ints,nextmsg,lang);
- } else {
- int ten, one;
- ten = (tm.tm_sec / 10) * 10;
- one = (tm.tm_sec % 10);
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten);
- res = wait_file(chan,ints,nextmsg,lang);
- if (!res) {
- /* Fifty, not fifty-zero */
- if (one != 0) {
- snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
- res = wait_file(chan,ints,nextmsg,lang);
- }
- }
- }
- res = wait_file(chan,ints, "digits/byou",lang);
- break;
- case 'T':
- res = ast_say_date_with_format(chan, time, ints, lang, "HMS", timezone);
- break;
- case ' ':
- case ' ':
- /* Just ignore spaces and tabs */
- break;
- default:
- /* Unknown character */
- ast_log(LOG_WARNING, "Unknown character in datetime format %s: %c at pos %d\n", format, format[offset], offset);
- }
- /* Jump out on DTMF */
- if (res) {
- break;
- }
- }
- return res;
+ gettimeofday(&now,NULL);
+ ast_localtime(&now,&tmnow,timezone);
+ /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */
+ /* In any case, it saves not having to do ast_mktime() */
+ beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);
+ if (beg_today < time) {
+ /* Today */
+ } else if ((beg_today - 86400) < time) {
+ /* Yesterday */
+ res = wait_file(chan,ints, "digits/yesterday",lang);
+ } else if (beg_today - 86400 * 6 < time) {
+ /* Within the last week */
+ res = ast_say_date_with_format(chan, time, ints, lang, "A", timezone);
+ } else {
+ res = ast_say_date_with_format(chan, time, ints, lang, "ABdY", timezone);
+ }
+ }
+ break;
+ case 'R':
+ res = ast_say_date_with_format(chan, time, ints, lang, "HM", timezone);
+ break;
+ case 'S':
+ /* Seconds */
+ if (tm.tm_sec == 0) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_sec);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else if ((tm.tm_sec < 21) || (tm.tm_sec % 10 == 0)) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", tm.tm_sec);
+ res = wait_file(chan,ints,nextmsg,lang);
+ } else {
+ int ten, one;
+ ten = (tm.tm_sec / 10) * 10;
+ one = (tm.tm_sec % 10);
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", ten);
+ res = wait_file(chan,ints,nextmsg,lang);
+ if (!res) {
+ /* Fifty, not fifty-zero */
+ if (one != 0) {
+ snprintf(nextmsg,sizeof(nextmsg), "digits/%d", one);
+ res = wait_file(chan,ints,nextmsg,lang);
+ }
+ }
+ }
+ res = wait_file(chan,ints, "digits/byou",lang);
+ break;
+ case 'T':
+ res = ast_say_date_with_format(chan, time, ints, lang, "HMS", timezone);
+ break;
+ case ' ':
+ case ' ':
+ /* Just ignore spaces and tabs */
+ break;
+ default:
+ /* Unknown character */
+ ast_log(LOG_WARNING, "Unknown character in datetime format %s: %c at pos %d\n", format, format[offset], offset);
+ }
+ /* Jump out on DTMF */
+ if (res) {
+ break;
+ }
+ }
+ return res;
}
/*! \brief Vietnamese syntax */
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/13642
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 17
Gerrit-Change-Id: I72c725f5930084673749bd7c9cc426a987f08e87
Gerrit-Change-Number: 13642
Gerrit-PatchSet: 1
Gerrit-Owner: Sean Bright <sean.bright at gmail.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20200120/ae8e95db/attachment-0001.html>
More information about the asterisk-code-review
mailing list