commit e4c4e1a17c0a6c006f2e7e9669e68703bcad1367 Author: David King Date: Wed Dec 31 19:21:12 2014 +0000 Update NEWS for 2.3.3 release M NEWS M SOURCES M configure.ac commit a7fbff9745f87b883162585bdc88d2af31ddf084 Author: David King Date: Wed Dec 31 19:14:15 2014 +0000 Distribute easytag.manifest for MinGW build M Makefile.am commit 88150f84f78fcae47a6b316eea6954aabe506597 Author: David King Date: Wed Dec 31 19:07:13 2014 +0000 Add stdlib.h include for malloc() under MinGW M src/tags/vcedit.c commit ec35ca5930a91a50870a3988742dcd3a779a45c8 Author: David King Date: Wed Dec 31 19:03:37 2014 +0000 Add unistd.h include for SEEK_SET under MinGW M src/tags/flac_private.c commit e87b62b58af12187bb66571dfeb8ad0212095af0 Author: David King Date: Wed Dec 31 12:10:04 2014 +0000 Add test for ET_File_Description functions M Makefile.am A tests/test-file_description.c commit 94da689bccf1dc291eebe08f2db2ae77e156f183 Author: David King Date: Wed Dec 31 11:08:57 2014 +0000 Simplify ET_Core from four functions to two Remove the duplication of create/initialize and free/destroy to just ET_Core_Create() and ET_Core_Free(). M src/application.c M src/application_window.c M src/easytag.c M src/et_core.c M src/et_core.h commit c5abfa4bb11ef3c00a41637310052254d74708b6 Author: David King Date: Tue Dec 30 21:04:44 2014 +0000 Split ET_Core list handling code off to new file M Makefile.am M po/POTFILES.in M src/application.c M src/application_window.c M src/browser.c M src/easytag.c M src/et_core.c M src/file.c M src/file.h M src/file_area.c A src/file_list.c A src/file_list.h M src/scan_dialog.h M src/tag_area.c commit 103c20223cdbf9e6870d371fd3a7a82a317dca96 Author: David King Date: Sun Dec 28 22:32:37 2014 +0000 Split majority of et_core.c out into new file.c M Makefile.am M po/POTFILES.in M src/et_core.c M src/et_core.h C097 src/et_core.c src/file.c C077 src/et_core.h src/file.h commit d639f6ca9e60726dcb0932c168c2cfbedf83183c Author: David King Date: Sun Dec 28 20:32:27 2014 +0000 Split ET_File_Description out to separate file M Makefile.am M src/easytag.c M src/et_core.c M src/et_core.h A src/file_description.c A src/file_description.h commit 7c12ed02a4b1707bcf791db34d2438d69dcd8715 Author: David King Date: Sun Dec 28 20:08:27 2014 +0000 Move two more struct declarations to core_types.h M src/core_types.h M src/et_core.h commit 86f79e4b7093ef221eb30786366cf79896af486f Author: David King Date: Sun Dec 28 19:34:55 2014 +0000 Split off File_Tag to a separate file Move most of the prototypes for functions that deal with File_Tag to a separate file_tag.h header, and keep the remaining ones in et_core.h. M Makefile.am M src/et_core.c M src/et_core.h A src/file_tag.c A src/file_tag.h commit bb9ce6f6bc4a4318c4b4b3dbc07079c91d04caff Author: David King Date: Sun Dec 28 18:58:30 2014 +0000 Move EtPicture declaration to picture.h M src/et_core.h M src/picture.h commit 9e855c1b482f11b3114d10cf0b0b48c87b90f931 Author: David King Date: Sun Dec 28 18:41:22 2014 +0000 Split a couple of enums out to a new core_types.h This should make it easier to split up the behemoth that is et_core.h. M Makefile.am A src/core_types.h M src/et_core.h M src/picture.h commit 3377420a6676718711d1b1f227703f3cca90054a Author: David King Date: Sun Dec 28 16:41:53 2014 +0000 Make ET_Set_Field_File_Tag_Item() static Change the last uses of ET_Set_Field_File_Tag_Item() inside the scanner dialog to use the File_Tag struct setters instead. M src/et_core.c M src/et_core.h M src/scan_dialog.c commit b1242ae8a868aa55a176ce7cebee173309701fdc Author: David King Date: Sun Dec 28 15:52:10 2014 +0000 Add File_Tag struct setters M src/cddb_dialog.c M src/et_core.c M src/et_core.h M src/scan_dialog.c M src/tag_area.c commit 551629c3f63c071122a5fadb012f8ce37821111e Author: David King Date: Mon Dec 29 11:43:02 2014 +0000 Fix stripping disc number field from ID3v2.4 tags As part of a change made in bug 726467, disc number handling for ID3 tags was modified to only allow digits and the '/' character in the TPOS field. A bogus check was added for ID3 tags, so that if saving a tag with no content in the disc number field, the existing TPOS tag would not be cleared. Remove the erroneous check, as et_id3tag_get_tpos_from_file_tag() safely handles the disc number field being empty. https://bugzilla.gnome.org/show_bug.cgi?id=742082 M src/tags/id3v24_tag.c commit ef551ae59259c5782a005b532716832c92458162 Author: David King Date: Sun Dec 28 15:04:57 2014 +0000 Simplify ET_Set_Field_File_Tag_Item() Return void rather than TRUE. Use a comparison against '\0' rather than using g_utf8_strlen(). Avoid a superfluous assignment to NULL. M src/et_core.c M src/et_core.h commit c17f82ba10ee4a908db90c86ca66e0dd18b6f53a Author: David King Date: Sun Dec 28 14:59:51 2014 +0000 Avoid warnings due to uninitialized values M src/tag_area.c M src/tags/ogg_tag.c commit 0019f3dc197585dc61bc34743b57b9ffff1bd9a9 Author: David King Date: Sun Dec 28 11:33:24 2014 +0000 Refactor et_picture_new() to be more complete Make et_picture_new() both create a new EtPicture instance and initialize all the fields. Copy the description string and ref the image data GBytes. Adapt existing users (and tests) to the new interface. M src/picture.c M src/picture.h M src/tag_area.c M src/tags/flac_tag.c M src/tags/id3v24_tag.c M src/tags/mp4_tag.cc M src/tags/ogg_tag.c M tests/test-picture.c commit 411b45ede2bc9c46668cb0be90d72b5147b4e5c6 Author: David King Date: Sun Dec 28 10:06:57 2014 +0000 Use new et_file_tag_set_picture() M src/et_core.c M src/tag_area.c M src/tags/mp4_tag.cc commit 787810ab863d12ccf5f9dac3a2ec9692ddda606b Author: David King Date: Sat Dec 27 22:25:14 2014 +0000 Refactor ET_Set_Field_File_Tag_Picture() Rename to et_file_tag_set_picture(). Rather than handling a EtPicture **, take a File_Tag and set the picture field appropriately. M src/et_core.c M src/et_core.h M src/tag_area.c commit 94dae722e611172961b619f5f97a49635ffb39ee Author: David King Date: Sat Dec 27 21:46:24 2014 +0000 Refactor ET_Get_Number_Of_Files_In_Directory() Generate the collate key for the path once, rather than for each iteration through the loop. M src/et_core.c commit 1b3e8b1f0f4cfc21533fb6008b7fdef837c19e49 Author: Мирослав Николић Date: Sat Dec 27 13:36:44 2014 +0100 Updated Serbian translation M po/sr.po M po/sr@latin.po commit fad2eca29ba532fc386bb5a421169e31dbb9eff2 Author: David King Date: Fri Dec 26 22:36:39 2014 +0000 Fix Ctrl-clicking to toggle file selection In the selection changed handler, only change the current file shown in the file and tag areas if it is selected. When unselecting, do not update the current file. https://bugzilla.gnome.org/show_bug.cgi?id=741980 M src/browser.c commit bfc1a7748b4856e04dd817ecae96a49ea65b07d3 Author: Marek Černocký Date: Fri Dec 26 12:09:27 2014 +0100 Updated Czech translation M po/cs.po commit 8d099a706d1fa8eb67669cca31a44ac7444195a9 Author: David King Date: Wed Dec 24 15:00:29 2014 +0000 Add an invariant in Log_Print() Return and log a critical message if EtLogArea has not been initialized when calling Log_Print(). M src/log.c commit b1a10faac70b6cf074f338f9dc3ae918ef2b1f30 Author: David King Date: Wed Dec 24 14:53:32 2014 +0000 Remove broken early logging code The code to store a temporary list for logging messages during early application startup was broken, and needs to be rethought. M src/log.c commit 28396f3cc13171a14c9299af4d546707c31bcdf5 Author: David King Date: Wed Dec 24 14:43:45 2014 +0000 Avoid crash during config directory migration Do not call Log_Print() during early application startup, to avoid the situation before EtApplicationWindow and EtLogArea have been instantiated where logging a message will fail. https://retrace.fedoraproject.org/faf2/problems/552599/ M src/setting.c commit 153a2f2f822714d9157497f764824df1ff1b1a78 Author: David King Date: Wed Dec 24 12:58:12 2014 +0000 Fix double unref in et_rename_file() error path https://retrace.fedoraproject.org/faf2/problems/558544/ https://retrace.fedoraproject.org/faf2/problems/552602/ M src/easytag.c commit 00f216188543d5460d4d10218e304f5fa70a418b Author: David King Date: Wed Dec 24 09:37:09 2014 +0000 Add album artist support to APE tags M src/tags/ape_tag.c M src/tags/libapetag/apetaglib.h commit 2d7791969d689038e36c81575facf8d7e0673d3f Author: David King Date: Tue Dec 23 21:15:37 2014 +0000 Avoid compiler warning in et_flac_read_func() Cast a GFileInputStream to a GInputStream when passed as the first argument to g_input_stream_read(). M src/tags/flac_private.c commit d41c9b8b9b4d0baa2e697fd0592e50a433998b14 Author: David King Date: Tue Dec 23 20:35:46 2014 +0000 Simplify the shared FLAC reading code Make EtFlacWriteState extend EtFlacReadState, and use a single callback function for each of the read, seek, tell and EOF callbacks as a result. M src/tags/flac_header.c M src/tags/flac_private.c M src/tags/flac_private.h M src/tags/flac_tag.c commit e49dac580f9d88380f1f44aabbc4a18f5f178446 Author: David King Date: Tue Dec 23 20:01:35 2014 +0000 Use GIO for writing WavPack tags Add a new EtWavpackWriteState struct, extended from EtWavpackState, and use it to store the IOStream during tag writing. M src/tags/wavpack_private.c M src/tags/wavpack_private.h M src/tags/wavpack_tag.c commit 71dc1da626f0d32d4d8f0f983d12c11d86900114 Author: David King Date: Tue Dec 23 18:20:15 2014 +0000 Use GIO for reading WavPack headers Split out the WavpackStreamReader functions to a separate file, so that they can be shared between the header and tag functions. M Makefile.am M src/tags/wavpack_header.c A src/tags/wavpack_private.c A src/tags/wavpack_private.h M src/tags/wavpack_tag.c commit 03b13fccbb6a712c70d64683f9d5860a7cb4d3d6 Author: David King Date: Tue Dec 23 17:42:48 2014 +0000 Use GIO when reading WavPack tags M src/tags/wavpack_tag.c commit 614529cee0caa215acbb989126b16c3bb4a3e3de Author: David King Date: Tue Dec 23 09:17:04 2014 +0000 Really fix the disc number padding check button Rathar than fixing only the disc number padding spin button, also update the setting bound to the check button. https://bugzilla.gnome.org/show_bug.cgi?id=741889 M src/preferences_dialog.c commit 786c97140d6afb78a806cf27d127fd75fc16e734 Author: David King Date: Tue Dec 23 08:49:48 2014 +0000 Fix the disc number padding widgets Bind the spin button for setting the disc number padding to the tag-disc-length setting, and the corresponding check button to the tag-disc-padded setting, rather than using the track number settings. https://bugzilla.gnome.org/show_bug.cgi?id=741889 M src/preferences_dialog.c commit 3be9f9e912ec44e7d938d1f3b70b74f578a93268 Author: Rafael Ferreira Date: Tue Dec 23 02:30:38 2014 +0000 Updated Brazilian Portuguese translation M po/pt_BR.po commit da0cad5c8b08ed411c1cb356c86d2dd5a7b72f4d Author: David King Date: Sun Dec 21 22:33:25 2014 +0000 Fix string leak when reading WavPack tags M src/tags/wavpack_tag.c commit 77c2379a132805b57ca3e31f497d9f67be88c51a Author: David King Date: Sun Dec 21 22:16:06 2014 +0000 Read the WavPack channel mask Use WavpackGetChannelMask() to read the channel mask from the WavPack header, and add a new et_wavpack_channel_mask_to_string() function to format it for display. M src/tags/wavpack_header.c commit adc40e02b6d177a2df5cbb154b1b6dfb9384a849 Author: David King Date: Sun Dec 21 21:17:57 2014 +0000 Clear empty tag fields when saving WavPack tags Refactor WavPack tag saving to use a new et_wavpack_append_or_delete_tag_item() helper function. Call WavpackDeleteTagItem() to delete a tag item if the item is empty. M src/tags/wavpack_tag.c commit d2ed5f679a8c465297b542b38d1110be10ed1391 Author: David King Date: Sun Dec 21 19:32:08 2014 +0000 Use memset() to zero out the WavPack read buffer M src/tags/wavpack_tag.c commit fa6c9de17173f5234f4072fa615d5ee5e6b7ee52 Author: David King Date: Sun Dec 21 19:30:33 2014 +0000 Support album artist in WavPack tags M src/tags/wavpack_tag.c commit 1e4a307d4768c414c255d1896e4b9d74e7be746d Author: David King Date: Sun Dec 21 10:39:56 2014 +0000 Remove stray unused local CDDB code M src/cddb_dialog.c commit 6532af69270ae1a030d48d389c13aa4bd122a190 Author: David King Date: Sun Dec 21 10:37:09 2014 +0000 Use const when fetching File_Name from an ET_File M src/application_window.c M src/browser.c M src/easytag.c M src/et_core.c M src/file_area.c M src/playlist_dialog.c M src/scan_dialog.c M src/tag_area.c commit 928c5e111dc1aac5da8d9de0767c06eb4f456bbb Author: David King Date: Sun Dec 21 10:36:33 2014 +0000 Add -Werror=return-type to compiler flags M configure.ac commit dc66588abaaf528d55a9f447ea923760289a08b0 Author: David King Date: Sun Dec 21 09:55:26 2014 +0000 Remove unnecessary ftruncate() wrapper M configure.ac M src/win32/win32dep.c M src/win32/win32dep.h commit 1342885c94e73a865b7775fae419f11171c85700 Author: David King Date: Sat Dec 20 18:11:37 2014 +0000 Use GIO when reading and writing ID3v2.4 files M src/tags/id3v24_tag.c commit d8a9e8889f8345f69a61993dbf1448c61cd76377 Author: Balázs Úr Date: Sat Dec 20 11:03:55 2014 +0000 Updated Hungarian translation M po/hu.po commit c0bb61c66ff0363894bd2919979b047ce80317f4 Author: David King Date: Fri Dec 19 22:19:34 2014 +0000 Use GIO when reading and writing list store files M src/setting.c commit 6fcbdd18ef8177df92e09137e4d2d8649bffc92b Author: David King Date: Thu Dec 18 17:44:38 2014 +0000 Use the GLib slice allocator where appropriate When allocating structs, use the GLib slice allocator. Simplify some allocation code to also zero-initialize the struct. M src/cddb_dialog.c M src/et_core.c M src/log.c M src/scan_dialog.c commit 06c9eeb5cdb78c4dab056b99c44596d1252f40db Author: David King Date: Thu Dec 18 17:44:16 2014 +0000 Avoid superfluous use of sizeof(char) M src/tags/id3_tag.c commit 15eec372a8b0162dad18c36a7463aad135831bfe Author: David King Date: Thu Dec 18 17:43:32 2014 +0000 Simplify reading artwork description from Ogg tags M src/tags/ogg_tag.c commit 18769d84f2deda03138cf86907197db0c258868e Author: David King Date: Thu Dec 18 17:41:21 2014 +0000 Use a stack-allocated buffer for WavPack tags M src/tags/wavpack_tag.c commit 9e312fa308724050b2945c1f993e7375bb72aafa Author: David King Date: Thu Dec 18 16:59:39 2014 +0000 Fix double free in CDDB dialog error path M src/cddb_dialog.c commit 8f48a76c0d97d72642fe83d715298d9fc073bd0c Author: David King Date: Thu Dec 18 16:46:33 2014 +0000 Fix check for errors when writing WavPack tags M src/tags/wavpack_tag.c commit 45248269bd07ae50e89a673c70e49b590855c057 Author: David King Date: Thu Dec 18 16:36:44 2014 +0000 Fix a double free when reading WavPack headers M src/tags/wavpack_header.c commit bfde77327544d7b548c9fec113321e13e26d0638 Author: David King Date: Thu Dec 18 16:35:37 2014 +0000 Add G_SLICE=debug-blocks to test environment M Makefile.am commit 593aa8f45e5d5256d5bb167394b8e872c253be47 Author: David King Date: Wed Dec 17 22:38:46 2014 +0000 Add a test for EtPicture boxed type copying M tests/test-picture.c commit 1fdb2ef8382e0bbce97b60f4259a01dc961e1ff6 Author: David King Date: Wed Dec 17 22:18:16 2014 +0000 Fix Picture_Format_From_Data() Check the result of memcmp() against 0. Extend the JPEG magic number. Add a simple test. M src/picture.c M tests/test-picture.c commit 5e15d6ed841c10846a1b4695b69eb1589035b9c6 Author: David King Date: Wed Dec 17 18:18:16 2014 +0000 Fix memory leak when saving a temporary FLAC file M src/tags/flac_tag.c commit 7a04dedf0a37a5da1fadb085b5693e67fc220107 Author: David King Date: Wed Dec 17 18:02:02 2014 +0000 Make EtPicture a boxed type Rename Picture to EtPicture and define a boxed type with G_DEFINE_BOXED_TYPE. Rename Picture functions to et_picture_*(). Fix a memory leak when destroying the tag area tree view, by using an EtPicture column in the list store. Update the EtPicture tests. M data/tag_area.ui M src/et_core.c M src/et_core.h M src/picture.c M src/picture.h M src/tag_area.c M src/tags/flac_tag.c M src/tags/id3_tag.c M src/tags/id3v24_tag.c M src/tags/mp4_tag.cc M src/tags/ogg_tag.c M tests/test-picture.c commit 2f38620fdfce98ed381ac9b72a6f8d82ca4d0c63 Author: David King Date: Wed Dec 17 17:10:39 2014 +0000 Use GBytes for image data inside Picture Avoid many superfluous memory allocations when copying Picture instances by using GBytes instead of a bare pointer, and incrementing the reference count when copying. Use the slice allocator to allocate Picture instances. Avoid Picture->bytes from ever being NULL. Update the Picture tests. Inspired by a report of excessive memory usage on the mailing list: https://mail.gnome.org/archives/easytag-list/2014-December/msg00000.html M src/et_core.c M src/et_core.h M src/picture.c M src/picture.h M src/tag_area.c M src/tags/flac_tag.c M src/tags/id3_tag.c M src/tags/id3v24_tag.c M src/tags/mp4_tag.cc M src/tags/ogg_tag.c M tests/test-picture.c commit 1dc1732e26b93a3ee792f13d0faaf18652ea4a71 Author: David King Date: Tue Dec 16 20:25:25 2014 +0000 Remove many unnecessary include directives M src/about.c M src/application.c M src/application.h M src/application_window.c M src/browser.c M src/browser.h M src/cddb_dialog.c M src/charset.c M src/easytag.c M src/easytag.h M src/et_core.c M src/et_core.h M src/log.c M src/misc.c M src/picture.c M src/picture.h M src/preferences_dialog.c M src/scan_dialog.c M src/setting.c M src/status_bar.c M src/tag_area.c M src/tags/ape_tag.c M src/tags/flac_header.c M src/tags/flac_tag.c M src/tags/id3_tag.c M src/tags/id3v24_tag.c M src/tags/monkeyaudio_header.c M src/tags/mp4_tag.cc M src/tags/mpeg_header.c M src/tags/musepack_header.c M src/tags/ogg_header.c M src/tags/ogg_header.h M src/tags/ogg_tag.c M src/tags/opus_header.c M src/tags/opus_tag.c M src/tags/vcedit.c M src/tags/vcedit.h M src/tags/wavpack_header.c M src/tags/wavpack_tag.c commit 790a379aa45523126630e58992fc83470f059079 Author: David King Date: Sun Dec 14 22:06:46 2014 +0000 Allow the search dialog tree view to expand https://bugzilla.gnome.org/show_bug.cgi?id=741525 M data/search_dialog.ui commit 935318961603f506a3bdba80d4b46eed34131ae3 Author: David King Date: Sun Dec 14 18:03:38 2014 +0000 Make crc32_file_with_ID3_tag() accept a GFile M src/crc32.c M src/crc32.h M src/scan_dialog.c commit 1d227dc59cf47da8976d0d92ebab6cbaf5872879 Author: David King Date: Sun Dec 14 15:52:16 2014 +0000 Refactor Vorbis comment code Use the slice allocator. Move the state struct definition to the source file. Adjust coding style. Change the codec type defines to be a new EtOggKind enum. M src/tags/ogg_header.c M src/tags/ogg_tag.c M src/tags/vcedit.c M src/tags/vcedit.h commit 699747408eeb2407ba9d5ed7babe472a500af25e Author: David King Date: Sun Dec 14 13:54:44 2014 +0000 Fix memory leak when loading a Speex file M src/tags/vcedit.c commit 5167916b5ba9bfd4f7b01bc8ae0372aa6af5a344 Author: David King Date: Sun Dec 14 13:54:24 2014 +0000 Fix a memory leak when saving an Ogg file M src/tags/ogg_tag.c commit 6202482e34567ba89f8ceab86469ccee0c41e0e5 Author: Marek Černocký Date: Sun Dec 14 14:13:43 2014 +0100 Fixed typo M po/cs.po commit 97921e2978f9fa897302151522d385b829796aad Author: Muhammet Kara Date: Sat Dec 13 08:22:25 2014 +0000 Updated Turkish translation M po/tr.po commit cf24bff29443f44bcdeb4862d7cb1e698befde5d Author: David King Date: Thu Dec 11 22:11:02 2014 +0000 Fix memory leak in CDDB dialog error path M src/cddb_dialog.c commit 21773c4bde88e344a5cbde8a3c4d76b4d7fe3aeb Author: David King Date: Tue Dec 9 23:01:02 2014 +0000 Relicense libapetag and vcedit.c to GPLv2+ Invoke Section 3 of the LGPL, and apply the terms of the GPL to all the LGPL portions of code inside EasyTAG, which include the APE tag reading code (libapetag) and the Vorbis comment parsing code (vcedit.c). M Makefile.am M data/easytag.appdata.xml.in D src/tags/libapetag/COPYING.LGPL M src/tags/libapetag/README.apetag M src/tags/libapetag/apetaglib.c M src/tags/libapetag/apetaglib.h M src/tags/libapetag/id3v2_read.c M src/tags/libapetag/id3v2_read.h M src/tags/libapetag/info_mac.c M src/tags/libapetag/info_mac.h M src/tags/libapetag/info_mpc.c M src/tags/libapetag/info_mpc.h M src/tags/libapetag/is_tag.c M src/tags/libapetag/is_tag.h M src/tags/vcedit.c M src/tags/vcedit.h commit d907c83e674a64dff5d9472349eab32e7bab5ea8 Author: David King Date: Sat Dec 6 23:57:24 2014 +0000 Split off shared FLAC code to a separate file M Makefile.am M src/tags/flac_header.c A src/tags/flac_private.c A src/tags/flac_private.h M src/tags/flac_tag.c commit ca5ef60eb3544908af0d7980cfa8ce9e2901a76a Author: David King Date: Fri Oct 3 17:44:31 2014 +0100 Use GIO when reading and writing FLAC tags Use the level 2 FLAC metadata interface to read and write FLAC tags, using GIO for the IO callbacks. M src/tags/flac_tag.c