diff options
| author | tholo <> | 1996-09-16 05:43:40 +0000 |
|---|---|---|
| committer | tholo <> | 1996-09-16 05:43:40 +0000 |
| commit | 9b25cbf97ec9b0c0fe72bf7024007a17a16b4b4a (patch) | |
| tree | 66535c32ca9e38fca52abc6851efdb13ad4387aa /src/lib/libc/string/__strerror.c | |
| parent | cfb0356de847ac95572c942fd6484acd65cc757c (diff) | |
| download | openbsd-9b25cbf97ec9b0c0fe72bf7024007a17a16b4b4a.tar.gz openbsd-9b25cbf97ec9b0c0fe72bf7024007a17a16b4b4a.tar.bz2 openbsd-9b25cbf97ec9b0c0fe72bf7024007a17a16b4b4a.zip | |
Avoid pulling in stdio
Diffstat (limited to 'src/lib/libc/string/__strerror.c')
| -rw-r--r-- | src/lib/libc/string/__strerror.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/lib/libc/string/__strerror.c b/src/lib/libc/string/__strerror.c index 619bebf229..16d8205868 100644 --- a/src/lib/libc/string/__strerror.c +++ b/src/lib/libc/string/__strerror.c | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | */ | 32 | */ |
| 33 | 33 | ||
| 34 | #if defined(LIBC_SCCS) && !defined(lint) | 34 | #if defined(LIBC_SCCS) && !defined(lint) |
| 35 | static char *rcsid = "$OpenBSD: __strerror.c,v 1.4 1996/09/15 09:31:53 tholo Exp $"; | 35 | static char *rcsid = "$OpenBSD: __strerror.c,v 1.5 1996/09/16 05:43:38 tholo Exp $"; |
| 36 | #endif /* LIBC_SCCS and not lint */ | 36 | #endif /* LIBC_SCCS and not lint */ |
| 37 | 37 | ||
| 38 | #ifdef NLS | 38 | #ifdef NLS |
| @@ -49,6 +49,21 @@ static char *rcsid = "$OpenBSD: __strerror.c,v 1.4 1996/09/15 09:31:53 tholo Exp | |||
| 49 | #include <stdio.h> | 49 | #include <stdio.h> |
| 50 | #include <string.h> | 50 | #include <string.h> |
| 51 | 51 | ||
| 52 | static char *itoa(num) | ||
| 53 | int num; | ||
| 54 | { | ||
| 55 | static char buffer[11]; | ||
| 56 | char *p; | ||
| 57 | |||
| 58 | p = buffer + 4; | ||
| 59 | while (num >= 10) { | ||
| 60 | *--p = (num % 10) + '0'; | ||
| 61 | num /= 10; | ||
| 62 | } | ||
| 63 | *p = (num % 10) + '0'; | ||
| 64 | return p; | ||
| 65 | } | ||
| 66 | |||
| 52 | /* | 67 | /* |
| 53 | * Since perror() is not allowed to change the contents of strerror()'s | 68 | * Since perror() is not allowed to change the contents of strerror()'s |
| 54 | * static buffer, both functions supply their own buffers to the | 69 | * static buffer, both functions supply their own buffers to the |
| @@ -60,7 +75,7 @@ __strerror(num, buf) | |||
| 60 | int num; | 75 | int num; |
| 61 | char *buf; | 76 | char *buf; |
| 62 | { | 77 | { |
| 63 | #define UPREFIX "Unknown error: %u" | 78 | #define UPREFIX "Unknown error: " |
| 64 | register unsigned int errnum; | 79 | register unsigned int errnum; |
| 65 | 80 | ||
| 66 | #ifdef NLS | 81 | #ifdef NLS |
| @@ -78,10 +93,11 @@ __strerror(num, buf) | |||
| 78 | #endif | 93 | #endif |
| 79 | } else { | 94 | } else { |
| 80 | #ifdef NLS | 95 | #ifdef NLS |
| 81 | sprintf(buf, catgets(catd, 1, 0xffff, UPREFIX), errnum); | 96 | strcpy(buf, catgets(catd, 1, 0xffff, UPREFIX)); |
| 82 | #else | 97 | #else |
| 83 | sprintf(buf, UPREFIX, errnum); | 98 | strcpy(buf, UPREFIX); |
| 84 | #endif | 99 | #endif |
| 100 | strcat(buf, itoa(errnum)); | ||
| 85 | } | 101 | } |
| 86 | 102 | ||
| 87 | #ifdef NLS | 103 | #ifdef NLS |
