Go to the documentation of this file.
72 size_t _x_merge_mrl (
char *dest,
size_t dsize,
const char *base_mrl,
const char *new_mrl);
88 if ((cut = strstr (url,
"://")))
91 cut = strstr (base,
"://");
96 cut = cut ? strchr (cut + 3,
'/') :
NULL;
100 cut = cut ? strrchr (cut,
'/') :
NULL;
104 base_length = cut ? (size_t)(cut - base) : strlen (base);
106 return _x_asprintf (
"%.*s%s", (
int)base_length, base, url);
#define XINE_MALLOC
Definition: attributes.h:139
uint32_t args_stop
Definition: http_helper.c:151
uint32_t user_start
Definition: http_helper.c:147
uint32_t prot_start
Definition: http_helper.c:146
uint32_t port
Definition: http_helper.c:153
static char * _x_canonicalise_url(const char *base, const char *url)
Definition: http_helper.h:83
static const uint8_t tab_esclen[256]
Definition: http_helper.c:70
const char * user
Definition: http_helper.h:56
size_t _x_merge_mrl(char *dest, size_t dsize, const char *base_mrl, const char *new_mrl)
merge a new, possibly relative mrl with a given base. result will always be 0 terminated.
Definition: http_helper.c:394
uint32_t info_stop
Definition: http_helper.c:152
uint32_t host_start
Definition: http_helper.c:149
Definition: http_helper.h:49
void _x_url_init(xine_url_t *url)
Definition: http_helper.c:356
const char * _x_url_user_agent(const char *url)
Definition: http_helper.c:495
void _x_url_cleanup(xine_url_t *url)
Definition: http_helper.c:374
void _x_url_init(xine_url_t *url)
Definition: http_helper.c:356
static const uint8_t tab_hex[16]
Definition: http_helper.c:89
const char * password
Definition: http_helper.h:57
uint32_t path_stop
Definition: http_helper.c:150
NULL
Definition: xine_plugin.c:78
static const uint8_t tab_type[256]
Definition: http_helper.c:126
uint32_t prot_stop
Definition: http_helper.c:146
#define _x_assert(exp)
Definition: xineutils.h:550
int _x_url_parse2(const char *mrl, xine_url_t *url)
Definition: http_helper.c:156
uint32_t args_start
Definition: http_helper.c:151
int _x_url_parse2(const char *mrl, xine_url_t *url)
Definition: http_helper.c:156
const char * path
Definition: http_helper.h:53
const char * proto
Definition: http_helper.h:50
const char * _x_url_user_agent(const char *url)
Definition: http_helper.c:495
const char * host
Definition: http_helper.h:51
char * buf
Definition: http_helper.h:58
static void unescape(char **d, const char *s, size_t len)
Definition: http_helper.c:53
uint32_t pass_stop
Definition: http_helper.c:148
size_t _x_merge_mrl(char *dest, size_t dsize, const char *base_mrl, const char *new_mrl)
merge a new, possibly relative mrl with a given base. result will always be 0 terminated.
Definition: http_helper.c:394
Definition: http_helper.c:145
uint32_t user_stop
Definition: http_helper.c:147
static size_t esclen(const char *s, size_t len)
Definition: http_helper.c:91
uint32_t host_stop
Definition: http_helper.c:149
const char * args
Definition: http_helper.h:54
const char * uri
Definition: http_helper.h:55
uint32_t path_start
Definition: http_helper.c:150
int port
Definition: http_helper.h:52
static void escape(char **d, const char *s, size_t len)
Definition: http_helper.c:99
char * _x_asprintf(const char *format,...)
Definition: utils.c:783
static const int8_t tab_unhex[256]
Definition: http_helper.c:34
uint32_t pass_start
Definition: http_helper.c:148
void _x_url_cleanup(xine_url_t *)
Definition: http_helper.c:374
uint32_t info_start
Definition: http_helper.c:152