WoWBench/To do

Feel free to add to the wish list or bug list. Please don't go poking around in the version history section unless you're a contributor to the project though (or otherwise know what you're doing).
* Note that a missing API is not a bug. WoWBench is simply not finished! (And we do welcome any and all WoW AddOn developers to help out!)
* For anything more than one-liners, or if you're not sure what to do, swing by WoWBench/Talk!
* WoWBench/Progress might be of interest
== To do / wish list ==
* Make WoWBench WoW 2.0 compatible!
* For the terminally bored: Run under LuaCheia (or perhaps rather, IUP) and actually display frames on screen (possibly with a VERY simplistic unit and object view in the background -- think "blocks" here; not at all 3D, just to get things to click on) --Mikk 19:48, 14 June 2006 (EDT)
* Save addon variables according to .toc (But do we really want to dump it in the live directory? A local set perhaps?) --Mikk 19:48, 14 June 2006 (EDT)
* Aliases in commandline (something like "alias l look $1") --Mikk 19:48, 14 June 2006 (EDT)
* Implement lots more APIs :-) --Mikk 19:48, 14 June 2006 (EDT)
* Implement saving of SavedVariables. (Might want to make SavedVariables path configurable separately and instruct people to make a copy of their WTF and point to that instead.) --Mikk 16:06, 16 June 2006 (EDT)
* Implement a very bloaty item scanner to run on a select couple of items in-game and get all tooltip info / everything else that comes out of APIs, and save to a table to use in WoWBench for item testing purposes. Using an existing ItemDB probably won't provide enough info. --Mikk 05:59, 31 July 2006 (EDT)
* "WoWBench -r" to simulate a reload rather than a login. (No, can't do this as a commandline command, and there's no point to do it either. The Lua environment in WoW does a full restart on reload, and all we have is Lua.) --Mikk 20:29, 19 June 2006 (EDT)
* Luac still barfs on UTF-8 lead bytes, which only means some console spam and a little performance loss. Might be nice if we could fix that. --Mikk 10:45, 31 July 2006 (EDT)
== API wish list ==
Want something but can't fix it yourself? Add it here, or sign an existing entry if it's already here.
Looking for something to do? Pick the ones with the most signatures!
== Reported bugs ==
* Blizzard's API CreateFrame will accept e.g. "frame". WoWBench's will only accept e.g. "Frame". --Mikk 08:34, 15 June 2006 (EDT)
* If there are errors in an XML file the first time the addon is loaded (or on "-f"), they will not be included in the dependency list. It will not be re-scanned until the next "-f".   --Mikk (T) 12:32, 29 September 2006 (EDT)
=== Portability bugs ===
(Anything that does not happen under Windows)
* Loading process has a habit of getting stuck when using cygwin. Was getting stuck when parsing XMLs and Processing WorldFrame.lua. After running it once in dos command line, it ran just fine within cygwin. --Tarog 17:06, 15 June 2006 (EDT)
:: Can you still get this to happen in the latest version from SVN? --Mikk 23:30, 30 June 2006 (EDT)
== Done but not yet released ==
These fixes/changes have been done in the source code, but have not yet been released as a complete package. You can get them via the sf.net subversion database, either with a SubVersion client such as TortoiseSVN, or by manually downloading files via their web-based repository access. (More at WoWBench/Contributing.)
* Implemented a dud LoadAddOn() - needed if player has enabled Blizzard Combat Text.   --Mikk (T) 12:30, 1 September 2006 (EDT)
* Fixed the newly introduced "EVENT" debugging, which was dereferencing "this" rather than "self". Would usually do the right thing, but could cause errors with some addons.   --Mikk (T) 12:30, 1 September 2006 (EDT)
* XML parser will now also accept single-quoted argument quoting.   --Mikk (T) 12:33, 29 September 2006 (EDT)
* SendAddonMessage() will now deliver messages to the sender also.   --Mikk (T) 14:59, 12 October 2006 (EDT)
== Version History 1.12 ==
Unless otherwise noted, each release adds several new or improved API implementations. It's the whole purpose of WoWBench!
=== v1.12.0.a2 ===
Released Aug 27 2006
* Includes release 1.12 FrameXML
* (Re-)implemented "say" and "whisper" console commands that somehow disappeared some time during early alpha.
* The player can now target units properly via TargetByName(), "/target" as well as clicking with the mouse. The Unit___() functions accept "target" as a unitId.
* ChatFrames will now actually register for reception of e.g. CHAT_MSG_SAY, _WHISPER, etc. GetChatWindowMessage() was broken since 1.11.0.a4.
* New "EVENT" debugging category. Hint: Use e.g. WOWB_DEBUGCAT.EVENT=2 to enable only event debugging without using the "-d" switch (which turns on everything according to config.lua).
* Clicking/mousing over players will now work with FrameXML-lite ("-q")
* Wishlist: bool UnitIsPartyLeader("unit") implementation --Tarog 04:40, 16 June 2006 (EDT)   [√] --Mikk 15:32, 27 August 2006 (EDT)
* SendAddonMessage() no longer delivers messages to the player that sent them. --Mikk 04:08, 30 July 2006 (EDT)
* Virtual objects will now create Lua global variables like they do in WoW. --Mikk 06:05, 31 July 2006 (EDT)
* dofile() will now detect and strip UTF-8 lead bytes before the Lua parser gets to see them (and bail out). --Mikk 10:45, 31 July 2006 (EDT)
* fixed the dofile() fix. it'd cause the debugger to bug. oops. --Mikk 05:07, 2 August 2006 (EDT)
* CreateFrame() with parent=nil while inheriting something would cause crashes in WOWB_ParseXML_InheritObj. Fixed. --Mikk 05:17, 2 August 2006 (EDT)
==== Portability bugs ====
* Will now check for "wow.exe" as well as "WoW.exe", which matters on case sensitive filesystems.
=== v1.12.0.a1 ===
* Now comes with Win32 Lua binaries and complete FrameXML in the package. Also a standalone "wow" directory with a rudimentary WTF directory. This directory is used by default unless config.lua is modified to point at your existing WoW directory.
* The only new API from 1.11.0.a4 is SendAddonMessage.
== Version History 1.11 ==
Unless otherwise noted, each release adds several new or improved API implementations. It's the whole purpose of WoWBench!
=== v1.11.0.a4 ===
* Additional .txt command files can now be given on the command line! Very useful for testing repetitions of a sequence of events. --Mikk 22:25, 2 July 2006 (EDT)
* Implement "FrameXML-lite" which loads in ~2 seconds instead of ~9. The "-q" commandline switch will now use FrameXML-lite and otherwise act like a full execution. The new "-x" (syntax check only) switch will act like "-q" used to.   --Mikk 05:10, 28 July 2006 (EDT)
* Removed stray WOWB_Debugger() call left in SendChatMessage() in the 1.11.0.a3 release. Oops!   [√] --Mikk 01:24, 2 July 2006 (EDT)
* Blank lines at prompt will now cause a minimum delay of _MINDELAY (default 0.2s) for scripting purposes.   [√] --Mikk 21:41, 2 July 2006 (EDT)
* Ctrl-C while the debugger is running, will cause the debugger to bug "BUG IN DEBUGGER: cmdline.lua:48: interrupted!" --Kaso 13:25, 15 June 2006 (EDT)   [√] Debugger will now simply exit. --Mikk 03:27, 28 July 2006 (EDT)
* Import new CVars and defaults from Config.wtf defaults. --Mikk 05:21, 28 July 2006 (EDT)
=== v1.11.0.a3 ===
* WoWBench now supports logging in multiple, separate users, and allows them to communicate. Perfect for developing and debugging addons with inter-addon communication!   [√] --Mikk 16:00, 1 July 2006 (EDT)
* Update gender enumeration to match 1.11 (1=unknown, 2=male, 3=female)   [√] --Mikk 10:50, 25 June 2006 (EDT)
* Get account and realm name from Config.wtf by default (if not specified in config.lua)   (note that account name is not saved unless that box is checked in the login screen) --Mikk 12:32, 15 June 2006 (EDT)   [√] --Mikk 13:37, 25 June 2006 (EDT)
* Include installation instructions in download. Whoops.   [√] --Mikk 08:26, 26 June 2006 (EDT)
* A DPC (deferred procedure call) mechanism is needed. Some APIs will recursively generate events before the calling function has returned. This should happen after AddOn code has finished running (right before WoWBench displays the next prompt). --Mikk 06:43, 20 June 2006 (EDT)   [√] --Mikk 12:22, 26 June 2006 (EDT)
** WOWB_QueueDPC(WOWB_FireEvent, "SOMEEVENT", more, args, here);
* Doesn't create "tmp" dir if it doesn't exist. This leads to all sorts of horrible bugs. Just create the dir. --Mikk 08:46, 15 June 2006 (EDT)   [√] --Endx7 15:09, 27 June 2006 (EDT)
* Precompilation of XML->Lua->Compiled Lua does not work properly under non-windows, since the file age checking uses the cmd.exe "dir" command. Add in code to use "ls" if necessary. --Mikk 20:38, 15 June 2006 (EDT)   [√] --Endx7 15:09, 27 June 2006 (EDT)
* Will now accept UTF-8 encoded TOC files (by simply ignoring the UTF-8 lead bytes)   [√] --Mikk 15:30, 27 June 2006 (EDT)
* API CreateFrame, API Frame CreateFontString and API Frame CreateTexture now accept the new inheritance parameter introduced in 1.11.   [√] --Mikk 23:28, 30 June 2006 (EDT)
* Added more <On....> handlers.   [√] --Lego
* API CheckButton SetChecked() now checks the button as per the 1.11 change.   [√] --Mikk 23:28, 30 June 2006 (EDT)
* _EDITDUMPONERROR (config.lua) works again.   [√] --Mikk 23:28, 30 June 2006 (EDT)
* _TOCFILES[] defined in config.lua is now ignored. You can remove it, but having it around does no harm either.   [√] --Mikk 23:28, 30 June 2006 (EDT)
==== Portability bugs ====
* Will now look in (wowdir)/Interface/AddOns rather than (wowdir)/interface/addons for addons. Oops.   [√] --Lego
=== v1.11.0.a2 ===
* Remake of Widget API to match Iriel's 1.11 Widget API page.   [√] --Mikk 08:49, 25 June 2006 (EDT)
* More APIs added (as always).
* Add sqrt = math.sqrt alias --Tarog 04:37, 16 June 2006 (EDT)   [√] --Mikk 11:59, 16 June 2006 (EDT)
* Organize lua.api --Tarog 17:48, 16 June 2006 (EDT)   [√] --Tarog 20:09, 17 June 2006 (EDT)
* Widgets.lua:813 WBClass_MessageFrame needs to inherit WBClass_FontStringBase, not just FontStringBase. --Tarog 04:13, 16 June 2006 (EDT)   [√] --Tarog 20:09, 17 June 2006 (EDT)
* WoWBench/Progress page using source tags: [DUD], [HALF], [FULL] to indicate whether a function is just a dummy, or whether it sort of does something useful, or if it's emulating the actual API "well enough". --Mikk 12:59, 16 June 2006 (EDT)   [√] --Mikk 07:11, 18 June 2006 (EDT)
* Add deg → rad conversion wrappers for trig functions.   [√] --Mikk 07:11, 18 June 2006 (EDT)
=== v1.11.0.a1 ===
* Add XML elements: ButtonText, DisabledFont, HighlightFont, NormalFont
* Add API HasKey() - dud, always returns false
* Add API CanShowResetInstances() - dud, always returns false
* Add API GetRaidTargetIndex() - dud, always returns 0
* Add API CheckReadyCheckTime() - dud, does absolutely nothing
== Version History 1.10 == 
=== v1.10.2.a3 ===
* Implemented API GetCVarDefault using Config.wtf defaults. --Mikk 15:14, 15 June 2006 (EDT)
* Fixed: API UnitHealth and API UnitHealthMax were returning nil as of the invention of world.xml to configure player objects. --Mikk 11:41, 15 June 2006 (EDT)   [√] --Mikk 11:41, 15 June 2006 (EDT)
* Fixed: WoWBench assumes that the lua compiler is called "luac50". It should be configurable. --Mikk 08:45, 15 June 2006 (EDT)   [√] --Mikk 15:14, 15 June 2006 (EDT)
* Fixed: If some key values were missing in Config.wtf, it would cause problems in FrameXML since API GetCVarDefault was not implemented.   [√] --Mikk 15:14, 15 June 2006 (EDT)
=== v1.10.2.a2 ===
* Fixed: It'd choke on loading world.xml:"Murloc Warrior" because of a broken bugfix in .a1. My bad. --Mikk 11:00, 15 June 2006 (EDT)
* Fixed: Version actually reports as "1.10.2.something" now, not "v0.01" =) --Mikk 11:00, 15 June 2006 (EDT)
=== v1.10.2.a1 ===
* Fixed: WoWBench puts virtual (correctly named) objects in global scope. It can't do that. Conflicts with some mods. --Mikk 09:18, 15 June 2006 (EDT)   [√] --Mikk 09:27, 15 June 2006 (EDT)
==== Portability bugs ====
* Fixed: Errors out if it can't open "tmp/dir.txt" --Mikk 08:46, 15 June 2006 (EDT)   [√] --Mikk 08:48, 15 June 2006 (EDT)
* Fixed: Need to fix backslashes in TOC files. --Mikk 08:48, 15 June 2006 (EDT)   [√] --Mikk 08:48, 15 June 2006 (EDT)
* Fixed: GetCVar() attempts to open "WTF/config.wtf". Should be "WTF/Config.wtf". --Mikk 09:38, 15 June 2006 (EDT)   [√] --Mikk 09:38, 15 June 2006 (EDT)
To do