claws.git
3 years agoremove 'fm'; replace 'google' with 'ddg'
Paul [Tue, 24 Sep 2019 09:44:12 +0000 (10:44 +0100)]
remove 'fm'; replace 'google' with 'ddg'

3 years agosome clean up in tools/
Paul [Tue, 24 Sep 2019 09:34:51 +0000 (10:34 +0100)]
some clean up in tools/

* remove out-dated OOo2claws-mail.pl
* replace google_search.pl with ddg_search.pl (DuckDuckGo instead of
  Google)
* update README

3 years agowhen creating a new account, don't pre-fill data from the default account
Paul [Tue, 24 Sep 2019 09:04:04 +0000 (10:04 +0100)]
when creating a new account, don't pre-fill data from the default account

3 years agoRestore previous format of README entry
Ricardo Mones [Fri, 20 Sep 2019 08:40:56 +0000 (10:40 +0200)]
Restore previous format of README entry

3 years agoUpdate script and doc from web's tools dir
Ricardo Mones [Fri, 20 Sep 2019 07:31:16 +0000 (09:31 +0200)]
Update script and doc from web's tools dir

3 years agoadd patch RFE 4244, 'Handle additional Date header formats'
Paul [Thu, 19 Sep 2019 11:52:18 +0000 (12:52 +0100)]
add patch RFE 4244, 'Handle additional Date header formats'

patch by Alexander Lyons Harkness <me at bearbin.net>

3 years agofix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)
Paul [Thu, 19 Sep 2019 10:50:26 +0000 (11:50 +0100)]
fix bug 4239, 'Preferences: Text Options Header Display modal is not modal' (sic)

... and so on

3 years agofix bolding of target folder
Paul [Sat, 14 Sep 2019 08:44:10 +0000 (09:44 +0100)]
fix bolding of target folder

target folder (when not using 'execute immediately') lost its boldness
recently. This reinstates that, and makes the target folder colour
override all other colours.

3 years agoUpdate authors lists
Ricardo Mones [Fri, 6 Sep 2019 12:18:58 +0000 (14:18 +0200)]
Update authors lists

3 years agoFix bug 4248 “Suport C99 compilers in m4/spamassassin.m4”
Ricardo Mones [Fri, 6 Sep 2019 12:18:19 +0000 (14:18 +0200)]
Fix bug 4248 “Suport C99 compilers in m4/spamassassin.m4”

Thanks Florian Weimer for the patch.

3 years agoInitialize some missing members in rssyl_item_new()
Andrej Kacian [Wed, 28 Aug 2019 20:59:46 +0000 (22:59 +0200)]
Initialize some missing members in rssyl_item_new()

Among other things, this should fix the occasional
glib runtime warning about removing an invalid GSource.

3 years agoFix build of pgpcore unit test
Andrej Kacian [Mon, 26 Aug 2019 20:17:46 +0000 (22:17 +0200)]
Fix build of pgpcore unit test

3 years agoUpdate litehtml_viewer to build on Windows
Andrej Kacian [Mon, 26 Aug 2019 20:05:23 +0000 (22:05 +0200)]
Update litehtml_viewer to build on Windows

3 years agoFix handling deleted feed items where modified and published dates do not match
Andrej Kacian [Mon, 26 Aug 2019 15:50:20 +0000 (17:50 +0200)]
Fix handling deleted feed items where modified and published dates do not match

3 years agoFix comparison for RSS feed items without text
Andrej Kacian [Mon, 26 Aug 2019 15:42:52 +0000 (17:42 +0200)]
Fix comparison for RSS feed items without text

3 years agoFix const correctness
Ricardo Mones [Wed, 21 Aug 2019 09:37:22 +0000 (11:37 +0200)]
Fix const correctness

Fixes "lh_viewer.c:97:19: warning: initialization discards ‘const’
qualifier from pointer target type"

3 years agoDon't call strncpy with mismatching length
Ricardo Mones [Wed, 21 Aug 2019 09:36:40 +0000 (11:36 +0200)]
Don't call strncpy with mismatching length

Fixes "vcard.c:238:2: warning: ‘strncpy’ output truncated before
terminating nul copying as many bytes from a string as its length"

3 years agoRemove unused variable
Ricardo Mones [Wed, 21 Aug 2019 09:35:54 +0000 (11:35 +0200)]
Remove unused variable

