const char *cur;
if (str == NULL)
- return (-1);
+ return -1;
cur = *str;
if (!ISA_ALPHA(cur))
- return (2);
+ return 2;
cur++;
while (ISA_ALPHA(cur) || ISA_DIGIT(cur) || (*cur == '+') || (*cur == '-') ||
(*cur == '.'))
uri->scheme = g_strndup(*str, cur - *str);
}
*str = cur;
- return (0);
+ return 0;
}
/**
const char *cur;
if (str == NULL)
- return (-1);
+ return -1;
cur = *str;
uri->fragment = uri_string_unescape(*str, cur - *str, NULL);
}
*str = cur;
- return (0);
+ return 0;
}
/**
const char *cur;
if (str == NULL)
- return (-1);
+ return -1;
cur = *str;
uri->query = g_strndup(*str, cur - *str);
}
*str = cur;
- return (0);
+ return 0;
}
/**
uri->user = uri_string_unescape(*str, cur - *str, NULL);
}
*str = cur;
- return (0);
+ return 0;
}
- return (1);
+ return 1;
}
/**
const char *cur = *str;
if (!(ISA_DIGIT(cur)))
- return (1);
+ return 1;
if (!ISA_DIGIT(cur + 1))
cur++;
else if ((*cur != '0') && (ISA_DIGIT(cur + 1)) && (!ISA_DIGIT(cur + 2)))
(*(cur + 1) <= '5'))
cur += 3;
else
- return (1);
+ return 1;
*str = cur;
- return (0);
+ return 0;
}
/**
* rfc3986_parse_host:
while ((*cur != ']') && (*cur != 0))
cur++;
if (*cur != ']')
- return (1);
+ return 1;
cur++;
goto found;
}
uri->server = NULL;
}
*str = cur;
- return (0);
+ return 0;
}
/**
cur++;
ret = rfc3986_parse_host(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
if (*cur == ':') {
cur++;
ret = rfc3986_parse_port(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
}
*str = cur;
- return (0);
+ return 0;
}
/**
cur = *str;
if (!ISA_PCHAR(cur)) {
if (empty)
- return (0);
- return (1);
+ return 0;
+ return 1;
}
while (ISA_PCHAR(cur) && (*cur != forbid))
NEXT(cur);
*str = cur;
- return (0);
+ return 0;
}
/**
cur++;
ret = rfc3986_parse_segment(&cur, 0, 1);
if (ret != 0)
- return (ret);
+ return ret;
}
if (uri != NULL) {
g_free(uri->path);
}
}
*str = cur;
- return (0);
+ return 0;
}
/**
cur = *str;
if (*cur != '/')
- return (1);
+ return 1;
cur++;
ret = rfc3986_parse_segment(&cur, 0, 0);
if (ret == 0) {
cur++;
ret = rfc3986_parse_segment(&cur, 0, 1);
if (ret != 0)
- return (ret);
+ return ret;
}
}
if (uri != NULL) {
}
}
*str = cur;
- return (0);
+ return 0;
}
/**
ret = rfc3986_parse_segment(&cur, 0, 0);
if (ret != 0)
- return (ret);
+ return ret;
while (*cur == '/') {
cur++;
ret = rfc3986_parse_segment(&cur, 0, 1);
if (ret != 0)
- return (ret);
+ return ret;
}
if (uri != NULL) {
g_free(uri->path);
}
}
*str = cur;
- return (0);
+ return 0;
}
/**
ret = rfc3986_parse_segment(&cur, ':', 0);
if (ret != 0)
- return (ret);
+ return ret;
while (*cur == '/') {
cur++;
ret = rfc3986_parse_segment(&cur, 0, 1);
if (ret != 0)
- return (ret);
+ return ret;
}
if (uri != NULL) {
g_free(uri->path);
}
}
*str = cur;
- return (0);
+ return 0;
}
/**
cur += 2;
ret = rfc3986_parse_authority(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
ret = rfc3986_parse_path_ab_empty(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
*str = cur;
- return (0);
+ return 0;
} else if (*cur == '/') {
ret = rfc3986_parse_path_absolute(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
} else if (ISA_PCHAR(cur)) {
ret = rfc3986_parse_path_rootless(uri, &cur);
if (ret != 0)
- return (ret);
+ return ret;
} else {
/* path-empty is effectively empty */
if (uri != NULL) {
}
}
*str = cur;
- return (0);
+ return 0;
}
/**
str += 2;
ret = rfc3986_parse_authority(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
ret = rfc3986_parse_path_ab_empty(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
} else if (*str == '/') {
ret = rfc3986_parse_path_absolute(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
} else if (ISA_PCHAR(str)) {
ret = rfc3986_parse_path_no_scheme(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
} else {
/* path-empty is effectively empty */
if (uri != NULL) {
str++;
ret = rfc3986_parse_query(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
}
if (*str == '#') {
str++;
ret = rfc3986_parse_fragment(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
}
if (*str != 0) {
uri_clean(uri);
- return (1);
+ return 1;
}
- return (0);
+ return 0;
}
/**
ret = rfc3986_parse_scheme(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
if (*str != ':') {
- return (1);
+ return 1;
}
str++;
ret = rfc3986_parse_hier_part(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
if (*str == '?') {
str++;
ret = rfc3986_parse_query(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
}
if (*str == '#') {
str++;
ret = rfc3986_parse_fragment(uri, &str);
if (ret != 0)
- return (ret);
+ return ret;
}
if (*str != 0) {
uri_clean(uri);
- return (1);
+ return 1;
}
- return (0);
+ return 0;
}
/**
int ret;
if (str == NULL)
- return (-1);
+ return -1;
uri_clean(uri);
/*
ret = rfc3986_parse_relative_ref(uri, str);
if (ret != 0) {
uri_clean(uri);
- return (ret);
+ return ret;
}
}
- return (0);
+ return 0;
}
/**
int ret;
if (str == NULL)
- return (NULL);
+ return NULL;
uri = uri_new();
ret = rfc3986_parse_uri_reference(uri, str);
if (ret) {
uri_free(uri);
- return (NULL);
+ return NULL;
}
- return (uri);
+ return uri;
}
/**
*/
int uri_parse_into(URI *uri, const char *str)
{
- return (rfc3986_parse_uri_reference(uri, str));
+ return rfc3986_parse_uri_reference(uri, str);
}
/**
int ret;
if (str == NULL)
- return (NULL);
+ return NULL;
uri = uri_new();
if (raw) {
uri->cleanup |= 2;
ret = uri_parse_into(uri, str);
if (ret) {
uri_free(uri);
- return (NULL);
+ return NULL;
}
- return (uri);
+ return uri;
}
/************************************************************************
URI *ret;
ret = g_new0(URI, 1);
- return (ret);
+ return ret;
}
/**
tmp = *max * 2;
temp = g_realloc(ret, (tmp + 1));
*max = tmp;
- return (temp);
+ return temp;
}
/**
int max;
if (uri == NULL)
- return (NULL);
+ return NULL;
max = 80;
ret = g_malloc(max + 1);
ret = temp;
}
ret[len] = 0;
- return (ret);
+ return ret;
}
/**
char *cur, *out;
if (path == NULL)
- return (-1);
+ return -1;
/* Skip all initial "/" chars. We want to get to the beginning of the
* first non-empty segment.
while (cur[0] == '/')
++cur;
if (cur[0] == '\0')
- return (0);
+ return 0;
/* Keep everything we've seen so far. */
out = cur;
while (cur[0] == '/')
++cur;
if (cur[0] == '\0')
- return (0);
+ return 0;
/*
* Analyze each segment in sequence for cases (e) and (f).
}
}
- return (0);
+ return 0;
}
static int is_hex(char c)
{
if (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) ||
((c >= 'A') && (c <= 'F')))
- return (1);
- return (0);
+ return 1;
+ return 0;
}
/**
const char *in;
if (str == NULL)
- return (NULL);
+ return NULL;
if (len <= 0)
len = strlen(str);
if (len < 0)
- return (NULL);
+ return NULL;
if (target == NULL) {
ret = g_malloc(len + 1);
}
}
*out = 0;
- return (ret);
+ return ret;
}
/**
int len, out;
if (str == NULL)
- return (NULL);
+ return NULL;
if (str[0] == 0)
- return (g_strdup(str));
+ return g_strdup(str);
len = strlen(str);
if (!(len > 0))
- return (NULL);
+ return NULL;
len += 20;
ret = g_malloc(len);
}
}
ret[out] = 0;
- return (ret);
+ return ret;
}
/************************************************************************
uri_free(bas);
if (res != NULL)
uri_free(res);
- return (val);
+ return val;
}
/**