X-Git-Url: http://www.project-moonshot.org/gitweb/?p=jansson.git;a=blobdiff_plain;f=src%2Ferror.c;h=074a68e098e8bacb58585dd50404695020e9e910;hp=d113b8facee5fa9f5b52bc146a8236533d9f6dc2;hb=58f9d655358bc0c68bfadbc2946b964c2ac774b7;hpb=a33c3628da8434d91609574f7d07f3c90bb8fe00 diff --git a/src/error.c b/src/error.c index d113b8f..074a68e 100644 --- a/src/error.c +++ b/src/error.c @@ -5,21 +5,29 @@ void jsonp_error_init(json_error_t *error, const char *source) { if(error) { - size_t length; - error->text[0] = '\0'; error->line = -1; error->column = -1; error->position = 0; + if(source) + jsonp_error_set_source(error, source); + else + error->source[0] = '\0'; + } +} + +void jsonp_error_set_source(json_error_t *error, const char *source) +{ + if(!error || !source) + return; - length = strlen(source); - if(length < JSON_ERROR_SOURCE_LENGTH) - strcpy(error->source, source); - else { - size_t extra = length - JSON_ERROR_SOURCE_LENGTH + 4; - strcpy(error->source, "..."); - strcpy(error->source + 3, source + extra); - } + size_t length = strlen(source); + if(length < JSON_ERROR_SOURCE_LENGTH) + strcpy(error->source, source); + else { + size_t extra = length - JSON_ERROR_SOURCE_LENGTH + 4; + strcpy(error->source, "..."); + strcpy(error->source + 3, source + extra); } }