commit 4a995762ac51971d6699774dff8e4fc1eb811818
Author: David King <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
Date:	Tue Feb 9 21:06:36 2016 +0000

    Update British English translation

M	po/en_GB.po

commit 338f3da0a9fcdcc940aa53431aafc0edc47a680a
Author: David King <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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 <amigadave@amigadave.com>
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

commit 074348e9c0e3f3db597e3e3e3a94666bb17ea9d0
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 23:01:06 2016 +0000

    Update NEWS for 2.4.1 release

M	AUTHORS
M	NEWS
M	SOURCES
M	configure.ac

commit 4fa035d37dd545f4492ce8380b237a67551aa0ff
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 21:14:36 2016 +0000

    Refactor directory renaming

    Renaming directories broke when porting to use GFile for the current
    path. Fix this by refactoring the functions involved to use
    g_build_filename() and semantically-useful variable names.

M	src/browser.c

commit d58e1e2f86589616ad4ce6a218f53ca25e97f079
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 19:17:03 2016 +0000

    Only show a locale log message if it is useful

    On Windows, check that the LANG environment variable is set before
    displaying its value in a log message.

M	src/application.c

commit fabaccb3c1d0fa3a18641c7f1290ba982d106363
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 18:54:25 2016 +0000

    Use g_mkstemp() instead of mkstemp()

    As filenames are always in the GLib filename encoding, make sure
    to use
    the appropriate GLib function.

M	TODO
M	configure.ac
M	src/browser.c
M	src/misc.c
M	src/win32/win32dep.c
M	src/win32/win32dep.h

commit 9e9b60157f9c4515fe5be1b72e24f63899ee8d8b
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 17:10:06 2016 +0000

    Fix CDDB dialog flag controls

    Since commit bbf918f8427950734d0101ef2744fff57eaa4b7b,
    et_settings_flags_toggle_get() and et_settings_flags_toggle_set()
    expect
    widgets passed to them to have a "flags-key" data item to be set
    to the
    name of the appropriate setting. Make this so for the search
    fields and
    categories widgets.

    https://bugzilla.gnome.org/show_bug.cgi?id=761018

M	src/cddb_dialog.c

commit fa014e50ecdbd546f3b1a0e125f119ce8a60fce8
Author: David King <amigadave@amigadave.com>
Date:	Mon Jan 25 17:05:56 2016 +0000

    Remove some unwanted elements from the AppData

    Remove the donation and project group links, and reindent the file.

M	data/easytag.appdata.xml.in

commit 9592ca3dc23e625df0435681c9b0b8ff31499a8b
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 22 16:02:51 2016 +0000

    Avoid an unnecessary NULL check

    Found with Coverity (CID 1295129).

M	src/scan_dialog.c

commit 59496c7e81894941f16dcf00e1bdcc4ebf519155
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 21 19:23:06 2016 +0000

    Test EtPicture comparisons in the FileTag tests

M	tests/test-file_tag.c

commit 8d57f897546da32429b3311fd07efb229cd7fbb2
Author: David King <amigadave@amigadave.com>
Date:	Wed Jan 20 17:32:41 2016 +0000

    Refactor Browser_Tree_Handle_Rename()

    Avoid a bogus use of UTF-8 functions with strings in the GLib filename
    encoding.

M	src/browser.c

commit a67fba24b9679429e08353fc1c1cf0b5f0aa7279
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 19 16:52:21 2016 +0000

    Convert Windows filename encoding for id3lib

    As id3lib does not use the wide character API on Windows, it expects
    filenames to be in the system codepage. Convert the GLib encoding
    to the
    system codepage before passing it to id3lib.

M	src/tags/id3_tag.c
M	src/tags/libapetag/id3v2_read.c
M	src/tags/mpeg_header.c
M	src/tags/opus_header.c

commit 98001302f40c640446845e5334a7880eda6bb443
Author: Richard Hughes <richard@hughsie.com>
Date:	Mon Jan 25 15:42:32 2016 +0000

    Add a missing tag to the AppData file

M	data/easytag.appdata.xml.in

commit 0a8d3554172f44d35024df75e672121435974b07
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:	Sun Jan 24 17:22:28 2016 +0100

    Updated German doc translation

M	help/de/de.po

commit 6e1558aabece4d5c688e1e27c584812a557fc80e
Author: Aurimas Černius <aurisc4@gmail.com>
Date:	Sat Jan 23 17:41:34 2016 +0200

    Updated Lithuanian translation

