Eolian/Generator: Fix Windows issue during string manipulation.
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Thu, 29 May 2014 12:41:10 +0000 (15:41 +0300)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Thu, 5 Jun 2014 08:34:44 +0000 (11:34 +0300)
For Windows, it is simpler to replace all the \r\n with \n after having
read the file.

src/bin/eolian/main.c
src/lib/eolian/eo_lexer.c
src/lib/eolian/eo_lexer.rl

index c15c890..538d2de 100644 (file)
@@ -155,6 +155,9 @@ _generate_impl_c_file(char *filename, const Eolian_Class class)
         fd = NULL;
 
         buffer = eina_strbuf_manage_new(content);
+#ifdef _WIN32
+        eina_strbuf_replace_all(buffer, "\r\n", "\n");
+#endif
      }
    else
       buffer = eina_strbuf_new();
index 5bae114..f172da9 100644 (file)
@@ -4512,6 +4512,16 @@ eo_tokenizer_database_fill(const char *filename)
         goto end;
      }
 
+   buffer[len] = '\0';
+#if _WIN32
+   {
+      Eina_Strbuf *str_buffer = eina_strbuf_manage_new(buffer);
+      if (eina_strbuf_replace_all(str_buffer, "\r\n", "\n"))
+         len = eina_strbuf_length_get(str_buffer);
+      buffer = eina_strbuf_string_steal(str_buffer);
+      eina_strbuf_free(str_buffer);
+   }
+#endif
    if (!eo_tokenizer_mem_walk(toknz, filename, buffer, len)) goto end;
 
    if (!toknz->classes)
index 2a6f498..26227d7 100644 (file)
@@ -1378,6 +1378,16 @@ eo_tokenizer_database_fill(const char *filename)
         goto end;
      }
 
+   buffer[len] = '\0';
+#if _WIN32
+   {
+      Eina_Strbuf *str_buffer = eina_strbuf_manage_new(buffer);
+      if (eina_strbuf_replace_all(str_buffer, "\r\n", "\n"))
+         len = eina_strbuf_length_get(str_buffer);
+      buffer = eina_strbuf_string_steal(str_buffer);
+      eina_strbuf_free(str_buffer);
+   }
+#endif
    if (!eo_tokenizer_mem_walk(toknz, filename, buffer, len)) goto end;
 
    if (!toknz->classes)