eel r2156 - in trunk: . eel



Author: cneumair
Date: Mon Sep  1 10:21:46 2008
New Revision: 2156
URL: http://svn.gnome.org/viewvc/eel?rev=2156&view=rev

Log:
2008-09-01  Christian Neumair  <cneumair gnome org>

	* eel/eel-vfs-extensions.c (eel_filename_strip_extension),
	(eel_filename_get_rename_region):
	* eel/eel-vfs-extensions.h:
	Add eel_filename_strip_extension(), and use it in
	eel_filename_get_rename_region(). Part of #309510. Thanks to Paolo
	Borelli <pborelli katamail com> and Jared Moore <jaredm gmx com>.


Modified:
   trunk/ChangeLog
   trunk/eel/eel-vfs-extensions.c
   trunk/eel/eel-vfs-extensions.h

Modified: trunk/eel/eel-vfs-extensions.c
==============================================================================
--- trunk/eel/eel-vfs-extensions.c	(original)
+++ trunk/eel/eel-vfs-extensions.c	Mon Sep  1 10:21:46 2008
@@ -123,15 +123,17 @@
 	return res;
 }
 
-void
-eel_filename_get_rename_region (const char           *filename,
-				int                  *start_offset,
-				int                  *end_offset)
+char *
+eel_filename_strip_extension (const char * filename_with_extension)
 {
-	const char *end, *end2;
+	char *filename, *end, *end2;
 
-	*start_offset = 0;
+	if (filename_with_extension == NULL) {
+		return NULL;
+	}
 	
+	filename = g_strdup (filename_with_extension);
+
 	end = strrchr (filename, '.');
 
 	if (end && end != filename) {
@@ -148,8 +150,29 @@
 				end = end2;
 			}
 		}
-		*end_offset = g_utf8_pointer_to_offset (filename, end);
-	} else {
-		*end_offset = g_utf8_strlen (filename, -1);
+		*end = '\0';
 	}
+
+	return filename;
+}
+
+void
+eel_filename_get_rename_region (const char           *filename,
+				int                  *start_offset,
+				int                  *end_offset)
+{
+	char *filename_without_extension;
+
+	g_return_if_fail (start_offset != NULL);
+	g_return_if_fail (end_offset != NULL);
+
+	*start_offset = 0;
+	*end_offset = 0;
+
+	g_return_if_fail (filename != NULL);
+
+	filename_without_extension = eel_filename_strip_extension (filename);
+	*end_offset = g_utf8_strlen (filename_without_extension, -1);
+
+	g_free (filename_without_extension);
 }

Modified: trunk/eel/eel-vfs-extensions.h
==============================================================================
--- trunk/eel/eel-vfs-extensions.h	(original)
+++ trunk/eel/eel-vfs-extensions.h	Mon Sep  1 10:21:46 2008
@@ -47,6 +47,7 @@
 char *             eel_format_uri_for_display            (const char           *uri);
 char *             eel_make_valid_utf8                   (const char           *name);
 
+char *             eel_filename_strip_extension          (const char           *filename);
 void               eel_filename_get_rename_region        (const char           *filename,
 							  int                  *start_offset,
 							  int                  *end_offset);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]