forked from enlightenment/efl
elua: popenv fix (read proper stack items as args), getopt fix (fixed array append), xgettext: use cutil.popenv
This commit is contained in:
parent
e9b555c57b
commit
9c42595225
|
@ -239,33 +239,34 @@ for i, v in ipairs(args) do
|
|||
input_files[#input_files + 1] = v
|
||||
end
|
||||
|
||||
local args_nolua = { hasxgettext }
|
||||
local args_nolua = {}
|
||||
for i, opt in ipairs(opts_nolua) do
|
||||
args_nolua[#args_nolua + 1] = build_opt(opt)
|
||||
end
|
||||
args_nolua[#args_nolua + 1] = "--omit-header"
|
||||
args_nolua[#args_nolua + 1] = "--output=-"
|
||||
|
||||
args_nolua = cutil.build_args(unpack(args_nolua))
|
||||
args_nolua[#args_nolua + 1] = false
|
||||
|
||||
local parsed_files = {}
|
||||
for i, fname in ipairs(input_files) do
|
||||
if onlylua or (not neverlua and fname:lower():match("^.+%.lua$")) then
|
||||
-- parse lua files here
|
||||
else
|
||||
local f = assert(io.popen(args_nolua .. " '" .. fname .. "'", "r"))
|
||||
parsed_files[#parsed_files + 1] = f:read("*all")
|
||||
args_nolua[#args_nolua] = fname
|
||||
local f = assert(cutil.popenv(hasxgettext, "r", unpack(args_nolua)))
|
||||
local s = f:read("*all")
|
||||
parsed_files[#parsed_files + 1] = s
|
||||
f:close()
|
||||
end
|
||||
end
|
||||
|
||||
local args_final = { hasxgettext }
|
||||
local args_final = {}
|
||||
for i, opt in ipairs(opts_final) do
|
||||
args_final[#args_final + 1] = build_opt(opt)
|
||||
end
|
||||
args_final[#args_final + 1] = "--language=PO"
|
||||
args_final[#args_final + 1] = "-"
|
||||
local f = assert(io.popen(cutil.build_args(unpack(args_final)), "w"))
|
||||
local f = assert(cutil.popenv(hasxgettext, "w", unpack(args_final)))
|
||||
f:write(table.concat(parsed_files, "\n\n"))
|
||||
f:close()
|
||||
|
||||
|
|
|
@ -168,7 +168,7 @@ static int elua_read(lua_State *L) {
|
|||
} else {
|
||||
luaL_checkstack(L, nargs + LUA_MINSTACK, "too many arguments");
|
||||
success = 1;
|
||||
for (n = first; --nargs && success; ++n) {
|
||||
for (n = first; nargs-- && success; ++n) {
|
||||
if (lua_type(L, n) == LUA_TNUMBER) {
|
||||
size_t l = (size_t)lua_tointeger(L, n);
|
||||
success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l);
|
||||
|
@ -206,7 +206,7 @@ static int elua_write(lua_State *L) {
|
|||
FILE *f = tofile(L);
|
||||
int nargs = lua_gettop(L) - 1;
|
||||
int status = 1, arg = 2;
|
||||
for (; --nargs; ++arg) {
|
||||
for (; nargs--; ++arg) {
|
||||
if (lua_type(L, arg) == LUA_TNUMBER) {
|
||||
status = status && (fprintf(f, LUA_NUMBER_FMT,
|
||||
lua_tonumber(L, arg)) > 0);
|
||||
|
@ -270,7 +270,7 @@ int elua_popen(lua_State *L) {
|
|||
const char **argv = (const char**)alloca((nargs + 2) * sizeof(char*));
|
||||
memset(argv, 0, (nargs + 2) * sizeof(char*));
|
||||
for (; nargs; --nargs) {
|
||||
argv[nargs] = lua_tostring(L, nargs);
|
||||
argv[nargs] = lua_tostring(L, nargs + 2);
|
||||
}
|
||||
argv[0] = fname;
|
||||
*pf = elua_popen_c(fname, argv, mode);
|
||||
|
|
|
@ -62,8 +62,8 @@ local parse_l = function(opts, opt, descs, args, parser)
|
|||
end
|
||||
local dopts = desc.opts
|
||||
if dopts then
|
||||
dopts[#opts + 1] = opts[#opts]
|
||||
dopts[optn] = opts[optn ]
|
||||
dopts[#dopts + 1] = opts[#opts]
|
||||
dopts[optn] = opts[optn ]
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue