aboutsummaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-10-27 10:49:53 +0000
committerCorinna Vinschen <corinna@vinschen.de>2006-10-27 10:49:53 +0000
commit17544b2d9bfab61308568960a80411a8ab96c9fd (patch)
tree1a7b64d6c36d75de795d6c7d2638708435611ccf /winsup
parent7bb6efd84a842e1fba6cbd608ee1870f24fdb447 (diff)
downloadnewlib-17544b2d9bfab61308568960a80411a8ab96c9fd.zip
newlib-17544b2d9bfab61308568960a80411a8ab96c9fd.tar.gz
newlib-17544b2d9bfab61308568960a80411a8ab96c9fd.tar.bz2
* dcrt0.cc (__api_fatal): Drop spare argument to __small_sprintf.
* smallprint.c (__small_vsprintf): Preserve GetLastError value. * winsup.h (api_fatal): Simplify. Drop duplicate filename arg.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog6
-rw-r--r--winsup/cygwin/dcrt0.cc2
-rw-r--r--winsup/cygwin/smallprint.c5
-rw-r--r--winsup/cygwin/winsup.h2
4 files changed, 12 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 31627e3..45ec58b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (__api_fatal): Drop spare argument to __small_sprintf.
+ * smallprint.c (__small_vsprintf): Preserve GetLastError value.
+ * winsup.h (api_fatal): Simplify. Drop duplicate filename arg.
+
2006-10-23 Corinna Vinschen <corinna@vinschen.de>
* fhandler_disk_file.cc (fhandler_disk_file::rewinddir): Fix comment.
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index c3f4eac..2a7b672 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -1151,7 +1151,7 @@ __api_fatal (const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
- int n = __small_sprintf (buf, "%P: *** fatal error - ", cygwin_pid (GetCurrentProcessId ()));
+ int n = __small_sprintf (buf, "%P: *** fatal error - ");
__small_vsprintf (buf + n, fmt, ap);
va_end (ap);
strace.prntf (_STRACE_SYSTEM, NULL, "%s", buf);
diff --git a/winsup/cygwin/smallprint.c b/winsup/cygwin/smallprint.c
index 37c70ee..9150318 100644
--- a/winsup/cygwin/smallprint.c
+++ b/winsup/cygwin/smallprint.c
@@ -71,6 +71,8 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
char *orig = dst;
const char *s;
+ DWORD err = GetLastError ();
+
while (*fmt)
{
int i, n = 0x7fff;
@@ -125,7 +127,7 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
break;
case 'E':
strcpy (dst, "Win32 error ");
- dst = __rn (dst + sizeof ("Win32 error"), 10, 0, GetLastError (), len, pad, LMASK);
+ dst = __rn (dst + sizeof ("Win32 error"), 10, 0, err, len, pad, LMASK);
break;
case 'd':
dst = rnarg (dst, 10, addsign, len, pad);
@@ -180,6 +182,7 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
}
}
*dst = 0;
+ SetLastError (err);
return dst - orig;
}
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index 7271514..accb91b 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -155,7 +155,7 @@ extern unsigned int signal_shift_subtract;
extern int __api_fatal_exit_val;
#define set_api_fatal_return(n) do {extern int __api_fatal_exit_val; __api_fatal_exit_val = (n);} while (0)
-#define api_fatal(fmt, args...) __api_fatal ("%P: *** " fmt,## args)
+#define api_fatal(fmt, args...) __api_fatal (fmt,## args)
#undef issep
#define issep(ch) (strchr (" \t\n\r", (ch)) != NULL)