M	po/lt.po

commit eae0cc672db9f058e2af873cf7f5e0c14eb27dbf
Author: Richard Hughes <richard@hughsie.com>
Date:	Fri Jan 22 19:37:29 2016 +0000

    Update the AppData file to spec version 0.7+

M	data/easytag.appdata.xml.in

commit e80ec2317bcb63cd468c55774fa145e6397a11ca
Author: Mario Blättermann <mario.blaettermann@gmail.com>
Date:	Thu Jan 21 21:34:47 2016 +0100

    Updated German doc translation

M	help/de/de.po

commit 1ec85412c79601db4606cfa799883ebe96575f6c
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 19 19:03:13 2016 +0000

    Fix compiler warning in tests

    Pass a GError ** to g_close().

M	tests/test-misc.c

commit 5e74546aec8ce4721d52480b1c55bd231e2bc39f
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 19 16:49:57 2016 +0000

    Use g_open() instead of open()

    Ensure that filenames are kept in the GLib filename encoding.
    Additionally, use id3_file_fdopen() rather than id3_file_open() to
    ensure that the GLib filename encoding is used when reading ID3 tags.

M	src/tags/id3v24_tag.c
M	src/tags/libapetag/info_mac.c
M	src/tags/libapetag/info_mpc.c
M	src/win32/win32dep.c

commit 99890b917c6ce9814cdc7361d3ad951fc3216973
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 19 16:48:10 2016 +0000

    Use g_close() instead of close()

    Available since GLib 2.36, g_close() provides a portable wrapper
    around
    close().

M	src/browser.c
M	src/misc.c
M	tests/test-misc.c

commit 238b1e3da15de8acd4ebad4749feb6751371b11c
Author: David King <amigadave@amigadave.com>
Date:	Sun Jan 17 19:35:05 2016 +0000

    Fix typo in ID3v2.4 code comment

M	src/tags/id3v24_tag.c

commit 21c01d25d067afcc32876fb545ceea834ef912be
Author: David King <amigadave@amigadave.com>
Date:	Sat Jan 16 00:14:30 2016 +0000

    Replace g_utf8_str[r]chr() usage with str[r]chr()

    If looking for an ASCII character, it is simpler to use the string
    functions from the C library.

M	src/cddb_dialog.c
M	src/file_area.c
M	src/misc.c
M	src/scan.c
M	src/tag_area.c
M	src/tags/ape_tag.c
M	src/tags/flac_tag.c
M	src/tags/id3v24_tag.c
M	src/tags/ogg_tag.c
M	src/tags/wavpack_tag.c

commit 063dbf2346aac6aa4aa29deb0f73bce0490f17ff
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 15 23:43:16 2016 +0000

    Use the GFile edit name in the file area entry

    Avoid the situation that, when the encoding conversion fails, an
    explanatory string is added to the filename for display by using the
    edit name in the GtkEntry where the user can enter a new filename.

M	src/file_area.c

commit 2b3adb11b8ab8028b000851f8d8c9b741c6c6b4a
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 15 22:29:02 2016 +0000

    Solve a FIXME when changing file extension case

    As the source strings are is ASCII, use g_ascii_strdown() and
    g_ascii_strup() rather than the UTF-8 equivalents.

M	src/file.c

commit 9a2c766e9c27467c8a2607635674fee021ca9db1
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 15 20:26:00 2016 +0000

    Remove unused Windows backslash removal function

    As GFile does trivial canonicalization of paths, such as removing a
    trailing slash, there is no reason to handle a path from a GFile
    specially under Windows.

M	src/browser.c
M	src/win32/win32dep.c
M	src/win32/win32dep.h

commit 2609e840ffe09291d158c0425c07d103dfbfcf56
Author: David King <amigadave@amigadave.com>
Date:	Thu Dec 31 22:10:55 2015 +0000

    Use GFile for current browser path

M	src/application_window.c
M	src/application_window.h
M	src/browser.c
M	src/browser.h
M	src/load_files_dialog.c
M	src/playlist_dialog.c

commit 8ea193faa73d4edbc6915e1c342f1d04be2ea314
Author: David King <amigadave@amigadave.com>
Date:	Thu Dec 31 19:35:45 2015 +0000

    Use GFile in et_browser_select_dir()

