From 51a7516176026a9ce98b07b0c98f71298a5976c2 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 29 Oct 2009 13:47:07 -0400 Subject: Correct locale "transaction" handling in dmnsn_tokenize(). --- dimension/tokenize.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'dimension/tokenize.c') diff --git a/dimension/tokenize.c b/dimension/tokenize.c index 508d6d7..03a6a6f 100644 --- a/dimension/tokenize.c +++ b/dimension/tokenize.c @@ -388,14 +388,6 @@ dmnsn_tokenize_directive(const char *filename, dmnsn_array * dmnsn_tokenize(const char *filename, FILE *file) { - /* Save the current locale */ - char *lc_ctype = strdup(setlocale(LC_CTYPE, NULL)); - char *lc_numeric = strdup(setlocale(LC_NUMERIC, NULL)); - - /* Set the locale to `C' to make isalpha(), strtoul(), etc. consistent */ - setlocale(LC_CTYPE, "C"); - setlocale(LC_NUMERIC, "C"); - if (fseeko(file, 0, SEEK_END) != 0) { fprintf(stderr, "Couldn't seek on input stream\n"); return NULL; @@ -416,6 +408,14 @@ dmnsn_tokenize(const char *filename, FILE *file) return NULL; } + /* Save the current locale */ + char *lc_ctype = strdup(setlocale(LC_CTYPE, NULL)); + char *lc_numeric = strdup(setlocale(LC_NUMERIC, NULL)); + + /* Set the locale to `C' to make isalpha(), strtoul(), etc. consistent */ + setlocale(LC_CTYPE, "C"); + setlocale(LC_NUMERIC, "C"); + dmnsn_token token; dmnsn_array *tokens = dmnsn_new_array(sizeof(dmnsn_token)); -- cgit v1.2.3