Mercurial > pub > dyncall > bindings
view lua/luadyncall/src/path.lua @ 63:9b6cdffd30dd
- further fixes of inccorect overflow errors for int (and long on LLP64 systems)
* prev commit had bugs
* added overflow tests for also int, long, long long (for both, lp64 and llp64)
- while at it, fixing a reference leak when not using python with utf8 caching
author | Tassilo Philipp |
---|---|
date | Sun, 19 May 2024 15:33:18 +0200 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
-- functions to initialize and search through paths. -- path strings specify a set of directory patterns separated by ';'. -- the searchpath function --- Initialize lua-style paths. -- Looks up environment variable envname and substitute all ';;' by syspath -- @param envname name of environment variable -- @param syspath default value if envname is not set and substitution for all ';;'. -- @return value from env variable or syspath. ';;' in env will be substituted by syspath. function pathinit(envname, syspath) local envvar = os.getenv(envname) local path if envvar then path = envvar:gsub(";;",syspath) else path = syspath end return path end --- find object by searching through the path -- @param openfun function(expanded) -- @return found, expanded function pathfind(path,name,openfun) local replaced = path:gsub("?", name) local found = nil local fails = {} for expanded in replaced:gmatch("([^;]+)") do found = openfun(expanded) if found then return found, expanded end table.insert(fails, expanded) end return nil, fails end