Advertisement
gocha

Allow loading ?51.dll by hand

Feb 1st, 2013
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.04 KB | None | 0 0
  1. -- allow loading ?51.dll files
  2. function modifyPackagePath(postfix)
  3.     local function split(str, sep)
  4.         local sep, fields = sep or ":", {}
  5.         local pattern = string.format("([^%s]+)", sep)
  6.         str:gsub(pattern, function(c) fields[#fields+1] = c end)
  7.         return fields
  8.     end
  9.     local function endsWith(str, pat)
  10.         if #str < #pat then
  11.             return false
  12.         end
  13.         return str:sub(-#pat) == pat
  14.     end
  15.  
  16.     local additionalpath = ""
  17.     for i, v in ipairs(split(package.cpath, ";")) do
  18.         local newpath = nil
  19.         if endsWith(v, "?.dll") then
  20.             newpath = v:gsub("%?.dll", "") .. "?" .. postfix .. ".dll"
  21.         elseif endsWith(v, "?.so") then
  22.             newpath = v:gsub("%?.so", "") .. "?" .. postfix .. ".so"
  23.         end
  24.         if newpath then
  25.             local duplicated = false
  26.             for i2, v2 in ipairs(split(package.cpath, ";")) do
  27.                 if v2 == newpath then
  28.                     duplicated = true
  29.                     break
  30.                 end
  31.             end
  32.             if not duplicated then
  33.                 additionalpath = additionalpath .. ";" .. newpath
  34.             end
  35.         end
  36.     end
  37.     package.cpath = package.cpath .. additionalpath
  38. end
  39. modifyPackagePath("51")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement