aboutsummaryrefslogtreecommitdiffstats
path: root/filter/filter-part.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/filter-part.c')
-rw-r--r--filter/filter-part.c243
1 files changed, 131 insertions, 112 deletions
diff --git a/filter/filter-part.c b/filter/filter-part.c
index e5ae231b7c..a467a0c3c0 100644
--- a/filter/filter-part.c
+++ b/filter/filter-part.c
@@ -73,29 +73,29 @@ filter_part_class_init (FilterPartClass *class)
GtkObjectClass *object_class;
object_class = (GtkObjectClass *)class;
- parent_class = gtk_type_class(gtk_object_get_type ());
-
+ parent_class = gtk_type_class (gtk_object_get_type ());
+
object_class->finalize = filter_part_finalise;
/* override methods */
-
+
/* signals */
-
- gtk_object_class_add_signals(object_class, signals, LAST_SIGNAL);
+
+ gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
}
static void
filter_part_init (FilterPart *o)
{
- o->priv = g_malloc0(sizeof(*o->priv));
+ o->priv = g_malloc0 (sizeof (*o->priv));
}
static void
filter_part_finalise(GtkObject *obj)
{
FilterPart *o = (FilterPart *)obj;
-
+
o = o;
-
+
((GtkObjectClass *)(parent_class))->finalize(obj);
}
@@ -107,153 +107,165 @@ filter_part_finalise(GtkObject *obj)
* Return value: A new #FilterPart object.
**/
FilterPart *
-filter_part_new(void)
+filter_part_new (void)
{
FilterPart *o = (FilterPart *)gtk_type_new(filter_part_get_type ());
return o;
}
-
-int filter_part_xml_create (FilterPart *ff, xmlNodePtr node)
+int
+filter_part_xml_create (FilterPart *ff, xmlNodePtr node)
{
xmlNodePtr n;
char *type;
FilterElement *el;
-
+
ff->name = xmlGetProp(node, "name");
n = node->childs;
while (n) {
- if (!strcmp(n->name, "input")) {
- type = xmlGetProp(n, "type");
- d(printf("creating new element type input '%s'\n", type));
+ if (!strcmp (n->name, "input")) {
+ type = xmlGetProp (n, "type");
+ d(printf ("creating new element type input '%s'\n", type));
if (type != NULL
- && (el = filter_element_new_type_name(type)) != NULL) {
- filter_element_xml_create(el, n);
- xmlFree(type);
- d(printf("adding element part %p %s\n", el, el->name));
- ff->elements = g_list_append(ff->elements, el);
+ && (el = filter_element_new_type_name (type)) != NULL) {
+ filter_element_xml_create (el, n);
+ xmlFree (type);
+ d(printf ("adding element part %p %s\n", el, el->name));
+ ff->elements = g_list_append (ff->elements, el);
} else {
- g_warning("Invalid xml format, missing/unknown input type");
+ g_warning ("Invalid xml format, missing/unknown input type");
}
- } else if (!strcmp(n->name, "title")) {
+ } else if (!strcmp (n->name, "title")) {
if (!ff->title)
- ff->title = xmlNodeGetContent(n);
- } else if (!strcmp(n->name, "code")) {
+ ff->title = xmlNodeGetContent (n);
+ } else if (!strcmp (n->name, "code")) {
if (!ff->code)
- ff->code = xmlNodeGetContent(n);
+ ff->code = xmlNodeGetContent (n);
} else {
- g_warning("Unknwon part element in xml: %s\n", n->name);
+ g_warning ("Unknwon part element in xml: %s\n", n->name);
}
n = n->next;
}
+
return 0;
}
-xmlNodePtr filter_part_xml_encode (FilterPart *fp)
+xmlNodePtr
+filter_part_xml_encode (FilterPart *fp)
{
GList *l;
FilterElement *fe;
xmlNodePtr part, value;
-
- g_return_val_if_fail(fp != NULL, NULL);
-
- part = xmlNewNode(NULL, "part");
- xmlSetProp(part, "name", fp->name);
+
+ g_return_val_if_fail (fp != NULL, NULL);
+
+ part = xmlNewNode (NULL, "part");
+ xmlSetProp (part, "name", fp->name);
l = fp->elements;
while (l) {
fe = l->data;
- value = filter_element_xml_encode(fe);
- xmlAddChild(part, value);
- l = g_list_next(l);
+ value = filter_element_xml_encode (fe);
+ xmlAddChild (part, value);
+ l = g_list_next (l);
}
+
return part;
}
-int filter_part_xml_decode (FilterPart *fp, xmlNodePtr node)
+
+int
+filter_part_xml_decode (FilterPart *fp, xmlNodePtr node)
{
FilterElement *fe;
xmlNodePtr n;
char *name;
-
- g_return_val_if_fail(fp != NULL, -1);
- g_return_val_if_fail(node != NULL, -1);
-
+
+ g_return_val_if_fail (fp != NULL, -1);
+ g_return_val_if_fail (node != NULL, -1);
+
n = node->childs;
while (n) {
- if (!strcmp(n->name, "value")) {
- name = xmlGetProp(n, "name");
- d(printf("finding element part %p %s = %p\n", name, name, fe));
- fe = filter_part_find_element(fp, name);
- d(printf("finding element part %p %s = %p\n", name, name, fe));
- xmlFree(name);
+ if (!strcmp (n->name, "value")) {
+ name = xmlGetProp (n, "name");
+ d(printf ("finding element part %p %s = %p\n", name, name, fe));
+ fe = filter_part_find_element (fp, name);
+ d(printf ("finding element part %p %s = %p\n", name, name, fe));
+ xmlFree (name);
if (fe) {
- filter_element_xml_decode(fe, n);
+ filter_element_xml_decode (fe, n);
}
}
n = n->next;
}
+
return 0;
}
-FilterPart *filter_part_clone (FilterPart *fp)
+FilterPart *
+filter_part_clone (FilterPart *fp)
{
FilterPart *new;
GList *l;
FilterElement *fe, *ne;
-
- new = (FilterPart *)gtk_type_new( ((GtkObject *)fp)->klass->type );
- new->name = g_strdup(fp->name);
- new->title = g_strdup(fp->title);
- new->code = g_strdup(fp->code);
+
+ new = (FilterPart *)gtk_type_new ((GTK_OBJECT (fp))->klass->type);
+ new->name = g_strdup (fp->name);
+ new->title = g_strdup (fp->title);
+ new->code = g_strdup (fp->code);
l = fp->elements;
while (l) {
fe = l->data;
- ne = filter_element_clone(fe);
- new->elements = g_list_append(new->elements, ne);
- l = g_list_next(l);
+ ne = filter_element_clone (fe);
+ new->elements = g_list_append (new->elements, ne);
+ l = g_list_next (l);
}
+
return new;
}
-FilterElement *filter_part_find_element(FilterPart *ff, const char *name)
+FilterElement *
+filter_part_find_element (FilterPart *ff, const char *name)
{
GList *l = ff->elements;
FilterElement *fe;
-
+
if (name == NULL)
return NULL;
-
+
while (l) {
fe = l->data;
- if (fe->name && !strcmp(fe->name, name))
+ if (fe->name && !strcmp (fe->name, name))
return fe;
- l = g_list_next(l);
+ l = g_list_next (l);
}
-
+
return NULL;
}
-GtkWidget *filter_part_get_widget (FilterPart *ff)
+GtkWidget *
+filter_part_get_widget (FilterPart *ff)
{
- GtkHBox *hbox;
+ GtkWidget *hbox;
GList *l = ff->elements;
FilterElement *fe;
GtkWidget *w;
-
- hbox = (GtkHBox *)gtk_hbox_new(FALSE, 3);
-
+
+ hbox = gtk_hbox_new (FALSE, 3);
+
while (l) {
fe = l->data;
- w = filter_element_get_widget(fe);
+ w = filter_element_get_widget (fe);
if (w) {
- gtk_box_pack_start((GtkBox *)hbox, w, FALSE, FALSE, 3);
+ gtk_box_pack_start (GTK_BOX (hbox), w, FALSE, FALSE, 3);
}
- l = g_list_next(l);
+ l = g_list_next (l);
}
- gtk_widget_show_all((GtkWidget *)hbox);
- return (GtkWidget *)hbox;
+
+ gtk_widget_show_all (hbox);
+
+ return hbox;
}
/**
@@ -263,18 +275,19 @@ GtkWidget *filter_part_get_widget (FilterPart *ff)
*
* Outputs the code of a part.
**/
-void filter_part_build_code (FilterPart *ff, GString *out)
+void
+filter_part_build_code (FilterPart *ff, GString *out)
{
GList *l = ff->elements;
FilterElement *fe;
-
+
if (ff->code) {
- filter_part_expand_code(ff, ff->code, out);
+ filter_part_expand_code (ff, ff->code, out);
}
while (l) {
fe = l->data;
- filter_element_build_code(fe, out, ff);
- l = g_list_next(l);
+ filter_element_build_code (fe, out, ff);
+ l = g_list_next (l);
}
}
@@ -287,15 +300,15 @@ void filter_part_build_code (FilterPart *ff, GString *out)
* a single string.
**/
void
-filter_part_build_code_list(GList *l, GString *out)
+filter_part_build_code_list (GList *l, GString *out)
{
FilterPart *fp;
-
+
while (l) {
fp = l->data;
- filter_part_build_code(fp, out);
- g_string_append(out, "\n ");
- l = g_list_next(l);
+ filter_part_build_code (fp, out);
+ g_string_append (out, "\n ");
+ l = g_list_next (l);
}
}
@@ -308,19 +321,22 @@ filter_part_build_code_list(GList *l, GString *out)
*
* Return value:
**/
-FilterPart *filter_part_find_list (GList *l, const char *name)
+FilterPart *
+filter_part_find_list (GList *l, const char *name)
{
FilterPart *part;
- d(printf("Find part named %s\n", name));
-
+
+ d(printf ("Find part named %s\n", name));
+
while (l) {
part = l->data;
- if (!strcmp(part->name, name)) {
- d(printf("Found!\n"));
+ if (!strcmp (part->name, name)) {
+ d(printf ("Found!\n"));
return part;
}
- l = g_list_next(l);
+ l = g_list_next (l);
}
+
return NULL;
}
@@ -335,19 +351,21 @@ FilterPart *filter_part_find_list (GList *l, const char *name)
* Return value: The next value in the list, or NULL if the
* list is expired.
**/
-FilterPart *filter_part_next_list (GList *l, FilterPart *last)
+FilterPart *
+filter_part_next_list (GList *l, FilterPart *last)
{
GList *node = l;
-
+
if (last != NULL) {
- node = g_list_find(node, last);
+ node = g_list_find (node, last);
if (node == NULL)
node = l;
else
- node = g_list_next(node);
+ node = g_list_next (node);
}
if (node)
return node->data;
+
return NULL;
}
@@ -359,39 +377,40 @@ FilterPart *filter_part_next_list (GList *l, FilterPart *last)
*
* Expands the variables in string @str based on the values of the part.
**/
-void filter_part_expand_code (FilterPart *ff, const char *source, GString *out)
+void
+filter_part_expand_code (FilterPart *ff, const char *source, GString *out)
{
const char *newstart, *start, *end;
- char *name=alloca(32);
- int len, namelen=32;
+ char *name = alloca (32);
+ int len, namelen = 32;
FilterElement *fe;
-
+
start = source;
- while ( (newstart = strstr(start, "${"))
- && (end = strstr(newstart+2, "}")) ) {
- len = end-newstart-2;
- if (len+1>namelen) {
- namelen = (len+1)*2;
- name = alloca(namelen);
+ while ( (newstart = strstr (start, "${"))
+ && (end = strstr (newstart+2, "}")) ) {
+ len = end - newstart - 2;
+ if (len + 1 > namelen) {
+ namelen = (len + 1) * 2;
+ name = alloca (namelen);
}
- memcpy(name, newstart+2, len);
+ memcpy (name, newstart+2, len);
name[len] = 0;
- fe = filter_part_find_element(ff, name);
+ fe = filter_part_find_element (ff, name);
d(printf("expand code: looking up variab le '%s' = %p\n", name, fe));
if (fe) {
- g_string_sprintfa(out, "%.*s", newstart-start, start);
- filter_element_format_sexp(fe, out);
+ g_string_sprintfa (out, "%.*s", newstart-start, start);
+ filter_element_format_sexp (fe, out);
#if 0
- } else if ( (val = g_hash_table_lookup(ff->globals, name)) ) {
- g_string_sprintfa(out, "%.*s", newstart-start, start);
- e_sexp_encode_string(out, val);
+ } else if ( (val = g_hash_table_lookup (ff->globals, name)) ) {
+ g_string_sprintfa (out, "%.*s", newstart-start, start);
+ e_sexp_encode_string (out, val);
#endif
} else {
- g_string_sprintfa(out, "%.*s", end-start+1, start);
+ g_string_sprintfa (out, "%.*s", end-start+1, start);
}
- start = end+1;
+ start = end + 1;
}
- g_string_append(out, start);
+ g_string_append (out, start);
}
#if 0