Revision: 3663 http://geany.svn.sourceforge.net/geany/?rev=3663&view=rev Author: eht16 Date: 2009-03-27 15:40:19 +0000 (Fri, 27 Mar 2009)
Log Message: ----------- Add utils_path_skip_root(), a relative path safe variant of g_path_skip_root (forgotten patch by Colomban Wendling, #2518658).
Modified Paths: -------------- trunk/ChangeLog trunk/src/keyfile.c trunk/src/utils.c trunk/src/utils.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2009-03-27 15:39:36 UTC (rev 3662) +++ trunk/ChangeLog 2009-03-27 15:40:19 UTC (rev 3663) @@ -1,6 +1,13 @@ +2009-03-27 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de> + + * src/keyfile.c, src/utils.c, src/utils.h: + Add utils_path_skip_root(), a relative path safe variant of + g_path_skip_root (forgotten patch by Colomban Wendling, #2518658). + + 2009-03-26 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
- * src\main.c, src\plugins.c, src\win32.c, src\win32.h: + * src/main.c, src/plugins.c, src/win32.c, src/win32.h: Use g_win32_get_package_installation_directory_of_module() on Windows with newer GLib versions instead of deprecated API. * src/keybindings.c:
Modified: trunk/src/keyfile.c =================================================================== --- trunk/src/keyfile.c 2009-03-27 15:39:36 UTC (rev 3662) +++ trunk/src/keyfile.c 2009-03-27 15:40:19 UTC (rev 3663) @@ -231,7 +231,6 @@ { gchar *fname; gchar *locale_filename; - gchar *rootless_filename; GeanyFiletype *ft = doc->file_type;
if (ft == NULL) /* can happen when saving a new file when quitting */ @@ -243,10 +242,7 @@ * writing with usual colons which must never appear in a filename and replace them * back when we read the file again from the file. * (g_path_skip_root() to skip C:... on Windows) */ - rootless_filename = (gchar *) g_path_skip_root(locale_filename); - if (locale_filename == NULL) - rootless_filename = locale_filename; - g_strdelimit(rootless_filename, ";", ':'); + g_strdelimit((gchar*) utils_path_skip_root(locale_filename), ";", ':');
fname = g_strdup_printf("%d;%s;%d;%d;%d;%d;%d;%s;%d", sci_get_current_position(doc->editor->sci), @@ -894,7 +890,6 @@ guint pos; const gchar *ft_name; gchar *locale_filename; - gchar *rootless_filename; gint enc_idx, indent_type; gboolean ro, auto_indent, line_wrapping; /** TODO when we have a global pref for line breaking, use its value */ @@ -911,10 +906,7 @@ /* try to get the locale equivalent for the filename */ locale_filename = utils_get_locale_from_utf8(tmp[7]); /* replace ':' back with ';' (see get_session_file_string for details) */ - rootless_filename = (gchar *) g_path_skip_root(locale_filename); - if (locale_filename == NULL) - rootless_filename = locale_filename; - g_strdelimit(rootless_filename, ":", ';'); + g_strdelimit((gchar*) utils_path_skip_root(locale_filename), ":", ';');
if (len > 8) line_breaking = atoi(tmp[8]);
Modified: trunk/src/utils.c =================================================================== --- trunk/src/utils.c 2009-03-27 15:39:36 UTC (rev 3662) +++ trunk/src/utils.c 2009-03-27 15:40:19 UTC (rev 3663) @@ -319,6 +319,19 @@ }
+/* Skips root if path is absolute, do nothing otherwise. + * This is a relative-safe version of g_path_skip_root(). + */ +const gchar *utils_path_skip_root(const gchar *path) +{ + const gchar *path_relative; + + path_relative = g_path_skip_root(path); + + return (path_relative != NULL) ? path_relative : path; +} + + gdouble utils_scale_round(gdouble val, gdouble factor) { /*val = floor(val * factor + 0.5);*/
Modified: trunk/src/utils.h =================================================================== --- trunk/src/utils.h 2009-03-27 15:39:36 UTC (rev 3662) +++ trunk/src/utils.h 2009-03-27 15:40:19 UTC (rev 3663) @@ -76,6 +76,8 @@
gboolean utils_is_absolute_path(const gchar *path);
+const gchar *utils_path_skip_root(const gchar *path); + gdouble utils_scale_round(gdouble val, gdouble factor);
gboolean utils_str_equal(const gchar *a, const gchar *b);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.