Fixes "textview.c:721:18: warning: unused variable ‘stream’"

3 years agoMBOX import: give a better estimation of the time left and grey out widgets while...
Colin Leroy [Tue, 13 Aug 2019 08:13:29 +0000 (10:13 +0200)]
MBOX import: give a better estimation of the time left and grey out widgets while importing

3 years agoFix bug #4237 - 403 is Forbidden not Unauthorized
Colin Leroy [Sat, 10 Aug 2019 15:35:17 +0000 (17:35 +0200)]
Fix bug #4237 - 403 is Forbidden not Unauthorized

3 years agoremove "The following file has been attached..." dialogue
Paul [Thu, 8 Aug 2019 18:26:26 +0000 (19:26 +0100)]
remove "The following file has been attached..." dialogue

don't show the needless "The following file has been attached..."
dialogue when attaching files by drag'n'drop

3 years agoperl: fix incoming typos in pod
Ricardo Mones [Wed, 7 Aug 2019 14:41:04 +0000 (16:41 +0200)]
perl: fix incoming typos in pod

3 years agoFix crash in litehtml_viewer when <base> tag has no href
Andrej Kacian [Tue, 6 Aug 2019 08:46:01 +0000 (10:46 +0200)]
Fix crash in litehtml_viewer when <base> tag has no href

3 years agoUpdate claws.def files for plugins
Andrej Kacian [Mon, 5 Aug 2019 22:14:39 +0000 (00:14 +0200)]
Update claws.def files for plugins

3 years agoFix a failed assertion in NNTP group list dialog
Andrej Kacian [Sun, 4 Aug 2019 10:20:48 +0000 (12:20 +0200)]
Fix a failed assertion in NNTP group list dialog

The code was trying to expand nodes of already subscribed
newsgroups, even if those newsgroups weren't being displayed
in the list, usually because of an active search pattern.

3 years agofor release 3.17.4 3.17.4
Paul [Fri, 26 Jul 2019 10:58:35 +0000 (11:58 +0100)]
for release 3.17.4

3 years agoFix leak on error variable
Ricardo Mones [Fri, 26 Jul 2019 10:51:13 +0000 (12:51 +0200)]
Fix leak on error variable

3 years agoAdd minimalistic plugin description
Ricardo Mones [Fri, 26 Jul 2019 10:45:08 +0000 (12:45 +0200)]
Add minimalistic plugin description

Thanks Andrej for the inspiration:
https://lists.claws-mail.org/pipermail/users/2019-March/023861.html

3 years agoDon't show mojibake when encoding is not UTF-8
Ricardo Mones [Fri, 26 Jul 2019 10:31:57 +0000 (12:31 +0200)]
Don't show mojibake when encoding is not UTF-8

Litehtml expect displayed strings in UTF-8, so convert message part
before displaying.

3 years agoUpdate list of TLDs for release
Ricardo Mones [Fri, 26 Jul 2019 10:26:02 +0000 (12:26 +0200)]
Update list of TLDs for release

3 years agomore translation updates
Paul [Fri, 26 Jul 2019 08:55:39 +0000 (09:55 +0100)]
more translation updates

3 years agoupdated translations
Paul [Thu, 25 Jul 2019 17:21:24 +0000 (18:21 +0100)]
updated translations

3 years agoUpdate French translation.
wwp [Mon, 22 Jul 2019 12:14:48 +0000 (14:14 +0200)]
Update French translation.

3 years agoUpdate Spanish translation for release
Ricardo Mones [Mon, 22 Jul 2019 08:39:59 +0000 (10:39 +0200)]
Update Spanish translation for release

3 years agoReturn decode error in GError if pointer to GError structure provided
Michael Rasmussen [Sun, 7 Jul 2019 17:06:34 +0000 (19:06 +0200)]
Return decode error in GError if pointer to GError structure provided

Signed-off-by: Michael Rasmussen <mir@datanom.net>
3 years agoFix dereferencing of potentially NULL *error
Colin Leroy [Sun, 7 Jul 2019 16:44:54 +0000 (18:44 +0200)]
Fix dereferencing of potentially NULL *error

3 years agoprocmime_get_part_as_pixbuf: set error if we can't decode part.
Colin Leroy [Sun, 7 Jul 2019 10:21:50 +0000 (12:21 +0200)]
procmime_get_part_as_pixbuf: set error if we can't decode part.

