claws.git
7 weeks agofix crash caused by incomplete commit 47e9a6a807ab30baae05f4557f82d63c70108a59
Paul [Wed, 25 Sep 2019 07:31:55 +0000 (08:31 +0100)]
fix crash caused by incomplete commit 47e9a6a807ab30baae05f4557f82d63c70108a59

7 weeks agofix bug 4253, 'Claws metadata included in MBOX exports'
Paul [Tue, 24 Sep 2019 16:06:58 +0000 (17:06 +0100)]
fix bug 4253, 'Claws metadata included in MBOX exports'

7 weeks agofix warning ‘%s’ directive output may be truncated writing up to 8191 bytes into...
Paul [Tue, 24 Sep 2019 12:20:10 +0000 (13:20 +0100)]
fix warning ‘%s’ directive output may be truncated writing up to 8191 bytes into a region of size 8187

7 weeks agocomplete commit 61889fd9465da61b0db28d75860a91745b7a51d5
Paul [Tue, 24 Sep 2019 12:01:38 +0000 (13:01 +0100)]
complete commit 61889fd9465da61b0db28d75860a91745b7a51d5

thanks Brian!

7 weeks agorespect 'default selection' settings when moving a msg with manual filtering
Paul [Tue, 24 Sep 2019 11:56:00 +0000 (12:56 +0100)]
respect 'default selection' settings when moving a msg with manual filtering

7 weeks agoremove 'fm'; replace 'google' with 'ddg'
Paul [Tue, 24 Sep 2019 09:44:12 +0000 (10:44 +0100)]
remove 'fm'; replace 'google' with 'ddg'

7 weeks 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

7 weeks 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

7 weeks 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

7 weeks 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

7 weeks 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>

7 weeks 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

8 weeks 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.

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

2 months 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.

2 months 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.

2 months 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

2 months 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

2 months 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

2 months 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

2 months 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"

2 months 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"

2 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months agoFix leak on error variable
Ricardo Mones [Fri, 26 Jul 2019 10:51:13 +0000 (12:51 +0200)]
Fix leak on error variable

3 months 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 months 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 months 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 months agomore translation updates
Paul [Fri, 26 Jul 2019 08:55:39 +0000 (09:55 +0100)]
more translation updates

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

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

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

4 months 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>
4 months 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

4 months 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.

4 months 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

4 months 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

4 months 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

4 months 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

4 months 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>
4 months 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>
4 months 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

4 months 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

5 months 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

5 months 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

5 months 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

6 months 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

6 months 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

6 months 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

6 months 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.

6 months 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.

6 months 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

6 months 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

6 months 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()

6 months 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()

6 months 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

6 months 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().

6 months 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

6 months 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.

6 months 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

6 months 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.

6 months 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()

6 months 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()

6 months 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

6 months 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()

6 months 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.

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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()

6 months 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

6 months 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'

7 months 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().

7 months 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().

7 months 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

7 months 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'

8 months 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

8 months 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.

8 months 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().

8 months 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.

8 months 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.

8 months 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.

8 months 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.

8 months 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

8 months 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.