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

Re: [E-devel] E CVS: libs/ecore onefang



Enlightenment CVS wrote:
Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : libs/ecore

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


Modified Files:
Ecore_File.h ecore_file.c

Log Message:
Copy filename escaping code from e_utils to make it more generally available.
Step 2 is to remove the original and have everything call this one instead.

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_file/Ecore_File.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- Ecore_File.h	8 Sep 2006 16:52:29 -0000	1.27
+++ Ecore_File.h	28 Oct 2006 08:48:11 -0000	1.28
@@ -76,6 +76,7 @@
    EAPI char       *ecore_file_readlink     (const char *link);
    EAPI Ecore_List *ecore_file_ls           (const char *dir);
    EAPI char       *ecore_file_app_exe_get  (const char *app);
+   EAPI char       *ecore_file_escape_name  (const char *filename);
    EAPI char       *ecore_file_strip_ext    (const char *file);
EAPI Ecore_File_Monitor *ecore_file_monitor_add(const char *path,
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_file/ecore_file.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- ecore_file.c	15 Oct 2006 09:32:25 -0000	1.49
+++ ecore_file.c	28 Oct 2006 08:48:11 -0000	1.50
@@ -480,6 +480,40 @@
 }
EAPI char *
+ecore_file_escape_name(const char *filename)
+{
+   const char *p;
+   char *q;
+   static char buf[PATH_MAX];
+ + p = filename;
+   q = buf;
+   while (*p)
+     {
+	if ((q - buf) > (PATH_MAX - 6)) return NULL;
+	if (
+	    (*p == ' ') || (*p == '\t') || (*p == '\n') ||
+	    (*p == '\\') || (*p == '\'') || (*p == '\"') ||
+	    (*p == ';') || (*p == '!') || (*p == '#') ||
+	    (*p == '$') || (*p == '%') || (*p == '&') ||
+	    (*p == '*') || (*p == '(') || (*p == ')') ||
+	    (*p == '[') || (*p == ']') || (*p == '{') ||
+	    (*p == '}') || (*p == '|') || (*p == '<') ||
+	    (*p == '>') || (*p == '?')
+	    )
+	  {
+	     *q = '\\';
+	     q++;
+	  }
+	*q = *p;
+	q++;
+	p++;
+     }
+   *q = 0;
+   return strdup(buf);
+}
+
+EAPI char *
 ecore_file_strip_ext(const char *path)
 {
    char *p, *file = NULL;

Do you really want "static" in "static char buf[PATH_MAX]" ?

/Kim