lltag (0.14.5) * When renaming, use tags even if their name is not upper-case as usual (reported by Mathieu Roy in Debian bug #666677). -- Brice Goglin <> Tue, 02 Aug 2016 22:15:00 +0100 lltag (0.14.4) * Fix a typo in usage (reported by Jonas Kölker in Gna! bug #17836). * Fix miscellaneous typos everywhere, reported by Debian's lintian. -- Brice Goglin <> Tue, 02 Aug 2011 13:32:00 +0100 lltag (0.14.3) * Add -T and --preserve-time, and the preserve_time configuration file option, to preserve file modification time during tagging (requested by Adam Rosi-Kessel in Gna! bug #12367). * Do not try to display binary data tags such as cover front picture (requested by Alexandre Buisse). * Do not try to initialize readline in non-interactive environment, only fail if readline is actually needed. Thanks Miroslaw Zalewski in Debian bug #558831. * Do not apply colors or bold/underline formatting to output messages in non-interactive environment. * Try command-line given user formats (with -F) before those given in the config file (with 'format = ...'). * Add %n) %a - %t to the internal format database. * Add --id3v2, synonym for --mp3v2 (requested by Alexandre Buisse). * Display basename parsers both with and without path parsers when listing internal parsers. * Display the usage when there is nothing to do (requested by Alexandre Buisse). * Fix the case of some options in the manpage. -- Brice Goglin <> Sun, 21 Mar 2010 00:06:00 +0100 lltag (0.14.2) * Merge the whole concept of default and additional values into "explicit tag values" which may be set with either -a, -A, -t, -n, -d, -g and -c or the generic --tag command line option. The default_* configuration options are removed. Based on complaints from Alexandre Buisse and Olivier Schwander. + Fix the way they are exported in the config file. * Replace slashes with dashes before renaming (reported by Mark McEver in Gna! bug #10127). + Add --rename-slash to change dash into any other string. * Fix track numbers into actual numbers (without track total). -- Brice Goglin <> Sun, 16 Dec 2007 12:27:00 +0200 lltag (0.14.1) * Make sure the last character of user-provided format is correctly escaped (reported by Benjamin Saunders). * Keep CDDB tags in UTF-8 when using a UTF-8 locale (reported by Tino Keitel in Debian bug #418951). * Set verbose level to 0 by default so that menu usage information is not displayed unless the user explicitly request it, either by passing -v on the command, or by typing 'h' in a menu (requested by Alexandre Buisse). + Fix documentation about verbosity levels in the manpages. * Fix typo in lltag.1 (reported by Georg Neis in Debian bug #438795). * Fix typo in lltag_config.5 (reported by Emmanuel Jeandel). -- Brice Goglin <> Sat, 22 Sep 2007 11:25:00 +0200 lltag (0.14) * Add an optional ID3v2 tag support for MP3 files using MP3::Tag (requested by lots of people), enabled with --mp3v2 for now. + Add --mp3read option to specify whether ID3v1 and v2 should be read, and in which order (default is 21). * Large rework of the core loop: + Display existing tags with the new ones to be set. + Add O to display existing tags, R to revert to them, Z to reset to no tags at all, and n to skip tagging and jump to renaming. + Also try internal parsers when parsing from the main menu even if -G was not given on the command line. + Support renaming from existing tags without any need to parse and/or reapply tags when --rename and --no-tagging are passed with nothing else (requested by Alexandre Buisse). + Make sure guessing is enabled as default only when there is really nothing else to do. + Make sure we apply additional values to new tags before merging and defaults at the very end, so that --clear and --append are correctly processed. * Tag edition improvements: + Support edition of existing tags and tags with multiple values. + Support edition of all CD tags returned by CDDB. + Add -E/--edit (and edit option in the configuration file) to edit tags immediately. * Make the old MP3 backend more safe: + Check genre and tracknumbers and ignore invalid values to avoid mp3info failures. + Add warnings about multiple values and special tags that are not supported. * Add -q/--quiet to reduce verbosity, useful to disable displaying of menu usage when a menu appears for the first time (requested by Alexandre Buisse). + The verbose option in the config file is now a verbose level, with its default being 1. * Miscellaneous fixes: + Support removing of all tags. + Handle Ctrl-d in interactive menus and make it cancel the current operation without quitting, as opposed to Ctrl-c (requested by Alexandre Buisse). + Uniformize the letter to enter to view current values (changed 'v' into 'V' in the CDDB menus). * Documentation updates and fixes: + Add an EXAMPLES section at the end of the lltag.1 manpage (requested by Stefano Sabatini in Debian bug #406213) and also insert more basic command lines in the howto.html documentation. + Explain the difference between default and additional values in the howto. + Explain how the strategies are used, how new tags are generated and applied, in the DESCRIPTION section of lltag.1. + Have the lltag_config.5 manpage also point to the config template file provided in the documentation directory. * Lots of other minor fixes. -- Brice Goglin <> Mon, 09 Apr 2007 11:22:00 +0200 lltag (0.13.1) * Multiple fixes regarding parsing: + Try to apply internal parsers immediately after reading the formats file and catch error gracefully instead of dying later horribly. + Catch errors gracefully when actually parsing filenames too. + Report the beginning line (instead of a later one) in the formats file when meeting an invalid parser. + Check that the formats given either with -F or in the formats file have correct number of fields to match, and that we actually get the same number of fields after matching. + Escape []() correctly in internal parsers (reported by David Mohr). + Print the regexp when listing internal parsers in verbose mode (requested by David Mohr). + Improve documentation about the impact of --spaces on internal parsers. + Add 2 new internal formats ("%a/%A [%d]" and "%a/%A (%d)") by David Mohr. * Multiple cleanup in the documentation: + Install the config file in the doc/ directory instead of /etc/lltag/ since it only contains documentation, no actual configuration. + Move configuration option documentation into the new lltag_config.5 manpage, and the documentation of internal formats database file in lltag_formats.5. + Add install-man, uninstall-man, install-doc and uninstall-doc targets in the Makefile to install manpages and documentation on demand. + Some fixes in the manpage. * Hack the parameters that are passed during Perl modules installation to deal with MakeMaker not using PREFIX in the common way. Without this change, setting PREFIX=/usr/local on the make install command line was installing in /usr/local/local/perl (reported by David Mohr). -- Brice Goglin <> Fri, 01 Dec 2006 18:22:00 +0100 lltag (0.13) * Fix CDDB, was broken since the HTTP search interface of freedb.org is unavailable for now (closes Hamish Moffatt's Debian bug #397626). + CDDB now uses TrackType.org instead of freedb.org. - Reorganize the CDDB code to make it easy to use other online CDDB site, using kind of a backend interface. + Rewrite HTTP requests using libwww-perl. + Drop --cddb-proxy and use the HTTP_PROXY variable in the environment (set it to something like "http://my.proxy.com"). + libwww-perl (LWP) is now recommended since required for CDDB access. * Several important fixes regarding internal tag management: + --clear, --append, additional tags (passed with --tag) + Handling of multiple values for the same tag. - When tags have multiple value, do not keep the same value twice. * Improve manpage and documentation: + Add "files..." to the synopsis in the manpage since lltag only operates on files that are given on the command line (not on the whole directory) and add a message in verbose mode when no files are given (reported by Hamish Moffatt in Debian bug #397627). + Add the configuration file option name near the corresponding command line option in the manpage. + Add a note, near -g, about the fact that the genre string might have to match within a list of specified genres. + Add missing options in the comments in the config file. + Improve requirements in the README. + Main description at the beginning of the manpage. + Various fixes in the manpage. * --nopath (i.e. -p) is now --no-path (and no_path in the config file). * When --tag is passed, disable -G by default. * Change the internal backend API to manipulate hash of values instead of talking to external programs, to help upcoming backends. - Conversion from hash to external programs (command line and output stream) is moved to new helper functions for backends that need them. -- Brice Goglin <> Thu, 16 Nov 2006 22:53:00 +0100 lltag (0.12.2) * Fix %i processing (was broken since 0.12). * Fix regexp application. * Update the How-to about automatic CDDB and --cddb-query. * Improve error messaging. * Improve messaging in automatic mode. * Cleanup Perl regexps. -- Brice Goglin <> Mon, 23 Oct 2006 13:38:00 +0200 lltag (0.12.1) * Improve automatization of CDDB: + Add --cddb-query to search in CDDB automatically from the command-line with either keywords or category/id. + Add 'a' and ' a' to switch to automatic CDDB mode while interactively choosing a track in a CD. + Fix automization of CDDB with --yes. * When using 'a' to switch to automatic mode, only change the mode for the local menu (i.e. automatic parsing does not make automatic tagging or CDDB usage). * If CDDB query by keywords finds nothing, go back to keywords query instead of asking the user to choose in the (empty) list. * Add %F, %E and %P to be replaced by original basename, extension and path of the file when renaming. * Add --type to make file type selection more flexible. * Use DELETE or to erase a tag when editing. * Add a easy-to-use backend interface to help adding support for other file types. + Backend information (registrations and failures) are displayed in verbose mode -v). * Fix Perl modularization, no need to use Exporter module since we access modular functions by prefixing with the module name. * Improve some messages. -- Brice Goglin <> Tue, 03 Oct 2006 16:22:00 +0200 lltag (0.12) * Add CDDB support with -C or --cddb (or C in the main menu): + Search CD ids by keywords, with ability to choose categories and fields to look in. + Lookup a CD by giving its category and CD id directly. + Keep the previous CD contents in memory so that the next track might be tagged immediately. + Edit CDDB common tags before extracting a track from a CD. + Configurable HTTP CDDB server and proxy. * Rework interactive menus to integrate CDDB better: + Add a main menu from where CDDB, parsing and editing is called. + Use 'q' to leave submenus (parsing, CDDB, renaming and editing). + Use 'q' instead of 's' to skip a file from the main menu. + Use 'y' to exit editing after save the changes. + Add 'Q' to exit completely. + Do not match user replies case-insensitively. + Large rework of the manpage to document the new menus. * Some new entries in the How-To. * Do not write guess option in the generated configuration file unless explicitely asked by the user. * Add a doc/ subdirectory: + The How-To is now also included in the tarball. * Perl modularization. * Add the date to the program name when compiling it from SVN. -- Brice Goglin <> Tue, 19 Sep 2006 21:34:00 -0400 lltag (0.11) * Always read existing tags first, allowing to: + Rename using existing tags when the old filename is useless (requested by Fabien Wernli). In case of multiple occurence of a tag, the first one is used. + Suppport replacing, clearing, and appending well for all types: - Replacing is now the default for all types. - Appending is useless for mp3 since only one occurence (the first one) may be stored in the file. - Remove the CLEARING, REPLACING OR APPENDING manpage section. * Add --tag for additional tags, and warn when not storable in in mp3 files. * Now use %d, -d and DATE instead of %y, -y and YEAR since ogg/flac tags are dates. * Use %i instead of %d to ignore some text when matching. * Fix 'u' confirmation to try the current parser first for next files (was broken since 0.10). * 'basename' is now used instead of 'filename' for 'type' in the format file, 'filename' is still supported for now. * Do not rename if the new name already exists. * Fix reading/tagging the date of ogg/flac files. * Use all-capitals tag names to match ogg/flac. + default_ option is still supported in the config for now. * The indices in the format file may now be full field names instead of letters. * Print the default letter in <> instead of capital when confirming/editing. * Add EDITING TAGS in the manpage. * Add configuration options for the config file in the manpage. * Fix quoting of the command-line in --dry-run. * Large rework of the internal structures. * Major cleanup of the manpage. -- Brice Goglin <> Sat, 19 Mar 2006 23:56:00 -0500 lltag (0.10) * Use Readline library to make tag editing easier if the installed readline library is smart, with inline edition of existing tags and history of last entered values. * Added -S ans --show-tags to only show file tags instead of tagging (requested by Stephane Gimenez in Gna! bug #4601). * Add --regexp and --rename-regexp for basic regexp-replacing in tags (requested by Jonathan Worth Washington, Gna! bug #4604). * When renaming with a undefined track number, initialize it to 0. * When renaming with a track number, make it at least 2 digits (reported by Emmanuel Jeandel). * Always write renaming configuration options with --gencfg, even if renaming was not enabled. * Cleanup core function names and several messages so that lltag speak about matching instead of tagging. It avoids getting messages about tagging while --no-tagging was passed (requested by Stephane Gimenez). * Use ' instead of # to show spaces between command line argument with --dry-run (requested by Emmanuel Jeandel). * Allow to pass ()[] characters in the matching format without having to escape them. * Allow all %x in the renaming format when x is not a field letter. * Fix where the 'd' field (dummy) is allowed. * Fix the error when no formats file is found. * Fix typos in the manpage (reported by Emmanuel Jeandel). -- Brice Goglin <> Sat, 19 Nov 2005 02:41:00 -0500 lltag (0.9.1) * Large fix of internal database format files processing: + Fix formats file parsing (last format was omitted). + If $HOME/.lltag/formats exists, /etc/lltag/formats is ignored. + Fix documentation. * Add --config, --gencfg and /etc/lltag/config to configure lltag behavior (requested by Stephane Gimenez). * Do not warn when no file is passed. -- Brice Goglin <> Mon, 17 Oct 2005 20:51:00 +0200 lltag (0.9) * Add rename support with --rename (requested by Stephane Gimenez): + Add --rename-min to lowcase tags before renaming. + Add --rename-sep to replace spaces before renaming. + Add --rename-ext to assume the extension in provided in the rename format. + Add --no-tagging to rename file without actually tagging them. * When compiling from SVN, add a +svn suffix to the version. * Reorder usage in a comprehensible way. * Do not be case-sensitive when looking at file extensions to guess their type. -- Brice Goglin <> Sun, 2 Oct 2005 19:06:00 +0200 lltag (0.8) * Add FLAC support (requested by Stephane Gimenez). * Add --maj to upcase first letters in tags (requested by Stephane Gimenez). -- Brice Goglin <> Tue, 27 Sep 2005 23:03:00 +0200 lltag (0.7.2) * Fix compilation and installation when DESTDIR is overridden. * Fix make uninstall. * Add a VERSION file. * Update all contact addresses and URLs since the project is now hosted by Gna!. -- Brice Goglin <> Thu, 22 Sep 2005 10:40:00 +0200 lltag (0.7.1) * Add a warning (with reference to README) when system fails with ENOENT or EPERM. * Cleanup system usage. * Update contact address to gna.org and add it to README. -- Brice Goglin <> Wed, 7 Sep 2005 17:57:18 +0200 lltag (0.7) * Add --clear to force emptying of mp3 tags (default for ogg). * Add --append to force appending of ogg tags (default is overwrite, append is impossible for mp3). * Add a section about clearing, replacing or appending in the manpage. * Add 'comment' tag support (with -c or %c). * Add missing options to the command line in the man page. * Cleanup the way current values are shown, show and . * Accept both CLEAR and when editing fields. * Cleanup system usage when tagging command, get the output and show it in case of error. * Don't add () after sub prototypes. -- Brice Goglin <> Tue, 16 Aug 2005 00:39:18 +0200 lltag (0.6.2) * Fix Debian tarball generation. * Include COPYING and Changes in the tarball. * Add a README. * Document editing in the manpage (CLEAR and ). -- Brice Goglin <> Fri, 12 Aug 2005 22:26:56 +0200 lltag (0.6.1) * Guess by default. * Fix wrong processing of return values when internal ou user parsing loops fail. * Add clean target to the Makefile. * A few typos. -- Brice Goglin <> Sat, 30 Jul 2005 23:24:02 +0200 lltag (0.6) * Allow to edit fields with 'e' during confirmation. * Allow to see what would be done with 'v' during confirmation. * Fix a few missing capitalization. * Print "Nothing to do" when no field has to be tagged. -- Brice Goglin <> Sat, 30 Jul 2005 21:36:27 +0200 lltag (0.5.5) * Allow to pass multiple |-separated chars or strings to --sep. * When a field appears multiple times in the format, lltag does not print all matched values. It checks that they are identical, prints a warning if not, and keeps the first one. * Do not tag when there's nothing to tag (fix bogus mp3info/vorbiscomment invocation). * Add comments at the beginning of formats. * Fix matching in man page. -- Brice Goglin <> Sat, 30 Jul 2005 13:26:54 +0200 lltag (0.5.4) * Allow to only set default values (no user formats given, no guess). * Clean acceptable behavior, especially confirmation possibilities in various cases. -- Brice Goglin <> Mon, 23 May 2005 00:35:26 +0200 lltag (0.5.3) * Fix short and long option processing to set default field values. * Add --list and -L to list internal formats. * Add --version and -V to show version. * Show version in usage. * Automatically set version in the binary during install. -- Brice Goglin <> Thu, 12 May 2005 21:27:15 +0200 lltag (0.5.2) * "" means "yes" when confirming tagging. * Use lltag.in to replace /etc/ directories during install. * Add format file description to the manpage. * Generate Gentoo tarball in the Makefile (thanks to David Baelde for the ebuild). -- Brice Goglin <> Sun, 10 Apr 2005 00:41:08 +0200 lltag (0.5.1) * Fix -G option for directory containing spaces. * Add missing '%a - %A' path format. -- Brice Goglin <> Wed, 30 Mar 2005 23:53:34 +0200 lltag (0.5) * Add /etc/lltag/formats file to store formats. * Move all internal formats to /etc/lltag/formats. * Also read $HOME/.lltag/formats. * Support --spaces option for user-specified formats. * Add confirmation to manpage. * Cleanup a few messages. * Cleanup tag_file return values. * A few other cleanups. -- Brice Goglin <> Sun, 13 Mar 2005 20:24:22 +0100 lltag (0.4.2) * Add -R|--recursive option. * Check that files are really files. * Fix path matching which could lead to parts of the path matched with the filename. -- Brice Goglin <> Mon, 7 Mar 2005 00:00:04 +0100 lltag (0.4.1) * Add manpage. * Add --sep option to ask replacement of a character by a space in tags. * Do not accept multiple spaces by default. * Add --spaces to accept multiple spaces. * Accept spaces limiting path subpart. * Add message when no format was found. * Add the missing --format option equivalent to -F. * Use GetOpt to handle options properly. * Cleanup field showing. * Cleanup internal structure names. -- Brice Goglin <> Sun, 6 Mar 2005 22:15:45 +0100 lltag (0.4) * Support guessing formats with -G. - Internal filename parsers are (with variable whitespaces) "%n - %a - %t", "%n - %t", "%n[.)] %t" "%a - %n - %t", "%a - %t", "%t" - Internal path parsers are (with variable whitespaces and forgotten first directories) "%a/%a - %A", "%a/%A", "%a", "%A" * Add --yes to force tagging without confirmation when guessing. * Add --ask to force confirmation when not guessing. * Add an equivalent long option for each short option. * Support mixing options and files on the command line. * Add verbose message when setting default values. * Show command line in verbose mode even if --dry-run wasn't passed. * Cleanup command line showing. * Cleanup wrong option detection. * Fix format string matching to ensure the whole filename will be used. * Change several ERROR messages into less noisy messages. * Show usage on stdout instead of stderr. * Fix usage. -- Brice Goglin <> Sun, 6 Mar 2005 15:33:42 +0100 lltag (0.3.1) * Add author and homepage to usage. -- Brice Goglin <> Tue, 1 Mar 2005 02:14:44 +0100 lltag (0.3) * Format must now be passed with -F. * Multiple formats are allowed, the first that matches will be used. * Extension is no-longer included in format. * Support both ogg and mp3 tagging. * --ogg and --mp3 options to force tagging instead of by-extension detection. * Detect wrong %x code in format. * Detect and warn about problematic regexps. * Cleanup of messages. * Large cleanup of the code. * Split Debian and upstream changelogs. * Add a Makefile. -- Brice Goglin <> Sun, 27 Feb 2005 11:47:16 +0100 llmp3tag (0.2) * Rewrite parsing of the format to create indexed regexp to fix some issues. * %n now only matches numbers. * Some cleanup in the code. -- Brice Goglin <> Sun, 27 Feb 2005 02:14:50 +0100 llmp3tag (0.1) * Initial release. -- Brice Goglin <> Wed, 15 Dec 2004 19:47:00 +0200