Version History

IRCmagic 1.2.8 - 4/12/2002 - IRCmagic, AutoPlay enhancements
Fixed a bug that would cause an error message to be displayed if you tried to use nickname completion in a DCC Chat or Query window.
Fixed a bug that cause AutoPlay not to find sounds in the Jukebox folder correctly.
Enabled the feature in AutoPlay that allows you to queue incoming CTCP sounds when the media player is busy.
IRCmagic 1.2.7 - 2/19/2002 - IRCmagic, AutoGone enhancements
Added nickname auto-completion. To use it, type the beginning letters of a nickname and press the Tab key on your keyboard. In the case of multiple matches, you can press the tab key repeatedly to scroll through matching nicknames.

Note: This feature is only available in Ircle 3.1b13 or later.

Changed the default settings for the AutoGone plug-in to be less intrusive.
IRCmagic 1.2.6 - 2/7/2002 - IRCmagic, AutoGone, AutoGreet bug fixes
Fixed a bug in the AutoGreet plugin that caused an error similar to the following to occur when turning AutoGreet on or off via the /AutoGreet on|off command.

IRC AutoGreet: AutoGreet() failed: The variable sIsNowOff is not defined.

Fixed a bug in the IRCmagic main script that caused the following error dialog to appear any time a plugin requested a custom message resolution (a BuildCustomString() call):

Ircle got an error: Can't get every user of channel "#openmac" whose selected of it = true. Invalid index.

IRCmagic 1.2.5 - 8/19/2001 - IRCmagic bug fixes
Fixed a bug in the AutoGone plugin that caused the gone message to be reset each time the AutoGone plugin was loaded.
Fixed a bug in IRCmagic that caused Ircle to display a dialog error message:

errAENoSuchObject (-1728)
Ircle got an error: Can't get nickname of user 1 of channel "#whatever" whose selected of it = true

IRCmagic's plug-in command processor was failing due to a bug in the URLgrabber plug-in that left AppleScript's text item delimiters unrestored. I've changed IRCmagic's plug-in command processor so that it will not fail in the future if another script leaves AppleScript's text item delimiters unrestored.
IRCmagic 1.2.4 - 7/4/2001 - IRCmagic, AutoGet, AutoSend & JukeBox plug-in enhancements
If the Jukebox plugin cannot locate a sound in the sound list after scanning the Jukebox folder (for example if the user deletes or moves sounds after the scan), the plugin now automatically removes the sound from the list and continues to the next sound rather than generating an error.
If the Jukebox folder cannot be found, the plugin now displays the full path of the folder in the resulting message dialog box.
Fixed a bug in the FServer plug-in that caused a message similar to the following error to occur when you receive public or private messages while the AutoGone plug-in is unloaded.

IRC privmsg() failed: The variable goneFlags is not defined.

Fixed a bug in both AutoGet and AutoSend that caused sound lookups to fail when the sound exists in the Jukebox folder.
Fixed a bug in Jukebox that caused the <nick> custom message tag not to be resolved correctly (no text was insserted in place of the tag) in the Broadcast Message field.
Fixed a bug in AutoGone that caused it to ungone if commands (/command) were typed with the "Automatically ungone when I type public input" option enabled.
IRCmagic 1.2.3 - 6/8/2001 - AutoPlay & JukeBox plug-in enhancements
AutoPlay and Jukebox plug-ins now contain built-in support for the Audion 2 MP3 player.
The AutoPlay functionality to locate the media player is now more robust.
IRCmagic 1.2.2 - 6/3/2001 - JukeBox plug-in enhancements
Added the "Broadcast CTCP SOUND Message" checkbox to the Jukebox settings window. When this option is checked, the Jukebox plug-in broadcasts CTCP SOUND messages when playing sounds. When this option is unchecked, the Jukebox plug-in does not broadcast CTCP SOUND messages.
(Finally) Enabled the "alphabetically" checkbox in the Jukebox Plug-in settings window. When the "alphabetical" radio button is enabled, the Jukebox plug-in sorts the sound list when it scans the Jukebox folder. The sort honors folders - sounds within the same folder are kept together in the alphabetical list. When the "randomly" radio buton is enabled, the Jukebox plug-in does not perform a sort when scanning the Jukebox folder, and sounds are played randomly.
IRCmagic 1.2.1 - 6/1/2001 - Enhancements and bug fixes
Fixed a bug that caused IRCmagic not to call newer plugins CustomMessage handler.
Fixed a bug that caused an error to occur when moving a plug-in to the Plugins or Plugins Disabled folder when a plugin of the same name already exists in the destination folder.
IRCmagic should better handle the situation where a plugin settings handler calls the Dialog Director dd uninstall command.

Note: Plugins generally should NOT call dd uninstall, since dd uninstall deletes ALL dialogs known to IRCmagic (not only plugin dialogs, but also the main IRCmagic dialog and any others that IRCmagic may have created). Instead, plugins should use the Dialog Director dd delete <dialogRef> command.
Fixed a bug that prevented the /reload <pluginname> command from working correctly.
Fixed a bug that could cause the following error when disabling a plugin via the IRCmagic main window: DisablePlugin() failed: The variable plugRecord is not defined.
The Custom Install > IRCmagic Plugins option was installing the IRCmagic main script along with the plugin files. This has been fixed.
The documentation for the previous release of IRCmagic contained broken links. These are fixed now.
IRCmagic 1.2 - 5/11/2001 - Enhancements and bug fixes
Changed the encryption algorythm for IRCmagic registrations. IRCmagic 1.2 and later will require new registration codes. The new encryption algorythm requires that the (included) EncScrypt scripting addition be installed. You can get more information on EncScrypt at http://www.highwinds.com/EnScrypt.html, or by viewing the EnScrypt documentation installed in the Other Software folder. To upgrade your existing registration or to obtain a new registration for IRCmagic, please contact us at .
IRCmagic now verifies during startup that the EncScrypt scripting addition is installed and loaded before IRCmagic loads.
Improved error handling for plug-in event handling mechanism.
Improved command line parsing (/command argument) and fixed a bug that would cause the following error message to be displayed when a single slash character (/) is entered: IRCmagic >> input() failed: Can't get word 1 of "/".
IRCmagic now maintains a Plugins (Disabled) folder, moving plug-in files into the new folder whenever they are disabled by the user, and unloading them. When a plug-in is enabled again, it is loaded and moved back into the Plugins folder.

