/pidgin/main: c8fbf4540fac: Remove PurpleDesktopItem for good

Jorge Villase?or salinasv at pidgin.im
Sat Jan 23 14:06:34 EST 2016


Changeset: c8fbf4540face4e784b2e300bd62898265a50543
Author:	 Jorge Villase?or <salinasv at pidgin.im>
Date:	 2016-01-19 00:12 -0800
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/c8fbf4540fac

Description:

Remove PurpleDesktopItem for good

We can use glib's utilities to parse this file when needed.

diffstat:

 doc/reference/libpurple/libpurple-docs.xml |     1 -
 libpurple/Makefile.am                      |     2 -
 libpurple/desktopitem.c                    |  1270 ----------------------------
 libpurple/desktopitem.h                    |   178 ---
 libpurple/purple.h.in                      |     1 -
 5 files changed, 0 insertions(+), 1452 deletions(-)

diffs (truncated from 1499 to 300 lines):

diff --git a/doc/reference/libpurple/libpurple-docs.xml b/doc/reference/libpurple/libpurple-docs.xml
--- a/doc/reference/libpurple/libpurple-docs.xml
+++ b/doc/reference/libpurple/libpurple-docs.xml
@@ -52,7 +52,6 @@
       <xi:include href="xml/idle.xml" />
       <xi:include href="xml/keyring.xml" />
       <xi:include href="xml/memorypool.xml" />
-      <xi:include href="xml/desktopitem.xml" />
       <xi:include href="xml/mime.xml" />
       <xi:include href="xml/nat-pmp.xml" />
       <xi:include href="xml/network.xml" />
diff --git a/libpurple/Makefile.am b/libpurple/Makefile.am
--- a/libpurple/Makefile.am
+++ b/libpurple/Makefile.am
@@ -63,7 +63,6 @@ purple_coresources = \
 	conversations.c \
 	core.c \
 	debug.c \
-	desktopitem.c \
 	e2ee.c \
 	eventloop.c \
 	http.c \
@@ -147,7 +146,6 @@ purple_coreheaders = \
 	core.h \
 	dbus-maybe.h \
 	debug.h \
-	desktopitem.h \
 	e2ee.h \
 	eventloop.h \
 	http.h \
