*** empty log message ***
parent
d16e151b56
commit
0abc74ed14
@ -1,39 +0,0 @@
|
||||
local getmetatable, setmetatable = getmetatable, setmetatable
|
||||
local rawget, rawset, type = rawget, rawset, type
|
||||
local getenv, setenv, unsetenv = os.getenv, os.setenv, os.unsetenv
|
||||
|
||||
local mt = getmetatable(os)
|
||||
if not mt then
|
||||
mt = {}
|
||||
setmetatable(os, mt)
|
||||
end
|
||||
module "os"
|
||||
|
||||
-- metatable for os
|
||||
function mt:__index(k)
|
||||
if k == "environ" then
|
||||
local environ = {}
|
||||
-- This function needs to be written in C.
|
||||
for k,v in getenvs() do
|
||||
e[k] = v
|
||||
end
|
||||
rawset(os, "environ", environ)
|
||||
end
|
||||
end
|
||||
|
||||
-- metatable for os.environ
|
||||
mt = {}
|
||||
function mt:__newindex(name, value)
|
||||
if type(name) ~= "string" then
|
||||
error("Expected a string key", 2)
|
||||
end
|
||||
if value == nil then
|
||||
unsetenv(name)
|
||||
elseif typeof(value) == "string" then
|
||||
setenv(name, value, true)
|
||||
else
|
||||
error("Expected a string value", 2)
|
||||
end
|
||||
rawset(self,name,value)
|
||||
end
|
||||
environ = setmetatable({}, e)
|
||||
@ -1,29 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
HANDLE h;
|
||||
FILE *f;
|
||||
h = CreateFile("NUL", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
|
||||
assert(h != INVALID_HANDLE_VALUE);
|
||||
f = _fdopen(_open_osfhandle(h, _O_RDONLY), "r");
|
||||
assert(f != 0);
|
||||
assert(fgetc(f) == EOF);
|
||||
fclose(f);
|
||||
#if 0
|
||||
{
|
||||
char buf[20];
|
||||
DWORD len;
|
||||
fprintf(stderr, "read: %d\n", ReadFile(h, buf, sizeof buf, &len, 0));
|
||||
fprintf(stderr, "error: %lu\n", GetLastError());
|
||||
fprintf(stderr, "len: %lu\n", len);
|
||||
}
|
||||
#endif
|
||||
fprintf(stderr, "%d\n", CloseHandle(h));
|
||||
fprintf(stderr, "error: %lu\n", GetLastError());
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in New Issue