NOTE: A corresponding change has been made to the Plug-in API: the pEventsWhileDisabled property is deprecated, and will no longer function - no plug-ins will receive ircle events while disabled.

IRCmagic now reports the current version during startup.
Fixed a bug in AutoGreet that cause it not to store the join message properly in new greets.
Added the /golast command to URLgrabber - opens the last added URL in a web browser. (Tau-Ceti++)
Fixed a bug in URLgrabber that caused an extra blank line to be added to the URL list each time the lsit was read from disk.
Moved the (Plugin) Preferences folder outside of the Plugins folder, and added the property gPrefsFolderPath to the IRCmagic main script - plugins can access this new property like so: pMainScript's gPrefsFolderPath.
The /PluginInfo command has been changed to /PlugInfo.
AutoGreet now supports the word "none" or an empty line in greet files to indicate that there is no join sound or part sound.
The DoCommand() handler has changed to DoCommand(theCommand, con, target, theString).
Fixed a typo in the default Jukebox broadcast message.
Fixed a typo in the AutoGet file request confirmation dialog.
Fixed a bug in Jukebox that caused /jukebox next to malfunction when SoundApp was the selected media player.
You no longer need to /reload autoplay to get a new media player choice to take effect.
Fixed a bug in IRCmagic's date calculation code that caused the incorrect value to be reported in registration reminder messages.
Added the /rescan plugins command. (MacinJosh++)
IRCmagic 1.1 - 3/12/2001 - Installer bug fix

Some users have reported a problem with the IRCmagic 1.1 installer where installer would not install some files. Users who did not have a previous version of IRCmagic installed did not have these files on their system, and were therefore unable to run IRCmagic sucessfully. One such file was "System Language" - a scripting addition required by IRCmagic 1.1.

On 3/12/2001 at 11:30 AM CST, we rebuilt the IRCmagic 1.1 installer and replaced the bad installer online. The new installer installs all necessary files. If you think you are having the problem mentioned above, please download the new installer.

IRCmagic 1.1 - 1/14/2001 - OS 9.1 compatability fix
Changed an internal handler RemoveListItem(x, theList) to make it compatible with OS 9.1 & Applescript version 1.5.5. The following code worked correctly in Applescript versions prior to 1.5.5 (OS 9.1): (items 1 thru 0 of theList). Applescript 1.5.5 generates an error when this code it executed.
IRCmagic 1.0.9 - 1/1/2001 - bug fixes & enhancements
Fixed a bug introduced in version 1.0.8 causing error messages similar to this to be displayed in the Console window: (Geoff Slote++)

IRC AutoSend: ProcessMessage() failed: Can't get lastjoiner of channel "Console". Invalid index.
IRC AutoSend: ProcessMessage() failed: Invalid key form.

Updated /plugininfo documentation to better explain usage of the /plugininfo commands utility. (Thomas++)
Removed the "set" syntax from the AutoQuery and AutoWhois optional plug-ins until these plug-ins have settings panels. (Thomas++)
Added the ability to configure the message sent to requestors while AutoSend is disabled. (Thomas++)
IRCmagic 1.0.8 - 12/19/2000 - Important installer fix!
If you downloaded IRCmagic 1.0.7 before Tuesday, December 19, 2000 2:15 PM CST, then you probably have a version of the installer that installs an older version of the Akua Sweets scripting addition (1.3.8). This version of IRCmagic requires Akua Sweets version 1.4.1, and will not run correctly if launched with an older version of Akua Sweets. Rather than re-downloading the entire IRCmagic 1.0.7 package, you may want to download Akua Sweets 1.0.7 and drop it into your Scripting Additions folder. After doing so, restart your computer. This should fix problems associated with running the older version.
IRCmagic 1.0.7 - 12/18/2000 - Mac OS 8.6 compatibility release
Fast update release for a work around to a problem caused by compiling IRCmagic on OS 9.04 making it fail to launch on OS 8.6. This release is compiled on OS 8.6, and will run on OS 8.6 and 9.04.
IRCmagic 1.0.6 - 12/13/2000 - bug fixes & enhancements
Relocated various utility handlers into a centralized location (the IRCmagic main script) so that plug-ins can call them easily.
Fixed a bug in AutoSend plug-in where the plug-in would fail to search for requested files in both the AutoGet and JukeBox folders.
Fixed a bug in AutoSend that caused a "mainScriptName is undefined" error.
Fixed some installer problems where the installer would not replace older items with newer items being installed.
Fixed a bug where JukeBox plug-in would generate an error each time it attempted to play the next sound if JukeBox was enabled and there was no JukeBox folder set.

IRC Jukebox: ScanJukeboxFolder() failed: Can't get last character of "".

Now, no error is generated, and no sounds are played.

AutoSend now looks for requested files in both the AutoGet folder and the Jukebox folder. If the requested file is found in either folder, it is sent to the person who requested it via DCC.
Fixed a bug in AutoSend that caused the following error to occur when changing the media player:

The variable oldPlayer is not defined.

Changed the /plug-in command to /PluginInfo
Fixed a bug that caused the following error when typing into the Console window and not connected to a server:

IRC AutoGone: input() failed: ircle got an error: Can't get windowtype of window "".

