aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWaqas Hussain <waqas20@gmail.com>2011-01-29 04:40:43 +0500
committerWaqas Hussain <waqas20@gmail.com>2011-01-29 04:40:43 +0500
commit30be4fa5853c460d6d83d4b55d2d753fe35015bd (patch)
tree315d3153062d6d776b3752e39f75248d3af59709
parent215af9f1975a7d5b9f91b635fa4a82170c4f26bd (diff)
downloadprosody-30be4fa5853c460d6d83d4b55d2d753fe35015bd.tar.gz
prosody-30be4fa5853c460d6d83d4b55d2d753fe35015bd.zip
windows.c: Return nil,err from functions instead of throwing errors.
-rw-r--r--util-src/windows.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/util-src/windows.c b/util-src/windows.c
index e1e07608..121cc471 100644
--- a/util-src/windows.c
+++ b/util-src/windows.c
@@ -38,15 +38,16 @@ static int Lget_nameservers(lua_State *L) {
}
return 1;
} else {
- luaL_error(L, "DnsQueryConfig returned %d", status);
- return 0; // unreachable, but prevents a compiler warning
+ lua_pushnil(L);
+ lua_pushfstring(L, "DnsQueryConfig returned %d", status);
+ return 2;
}
}
-static void lassert(lua_State *L, BOOL test, char* string) {
- if (!test) {
- luaL_error(L, "%s: %d", string, GetLastError());
- }
+static int lerror(lua_State *L, char* string) {
+ lua_pushnil(L);
+ lua_pushfstring(L, "%s: %d", string, GetLastError());
+ return 2;
}
static int Lget_consolecolor(lua_State *L) {
@@ -55,9 +56,9 @@ static int Lget_consolecolor(lua_State *L) {
CONSOLE_SCREEN_BUFFER_INFO info;
- lassert(L, console != INVALID_HANDLE_VALUE, "GetStdHandle");
- lassert(L, GetConsoleScreenBufferInfo(console, &info), "GetConsoleScreenBufferInfo");
- lassert(L, ReadConsoleOutputAttribute(console, &color, sizeof(WORD), info.dwCursorPosition, &read_len), "ReadConsoleOutputAttribute");
+ if (console == INVALID_HANDLE_VALUE) return lerror(L, "GetStdHandle");
+ if (!GetConsoleScreenBufferInfo(console, &info)) return lerror(L, "GetConsoleScreenBufferInfo");
+ if (!ReadConsoleOutputAttribute(console, &color, sizeof(WORD), info.dwCursorPosition, &read_len)) return lerror(L, "ReadConsoleOutputAttribute");
lua_pushnumber(L, color);
return 1;
@@ -65,9 +66,10 @@ static int Lget_consolecolor(lua_State *L) {
static int Lset_consolecolor(lua_State *L) {
int color = luaL_checkint(L, 1);
HWND console = GetStdHandle(STD_OUTPUT_HANDLE);
- lassert(L, console != INVALID_HANDLE_VALUE, "GetStdHandle");
- lassert(L, SetConsoleTextAttribute(console, color), "SetConsoleTextAttribute");
- return 0;
+ if (console == INVALID_HANDLE_VALUE) return lerror(L, "GetStdHandle");
+ if (!SetConsoleTextAttribute(console, color)) return lerror(L, "SetConsoleTextAttribute");
+ lua_pushboolean(L, 1);
+ return 1;
}
static const luaL_Reg Reg[] =