summaryrefslogtreecommitdiff
path: root/src/cr-selector.c
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@src.gnome.org>2003-04-12 16:50:32 +0000
committerDodji Seketeli <dodji@src.gnome.org>2003-04-12 16:50:32 +0000
commit17114030e0e37f93682c903dd818da1f0e2e6f6b (patch)
treef52286082af39c649dfbc86015ab080ac2a55abd /src/cr-selector.c
parent4f5560ef67d35121d1087aee9b5e34dece012d8a (diff)
downloadlibcroco-17114030e0e37f93682c903dd818da1f0e2e6f6b.tar.gz
big tree layout cleanup.
Dodji.
Diffstat (limited to 'src/cr-selector.c')
-rw-r--r--src/cr-selector.c287
1 files changed, 0 insertions, 287 deletions
diff --git a/src/cr-selector.c b/src/cr-selector.c
deleted file mode 100644
index b35642e..0000000
--- a/src/cr-selector.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
-
-/*
- * This file is part of The Croco Library
- *
- * Copyright (C) 2002-2003 Dodji Seketeli <dodji@seketeli.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2.1 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * 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 Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
- */
-
-/*
- *$Id$
- */
-#include <string.h>
-#include "cr-selector.h"
-
-/**
- *Creates a new instance of #CRSelector.
- *@param a_simple_sel the initial simple selector list
- *of the current instance of #CRSelector.
- *@return the newly built instance of #CRSelector, or
- *NULL in case of failure.
- */
-CRSelector*
-cr_selector_new (CRSimpleSel *a_simple_sel)
-{
- CRSelector *result = NULL ;
-
- result = g_try_malloc (sizeof (CRSelector)) ;
- if (!result)
- {
- cr_utils_trace_info ("Out of memory") ;
- return NULL ;
- }
- memset (result, 0, sizeof (CRSelector)) ;
- result->simple_sel = a_simple_sel ;
- return result ;
-}
-
-/**
- *Appends a new instance of #CRSelector to the current selector list.
- *@param a_this the current instance of #CRSelector.
- *@param a_new the instance of #CRSelector to be appended.
- *@return the new list.
- */
-CRSelector*
-cr_selector_append (CRSelector *a_this, CRSelector *a_new)
-{
- CRSelector *cur = NULL ;
-
- if (!a_this)
- {
- return a_new ;
- }
-
- /*walk forward the list headed by a_this to get the list tail*/
- for (cur = a_this ; cur && cur->next ; cur = cur->next) ;
-
- cur->next = a_new ;
- a_new->prev = cur ;
-
- return a_this ;
-}
-
-/**
- *Prepends an element to the #CRSelector list.
- *@param a_this the current instance of #CRSelector list.
- *@param a_new the instance of #CRSelector.
- *@return the new list.
- */
-CRSelector*
-cr_selector_prepend (CRSelector *a_this, CRSelector *a_new)
-{
- CRSelector *cur = NULL ;
-
- a_new->next = a_this ;
- a_this->prev = a_new ;
-
- for (cur = a_new ; cur && cur->prev ; cur = cur->prev) ;
-
- return cur ;
-}
-
-/**
- *append a simple selector to the current #CRSelector list.
- *@param a_this the current instance of #CRSelector.
- *@param a_simple_sel the simple selector to append.
- *@return the new list or NULL in case of failure.
- */
-CRSelector*
-cr_selector_append_simple_sel (CRSelector *a_this, CRSimpleSel *a_simple_sel)
-{
- CRSelector * selector = NULL ;
-
- selector = cr_selector_new (a_simple_sel) ;
- g_return_val_if_fail (selector, NULL) ;
-
- return cr_selector_append (a_this, selector) ;
-}
-
-
-guchar *
-cr_selector_to_string (CRSelector *a_this)
-{
- guchar *result = NULL ;
- GString *str_buf = NULL ;
-
- str_buf = g_string_new (NULL) ;
- g_return_val_if_fail (str_buf, NULL) ;
-
- if (a_this)
- {
- CRSelector *cur = NULL ;
-
- for (cur = a_this ; cur ; cur = cur->next)
- {
- if (cur->simple_sel)
- {
- guchar *tmp_str = NULL ;
-
- tmp_str = cr_simple_sel_to_string
- (cur->simple_sel) ;
-
- if (tmp_str)
- {
- if (cur->prev)
- g_string_append_printf
- (str_buf,", ") ;
-
- g_string_append_printf
- (str_buf, "%s",
- tmp_str) ;
-
- g_free (tmp_str) ;
- tmp_str = NULL ;
- }
- }
- }
- }
-
- if (str_buf)
- {
- result = str_buf->str ;
- g_string_free (str_buf, FALSE) ;
- str_buf = NULL ;
- }
-
- return result ;
-}
-
-
-/**
- *Serializes the current instance of #CRSelector to a file.
- *@param a_this the current instance of #CRSelector.
- *@param a_fp the destination file.
- */
-void
-cr_selector_dump (CRSelector *a_this, FILE *a_fp)
-{
- guchar *tmp_buf = NULL ;
-
- if (a_this)
- {
- tmp_buf = cr_selector_to_string (a_this) ;
- if (tmp_buf)
- {
- fprintf (a_fp, "%s", tmp_buf) ;
- g_free (tmp_buf) ;
- tmp_buf = NULL ;
- }
- }
-}
-
-/**
- *Increments the ref count of the current instance
- *of #CRSelector.
- *@param a_this the current instance of #CRSelector.
- */
-void
-cr_selector_ref (CRSelector *a_this)
-{
- g_return_if_fail (a_this) ;
-
- a_this->ref_count ++ ;
-}
-
-/**
- *Decrements the ref count of the current instance of
- *#CRSelector.
- *If the ref count reaches zero, the current instance of
- *#CRSelector is destroyed.
- *@param a_this the current instance of #CRSelector.
- *@return TRUE if this function destroyed the current instance
- *of #CRSelector, FALSE otherwise.
- */
-gboolean
-cr_selector_unref (CRSelector *a_this)
-{
- g_return_val_if_fail (a_this, FALSE) ;
-
- if (a_this->ref_count)
- {
- a_this->ref_count -- ;
- }
-
- if (a_this->ref_count == 0)
- {
- cr_selector_destroy (a_this) ;
- return TRUE ;
- }
-
- return FALSE ;
-}
-
-/**
- *Destroys the selector list.
- *@param a_this the current instance of #CRSelector.
- */
-void
-cr_selector_destroy (CRSelector *a_this)
-{
- CRSelector *cur = NULL ;
-
- g_return_if_fail (a_this) ;
-
- /*
- *go and get the list tail. In the same time, free
- *all the simple selectors contained in the list.
- */
- for (cur = a_this ;cur && cur->next ; cur = cur->next)
- {
- if (cur->simple_sel)
- {
- cr_simple_sel_destroy (cur->simple_sel) ;
- cur->simple_sel = NULL ;
- }
- }
-
- if (cur)
- {
- if (cur->simple_sel)
- {
- cr_simple_sel_destroy (cur->simple_sel) ;
- cur->simple_sel = NULL ;
- }
- }
-
- /*in case the list has only one element*/
- if (cur && !cur->prev)
- {
- g_free (cur) ;
- return ;
- }
-
- /*walk backward the list and free each "next element"*/
- for (cur = cur->prev ; cur && cur->prev ; cur = cur->prev)
- {
- if (cur->next)
- {
- g_free (cur->next) ;
- cur->next = NULL ;
- }
- }
-
- if (!cur)
- return ;
-
- if (cur->next)
- {
- g_free (cur->next) ;
- cur->next = NULL ;
- }
-
- g_free (cur) ;
-}