3 years agolitehtml_viewer: use new procmime_get_part_as_pixbuf helper function
Colin Leroy [Sun, 7 Jul 2019 08:51:55 +0000 (10:51 +0200)]
litehtml_viewer: use new procmime_get_part_as_pixbuf helper function

3 years agoCompose: handle pasted images and text/uri-list (files) and attach them
Colin Leroy [Sun, 7 Jul 2019 08:43:45 +0000 (10:43 +0200)]
Compose: handle pasted images and text/uri-list (files) and attach them

3 years agoImplement copying of attached images to clipboard
Colin Leroy [Sun, 7 Jul 2019 08:40:15 +0000 (10:40 +0200)]
Implement copying of attached images to clipboard

3 years agoprocmime_get_part_as_inputstream doesn't touch error, so remove it
Colin Leroy [Sun, 7 Jul 2019 08:31:01 +0000 (10:31 +0200)]
procmime_get_part_as_inputstream doesn't touch error, so remove it

3 years agoIf error is NULL print a static message instead
Michael Rasmussen [Wed, 3 Jul 2019 18:35:17 +0000 (20:35 +0200)]
If error is NULL print a static message instead

Signed-off-by: Michael Rasmussen <mir@datanom.net>
3 years agoSince procmime_get_part_as_inputstream can return NULL and never touches error we...
Michael Rasmussen [Wed, 3 Jul 2019 18:16:44 +0000 (20:16 +0200)]
Since procmime_get_part_as_inputstream can return NULL and never touches error we need to bail if stream is NULL

Signed-off-by: Michael Rasmussen <mir@datanom.net>
3 years agoFix a crash in Fancy plugin if one of the MIME parts has no Content-ID
Andrej Kacian [Wed, 3 Jul 2019 09:19:48 +0000 (11:19 +0200)]
Fix a crash in Fancy plugin if one of the MIME parts has no Content-ID

3 years agoFix a crash in litehtml plugin if one of the MIME parts has no Content-ID
Andrej Kacian [Wed, 3 Jul 2019 09:02:20 +0000 (11:02 +0200)]
Fix a crash in litehtml plugin if one of the MIME parts has no Content-ID

3 years agoGet rid of magic numbers in summary_msginfo_*_flags
Andrej Kacian [Wed, 29 May 2019 17:10:28 +0000 (19:10 +0200)]
Get rid of magic numbers in summary_msginfo_*_flags

3 years agoFix a typo - it's CURL_CFLAGS, not CURL_FLAGS
Andrej Kacian [Sat, 18 May 2019 10:03:00 +0000 (12:03 +0200)]
Fix a typo - it's CURL_CFLAGS, not CURL_FLAGS

3 years agoAdd missing libgumbo cflags and ldflags to litehtml_viewer
Andrej Kacian [Sat, 18 May 2019 10:01:43 +0000 (12:01 +0200)]
Add missing libgumbo cflags and ldflags to litehtml_viewer

3 years agoReturn summaryview cursor to selected mail when popup menu is done
Andrej Kacian [Tue, 14 May 2019 21:20:08 +0000 (23:20 +0200)]
Return summaryview cursor to selected mail when popup menu is done

Fixes bug #3838: Canceled right-click on message
list leaves UI in inconsistent state

3 years agoMove log timestamp format string to a separate macro in log.h
Andrej Kacian [Tue, 14 May 2019 14:15:10 +0000 (16:15 +0200)]
Move log timestamp format string to a separate macro in log.h

3 years agoFix a use after free crash when deleting message via a separate messageview
Andrej Kacian [Tue, 14 May 2019 14:01:40 +0000 (16:01 +0200)]
Fix a use after free crash when deleting message via a separate messageview

After the message has been deleted, summary_show() will
redisplay the folder and free all the MsgInfos, but we still
need the one for the message currently displayed in our
messageview window, so we add our own reference to it, and free
it ourselves when we're done.

This was only happening when summaryview already has a different
message displayed.

Fixes bug #4029: segfault after deleting message in a window

3 years agoAdd date (ISO format) to log timestamps.
wwp [Tue, 14 May 2019 08:09:12 +0000 (10:09 +0200)]
Add date (ISO format) to log timestamps.

