summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-xml-extensions.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-extensions/nautilus-xml-extensions.c')
-rw-r--r--libnautilus-extensions/nautilus-xml-extensions.c216
1 files changed, 0 insertions, 216 deletions
diff --git a/libnautilus-extensions/nautilus-xml-extensions.c b/libnautilus-extensions/nautilus-xml-extensions.c
deleted file mode 100644
index 652b99b23..000000000
--- a/libnautilus-extensions/nautilus-xml-extensions.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-
-/* nautilus-xml-extensions.c - functions that extend gnome-xml
-
- Copyright (C) 2000 Eazel, Inc.
-
- 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., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Authors: Darin Adler <darin@eazel.com>
-*/
-
-#include <config.h>
-#include "nautilus-xml-extensions.h"
-
-#include "nautilus-string.h"
-#include <glib.h>
-#include <gnome-xml/parser.h>
-#include <gnome-xml/xmlmemory.h>
-#include <libgnome/gnome-defs.h>
-#include <libgnome/gnome-i18n.h>
-#include <stdlib.h>
-
-xmlNodePtr
-nautilus_xml_get_children (xmlNodePtr parent)
-{
- if (parent == NULL) {
- return NULL;
- }
- return parent->xmlChildrenNode;
-}
-
-xmlNodePtr
-nautilus_xml_get_root_children (xmlDocPtr document)
-{
- return nautilus_xml_get_children (xmlDocGetRootElement (document));
-}
-
-xmlNodePtr
-nautilus_xml_get_child_by_name_and_property (xmlNodePtr parent,
- const char *child_name,
- const char *property_name,
- const char *property_value)
-{
- xmlNodePtr child;
- xmlChar *property;
- gboolean match;
-
- if (parent == NULL) {
- return NULL;
- }
- for (child = nautilus_xml_get_children (parent); child != NULL; child = child->next) {
- if (strcmp (child->name, child_name) == 0) {
- property = xmlGetProp (child, property_name);
- match = nautilus_strcmp (property, property_value) == 0;
- xmlFree (property);
- if (match) {
- return child;
- }
- }
- }
- return NULL;
-}
-
-/* return a child of the passed-in node with a matching name */
-
-xmlNodePtr
-nautilus_xml_get_child_by_name (xmlNodePtr parent,
- const char *child_name)
-{
- xmlNodePtr child;
-
- if (parent == NULL) {
- return NULL;
- }
- for (child = nautilus_xml_get_children (parent); child != NULL; child = child->next) {
- if (strcmp (child->name, child_name) == 0) {
- return child;
- }
- }
- return NULL;
-}
-
-
-xmlNodePtr
-nautilus_xml_get_root_child_by_name_and_property (xmlDocPtr document,
- const char *child_name,
- const char *property_name,
- const char *property_value)
-{
- return nautilus_xml_get_child_by_name_and_property
- (xmlDocGetRootElement (document),
- child_name,
- property_name,
- property_value);
-}
-
-/**
- * nautilus_xml_get_property_for_children
- *
- * Returns a list of the values for the specified property for all
- * children of the node that have the specified name.
- *
- * @parent: xmlNodePtr representing the node in question.
- * @child_name: child element name to look for
- * @property: name of propety to reutnr for matching children that have the property
- *
- * Returns: A list of keywords.
- *
- **/
-GList *
-nautilus_xml_get_property_for_children (xmlNodePtr parent,
- const char *child_name,
- const char *property_name)
-{
- GList *properties;
- xmlNode *child;
- xmlChar *property;
-
- properties = NULL;
-
- for (child = nautilus_xml_get_children (parent);
- child != NULL;
- child = child->next) {
- if (strcmp (child->name, child_name) == 0) {
- property = xmlGetProp (child, property_name);
- if (property != NULL) {
- properties = g_list_prepend (properties,
- g_strdup (property));
- xmlFree (property);
- }
- }
- }
-
- /* Reverse so you get them in the same order as the XML file. */
- return g_list_reverse (properties);
-}
-
-xmlChar *
-nautilus_xml_get_property_translated (xmlNodePtr parent,
- const char *property_name)
-{
- xmlChar *property, *untranslated_property;
- char *untranslated_property_name;
- const char *translated_property;
-
- /* Try for the already-translated version. */
- property = xmlGetProp (parent, property_name);
- if (property != NULL) {
- return property;
- }
-
- /* Try for the untranslated version. */
- untranslated_property_name = g_strconcat ("_", property_name, NULL);
- untranslated_property = xmlGetProp (parent, untranslated_property_name);
- g_free (untranslated_property_name);
- if (untranslated_property == NULL) {
- return NULL;
- }
-
- /* Try to translate. */
- translated_property = _(untranslated_property);
-
- /* If not translation is found, return untranslated property as-is. */
- if (translated_property == (char *) untranslated_property) {
- return untranslated_property;
- }
-
- /* If a translation happened, make a copy to match the normal
- * behavior of this function (returning a string you xmlFree).
- */
- xmlFree (untranslated_property);
- return xmlStrdup (translated_property);
-}
-
-void
-nautilus_xml_remove_node (xmlNodePtr node)
-{
- g_return_if_fail (node != NULL);
- g_return_if_fail (node->doc != NULL);
- g_return_if_fail (node->parent != NULL);
- g_return_if_fail (node->doc->xmlRootNode != node);
-
- if (node->prev == NULL) {
- g_assert (node->parent->xmlChildrenNode == node);
- node->parent->xmlChildrenNode = node->next;
- } else {
- g_assert (node->parent->xmlChildrenNode != node);
- node->prev->next = node->next;
- }
-
- if (node->next == NULL) {
- g_assert (node->parent->last == node);
- node->parent->last = node->prev;
- } else {
- g_assert (node->parent->last != node);
- node->next->prev = node->prev;
- }
-
- node->doc = NULL;
- node->parent = NULL;
- node->next = NULL;
- node->prev = NULL;
-}