util-src/windows.c
author Kim Alvefur <zash@zash.se>
Tue, 14 May 2024 17:07:47 +0200
changeset 13494 6f840763fc73
parent 12579 1f6f05a98fcd
permissions -rw-r--r--
net.server_epoll: Add support for systemd socket activation Allows creating listening sockets and accepting client connections before Prosody starts. This is unlike normal Prosody dynamic resource management, where ports may added and removed at any time, and the ports defined by the config. Weird things happen if these are closed (e.g. due to reload) so here we prevent closing and ensure sockets are reused when opened again.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     1
/* Prosody IM
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     2
-- Copyright (C) 2008-2010 Matthew Wild
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     3
-- Copyright (C) 2008-2010 Waqas Hussain
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
     4
--
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     5
-- This project is MIT/X11 licensed. Please see the
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     6
-- COPYING file in the source package for more information.
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     7
--
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     8
*/
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
     9
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    10
/*
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    11
* windows.c
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    12
* Windows support functions for Lua
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    13
*/
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    14
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    15
#include <stdio.h>
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    16
#include <windows.h>
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    17
#include <windns.h>
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    18
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    19
#include "lua.h"
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    20
#include "lauxlib.h"
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    21
10925
6eb5d2bb11af util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Kim Alvefur <zash@zash.se>
parents: 7892
diff changeset
    22
#if (LUA_VERSION_NUM < 504)
6eb5d2bb11af util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Kim Alvefur <zash@zash.se>
parents: 7892
diff changeset
    23
#define luaL_pushfail lua_pushnil
6eb5d2bb11af util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Kim Alvefur <zash@zash.se>
parents: 7892
diff changeset
    24