M	src/application.c
M	src/application_window.c
M	src/application_window.h
M	src/browser.c
M	src/browser.h

commit f0019adf81e120f6b8d8d85902e9ecb8215b8c56
Author: David King <amigadave@amigadave.com>
Date:	Thu Dec 31 09:47:33 2015 +0000

    Use the GFile parse name in the browser entry

    This should make it easier for users to enter and modify paths
    which are
    not in UTF-8 encoding.

M	src/browser.c

commit 92118a38e385e4f3192de804c926b629d7a31fe1
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 1 10:13:34 2016 +0000

    Simplify et_browser_show_rename_directory_dialog()

    Use g_filename_display_basename() to simplify the logic to extract the
    basename and convert to UTF-8 for display.

M	src/browser.c

commit 7454529fa6b346237552d93d443e4821bc505b5a
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 14 18:27:02 2016 +0000

    Use et_str_empty() in another place

M	src/application_window.c

commit 87dbe2d2210059d3fc7643cd614c90de752001fd
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 14 18:07:57 2016 +0000

    Remove old EASYTAGLANG handling

    A separate environment variable for setting the locale of EasyTAG on
    Windows has not been used for some time.

M	src/application.c

commit d52f1b41b5cfb3c884c18b5b4afb57cbd0880ae3
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 14 16:55:36 2016 +0000

    Refactor Try_To_Validate_Utf8_String()

    Avoid leaking a GError if encoding conversion fails.

M	src/charset.c

commit 345f9d93d7ff33f6750ba2f2a0d7e688f96b96fb
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 14 16:13:09 2016 +0000

    Remove a redundant comparison

M	src/charset.c

commit b22f0a517dcb5b2a6b19c86ad3dc946a617cbf3c
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 12 23:08:39 2016 +0000

    Refactor get_encoding_from_locale()

    Use g_get_locale_variants() when looking up the non-Unicode character
    encoding for a locale, to ensure that variants are checked (such
    as when
    checking "en_GB", so that "en" is checked). Additionally, treat "utf8"
    as synonymous with "UTF-8" as per locale(7). As a fallback, return
    UTF-8.

M	src/charset.c

commit b23a3bb3fcb612b86c1c40372db6bc9125037a01
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 12 17:34:44 2016 +0000

    Refactor filename_from_display()

    Validate that the supplied string is UTF-8 with
    g_return_val_if_fail().
    Use g_filename_from_utf8() before attempting any other conversions.
    Avoid leaking a GError if there are conversion failures. Use
    g_get_filename_charsets() to query the filename encoding.

M	src/charset.c

commit 75cc59afd0b934271ab5a93329dfe433153bf47b
Author: David King <amigadave@amigadave.com>
Date:	Thu Dec 31 17:37:31 2015 +0000

    Use et_str_empty() in et_browser_select_dir()

M	src/browser.c

commit 0a1898a445be88842a834b19ee8a458d6a1fb704
Author: David King <amigadave@amigadave.com>
Date:	Sat Jan 10 00:27:46 2015 +0000

    Avoid using internal filename_to_display()

    Use the GLib functions for converting filenames from the GLib file
    encoding to UTF-8 for display. Avoid trying to guess the encoding, and
    only pay attention to the G_FILENAME_ENCODING environment variable
    as an
    override.

M	src/application.c
M	src/browser.c
M	src/charset.c
M	src/charset.h
M	src/easytag.c
M	src/file_list.c
M	src/file_name.c
M	src/load_files_dialog.c
M	src/playlist_dialog.c
M	src/scan_dialog.c
M	src/tags/id3_tag.c
M	src/tags/ogg_tag.c
M	src/win32/win32dep.c
M	src/win32/win32dep.h

commit 84bb35464dec34870e38d1f7f08ca8d0282340b7
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 8 08:49:43 2016 +0000

    Use full path when converting name for display

    Previously, the full path of a directory was converted to UTF-8 for
    display in the UI. Commit 9d23932754a9b82db0b1be3ac02df04717e99a6c
    changed the behaviour to use the display name from GFileInfo,
    which only
    contains the basename of the file and not the complete path. Use the
    full path, and convert it for display using g_filename_display_name().

M	src/easytag.c

commit 567cc99b03d8e35945a6bd851e05dc2c3eaed3a1
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 8 08:12:04 2016 +0000

    Use g_file_enumerator_get_child() in expand_cb()

