From f1f3155ef6f28fb8595920e5423336b39bba4ed0 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 14 Feb 2009 22:55:32 +0000 Subject: Port libcss to libwapcaplet. It passes the tests, perhaps we need more of them. Lifetimes of lwc_string objects really need attention before we can consider this finished. svn path=/trunk/libcss/; revision=6517 --- src/utils/utils.c | 10 +++++----- src/utils/utils.h | 19 ++++++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) (limited to 'src/utils') diff --git a/src/utils/utils.c b/src/utils/utils.c index a8d0cb5..29c7ec1 100644 --- a/src/utils/utils.c +++ b/src/utils/utils.c @@ -7,7 +7,7 @@ #include "utils/utils.h" -css_fixed number_from_css_string(const css_string *string, +css_fixed number_from_lwc_string(lwc_string *string, bool int_only, size_t *consumed) { size_t len; @@ -17,11 +17,11 @@ css_fixed number_from_css_string(const css_string *string, int32_t fracpart = 0; int32_t pwr = 1; - if (string == NULL || string->len == 0 || consumed == NULL) + if (string == NULL || lwc_string_length(string) == 0 || consumed == NULL) return 0; - len = string->len; - ptr = string->data; + len = lwc_string_length(string); + ptr = (uint8_t *)lwc_string_data(string); /* number = [+-]? ([0-9]+ | [0-9]* '.' [0-9]+) */ @@ -91,7 +91,7 @@ css_fixed number_from_css_string(const css_string *string, } } - *consumed = ptr - string->data; + *consumed = (char *)ptr - lwc_string_data(string); if (sign > 0) { /* If the result is larger than we can represent, diff --git a/src/utils/utils.h b/src/utils/utils.h index 6a3ddad..4661442 100644 --- a/src/utils/utils.h +++ b/src/utils/utils.h @@ -8,7 +8,10 @@ #ifndef css_utils_h_ #define css_utils_h_ +#include + #include +#include #ifndef max #define max(a,b) ((a)>(b)?(a):(b)) @@ -27,7 +30,7 @@ #define UNUSED(x) ((x)=(x)) #endif -css_fixed number_from_css_string(const css_string *string, bool int_only, +css_fixed number_from_lwc_string(lwc_string *string, bool int_only, size_t *consumed); static inline bool isDigit(uint8_t c) @@ -80,4 +83,18 @@ static inline uint32_t charToHex(uint8_t c) return 0; } +static inline css_error +css_error_from_lwc_error(lwc_error err) +{ + switch (err) { + case lwc_error_ok: + return CSS_OK; + case lwc_error_oom: + return CSS_NOMEM; + case lwc_error_range: + return CSS_BADPARM; + } + return CSS_INVALID; +} + #endif -- cgit v1.2.3