2026-10-21  Michael Herstine  <sp1ff@pobox.com>

	Cutting release 0.7.3

	Updating NEWS ahead of merge

	Autotools update.
	Autotools updated several macro files; also a `po/` directory started
	to appear-- I'm having git ignore it, and remove it on distclean.

	Add the UFID frame to the Scheme interface.
	This patch adds the UFI/UFID frame to `scribbu.scm`, along with
	support in `scheme-serde.cc`. A simple unit test is supplied.

2026-03-05  Michael Herstine  <sp1ff@pobox.com>

	Fix the release workflow

	Cut release 0.7.2
	    - fix issue #9
	    - Update the version
	    - Update boilerplate throughout
	    - Get the release workflow ready

	Fix CI.
	    - Forgot to add fm.mp3
	    - Upgrade to ubuntu-latest
	    - Add dump.golden.fm.json
	    - Updated m4 files; got admin/dev-test working

2026-03-05  Michael Herstine  <sp1ff@pobox.com>

	Ensure that the PCNT counter is at least four octets.
	The PCNT frame _was_ writing only as many octets as needed to
	hold the count (i.e. one byte for a count of 0-255, two for counts
	256-65535, and so on). However, the Rust Symphonia library caught
	the fact that the ID3v2 spec dictates that "The counter must be
	at least 32-bits long to begin with."

	Close issue #9.

2026-03-05  Michael Herstine  <sp1ff@pobox.com>

	Fix a JSON bug.
	To be honest, these code changes languished in a dirty repo,
	and I've forgotten exactly what the issue was. However, I've
	been running this patched build locally for some time, so I
	suspect it has something to do with JSON output for `tune-truffle`.

2026-02-22  Michael  <sp1ff@pobox.com>

	Merge pull request #8 from sp1ff/dependabot/github_actions/dot-github/workflows/actions/download-artifact-4.1.7
	Bump actions/download-artifact from 1 to 4.1.7 in /.github/workflows

