airc++ updates
+ : Added
- : Removed
@ : Improved/Modified
! : Bug fixed
/ : Comment
? : Question to users...

_________________________

airc++ 30621

/ New modules: settingsd emi emi_test tlsbncman and tlsamdman
/ Updated aircdll (v30615)
/ Updated kte.dll (this should fix the SetBusyState bug)
/ <tabo> Almost a year without an update. I apologise to all, specially to our
/        loyal users but I have been terribly busy this year. There are more
/        updates in this version, but I just forgot to document them all :-/
/        Also note that I have unfinished modules, and I was going to release
/        the script with them, but people is losing faith, and I find the
/        lack of faith... disturbing. So I released the script without those
/        modules. This is a bugfix-update release (all the bug reports in the
/        board have been fixed). There are also new modules, settingsd to help
/        you (lazy) guys with the script settings, emi to play mp3s, tlsbncman
/        for your bouncers and tlsamdman, a module manager.
/        And there is an updated version of KTE, Kamek is still lurking
/        somewhere in mircscripts.org, but he's a "Python/Ruby" boy now :-)
/ For this version I recommend reinstalling all the modules, just in case.
/ Share and enjoy.
airc.mrc tabo 30617
  ! Fixed _noparse (and sons) to handle '%' and '$' single chars in expressions
cprot tabo 30617
  ! Fixed join/part flood protection
cprotsetup tabo 30617
  ! Fixed some problems with the non-flood settings
  @ The settings will be flushed to disk when you click "OK" in the /cprot dialog
emi Preed 207245
  + Added module (it rocks), "/module +emi_test" for debugging.
ial tabo 30617
  ! When the update on op setting is enabled, the script will update the IAL only
    when the user is opped, not when anybody is opped
queue tabo 30617
  ! Fixed the devoice hook
