Changeset 2116

Show
Ignore:
Timestamp:
06/16/09 11:52:29 (15 months ago)
Author:
drobilla
Message:

Don't kludge locale around queries.

Location:
trunk/slv2/src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/slv2/src/query.c

    r2086 r2116  
    146146        } 
    147147 
    148         // Reset numeric locale to correctly interpret turtle numeric constants 
    149         char* locale = strdup(setlocale(LC_NUMERIC, NULL)); 
    150         setlocale(LC_NUMERIC, "POSIX"); 
    151  
    152148        librdf_query_results* results = librdf_query_execute(query, plugin->rdf); 
    153  
    154         // Restore numeric locale 
    155         setlocale(LC_NUMERIC, locale); 
    156  
    157         free(locale); 
    158149 
    159150        librdf_free_query(query); 
  • trunk/slv2/src/scalepoint.c

    r2007 r2116  
    2222#include <string.h> 
    2323#include <assert.h> 
    24 #include <locale.h> 
    2524#include <raptor.h> 
    2625#include "slv2/types.h" 
  • trunk/slv2/src/value.c

    r2086 r2116  
    3333slv2_value_set_numerics_from_string(SLV2Value val) 
    3434{ 
    35         // FIXME: locale kludges to work around librdf bug 
     35        // FIXME: locale kludge, need a locale independent strtol and strtod 
    3636        char* locale = strdup(setlocale(LC_NUMERIC, NULL)); 
    3737 
     
    228228        size_t len    = 0; 
    229229        char*  result = NULL; 
    230         char*  locale = strdup(setlocale(LC_NUMERIC, NULL)); 
    231  
    232         // FIXME: locale kludges to work around librdf bug 
     230        char*  locale = NULL; 
    233231 
    234232        switch (value->type) { 
     
    244242        case SLV2_VALUE_INT: 
    245243            // INT64_MAX is 9223372036854775807 (19 digits) + 1 for sign 
     244            // FIXME: locale kludge, need a locale independent snprintf 
     245            locale = strdup(setlocale(LC_NUMERIC, NULL)); 
    246246                len = 20; 
    247247                result = calloc(len, sizeof(char)); 
     
    251251                break; 
    252252        case SLV2_VALUE_FLOAT: 
     253            // FIXME: locale kludge, need a locale independent snprintf 
     254            locale = strdup(setlocale(LC_NUMERIC, NULL)); 
    253255                len = 20; // FIXME: proper maximum value? 
    254256                result = calloc(len, sizeof(char));