3 years agoFix verify_folderlist_xml() for fresh starts
Andrej Kacian [Wed, 8 May 2019 21:25:55 +0000 (23:25 +0200)]
Fix verify_folderlist_xml() for fresh starts

It was calling xml_free_tree(NULL) if folderlist.xml
did not yet exist.

3 years agoFix markup in 'key not fully trusted' warning in pgpcore
Andrej Kacian [Wed, 8 May 2019 19:29:37 +0000 (21:29 +0200)]
Fix markup in 'key not fully trusted' warning in pgpcore

3 years agoMake Enter key in mbox export dialog's file entry start the export
Andrej Kacian [Sat, 4 May 2019 00:52:32 +0000 (02:52 +0200)]
Make Enter key in mbox export dialog's file entry start the export

3 years agoFix CID 1444847 - Uninitialized variables in sock_close()
Andrej Kacian [Wed, 1 May 2019 10:44:20 +0000 (12:44 +0200)]
Fix CID 1444847 - Uninitialized variables in sock_close()

3 years agoFix a memory corruption bug in RSSyl's feed_item_copy()
Andrej Kacian [Tue, 30 Apr 2019 21:03:03 +0000 (23:03 +0200)]
Fix a memory corruption bug in RSSyl's feed_item_copy()

3 years agoFix parsing items with empty bodies from on-disk RSSyl items
Andrej Kacian [Tue, 30 Apr 2019 21:02:18 +0000 (23:02 +0200)]
Fix parsing items with empty bodies from on-disk RSSyl items

3 years agoFix previous commit
Andrej Kacian [Sun, 28 Apr 2019 23:06:07 +0000 (01:06 +0200)]
Fix previous commit

The old code added a newline before each line in
rssyl_parse_folder_item_file().

3 years agoRemove unnecessary debug output from previous commit
Andrej Kacian [Sun, 28 Apr 2019 21:22:00 +0000 (23:22 +0200)]
Remove unnecessary debug output from previous commit

3 years agoSimplify item body parsing in rssyl_parse_folder_item_file()
Andrej Kacian [Sun, 28 Apr 2019 21:13:32 +0000 (23:13 +0200)]
Simplify item body parsing in rssyl_parse_folder_item_file()

This possibly fixes a memory corruption issue, too.

3 years agoFix a syntax error in sock_close() causing windows build to fail
Andrej Kacian [Fri, 26 Apr 2019 06:16:08 +0000 (08:16 +0200)]
Fix a syntax error in sock_close() causing windows build to fail

3 years agoFree a memory leak in libetpan-backed server connections
Andrej Kacian [Thu, 25 Apr 2019 22:28:58 +0000 (00:28 +0200)]
Free a memory leak in libetpan-backed server connections

We create a connection using our sock_connect() and let
libetpan take over managing it. However, libetpan only
needs the socket file descriptor, so we need to get rid
of the rest of the returned SockInfo struct.

3 years agoFix memory leaks in imap_handle_error()
Andrej Kacian [Thu, 25 Apr 2019 21:59:40 +0000 (23:59 +0200)]
Fix memory leaks in imap_handle_error()

3 years agoFix a memory leak in sc_session_manager_connect()
Andrej Kacian [Thu, 25 Apr 2019 21:49:47 +0000 (23:49 +0200)]
Fix a memory leak in sc_session_manager_connect()

3 years agoFix two memory leaks in litehtml plugin
Andrej Kacian [Thu, 25 Apr 2019 21:16:53 +0000 (23:16 +0200)]
Fix two memory leaks in litehtml plugin

3 years agoFix a memory leak in litehtml plugin's container_linux::load_image()
Andrej Kacian [Thu, 25 Apr 2019 20:40:31 +0000 (22:40 +0200)]
Fix a memory leak in litehtml plugin's container_linux::load_image()

3 years agoFix a runaway string read in procmime_decode_content()
Andrej Kacian [Thu, 25 Apr 2019 20:20:06 +0000 (22:20 +0200)]
Fix a runaway string read in procmime_decode_content()

We initialize output buffer for g_base64_decode_step()
to zeroes, so that we can later call strlen() on it
safely.
We also allocate one byte more than we write, so that
the trailing zero byte is guaranteed to be there.

