# HG changeset patch # User zas_ # Date 1209760067 0 # Node ID b68fd1eb3243a7c57342e0b29a504d57319404dc # Parent bdd86d86c8d30527ada261339cffebc802fd39a5 remove_level_from_path() was simplified. diff -r bdd86d86c8d3 -r b68fd1eb3243 src/ui_fileops.c --- a/src/ui_fileops.c Fri May 02 09:03:52 2008 +0000 +++ b/src/ui_fileops.c Fri May 02 20:27:47 2008 +0000 @@ -29,6 +29,7 @@ #include "main.h" #include "ui_fileops.h" +#include "debug.h" #include "ui_utildlg.h" /* for locale warning dialog */ /* @@ -719,18 +720,18 @@ gchar *remove_level_from_path(const gchar *path) { - gchar *new_path; - const gchar *ptr = path; - gint p; + gint p = 0, n = -1; if (!path) return NULL; - p = strlen(path) - 1; - if (p < 0) return NULL; - while (ptr[p] != '/' && p > 0) p--; - if (p == 0 && ptr[p] == '/') p++; - new_path = g_strndup(path, (guint)p); - return new_path; + while (path[p]) + { + if (path[p] == '/') n = p; + p++; + } + if (n <= 0) n++; + + return g_strndup(path, (gsize) n); } gchar *concat_dir_and_file(const gchar *base, const gchar *name)