diff --git a/libpurple/desktopitem.c b/libpurple/desktopitem.c
deleted file mode 100644
--- a/libpurple/desktopitem.c
+++ /dev/null
@@ -1,1270 +0,0 @@
-/* Purple is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
- *
- */
-
-/*
- * The following code has been adapted from gnome-desktop-item.[ch],
- * as found on gnome-desktop-2.8.1.
- *
- *   Copyright (C) 2004 by Alceste Scalas <alceste.scalas at gmx.net>.
- *
- * Original copyright notice:
- *
- * Copyright (C) 1999, 2000 Red Hat Inc.
- * Copyright (C) 2001 Sid Vicious
- * All rights reserved.
- *
- * This file is part of the Gnome Library.
- *
- * The Gnome Library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * The Gnome Library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with the Gnome Library; see the file COPYING.LIB.  If not,
- * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02111-1301, USA.
- */
-
-#include "internal.h"
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include "desktopitem.h"
-
-struct _PurpleDesktopItem {
-	int refcount;
-
-	/* all languages used */
-	GList *languages;
-
-	PurpleDesktopItemType type;
-
-	/* `modified' means that the ditem has been
-	 * modified since the last save. */
-	gboolean modified;
-
-	/* Keys of the main section only */
-	GList *keys;
-
-	GList *sections;
-
-	/* This includes ALL keys, including
-	 * other sections, separated by '/' */
-	GHashTable *main_hash;
-
-	char *location;
-
-	time_t mtime;
-};
-
-typedef struct {
-	char *name;
-	GList *keys;
-} Section;
-
-typedef enum {
-	ENCODING_UNKNOWN,
-	ENCODING_UTF8,
-	ENCODING_LEGACY_MIXED
-} Encoding;
-
-/**************************************************************************
- * Private utility functions
- **************************************************************************/
-static PurpleDesktopItemType
-type_from_string (const char *type)
-{
-	if (!type)
-		return PURPLE_DESKTOP_ITEM_TYPE_NULL;
-
-	switch (type [0]) {
-	case 'A':
-		if (purple_strequal (type, "Application"))
-			return PURPLE_DESKTOP_ITEM_TYPE_APPLICATION;
-		break;
-	case 'L':
-		if (purple_strequal (type, "Link"))
-			return PURPLE_DESKTOP_ITEM_TYPE_LINK;
-		break;
-	case 'F':
-		if (purple_strequal (type, "FSDevice"))
-			return PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE;
-		break;
-	case 'M':
-		if (purple_strequal (type, "MimeType"))
-			return PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE;
-		break;
-	case 'D':
-		if (purple_strequal (type, "Directory"))
-			return PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY;
-		break;
-	case 'S':
-		if (purple_strequal (type, "Service"))
-			return PURPLE_DESKTOP_ITEM_TYPE_SERVICE;
-
-		else if (purple_strequal (type, "ServiceType"))
-			return PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE;
-		break;
-	default:
-		break;
-	}
-
-	return PURPLE_DESKTOP_ITEM_TYPE_OTHER;
-}
-
-static Section *
-find_section (PurpleDesktopItem *item, const char *section)
-{
-	GList *li;
-	Section *sec;
-
-	if (section == NULL)
-		return NULL;
-	if (purple_strequal (section, "Desktop Entry"))
-		return NULL;
-
-	for (li = item->sections; li != NULL; li = li->next) {
-		sec = li->data;
-		if (purple_strequal (sec->name, section))
-			return sec;
-	}
-
-	sec = g_new0 (Section, 1);
-	sec->name = g_strdup (section);
-	sec->keys = NULL;
-
-	item->sections = g_list_append (item->sections, sec);
-
-	/* Don't mark the item modified, this is just an empty section,
-	 * it won't be saved even */
-
-	return sec;
-}
-
-static Section *
-section_from_key (PurpleDesktopItem *item, const char *key)
-{
-	char *p;
-	char *name;
-	Section *sec;
-
-	if (key == NULL)
-		return NULL;
-
-	p = strchr (key, '/');
-	if (p == NULL)
-		return NULL;
-
-	name = g_strndup (key, p - key);
-
-	sec = find_section (item, name);
-
-	g_free (name);
-
-	return sec;
-}
-
-static const char *
-key_basename (const char *key)
-{
-	char *p = strrchr (key, '/');
-	if (p != NULL)
-		return p+1;
-	else
-		return key;
-}
-
-static void
-set (PurpleDesktopItem *item, const char *key, const char *value)
-{
-	Section *sec = section_from_key (item, key);
-
-	if (sec != NULL) {
-		if (value != NULL) {
-			if (g_hash_table_lookup (item->main_hash, key) == NULL)
-				sec->keys = g_list_append
-					(sec->keys,
-					 g_strdup (key_basename (key)));
-
-			g_hash_table_replace (item->main_hash,
-					      g_strdup (key),
-					      g_strdup (value));
-		} else {
-			GList *list = g_list_find_custom
-				(sec->keys, key_basename (key),
-				 (GCompareFunc)strcmp);
-			if (list != NULL) {
-				g_free (list->data);
-				sec->keys =
-					g_list_delete_link (sec->keys, list);
-			}
-			g_hash_table_remove (item->main_hash, key);
-		}
-	} else {
-		if (value != NULL) {
-			if (g_hash_table_lookup (item->main_hash, key) == NULL)
-				item->keys = g_list_append (item->keys,
-							    g_strdup (key));
-
-			g_hash_table_replace (item->main_hash,
-					      g_strdup (key),
-					      g_strdup (value));
-		} else {
-			GList *list = g_list_find_custom
-				(item->keys, key, (GCompareFunc)strcmp);
-			if (list != NULL) {
-				g_free (list->data);
-				item->keys =
-					g_list_delete_link (item->keys, list);
-			}
-			g_hash_table_remove (item->main_hash, key);
-		}
-	}
-	item->modified = TRUE;
-}
-
-
-static void
-_purple_desktop_item_set_string (PurpleDesktopItem *item,
-			       const char *attr,
-			       const char *value)
-{
-	g_return_if_fail (item != NULL);
-	g_return_if_fail (item->refcount > 0);
-	g_return_if_fail (attr != NULL);
-
-	set (item, attr, value);
-
-	if (purple_strequal (attr, PURPLE_DESKTOP_ITEM_TYPE))
-		item->type = type_from_string (value);
-}
-



More information about the Commits mailing list