fix: restore table.getn/setn for Ace2 stack so VanillaGuide loads on 3.3.5 Lua 5.1
release / release (push) Successful in 3s
release / release (push) Successful in 3s
WoW 3.3.5 Lua 5.1 runtime has table.setn as an error stub ("'setn' is obsolete")
and table.getn missing/erroring. The embedded Ace2 libs (AceLibrary, AceOO, AceEvent,
AceConsole, AceDebug, AceDB, Tablet-2.0) all assign table_setn = table.setn at module
scope when GetBuildInfo() does not start with "2." — causing AceOO-2.0 to crash at
line 546 before any library can register, then cascading to AceConsole/FuBarPlugin.
Add Lua50Compat.lua as the first TOC entry to unconditionally overwrite table.setn
(no-op) and table.getn (returns #t) before any lib loads. Also shims
table.foreach/foreachi in case future libs need them. Verified with LuaJIT 5.1:
AceLibrary + AceOO load cleanly; all other libs stop only at WoW-API boundaries
(not at obsolete-call errors).
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
-- Lua50Compat.lua
|
||||
-- Loaded FIRST (see VanillaGuide.toc) to restore Lua 5.0 table functions that
|
||||
-- the WoW 3.3.5 / Project Ascension Lua 5.1 runtime has made obsolete.
|
||||
--
|
||||
-- table.setn existed in 5.0 to manually hint the array length; in 5.1 the
|
||||
-- length operator (#) is authoritative and table.setn is a stub that raises
|
||||
-- "attempt to call a nil value" or "'setn' is obsolete". Overwrite it with a
|
||||
-- no-op unconditionally so Ace2 libs (AceOO, AceEvent, AceConsole, AceDebug,
|
||||
-- AceLibrary, AceDB, Tablet-2.0) can assign the local alias at module load
|
||||
-- time without erroring.
|
||||
--
|
||||
-- table.getn existed in 5.0 as the canonical length function; in 5.1 it was
|
||||
-- removed (or kept as an error stub on some runtimes). Replace it with the
|
||||
-- equivalent # operator.
|
||||
--
|
||||
-- table.foreach / table.foreachi were removed in 5.1 as well; guard them in
|
||||
-- case any lib uses them (none currently do, but safe to shim anyway).
|
||||
|
||||
-- Unconditional overwrite -- even if these slots exist they may raise.
|
||||
table.setn = function() end
|
||||
|
||||
table.getn = function(t)
|
||||
return #t
|
||||
end
|
||||
|
||||
if not table.foreach then
|
||||
table.foreach = function(t, f)
|
||||
for k, v in pairs(t) do
|
||||
local ret = f(k, v)
|
||||
if ret then return ret end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not table.foreachi then
|
||||
table.foreachi = function(t, f)
|
||||
for i = 1, #t do
|
||||
local ret = f(i, t[i])
|
||||
if ret then return ret end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,61 +1,62 @@
|
||||
## Interface: 30300
|
||||
## Title: VanillaGuide |cff7fff7f -Ace2-|r |cffff7f7f(CoA)|r
|
||||
## Notes: Step-by-Step 1-60 Guides (CoA fork: Ascension 3.3.5 port, Joana H/A paths)
|
||||
## Author: mrmr
|
||||
## Version: 1.04.2-coa1
|
||||
## DefaultState: enabled
|
||||
## LoadOnDemand: 0
|
||||
|
||||
## X-Credits: Joana/Mancow and Brian Kopps for the guides. mrmr for the Joana addon. Kira and Cdlp for the Brian Kopps' guide. Velenran for Profession guides. CoA Guild 'Exiles' for the 3.3.5 port.
|
||||
## X-Category: Quests
|
||||
## X-Date: 2026-05-11
|
||||
## X-ReleaseDate: 2012-xx-xx
|
||||
## X-Email: rsheep@gmail.com
|
||||
## X-Website: https://git.sub-net.at/Exiles/coa-vanillaguide
|
||||
## X-Embeds: Ace2, FuBar-Plugin-2.0, Tablet-2.0
|
||||
## OptionalDeps: Ace2, FuBar, Tablet-2.0
|
||||
|
||||
## SavedVariables: VanillaGuideDB
|
||||
## SavedVariablesPerCharacter: VanillaGuideDBPC
|
||||
|
||||
libs\AceLibrary\AceLibrary.lua
|
||||
libs\AceOO-2.0\AceOO-2.0.lua
|
||||
libs\AceConsole-2.0\AceConsole-2.0.lua
|
||||
libs\AceEvent-2.0\AceEvent-2.0.lua
|
||||
libs\AceAddon-2.0\AceAddon-2.0.lua
|
||||
libs\AceDB-2.0\AceDB-2.0.lua
|
||||
libs\AceDebug-2.0\AceDebug-2.0.lua
|
||||
|
||||
Core.lua
|
||||
Settings.lua
|
||||
GuideTables\001_Introduction.lua
|
||||
GuideTables\Horde\002_Mulgore.lua
|
||||
GuideTables\Horde\002_TirisfalGlades.lua
|
||||
GuideTables\Horde\002_Durotar.lua
|
||||
GuideTables\Horde\003_Horde_12to20.lua
|
||||
GuideTables\Horde\003_Horde_20to30.lua
|
||||
GuideTables\Horde\003_Horde_30to40.lua
|
||||
GuideTables\Horde\003_Horde_40to50.lua
|
||||
GuideTables\Horde\003_Horde_50to60.lua
|
||||
GuideTables\Alliance\002_ElwynnForest.lua
|
||||
GuideTables\Alliance\002_Teldrassil.lua
|
||||
GuideTables\Alliance\002_DunMorogh.lua
|
||||
GuideTables\Alliance\003_Alliance_12to20.lua
|
||||
GuideTables\Alliance\003_Alliance_20to30.lua
|
||||
GuideTables\Alliance\003_Alliance_30to40.lua
|
||||
GuideTables\Alliance\003_Alliance_40to50.lua
|
||||
GuideTables\Alliance\003_Alliance_50to60.lua
|
||||
GuideTables\004_Professions.lua
|
||||
GuideTable.lua
|
||||
Display.lua
|
||||
SlashCommands.lua
|
||||
Frame_MainFrame.lua
|
||||
Frame_AboutFrame.lua
|
||||
Frame_SettingsFrame.lua
|
||||
UI.lua
|
||||
|
||||
libs\Tablet-2.0\Tablet-2.0.lua
|
||||
libs\Dewdrop-2.0\Dewdrop-2.0.lua
|
||||
libs\FuBarPlugin-2.0\FubarPlugin-2.0.lua
|
||||
|
||||
VGuideFu.lua
|
||||
## Interface: 30300
|
||||
## Title: VanillaGuide |cff7fff7f -Ace2-|r |cffff7f7f(CoA)|r
|
||||
## Notes: Step-by-Step 1-60 Guides (CoA fork: Ascension 3.3.5 port, Joana H/A paths)
|
||||
## Author: mrmr
|
||||
## Version: 1.04.2-coa1
|
||||
## DefaultState: enabled
|
||||
## LoadOnDemand: 0
|
||||
|
||||
## X-Credits: Joana/Mancow and Brian Kopps for the guides. mrmr for the Joana addon. Kira and Cdlp for the Brian Kopps' guide. Velenran for Profession guides. CoA Guild 'Exiles' for the 3.3.5 port.
|
||||
## X-Category: Quests
|
||||
## X-Date: 2026-05-11
|
||||
## X-ReleaseDate: 2012-xx-xx
|
||||
## X-Email: rsheep@gmail.com
|
||||
## X-Website: https://git.sub-net.at/Exiles/coa-vanillaguide
|
||||
## X-Embeds: Ace2, FuBar-Plugin-2.0, Tablet-2.0
|
||||
## OptionalDeps: Ace2, FuBar, Tablet-2.0
|
||||
|
||||
## SavedVariables: VanillaGuideDB
|
||||
## SavedVariablesPerCharacter: VanillaGuideDBPC
|
||||
|
||||
Lua50Compat.lua
|
||||
libs\AceLibrary\AceLibrary.lua
|
||||
libs\AceOO-2.0\AceOO-2.0.lua
|
||||
libs\AceConsole-2.0\AceConsole-2.0.lua
|
||||
libs\AceEvent-2.0\AceEvent-2.0.lua
|
||||
libs\AceAddon-2.0\AceAddon-2.0.lua
|
||||
libs\AceDB-2.0\AceDB-2.0.lua
|
||||
libs\AceDebug-2.0\AceDebug-2.0.lua
|
||||
|
||||
Core.lua
|
||||
Settings.lua
|
||||
GuideTables\001_Introduction.lua
|
||||
GuideTables\Horde\002_Mulgore.lua
|
||||
GuideTables\Horde\002_TirisfalGlades.lua
|
||||
GuideTables\Horde\002_Durotar.lua
|
||||
GuideTables\Horde\003_Horde_12to20.lua
|
||||
GuideTables\Horde\003_Horde_20to30.lua
|
||||
GuideTables\Horde\003_Horde_30to40.lua
|
||||
GuideTables\Horde\003_Horde_40to50.lua
|
||||
GuideTables\Horde\003_Horde_50to60.lua
|
||||
GuideTables\Alliance\002_ElwynnForest.lua
|
||||
GuideTables\Alliance\002_Teldrassil.lua
|
||||
GuideTables\Alliance\002_DunMorogh.lua
|
||||
GuideTables\Alliance\003_Alliance_12to20.lua
|
||||
GuideTables\Alliance\003_Alliance_20to30.lua
|
||||
GuideTables\Alliance\003_Alliance_30to40.lua
|
||||
GuideTables\Alliance\003_Alliance_40to50.lua
|
||||
GuideTables\Alliance\003_Alliance_50to60.lua
|
||||
GuideTables\004_Professions.lua
|
||||
GuideTable.lua
|
||||
Display.lua
|
||||
SlashCommands.lua
|
||||
Frame_MainFrame.lua
|
||||
Frame_AboutFrame.lua
|
||||
Frame_SettingsFrame.lua
|
||||
UI.lua
|
||||
|
||||
libs\Tablet-2.0\Tablet-2.0.lua
|
||||
libs\Dewdrop-2.0\Dewdrop-2.0.lua
|
||||
libs\FuBarPlugin-2.0\FubarPlugin-2.0.lua
|
||||
|
||||
VGuideFu.lua
|
||||
|
||||
Reference in New Issue
Block a user