From: Patryk Kaczmarek <patryk.k@samsung.com>
authorPatryk Kaczmarek <patryk.k@samsung.com>
Tue, 18 Sep 2012 11:34:36 +0000 (11:34 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Tue, 18 Sep 2012 11:34:36 +0000 (11:34 +0000)
Subject: [E-devel] [Patch] [Ecore] ecore_file_escape_name fix for \n
and \t

Please review and consider the attached patch for ecore_file_escape_name
function, now it correctly escapes tab and new line characters.

SVN revision: 76803

legacy/ecore/AUTHORS
legacy/ecore/ChangeLog
legacy/ecore/NEWS
legacy/ecore/src/lib/ecore_file/ecore_file.c

index 2cd3b46..e16e1e8 100644 (file)
@@ -53,3 +53,4 @@ Haifeng Deng <haifeng.deng@samsung.com>
 Jérémy Zurcher <jeremy@asynk.ch>
 Vikram Narayanan <vikram186@gmail.com>
 Seong-ho Cho (DarkCircle) <darkcircle.0426@gmail.com>
+Patryk Kaczmarek <patryk.k@samsung.com>
index c757805..e27c9c2 100644 (file)
        * Add string to atom_items for ECORE_X_ATOM_E_ILLUME_WINDOW_STATE, 
        ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_NORMAL, ECORE_X_ATOM_E_ILLUME_WINDOW_STATE_FLOATING
 
+2012-09-18  Patryk Kaczmarek
+
+       * Fix escaping in ecore_file_escape_name() to handle tab and
+       newline right.
+
index 39aea60..7503e77 100644 (file)
@@ -22,6 +22,7 @@ Fixes:
      - Timeouts are handled correctly now (passing HTTP status 408 to
        completion callback).
     * ecore_evas rotation handling on some driver implementations
+    * ecore_file_escape_name() escape taba nd newline right.
 
 Improvements:
 
index cc0be54..e8400ca 100644 (file)
@@ -1017,19 +1017,41 @@ ecore_file_escape_name(const char *filename)
      {
         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 == '?')
+            (*p == ' ') || (*p == '\\') || (*p == '\'') ||
+            (*p == '\"') || (*p == ';') || (*p == '!') ||
+            (*p == '#') || (*p == '$') || (*p == '%') ||
+            (*p == '&') || (*p == '*') || (*p == '(') ||
+            (*p == ')') || (*p == '[') || (*p == ']') ||
+            (*p == '{') || (*p == '}') || (*p == '|') ||
+            (*p == '<') || (*p == '>') || (*p == '?')
             )
           {
              *q = '\\';
              q++;
           }
+        else if (*p == '\t')
+          {
+             *q = '\\';
+             q++;
+             *q = '\\';
+             q++;
+             *q = 't';
+             q++;
+             p++;
+             continue;
+          }
+        else if (*p == '\n')
+          {
+            *q = '\\';
+            q++;
+            *q = '\\';
+            q++;
+            *q = 'n';
+            q++;
+            p++;
+           continue;
+          }
+
         *q = *p;
         q++;
         p++;