1
/* gimpparasite.c: Copyright 1998 Jay Cox <jaycox@earthlink.net>
1
/* gimpparasite.c: Copyright 1998 Jay Cox <jaycox@gimp.org>
3
3
* This program is free software; you can redistribute it and/or modify
4
4
* it under the terms of the GNU General Public License as published by
20
20
#include <glib-object.h>
22
22
#include "libgimpbase/gimpbase.h"
23
#include "libgimpconfig/gimpconfig.h"
24
25
#include "core-types.h"
26
#include "config/gimpconfig.h"
27
#include "config/gimpconfig-error.h"
30
28
#include "gimp-parasites.h"
31
29
#include "gimpparasitelist.h"
35
gimp_parasite_attach (Gimp *gimp,
36
GimpParasite *parasite)
33
gimp_parasite_attach (Gimp *gimp,
34
const GimpParasite *parasite)
36
g_return_if_fail (GIMP_IS_GIMP (gimp));
37
g_return_if_fail (parasite != NULL);
38
39
gimp_parasite_list_add (gimp->parasites, parasite);
42
43
gimp_parasite_detach (Gimp *gimp,
46
g_return_if_fail (GIMP_IS_GIMP (gimp));
47
g_return_if_fail (name != NULL);
45
49
gimp_parasite_list_remove (gimp->parasites, name);
49
53
gimp_parasite_find (Gimp *gimp,
56
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
57
g_return_val_if_fail (name != NULL, NULL);
52
59
return gimp_parasite_list_find (gimp->parasites, name);
56
63
list_func (const gchar *key,
57
GimpParasite *parasite,
64
GimpParasite *parasite,
60
67
*(*current)++ = g_strdup (key);
64
71
gimp_parasite_list (Gimp *gimp,
77
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
78
g_return_val_if_fail (count != NULL, NULL);
70
80
*count = gimp_parasite_list_length (gimp->parasites);
72
82
list = current = g_new (gchar *, *count);
102
111
filename = gimp_personal_rc_file ("parasiterc");
113
if (gimp->be_verbose)
114
g_print ("Parsing '%s'\n", gimp_filename_to_utf8 (filename));
104
116
if (! gimp_config_deserialize_file (GIMP_CONFIG (gimp->parasites),
105
filename, NULL, &error))
117
filename, NULL, &error))
107
119
if (error->code != GIMP_CONFIG_ERROR_OPEN_ENOENT)
108
g_message (error->message);
120
gimp_message (gimp, NULL, GIMP_MESSAGE_ERROR, "%s", error->message);
109
122
g_error_free (error);
131
144
filename = gimp_personal_rc_file ("parasiterc");
146
if (gimp->be_verbose)
147
g_print ("Writing '%s'\n", gimp_filename_to_utf8 (filename));
133
149
if (! gimp_config_serialize_to_file (GIMP_CONFIG (gimp->parasites),
135
header, footer, NULL,
151
header, footer, NULL,
138
g_message (error->message);
154
gimp_message (gimp, NULL, GIMP_MESSAGE_ERROR, "%s", error->message);
139
155
g_error_free (error);