M	src/browser.c

commit 9d23932754a9b82db0b1be3ac02df04717e99a6c
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 7 22:08:59 2016 +0000

    Use display name when reading directory

    When formatting an error message for display in the UI, use the
    display
    name of the file.

M	src/easytag.c

commit bc9f1cde9cb01040db73d1749b44ed8b010c89ab
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 7 21:33:45 2016 +0000

    Use g_file_enumerator_get_child()

    Resolve a TODO in read_directory_recursively().

M	src/easytag.c

commit 5b4f7f58c2cf4932d67f787c8c26f328494dbb89
Author: Marcus Gisslén <marcus.gisslen@gmail.com>
Date:	Wed Jan 6 01:49:55 2016 +0100

    Add Swedish help translation

M	help/Makefile.am
A	help/sv/sv.po

commit 4aecce9397f6ca42cef7974163110e319c163e37
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:	Thu Jan 7 23:07:38 2016 +0100

    Updated Spanish translation

M	po/es.po

commit a21d043d7d63bf773be4bf6420d6f321f293c681
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 7 17:09:26 2016 +0000

    Use GLib POSIX wrapper functions consistently

    As EasyTAG only handles filenames being in the GLib filename encoding,
    be careful to use functions which accept that encoding.

M	src/browser.c
M	src/cddb_dialog.c
M	src/file.c
M	src/file_list.c
M	src/tags/ape_tag.c
M	src/tags/libapetag/apetaglib.c
M	src/tags/libapetag/apetaglib.h

commit 595d8554ffeae1e2e65827dfb72506d7af56fc2b
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 7 16:39:53 2016 +0000

    Remove some unneeded Windows compat code

M	src/win32/win32dep.c
M	src/win32/win32dep.h

commit fc09649854a3b4c759770e56100189d1c0b10f3a
Author: David King <amigadave@amigadave.com>
Date:	Thu Jan 7 08:58:04 2016 +0000

    Depend on at least libnautilus-extension 3.0

    Ensure that the Nautilus dependency is on a version that requires GTK+
    3.0 or above for gdk_display_get_app_launch_context().

M	configure.ac

commit 8afecf0a6573b6db93d91fd4e87e996301c4d495
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 5 16:02:40 2016 +0000

    Replace filename characters after substitutions

    Ensure that scanner options do not override whether illegal characters
    should be replaced in filenames, by doing the replacement after the
    substitutions. This has the effect that if underscores are to
    be replaced
    by spaces, and the filename has a trailing underscore, the end result
    will be a filename with an underscore.

    https://bugzilla.gnome.org/show_bug.cgi?id=760155

M	src/scan_dialog.c

commit b3504c69bb11cfd800993a443d0c1be1124c2966
Author: David King <amigadave@amigadave.com>
Date:	Tue Jan 5 16:00:29 2016 +0000

    Replace illegal characters at end of filename

    On FAT filesystems, filenames should avoid ending with ' ' or '.':

    https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#naming_conventions

    Handle this in et_filename_prepare(), when the option to replace
    illegal
    characters in filenames is enabled, and add new test cases.

    https://bugzilla.gnome.org/show_bug.cgi?id=760155

M	src/misc.c
M	tests/test-misc.c

commit 3749d91f306adb9d73bbce39ce6bf621025f7441
Author: Josef Andersson <josef.andersson@gmail.com>
Date:	Sun Jan 3 16:09:50 2016 +0000

    Updated Swedish translation

M	po/sv.po

commit 8f1620b5d192f177ea206b085d336cc3f2eda624
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 1 11:03:47 2016 +0000

    Fix memory leak in open directory with dialog

    Use g_object_set_data_full() to free the current directory path when
    destroying the dialog.

M	src/browser.c

commit c177c1da3f04e8891bd95edba6f275ee8e585572
Author: David King <amigadave@amigadave.com>
Date:	Fri Jan 1 10:56:54 2016 +0000

    Simplify rename directory dialog destruction

    Use g_object_set_data_full() to automatically free the parent and
    current directory paths when the dialog is destroyed.

M	src/browser.c

commit 8e343337a81227314760370c4fbcd48a0da42d67
Author: David King <amigadave@amigadave.com>
Date:	Wed Dec 30 20:44:02 2015 +0000

    Remove last remnants of GTK+ usage from tag code

    Rather than opening a GTK+ dialog from the ID3 writing code when
