diff options
Diffstat (limited to 'community/bsd-games/number.c.diff')
-rw-r--r-- | community/bsd-games/number.c.diff | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/community/bsd-games/number.c.diff b/community/bsd-games/number.c.diff deleted file mode 100644 index 1acbeff30..000000000 --- a/community/bsd-games/number.c.diff +++ /dev/null @@ -1,156 +0,0 @@ ---- bsdgames-2.17.orig/number/number.c -+++ bsdgames-2.17/number/number.c -@@ -78,9 +78,9 @@ - - void convert(char *); - int main(int, char *[]); --int number(const char *, int); --void pfract(int); --int unit(int, const char *); -+int number(const char *, int, int *); -+void pfract(int, int); -+int unit(int, const char *, int *); - void usage(void) __attribute__((__noreturn__)); - - int lflag; -@@ -131,7 +131,7 @@ - convert(line) - char *line; - { -- int flen, len, rval; -+ int flen, len, rval, singular; - char *p, *fraction; - - flen = 0; -@@ -174,7 +174,7 @@ - --len; - } - -- rval = len > 0 ? unit(len, line) : 0; -+ rval = len > 0 ? unit(len, line, &singular) : 0; - if (fraction != NULL && flen != 0) - for (p = fraction; *p != '\0'; ++p) - if (*p != '0') { -@@ -182,10 +182,10 @@ - (void)printf("%sand%s", - lflag ? " " : "", - lflag ? " " : "\n"); -- if (unit(flen, fraction)) { -+ if (unit(flen, fraction, &singular)) { - if (lflag) - (void)printf(" "); -- pfract(flen); -+ pfract(flen, singular); - rval = 1; - } - break; -@@ -197,9 +197,10 @@ - } - - int --unit(len, p) -+unit(len, p, singular) - int len; - const char *p; -+ int *singular; - { - int off, rval; - -@@ -208,7 +209,7 @@ - if (len % 3) { - off = len % 3; - len -= off; -- if (number(p, off)) { -+ if (number(p, off, singular)) { - rval = 1; - (void)printf(" %s%s", - name3[len / 3], lflag ? " " : ".\n"); -@@ -217,14 +218,16 @@ - } - for (; len > 3; p += 3) { - len -= 3; -- if (number(p, 3)) { -+ if (number(p, 3, singular)) { - rval = 1; - (void)printf(" %s%s", - name3[len / 3], lflag ? " " : ".\n"); - } - } - } -- if (number(p, len)) { -+ if (number(p, len, singular)) { -+ if (rval) -+ *singular = 0; - if (!lflag) - (void)printf(".\n"); - rval = 1; -@@ -233,17 +236,20 @@ - } - - int --number(p, len) -+number(p, len, singular) - const char *p; - int len; -+ int *singular; - { - int val, rval; - - rval = 0; -+ *singular = 1; - switch (len) { - case 3: - if (*p != '0') { - rval = 1; -+ *singular = 0; - (void)printf("%s hundred", name1[*p - '0']); - } - ++p; -@@ -262,33 +268,42 @@ - } - rval = 1; - } -+ if (val != 1) -+ *singular = 0; - break; - case 1: - if (*p != '0') { - rval = 1; - (void)printf("%s", name1[*p - '0']); - } -+ if (*p != '1') -+ *singular = 0; - } - return (rval); - } - - void --pfract(len) -+pfract(len, singular) - int len; -+ int singular; - { - static const char *const pref[] = { "", "ten-", "hundred-" }; - - switch(len) { - case 1: -- (void)printf("tenths.\n"); -+ (void)printf("tenth"); - break; - case 2: -- (void)printf("hundredths.\n"); -+ (void)printf("hundredth"); - break; - default: -- (void)printf("%s%sths.\n", pref[len % 3], name3[len / 3]); -+ (void)printf("%s%sth", pref[len % 3], name3[len / 3]); - break; - } -+ if (!singular) { -+ printf("s"); -+ } -+ printf(".\n"); - } - - void - |