--- say.c.old 2004-01-13 00:00:38.000000000 +0000 +++ say.c 2004-01-13 00:05:30.000000000 +0000 @@ -478,6 +478,38 @@ 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_DIR "%d", tm.tm_sec); + res = wait_file(chan,ints,nextmsg,lang); + } else if (tm.tm_sec < 10) { + res = wait_file(chan,ints,DIGITS_DIR "oh",lang); + if (!res) { + snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%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_DIR "%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_DIR "%d", ten); + res = wait_file(chan,ints,nextmsg,lang); + if (!res) { + /* Fifty, not fifty-zero */ + if (one != 0) { + snprintf(nextmsg,sizeof(nextmsg),DIGITS_DIR "%d", one); + res = wait_file(chan,ints,nextmsg,lang); + } + } + } + break; + case 'T': + res = ast_say_date_with_format(chan, time, ints, lang, "HMS", timezone); + break; case ' ': case ' ': /* Just ignore spaces and tabs */