2026-02-22  dependabot[bot]  <49699333+dependabot[bot]@users.noreply.github.com>

	Bump actions/download-artifact from 1 to 4.1.7 in /.github/workflows
	Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 1 to 4.1.7.
	- [Release notes](https://github.com/actions/download-artifact/releases)
	- [Commits](https://github.com/actions/download-artifact/compare/v1...v4.1.7)

	---
	updated-dependencies:
	- dependency-name: actions/download-artifact
	  dependency-type: direct:production
	...

2025-02-01  Michael Herstine  <sp1ff@pobox.com>

	Add a new dump format: JSON.
	This patch will add a new format to the `scribbu dump` command:
	JSON. It contains the new pretty-printer itself, updates the "dump"
	sub-command, and adds a few tests.

2025-01-27  Michael Herstine  <sp1ff@pobox.com>

	Remove the bzip2 distribution

	Remove Vagrantfile

2025-01-25  Michael Herstine  <sp1ff@pobox.com>

	Seek for next mp3 sync point when computing duration.
	`get_mp3_duration` assumed that the first mp3 sync point occurred
	directly after the last ID3v2 tag, which is not necessarily the case.
	This patch will seek from that point to the first mp3 sync.

	Also, update the boost download locations. The boost tarballs are
	now hosted at SourceForge.

2024-10-10  Michael Herstine  <sp1ff@pobox.com>

	Fix release workflow

2024-10-09  Michael Herstine  <sp1ff@pobox.com>

	Cut release 0.7.1; fix CI.

	Fix a build error in winamp-genres.cc.
	...by explicitly including `<algorithm>`.

2024-02-03  Michael Herstine  <sp1ff@pobox.com>

	Make pre-release updates.
	This patch updates boilerplate throughout, updates the version
	number, and so forth.

2024-02-02  Michael Herstine  <sp1ff@pobox.com>

	pretty-print frames

2024-01-31  Michael Herstine  <sp1ff@pobox.com>

	Commenting-out flakey test failing on MacOS

2024-01-28  Michael Herstine  <sp1ff@pobox.com>

	Update class `comments` to be mutable.

2024-01-27  Michael Herstine  <sp1ff@pobox.com>

	Update scribbu in multiple ways.
	This commit has regrettably grown:

	   - added the `-e` flag to the `scribbu m3u` docs
	   - updated the scribbu manual generally, especially
	     the section on scriptiong
	   - updated the default pretty-printer to display comment language
	   - replaced `pop-frame` with `popm-frame` in module `(scribbu)`

2024-01-13  Michael Herstine  <sp1ff@pobox.com>

	Moved from c++ 17 to c++ 20; fix CI.

2024-01-10  Michael Herstine  <sp1ff@pobox.com>

	Correct docs; remove commented-out code

	Cleaned-up compilation warnings

	Pretty-print <id3v{1,2}-tag}

	Fix the "delete" function in `scribbu text`.
	This patch will fix a bug in the `-d` flag to `scribbu text`,
	which is supposed to delete text frames. Previously, although
	the code would erase the given frame from all lookup tables,
	it would neglect to actually delete the frame from the
	vector of frames in each tag type. This commit fixes that.

2024-01-04  Michael Herstine  <sp1ff@pobox.com>

	Cherry-picking a commit to fix CI.

2023-12-26  Michael Herstine  <sp1ff@pobox.com>

	Introduce PRIV & PRIV_2_4 frames.
	This commit introduces ID3v2.3 & v2.4 models for the "PRIV" frame
	as well as updates all pretty-printers for their display.

2023-12-22  Michael Herstine  <sp1ff@pobox.com>

	Improve both the `m3u` sub-command and the Scheme interface.
	This patch is an accumulation of a few things:

	    - change the `m3u` sub-command to make progress on character
	      encoding failures
	    - add a new `m3u` option to help userse control character
	      encoding conversions
	    - add a check in the Scheme interface (alright-- this was
	      laying around in my local repo & I'm now picking it up)

2023-09-17  Michael Herstine  <michael@lithic>

	Place scribbu types & functions in module `(scribbu)`, even when defined in C.
	This commit will place the snarfed functions provided by
	libscribbu.so into module `(scribbu)` and updates
	`scribbu.scm` to load the extension.

	This commit also changes the linking between `scribbu` and
	`libscribbu`.

	I have squashed a number of commits on master-- this is generally
	not a good idea, since I'm re-writing git history on a published
	branch. That said, this project is obscure enough that I very much
	doubt I'm inconveniencing anyone.

2023-07-03  Michael Herstine  <sp1ff@pobox.com>

	Fix several bugs in `write_id3v1_tag`.
	Adds a GOOPS type check ensuring the argument is truly an
	`<id3v1-tag>` instance.

	Stops calling `scm_null_p()` in favor of `scm_is_null()` which
	returns an int.

	Changed `emplace_strategy::reduce_padding_evently` to
	`only_with_full_padding`. While not strictly a bug, this results
	in more intuitive behavior for Scheme callers.

	Finally, update the "Continuous Integration" workflow. I think I've
	uncovered the correct `brew` incantations: the problem is they
	keep exiting with non-zero status. The suggestion here:
	<https://github.com/orgs/Homebrew/discussions/4612#discussioncomment-6339258>
	is to simply ignore the errors. This allows the job to complete
	succesfully, but I can't shake the feeling I'm going to be back
	here in a few days fixing the workflow *again*.

2023-06-28  Michael Herstine  <sp1ff@pobox.com>

	Substantially improve the CI job, tidy the repo & fix two bugs
	This commit will complete the CI Github Action by completing the
	testing portion (i.e. running `make check` and `make distcheck`),
	including certain lints that today I do by hand, and setting it to run
	nightly.

	Update a few `.gitignore`-s. Fix a typo. Update something in the
	`macros` directory (which I don't understand).

	Stop the `split` & `report` sub-commands parsing all SCRIBBU env vars

	`boost::program_options::parse_environment()`, invoked with just
	a prefix (such as "SCRIBBU") will examine _all_ env vars beginning
	with that prefix. If any are found, and can't be interpreted as
	command-line options, it will fail (with an inscrutable error message).

	This commit brings these two commands in line with the rest in that
	they either don't examine the environment at all, or they only
	look for environment variables that map to valid command-line options.

2022-12-31  Michael Herstine  <sp1ff@pobox.com>

	Fixing release workflow

	Updated boilerplate for 0.6.23

	Updated version in .

	Merge branch 'fix-issue-7'

2022-12-31  Michael Herstine  <sp1ff@pobox.com>

	Fixed the same bug in `play_count::reset_counter()`.
	Removed test workflow since I got it working on ci.yml

	This time, really closes #7.

2022-12-30  Michael Herstine  <sp1ff@pobox.com>

	Removed test workflow since I got it working on ci.yml

2022-12-30  Michael Herstine  <sp1ff@pobox.com>

	Fix a bug in `popularimeter::reset_counter()` where any argument greater than 255 would result in an infinite loops that would eventually exhaust memory.
	Also commiting some changes to the packaging scripts that were
	made while releasing 0.6.22.

	Also committing some updates to the Github Workflows attempting
	to set the locale (to enable running the unit tests as part
	of CI).

	Closes #7.

2022-12-05  Michael Herstine  <sp1ff@pobox.com>

	Fix release workflow

	Fix release workflow

2022-12-04  Michael Herstine  <sp1ff@pobox.com>

	Fixing the release workflow... sigh.

	scribbu release 0.6.22.
	Updating boilerplate prior to releasing 0.6.22.

2022-12-04  Michael Herstine  <sp1ff@pobox.com>

	Remove boost::filesystem in favor of std::filesystem.
	It turns-out that boost 1.74 introduced a bug in the
	`filesystem` library method `copy_file()`
	<https://github.com/boostorg/filesystem/issues/254>
	that threw an `EXDEV` when *copying* across filesystems.
	This was fixed in 1.77
	<https://www.boost.org/users/history/version_1_77_0.html>,
	but the Debian repos are back at 1.74
	<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1017558>

	This is really disappointing; renaming will generally fail across
	filesystems, to which the standard response is to copy & then remove
	the original. This would have broken a lot of code.

	Experimenting showed that `std::filesystem` did *not* suffer from this
	bug, so I replaced the boost implementation with the std version
	throughout.

	Also updated `ci.yml`.

2022-11-25  Michael Herstine  <sp1ff@pobox.com>

	Fix SIGSTKSZ.
	Beginning with glibc 2.4, the constant SIGSTKSZ is no longer a
	constant. Update `main()` to malloc the signal handler stack rather
	than allocating it on the stack.

2021-12-18  Michael Herstine  <sp1ff@pobox.com>

	Hygiene commit.
	    - moved to boost 1.63 as the minimum version
	    - added a .zstd distribution
	    - added a category to the Texinfo `dir` entry
	    - updated the guile macro to work with version-suffixed installs

2021-07-19  Michael Herstine  <sp1ff@pobox.com>

	This commit normalizes assorted creation flags (for both frames and tags) among the sub-commands `xtag`, `genre`, `popm` and `text`.
	It also extends the last to operate on ID3v1 tags, if they're
	present and the frames being updated map naturally to an ID3v1
	field.

	It fixes a bug in my implementation of Damerau-Levenshtein
	distance; which see
	<https://github.com/sp1ff/damerau-levenshtein/issues/2>.

	Finally, there were a number of places in which the address
	of a vector's elements was passed as `&(vec[0])` without
	checking that `vec` was non-empty. In every case, that address
	was passed along with the size (e.g. `foo(&(vec[0]), vec.size())`)
	and so taking the address of the "first" element of an empty
	vector was generally harmless. That said, "Accessing a nonexistent
	element through [operator[]] is undefined behavior." per
	<https://en.cppreference.com/w/cpp/container/vector/operator_at>.

	The most recent implementation of the Standard C++ Library on my
	Arch image, however, includes an assertion that the passed index
	is legit in `operator[]`, which broke quite a few unit tests. To
	repair them, I wrapped all such invocations with a check that the
	vector is non-empty.

2021-07-05  Michael Herstine  <sp1ff@pobox.com>

	Unsynchronisation improvements.
	This comment addresses a lingering issue with unsynchronisation:
	when the last frame in an ID3v2.{3,4} tag ends in 0xff, and there
	is no padding, that should be treated as a false sync.

	The last of the "TODO"-s have been removed from the codebase, as well.

2021-05-21  Michael Herstine  <sp1ff@pobox.com>

	Fixing the Arch package build script.

2021-05-15  Michael Herstine  <sp1ff@pobox.com>

	Fixing release workflow

	Fixing ci workflow

2021-05-03  Michael Herstine  <sp1ff@pobox.com>

	Missed the updated changelog in my last commit. Also, boost has moved the locations of their downloads-- updating ci.yml.

2021-05-02  Michael Herstine  <sp1ff@pobox.com>

	Preparing to release 0.6.18.

2021-05-01  Michael Herstine  <sp1ff@pobox.com>

	Improved 'm3u' sub-command, added 'encoding' sub-command.
	This commit cleans-up my duration calculation (I stopped
	using exceptions for control flow). It also added an
	'encodings' sub-command for printing out the text encodings
	scribbu supports.

	It also adds documentation, a new unit test, and cleaned-out
	a few "TODO"s from my source-code comments.

	Finally, the 'report' sub-command will now print better
	error messages on errors.

2021-04-20  Michael Herstine  <sp1ff@pobox.com>

	Adding duration.
	This is a large commit. It adds the 'mp3_audio_frame' class,
	builds on it to compute track duration, and adds a sub-command
	to print M3U entries given files.

	This is the initial commit; I'd like to improve the
	implementation, add more testing, and write documentation.

2021-04-04  Michael Herstine  <sp1ff@pobox.com>

	Hygiene commit.
	This commit:

	    1. improves the error messages when opening files
	    2. updates open_file to reutnr the istream, not a pointer
	       thereto
	    3. adds catch handlers to all my functions exported to Scheme

2021-03-12  Michael Herstine  <sp1ff@pobox.com>

	Packaging commits

	release workflow working

2021-03-11  Michael Herstine  <sp1ff@pobox.com>

	Update boilerplate throughout.

	Adding a release Github workflow.
	This commit also adds a few utility scripts under 'admin'.

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Fix the 'ci' workflow.

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Arch package & a bug fix.
	This commit does a few things:

	    1. adds support for building & packaging on Arch
	    2. fixes an Arch-specific build problem by adding <deque> to
	       the includes for src/command-utilities.h
	    3. fixes a nasty bug I finally tracked down in id3v1_tag::set_genre

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Debian packaging commit.
	This commit adds a few "admin" files for building Debian packages
	for scribbu, as well as continuing to clean-up assorted "TODOs"
	in the code.

	Now building on a bare-bones Debian Docker image. Wrapped up a few "TODO" comments in the source.

	This is a hygiene commit. It does a few things:
	    1. pulled the 'ci' workflow from master to 0.6 & augmented it
	       to run "make distcheck"
	    2. moved README.md to README.org
	    3. scripted my macOS builds
	    4. stopped bothering to generate LaTeX docs
	    5. cleaned up a bunch of "TODO" comments in the test suite

	Address issue #5.
	Also, upgrade to Guile 3.0 if it's available.

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Work in progress.
	This commit does the following:

	    1. fixed a bug in 'find_frame' which inverted the "hit" portion
	       of the return value
	    2. added a --get option to the 'genre' sub-command

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Update the 'text' sub-command.
	This commit re-implements the 'text' sub-command in terms of
	'tagset_processor'. In so doing, it opens up the options of
	creating an ID3v2 tag if none exist.

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Improve 'scribbu dump'
	This commit makes the following changes to 'scribbu dump'

	    1. dump the file's mtime
	    2. generates an error message on file-not-found

	It also:

	    - begins stripping track data from test mp3 files
	    - adds a unit test to 'scribbu xtag'

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	BUGFIX: owner was not being written out correctly for `popm'.
	This commit contains a few changes:

	    - a fix to the bug mentioned above
	    - maintenance: renamed autogen.sh, got rid of libtool.m4
	    - fixed a compilation bug on MacOS

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Fixed a SEGV when creating new ID3v2 tags. Repaired the MacOS build.

	Bugfix: handle rename errors when renaming across filestystems.

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Final commit of the `genre' sub-command.
	This commit completes the implementation of the `genre' sub-
	command:

	    1. add'nl tests & fixes for the bugs found therefrom

	    2. moved the `xtag' sub-command over to the tagset_processor
	       framework

	    3. moved the `popm' sub-command over to the tagset_processor
	       framework

2021-03-10  Michael Herstine  <sp1ff@pobox.com>

	Initial commit for the `genre' sub-command.
	This commit adds a new sub-command: `git genre' that allows the
	user to update the "genre" in ID3v1 and/or v2 tags.

	Assorted bug fixes:
	    - https://github.com/sp1ff/scribbu/issues/4: "id3v2_tag text frame
	      virtuals will SEGV if the relevant frame isn't there"

	Initial commit for the 0.6 release; updating package version along with boilerplate throughout.

2020-11-29  Michael Herstine  <sp1ff@pobox.com>

	ci workflow not caching correctly

	Adding a nightly build GitHub Action. Builds on Ubuntu & MacOS against a few versions of boost.

2019-11-06  Michael Herstine  <sp1ff@pobox.com>

	Release 0.5 of scribbu.

2019-11-05  Michael Herstine  <sp1ff@pobox.com>

	This commit makes a few minor changes prior to releasing:
	    1. new verbiage in the Texinfo manual on string character
	       encodings

	    2. replaced `bp.py' with `admin/update-boilerplate'

	    3. minor documentation updates

2019-10-18  Michael Herstine  <sp1ff@pobox.com>

	This commit adds information on how to use libscribbu from C++:
	  1. a new chapter on this in the Texinfo manual

	  2. a sample program

	It also adds a minor test illustrating a shortcoming in the
	convert_encoding API. & addresses a number of little bugs
	in the documentation.

2019-09-27  Michael Herstine  <sp1ff@pobox.com>

	Bug squashing prior to 0.5:
	This commit fixes:

	  1. https://github.com/sp1ff/scribbu/issues/1: `scribbu popm --create' will only create PCNT frames

	  2. https://github.com/sp1ff/scribbu/issues/2: `scribbu' help messages not working consistently

	  3. https://github.com/sp1ff/scribbu/issues/3: add $(datadir)/guile/site to %load-path

	as well as adds the following features:

	  1. list all sub-commands in the `scribbu' usage message

	  2. change the default for `track-no' in `<id3v1-tag>' to '()

	  3. changes to the Winamp scale for mapping stars to POPM ratings (with a flag
	     for switching to a linear scale)

	  4. adds a new sub-command `text' for creating, updating & deleting assorted
	     ID3v2 text frames

	as well as updating the documentation & help handling.

2019-08-18  Michael Herstine  <sp1ff@pobox.com>

	This commit contains the accessioning features.
	It may be squashed into the prior commit at some point.

	This commit:

	    1. Introduces the free functions `maybe_remove_id3v1' and
	       `replace_id3v1' for updating ID3v1 tags

	    2. Introduces the free function `maybe_emplace_tagset' and
	       its downstreams, for working with ID3v2 tagsets.

	    3. Introduces `<id3v1-tag>', my first GOOPS class in the
	       scribbu module, along with foreign functions for serde.

	    4. Introduces `<id3v2-tag>' & its associated frames classes,
	       along with the foreign functions for serde.

	    5. Introduces the {read,write}-tagset methods

	    6. adds the "tag cloud" ID3v2 frame

	    7. adds two new  sub-commands `popm' & `xtag'

2019-01-06  Michael Herstine  <sp1ff@pobox.com>

	Initial commit of accessioning features.
	This commit:

	  0. updates all copyright statements &c for 2019

	  1. updates all code & docs to release 0.5

	  2. brings CSV pretty-printing in line with RFC 4180

	  3. adds TDF and ASCII-delimited text pretty-printing

	  4. adds the filename, directory & size to `report' output

2018-12-28  Michael Herstine  <sp1ff@pobox.com>

	Support scribbu on MacOS.
	scribbu is now buulding on MacOS (Darwin 18.20.0) using clang (i.e.
	the native toolchain; *not* GNU gcc).

2018-12-07  Michael Herstine  <sp1ff@pobox.com>

	Initial commit of scribbu 0.5.
	This commit adds a few minor updates.

2018-04-01  Michael Herstine  <sp1ff@pobox.com>

	Final 0.4 commit on the `find' feature branch.
	This will be the final commit on the `find' feature branch. It
	includes boilerplate updates, updates to NEWS, ChangeLog &c.

	Corrected the behavior of --help on a few sub-commands.

2018-03-28  Michael Herstine  <sp1ff@pobox.com>

	Documentation update.

2018-03-24  Michael Herstine  <sp1ff@pobox.com>

	Scheme support update.
	Cleared out a number of TODOs in scheme.cc; revamped write-tag
	& added replace-tags.

	Also cleared out TODOs in the codebase altogether preparatory
	to merging this branch.

2018-03-17  Michael Herstine  <sp1ff@pobox.com>

	Boilerplate update.
	This commit looks large, but other than whitespace the changes are
	all to comments/boilerplate. My first run of `bp.py' resulted in:

	  - stripping trailing whitespace in all files

	  - adding standard headers to nearly all project files

	  - standardizing the version, author name & e-mail throughout
	    configure.ac, documentation & file headers

2018-03-17  Michael Herstine  <sp1ff@pobox.com>

	Finally split up 'RockTheJoint'.
	I used scribbu to cut up a large file I'd ripped from a stream;
	this involved a number of changes:

	1. adding a few external functions

	2. modifying classes comment & user_defined_text to have ctors
	   for use other than when deserializing

	3. added a unit test for all this new logic

	4. Fixed an error where Guile warning about source being newer
	   than compiled would erroneously cause tests to be marked as
	   failed.

	5. Customized the welcome message when running the REPL.

	6. Standardized boilerplate such as version & license terms.

2018-01-21  Michael Herstine  <sp1ff@pobox.com>

	Documentation updates & minor autoconf changes.
	Moved man pages to `doc' sub-directory; added Info, as well (skeletal).
	Changed the Guile macros I use in `configure.ac' while trying
	(unsuccessfully) to get scribbu to build on MacOS.

2018-01-18  Michael Herstine  <sp1ff@pobox.com>

	Fix parsing ID3v2.4 tags with extended headers.
	Audacity exports tracks with ID3v2.4 tags containing extended
	headers. Since this is the first example I've come across of
	this particular ID3v2 tag, it was the first time I was able to
	exercise that code path in scribbu. Unsurprisingly, there were
	mutliple issues. This commit fixes them.

2018-01-15  Michael Herstine  <sp1ff@pobox.com>

	Improve scribbu documentation preparatory to an update.
	This commit includes several improvements to scribbu's documentation:

	1. man pages for scribbu and all sub-commands

2018-01-01  Michael Herstine  <sp1ff@pobox.com>

	Corrected some assumptions regarding endianness & sizeof(size_t).

2017-12-29  Michael Herstine  <sp1ff@pobox.com>

	`test-cleanup-encoded-by' passing.
	Now scripting scribbu from Scheme to update tags!

2017-12-28  Michael Herstine  <sp1ff@pobox.com>

	Mutability complete.
	Re-implemented serialization. Tests for compression & unsynchronisation
	added. Unit tests passing. `make distcheck' passes.

2017-12-25  Michael Herstine  <sp1ff@pobox.com>

	Miscellaneous bug fixes.

2017-12-10  Michael Herstine  <sp1ff@pobox.com>

	Yet more ID3v2 mutability.
	This commit completely revamps ID3v2.{2,3,4} size computation,
	serialization & unsynchronisation. Honestly, it's been so long since
	I've committed that I've forgotten everything that went into this
	commit.

	There is more work to be done on adding mutability, but the unit
	test suite, at least, passes.

2017-08-24  Michael Herstine  <sp1ff@pobox.com>

	More ID3v2 mutability.
	This commit completes my first use case for tag mutability-- I can
	now, in Scheme, walk a directory of tagged files, find those with
	an ID3v1 comment of 'Ripped by Winamp...' and update the encoded-by
	ID3v2 frame.

	It is also my first commit integrating Guile into my autotools
	setup.

	There is still more work to be done, esp. in implementing mutability
	in all ID3v2 tags.

2017-08-02  Michael Herstine  <sp1ff@pobox.com>

	Making ID3v2 tags mutable.
	This commit marks the successful completion of what began as an
	experiment to make id3v2_2_tag mutable, primarily through a
	container-liker interface to its frames. I say container-like because
	its mutable iterator dereferences to a proxy object (like bit_vector)
	that can handle assignments & moves while keeping the tag's ancillary
	datastructures consistent.

	After this commit, I will merge this branch back into the 'find'
	feature branch, extend mutability to the other tags & resume implementing
	Scheme support for editing tags.

2017-07-22  Michael Herstine  <sp1ff@pobox.com>

	Mutable tags work-in-progress.
	This is an intermediate check-in for my work on making ID3v2 tags
	mutable. It contains:

	    1. A first, very crude implementation of mutable iterators for
		   ID3v2.2 tags

	    2. Skeletal implementations for new size(), needs_unsync() &
		   serialization support.

	    3. Working unit tests.

2017-07-04  Michael Herstine  <sp1ff@pobox.com>

	First implementations of foreign types & functions.
	This commit contains my first, tentative, foreign functions & types
	in Guile. I'm committing preparatory to pulling an experimental branch
	for modifying tags (as opposed from simply reading them, as scribbu
	has done until now).

2017-06-10  Michael Herstine  <sp1ff@pobox.com>

	Integrated with Guile.
	This commit integrates Guile into scribbu. Running just 'scribbu'
	will start up the Scheme interpreter. 'scribbu -e' & 'scribbu -f'
	invokes stub functions.

2017-06-08  Michael Herstine  <sp1ff@pobox.com>

	Update compiler & Vagrant box.
	This commit upgrades the Vagrant box to Ubuntu 16, g++ to
	version 6, and boost to version 1.61. This involved a lot of
	code tweaks, especially around operator<< & operator>>.

2017-06-07  Michael Herstine  <sp1ff@pobox.com>

	Minor housekeeping.
	Moved README :=> README.md, added autogen.sh.

2017-06-02  Michael Herstine  <sp1ff@pobox.com>

	Pre-merge commit.
	Updated README, NEWS & ChangeLog. Turned off automatic core dumps.
	Ready to merge.

2017-06-01  Michael Herstine  <sp1ff@pobox.com>

	Doc updates.
	(Very) minor updates to scribbu documentation.

2017-05-29  Michael Herstine  <sp1ff@pobox.com>

	More testing...
	This commit adds more unit tests; especially some lifted
	from the taglib test suite.

2017-05-27  Michael Herstine  <sp1ff@pobox.com>

	Added unit tests.
	Small commit adding a few more unit tests.

2017-05-26  Michael Herstine  <sp1ff@pobox.com>

	Continued test improvement.
	Added tests, fixed:

	    1. multiple ID3v2 tags in a file
	    2. corrupt/incorrectly written ID3v2 tag
	    3. multiple bugs in the 'dump' sub-command
	    4. POPM bug-- had ID PCNT

2017-05-24  Michael Herstine  <sp1ff@pobox.com>

	More code cleanup.
	This commit does two things:

	    1. Cleared up most of the TODO comments (exceptions & test-
	       related stuff excepted)
	    2. Fixed bugs in reading track data & ID3v1 tags where the
	       stream state wasn't being checked.

2017-05-23  sp1ff  <sp1ff@pobox.com>

	Ongoing improvements to the 'dump' branch.
	This commit does a few things:

	    1. Improves the 'dump' sub-command to handle directory trees

	    2. Fixes a few bugs I found trying to dump my entire .mp3 collection

	    3. Finished implementing the pretty printer

	    4. Cleaned up a slew of "TODO" comments throughout the codebase

	Unfortunately, I'm on battery in a plane over the middle of the Pacific
	ocean right now, so I'm committing without going through my entire
	C/L. Specifically, I didn't run 'make distcheck' & I didn't generate
	docs (I *did* run 'make check').

2017-05-21  sp1ff  <sp1ff@pobox.com>

	Fixed a few bugs & added doxygen.
	This commit fixes a few bugs that came up:

	    1. Permitted multiple copies of text frames in ID3v2 tags

	    2. Trimmed trailing spaces in convert_encoding

	It also adds doxygen support to my autotools configuration.

2017-05-19  sp1ff  <sp1ff@pobox.com>

	Committing the 'dump' sub-command.
	This commit adds the 'dump' sub-command, which turned out to be
	considerably more complex than I'd anticipated. There are still a
	lot of "TODO" comments in the code, and the code base needs to be
	more thoroughly tested overall.

2017-04-16  Michael Herstine  <sp1ff@pobox.com>

	Tweak the sub-command structure & get 'distcheck' working.
	This commit does two things:

	1. Replaced the 'command' enum with a static auto-register approach,
	which allowed me to remove some code.

	2. Got "make distcheck" working; I had to:

	  a) use BUILT_SOURCES to tell automake that the lexer header file
	     was required & tell it how to make it
	  b) include all my test data in the distribution tarball
	  c) rename several files therein to remove spaces, which automake
	     can't handle

2016-06-12  Michael Herstine  <mgh@Saramac.local>

	Merge branch 'master' of github.com:sp1ff/scribbu
	Initial fetch of project prior to my initial push.

	Initial commit

2016-03-07  sp1ff  <sp1ff@pobox.com>

	Initial commit
