<p>Shloime Rosenblum has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/16492">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">main/say.c: Support future dates with Q and q format params<br><br>The current versions do not support future dates in all say application when using the 'Q' or 'q' format parameter and says "today" for everything that is greater than today<br><br>ASTERISK-29637<br><br>Change-Id: I1fb1cef0ce3c18d87b1fc94ea309d13bc344af02<br>---<br>M main/say.c<br>1 file changed, 83 insertions(+), 12 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/92/16492/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/main/say.c b/main/say.c</span><br><span>index fcab7fd..478f93c 100644</span><br><span>--- a/main/say.c</span><br><span>+++ b/main/say.c</span><br><span>@@ -4199,22 +4199,57 @@</span><br><span>                                         /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */</span><br><span>                                    /* In any case, it saves not having to do ast_mktime() */</span><br><span>                                    beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);</span><br><span style="color: hsl(0, 100%, 40%);">-                                 if (beg_today < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       if (beg_today + 15768000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                            /* More than 6 months from now - "April nineteenth two thousand three" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                           res = ast_say_date_with_format_en(chan, t, ints, lang, "BdY", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       } </span><br><span style="color: hsl(120, 100%, 40%);">+                                    else if (beg_today + 2628000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Less than 6 months from now - "August seventh" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                res = ast_say_date_with_format_en(chan, t, ints, lang, "Bd", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                        }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 86400 * 6 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Less than a month from now - "Sunday, October third" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                          res = ast_say_date_with_format_en(chan, t, ints, lang, "ABd", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 172800 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                   {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Within the next week */</span><br><span style="color: hsl(120, 100%, 40%);">+                                            res = ast_say_date_with_format_en(chan, t, ints, lang, "A", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                 }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 86400 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Tomorrow */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                res = wait_file(chan, ints, "digits/tomorrow", lang);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span>                                            /* Today */</span><br><span>                                          res = wait_file(chan, ints, "digits/today", lang);</span><br><span style="color: hsl(0, 100%, 40%);">-                                    } else if (beg_today - 86400 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                        }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 86400 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span>                                            /* Yesterday */</span><br><span>                                              res = wait_file(chan, ints, "digits/yesterday", lang);</span><br><span style="color: hsl(0, 100%, 40%);">-                                        } else if (beg_today - 86400 * 6 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 86400 * 6 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        {</span><br><span>                                            /* Within the last week */</span><br><span>                                           res = ast_say_date_with_format_en(chan, t, ints, lang, "A", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                   } else if (beg_today - 2628000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 2628000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span>                                            /* Less than a month ago - "Sunday, October third" */</span><br><span>                                              res = ast_say_date_with_format_en(chan, t, ints, lang, "ABd", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                 } else if (beg_today - 15768000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 15768000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                 {</span><br><span>                                            /* Less than 6 months ago - "August seventh" */</span><br><span>                                            res = ast_say_date_with_format_en(chan, t, ints, lang, "Bd", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                  } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span>                                            /* More than 6 months ago - "April nineteenth two thousand three" */</span><br><span>                                               res = ast_say_date_with_format_en(chan, t, ints, lang, "BdY", tzone);</span><br><span>                                      }</span><br><span>@@ -4235,21 +4270,57 @@</span><br><span>                                  /* This might be slightly off, if we transcend a leap second, but never more off than 1 second */</span><br><span>                                    /* In any case, it saves not having to do ast_mktime() */</span><br><span>                                    beg_today = now.tv_sec - (tmnow.tm_hour * 3600) - (tmnow.tm_min * 60) - (tmnow.tm_sec);</span><br><span style="color: hsl(0, 100%, 40%);">-                                 if (beg_today < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       if (beg_today + 15768000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                            /* More than 6 months from now - "April nineteenth two thousand three" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                           res = ast_say_date_with_format_en(chan, t, ints, lang, "BdY", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       } </span><br><span style="color: hsl(120, 100%, 40%);">+                                    else if (beg_today + 2628000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Less than 6 months from now - "August seventh" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                res = ast_say_date_with_format_en(chan, t, ints, lang, "Bd", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                        }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 86400 * 6 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Less than a month from now - "Sunday, October third" */</span><br><span style="color: hsl(120, 100%, 40%);">+                                          res = ast_say_date_with_format_en(chan, t, ints, lang, "ABd", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 172800 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                   {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Within the next week */</span><br><span style="color: hsl(120, 100%, 40%);">+                                            res = ast_say_date_with_format_en(chan, t, ints, lang, "A", tzone);</span><br><span style="color: hsl(120, 100%, 40%);">+                                 }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today + 86400 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             /* Tomorrow */</span><br><span style="color: hsl(120, 100%, 40%);">+                                                res = wait_file(chan, ints, "digits/tomorrow", lang);</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span>                                            /* Today */</span><br><span style="color: hsl(0, 100%, 40%);">-                                     } else if ((beg_today - 86400) < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                              res = wait_file(chan, ints, "digits/today", lang);</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 86400 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                    {</span><br><span>                                            /* Yesterday */</span><br><span>                                              res = wait_file(chan, ints, "digits/yesterday", lang);</span><br><span style="color: hsl(0, 100%, 40%);">-                                        } else if (beg_today - 86400 * 6 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 86400 * 6 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                        {</span><br><span>                                            /* Within the last week */</span><br><span>                                           res = ast_say_date_with_format_en(chan, t, ints, lang, "A", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                   } else if (beg_today - 2628000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 2628000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span>                                            /* Less than a month ago - "Sunday, October third" */</span><br><span>                                              res = ast_say_date_with_format_en(chan, t, ints, lang, "ABd", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                 } else if (beg_today - 15768000 < t) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else if (beg_today - 15768000 < t)</span><br><span style="color: hsl(120, 100%, 40%);">+                                 {</span><br><span>                                            /* Less than 6 months ago - "August seventh" */</span><br><span>                                            res = ast_say_date_with_format_en(chan, t, ints, lang, "Bd", tzone);</span><br><span style="color: hsl(0, 100%, 40%);">-                                  } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     else</span><br><span style="color: hsl(120, 100%, 40%);">+                                  {</span><br><span>                                            /* More than 6 months ago - "April nineteenth two thousand three" */</span><br><span>                                               res = ast_say_date_with_format_en(chan, t, ints, lang, "BdY", tzone);</span><br><span>                                      }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/16492">change 16492</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/16492"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 18.2 </div>
<div style="display:none"> Gerrit-Change-Id: I1fb1cef0ce3c18d87b1fc94ea309d13bc344af02 </div>
<div style="display:none"> Gerrit-Change-Number: 16492 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Shloime Rosenblum <shloimerosenblum@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>