Put number in front of download filename extension

This commit is contained in:
Peter de Ridder 2010-06-30 21:15:11 +02:00 committed by Christian Dywan
parent e7e2181858
commit d1694c6d5f

View file

@ -1464,17 +1464,32 @@ midori_view_download_requested_cb (GtkWidget* view,
/* If the filename exists, choose a different name */ /* If the filename exists, choose a different name */
if (g_access (filename, F_OK) == 0) if (g_access (filename, F_OK) == 0)
{ {
/* FIXME: Put the number in front of the extension */ /* Put the number in front of the extension */
gsize length = strlen (filename); gchar* extension = strrchr (filename, '.');
gsize length = extension ? (gsize)(extension - filename) : strlen (filename);
do do
{ {
if (g_ascii_isdigit (filename[length - 1])) if (g_ascii_isdigit (filename[length - 1]))
filename[length - 1] += 1; filename[length - 1] += 1; /* FIXME: This will increment '9' to ':' */
else else
{ {
gchar* new_filename = g_strconcat (filename, "0", NULL); gchar* new_filename;
if (extension)
{
/* Change the '.' to a '\0' to put the 0 in between */
*extension++ = '\0';
new_filename= g_strconcat (filename, "0.", extension, NULL);
}
else
new_filename = g_strconcat (filename, "0", NULL);
katze_assign (filename, new_filename); katze_assign (filename, new_filename);
length = strlen (filename); if (extension)
{
extension = strrchr (filename, '.');
length = extension - filename;
}
else
length = strlen (filename);
} }
} }
while (g_access (filename, F_OK) == 0); while (g_access (filename, F_OK) == 0);