summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/winutil.c38
-rw-r--r--win32/winutil.h22
2 files changed, 46 insertions, 14 deletions
diff --git a/win32/winutil.c b/win32/winutil.c
index ec46aa742b..ab8008cf80 100644
--- a/win32/winutil.c
+++ b/win32/winutil.c
@@ -1,19 +1,31 @@
-#include <php.h>
+/*
+ +----------------------------------------------------------------------+
+ | PHP version 4.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2001 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.02 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available at through the world-wide-web at |
+ | http://www.php.net/license/2_02.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: |
+ +----------------------------------------------------------------------+
+ */
-#ifndef THREAD_SAFE
-static char Win_Error_msg[256];
-#endif
+#include <php.h>
-PHPAPI char *php_win_err(void)
+PHPAPI char *php_win_err(int error)
{
+ char *buf;
+
FormatMessage(
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
- (LPTSTR) Win_Error_msg,
- 256,
- NULL);
+ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&buf, 0, NULL
+ );
- return Win_Error_msg;
+ return (buf ? (char *) buf : "");
}
diff --git a/win32/winutil.h b/win32/winutil.h
index b965a7fff1..9949a2937b 100644
--- a/win32/winutil.h
+++ b/win32/winutil.h
@@ -1 +1,21 @@
-PHPAPI extern char *php_win_err(void);
+/*
+ +----------------------------------------------------------------------+
+ | PHP version 4.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2001 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 2.02 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available at through the world-wide-web at |
+ | http://www.php.net/license/2_02.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: |
+ +----------------------------------------------------------------------+
+ */
+
+PHPAPI char *php_win_err(int error);
+
+#define php_win_err() php_win_err(GetLastError())