Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_file


Modified Files:
        ecore_file.c 


Log Message:
Only allocate the necessary amount of memory

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_file/ecore_file.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- ecore_file.c        6 Oct 2005 18:48:03 -0000       1.27
+++ ecore_file.c        7 Oct 2005 17:32:31 -0000       1.28
@@ -381,14 +381,22 @@
 char *
 ecore_file_strip_ext(const char *path)
 {
-   char *p, *file;
+   char *p, *file = NULL;
 
-   file = strdup(path);
-   if (!file) return NULL;
-
-   p = strrchr(file, '.');
-   if (p)
-     *p = 0;
+   p = strrchr(path, '.');
+   if (!p)
+     {
+       file = strdup(path);
+     }
+   else if (p != path)
+     {
+       file = malloc(((p - path) + 1) * sizeof(char));
+       if (file)
+         {
+            memcpy(file, path, (p - path));
+            file[p - path] = 0;
+         }
+     }
 
    return file;
 }




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to