From 96253caf89d2761004e71415d8f3e3485617c984 Mon Sep 17 00:00:00 2001 From: Hugo Villeneuve Date: Tue, 14 Jan 2014 22:53:08 -0500 Subject: [PATCH] ChangeLog is now automatically generated from git log output --- ChangeLog | 1117 --------------------------------- Makefile.am | 13 + autogen.sh | 3 + build-aux/gitlog-to-changelog | 432 +++++++++++++ 4 files changed, 448 insertions(+), 1117 deletions(-) delete mode 100644 ChangeLog create mode 100755 build-aux/gitlog-to-changelog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 88a2ec7..0000000 --- a/ChangeLog +++ /dev/null @@ -1,1117 +0,0 @@ -2005-06-25 Mike Oliphant - - * de.po: updated (Götz Waschk) - * it.po: updated (Ceoldo Costantino) - * fr.po: updated (Eric Lassauge) - * pl_PL.po: added (Piotr Adamocha) - * id3.c: put a zero byte before the id3v1 track number (Vladimir - Petrov) - * discdb.c: string parsing fixes to support i18n (Vladimir Petrov) - * discdb.c: better handling of non-UTF-8 local discdb files - (Vladimir Petrov) - * various: tweaks to filesystem-safe character escaping (Vladimir - Petrov) - * cdplay.c: allow retrieving of non-UTF-8 discdb entries (Vladimir - Petrov) - * discdb.c: fixed a possible buffer overflow crash (Dean Brettle) - * grip.spec.in: added some missing BuildRequires (Stephen - E. Dudek) - * configure.in: upped version to 3.3.1 - - -2005-01-29 Mike Oliphant - - * nl.po: added (Sander Brabander) - * hu.po: added (Ferenc Veres) - * various: notification area support added - (Christian Kirbach, Eoin Coffey) - * grip.spec: fixed email address - * rip.c: better error message if ripping is done with no disc in - the drive (Markus Kaufhold) - * rip.c/cdplay.c/discedit.c/grip.c/gripcfg.c: converted some - warnings to use gnome_app_warning - * various: notification area support added (Eoin Coffey) - * discdb.c: fixed a problem keeping proxy support from working - (Skip Slugger, lucabon) - * discedit.c: do not show the multi-artist UI when no disc is - present (Vladimir Petrov) - * discedit.c: removed stray debugging when editing disc titile - (Julian C. Dunn) - * rip.c: fixed track number being off by one when auto-naming - empty tracks (Vladimir Petrov) - * configure.in: upped version to 3.3.0 - - -2004-04-26 Mike Oliphant - - * cdplay.c: fixed crash when clicking on rip column without a disc - inserted (thanks to Michael Mauch for catching this) - * configure.in: upped version to 3.2.0 - -2004-04-20 Mike Oliphant - - * ja.po: updated (Takeshi Aihana) - * ca.po: updated (Jordi Mallach) - * de.po: updated (Götz Waschk) - * fi.po: updated (Flammie Pirinen) - * it.po: updated (Ceoldo Costantino) - * grip.c/rip.c: additional i18n strings - * status_window.c: made vte terminal accept UTF-8 - * various: copyright updates - * configure.in: upped version to 3.1.10 - -2004-04-02 Mike Oliphant - - * it.po: updated (Ceoldo Costantino) - * ja.po: updated (Takeshi Aihana) - * fi.po: updated (Flammie Pirinen) - * cdplay.c: make length and rip columns size appropriately in - different languages - * cdplay.c: fixed bug in playlist support (Markus Kaufhold) - * discdb.c: fixed a string length calculation (Thomas Zajic) - * discdb.c: removed redundant curl calls (Markus Kaufhold) - * status_window.c: fixed a crash problem in certain locales - (Markus Kaufhold) - * rip.c/launch.c: translate args of launched programs to locale - * grip.c/grip.h/discdb.c/cdplay.c: fixed resizing issues, and now - window sizes and edit/volume/prog status are remembered - * grip.c/gripcfg.c/gripcfg.h/parsecfg.c: save ripper/encoder - configurations individually - * grip.c: added i18n for a few more strings (Jordi Mallach) - * configure.in: upped version to 3.1.9 - -2004-03-27 Mike Oliphant - - * de.po: updated (Götz Waschk) - * discdb.c: fixed a problem causing crashes on disc lookup - * configure.in: upped version to 3.1.8 - -2004-03-22 Mike Oliphant - - * de.po: updated (Götz Waschk) - * bg.po: added (Vladimir "Kaladan" Petkov) - * it.po: updated (Ceoldo Costantino) - * gripcfg.c: added date switch to oggenc config - * main.c: fixed an i18n issue withe --help (thanks to Laurent - Martelli for catching this) - * grip.c: default disc db encoding to UTF-8 instead of locale - * configure.in: upped version to 3.1.7 - -2004-03-11 Mike Oliphant - - * de.po: updated (Götz Waschk) - * it.po: updated (Ceoldo Costantino) - * various: fixed handling of UTF-8 - * cdplay.c: fixed handling of clicks on the tracklist - * grip.c: display an error window if the cd device cannot be opened - * gripcfg.c: added track number and genre switches to oggenc config - * id3.c: added JPop, Anime, and SynthPop genres - * discdb.c/h: don't truncate artist/title to 64 characters - * discdb.c/configure.in: switched from ghttp to libcurl - * configure.in: upped version to 3.1.6 - -2004-03-01 Mike Oliphant - - * de.po: updated (Götz Waschk) - * it.po: updated (Ceoldo Costantino) - * fi.po: updated (Flammie Pirinen) - * fr.po: updated (Eric Lassauge) - * gripcfg.c/gripcfg.h/rip.c/rip.h/grip.c/grip.h: extension is now - determined by the encode preset - * cdplay.c/discdb.c: support for UTF-8 when talking to discdb - servers (thanks to Kevin Dalley for pioneering this) - * grip.c/grip.h: display a warning message when people run a dev - version for the first time - * grip.h/rip.c/cdpar.c/cdpar.h/configure.in: check for cdparanoia - includes in both the root include and the cdda subdir - * configure.in: upped version to 3.1.5 - -2003-12-21 Mike Oliphant - - * ja.po: updated (Takeshi Aihana) - * it.po: updated (Ceoldo Costantino) - * grip.h/grip.c/rip.c/cddev.c: NetBSD support - * cdpar.c: changed cdparanoia include location - * rip.c/cddev.c/cddev.h: close cdrom device before ripping to - avoid conflicts (thanks to John Thacker for tracking this down) - * id3.c/id3.h/gripcfg.c/grip.c/grip.h: made unicode in ID3 tags - optional (it doesn't seem to work properly for id3v2) - * configure.in: upped version to 3.1.4 - -2003-11-03 Mike Oliphant - - * de.po: updated (Götz Waschk) - * po/it.po: updated (Ceoldo Costantino) - * po/fi.po: added (Flammie Pirinen) - * grip.c/cdplay.c: minimized mode works again - * various: more UTF8 fixes (Michael Shigorin) - * configure.in: upped version to 3.1.3 - -2003-10-01 Mike Oliphant - - * various: support for alternate character encodings (Sergey Pinaev) - * po/ru.po: fixes (Michael Shigorin) - * rip.c: fixed a bug with ripping more than one disc (Florian Streck) - * discedit.c: year info now saves correctly (Michael Shigorin) - * grip.c/grip.h/gripcfg.c/rip.c: added delayed encoding option - (Jeff Mahoney) - * configure.in: upped version to 3.1.2 - -2003-07-04 Mike Oliphant - - * rip.c: commented out left-over status window code - * be.po: added (Vital Khilko) - * configure.in: upped version to 3.1.1 - -2003-05-30 Mike Oliphant - - * configure.in: cleaned up - * macros: removed - * status_window.c/h: added new status window code (currently - disabled) - * configure.in/grip.spec.in/Makefile.am: build grip.spec from - grip.spec.in - * various: lots of gnome2 changes (thanks to Jean Charles for - doing an intial port) - * po/it.po: added (Ceoldo Costantino) - * configure.in: upped version to 3.1.0 - -2003-04-22 Mike Oliphant - - * fr.po: updated (Eric Lassauge) - * cdplay.c: make cddb lookups not abortable until it is fixed so - that it works properly - * configure.in/grip.spec: upped version to 3.0.7 - * grip.c: enabled general status window - -2003-02-09 Mike Oliphant - - * discdb.c: include (Ed Goforth) - * ja.po: updated (Takeshi AIHANA) - * doc/C/Makefile.am: install images properly (Todd) - * configure.in/grip.spec: upped version to 3.0.6 - -2003-01-12 Mike Oliphant - - * de.po: updated (Goetz Waschk) - * ja.po: updated (Takeshi AIHANA) - * ru.po: updated (Michael Shigorin) - * discdb.c: work around for bug in libghttp that sends "HTTP/1,1" - instead of "HTTP/1.1" on some systems (Michael Mauch) - * rip.c/grip.c/cdplay.c: use 'ripping_a_disc' instead of 'ripping' - to check if a rip is in progress - * doc/C: updated screenshots - * grip.sgml: updated - * rip.c: only increment num_wavs if we are encoding - * rip.c: don't delete wav file on aborted encode - * configure.in/grip.spec: upped version to 3.0.5 - -2002-12-25 Mike Oliphant - - * zh_CN.po: updated (Merlin Ma) - * fr.po/grip.spec: updated (Eric Lassauge) - * ca.po: updated (Jordi Mallach) - * ru.po: updated (Mishell Baranov) - * rip.c/grip.c/grip.h/gripcfg.c: made stopping the cdrom drive - between ripping tracks optional, and default to not (zongo) - * es.po: got rid of duplicate entries - * grip.c/grip.h/rip.c: added overall progress indicators - (Przemyslaw Kryger) - * grip.c/grip.h/rip.c: added tolerance to avoid getting false - "no disc" readings whe drive is spinngin down from a rip - * cdplay.c: fixed bug preventing auto-rip on a disc that had been - previously inserted - * cdplay.c: scroll mouse no longer selects/unselects track rip - check - * cdplay.c: reset to first track when disc ends - * rip.c: rip entire cd now obeys Rip+Encode vs Rip Only - * configure.in/grip.spec: upped version to 3.0.4 - -2002-09-21 Mike Oliphant - - * id3.c: added some #includes - * de.po: updated (Goetz Waschk) - * grip.sgml: MP3->Encoder, and added new config options - * doc/C: created new screenshots - * README: added pointers to get more help - * configure.in/grip.spec: upped version to 3.0.3 - -2002-09-18 Mike Oliphant - - * ca.po: added (Jordi Mallach) - * ja.po: updated (Takeshi AIHANA) - * README: some additional notes about the configure process - * rip.c: changed '%i' tranlation from %02x to %08x (thanks to Alan - Eldridge for this) - * id3.c: reset files to obey the user's umask after v2 tagging - munges them (thanks to David J. MacKenzie for this) - * grip.c: set poll interval to 15 on freebsd and moved force_scsi - out of the cdparanoia-specific config section (thanks to Alan - Eldridge for this) - * grip.h/grip.c/rip.c/gripcfg.c: added option do delay before - ripping (thanks to Jeremiah Stanley for suggesting this) - * grip.spec: Requires/BuildRequires entries (thanks to Thomas - Vander Stichele for this) - * grip.c/grip.h/main.c: added --config option allowing you to - specify a configuration file to allow for multiple - configurations (thanks to Thomas Vander Stichele for this) - * gripcfg.c/rip.c: changed "mp3" to "encode" to placate ogg - fanatics :-) (thanks to Steve Fox for guilt tripping me by - actually submitting a patch) - * configure.in/grip.spec: upped version to 3.0.2 - -2002-06-17 Mike Oliphant - - * pt_BR.po: added (thanks to Wellington Terumi Uemura for this) - * ru.po: added (thanks to Mishell Baranov for this) - * es.po: added (thanks to Noe Misael Nieto Arroyo for this) - * zh_HK.po, zh_TW.po: added (thanks to Anthony Fok for this) - * doc/C/Makefile.am: made DESTDIR safe (thanks to Alan Eldridge - for this) - * grip.c: fixed an initialization problem (thanks to Alan Eldridge - for this) - * grip.c: improved handling of user/host env variables (thanks to - Charles G Waldman for this) - * grip.c/cdplay.c: added manual disc scan button - * cddev.c: set disc_present in a place where it wasn't - * cdplay.c: better handling of disc present/absent status - * grip.c/gripcfg.c/cdplay.c: make polling for new disc optional - * configure.in/grip.spec: upped version to 3.0.1 - * pixmaps/Makefile.am: include all xpms - -2002-04-13 Mike Oliphant - - * rip.c: some fixes to better follow user's id3 tagging - preferences (thanks to Michael Teague for this) - * id3.c: fix to keep id3lib from writing v1 tags - * configure.in/grip.spec: upped version to 3.0.0 - -2002-04-11 Mike Oliphant - - * ja.po: added (thanks to Takeshi AIHANA for this) - * de.po: updated (thanks to Goetz Waschk for this) - * zh_CN.po: updated (thanks to Merlin Ma for this) - * grip.spec: structural changes an zh_CN translation (thanks to - Merlin Ma for this) - * doc: updated some of the screenshots - * README: some additional info on dependencies - * configure.in/grip.spec: upped version to 2.99.3 - -2002-04-02 Mike Oliphant - - * rip.c: fixed a bug causing access checks to fail - * rip.c: don't throw up "rip whole disc" dialog if ripping fails - * configure.in/grip.spec: upped version to 2.99.2 - -2002-04-01 Mike Oliphant - - * de.po: updated (thanks to Goetz Waschk for this) - * zn_CH.po: added (thanks to Merlin Ma for this) - * configure.in: fail if ghttp is not found - * cdpar.c: removed misleading cdparanoia error message - * rip.c: check if we can write wav/mp3/m3u files before proceeding - * rip.c: put a 'nice' call in ThreadRip so that ripping using - internal cdparanoia can be niced. - * gripcfg.c: updated flac commandline - * configure.in/grip.spec: upped version to 2.99.1 - -2002-03-10 Mike Oliphant - - * de.po: updated (thanks to Goetz Waschk for this) - * doc/C/Makefile.am: now obeys DESTDIR (thanks to Alan Eldridge - for this) - * grip.c/parsecfg.c: throw up a dialog and backup the old grip - config if we are forcing a reconfig - * discdb.c: fixed order of title/artist in TTITLE (thanks to - Martin Michlmayr for catching this) - * configure.in/cppmain.cc/main.c/Makefile.am: make sure we - initialize c++ datastructures (thanks to Alan Eldridge for this) - * discdb.c: changed from "secs" to "seconds" in cddb format - * discdb.c: send DYEAR even if it is blank - * gripcfg.c: added "-b %b" to default ogg cmdline (thanks to Taku - Yasui for this) - * rip.c: fixed floating point exception on alpha systems (thanks - to Taku Yasui for this) - * rip.c: make sure num_wavs cannot go below zero (thanks to - Przemyslaw Kryger for this) - * grip.c/grip.h/cdplay.c: added auto play on insert - * discdb.c: fixed wrapping of DTITLE and TTITLE - * gripcfg.c: fixed a problem that screwed up the ripper config if - cdparanoia was not linked in - * launch.c/launch.h/rip.c/cdplay.c: made munging of strings the - default only when we know a filename is being constructed. added - '!' switch modifier to force munging (thanks to Devin Carraway - for pointing out the problem) - * cddev.c/cddev.h: freebsd compatibility fixes (thanks to Alan - Eldridge for this) - * gripcfg.c: do not reset ripper config if the same ripper is - re-selected (thanks to Alan Eldridge for this) - * main.c/grip.c/grip.h: added 'scsi-device' parameter - * gripcfg.c: move generic scsi config out of the builtin paranoia - section - * rip.c: added the 'C' switch for passing the generic scsi device - * README: updated usage - * grip.sgml: added docs for the new 'C' switch - * gripcfg.c: changed cdda2wav to use 'C', removed unnecessary - '*'s, and got rid of \" escaping in oggenc commandline - * fr.po: updated (thanks to Eric Lassauge for this) - * configure.in: added '-lm' to LIBS to try to work around a - cdparanoi link problem on some platforms - * contrib: added contrib directory - * contrib/write-gronk-discid: added (thanks to Alan Eldridge for - this) - * gripcfg.c/gripcfg.h: use PATH to find executables (thanks to - Alan Eldridge for this) - * configure.in/grip.spec: upped version to 2.99.0 - -2002-02-19 Mike Oliphant - - * various: solaris compile fixes (thanks to Jim Crumley for - pointing out the SOLARIS->__sun__ change) - * rip.c: switched order of statvs vs vfs check (thanks to Jim - Crumley for this) - * grip.sgml: added documentation for the "Proxy" and "Misc" config - tabs - * rip.c: ask if we should rip all tracks if none are selected - (thanks to Przemyslaw Kryger for this) - * main.c: unbuffered debugging (thanks to Alan Eldridge for this) - * grip.spec: added '%defattr(-, root, root)' to make installed - files have the proper ownership (thanks to Thomas Schultz for - this) - * de.po: added (thanks to Goetz Waschk for this) - * configure.in/grip.spec: upped version to 2.98.7 - -2002-02-10 Mike Oliphant - - * gripcfg.c: fixed a bug keeping rip config options from - reflecting whether builin cdparanoia was being used or not - (thanks to Marc Williams for pointing the problem out) - * configure.in: added an option to disable compiling with id3lib - (thanks to Thierry Vignaud for this) - * fr.po: added (thanks to Eric Lassauge for the translation) - * rip.c: move where disc filter was being called (cosmetic, not - functional change) - * parsecfg.c: cast boolean values as gboolean instead of int - (thanks to Didier Malenfant for this) - * configure.in: use '.' instead of 'source' in id3 compile check - for portability (thanks to Alan Eldridge for this) - * cddev.c: fix to data track detection when using cdio.h (thanks - to Alan Eldridge for this) - * rip.c: includes for freebsd to compile (thanks to Alan Eldridge - for this) - * configure.in/grip.spec: upped version to 2.98.6 - -2002-01-26 Mike Oliphant - - * rip.c: fixed a nasty crashing bug related to the disc filter - command (thanks to Goetz Waschk for finding it) - * configure.in/grip.spec: upped version to 2.98.5 - -2002-01-23 Mike Oliphant - - * rip.c/rip.h/gripcfg.c: don't include gain analysis stuff if - cdparanoia is not built in - * configure.in: added an option to disable cdparanoia - * configure.in/grip.spec: upped version to 2.98.4 - -2002-01-22 Mike Oliphant - - * grip.sgml: added more documentation - * various: added replay gain calcultion (thanks to David Robinson - for the algorithm and Glen Sawyer for the code) - * gripcfg.c/grip.c/grip.h/rip.c: added mp3 filter command - * gripcfg.c/grip.c/grip.h/rip.c: added disc filter command and - album replay gain - * README: updated to reflect the new version - * configure.in/grip.spec: upped version to 2.98.3 - -2002-01-17 Mike Oliphant - - * grip.sgml/grip.c: added some more documentation - * configure.in/grip.spec: upped version to 2.98.2 - -2002-01-16 Mike Oliphant - - * grip.spec: added Epoch: 1 to allow upgrading from redhat rpms - (thanks to Tim Powers for this) - * grip.spec: put the Icon back - * configure.in/grip.spec: upped version to 2.98.1 - -2002-01-13 Mike Oliphant - - * discdb.c: don't overwrite with blank genre on lookup - * configure.in: added option to link id3lib statically - * gripcfg.c: gettextized - * cddev.c: gettextized - * cdplay.c: gettextized - * dialog.c: gettextized - * discdb.c: gettextized - * discedit.c: gettextized - * grip.c: gettextized - * id3.c: gettextized - * launch.c: gettextized - * parsecfg.c: gettextized - * rip.c: gettextized - * launch.c: fixed TranslateAndLaunch (cd update program now works) - * launch.c/rip.c/cdplay.c/grip.c: changed how IO redirect works - * rip.c: Added option to kill just the rip process - * configure.in/grip.spec: upped version to 2.98.0 (not 2.9.8 -- to - make it sequence after 2.96 in rpms/debs) - -2002-01-08 Mike Oliphant - - * discedit.c: fixed a crashing problem on track edit focus out - * cdplay.c: reset year, id3, and track title/artist on eject - * rip.c: increased number of args to rip/enc commandlines to 100 - (thanks to David J. MacKenzie for pointing this out) - * discdb.c: changed wrap trigger to 70 chars on submissions - * discedit.c/cdplay.c/rip.c: only do CheckDupNames just before - starting to rip - * grip.h: added '-i' to sendmail commandline - * grip.c/grip.h/gripcfg.c/rip.c/rip.h/cdpar.c: generic SCSI device - is now overridable when using builtin cdparanoia - * grip.c: use gripicon.png as window icon - * configure.in: adding config check for id3lib (thanks to Goetz - Waschk for this) - * various: renamed id3.h grip_id3.h - * grip.c/grip.h/gripcfg.c/rip.c: made id3v2 tagging optional if - id3lib is installed - * discdb.c: added support for multiple exact matches - * discdb.c: changed protocol level to 5 - * discdb.c/id3.c: added grabbing id3 genre from DGENRE - * configure.in: added configure switch for linking static - cdparanoia libs - * doc/C: added some more docs - -2002-01-04 Mike Oliphant - - * discdb.c: fixed a bug that made lookups always genre misc - * cddev.c/h: added IsDataTrack - * cddev.c/rip.c: compensate for gap before data track - * rip.c: don't try to rip data tracks - * rip.c: use 'long long' for filesystem space check - * gripcfg.c: added preset for FLAC - * cdplay.c: fixed a sync problem with multi-artist checkbox - (thanks to Yves Kurz for this) - * discdb.c/h: support discdb revision correctly - * discedit.c: on submission, ask for a DiscDB genre if it is set - to 'unknown' - * cdpar.c: fixed a problem with rip smiles being one off - * rip.c: have 'Disable paranoia' override 'Disable extra paranoia' - * grip.c: switch to %A in defaults - * launch.c: fixed problem with munge carrying over in translate - (thanks to Goetz Waschk for pointing this out) - -2001-12-30 Mike Oliphant - - * rip.c: Made rip/encode progress labels font-sensitive - * grip.c: Made cdrom device configurable in the gui - * rip.c: num_wavs no longer reset when new rip starts - -2001-05-19 Mike Oliphant - - * cdplay.c: left clicking when in the "Rip" column toggles rip - checkmark * cdplay.c/rip.c: got the CD update program working - again - -2001-04-20 Mike Oliphant - - * various: now compiles with/without builtin cdparanoia support - based on the result of the configure checks - * rip.c: converted wav filter cmd to new translation mechanism - * various: switched to gnome input dialogs - * cdplay.c: fixed crash when discdb lookup fails - * various: id3 genres now sorted - * discdb.c: save id3 genre in local discdb entries - * gripcfg.c/grip.c: made proxy user/pswd editable - * rip.c: do not rip or encode unless there is at least 1.5 times - as much space free as is required - * id3.c: added id3v2 support via id3lib (thanks to Waider for - this) -- still need configure code for it, though - * grip.c/discdb.c: changed mkdir mask to 0777 - * discdb.c: increased string data size to 256 - * cdplay.c: zero-pad "Track xx" trackname defaults - -2001-03-18 Mike Oliphant - - * discedit.c/discedit.h: moved disc editing code to new codebase - -2001-03-11 Mike Oliphant - - * rip.c: converted ripping/encoding to new structure - * rip.c/discdb.c: detatched threads (thanks to James LewisMoss for - this) I think this fixes the strange problems with auto-eject - not working when using builtin cdparanoia - * rip.c/gripcfg.c: added configurable id3 comment - -2000-10-18 Mike Oliphant - - * discdb.c/discdb.h: new version of cddb.c - * discdb.c/discdb.h: limit all title/artist info to 80 characters - * cddev.c: reorganized for efficiency. should be fewer stats now - * grip.c: now a gnome app - * main.c: added - * Makefile: removed. now using GNU configure - * discdb.c: now uses libghttp for http requests - * discdb.c: added proxy user authentication support - * grip.c: switched to gnome-moz-remote for opening the Grip - homepage in the user's web browers - -v2.96 -- July 15th, 2001 ------------------------- - - o detach threads (thanks to James LewisMoss for the patch) - o fixed a crashing problem with relative paths (thanks to Antti Siipola) - o fixed problem causing ripping to hang waiting on encoding (thanks to Alan - Eldridge for this) - o fixed problem with mp3 filenames being limited to 80 characters - o fixed crash on failed disc lookup - o changed the cddb revision number to '0' until revisions get implemented - properly - o write multi-artist tracks in artist / title format - o added '.gz' to man entries in the spec file so newer versions of RPM - don't get confused (thanks to John Aldrich for this) - -v2.95 -- October 18th, 2000 ---------------------------- - - o now only one failure dialog if CDDB query fails on both primary and - secondary serverss - o use "../" in relative paths where appropriate (thanks to Jim Crumley for - this) - o switch max path length from 1024 to PATH_MAX - o fixed a typo in passing '%i' on the encode commandline (thanks for Steven - Czerwinski for this) - o added an option to allow 8bit characters in filenames (patch submitted - anonymously) - o added an commandline option to prevent I/O redirection (thanks to an - anonymous patch) - o added additional id3 genres (thanks to Götz Waschk for this) - o added speed indicators to rip/encode status (thanks to Steinar Gunderson - for this) - o fixed a segfault problem with certain cdrom drives (thanks to - M.E. O'Neill for this) - o added preliminary ogg support. lots of people submitted patches. the - one I applied was from Fredrik Vraalsen - -v2.94 -- April 18th, 2000 -------------------------- - - o made cddb lookups more stable (thanks to Michael Bedy for the patch) - o put ID3v1.1 support back in (it got mysteriously dropped from v2.93) - o more freebsd compatibility fixes (thanks to Steven Kehlet and Robert Ray) - -v2.93 -- April 8th, 2000 ------------------------- - - o added ID3v1.1 support - o added FreeBSD support (thanks to Steven Kehlet and Robert Ray) - o Eject after rip should be more reliable now - -v2.92 -- March 4th, 2000 ------------------------- - - o ID3 tagging now done internally - o now one .spec file is used to build both Grip and GCD (thanks to - Christian Holtje for sending this in) - o added gtk_set_locale() for non-english users - o added option to have relative paths in .m3u files - o tracks are now only added to the .m3u file if selected for ripping - o cleaned up filename permissions in distribution - -v2.91 -- December 19th, 1999 ----------------------------- - - o now compiled with cdparanoia 9.7 - o big memory bug in paranoia library fixed (yay! thanks, monty!) - o switched Makefile to link with paranoia library using the new "libxxx" - library names - o playback mode now saved between sessions - o if playlist mode is selected and there are no tracks in the playlist, the - mode switches to normal mode - o track artist is now properly quote-escaped in the ID3 command-line - (thanks to a *bunch* of people for sending this one in) - o added an option to disable underscoring of spaces - o the %i switch now works properly on the encoder commandline - o loop mode now saved - o volume level is now saved - o when editing track titles, hitting return now goes on to the next track - o increased the size of the start/end sector text entry fields - o fixed a minor problem with the installation of the gcd manpage (thanks to - Ryan Cleary for this) - o ripping no longer stops permanently after it gets shut down my max - non-encoded .wavs - -v2.9 -- November 13th, 1999 ---------------------------- - - o fixed keep-alive handling in cddb lookups (no really, this time!) - o disc no longer auto-ejects when it shouldn't - o added an option to disable lowercasing of filenames - o added an option to keep certain characters from being stripped in - filenames - o updated the README file - o Grip is now silent in non-debug mode - -v2.8 -- November 7th, 1999 --------------------------- - - o rewinding past the beginning of a track is now more sensible (thanks to - Daniel Venkitachalam for the patch) - o the UI is now brought up without waiting for the cdrom drive to spin up - o filenames are now always converted to lowercase, with all - non-alphanumeric characters deleted and spaces converted to underscores - o added support for the gogo encoder (asm-accelerated version of LAME) - o overhauled the way input widgets work (lots of effort for no difference - to the end-user, but it was the right thing to do...) - o compiled with cdparanoia 9.6 - o added writing of .m3u files (thanks to Friedemann Baitinger for this) - o got rid of title/time display from rip page - o got rid of outputdir -- rip and mp3 file formats are now fully specified - o keep-alive now skipped somewhat more intelligently - o got rid of grip's .rc file. the current implementation of themes makes it - all but impossible to have application-specific .rc files handled - intelligently - o moved ID3 genre selection - o check mark now shows up on white - o changed all snprintf calls to g_snprintf - -v2.7 -- September 9th, 1999 ---------------------------- - - o fixed a problem that would cause a crash if '-d' was used on the - command-line but no drive was given (thanks to Glenn Golden for pointing - this out) - o added numerous changes to compile under solaris (thanks to David Meleedy - for this) - o added the ability to lowercase % switch fields (thanks to Dan Girellini - for this) - o added "Fast Fusion" ID3 genre (thanks to Jarda Benkovsky and Dima Barsky - for letting me know it was missing - o "keep-alive" line now assumed not to exist when going through a proxy - (hope this is the right thing to do...) - o fixed the default id3 commandline - -v2.6 -- August 27th, 1999 -------------------------- - - o fixed a problem that was keeping uninterrupted play from working when - Grip was exited/reloaded (thanks to Jeremy Buhler for pointing this out) - o added preset for xing encoder (thanks to Aubin Paul and red@chipmusic.nu - for this) - o added a "Host:" bit in the cddb http request (thanks to - casey@seattle.gii.net for this) - o added "faulty eject" option for people with nasty drives (thanks to - Steven James for this suggestion) - o num_wavs no longer set to zero when ripping starts (thanks to Steven - James for this) - o if the file to rip already exists, and is the right size, ripping is - skipped (thanks to Sergio Mones, A.R. Henry and Steven James for all - submitting this) - o fixed a problem that would keep auto-eject from working sometimes (thanks - to Steven James for this) - o added the ability to auto-eject after a delay to make sure it happens on - drives that don't reliably eject while spinning down (thanks to Steven - James for this) - o added %i (cddb discid) switch in id3 commandline (thanks to Sean - Reifschneider for this) - o cddb discid should now work on 64bit systems - o added a Grip man page (thanks to Aaron Sherman for this) - o the builtin cdparanoia no longer enforces user access. if you run Grip as - root, the builtin cdparanoia will now be able to access root-only files - o the loop mode toggle now uses two different bitmaps - o fixed reading of EXTT cddb field (thanks to Michel Verdier for this) - o fixed a problem that was keeping the '-l' option from working (thanks to - Dima Barsky for this) - o http 1.1 is now used for cddb lookups (virtual hosts now supported) - -v2.5 -- July 1st, 1999 ----------------------- - - o fixed a problem that was keeping ripping a new disc while encoding the - previous one from working (thanks to Jonathan Stockley for pointing out - that this wasn't working) - o fixed *another* bug that was preventing ripping a new disc - o partial rip info now insensitive if partial rip not selected - o switched "rip only" and "rip+encode" -- rip+encode is the most used - o bumped the maximum number of CPUs up to 16 to satisfy people who are - ripping CDs on systems they should probably be using for work... - o added option to automatically rip when a disc is inserted and to - automatically eject when ripping finishes (thanks to Sean Reifschneider - for suggesting this and sending in some code) - o added ':' to list of default underscore characters - o removed "save configuration" button -- save is now automatic at exit - o multi-artist splitting can now be done Artist/Title in addition to - Title/Artist - o added an option to "beep" at end of rip - o artist fields are now no longer carried over to an unidentified disc - -v2.4 -- June 21st, 1999 ------------------------ - - o the window now moves if it gets resized off of the screen - o Grip now attempts to unlock the door before ejecting (thanks to Sean - Reifschneider for the patch) - o Grip should now open the tray when you hit eject with no disc in the - drive if you have a decent drive. I don't :-( - o encoding of already ripped tracks now no longer requires the disc to be - in the drive - o error messages now pop up if you try to access the cd while ripping - o program and version names are now correct in GCD's cddb lookup - o got rid of genre directories for local cddb storage (but it will still - search them for backward compatibility - o fixed a bug that could truncate the %A switch in ID3 tagging - o playback now cleanly stopped when ripping starts - o fixed a bug that was causing the %a switch to be wrong in ID3 tagging - o fixed a problem that would set a check after doing a partial rip - o fixed a compile compatibility problem with toggle buttons under older - versions of gtk+ - o fixed problems that would cause ripping and encoding to fail on some - systems (thanks to Ian Soboroff for helping to track this down) - o modified the cdda2wav config and added mp3encode (thanks to Avi Alkalay - for this) - o fixed a problem with the disc not updating when it is switched with - ripping (but not encoding) finished - o critical colors now done internally rather than through a gtkrc - file. this was necessary because themes (brokenly) override application - rc files - o title no longer duplicated as the artist if a song has no artist in multi - o user is now prompted if they try to shut down while ripping/encoding - -v2.3 -- June 14th, 1999 ------------------------ - - o large cddb EXTD and EXTT entries now wrapped properly - o cddb submission not sent if disc or artist field is blank - o fixed '%A' switch - o added a .wav "filter" command that can be run after ripping - o grip and gcd no longer install setuid root. this will make things more - difficult for some users, but is "the right thing to do" - o config file is now ~/.grip instead of /usr/lib/grip/grip.cfg - o added an informative message if the cd device is inaccessible - o fixed up the volume slider so it doesn't encroach on the buttons - o fixed a bug with the artist for the cdupdate program - o added '*' option to skip underscoring of % arguments in file formats - -v2.2 -- June 3rd, 1999 ----------------------- - - o made the progress bars a bit slimmer - o added defaults for common rippers/encoders - o changed track clist selection mode from single to browse - o grip now uses Paranoia directly -- no more running cdparanoia separately! - o added cdparanoia-like "smilies" to indicate rip status - o added builtin paranoia config options - o reorganized the makefile to allow inclusion of cdparanoia to be optional - o reply email address is now configurable (thanks to christian - for the patch) - -v2.1 -- May 31st, 1999 ----------------------- - - o the %a switch in the ID3 command-line now uses the track artist on a - multi-artist cd - o added a %y (year) switch to the ID3 command-line - o cddb genre combo now will not allow the user to entry a genre that isn't - in the list - o cddb submission is now blocked if genre is 'unknown' - o changing the number of cpus now finally works (honest!) -- thanks to Jeff - Dairiki for pointing out that it *still* didn't work in 2.0 - o ~ now supported in filenames - o %g and %G fields now available in file format - o added option to configure encode bitrate and %b switch for mp3 cmdline - o encode progress bar is now 100% accurate if kbit/sec is properly set - o %% now translates as % in switch translation - o added %A switch. this is just like %a, but it stays as the disc artist - even on multi-artist cds - -v2.0 -- May 26th, 1999 ----------------------- - - o fixed a problem with the number of cpu's not getting updated properly - o the cdupdate program is now only called when there is a disc present - (thanks to Simon Rumble for pointing this bug out) - o fixed a problem with the secondary server proxy not being set properly - (thanks to Philippe Raoult for pointing this out) - o added support for multi-artist discs - o added 1 to the track number in the id3 command-line - o clicking on the LCD display now give "super-condensed" mode - o fixed a problem that would keep .wav files from being deleted if the file - was not accessible by root - o year field added to disc information - o extra songs no longer carry over to the next disc - o grip no longer shrinks when volume/track edit are toggled when not - minimized (thanks to Philippe Raoult for the patch) - o proxy yes/no now updated properly (thanks to Alain Schroeder for pointing - the problem out) - o made shrink inhibition when toggling volume/track edit optional - -v1.9 -- April 27th, 1999 ------------------------- - - o added SMP support (thanks to Philippe Raoult for the code) - o play information is now shown in the icon window title (thanks to Martin - Pool for this) - o underscoring of filenames no longer changes the source variables - o disc/track extended information now cleared between discs - o added a config.h option to specify the mail program (thanks to Greg Ward - for this) - o the rip/mp3 file formats can now have path information in them - o added user-agent field to HTTP requests - o switched default ID3 tagger to mp3info - o removed unnecessary malloc-ing in UpdateTracks() - o track length column is now right-justified - o duplicate tracks names now modified to guarantee unique rip names - o fixed a problem looking up discs with a large number of tracks - o added -D_REENTRANT switch to CFLAGS -- this fixes problems with libc5 - o converted the .cfg file to a key-based scheme - o added ability to store song info in an SQL database (currently disabled) - -v1.8 -- April 6th, 1999 ------------------------ - - o the playlist is now updated when the entry loses focus - o switched to a "busy" cursor while play is initiating - o reset playing flag when a disc is ejected - o added a debugging mode - o manual CDDB lookup now prevented if no disc is in the drive - (thanks to Craig Nellist for pointing this out) - o added CREDITS file - o added an options for managing non-interrupted playback when Grip quits, - and a '-' in front of the playback time for "time left" modes - (thanks to Creg Nellist for this code) - o .wav files are now not deleted if the user aborts the rip - (thanks to Sergio Monesi for this) - o clicking on the 'Rip' column title now deselects all tracks if more than - half of them are selected, and selects them all otherwise - o fixed a bug that was causing a cd-detection failure on some systems - o CDDB indicator now updates correctly on a failed query, a flag to - select whether CDDB lookup should happen automatically has been added, - and there is now an option to reshuffle every time playback is started - (thanks to Creg Nellist for these) - o CD-play related options moved to their own tab in the config notebook - o the existence of rip/mp3 programs is now checked before proceeding - o the maximum length of output filenames and rip/mp3/id3 command-lines is - now strictly enforced - -v1.7 -- March 31st, 1999 ------------------------- - - o moved the proxy config options to a separate tab - o underscoring now not done in ID3 command-line - o added a warning when entries are submitted to a commercial server - o added a gtk+ version compatibility warning - o added secondary CDDB server - o the user is now asked if they want to submit when a disc is found on the - secondary server, but not the primary one - o switched the freecddb cgi-path to ~cddb - o made detection of no disc even more reliable - o Makefile now uses install (thanks to Eduard Dulich) - o fixed a nasty bug that could cause Grip to expand to the whole screen - (thanks to Shaw Terwilliger for this) - o fixed a security hole (thanks go to Jonathan Pickard) - o added labels to the disc edit entries, and switched the order of - title/artist - o fixed a problem that was resulting in an unnecessary horizontal scrollbar - in the track list widget in GCD - o added the ability to select CDDB genres - o track transitions are now smooth when in normal play mode - o added a help tab and a bug report submission form - -v1.6 -- March 26th, 1999 ------------------------- - - o removed the leading '/' from the default CDDB cgi path - o removed the submission of user name and host information to the CDDB - server -- I feel that this information is private, and should not be - submitted without the user's consent. anyway, the server has no - (non-marketing) use for it - o added CDDB submission - o added editing of disc title/artist - o low-level cd control now done by Grip instead of libcdaudio - o all libcdauio dependencies now removed - o added "save disc info" button - o the GUI is now more responsive while a song is playing - o fixed a nasty bug that was causing disc title/artist to be switched - o fixed a problem with CDDB entries sometimes being saved as root - o volume control is now set properly on startup - o encoding no longer hangs if the MP3 file format is set improperly - o fixed a problem with not stopping in non-loop play - o fixed a problem that was causing play to stop at the end of a track if - play had been paused (this is a low-level driver bug, I think) - -v1.5 -- March 24th, 1999 ------------------------- - - o added a popup message if the use selects rip/encode with no tracks - selected - o added another fix that *might* fix the X i/o problems some people are - having - o fixed a bug with start/end sector info in command-line/filename parsing - (thanks go to Jonathan Aseltine for pointing this out to me) - o fixed a bug that was keeping the '-d' command-line option from working - (thanks to Alan Wild for sending this in) - o added yet *another* fix to try to get rid of X i/o problems - o added loop and shuffle play modes (courtesy of David Decotigny) - o made the cgi path of the CDDB server configurable - o switched the default CDDB server to freecddb.freecddb.org - o fixed up shuffle play, and added playlist support - o CDDB entry reading/writing is now done by Grip rather than libcdaudio - -v1.4 -- March 8th, 1999 ------------------------ - - o added '"' to the default list of underscored characters - o added %i option to pass the discid as a command-line argument - o added Grip URL to about page (clicking loads page in netscape) - o fixed a problem with GCD accessing a Grip-only label - o the track/time indicator is now displayed properly while looking up a - disc through CDDB - o set the volume widget to the correct scale (it was too quiet) - o CDDB lookup can now be aborted and initiated at any time - o clicking on the time display now toggles the mode between time played in - track, time played in disc, time left in track, and time left in disc - o initial support for cd-changers added, but not tested (I don't have one) - o Track names are now editable - o fixed a bug with handling CDDB entries with long disc/track names - o added '-l' command-line option to disable CDDB lookup - o fixed (I hope!) a bug with CDDB lookup of discs with many tracks - o added a popup message when user's try to edit root-only config options - -v1.3 -- March 2nd, 1999 ------------------------ - - o pixmaps are now compiled into the executable - o added a fix that *might* fix the Xlib async errors some people are getting - o Grip can now read proxy server/port from the "http_proxy" env. variable - o made the text entry widgets take up as much space as they can - o the text in entry widgets is now initially set to display from the - beginning (it looked odd before) - o introduced GCD, a cd-player only version of Grip - -v1.2 -- February 23rd, 1999 ---------------------------- - - o added error message when a pixmap fails to load - o added an option to call an external program to add ID3 tags to the - encoded files. Contributed by Ian Campbell - o cleaned up the look of the config section a bit - o added option to limit the number of tracks to have waiting to be encoded - o rip/encode processes that are active when Grip is shut down are now - terminated - -v1.1 -- February 17th, 1999 ---------------------------- - - o underscoring of spaces filenames is now optional - o added a configurable set of characters to underscore in filenames - o the '%t' (track) switch is now zero-padded to 2 characters - o CDDB lookup is now done by Grip, rather than using libcdaudio - o better handling of self-titled albums - o 'nice' values are now supported for the rip/encode processes - o fixed a bug that could make Grip encode when you didn't want it to - o the time display now stops flashing if the disc is stopped while paused - o now only options that impact the rip program/filename need root access to - be able to configure them - -v1.0 -- February 2nd, 1999 --------------------------- - - o added a "CD update" program to run whenever a new disc is loaded - o removed the extra "output directory" option in the CDDB config section - o fixed freezing problem with bladeenc - o new icons to show rip/encode progress and CDDB lookup in LCD panel - o tooltips color selection now down through .rc file - o ripping and encoding now run simultaneously for multi-track rips - -v0.9 -- January 18th, 1999 --------------------------- - - o track times are now displayed while looking up a disc in the CDDB - o Grip now uses the new http-based libcdaudio interface - o added support for proxy servers for CDDB lookup - o added '%c' switch to specify cdrom device - o the '%' switches can now be used in the output directory path - o output files are no longer written as root - -v0.8 -- January 11th, 1999 --------------------------- - - o fixed a bug that kept the "previous track" button from working properly - when audio was playing - o fixed a bug that made the display keep updating after play hit the end - of a disc - o clicking on the "Rip" column heading will now select all tracks - o added scrolled window for track display in gtk+ 1.1.x versions - o selection of tracks to rip with right mouse should now work for - gtk+ 1.1.x - o selecting a track to rip no longer interacts with whether the track is - selected - -v0.7 -- January 5th, 1999 -------------------------- - - o added a volume control - o the eject button will now close the drive if it is open - o gtk_clist_set_policy() not used if compiling with gtk 1.1.x - o added support for ripping multiple tracks - o re-organized the config page into multiple sub-pages - o re-organized the rip page - o added a button to toggle partial track ripping - o added rip/encode status to the LCD display - o added options to configure the format of ripped and encoded files - o added option to configure output directory - o added option to delete .wav files after MP3-encoding them - -v0.6 -- December 22nd, 1998 ---------------------------- - - o made next/prev track buttons work a bit more sensibly - o standard play now continues to subsequent tracks - o Rip page track info now recognizes when no disc is present - o added track number to track info display - o cd status is no longer checked when idle with a disc in the drive - o track names with a '/' can now be ripped - o the track display now only has scrollbars if they are needed - o fastfwd and rewind now continue if the button is held down - -v0.5 -- December 18th, 1998 ---------------------------- - - o compressed the controls a bit - o added support for MP3-encoding - o added cute rounding effect on the "LCD" display - -v0.4 -- December 16th, 1998 ---------------------------- - - o the play time indicator now resets to zero when a disc is ejected - o changed the look of the CD controls - o added "cd-only" mode - o added "-s" command-line option to force cd-only mode - o the main window now pops up all at once - o added current track indicator in cd panel display - o added fastforward and rewind (kind of) - -v0.3 -- December 14th, 1998 ---------------------------- - - o fixed a bug that would cause a crash if no disc was present on startup - o fixed a bug that would cause discs to be looked up in the CDDB even - if a record was already stored locally - o the display now reflects the situation when no disc is present - o updating data when discs are changed is now much better - o added a CDDB access indicator - -v0.2 -- December 10th, 1998 ---------------------------- - - o ripping is now disabled if you are already ripping - o fixed a memory allocation bug in the track list clist - o CDDB lookup is now threaded - -v0.1 -- December 8th, 1998 --------------------------- - - o first public release - diff --git a/Makefile.am b/Makefile.am index 04bc313..a60fe2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,5 @@ +.PHONY: changelog + SUBDIRS = po src pixmaps doc contrib EXTRA_DIST = \ @@ -15,6 +17,7 @@ ACLOCAL_AMFLAGS = -I m4 CLEANFILES = *~ MAINTAINERCLEANFILES = \ + ChangeLog \ $(top_srcdir)/Makefile.in \ $(top_srcdir)/aclocal.m4 \ $(top_srcdir)/configure \ @@ -27,3 +30,13 @@ MAINTAINERCLEANFILES = \ $(ac_aux_dir)/config.sub \ $(ac_aux_dir)/ltmain.sh \ $(ac_aux_dir)/compile + +changelog: + @if test -d $(srcdir)/.git; then \ + $(srcdir)/build-aux/gitlog-to-changelog \ + --format='%s%n%n%b%n' \ + --no-cluster \ + --strip-tab \ + --strip-cherry-pick \ + >ChangeLog; \ + fi diff --git a/autogen.sh b/autogen.sh index 56b1182..168f747 100755 --- a/autogen.sh +++ b/autogen.sh @@ -8,6 +8,9 @@ TEST_FILE=src/grip.c ACLOCAL_FLAGS="${ACLOCAL_FLAGS} -I config" +# ChangeLog is generated from git log output using "make changelog" +touch ChangeLog + srcdir=`dirname $0` test -z "$srcdir" && srcdir=. diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog new file mode 100755 index 0000000..7bab70d --- /dev/null +++ b/build-aux/gitlog-to-changelog @@ -0,0 +1,432 @@ +eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}' + & eval 'exec perl -wS "$0" $argv:q' + if 0; +# Convert git log output to ChangeLog format. + +my $VERSION = '2014-01-15 03:30'; # UTC +# The definition above must lie within the first 8 lines in order +# for the Emacs time-stamp write hook (at end) to update it. +# If you change this file with Emacs, please let the write hook +# do its job. Otherwise, update this string manually. + +# Copyright (C) 2008-2014 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Written by Jim Meyering + +use strict; +use warnings; +use Getopt::Long; +use POSIX qw(strftime); + +(my $ME = $0) =~ s|.*/||; + +# use File::Coda; # http://meyering.net/code/Coda/ +END { + defined fileno STDOUT or return; + close STDOUT and return; + warn "$ME: failed to close standard output: $!\n"; + $? ||= 1; +} + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try '$ME --help' for more information.\n"; + } + else + { + print $STREAM < ChangeLog + $ME -- -n 5 foo > last-5-commits-to-branch-foo + +SPECIAL SYNTAX: + +The following types of strings are interpreted specially when they appear +at the beginning of a log message line. They are not copied to the output. + + Copyright-paperwork-exempt: Yes + Append the "(tiny change)" notation to the usual "date name email" + ChangeLog header to mark a change that does not require a copyright + assignment. + Co-authored-by: Joe User + List the specified name and email address on a second + ChangeLog header, denoting a co-author. + Signed-off-by: Joe User + These lines are simply elided. + +In a FILE specified via --amend, comment lines (starting with "#") are ignored. +FILE must consist of pairs where SHA is a 40-byte SHA1 (alone on +a line) referring to a commit in the current project, and CODE refers to one +or more consecutive lines of Perl code. Pairs must be separated by one or +more blank line. + +Here is sample input for use with --amend=FILE, from coreutils: + +3a169f4c5d9159283548178668d2fae6fced3030 +# fix typo in title: +s/all tile types/all file types/ + +1379ed974f1fa39b12e2ffab18b3f7a607082202 +# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself. +# Change the author to be Paul. Note the escaped "@": +s,Jim .*>,Paul Eggert , + +EOF + } + exit $exit_code; +} + +# If the string $S is a well-behaved file name, simply return it. +# If it contains white space, quotes, etc., quote it, and return the new string. +sub shell_quote($) +{ + my ($s) = @_; + if ($s =~ m![^\w+/.,-]!) + { + # Convert each single quote to '\'' + $s =~ s/\'/\'\\\'\'/g; + # Then single quote the string. + $s = "'$s'"; + } + return $s; +} + +sub quoted_cmd(@) +{ + return join (' ', map {shell_quote $_} @_); +} + +# Parse file F. +# Comment lines (starting with "#") are ignored. +# F must consist of pairs where SHA is a 40-byte SHA1 +# (alone on a line) referring to a commit in the current project, and +# CODE refers to one or more consecutive lines of Perl code. +# Pairs must be separated by one or more blank line. +sub parse_amend_file($) +{ + my ($f) = @_; + + open F, '<', $f + or die "$ME: $f: failed to open for reading: $!\n"; + + my $fail; + my $h = {}; + my $in_code = 0; + my $sha; + while (defined (my $line = )) + { + $line =~ /^\#/ + and next; + chomp $line; + $line eq '' + and $in_code = 0, next; + + if (!$in_code) + { + $line =~ /^([0-9a-fA-F]{40})$/ + or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"), + $fail = 1, next; + $sha = lc $1; + $in_code = 1; + exists $h->{$sha} + and (warn "$ME: $f:$.: duplicate SHA1\n"), + $fail = 1, next; + } + else + { + $h->{$sha} ||= ''; + $h->{$sha} .= "$line\n"; + } + } + close F; + + $fail + and exit 1; + + return $h; +} + +# git_dir_option $SRCDIR +# +# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR +# is undef). Return as a list (0 or 1 element). +sub git_dir_option($) +{ + my ($srcdir) = @_; + my @res = (); + if (defined $srcdir) + { + my $qdir = shell_quote $srcdir; + my $cmd = "cd $qdir && git rev-parse --show-toplevel"; + my $qcmd = shell_quote $cmd; + my $git_dir = qx($cmd); + defined $git_dir + or die "$ME: cannot run $qcmd: $!\n"; + $? == 0 + or die "$ME: $qcmd had unexpected exit code or signal ($?)\n"; + chomp $git_dir; + push @res, "--git-dir=$git_dir/.git"; + } + @res; +} + +{ + my $since_date; + my $format_string = '%s%n%b%n'; + my $amend_file; + my $append_dot = 0; + my $cluster = 1; + my $strip_tab = 0; + my $strip_cherry_pick = 0; + my $srcdir; + GetOptions + ( + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + 'since=s' => \$since_date, + 'format=s' => \$format_string, + 'amend=s' => \$amend_file, + 'append-dot' => \$append_dot, + 'cluster!' => \$cluster, + 'strip-tab' => \$strip_tab, + 'strip-cherry-pick' => \$strip_cherry_pick, + 'srcdir=s' => \$srcdir, + ) or usage 1; + + defined $since_date + and unshift @ARGV, "--since=$since_date"; + + # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/) + # that makes a correction in the log or attribution of that commit. + my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {}; + + my @cmd = ('git', + git_dir_option $srcdir, + qw(log --log-size), + '--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV); + open PIPE, '-|', @cmd + or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n" + . "(Is your Git too old? Version 1.5.1 or later is required.)\n"); + + my $prev_multi_paragraph; + my $prev_date_line = ''; + my @prev_coauthors = (); + while (1) + { + defined (my $in = ) + or last; + $in =~ /^log size (\d+)$/ + or die "$ME:$.: Invalid line (expected log size):\n$in"; + my $log_nbytes = $1; + + my $log; + my $n_read = read PIPE, $log, $log_nbytes; + $n_read == $log_nbytes + or die "$ME:$.: unexpected EOF\n"; + + # Extract leading hash. + my ($sha, $rest) = split ':', $log, 2; + defined $sha + or die "$ME:$.: malformed log entry\n"; + $sha =~ /^[0-9a-fA-F]{40}$/ + or die "$ME:$.: invalid SHA1: $sha\n"; + + # If this commit's log requires any transformation, do it now. + my $code = $amend_code->{$sha}; + if (defined $code) + { + eval 'use Safe'; + my $s = new Safe; + # Put the unpreprocessed entry into "$_". + $_ = $rest; + + # Let $code operate on it, safely. + my $r = $s->reval("$code") + or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n"; + + # Note that we've used this entry. + delete $amend_code->{$sha}; + + # Update $rest upon success. + $rest = $_; + } + + # Remove lines inserted by "git cherry-pick". + if ($strip_cherry_pick) + { + $rest =~ s/^\s*Conflicts:\n.*//sm; + $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m; + } + + my @line = split "\n", $rest; + my $author_line = shift @line; + defined $author_line + or die "$ME:$.: unexpected EOF\n"; + $author_line =~ /^(\d+) (.*>)$/ + or die "$ME:$.: Invalid line " + . "(expected date/author/email):\n$author_line\n"; + + # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog + # `(tiny change)' annotation. + my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line) + ? ' (tiny change)' : ''); + + my $date_line = sprintf "%s %s$tiny\n", + strftime ("%F", localtime ($1)), $2; + + my @coauthors = grep /^Co-authored-by:.*$/, @line; + # Omit meta-data lines we've already interpreted. + @line = grep !/^(?:Signed-off-by:[ ].*>$ + |Co-authored-by:[ ] + |Copyright-paperwork-exempt:[ ] + )/x, @line; + + # Remove leading and trailing blank lines. + if (@line) + { + while ($line[0] =~ /^\s*$/) { shift @line; } + while ($line[$#line] =~ /^\s*$/) { pop @line; } + } + + # Record whether there are two or more paragraphs. + my $multi_paragraph = grep /^\s*$/, @line; + + # Format 'Co-authored-by: A U Thor ' lines in + # standard multi-author ChangeLog format. + for (@coauthors) + { + s/^Co-authored-by:\s*/\t /; + s/\s*/ + or warn "$ME: warning: missing email address for " + . substr ($_, 5) . "\n"; + } + + # If clustering of commit messages has been disabled, if this header + # would be different from the previous date/name/email/coauthors header, + # or if this or the previous entry consists of two or more paragraphs, + # then print the header. + if ( ! $cluster + || $date_line ne $prev_date_line + || "@coauthors" ne "@prev_coauthors" + || $multi_paragraph + || $prev_multi_paragraph) + { + $prev_date_line eq '' + or print "\n"; + print $date_line; + @coauthors + and print join ("\n", @coauthors), "\n"; + } + $prev_date_line = $date_line; + @prev_coauthors = @coauthors; + $prev_multi_paragraph = $multi_paragraph; + + # If there were any lines + if (@line == 0) + { + warn "$ME: warning: empty commit message:\n $date_line\n"; + } + else + { + if ($append_dot) + { + # If the first line of the message has enough room, then + if (length $line[0] < 72) + { + # append a dot if there is no other punctuation or blank + # at the end. + $line[0] =~ /[[:punct:]\s]$/ + or $line[0] .= '.'; + } + } + + # Remove one additional leading TAB from each line. + $strip_tab + and map { s/^\t// } @line; + + # Prefix each non-empty line with a TAB. + @line = map { length $_ ? "\t$_" : '' } @line; + + print "\n", join ("\n", @line), "\n"; + } + + defined ($in = ) + or last; + $in ne "\n" + and die "$ME:$.: unexpected line:\n$in"; + } + + close PIPE + or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n"; + # FIXME-someday: include $PROCESS_STATUS in the diagnostic + + # Complain about any unused entry in the --amend=F specified file. + my $fail = 0; + foreach my $sha (keys %$amend_code) + { + warn "$ME:$amend_file: unused entry: $sha\n"; + $fail = 1; + } + + exit $fail; +} + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "my $VERSION = '" +# time-stamp-format: "%:y-%02m-%02d %02H:%02M" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "'; # UTC" +# End: -- 2.20.1