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) --