summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/lib/libnsl/nsl/t_error.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/usr/src/lib/libnsl/nsl/t_error.c b/usr/src/lib/libnsl/nsl/t_error.c
index cc316dea2a..4bd7448e07 100644
--- a/usr/src/lib/libnsl/nsl/t_error.c
+++ b/usr/src/lib/libnsl/nsl/t_error.c
@@ -26,10 +26,9 @@
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ * Copyright (c) 2012 Gary Mills
*/
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.2 */
-
#include "mt.h"
#include <xti.h>
#include <errno.h>
@@ -42,21 +41,19 @@ int
_tx_error(const char *s, int api_semantics)
{
const char *c;
- int n;
+ int errnum = errno; /* In case a system call fails. */
c = t_strerror(t_errno);
if (s != NULL && *s != '\0') {
- n = strlen(s);
- if (n) {
- (void) write(2, s, (unsigned)n);
- (void) write(2, ": ", 2);
- }
+ (void) write(2, s, strlen(s));
+ (void) write(2, ": ", 2);
}
- (void) write(2, c, (unsigned)strlen(c));
+ (void) write(2, c, strlen(c));
if (t_errno == TSYSERR) {
+ c = strerror(errnum);
(void) write(2, ": ", 2);
- perror("");
- } else
- (void) write(2, "\n", 1);
+ (void) write(2, c, strlen(c));
+ }
+ (void) write(2, "\n", 1);
return (0);
}