diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index c15c890830..538d2de395 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 5bae114fde..f172da9bc5 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 2a6f4986ed..26227d7a6b 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)