3 years agoFix a memory leak in rssyl_add_item()
Andrej Kacian [Thu, 25 Apr 2019 19:38:10 +0000 (21:38 +0200)]
Fix a memory leak in rssyl_add_item()

3 years agoFix a memory leak in sgpgme_sigstat_info_short()
Andrej Kacian [Wed, 24 Apr 2019 23:10:36 +0000 (01:10 +0200)]
Fix a memory leak in sgpgme_sigstat_info_short()

3 years agoFix a memory leak in icon_list_append_icon()
Andrej Kacian [Wed, 24 Apr 2019 23:04:59 +0000 (01:04 +0200)]
Fix a memory leak in icon_list_append_icon()

3 years agoFix a long-standing use-after-free in mainwin_actions_execute()
Andrej Kacian [Wed, 24 Apr 2019 22:13:35 +0000 (00:13 +0200)]
Fix a long-standing use-after-free in mainwin_actions_execute()

message_actions_execute() eventually calls summary_show()
to redisplay current folder in summaryview.
This causes a summary_clear(), which frees all MsgInfos
from the local linked list in mainwin_actions_execute().
This list is then used to restore summaryview selection, but
at this point, all its members point to already freed memory.

We solve this by increasing each MsgInfo's reference count,
so that they do not get freed, and we free them after we're
done with them.

Note: procmsg_msginfo_free() should probably be renamed to
procmsg_msginfo_unref()

3 years agoFix a blatant textbook case of use-after-free in rssyl_update_feed()
Andrej Kacian [Wed, 24 Apr 2019 05:57:47 +0000 (07:57 +0200)]
Fix a blatant textbook case of use-after-free in rssyl_update_feed()

3 years agoFix memory leak in smime_sign() and forgotten removal of a temporary file in smime_en...
Andrej Kacian [Tue, 23 Apr 2019 22:03:27 +0000 (00:03 +0200)]
Fix memory leak in smime_sign() and forgotten removal of a temporary file in smime_encrypt()

3 years agoFix memory leaks in pgpmime_sign() and pgpmime_encrypt()
Andrej Kacian [Tue, 23 Apr 2019 21:58:22 +0000 (23:58 +0200)]
Fix memory leaks in pgpmime_sign() and pgpmime_encrypt()

3 years agoFix a memory leak in rssyl_rename_folder()
Andrej Kacian [Tue, 23 Apr 2019 21:46:43 +0000 (23:46 +0200)]
Fix a memory leak in rssyl_rename_folder()

3 years agoFix a memory leak in rssyl_add_item()
Andrej Kacian [Tue, 23 Apr 2019 20:31:31 +0000 (22:31 +0200)]
Fix a memory leak in rssyl_add_item()

3 years agoFix a memory leak in stock_pixmap_widget_with_overlay()
Andrej Kacian [Mon, 22 Apr 2019 11:06:19 +0000 (13:06 +0200)]
Fix a memory leak in stock_pixmap_widget_with_overlay()

3 years agoFix a memory leak in rssyl_deleted_expire()
Andrej Kacian [Mon, 22 Apr 2019 10:58:59 +0000 (12:58 +0200)]
Fix a memory leak in rssyl_deleted_expire()

3 years agoFix memory leak in RSSyl's feed_item_free()
Andrej Kacian [Mon, 22 Apr 2019 09:37:27 +0000 (11:37 +0200)]
Fix memory leak in RSSyl's feed_item_free()

3 years agorework folderview styles
Paul [Sun, 21 Apr 2019 10:47:50 +0000 (11:47 +0100)]
rework folderview styles

fixes occasional crash on drag'n'drop of msgs.

Patch by Andrej

3 years agofix bug 4167, 'Max line length exceeded when forwarding mail'
Paul [Sun, 21 Apr 2019 10:44:00 +0000 (11:44 +0100)]
fix bug 4167, 'Max line length exceeded when forwarding mail'

3 years agoFix incorrect logic in lh_widget::set_cursor().
Andrej Kacian [Wed, 10 Apr 2019 19:00:01 +0000 (21:00 +0200)]
Fix incorrect logic in lh_widget::set_cursor().

3 years agoAdd a getter for litehtml::document's m_over_element member
Andrej Kacian [Wed, 10 Apr 2019 19:12:57 +0000 (21:12 +0200)]
Add a getter for litehtml::document's m_over_element member

