Exemple #1
0
void compress(char *src, char *dst, bool rev)
{
    if (rev)
       	strextr(src, dst);
    else
       	strcompr(src, dst);
}
Exemple #2
0
//prefixes uri with http:// if it's misssing
//resulting text should be freed when no longer needed
gchar *
sanitize_url(gchar *text)
{
	gchar *out;
	gchar *scheme;
	gchar *tmptext = g_strdup(text);
	gchar *tmp = NULL;

	if (strcasestr(text, "file://"))
		return tmptext;

	/* extract feed component (usually first) */
	if (strcasestr(text, "feed://"))
		tmptext = strextr(text, "feed://");
	else if (strcasestr(text, "feed//"))
		tmptext = strextr(text, "feed//");
	else if (strcasestr(text, "feed:"))
		tmptext = strextr(text, "feed:");

	if (strcasestr(text, "http//")) {
		tmp = tmptext;
		tmptext = strextr(tmp, "http//");
	}
	if (!strcasestr(tmptext, "http://") && !strcasestr(tmptext, "https://")) {
		gchar *safetext = g_strconcat("http://", tmptext, NULL);
		g_free(tmptext);
		tmptext=safetext;
	}

	scheme = g_uri_parse_scheme(tmptext);
	d("parsed scheme:%s\n", scheme);
	if (!scheme && !strstr (tmptext, "http://")
	&& !strstr (tmptext, "https://")) {
		out = g_filename_to_uri(tmptext, NULL, NULL);
	} else
		out = g_strdup(tmptext);

	g_free(tmptext);
	g_free(scheme);
	if (tmp) g_free(tmp);
	return out;
}