jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e7faaf9fc5dde56a9d07a046a4fbfbe2f2161f27

commit e7faaf9fc5dde56a9d07a046a4fbfbe2f2161f27
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Thu May 29 15:41:10 2014 +0300

    Eolian/Generator: Fix Windows issue during string manipulation.
    
    For Windows, it is simpler to replace all the \r\n with \n after having
    read the file.
---
 src/bin/eolian/main.c      |  3 +++
 src/lib/eolian/eo_lexer.c  | 10 ++++++++++
 src/lib/eolian/eo_lexer.rl | 10 ++++++++++
 3 files changed, 23 insertions(+)

diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c
index c15c890..538d2de 100644
--- a/src/bin/eolian/main.c
+++ b/src/bin/eolian/main.c
@@ -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();
diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 5bae114..f172da9 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -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)
diff --git a/src/lib/eolian/eo_lexer.rl b/src/lib/eolian/eo_lexer.rl
index 2a6f498..26227d7 100644
--- a/src/lib/eolian/eo_lexer.rl
+++ b/src/lib/eolian/eo_lexer.rl
@@ -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)

-- 


Reply via email to