loader_aw

Load OBJ/MTL file formats
git clone git://git.meso-star.fr/loader_aw.git
Log | Files | Refs | README | LICENSE

commit 66e21a355a05fd5571ee548e9db238d8bb0a56ea
parent 56f834a38e4322131993b136cfecb9bc606a4ab0
Author: vaplv <vaplv@free.fr>
Date:   Tue, 30 Sep 2014 15:43:21 +0200

Handle the \r\n end of line

Diffstat:
Msrc/aw_mtl.c | 7++++---
Msrc/aw_obj.c | 9++++++---
Msrc/test_aw_obj.c | 2+-
3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/aw_mtl.c b/src/aw_mtl.c @@ -646,9 +646,10 @@ aw_mtl_load_stream(struct aw_mtl* mtl, FILE* stream) if(!fgets(line + strlen(line), (int)buf_chunk, stream)) /* EOF */ break; } - last_char = strlen(line) - 1; - if(line[last_char] == '\n') /* Remove the newline character */ - line[last_char] = '\0'; + /* Remove the newline character(s) */ + last_char = strlen(line); + while(last_char-- && (line[last_char]=='\n' || line[last_char]=='\r')); + line[last_char + 1] = '\0'; if(R_OK != (res = parse_mtl_line(mtl, line))) goto error; diff --git a/src/aw_obj.c b/src/aw_obj.c @@ -462,6 +462,7 @@ parse_obj_line(struct aw_obj* obj, char* line) logger_print(obj->logger, LOG_ERROR, "%s:%lu: warning: ignored or malformed directive %s\n", obj->filename, (unsigned long)obj->iline, word); + while((word = strtok_r(NULL, " \t", &word_tk))); /* Skip the line */ } if(res != R_OK) goto error; @@ -636,9 +637,11 @@ aw_obj_load_stream(struct aw_obj* obj, FILE* stream) if(!fgets(line + strlen(line), (int)buf_chunk, stream)) /* EOF */ break; } - last_char = strlen(line) - 1; - if(line[last_char] == '\n') /* Remove the newline character */ - line[last_char] = '\0'; + + /* Remove the newline character(s) */ + last_char = strlen(line); + while(last_char-- && (line[last_char]=='\n' || line[last_char]=='\r')); + line[last_char + 1] = '\0'; if(R_OK != (res = parse_obj_line(obj, line))) goto error; diff --git a/src/test_aw_obj.c b/src/test_aw_obj.c @@ -389,7 +389,7 @@ test_cbox(struct aw_obj* obj) "v -1.02 1.99 0.99\n" "g left\n" "usemtl left\n" - "f -4 -3 -2 -1\n"; + "f -4 -3 -2 -1"; struct aw_obj_desc desc; struct aw_obj_face face; struct aw_obj_vertex vertex;