# ChangeLog file for MZiq project # # $Id: ChangeLog,v 1.29 2004/01/19 15:17:34 cseg Exp $ # - 04.01.19: - MZiq 0.4.2 - Fixed a bug that led to double basedirs when using multiple ``@+´´ parameters. - 03.05.28: - A few small cosmetic changes. - 03.03.12: - Fixed the way MZiq handles he ``all´´ option. Now whenever you add an inclusive pattern, it'll automatically unset the $do_all variable. - Made macros/reference checks on top of mz_parse_opt(), so that you can actually use macros/reference basically everywhere. - 03.03.12: - MZiq 0.4.1 - Fixed a bug in which non-default depth/patterns would be nuked after the first run of the player. - 03.02.27: - Added a check to make sure that paths not beginning with ``/'', ``./'', ``../'' or ``~/'' will have $cwd prepended to them. - 03.01.15: - Removed a check against empty values on the config file options. - Added a config option to specify what return code to expect from the player. - 02.12.16: - MZiq 0.4 - Changes seemed to work well, so new release is out. - 02.12.05: - Adopted the use of strict and Perl's -w switch. Tons of changes all around to fit this. It may or may not break things, so let me know if it does. Specially things like cache support and chains of files have not been tested and might be broken. I hope I didn't left any warnings/obvious bugs out, though. I'll hold this for a week or so to test it on a daily basis and see if aditional changes are needed before announcing a new release. - 02.11.13: - MZiq 0.3.3 - Added the ability to escape the separator of commands in interactive mode. Thanks to cp5 and all others from #suid@suidnet for helping on this issue. - Actually added the ``e'' or ``exit'' commands to the interactive mode, as noted in the documentation. - Enough holding for the new release. - 02.10.31: - Removed an unnecessary ``fix'' for directories not starting with either ``./'', ``../'' or ``/''. - 02.10.18: - Fixed a small bug that prevented directories with spaces in their names to be correctly used. - 02.09.17: - Added the ability of adding/removing directories to @basedir on-the-fly (instead of having to re-specify the entire list, one could just add or remove the ones they feel like). - 02.09.15: - MZiq 0.3.2 - Added a check to remove trailing CR/LF characters from patterns, filenames and such. It should have been done centuries ago, so you can all blame me for missing this one. :-) - Added the possibility to chain interactive mode's commands. You can now line them up like this: +inclusive.pattern; build; play - Fixed a serious issue about the interactive mode. It wouldn't work if you fed it through a pipeline. Although it's now possible to feed MZiq's interactive mode with input from other processes, if you run the player afterwards it won't take further input. (Example: `(echo +an.inclusive.pattern; echo 'build; play') | mziq it`. If you run this, once the player is started by MZiq, it won't take the input you might want it to. Needs fixes. - Major design changes in mz_parse_opt() and in mz_parse_int(). The first one is a fix to a weak programming design of mine, the second one is to fit the commands lining-up. - 02.06.04: - MZiq 0.3.1 - Added a poor, little help system. - Minor code cleanup. - 02.05.28: - Changed the pattern for ``all'' to just ``.''. It does not mean that users should use ``.'' instead of ``all'', the change is just to make things more coherent when running interactive. - 02.05.19: - Minor bugfixes on the caching system. - 02.04.19: - Added a sanity check on options' values. - Increased the number of variables shown in interactive mode. - 02.04.08: - MZiq 0.3 - Added the interactive interface. All the currently-available info on this can be found in the file README.interactive. It's still in early development, so feedback is welcome. - Changes all over to fit it. - 02.03.22: - MZiq 0.2.50 - Added support for per-basedir depth and pattern setting. Please read the README file for an explanation on that. - Changes all over the place to support the above. - 02.03.08: - MZiq 0.2.49 - Moved the list building process to a new function, mz_build_list(). That makes possible to re-do it when necessary. - Added an option to rebuild the playlist, ``rl'' or ``rebuild'', when running the player in repeat mode. What it does is to mz_build_list() and then working a few stuff up after each run of the player, thus updating the playlist for each next time the player runs. - Modified the behavior of a couple of variables' interpolation (currently basedir and mz_path), allowing them to be referenced with an @, as in @basedir. In case you didn't notice, before this release it was only possible to refer to them with a $, as in $basedir. Since they're both arrays, I thought it could be more intuitive to use 'em that way too. - Changed the display of timeinfo. Now only non-zero parts of it are shown. It has also been updated to count up to weeks, like someone even uses MZiq to play *that many* songs. :-/ - Major/minor changes all over the place to fit the new features. - Minor bugfixes on the new features. - 02.01.14: - Removed the check for existance of the playlist when executing the player with the repeat mode. Now we always go directly for trying and re-creating the file, so we are less likely to loose the list if another process overwrites it. - 02.01.01: - Removed the duplicated entries' check. I've got to the conclusion that that thing was pointless, and worse, it prevented users to intentionally add files matched by more than one pattern more than one time. - Better handling of player's options changes on-the-fly. These changes led to changes in the rcfile, check that out. It's not likely to break usage for those with older rcfiles, but it will not work properly for those people. - I cannot believe I actually included $cwd but left out $pwd for all this time. - 01.12.31: - Fixed a bug in the previous bug fix. Let's hope it gets truly fixed this time. - 01.12.30: - Fixed a bug that always forced the starting directory to be $mziq. - Moved LASTLOG to ChangeLog. - 01.09.06: - Fixed a bug that prevented the use of mz_ref to specify a new basedir. - Changed the default basedir (into MZiq, not the rcfile) to $HOME. This should have been done a long time ago, since nobody is forced to have a /storage/mp3, but SHOULD have a $HOME. Thanks to Gea-Suan Lin for writing a patch for that on FreeBSD's ports-tree. (BTW, yes, MZiq is under FreeBSD's ports-tree. YAY! :-) - 01.08.18: - MZiq released to the public. - 01.08.16: - Added new options ``addoption'' and ``chgoption'' to add/change the player's options list on-the-fly (i.e., at the command-line or in supplied files). Be aware that the use of these new options can avoid the use of the default ones, set up in the configuration file. - 01.08.07: - Version changed. We are now back to 0.2.43. This is because we're going to make MZiq public and I think we should start with a low version number. Not a biggie, though. Users ``upgrading'' from versions prior to 2.4 (are there any?) should be aware that they're going to actually ``downgrade'' and not freak out. I hope this will be the last time this mess happens here. Sorry. - 01.08.04: - Removed the per-basedir checking when matching exclusive patterns. Why was that put in there in the first place? - 01.07.30: - Changed the behavior when ``printonly'' or ``buildonly'' are set with ``usepl''. Now we just unset $usepl. - Added the README file, updated mz_usage(). - 01.07.24: - Fixed a bug that prevented the player to find files in the current directory, if using a playlist located elsewhere. - 01.07.23: - Added support for a default options file. It will help people to have their wanted options loaded up without the need to include them at the command-line. But it will also create a possibility to disable the help screen when no arguments are found. Be aware of that. - Improvements on the nice'ing support. NOTE: NICE'S SYNTAX IS LEFT FOR THE USER TO LEARN, AS IT DEPENDS ON LOTS OF DIFFERENT THINGS. - Added support for changing default options' values at the command-line (and through files too). For example, if one has in his default options file ``usepl'', but at a random time he doesn't want to use a playlist, he could just use ``usepl=0'' at the command-line to override that setting. - Added support for file names globbing. Note that it is FILE NAME GLOBBING, and not Regular Expressions on file names. If you got confused, `perldoc -f glob`. - Minor changes all over the code. - 01.07.22: - Added the ``nice'' support. It may help users with less CPU power. - 01.07.09: - Fixed a problem when setting find's maxdepth. - 01.07.03: - Minor size/speed optimizations. - 01.07.02: - Changed ``my_'' prefixes to ``mz_''. NOTE FOR USERS UPGRADING FROM < 2.2 VERSIONS: CHANGE YOUR PATH VARIABLE (my_path) IN THE RCFILE TO mz_path, OR IT'LL FAIL! - Changed all functions' names to mz_function(). - Added the option (mz_ref) for changing the default token for referring to MZiq's home directory. - Added the caching support, through the ``ca|cache'' and ``ica|inccache'' options. - Verbosity now has different levels. - Minor changes to fit the new features/changes. - 01.06.09: - Minor code syntax changes. - Other minor misc changes. - Added the shortcut ``^'' when parsing filenames, to point to $mziq. - Changed the versioning system. - 01.06.03: - Explicitly pointed out that MZiq is under the BSD license. - 01.05.20: - Added support for find's ``-maxdepth'' switch. It'll help in some cases, where people want only a certain level of sub-directories to be searched. - 01.04.28: - Added support for multiple $basedir's. It kind of breaks the old fashion, because it no longer supports stuff like ``^'' (matching the beggining of the string). I think it's nicer this way, though. - Minor changes to fit the new feature. - Added a simple example file (``example.mz''). - 01.04.22: - Made the usage of the MP3::Info module necessary only when asked to show the timeinfo for the playlist. - 01.04.21: - External software (player, findbin) can now be specified in full path or in the old fashion. - Added the option ``@'', which changes the $basedir at the command-line. It currently only updates $basedir, $findarg and $findcmd. Needs improvements. - Added the option ``P'', which changes the $pattern at the command-line. It currently only updates $pattern, $findarg and $findcmd. Needs improvements. - Added an option for showing current version (``version'' or ``vn''). - Fixed handling of files with names starting with '.' or '/'. - Fixed a few typos. - Minor changes. - 01.04.14: - Added code for selecting whether the player should be fired up for random playing or not. - Minor general changes. - 01.02.26: - Minor changes on reporting to the user. - Included code comments so that people can get at least an idea on what each piece of code is doing. - 00.11.23: - Added a special flag (ti|timeinfo) for file info gathering, to prevent delaying of execution when not wanted. - 00.11.17: - Added file info fetching support, through MP3::Info module. I didn't want to add additional modules to the source, but this one I find useful. - 00.09.25: - Minor changes on typos through the code. - Added the TODO file. - 00.09.05: - Major changes in code: Leading ``+'' and ``-'' chars now mean ``include|exclude files matching this pattern, case INSENSITIVELY''. For old fashion, use ``='' and ``_'' (inclusion and exclusion, respectively) instead. - 00.09.01: - Implemented the rc-file stuff. - 00.08.31: - Added the capability of handling files. One can now put all options and patterns into one or more files, and those files can be auto-linked to each other by putting the names of the files to be included into them. Lines beginning with '#' are treated as comments, and are ignored. Overriding is done through the position at the command- line; If you put an inclusive pattern into a file, calls that file, and *after* you use an exclusive pattern that avoids the previous inclusion, the latter one wins. And vice-versa. That must particularly be looked after when using the new options ``clear'', ``clearexc'' and ``clearinc''. They will empty up entire lists when called. - Lots of major/minor changes. - 00.08.30: - Changed the way the patterns are checked against the files. Now they are checked against the filenames without $basedir. - 00.08.28: - Fixed the bug of same entries being added multiple times due to similar inclusion patterns. - Some changes in the code for finding the player. - Minor changes. - 00.08.18: - Short options found buggy before, fixed. Changed short options with 1 char to 2 chars (ie, ``v'' => ``ve''). - Avoided the use of $PATH (well-known potentially evil environment variable) for locating the player executable.