Added a /reload pluginname command. This command simply unloads and reloads the specified plugin.
Optimized the way IRCmagic and plugins iterate various lists. Plugins affected are: Aliasing, AutoGet, AutoGreet, AutoPlay, CustomCTCP, Fserver, and Jukebox.
IRCmagic now uses the Ircle "Standard" message color for all IRCmagic-generated messages. This color can be changed in Ircle Color preferences.
Made the following change to the plugin API: The Settings() handler should always return true or false indicating whether or not the plugin handles settings. If false, IRCmagic now automatically displays a dialog stating that the plugin does not have a settings panel. If true, IRCmagic allows the plugin settings panel to be diplayed.
Made the following change to the plugin API: The DoCommand() handler has additional parameters now. The new syntax is: DoCommand(theCommand, con, target, inString). See the plugin template or the IRCmagic documentation for details.
CustomCTCP Plugin now notifies you when a CTCP message is ignored due to an empty custom reply edit field.
Added an option to switch on or off the ability for IRCmagic to scan the plugins folder periodically and automatically load added plugins and unload removed plugins. This option is off by default.
Fixed a bug in the RemovelistItem(idx, theList) handler that woul generate an error if idx was not of class number (for example if a plugin called it like so: RemoveListItem("2", theList). This handler now coerces idx to a number before attempting to use it.
AutoGet now scans the Jukebox folder for incoming CTCP SOUND events so that sounds in the Jukebox folder are not requested.
AutoPlay now scans the Jukebox folder for incoming CTCP SOUND events so that sounds are played if found in the Jukebox folder.
IRCmagic now re-sorts plugins in the plugin list when new plugins are loaded.
Removed "GetLabels" command from IRCmagic OSAX, and created a new scripting addition "Finder Labels" this version of IRCmagic (specifically the AutoGet plugin) now relies on Finder Labels.
Improved FServer reporting for "FServer folder not found" errors.
IRCmagic plug-in engine now reports which plug-in causes an error when an error is not handled directly by the plug-in during an Ircle event.
IRCmagic is now localized (capable of using multiple languages). A new preferences setting allows you to choose which language is used throughout IRCmagic and its plug-ins. Plug-ins can easily take advantage of this feature. See the AutoWhois plug-in for exmaple source code. English and French are supported in this release. More languages will follow in future releases. If you would like to see IRCmagic localized to your native language, email us.
IRCmagic 1.0.5 - 8/25/2000 - bug fixes & enhancements
Fixed some filename parsing problems with the new regex code in the AutoGet and AutoSend plugins.
Fixed a bug where "private" messages to a channel would be ignored by the AutoGone plugin, which would result in AutoGone marking you gone. Now, private messages to channels keep you from being gone.
Rewrote the internal MungerString(searchStr, replaceStr, sourceStr) routine making it 25% faster. For example, a search & replace of 3000 iterations that previously took 3.41 seconds now takes under 1 second to complete. Plugins that call this routine will benefit from this change.
IRCmagic 1.0.4 - 8/10/2000
Added a "/plugin events" command that lists the Ircle event handlers registered by each loaded plugin.
Fixed a bug causing the following errors if a DCC transfer was cancelled before any data was sent:

DCC SEND “somefile” to TauCeti closed
IRC AutoSend: FormatNumber() failed: Can't make some data into the expected type.
IRC AutoSend: FormatSize() failed: No result was returned from some part of this expression.
IRC AutoSend: INCOMPLETE --> somefile (0.00/sec) remaining

AutoPlay plugin now looks for outgoing sounds specified by name (/s filename or /sound filename) in the Jukebox folder as well as the AutoGet folder.
AutoGet and AutoSend plugins now use regular expressions (RegEx Commands) to extract filnames from incoming CTCP SOUND events, allowing for more intelligent parsing. This fixes problems caused by trailing text after the filename done by some MIRC scripts.
AutoGet no longer encloses requested filnames in quotes.
Changed BuildCustomString(originalStr, theNick, chanName, theFile) function so that if theNick, chanName, or theFile parameters are "", they are not replaced in originalStr.
Fixed a cosmetic bug in the IRCmagic main dialog.
Fixed a bug in AutoGet plugin that caused the following errors to occur:

IRC AutoGet: connectionevent() failed: The variable bytesdone is not defined.
IRC AutoGet: Completed transfer of rot13win (1.25 K at 1.25 K/sec)

IRCmagic 1.0.3 - 7/16/2000 - bug fixes & documentation additions
Fixed a bug that caused the AutoPlay plugin to display the following error when any DCC connection closed (Romain++):

connectionevent() failed: Can't get soundlist of {usefilter:true, showignored:true, busyoption:1, wantwav:true, wantmid:false, wantmp2:false, wantmp3:false, wantmod:false, wantsnd:false, wantcust:"", singlematch:true}.

Fixed a bug that caused the AutoPlay plugin to return errors if you cancelled the choose sound file dialog box. (Romain++)
The AutoPlay plugin was failing to obtain the AutoGet file listing from the AutoGet plugin for numerous functions. This caused multiple AutoPlay functions to malfunction or fail, including /search, and some CTCP SOUND processing handlers. This is fixed. (MacinJosh++)
The following plugins are now OFF by default on a new installation of IRCmagic: AutoSend, AutoGet, Fserver, Jukebox. These plugins will also default to OFF when their preferences files are recreated.
Fixed a bug that caused the following error message after a DCC SEND transfer completed:

connectionevent() failed: The variable gAutoSendSettings is not defined.

Moved DCC SEND transfer rate reporting functionality out of the AutoGet plugin and into the AutoSend plugin where it belongs. now if you disable the AutoGet plugin, you will still get DCC SEND transfer rate reports.
Fixed a bug in AutoGone that caused the following error to occur when the /autogone command was issued:

AutoGone: AutoGone() failed: The variable pMyName is not defined.

Fixed bugs in AutoGet and AutoSend having to do with DCC transfer statistics reporting.
IRCmagic now uses plugin default data and enabled state if the plugin preferences file does not exist when loading a plugin. In previous versions, the plugEnabled and savedData parameters of the InitPlugin() handler were set to true and {} respectively when the plugin preferences file was missing.
Fserver plugin now obtains the Fserve folder from Ircle prefs the first time it is run if the FServer Preferences file does not exist.
Completed IRCmagic plugin documentation (see Writing Plugins for IRCmagic in the online documentation).
AutoGone now allows you to send /msg messages to channels without effecting the gone state. (Tauceti++)
Added a "Disable Jukebox" button to the dialog that is diplayed when Jukebox cannot locate the Jukebox folder, or no Jukebox folder is set.
Added a setting (accesible via the IRCmagic Preferences dialog box) that allows you to set how often Idle events are sent to plugins. On slower Macintoshes, it may be preferable to set this amount of time larger. The default value is 5 seconds.
Added a /plugin versions command that displays the version of each loaded plugin so you dont have to go get info on each one.
Added an optional AutoQuery plugin that opens a query window whenever a notice or private message is received or sent.
CustomCTCP plugin now reports whether it is replying to a public or private CTCP message.
IRCmagic 1.0.2 - 6/22/2000 - AutoGet bug fix
Fixed a bug in the AutoGet plugin that caused the following errors to be displayed when CTCP SOUNDs were received from others in chat.

AutoGet: DoCTCP_SOUND() failed: Can't get soundlist of {usefilter:false, showignored:true, busyoption:1, wantwav:true, wantmid:false, wantmp2:false, wantmp3:false, wantmod:false, wantsnd:false, wantcust:"", singlematch:true}.

IRCmagic 1.0.1 - 6/14/2000 - Quick update to fix a major bug in / command handling (see #3)
Fixed one major and several minor bugs in the /rescan comand handlers of various plugins
Added a "/rescan greets" command to the AutoGreet plugin
Fixed a bug that caused all / commands not related to plugins to fail (MacinJosh++, Romain++)
Removed from the AutoGreet plugin the reliance on the Finder for deleting and renaming greet files. The Finder was so slow on some machines that the machines appeared to have crashed. Instead the machine was locked in a frozen state while waiting for the Finder to respond. (Romain++)
IRCmagic 1.0 Release - 6/11/2000
Complete rewrite. New architecture is plugin-driven. All MWO features are carried over, and some new features have been added.
MWO 1.4.5 - 1/17/2000
Scripting additions version checking was not working correctly (allowing MWO to load even when versions were not up-to-date). This is fixed now.
MWO 1.4.4 - 1/16/2000
Fixed a bug in MacWaveOut that caused an error to occur if the preferences file being upgraded did not contain a resource fork. (silentp++)
MacWaveOut now reports the nickname of the person who played the song when the AutoGet drive is too full. (ErrantEgo++)
MacWaveOut now plays locally if the AutoPlay channel is not found. (MacinJosh++)
MacWaveOut now shows AutoGreet status in the /peek listing. (Weedhopper++)
AutoGreet now accepts the standard /autogreet [on|off|set] commands. (Weedhopper++)
Made the /commands listing more informative.
The AutoGreet Editor and AutoPlay settings panel no longer display a "User cancelled." error message when you press the Cancel button while choosing a sound. (^DouG3^++)
The Repost Gone Message option now works even when AutoGone is disabled. (Squint34++)
Updated MWO OSAX.
Fixed a bug where changing the AutoPlay message would put text into the AutoPlay interval, instead of the AutoPlay message field. This would cause both the interval and message to be incorrect.
MWO 1.4.3 - 1/15/2000
Believe it or not, MacWaveOut was bitten by the Y2K bug in a small way. MacWaveOut was calculating ping reply times incorrectly due to a two-digit date. This is fixed now.

Honk if you think I am an idiot for letting this one get by me! =D

MWO 1.4.2 - 1/10/2000
Fixed a bug in AutoGreet introduced in 1.4 that caused an error dialog to display, giving the appearance that the new greet creation failed. (MacinJosh++)
MacWaveOut once again reports that it is done scanning sounds and AutoPlay folders. (Weedhopper++)
MWO 1.4.1 - 1/2/2000
Fixed a bug that caused MacWaveOut to throw errors when the preferences file was missing, rather than regenerate it. (bryce-guy++)
MacWaveOut AutoGreet now allows nick!user@host matching with wildcard support. See documentation for details.
MWO 1.4 Release - 12/28/1999
MacWaveOut now does a startup check to see if the scripting additions it depends on are are loaded, and reports missing or unloaded scripting additions to the user before unloading.
The MacWaveOut Install Assistant no longer forces the computer to restart after installation. The user may abort the restart via a dialog that is displayed by the assistant before restarting. However the assistant still forces the user to save ircle preferences and quit ircle. This is because (a) there is no way to force Ircle to save preferences via AppleScript, and (b) in order for the assistant to set ircle's memory partition, ircle must not be running.
Fixed a bug where AutoPlay treated playing a sound to the Console window as an error rather than playing the sound locally.
Added notifications to the following events: user requests AutoSend while AutoSend is disabled, user requests fserve while fserve is disabled. (greenfive++)
Added beta tester names to the /information listing.
Fixed a bug introduced in version 1.4b18 where MacWaveOut would fail to rescan the AutoPlay folder when it was changed in the MacWaveOut AutoPlay settings window.
Fixed a bug introduced in 1.4b18 where MacWaveOut would fail to update the AutoPlay folder display after choosing a new folder.
Fixed a bug introduced in 1.4b18 where fserve no longer worked properly.
Changed the way that MacWaveOut was comparing preferences file versions.
Made some consmetic changes to the startup notifications.
AutoGreets are now checked for aliasing before being output so that they can take advantage of MacWaveOut's alias feature.
Moved the CyberText command into a seperate scriptlet. This (along with ColorScroll) is now installed into the Ircle Scripts folder. CyberText, if invoked with no parameters, displays a settings dialog allowing you to turn the color off.
Added the /colorscroll command as a scriptlet, and an alias for /cs = /colorscroll
Fixed some problems with the AutoGone "Remember Gone state between disconnects" option.
Changed the wording of the Gone and Ungone messages.
Fixed a serious bug in the AutoGreet scheduler that caused greets to be executed more than once in busy channels. (Eric++)
Removed plaintext control codes from non-color MacWaveOut logos so that they do not cause extraneous characters on non-Macintosh IRC clients. (MacinJosh++)
MWO 1.4b18 - 12/12/1999
Updated FindFile to 1.3a17.
You can now instruct AutoPlay to play sounds to multiple channels by specifying more than one channel name in AutoPlay settings. The side effect to this is that because the ctcp command is being issued more than once, the sound is played more than once locally.
Added a workaround in /rescan for an error caused by a bug in the way Ircle 3.1 alpha versions get parameters. This should be fixed by the next release of ircle, at which point I will remove the workaround code.
Reimplemented the /commands command, which lists all supported MacWaveOut commands. (MacinJosh++)
MWO now checks the gone state on each new connection, and performs a Gone or UnGone accordingly. This may not work with some servers. (If you disconnect a connection while you are gone, and do not quit ircle, and reconnect to that connection, ircle automatically sets you as away. MWO now sets itself to match the state that ircle enforces.)
DoScheduledAutoGreet now skips greets for connections that have been closed.
Added aliases for commonly-used commands. See the MWO Aliases file for details.
MWO 1.4b17 - 11/27/1999
Removed "play once" command for SoundJam support. The "once" parameter is being removed from SoundJam.
AutoPlay Next command now stops the player (SoundJam only) so that the next sound will be played more or less immediately.
Removed internal queue functionality from AutoPlay for SoundJam.
Installer now forces itself to the front if it is in the background after the file copy stage of the script.
Added an option to AutoGone to disable CTCP SOUNDs when Gone.
MWO now enables CTCP Sounds on startup if AutoGet is enabled.
Gone - "/gone message" now stores the temporary gone message until you are UnGone.
Removed autogreet on signoff - MWO had no way of knowing which channel(s) to post the AutoGreet part message to when a signoff occured.
Sped up idle-time processing a bit by implmenting indexing by reference in all lists touched by the Idle() routine.
AutoGreet joins are now delayed by five seconds before bing sent. (MacinJosh++)
Fixed a bug where AutoGet would display the "ignored" message when the amount of free disk space was less than the amount specified - even if the "Show 'ignored' message when files do not match" setting was on.
The installer was failing to install the Documentation folder when the MacWaveOut Folder already existed in the Ircle Scripts folder. This is fixed now.
AutoPlay counter now starts at 0 on load. This makes it so that MWO will wait the amount of time specified as AutoPlay Interval before playing the first sound. (Weedhopper++)
AutoGreet nickname/channel name field and the AutoGet custom file filter field now use grep (for example, you might have something like "morph*" to catch any nickname with "morph" in it).
Fixed a bug in the installer that caused the installation to fail if the "MacWaveOut Folder" did not exist.
MWO now sets the AutoPlay folder to "none" as the default.
MWO now reports the nickname who played the sound when a sound does not match AutoGet settings.
MWO 1.4b16 - 11/6/1999
You can now use return (/r) in aliases to make an alias output multiple lines.
Updated RegEx Commands OSAX to the latest version (1.0).
Made AutoPart work for signoffs as well as parts.
Fixed a bug that caused the error "*** Unknown command " to appear when certain characters were used in aliases.
Reworded some messages in the install assistant to better reflect the behavior of the assistant.
Improved AutoPlay functionality with SoundJam and SoundApp
Fixed a bug that caused the error: *** No nickname given to appear under certain circumstances when a connection was opened
Fixed a bug where MWO would type AutoGet requests into the wrong channel in certain situations
Added an option to enable or disable ALL AutoGreets at once.
Added speech functionality to AutoGreet allowing you to specify join and part spoken messages (using Text to Speech).
Fixed a bug where MWO would not send a notification when a CTCP sound was received and SoundApp was selected as the media player. (Weedhopper++)
Fixed a bug when changing the name of a greet that caused the following type of error: ReadGreetFile () error:AlterEgo not found or empty! (Weedhopper++)
MWO 1.4b15 - 9/28/1999
Fixed a bug that caused MWO to display the AutoSend message even when it was set to nothing ("")
Fixed a bug introduced in version b14 that caused Autoplay to always treat the numeric value for the interval as seconds, no matter what unit of measurement was chosen.
Fixed a bug that caused GestaltReply to fail with an error when someone sent a Gestalt request to you.
Added a feature in Misc. settings to optionaly clear your gone/ungone state between connections.
Added the /autoplay next command to jump to the next song. Note: MacWaveOut won't interrupt any currently playing songs when this command is issued.
Rewrote sound play routines to (hopefully) solve the problem of MacWaveOut asking to locate the media player once and for all.
Added handling that will attempt to use unsupported media players - although the result of doing so cannot be guaranteed.
Fixed AutoGreet join & part sounds. They now work as they should.
MWO 1.4b14 - 9/11/1999
Added the ability to have MWO change your nickname when you are gone and restore it when you are ungone.
Fixed a bug that caused MWO to report incorrect information when a connection closed on a DCC transfer of a file less than 1K in size.
Fixed a bug that was causing MWO not to remember the AutoGet enabled setting. (Morph++)
Added an option to the AutoGet settings panel to automatically disable AutoGet if a certain percentage of the AutoGet drive is full (25-95%).
MWO Installer now checks to see if the MWO Greets folder exists before installing a new one. If one already exists, the installer will not replace it.
Added functionality to allow users to put their own custom aliases in a file named "User Aliases" in the MacWaveOut folder so that subsequent installations won't overwrite the custom aliases. (Weedhopper++)
MWO will not process CTCP SOUND requests when the Ircle preference for Enable CTCP Sounds is not enabled. (Weedhopper++)
Removed the /commands function.
Fixed a bug that caused the typed /autogone on/off command not to work.
Fixed a bug that caused the AutoGone - Disabled FServe when gone setting not to be saved to the prefs file.
MWO 1.4b13 - 8/16/1999
The MWO Install Assistant was failing to install a needed scripting addition called "Resource Utilities". The installer now installs this scripting addition. (silentp++)
Added more names to the beta credits in the documentation. (SubManG++)
When an AutoGreet was deleted, MWO wasn't waiting for the Finder to finish moving AutoGreet files to the trash before rescanning the AutoGreet folder. This resulted in the greet still showing up in the list, even though it had been deleted. MWO now waits for the Finder to finish moving the file before continuing. (BMXStunt++)
MWO was asking people to locate SoundApp and SoundJam on systems where those programs were not installed. MWO now correctly handles this situation. (CentrisMan++)
Made several changes to the install assistant to make it compatible with System 7.6. (CentrisMan++)
Changed default AutoGone post interval to 45 minutes. (Cory++)
Added a setting to disable FServe while gone. (Weedhopper++)
Changed the error message MWO would generate at each AutoPlay interval if no media player was chosen in Ircle prefs. The error message displayed was rather cryptic, and did not reflect the actual problem.
Fixed a bug that caused error messages having to do with dates when MWO is running on Mac OS 7.6.
Fixed the routine used to replace custom tags with information so that it does not ask the Finder (or Ircle) for it's version each time it is called. Prior to this change, if the Finder timed out, BuildMyString() would generate an error message. (Weedhopper++)
MWO 1.4b12 - 8/11/1999
The MWO Install Assistant was failing to install a needed scripting addition called "Resource Utilities". The installer now installs this scripting addition.
Added names to the beta credits in the documentation.
MWO 1.4b11 - 8/9/1999
Removed ShootEmUp function.
Combined two rather large sound handlers, which made the compiled binary a bit smaller.
Fixed a bug that caused MWO to auto-ungone upon detecting typing in query windows.
Added /mwoversion command and <mwov> tag for use in custome messages.
Autoplay "set" no longer reports settings to the current ircle window on exit. This change is part of the progressive move to a completely gui-driven interface for mwo settings.
MWO now remembers whether you specified time in seconds, minutes, or hours, and displays the time accordingly, rather than converting settings to seconds (autoplay, autogone).
Removed autofile functionality until I can get Onno (the author of Ircle) to change some things about how ircle processes incoming files. Currently he sends a connection closed event BEFORE he is done messing with the file, which means I cannot count on the file being there at the time of the event. I have no way of determining whether he is done with the file or not, so i can't move the file. Please talk to Onno if you ant this feature in MWO.
MWO now reports elapsed time when posting an autogone message.
Removed autoplay to recipient interface until i have time to add this functionality.
Fixed a bug that caused the autoplay message not to be saved when changed via the autoplay set dialog.
Fixed a bug where if ping trigger is empty, pings were sent to the sender of ANY message - now they are not sent.
Added AutoGone to /peek display
Removed /settings command
The /rescan command now accepts multiple arguments. arguments must be space-delimited. example: /rescan sounds autoplay.
Added a /rescan all feature
Autosend trigger is now configurable, and uses custom message tags.
MWO no longer parses received notices for fserve trigger or autosend trigger.
Changed /mwoversion to /information
All commands that normally take parameters now have more robust argument handling. Better checking is done to ensure arguments are received correctly. If the user forgets the argument, "set" is assumed.
Fixed the following bug: MWO DoAutoSend() failed: The variable chanName is not defined.
Fixed a bug that cause MWO to report "Sorry Morph`, I don't have a file named 'fserve'." when fserve was invoked via the !nickname fserve command.
MWO now supports SoundJam - the new multimedia player from Casady & Greene.
Added /mwo command and asociated settings panel - this will be the main interface for access to all settings in MacWaveOut in the end.
Added a setting to turn all MWO notifications on or off, route them to the Console or to the current window, and have them displayed in ircle color protocol, mirc protocol, or in plain text.
Added setting to auto-open a query window anytime someone msg's you.
Added a miscellaneous settings panel which holds MWO notification settings and the auto-query setting, as well as future settings that don't fit into any other category.
Fixed a bug that could cause MWO to incorrectly report that no folder is chosen for various folder displays.
MWO 1.4b10 - 6/13/1999
MWO is now almost twice as fast in all aspects, and is roughly 400K smaller than before - lots of optimization!
Fixed a bug where MacWaveOut was sending pings to the current connection even when the ping request originated from another connection. Thanks to Morph for finding this bug.
The MWO Aliasing: xxxxxxx was reporting the replacement rather than the original string.
Added/merged the following functionality into a single "rescan xxx" function: rescan sounds, rescan autoplay, rescan aliases, rescan prefs.
Changed default pingreply to "/notice <nick> PONG!" so that it is not a public message.
ReadPrefs and WritePrefs may now be called from the ircle command line.
/url command shows the url to the MacWaveOut webpage (via the MWO Aliases file).
Added "M1A " filetype support.
Added nickname/channel specific greet/part capability. There is now only one command for setting autogreet: /autogreet.
Alias resolution is now cumulative. In other words, you can "stack" alias rules. For instance, "say hi" can be aliased to "say hello" and then "say hello" can be aliased to "Hi there! How are you!", one after the other in the MWO Aliases file.
Added a /commands command that lists all available commands to the screen.
Moved file reject message setting into AutoSend settings dialog and got rid of reject sound.
AutoPlay interval no works as it should - the next sound is played (n) seconds after a sound is done, instead of checking every x seconds regardless of whether something is playing or not.
Fixed: when MacWaveOut received a fserve request, it would acknowledge the fserve in the current connection rather than the connection the fserve request originated in, causing a failed DCC, since the nickname being acted on was in another connection.
Added connection-sensitive gone, ungone, and autogone functionality. Added the ability to use a different message for gone with the following syntax: /gone message_goes_here or /ungone message_goes_here
Added /recsan greets command.
MWO 1.4b9 - 4/27/1999
MacWaveOut now checks the version of the prefs file and only uses it when it is the correct version.
Added the option to turn the "file ignored" AutoGet message off.
Fixed a bug in BuildMyString function that caused MWO to generate a "cant make version of Finder into a string" error in any function that called it on systems earlier than 8.0.
Added new AutoGreet interface and merged AutoGreet and AutoWB into one settings panel.
Added new VersionReply interface.
Fixed a bug where the /settings command was showing the incorrect sound for gestaltreply.
Grouped many settings into records internally.
MacWaveOut now recognizes the following filetypes: "BINA", "FSSD", "ULAW", "WAVE", "AIFF", "AIFC", "VOC ", "NeXT", "STrk", "8SVX", "APCM", "Sd2f", "ALAW", "DEWF", "MooV", "AudT", "MPEG", "MPG3", "S3M ", "IRCM", "OKTA", "Midi", "GSM", "MTM", "PSON", "SFIL", "sfil", "PSI5", "AVR ", "paf ", "PLAY".
Added the option to specify a specific channel for AutoPlay to play sounds into.
Fixed a bug where ReadPrefs was setting whereToPlay of gAutoPlaySettings to a string instead of converting it to a number. This caused tests on this field to fail, which resulted in MacWaveOut AutoPlay malfunctioning (ie. "1" is not 1 (numeric)).
MacWaveOut now keeps track of songs already played during autoplay so they aren't played again until all the rest are played.
Added try wrappers to most of MacWaveOut's functions. This should prevent most annoying dialogs in the future when errors occur. The function name and error message will be reported in the current window from now on.
MacWaveOut now has a ping responder, which will send pings out if it sees the text you specify in public or private messages. See the documentation for details.
Added more sophisticated autoplay channel validation. MacWaveOut checks to see if the channel specified exists and reports a somewhat helpful error if it is not found. ;-)
Fixed a bug where MacWaveOut would return the following error if someone typed: /ctcp #channelname SOUND (with nothing following it): Extract_CTCP_Filename() failed: Can't get character 1 of "".
If soundapp is paused, MacWaveOut AutoPlay will no longer continue to play sounds.
If the channel specified by name in AutoPlay settings is not open, MacWaveOut will play sounds locally now rather than just generating an error.
MacWaveOut now supports aliases. MacWaveOut looks for a file named "MWO Aliases" in the MacWaveOut Folder at startup, and if one is found, reads it into memory. The file is expects to contain grep patterns, which will be used for matching text typed into ircle's input line. Each "alias" must consist of two lines, the first being the search grep pattern, and the second being the replace grep pattern. text that matches the first, will be replaced with the second. See the documentation for more information.
MWO 1.4b8 - 2/27/1999
Added interface elements to the AutoGet Settings dialog to allow for the changing of the label color given to incomplete DCCs, as well as disable labeling altogether.
Added the ability to automatically request resumes for labeled incomplete files.
MacWaveOut now stores and checks the preferences version, and will revert to defaults whenever it does not match.
Fixed a problem with the installer where it would generate a runtime error: "Could not make the version of application 'Finder' into a string." in OS 7.5.5.
Fixed a bug that caused the following error message to be displayed when a DCC transfer terminated before sending any data:

errOSAScriptError (-1753) ircle3.0.4 got an error:
{0} doesn't match the parameters {bytes,numDigits} for FormatSize.

Removed the bottom "Do not request" section of the AutoGet dialog. Now you only tell MacWaveOut which files to request. The "Do not request" section was redundant and confusing.
Implemented a work-around to prevent an error message coming up when no ping time data is received as a result of a CTCP ping. For some reason, this particular person was receiving an "empty" PING reply, and MacWaveOut wasn't taking into account that the string might be empty.
Fixed a bug where under certain situations, MacWaveOut could try to divide by zero while calculating the bytes per second for a DCC, resulting in an error dialog.
Fixed a bug in MacWaveOut's number formatting routines that could generate an error dialog in certain situations.
Fixed a bug that caused /autosend on and /autosend off to display an error.
MWO 1.4b7 - 2/27/1999
Added a new AutoGet interface, and options (see below).
MacWaveOut can now optionally AutoFile completed DCC's into folders named with the corresponding letter of the alphebet (if such folders exist). For instance, if a file named "rooster.wav" is being DCC'd, MacWaveOut will look for a folder named "R", and move the file into that folder once the transfer is completed. If the file already exists in the target folder, it is replaced.
AutoFile currently queues files up to be filed at each AutoPlay interval. The reason we did this was because ircle needs some time after the connaection closes to clean up it's autoresume file. If we move the file before ircle does this, ircle throws up a -43 File Not Found error dialog. AutoFiling at idle intervals partially works around this problem. Not, however, that it is still entirely possible for this error to occur, if the timing is right. So keep that in mind when you use this feature. I'll be looking for a workaround to this problem for future releases.
The new AutoGet dialog allows you to specify which types of files you want MacWaveOut to request. You can choose between .wav, .mid, .mod, .mp2, .mp3, system 7 sounds, as well as custom text. MacWaveOut filters the filename of any sound played based on these settings.
MacWaveOut now reports the filesize and average transfer rate of any completed transfer.
MacWaveOut now sets label coloring for incomplete files to Label 2 (red by default) in the Finder to signify that they are incomplete. Once files are completed the label coloring is cleared.
MWO 1.4b6 - 2/23/1999
This release added no new features to MacWaveOut. A major problem with the installer has been fixed. This problem caused needed changes not to be made to ircle's prefs by the installer, which was, needless to say, very frustrating / confusing for new users. This is fixed at last in this release.
MWO 1.4b5 - 2/16/1999
This is more a work-around than a bug fix. MiniX (version 2.4) sends the following for a CTCP PING reply when you ping someone using it:

/notice <username> <ca>PING <string><ca>
(where <ca> is the control-a character, and <string> is some text)

This is not the standard syntax for a ping reply. Generally the first word following "PING" is the ping time (a number) - not text. MacWaveOut assumed that the first word was numeric. When AppleScript tried to coerce it to a number, an error dialog resulted. MacWaveOut now checks to see if the first word is numeric, and if it is, calculates the ping time accordingly. If it is not numeric, it is ignored.

MWO 1.4b4 - 2/14/1999
Fixed a bug where an internal variable was being used incorrectly, resulting in a runtime error message when setting FileReject message or sound. This also had the same effect on the related PingReply functions.
MWO 1.4b3 - 2/13/1999
Added new functionality to the AutoPlay feature. You can now choose a folder to use as an AutoPlay folder. If a folder is chosen, MacWaveOut randomly selects files from it to play. If no folder is chosen, MacWaveOut uses the sounds folder selecte in ircle prefs.
Fixed a bug that would cause the GestaltReply function to only show the first 3 lines.
Changed the default FileReject message to a notice rather than a channel message.
The /peek and /settings commands now show FileReject settings.
Added the ability to set a custom sound which will be played to the user Gestalting you, if GestaltReply is enabled.
Changed the GestaltReply dialog to include the custom sound.
MWO 1.4b2 - 2/3/1999
Changed AutoGet default message to: "/msg <nick> !<nick> <file>"
Added custom GESTALT reply functionality. Syntax is /gestaltreply on/off/set/show. This is the first function to use Dialog Director for the settings dialog. Others will follow. The installer installs the Dialog Director scripting addition in the Scripting Additions folder, and a full archived copy of Dialog Director in the MacWaveOut folder.
Added the following new tags to custom replies:
<ircv> - ircle version in numeric form (ie. 3.0.3)
<sysv> - system version in numeric form (ie. 8.5.1)
<date> - the current date
MacWaveOut now only includes "WAVE", "sfil", "MPEG", "MPG3", "TEXT" files in the sound list it builds at startup and when you do a /rescan. The reason I am including TEXT files is because when you receive sound files in Binary format, the file is of type TEXT.
MWO 1.4b1 - 1/17/1999
Fixed a problem where (due to an ircle anomoly as far as I can tell), MacWaveOut would generate an error message in the DoCTCP_Sound and DOCTCP_MP3 handlers:

errOSAScriptError (-1753)
ircle got an error: Can’t get “/msg Nickname !Nickname ~kick (MacWaveOut v1.4
©1998 David Blache)”. Invalid index.

The error was caused by the following line:

tell application "ircle3.0.3 US" to type theMsg in channel theChan of connection theCon

I fixed it by changing it to this:

tell application "ircle3.0.3 US" to type theMsg in connection theCon

Due to a conflict with the variable name "target" and AppleScript, the fix for 1.4a7 did not work. I've changed the variable name to "theTarget", and the problem is now fixed, for real, no, seriously, it is, I swear!
PlaySound had a syntax error in the parameter list for the function. I'm surprised this one didn't pop up a lot sooner!
gAutoSend was not globalized in the DoAutoSend function, and was generating a run-time error.
Fixed a problem where the MacWaveOut installer would break when running on systems earlier than 8.0. (Thanks to Paul Wilson for notifying me of this). The version of the Finder was text instead of numeric in pre-8.0 systems, and could not be coerced to a number (ex. 7.5.5 can't coerce to a number). Now the installer gets text and only looks at teh first (most significant) character.
AutoPlay now allows for setting of both the interval time (in seconds) and the message that appears hen the sound it played. More to come...
RandomPlay is now AutoPlay. The previous functionality of AutoPlay has been removed.
Fixed a bug where MacWaveOut would request fserve connections even whn fserve was turned off.
Added support for mp2 files in AutoPlay handler.
Fixed a bug where MacWaveOut was not allowing Ircle to process CTCP events not handled by MacWaveOut.
Added initial support for the RandomPlay feature. This feature is limited by the 2-level-deep limitation of the /sound command until Onno implements a workaround / fix. The amount of time between RandomPlays is "hardwired". You can change it by unloading MacWaveOut and editing the MacWaveOut Prefs file. It is the last entry, and defaults to 120 seconds. This is likely to change in the near future as I further develop this feature.
Fixed bug where AutoSend would do a DCC SEND in the wrong connection if you had multiple connections open and were responding to a request from a connection other than the corrent one.
Added _limited_ support for sound files with spaces in the names. Basically, MacWaveOut will play them as long as they are enclosed in quotes.
Fixed numerous bugs having to do with sound file exchange.
Added CyberText functionailty.
Added ping reporting. Now when you ping someone, MacWaveOut will send a notice to them telling them how long their ping is.
Rearranged some functions internally to make things easier on me. :-)
MWO 1.3.1 - 8/1/1998
Fixed a bug where MacWaveOut would not send sound requests to the current channel.
MWO 1.3 - 6/15/1998
Built a cool installer assistant script to automate installation and setup. Should save folks a lot of time and headaches.
Changed the /stats command to /peek. Added the "show" parameter to all functions. This makes the script a bit more intuitive. (For instance, to see the current AutoGreet settings all you type now is /autogreet show.)
Added display for the size of the sounds folder after scanning files.
Lots of small cosmetic changes not really worth mentioning.
*** I would like for the FServe handling to check to see if FServe is enabled before opening an fserve window. The problem is, Ircle doesn't allow scripts to see that attribute. Let's hope that this capability is added in a future release.
FServe now responds to msg and notice requests.
Fixed a bug in the AutoPlay feature that caused an extra "#" character to be included in sound play commands causing an error.
AutoSend now works correctly when you are logged on to multiple servers and a person from server A requests a file from you while you are on server B.
Version replies are now customizable via the VersionReply function.
Ping replies are now customizable via the PingReply function.
Improved "set" command handling.
MWO 1.2 - 5/24/1998
Completely rewritten to make use of the FindFile OSAX. This makes MacWaveOut much faster, and allows you to store any number of sound files in your sounds folder, in any number of directories.
Changed all of the syntax so that commands are much easier to remember, and follow the same conventions throughout the script.
MacWaveOut now remembers preferences between runs of Ircle. Your settings will never change on you as long as the "MWO Prefs" file is located in the MacWaveOut Folder.
The script and its related files are now contained in its own folder in the scripts folder.
The script is now much easier to use and is much more stable than before.
MWO 1.0.6 - 4/14/1998
Fixed a bug where KickSupport was always on regardless of the setting.
MWO 1.0.5 - 4/10/1998
Added WhatsOn command which displays current switch states (on or off) for each of MacWaveOut's features.
Fixed a few bugs in CTCP Sound request handling where Ircle would throw an error if a sound was played privately rather than broadcast to the channel.
MacWaveOut now allows for multiple tags in messages. For instance, the message: "/msg <nick> !<nick> <file> Thanks!" will produce this string: "/msg Dumbo !Dumbo thatFile.wav", whereas in earlier versions, it would produce: "/msg Dumbo !<nick> thatFile.wav".
Added GreetSound and WBSound commands along with support for same.
MWO 1.0.4 - 4/6/1998
Fixed a bug in AutoSend and AutoGet where a variable was not defined.
AutoGet now sends sound requests via a private message (/msg) rather than to the open channel.
File reject messages are now sent as private messages also.
MWO 1.0.3 - 4/5/1998
Added instructions on setting up Ircle for sound play.
Added instructions for installing MacWaveOut.
Added instructions for new features in this version.
Separated WB feature from AutoGreet (ala AutoWB).
ShootEmUp's Message is now customizable via the SetMessage shoot command.
Added the ShootEmUpSound command which lets you specify the filename of the sound you want played whenever ShootEmUp is activated.
KickSupport is now an official "feature", with a customizable message and sound (see docs).
AutoGet and AutoSend messages are now customizable via the SetMessage command.
Changed defaults to the following:

AutoGet("on")
AutoSend("on")
AutoPlay("off")
AutoGreet("off")
AutoWB("off")
ShootEmUp("off")

MWO 1.0.2
Added SetMessage command along with support for tags in various messages. Changed some of the default messages.
MWO 1.0.1
Added support for CTCP MP3 commands.
Fixed bug where MacWaveOut would calculate subfolders incorrectly when looking for sound files in the Ircle Sounds folder.
Added 'vers' resource.
MWO 1.0
Initial Release.