Disallow folder names ending with a space on Windows.
authorAndrej Kacian <ticho@claws-mail.org>
Fri, 22 Apr 2016 11:31:41 +0000 (13:31 +0200)
committerAndrej Kacian <ticho@claws-mail.org>
Fri, 22 Apr 2016 11:31:41 +0000 (13:31 +0200)
Closes bug #2781.

src/folder.c
src/plugins/rssyl/rssyl_subscribe.c

index bf286b3205d8004b1193bc36533272c819f9e955..2b4dbe0d12a17f9c8bd3707727795bfd82e52726 100644 (file)
@@ -4820,6 +4820,10 @@ gboolean folder_local_name_ok(const gchar *name)
                alertpanel_error(_("A folder name cannot begin or end with a dot."));
                return FALSE;
        }
+       if (name[strlen(name) - 1] == ' ') {
+               alertpanel_error(_("A folder name can not end with a space."));
+               return FALSE;
+       }
 #endif
 
        return TRUE;
index f80ec82620c7f9280d88c688e9b9bf90ddeec9af..d68f4ce60f5ed04aff5fd2bf4d47681300a0382e 100644 (file)
@@ -129,11 +129,14 @@ gboolean rssyl_subscribe(FolderItem *parent, const gchar *url,
        tmpname2 = g_strdup(tmpname);
 
 #ifdef G_OS_WIN32
-       /* Windows does not allow its filenames to start or end with a dot. */
+       /* Windows does not allow its filenames to start or end with a dot,
+        * or to end with a space. */
        if (tmpname2[0] == '.')
                tmpname2[0] = "_";
        if (tmpname2[strlen(tmpname2) - 1] == '.')
                tmpname2[strlen(tmpname2) - 1] = '_';
+       if (tmpname2[strlen(tmpname2) - 1] == ' ')
+               tmpname2[strlen(tmpname2) - 1] == '_';
 #endif
 
        while (folder_find_child_item_by_name(parent, tmpname2) != 0 && i < 20) {