From: Ken Hornstein Date: Mon, 8 Jul 2019 15:37:15 +0000 (-0400) Subject: Handle teen ordinal suffixes correctly. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/062e39670628eff46e197006ec3db9a6ac015f57?ds=sidebyside Handle teen ordinal suffixes correctly. --- diff --git a/sbr/fmt_scan.c b/sbr/fmt_scan.c index 436b1ec4..c5e9877c 100644 --- a/sbr/fmt_scan.c +++ b/sbr/fmt_scan.c @@ -579,20 +579,25 @@ fmt_scan (struct format *format, charstring_t scanlp, int width, int *dat, case FT_LS_ORDINAL: { int digit = value % 10; + int seconddigit = (value / 10) % 10; const char *suffix; - switch (digit) { - case 1: - suffix = "st"; - break; - case 2: - suffix = "nd"; - break; - case 3: - suffix = "rd"; - break; - default: + if (seconddigit == 1) { suffix = "th"; + } else { + switch (digit) { + case 1: + suffix = "st"; + break; + case 2: + suffix = "nd"; + break; + case 3: + suffix = "rd"; + break; + default: + suffix = "th"; + } } strncpy(buffer, suffix, sizeof(buffer));