settings tabo 30617
  + Added $settings_setnc()
  + Added $_delsetup()
  @ Some extra sanity check to avoid data corruption
  @ Added a new option in /conf: "-r". It removes a chan/net setting
  @ _setsetup now returns a value (this broke Kamek's modules, fixed)
settingsd tabo 30617
  + Added module. /settingsd or /confd to open the settings dialog
stdio tabo 30617
  ! Added an extra check to stop those "Invalid command: _info_a".
stdlib tabo 30617
  + Added $_findfileregex2win()
  + Added $_splitaircnetchan()
  + Added $_channetw2dllflags()
tlsamdman eXcelsior 30526
  + Added module, use /tlsamdman_main
tlsbncman eXcelsior 30512
  + Added module, use /tlsbncman_main


_________________________

airc++ 20727

airc.mrc Kamek 20727
  + Added a /clearall command that won't mess with custom windows by default
  @ Changed <section>.dat to <section>.ams (airc module section), and made all
    the lines prefixed with the module which made them
  ? Should we add a "onreload" item to specify command, like with onload?
  / Also, open the away module and read the [messages] and [actions] sections
cprot tabo 20727
  @ Clones protection is working now
stdio tabo 20726
  @ Now the modules will check on load if #stdio_defaultecho is disabled and
    there are no default echo functions.
ibl tabo 20405
  + Added the IBL module
fkeys Kamek 20722
  ! Fixed syntax information for /setkey
kte Kamek 20723
  @ Several internal updates were made
  @ Previews are saved in .png format (saving space) if your color resolution
    is supported for so (24 and 32 bpp, for now)
  ! Fixed a typo that was preventing wallops from being themed
kncomp Kamek 20723
  @ Added clan nickname completion:
    If the nickname is in "[clan]nick" format and this option is on, you can
    refer to it as "nick," (or any other activation character).
settings Kamek/tabo 20727
  @ Modified the line format of the [settings] section in the modules, the
    <module> isn't needed anymore.

_________________________

airc++ 20720

/ This is a minor release, just to fix dependencies between modules and update
/ the away module:
away Kamek 20/Jul/2002
  ! Fixed return message never being announced
  + Added /back to return from away
  @ Other minor changes

_________________________

airc++ 20719

/ Added the tetas.dll (Tetas Encryption Tools And Stuff)
/ <tabo> I fixed the coding style in my modules, I'm sick of people saying that
/        they can't understand my code.
airc.mrc tabo 20718
  + Added the $airc_modisloaded(module) function
  + Added the moduleload/moduleunload hooks. They will be called after one or
    more modules are loaded/unloaded. The syntax is:
    - moduleload <mod1> [mod2] [mod3] ...
    - moduleunload <mod1> [mod2] [mod3] ...
  @ Added support for moduleload/moduleunload in airc_buildevents
  @ airc_vertag now returns the script version first, then the engine version
    [mircX.XX/aircXXXXX/engineXXXXX]
  ! Fixed a regex in airc_buildevents to allow hooks with more than one '_'
airc.mrc Kamek 29/Jun/2002
  + Added +e ("End") flag for numeric (raw) hooks:
    The command will be added to the end of the hooks for that event, even
    after the the generic raw hook (if any).
airc.mrc Kamek 23/Jun/2002
  + Added hooks:
    open, openuser, openchat, openserv, closeuser, closechat, closeserv,
    inputchat, inputserv
users tabo 20705
  ! Fixed the network-related bugs. On connect the script was trying to load
    the settings without creating the table first (dumb!)
  ! Fixed the password problems, now using tetas.dll for the blowfish
    encryption
cpanel tabo 20718
  + Added the control panel module (/cpanel)
    On other modules, control panel items were added to interact with this
    module
cprotsetup tabo 20710
  ! Fixed a bug when adding a channel only setting (without a network)
stdlib Kamek 23/Jun/2002
  + Added $_paren()
cprot Kamek 23/Jun/2002
  ! Fixed bracket mismatch in cprot_onjoin
lag Kamek 29/Jun/2002
  @ The lag variable is now reset on disconnect
pprot Kamek 23/Jun/2002
  @ Changed the open hook to openuser
trayman Kamek 19/Jul/2002
  @ Internal changes were made: added handlers and changed how icons are
    handled. These changes may only matter to you if you write stuff that use
    trayman. If so, you must see /trayman_addicon and the new format for "icon"
    and "mixed" items.

_________________________

airc++ 20616

airc.mrc Kamek 16/Jun/2002
  ! Fixed bugs on airc_buildevents
  ! Some other minor fixes:
      Recursion problem in $_noparse()
mdx Kamek 15/Jun/2002
  @ Now using MDX 0.91c
  + Added $_listview_getcol()
menus Kamek 15/Jun/2002
  ! Fixed bug where menu settings were being lost on some occasions.
kncomp Kamek 16/Jun/2002
  @ The nickname completion is finally customizable. Type /ncsetup to change
    settings.
fkeys Kamek 16/Jun/2002
  + Added the function keys module. Use /fkeys to set them.
kte Kamek 16/Jun/2002
  + Added the kte module (theme support for .mts files). Use /kte_load to load
    a theme.
klagbar Kamek 16/Jun/2002
  + Added the lagbar module.

_________________________

airc++ 20611

/ Replaced all ocurrences of $hmatch/$hregex for $hfind
/ Updated aircdll (it has tons of new fucntions, i'll document+release it as
  soon as i can)
/ Rewrote the help file, it's now called   airchelp.txt. So far it has only
  functions, settings will be added the next version.
airc.mrc Kamek 20601
  @ airc_call is now using the new $_noparse() function to avoid reevaluations
airc.mrc tabo 20610
  + Added the "/all <command>" function. Will perform <command> in all the
    active irc sessions.
  + Added the airc_vertag function. Returns some version info with the format: 
    "[mircX.XX/engineXXXXX/aircXXXXX]" (looks nice and it's easy to parse)
  @ Use '/module +*|-*' to load/unload all the modules
  @ On startup, the engine will display the version tag
  @ airc_ver will get the script version from a airc.ver file located in the
    main script directory
  @ Using the airc_modcode_savereload function to save&reload modcode.mrc
  @ modcode.mrc and events.mrc now have headers showing the version tag
    and the date/time they were built
  @ Mass loading/unloading modules should be a lot faster now.
  @ The engine checks if the events/users/variables files need to be reloaded
    on startup instead of always relading them. Startup is 10x faster now.
  - Removed airc_closewindows, now using mirc6.02's "/close -@ *match*"
  - Removed 'airc_allinstall' and 'airc_alluninstall'
  ! Fixed the "not connected" or "unknown command" errors when loading modules
    with onload events.
op tabo 20610
  + Added topic enforce/mode enforce routines
  ! The disconnect hook was doing nothing
punish tabo 20610
  + Added the option to "enforce" the modes/topic changes when a prot is
    triggered. This should be safer for you paranoids out there (hi carpe ;)
  @ Moved the mode/topic change routines to the op module
  ! Fixed a bug when displaying warnings
settings tabo 20610
  ! Fixed _getsetupb
stdlib tabo 20610
  ! Fixed _ismask, it was because of this that '/kick nick' or '/op *'  wasn't
    working, dumb bug.
  - Removed the _all function
users tabo 20610
  + Added the ability to use multiple userlists
  + /usernet
  @ Several internal changes

_________________________

airc++ 20520

  / All the changelogs are now in this file.
  / The distribution no longer includes mirc.ini, servers.ini, etc. It also
    won't include a /usr directory with default settings, it's safe to do that
    now with the new behavior of the settings module. This means that beginning
    with this version, the user settings will be safe with every upgrade (like
    in the old aIRC)
  / Before upgrading _please_ do this: rename /usr/airccn.dat to settings.cfg,
    then create a "default" directory inside /usr and move all the files in
    /usr to /usr/default.
  / Added airc_install.txt, instructions to install the script.
airc.mrc Kamek 20516
  @ Updated airc_buildevents to v2.3
airc.mrc tabo 20504
  + Added a function that returns the script version (airc_ver). The old
    airc_ver is now "airc_enginever".
  @ On startup, the script will load events.mrc if it's not loaded.
  @ The script version and the script engine version will be displayed on
    startup.
  @ The airc_usrdir function now returns usr\default\ instead of just usr\
  ! Fixed a bug when mass loading/unloading modules, it should be faster now.
  / Updated airc_allmodulesinorder
dcc tabo 20520
  + Added the dcc module (dcc queue module, expect a xdcc module soon)
mdx Kamek 0.912
  + Added the mdx module
menus Kamek 0.5
  + Added the menu manager module
punish tabo 20520
  + Added two new settings: protwaitretrigger (Seconds to wait to re-trigger
    a punishment) and protwaitreset (seconds to wait before resetting actions
    in a punishment)
  @ When warning/deoping/banning/kicking/ignoring, the script will try to get
    the address, if it can't, it'll punish the nick, like 'nick!*@*'
queue tabo 20520
  ! queue_hook_notarget will call queue_delregexd instead of queue_delregex (it
    was doing nothing)
settings tabo 20520
  + Added the _getsetup, _getsetupb and _setsetup functions
  + Added the settings_settingscheck function, called by the core after one or
    more modules are installed to set empty settings to their default values
  @ The non-network/non-chnnel specific settings will use aircdll Opt*
    functions instead of stdlib's settings functions. This way all the settings
    will be stored in a single file.
  @ Settings are now stored in 'settings.cfg' instead of 'airccn.dat'. Rename
    that file before upgrading if you don't want to lose your settings.
  @ Setting lines in the [settings] section of a module include now default
    value
stdlib tabo 20520
  + Added the _dcctotal function
  - Removed _loadsetup, _setsetup, _settsetup, _getsetup and _getsetupb.
    Modules should use the settings module or stdlib's _sets, _setd and _get
    for settings.

_________________________

airc++ 20409

  @ Updated aircdll
evaltext tabo 20330
  @ Now using Kamek's evaltext c function (in aircdll)
cprot tabo 20405
  @ Renamed the "exempthelpers" setting to "exempthalfops"
flood tabo 20405
  @ Using _cngetsetupb instead of _cngetsetup to get the nofloodonlag setting
ial tabo 20405
  + Added the IAL module
lag tabo 20405
  + Added the Lag Check module
op tabo 20405
  @ Now using stdlib's _canikick function in the kick/ban functions, so a
    halfop can now kick non-ops
  @ The *voice commands can be used also if the user is a halfop
queue tabo 20405
  + Added the +k flags in queue_call: "dump message only if the target is in
    the channel and can be kicked"
  + Added the +h flags in queue_call: "dump message only if the user is a
    helper or a chanop in the channel"
  @ Now using stdlib's _canikick function in the kick queue
  @ Hacks in the mode queue functions to support halfop modechanges. If the
    user is a halfop, it will be able to alter these chanmodes: "vmntibe"
settings tabo 20405
  + Added support for combining +b flags with +sSif flags in settings. When
    this happens, the setting's first word is a "toggle" value (0 or 1)
  + Added the _cngetsetupb function, works like _cngetsetup, but if the first
    word stored in the setting is a boolean TRUE (1, $true), the rest of the
    string will be returned, else it will return $null
  + Added support for the new "updatecmd" token in the settings
  @ When the /conf functions shows the list of the settings, it will only show
    the flags, not the details explaining what those flags are
  ! Fixed a bug in /conf when storing a numeric setting with a n-n range
stdio tabo 20405
  + Added a progressbar
  + Added linesep fucntions: stdio_linesepa, stdio_lineseps and stdio_linesepw
stdlib tabo 20405
  + Added the _canikick function, returns true if a given user can be kicked
    from a channel
  + Added the _canitopic function, returns true if a channel's topic can be
    modified
  + Added the _getsetupb function, works like _getsetup, but if the first word
    stored in the setting is a boolean TRUE (1, $true), the rest of the string
    will be returned, else it will return $null
users tabo 20330
  + Added user functions: chattr, +host, -host, chhandle, chpass, comment,
    uwhois, +chrec, -chrec, adduser, deluser, chinfo and users. I think these
    should cover your needs for now.
  ! The user settings will be remembered between sessions (oops!)

_________________________

airc++ 20325

/ First public release...















_________________________

Previous changes:


airc.mrc tabo 20323
  + Added airc_mod2merged, used in airc_flushmerge and airc_buildmods
  + Added the aircdebug function, if used as a /cmd it will toggle the debug
    mode of the script, if used as an $identifier it will return the debug
    status
  @ Removed %airc_load and %airc_unload, now everything is "queued" in a hidden
    custom window, even the onload commands, because of this, the "n" flag is
    not needed anymore in airc_install and airc_uninstall
  @ Module merging will use relative paths instead of absolute paths in the
    comments in modcore.mrc
  @ The comment format that indicate the begin/end of a module in modcore.mrc
    will be "; ### begin file" instead of "; begin file"
  @ When merging modules, the script files that will be merged will be unloaded
    if they are already loaded in remotes
  @ airc_buildmods will store the files to load in a custom window instead of a
    variable, so there is no risk for a "line too long" error
  @ The /module list now shows the version of the modules and a [loaded] tag if
    the module is loaded
  @ Modified the regex filter in airc_buildevents to allow uppercase chars in
    the hook names
  / Updated airc_allmodulesinorder
airc.mrc Kamek 17 Mar 2002
  + Added /airc_unloadremote
  @ Renamed /airc_modmerge to /airc_buildmods
  @ Instead of calling /airc_buildmods, commands now will just call /airc_load
    and /airc_unloadremote. They will take care of merging. The downside is
    that $fline() is SO DAMN SLOW! Khaled should add a way so we can specify on
    which line we want $fline() to start searching. Really, asking it to
    $fline() a line that we DO know it must be after #2000 is a pain. (so,
    unloading modules is DaMn SlOw now) oh, and deleting 300 lines is also a
    pain.
  / TODO: "/module a" for unloading
airc.mrc Kamek 16 Mar 2002
  + Added $airc_getmissingmods()
  @ Added flags and return values for airc_install, airc_uninstall and /module
  @ /module also supports multiple parameters for mass loading/unloading
  @ /airc_allinstall and /airc_alluninstall now use the mass feature, btw
  + Added airc_modmerge
  @ /airc_loadremote doesn't load anymore the remote file, because of modmerge.
  @ To hide the "module installed:" message, a module should put "n" on the
    onloadflags item of [module] I.E.: onloadflags=n
  / That also means mIRC's editor shouldn't be used anymore to edit modules,
  / and that TextPad will rule.
  / tabo, ever wondered we forgot to update $airc_ver? It was still 20211!
  / As often, look for <Kamek!20316>
airc.mrc tabo 20315
  / Renamed aiba to airc, Kamek, a find&replace in your modules will fix
    everything, you should also go to your /usr directory and rename all
    "aiba*" files to "airc*" Also, the default module extension is now .amd
    instead of .abm
  + Added airc_allinstall, it will install all the known modules (for
    debugging)
  + Added airc_alluninstall, it will uninstall all the known modules (for
    debugging)
  @ airc_buildevents will also be triggered on install/uninstall if there is a
    [settings] section in the module
  ! Fixed $inpaste in the input hooks, should be !$inpaste
airc.mrc tabo 20307
  + Added support for the new [settings] section in aiba_buildevents
  + Now aiba_buildevents will accept the +o flag only if the event can be
    halted (^) The haltable remotes are stored in the local var %haltdefault
  @ aiba_callhook now returns $result and returns the original parameters if
    there was no hook
  @ aiba_callhook can now take parameters (doh!)
  ! Fixed actionchan noticechan textchan events prefix in aiba_buildevent
  ! Fixed the filter regex in aiba_buildevents to allow one or more space as
    separator and to allow uppercase flags.
airc.mrc Kamek 02 Mar 2002
  + added new hooks: inputchan, inputuser, input (these hooks are handled in a
    different way, btw)
airc.mrc Kamek 11 Feb 2002
  @ major changes to aiba_buildevents (fixed a few things, changed the format
    of hooks, added raws, added general raw hook)
  / IMPORTANT: open all your modules, and look for the [hooks] section. Take
    out "N=" from all the hooks.
  @ changed the events called aiba_buildevents (they were checking with $ini())
  / as often, a few comments here and there, minor changes... look for
  / <Kamek!20211>
airc.mrc tabo 20208
  + Added $aiba_tmpdir
  @ The module version will be displayed on install
  - Removed info.a and error.a
airc.mrc Kamek 08 Jan 2002
  @ improved aiba_buildevents a bit, added %aiba_parms
  @ aiba_call is now public (no -l)
airc.mrc tabo 20108
  + added $aiba_ishook() and /aiba_aiba_callhook
  @ tiny modification in the install routine to save a few bytes in the .mrc
  ! Kamek modified the reqmods format, but he forgot to update the uninstall
    code (damn Kamek, foda-se!)
  - removed Kamek's horrendous pipes, i'm sorry, I can't stand pipes, bad
    programming practice
  / i think that for readibility, style and good programming, we shouldn't use
  / pipes and always use parenthesis and brackets, like "if (blah) { bleh }"
airc.mrc Kamek 22:24:05 07 Jan 2002
  / major changes





stdlib tabo 20315
  + Added the _filecreate function
stdlib tabo 20307
  + Added the _network function
  @ All the functions will /return, even $null values, so a calling function
    will always get a valid $result
stdlib tabo 20206
  + Added _saferegex, will convert the regex special characters to their \char
    equivalent
  + Added _sw, _sc, _dialog and _tmpwin (Kamek's idea)
  @ Adapted Kamek's _*varg functions to stdlib_vars
stdlib Kamek 20204
  + Added _*varg functions (global vars)
  + Added _isacc function (is active connection, NEEDS A BETTER NAME)
  + Added CLOSE hook
  / Proposal: cactive hook ("connection active", fired when active connection
    changes)
  / Look for "<Kamek!20204>" to locate changes (must-do)
stdlib tabo 20204
  + Added the "_all" function to access the /scid command and then /scid -r
    automatically
  + Added "$_maxstrlen", it returns the max string length that the routines
    should handle, so the scripters don't have to hardcode a max of 900 anymore
    (just in case khaled learns how to write his own wsprintf() ;) ) (should
    this thing be in the airc core?)
  @ _randstring now uses $_maxstrlen
  @ Moved all the documentation to stdlib.txt
stdlib tabo 20203
  + Added support for network paths in _fixfilename and _fixdir
  @ _ischan, _isvalidfilename, _inputcom, _isvalidircnickname, _ismask,
    _ismask2 and _isfullmask are now powered by the mighty $regex()
  @ Rewrote _hmakeifempty
  @ Documented "_wordisinstring"
  @ Modified _fixchans()
  @ Renamed $_:duration() to $_durationd
  @ Renamed _isanybodyhome to _whoisinchannel
  @ Small enhacements
  - Removed _mircol2rgbnum, the new behavior of $color() made it obsolete
  - Removed _round, the new behavior of $round() made it obsolete
  - Removed _airctime2ctime, i don't remember why i wrote it
  - Removed _nicks, it was pretty useless
  - Removed _clonmask and _normask, they needed script settings
  - Removed _chanpending, obsolete
  - Removed _isban
  - Removed _iservice
  / I modified the behavior of some _is* functions for consistency, now all of
    them are BOOL functions with 4 exceptions: _isfile, _isdir, _isdisk and
    _isint, because these functions were created to be used with $ifmatch
stdlib Kamek 20131
  / Many comments and updates. Read comments through the file.




queue tabo 20323
  @ queue_call now uses airc_call (/mode tabo +paranoid)
  ! Fixed queue_call, the flags checking was messed up (never script at 4am)
queue tabo 20208
  ! Fixed the %delay variable not being initialized in queue_perform
queue tabo 20206
  + Added the '_putquick', '_putserv' and '_puthelp' functions, shortcuts for
    module writers that don't want to mess with targets and flags...
  @ In the queue_delregex and queue_delregexd routines, queue_timer will be
    called only if an entry was removed
  @ Documented the flags, and they are working now... BUT, we must find a way
    of adding ON RAW hooks...
