commit 4a995762ac51971d6699774dff8e4fc1eb811818 Author: David King Date: Sun Feb 21 23:18:23 2016 +0000 Update NEWS for 2.4.2 release M NEWS M SOURCES M configure.ac commit d081c73f8d72155f6f0cde1b6e06ddf3ebcafba7 Author: David King Date: Sun Feb 21 22:43:44 2016 +0000 Mark files with old Vorbis tag comments as changed If a Vorbis comment has a COMMENT field, mark the file as modified, so that it is converted to a DESCRIPTION field during saving. M src/tags/flac_tag.c M src/tags/ogg_tag.c commit eb8dd2121558eda3fb78b675388ad715ad500fc6 Author: David King Date: Thu Feb 18 20:44:14 2016 +0000 Remove setlocale() calls around tag reading It is unsafe to call setlocale() in a multi-threaded program (and EasyTAG is, because GLib creates a worker thread for handling D-Bus calls). Additionally, it is no longer necessary to change the locale when reading files, as all locale-sensitive tag reading code has been converted to be insensitive to the current locale. M src/file_list.c commit 70d69bc61f0ab1cf39f0270f56114efb0ae7ba67 Author: David King Date: Thu Feb 18 21:20:42 2016 +0000 Use g_ascii_strcasecmp() for ID3v2.4 field names As ID3v2 field names use ASCII, use the locale-insensitive g_ascii_strncasecmp() instead of strncasecmp(). M src/tags/id3v24_tag.c commit ff8eaf91dbf17a2a4d662db9a94bc5e10b815a16 Author: David King Date: Thu Feb 18 21:19:22 2016 +0000 Use strncmp() when case is not a factor When comparing strings while looking for the multi-field separator (always " - " in EasyTAG), use strncmp() rather than strcasecmp(). M src/tags/id3v24_tag.c commit 030a3dd196e166bd6a061d23033ccc723118bcc1 Author: David King Date: Thu Feb 18 20:39:25 2016 +0000 Avoid locale-sensitive field name reading for Ogg Avoid calling strncasecmp() when searching for tag field names in Vorbis comments while reading Ogg (Vorbis and Opus) files. The same function is called internally by libvorbis when searching for tags, and it is dependent on the current locale, so it fails with Turkish and the lower-case 'i' being transformed to the dotted upper-case version. As Vorbis comment field names are only permitted to be ASCII, with some further restrictions, use g_ascii_strup() to convert them all to upper-case before comparing them. As an additional optimization, insert the tag key/value pairs in a hash table during reading. The avoids the behaviour of searching through all the comments in the file when loading data for each UI field (as well as a second time, when populating the list of unsupported fields). instead, only a single lookup per tag is required. https://trac.xiph.org/ticket/2079 M src/tags/ogg_tag.c commit 84e99bba9f8f54d347169d5232ed69ca7c159a4f Author: David King Date: Fri Feb 12 21:21:43 2016 +0000 Avoid locale-sensitive field name reading for FLAC Avoid calling strncasecmp() when searching for tag field names in Vorbis comments while reading FLAC files. The same function is called internally by libFLAC when searching for tags, and it is dependent on the current locale, so it fails with Turkish and the lower-case 'i' being transformed to the dotted upper-case version. As Vorbis comment field names are only permitted to be ASCII, with some further restrictions, use g_ascii_strup() to convert them all to upper-case before comparing them. As an additional optimization, insert the tag key/value pairs in a hash table during reading. This avoids the behaviour of searching through all the comments in the file when loading data for each UI field (as well as a second time, when populating the list of unsupported fields). Instead, only a single lookup per tag is required. https://sourceforge.net/p/flac/bugs/417/ M src/tags/flac_tag.c commit f3d1d976b798a0ef9d2a9356f4ca702ee6bf0aad Author: David King Date: Thu Feb 11 22:33:32 2016 +0000 Make the Vorbis comment field names into defines Unify the Vorbis comment field names into a set of defines, and move them to vcedit.h. M src/tags/flac_tag.c M src/tags/ogg_tag.c M src/tags/vcedit.h commit 3bd9455ed0aa194554d4983bc46798b8b0075649 Author: David King Date: Thu Feb 11 21:54:21 2016 +0000 Remove et_ogg_write_tag() Use vorbis_comment_add_tag() instead. M src/tags/ogg_tag.c commit 224f3c84627d7f3727e8b929a2cfc6f92eae7421 Author: David King Date: Thu Feb 11 16:09:14 2016 +0000 Simplify FLAC tag field setting Use FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair() to avoid duplicating two strings per tag field written. Simplify handling of unsupported tags with a new vc_block_append_other_tag() function. M src/tags/flac_tag.c commit 0c0f46b9232b4e02ece2ac1872eeb10609e150ee Author: David King Date: Thu Feb 18 16:48:51 2016 +0000 Fix a crash when renaming directories Pass a gchar *, not a gchar, to g_strconcat(). https://retrace.fedoraproject.org/faf/problems/bthash/?bth=5c2ad6c23b746b3d63a4ccc895e6f228e24293e5&bth=ce2762c57443a7c42472884bd3c9fcbef3755982 https://retrace.fedoraproject.org/faf/problems/bthash/?bth=e5ff843b726a5ae24324a402c656c3da412adf05 M src/browser.c commit 30e2c672106ec5177f421cc577214bc562610517 Author: David King Date: Sun Feb 14 09:40:07 2016 +0000 Only install the metainfo file if requested Only install the AppData metainfo file for the Nautilus extension if the extension is enabled. https://bugzilla.gnome.org/show_bug.cgi?id=761996 M Makefile.am commit ce3b73dcbf93e2476db101f9a9403a3a302bdbb4 Author: David King Date: Tue Feb 9 21:06:36 2016 +0000 Update British English translation M po/en_GB.po commit 338f3da0a9fcdcc940aa53431aafc0edc47a680a Author: David King Date: Thu Jan 28 22:45:23 2016 +0100 Port Musepack header reading to use GFile M src/tags/libapetag/info_mpc.c M src/tags/libapetag/info_mpc.h M src/tags/musepack_header.c commit 54ebb531c6e91ae745e0526ef9a61dacb46eb132 Author: David King Date: Thu Jan 28 21:30:17 2016 +0100 Port Monkey's Audio header reading to GFile M src/tags/libapetag/info_mac.c M src/tags/libapetag/info_mac.h M src/tags/monkeyaudio_header.c commit a733b5d9ecbe90a6b3c10ae1fbfc491456ba2a26 Author: David King Date: Tue Jan 26 11:50:21 2016 +0000 Use _chsize() on Windows Avoid the internal ftruncate() wrapper, which was only used in a single location. M configure.ac M src/tags/libapetag/apetaglib.c M src/win32/win32dep.c M src/win32/win32dep.h commit 138993f16795097c5bcaffd23599319dc8fc8212 Author: David King Date: Tue Feb 9 19:45:11 2016 +0000 Correctly display the Monkey's Audio file type The descriptive string for the Monkey's Audio file type was accidentally removed when the file area was moved into a discrete object in commit 594e9575eaddc1b70b7bf6510802b27b6b8e6828. Add it back, and reinstate all available translated versions. M po/cs.po M po/de.po M po/el.po M po/en_GB.po M po/es.po M po/fr.po M po/he.po M po/hu.po M po/it.po M po/ja.po M po/ko.po M po/lt.po M po/nb.po M po/nl.po M po/pl.po M po/pt_BR.po M po/ro.po M po/ru.po M po/sl.po M po/sr.po M po/sr@latin.po M po/sv.po M po/te.po M po/tr.po M po/uk.po M po/zh_CN.po M po/zh_TW.po M src/tags/monkeyaudio_header.c commit 1cc311cfd40fbda1c88b009ee6d80c563fdff7d6 Author: David King Date: Tue Feb 9 18:08:18 2016 +0000 Avoid UTF-8 warnings during APE tag reading Avoid passing a NULL pointer to Try_To_Validate_Utf8_String(). Factor out the common File_Tag field setting code into a new set_string_field() function. M src/tags/ape_tag.c commit 7d71b3fe1cd593a9dd825155d26bc493b734687a Author: David King Date: Fri Feb 5 18:06:56 2016 +0000 Refactor Search_File() Use GSettings rather than examining the state of UI elements. Ensure that UTF-8 strings are normalized before searching within. Use C89 comments. Rename several variable. M src/search_dialog.c commit 8306f396f122f8dda95a7babf757ae9e877c90fe Author: David King Date: Thu Feb 4 16:47:16 2016 +0000 Refactor Add_Row_To_Search_Result_List() Avoid duplicating strings unnecessarily. Shorten and simplify several variable names. Normalize the UTF-8 strings before comparing them with strstr(). Use C89 comments. M src/search_dialog.c commit a098fcf018aff2f6771e886a99a565965fad7cc7 Author: David King Date: Tue Feb 2 21:51:35 2016 +0000 Factor out common string sorting code Add a new et_file_list_sort_string() function, and use it where possible to simplify the file list sorting. M src/file.c commit db48df50bbb2558ff1e7a38c2add5b8a8346c427 Author: David King Date: Tue Feb 2 21:19:00 2016 +0000 Handle UTF-8 strings when sorting the file list Use et_normalized_strcmp0() and et_normalized_strcasecmp0() when sorting the file list. M src/file.c commit cc971b1552f5a2aaa0c620df4e933e194c8f69d5 Author: David King Date: Mon Feb 1 22:47:08 2016 +0000 Enable case-sensitive sorting of artist/album list Use et_normalized_strcmp0() when comparing. M src/file_list.c commit 4d333b7650ced3c20e563fc771cc3dcfafaf01db Author: David King Date: Mon Feb 1 22:36:59 2016 +0000 Add simple tests for et_normalized_strcasecmp0() Additionally, add a further test for et_normalized_strcmp0() to show how it differs. M tests/test-misc.c commit 6163e087b015bad9af6e9be1b2d445110f7a0c4b Author: David King Date: Mon Feb 1 22:01:21 2016 +0000 Add a case-insensitive UTF-8 string comparison Add et_normalized_strcasecmp0(), a function much like strcasecmp(), but that handles UTF-8 text by normalizing it, casefolding it and then comparing with g_utf8_collate(). Use the new function when sorting the album/artist list. M src/file_list.c M src/misc.c M src/misc.h commit 257e13b1b3309919e73cf6f3014a77f5f82e87f8 Author: David King Date: Thu Jan 28 21:51:44 2016 +0100 Add static to is_tag_ape2long() M src/tags/libapetag/is_tag.c commit 02650510e0c3f3dcf73544bc9379ce4306fb96c8 Author: David King Date: Wed Jan 27 00:06:17 2016 +0100 Fix input of filenames in the file area When showing the edit name in the file area, show the new (as-yet-unsaved) filename, rather than using the old name. M src/file_area.c commit 36ab772953dc328b7f73e615fa67e63c15cf965b Author: David King Date: Tue Jan 26 14:58:16 2016 +0000 Avoid use of g_dir_open() Use g_file_test() to check if a path is a directory instead. M src/browser.c M src/playlist_dialog.c