cooldowns survive a relog, the MOTD prints, and lost channels come back

- a cooldown still running when you log out and back in keeps sweeping instead of vanishing, and another character no longer inherits the previous session's cooldowns (2116)
- the server's Welcome and Patch 1.12 lines print at login in system yellow, and a character whose General, Trade and LocalDefense had gone silent for good gets them back at the next login (2119, 2120)
- the stock Interface Options window loads hidden beside ours, so pfUI's options skin finds the real thing; the Auto-join Guild Recruitment Channel row has a real store, and a /reload no longer trips on its camera dropdowns (2115)
- the combat log words a power gain on the display scale, so MikScrollingBattleText shows +1 Rage where it showed +10; a 1.12 predicate answers 1 or nil rather than a Lua boolean, the test ColorPickerPlus makes (2117, 2118)
- a Lua error quotes a program element with a backquote the way 5.0 does, so AceLibrary's argument checks report their caller instead of raising inside the error path (2122)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Sam
2026-09-11 20:50:37 +07:00
co-authored by Claude Fable 5.1
parent c775181933
commit d49fe51e0e
62 changed files with 2473 additions and 704 deletions
+18 -1
View File
@@ -200,7 +200,24 @@
@@ LUA_QL describes how error messages quote program elements.
** CHANGE it if you want a different appearance.
*/
#define LUA_QL(x) "'" x "'"
/*
** BENILLA (decision 2122): 1.12's Lua is 5.0, which quotes every program element in an error
** message with a BACKQUOTE and an apostrophe. 5.1 introduced this macro and made it two
** apostrophes. Read out of WoW.exe's own .rdata, which carries all five of the formats this macro
** feeds, in the 5.0 spelling:
**
** bad argument #%d to `%s' (%s) lauxlib.c luaL_argerror
** calling `%s' on bad self (%s) lauxlib.c luaL_argerror's method arm
** attempt to %s %s `%s' (a %s value) ldebug.c luaG_typeerror
** %s:%d: %s near `%s' llex.c luaX_lexerror (the client's own 0x87217c)
** in function `%s' ldblib.c the traceback line debugstack renders
**
** The last one is not cosmetic: 80+ corpus addons ship AceLibrary, whose argCheck reads its own
** caller back out of `debugstack()` with the pattern "`argCheck'.-([`<].-['>])", a pattern
** cannot match 5.1's quoting, so the nil it gets is then passed to a %s and raises inside the
** error path.
*/
#define LUA_QL(x) "`" x "'"
#define LUA_QS LUA_QL("%s")