This allows us to avoid some expensive GDK calls in
lh_widget::set_cursor().

3 years agoMake cursor and statusbar URL display smarter in litehtml plugin
Andrej Kacian [Wed, 10 Apr 2019 17:37:38 +0000 (19:37 +0200)]
Make cursor and statusbar URL display smarter in litehtml plugin

3 years agorecognise model/* mime type
Paul [Sun, 24 Mar 2019 13:38:58 +0000 (13:38 +0000)]
recognise model/* mime type

fixes bug 4188, 'STL file is sent not as an attachment but as its base64
representation in plaintext'

3 years agoFix segfault using gdata plugin in German locales
Ricardo Mones [Wed, 13 Mar 2019 21:46:59 +0000 (22:46 +0100)]
Fix segfault using gdata plugin in German locales

Reported as Debian bug #923980

3 years agoRemove mgu_free_list() and mgu_free_dlist()
Andrej Kacian [Wed, 13 Mar 2019 20:58:56 +0000 (21:58 +0100)]
Remove mgu_free_list() and mgu_free_dlist()

We depend on glib 2.28, which has g_slist_free_full()
and g_list_free_full(), which we can use instead.

3 years agoRemove functions mgu_*_test_unq_nc()
Andrej Kacian [Wed, 13 Mar 2019 20:39:28 +0000 (21:39 +0100)]
Remove functions mgu_*_test_unq_nc()

Only one of them was being used, only once, and
it was replaced by a straightforward call to
g_list_find_custom().

3 years agoRemove mgu_clear_list() function
Andrej Kacian [Wed, 13 Mar 2019 19:55:36 +0000 (20:55 +0100)]
Remove mgu_clear_list() function

Its remaining uses were unnecessary, because in each
case, the list was being freed immediately afterwards,
without freeing the data. This function only set the
list items' data pointer to NULL, which served no
purpose here.

3 years agoFix two small memory leaks in addressbook code
Andrej Kacian [Wed, 13 Mar 2019 19:54:20 +0000 (20:54 +0100)]
Fix two small memory leaks in addressbook code

In each case, the GList structure itself was not
being freed.

3 years agoFix a memory leak in Pine address book support
Andrej Kacian [Wed, 13 Mar 2019 19:19:59 +0000 (20:19 +0100)]
Fix a memory leak in Pine address book support

Also removed mgu_clear_slist(), since it is not
used anywhere anymore.

3 years agoMake Fancy plugin's download-link feature following redirections.
wwp [Mon, 11 Mar 2019 10:33:10 +0000 (11:33 +0100)]
Make Fancy plugin's download-link feature following redirections.

3 years agoFix buf #4166: corrupted double-linked list
Andrej Kacian [Sun, 10 Mar 2019 19:27:34 +0000 (20:27 +0100)]
Fix buf #4166: corrupted double-linked list

3 years agoStop proceeding if file-save-as has been cancelled.
wwp [Sun, 10 Mar 2019 08:06:50 +0000 (09:06 +0100)]
Stop proceeding if file-save-as has been cancelled.

3 years agoDo not throw an error when cancelling 'Save email as...'.
wwp [Sun, 10 Mar 2019 08:05:33 +0000 (09:05 +0100)]
Do not throw an error when cancelling 'Save email as...'.

3 years agoAlways remove local images from Litehtml image cache
Andrej Kacian [Sat, 9 Mar 2019 21:53:10 +0000 (22:53 +0100)]
Always remove local images from Litehtml image cache

Since their "url" in cache only includes MIME
file name, they are not guaranteed to be unique
across different messages.

3 years agoAdded support for local image attachments to the Litehtml plugin
Andrej Kacian [Sat, 9 Mar 2019 21:32:32 +0000 (22:32 +0100)]
Added support for local image attachments to the Litehtml plugin

3 years agoAdd missing config.h include to utils.h
Andrej Kacian [Sat, 9 Mar 2019 20:51:29 +0000 (21:51 +0100)]
Add missing config.h include to utils.h

It should be there, since we refer to a lot of HAVE_
macros defined in config.h

3 years agoAdd a forgotten fclose() call
Andrej Kacian [Sat, 9 Mar 2019 20:22:34 +0000 (21:22 +0100)]
Add a forgotten fclose() call

Fixes CID 1443021.