#endif
6416
a552f4170aed util-src/*.c: Add macro for compiling with Lua 5.2
Kim Alvefur <zash@zash.se>
parents: 6415
diff changeset
    25
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
    26
static int Lget_nameservers(lua_State *L) {
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    27
	char stack_buffer[1024]; // stack allocated buffer
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
    28
	IP4_ARRAY *ips = (IP4_ARRAY *) stack_buffer;
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    29
	DWORD len = sizeof(stack_buffer);
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    30
	DNS_STATUS status;
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    31
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    32
	status = DnsQueryConfig(DnsConfigDnsServerList, FALSE, NULL, NULL, ips, &len);
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    33
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    34
	if(status == 0) {
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    35
		DWORD i;
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    36
		lua_createtable(L, ips->AddrCount, 0);
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    37
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    38
		for(i = 0; i < ips->AddrCount; i++) {
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    39
			DWORD ip = ips->AddrArray[i];
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    40
			char ip_str[16] = "";
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    41
			sprintf_s(ip_str, sizeof(ip_str), "%d.%d.%d.%d", (ip >> 0) & 255, (ip >> 8) & 255, (ip >> 16) & 255, (ip >> 24) & 255);
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    42
			lua_pushstring(L, ip_str);
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    43
			lua_rawseti(L, -2, i + 1);
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    44
		}
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    45
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    46
		return 1;
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    47
	} else {
10925
6eb5d2bb11af util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Kim Alvefur <zash@zash.se>
parents: 7892
diff changeset
    48
		luaL_pushfail(L);
4128
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    49
		lua_pushfstring(L, "DnsQueryConfig returned %d", status);
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    50
		return 2;
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    51
	}
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    52
}
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    53
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
    54
static int lerror(lua_State *L, char *string) {
10925
6eb5d2bb11af util-src: Use the luaL_pushfail API added in Lua 5.4 to highlight all failure conditions
Kim Alvefur <zash@zash.se>
parents: 7892
diff changeset
    55
	luaL_pushfail(L);
4128
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    56
	lua_pushfstring(L, "%s: %d", string, GetLastError());
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    57
	return 2;
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    58
}
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    59
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
    60
static int Lget_consolecolor(lua_State *L) {
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    61
	HWND console = GetStdHandle(STD_OUTPUT_HANDLE);
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    62
	WORD color;
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    63
	DWORD read_len;
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    64
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    65
	CONSOLE_SCREEN_BUFFER_INFO info;
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    66
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    67
	if(console == INVALID_HANDLE_VALUE) {
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    68
		return lerror(L, "GetStdHandle");
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    69
	}
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    70
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    71
	if(!GetConsoleScreenBufferInfo(console, &info)) {
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    72
		return lerror(L, "GetConsoleScreenBufferInfo");
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    73
	}
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    74
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    75
	if(!ReadConsoleOutputAttribute(console, &color, 1, info.dwCursorPosition, &read_len)) {
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    76
		return lerror(L, "ReadConsoleOutputAttribute");
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    77
	}
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    78
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    79
	lua_pushnumber(L, color);
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    80
	return 1;
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    81
}
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
    82
static int Lset_consolecolor(lua_State *L) {
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    83
	int color = luaL_checkint(L, 1);
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    84
	HWND console = GetStdHandle(STD_OUTPUT_HANDLE);
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    85
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    86
	if(console == INVALID_HANDLE_VALUE) {
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    87
		return lerror(L, "GetStdHandle");
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    88
	}
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    89
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    90
	if(!SetConsoleTextAttribute(console, color)) {
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    91
		return lerror(L, "SetConsoleTextAttribute");
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    92
	}
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    93
4128
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    94
	lua_pushboolean(L, 1);
b6d072a3668d windows.c: Return nil,err from functions instead of throwing errors.
Waqas Hussain <waqas20@gmail.com>
parents: 3748
diff changeset
    95
	return 1;
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    96
}
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
    97
6618
8e4572a642cb util-src/*.c: astyle --indent=tab --brackets=attach --indent-switches --break-blocks --pad-oper --unpad-paren --add-brackets --align-pointer=type --lineend=linux
Kim Alvefur <zash@zash.se>
parents: 6416
diff changeset
    98
static const luaL_Reg Reg[] = {
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
    99
	{ "get_nameservers",	Lget_nameservers	},
3748
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
   100
	{ "get_consolecolor",	Lget_consolecolor	},
2237796ba228 util-src/windows.c: Added get_consolecolor, set_consolecolor.
Waqas Hussain <waqas20@gmail.com>
parents: 2924
diff changeset
   101
	{ "set_consolecolor",	Lset_consolecolor	},
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   102
	{ NULL,		NULL	}
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   103
};
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   104
7892
b8d694646597 util-src/*.c: Attach pointer * to name instead of type
Kim Alvefur <zash@zash.se>
parents: 7821
diff changeset
   105
LUALIB_API int luaopen_util_windows(lua_State *L) {
7821
54669df178c2 util-src: Make C modules assert that the Lua runtime matches what it was compiled for
Kim Alvefur <zash@zash.se>
parents: 6792
diff changeset
   106
	luaL_checkversion(L);
6414
6c8f6364bc48 util-src/*.c: Don't create globals when loaded
Kim Alvefur <zash@zash.se>
parents: 5864
diff changeset
   107
	lua_newtable(L);
6792
6b180e77c97a util-src/*.c: Invert Lua 5.2 compat to be 5.2+ by default and a macro to support 5.1
Kim Alvefur <zash@zash.se>
parents: 6618
diff changeset
   108
	luaL_setfuncs(L, Reg, 0);
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   109
	lua_pushliteral(L, "-3.14");
6415
0e94f89d0e62 util-src/*.c: Use the more concise lua_setfield
Kim Alvefur <zash@zash.se>
parents: 6414
diff changeset
   110
	lua_setfield(L, -2, "version");
2924
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   111
	return 1;
8dc4e2e00129 util.windows: Convert from Windows line endings
Matthew Wild <mwild1@gmail.com>
parents: 2923
diff changeset
   112
}