Beispiel #1
0
static PurpleSmiley *
purple_smiley_load_file(const char *shortcut, const char *checksum, const char *filename)
{
	PurpleSmiley *smiley = NULL;
	guchar *smiley_data;
	size_t smiley_data_len;
	char *fullpath = NULL;

	g_return_val_if_fail(shortcut  != NULL, NULL);
	g_return_val_if_fail(checksum  != NULL, NULL);
	g_return_val_if_fail(filename != NULL, NULL);

	fullpath = get_file_full_path(filename);
	if (!fullpath)
		return NULL;

	smiley = purple_smiley_create(shortcut);
	if (!smiley) {
		g_free(fullpath);
		return NULL;
	}

	smiley->checksum = g_strdup(checksum);

	if (read_smiley_file(fullpath, &smiley_data, &smiley_data_len))
		purple_smiley_set_data_impl(smiley, smiley_data,
				smiley_data_len);
	else
		purple_smiley_delete(smiley);

	g_free(fullpath);

	return smiley;
}
Beispiel #2
0
static void
purple_smiley_load_file(const char *shortcut, const char *checksum, const char *filename)
{
	PurpleSmiley *smiley = NULL;
	PurpleSmileyPrivate *priv = NULL;
	guchar *smiley_data;
	size_t smiley_data_len;
	char *fullpath = NULL;

	g_return_if_fail(shortcut  != NULL);
	g_return_if_fail(checksum  != NULL);
	g_return_if_fail(filename != NULL);

	fullpath = get_file_full_path(filename);
	if (!fullpath) {
		purple_debug_error(SMILEYS_LOG_ID, "Path for filename %s doesn't exist\n", filename);
		return;
	}

	smiley = purple_smiley_create(shortcut);
	if (!smiley) {
		g_free(fullpath);
		return;
	}

	priv = PURPLE_SMILEY_GET_PRIVATE(smiley);

	priv->checksum = g_strdup(checksum);

	if (read_smiley_file(fullpath, &smiley_data, &smiley_data_len))
		purple_smiley_set_data_impl(smiley, smiley_data,
				smiley_data_len);
	else
		purple_smiley_delete(smiley);

	g_free(fullpath);

}