summaryrefslogtreecommitdiffstats
path: root/gtk/src/create_resources.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/src/create_resources.c')
-rw-r--r--gtk/src/create_resources.c820
1 files changed, 410 insertions, 410 deletions
diff --git a/gtk/src/create_resources.c b/gtk/src/create_resources.c
index ca5ea828b..70342e4ca 100644
--- a/gtk/src/create_resources.c
+++ b/gtk/src/create_resources.c
@@ -12,38 +12,38 @@
enum
{
- R_NONE = 0,
- R_RESOURCES,
- R_SECTION,
- R_ICON,
- R_PLIST,
- R_STRING,
+ R_NONE = 0,
+ R_RESOURCES,
+ R_SECTION,
+ R_ICON,
+ R_PLIST,
+ R_STRING,
};
typedef struct
{
- gchar *tag;
- gint id;
+ gchar *tag;
+ gint id;
} tag_map_t;
static tag_map_t tag_map[] =
{
- {"resources", R_RESOURCES},
- {"section", R_SECTION},
- {"icon", R_ICON},
- {"plist", R_PLIST},
- {"string", R_STRING},
+ {"resources", R_RESOURCES},
+ {"section", R_SECTION},
+ {"icon", R_ICON},
+ {"plist", R_PLIST},
+ {"string", R_STRING},
};
-#define TAG_MAP_SZ (sizeof(tag_map)/sizeof(tag_map_t))
+#define TAG_MAP_SZ (sizeof(tag_map)/sizeof(tag_map_t))
typedef struct
{
- gchar *key;
- gchar *value;
- GValue *plist;
- GQueue *stack;
- GQueue *tag_stack;
- gboolean closed_top;
+ gchar *key;
+ gchar *value;
+ GValue *plist;
+ GQueue *stack;
+ GQueue *tag_stack;
+ gboolean closed_top;
} parse_data_t;
GList *inc_list = NULL;
@@ -51,427 +51,427 @@ GList *inc_list = NULL;
static gchar*
find_file(GList *list, const gchar *name)
{
- gchar *str;
- GList *link = list;
-
- while (link != NULL)
- {
- gchar *inc;
-
- inc = (gchar*)link->data;
- str = g_strdup_printf("%s/%s", inc, name);
- if (g_file_test(str, G_FILE_TEST_IS_REGULAR))
- {
- return str;
- }
- g_free(str);
- link = g_list_next(link);
- }
- if (g_file_test(name, G_FILE_TEST_IS_REGULAR))
- {
- return g_strdup(name);
- }
- return NULL;
+ gchar *str;
+ GList *link = list;
+
+ while (link != NULL)
+ {
+ gchar *inc;
+
+ inc = (gchar*)link->data;
+ str = g_strdup_printf("%s/%s", inc, name);
+ if (g_file_test(str, G_FILE_TEST_IS_REGULAR))
+ {
+ return str;
+ }
+ g_free(str);
+ link = g_list_next(link);
+ }
+ if (g_file_test(name, G_FILE_TEST_IS_REGULAR))
+ {
+ return g_strdup(name);
+ }
+ return NULL;
}
static const gchar*
lookup_attr_value(
- const gchar *name,
- const gchar **attr_names,
- const gchar **attr_values)
+ const gchar *name,
+ const gchar **attr_names,
+ const gchar **attr_values)
{
- gint ii;
-
- if (attr_names == NULL) return NULL;
- for (ii = 0; attr_names[ii] != NULL; ii++)
- {
- if (strcmp(name, attr_names[ii]) == 0)
- return attr_values[ii];
- }
- return NULL;
+ gint ii;
+
+ if (attr_names == NULL) return NULL;
+ for (ii = 0; attr_names[ii] != NULL; ii++)
+ {
+ if (strcmp(name, attr_names[ii]) == 0)
+ return attr_values[ii];
+ }
+ return NULL;
}
static GValue*
read_string_from_file(const gchar *filename)
{
- gchar *buffer;
- size_t size;
- GValue *gval;
- FILE *fd;
-
- fd = g_fopen(filename, "r");
- if (fd == NULL)
- return NULL;
- fseek(fd, 0, SEEK_END);
- size = ftell(fd);
- fseek(fd, 0, SEEK_SET);
- buffer = g_malloc(size+1);
- size = fread(buffer, 1, size, fd);
- buffer[size] = 0;
- gval = ghb_value_new(G_TYPE_STRING);
- g_value_take_string(gval, buffer);
- fclose(fd);
- return gval;
+ gchar *buffer;
+ size_t size;
+ GValue *gval;
+ FILE *fd;
+
+ fd = g_fopen(filename, "r");
+ if (fd == NULL)
+ return NULL;
+ fseek(fd, 0, SEEK_END);
+ size = ftell(fd);
+ fseek(fd, 0, SEEK_SET);
+ buffer = g_malloc(size+1);
+ size = fread(buffer, 1, size, fd);
+ buffer[size] = 0;
+ gval = ghb_value_new(G_TYPE_STRING);
+ g_value_take_string(gval, buffer);
+ fclose(fd);
+ return gval;
}
static void
start_element(
- GMarkupParseContext *ctx,
- const gchar *tag,
- const gchar **attr_names,
- const gchar **attr_values,
- gpointer ud,
- GError **error)
+ GMarkupParseContext *ctx,
+ const gchar *tag,
+ const gchar **attr_names,
+ const gchar **attr_values,
+ gpointer ud,
+ GError **error)
{
- parse_data_t *pd = (parse_data_t*)ud;
- union
- {
- gint id;
- gpointer pid;
- } id;
- gint ii;
-
- // Check to see if the first element found has been closed
- // If so, ignore any junk following it.
- if (pd->closed_top)
- return;
-
- for (ii = 0; ii < TAG_MAP_SZ; ii++)
- {
- if (strcmp(tag, tag_map[ii].tag) == 0)
- {
- id.id = tag_map[ii].id;
- break;
- }
- }
- if (ii == TAG_MAP_SZ)
- {
- g_warning("Unrecognized start tag (%s)", tag);
- return;
- }
- g_queue_push_head(pd->tag_stack, id.pid);
- GType gtype = 0;
- GValue *gval = NULL;
- GValue *current = g_queue_peek_head(pd->stack);
- switch (id.id)
- {
- case R_SECTION:
- {
- const gchar *name;
-
- name = lookup_attr_value("name", attr_names, attr_values);
- if (name && strcmp(name, "icons") == 0)
- {
- gval = ghb_dict_value_new();
- if (pd->key) g_free(pd->key);
- pd->key = g_strdup(name);
- g_queue_push_head(pd->stack, gval);
- }
- } break;
- case R_ICON:
- {
- gchar *filename;
- const gchar *name;
-
- name = lookup_attr_value("file", attr_names, attr_values);
- filename = find_file(inc_list, name);
- name = lookup_attr_value("name", attr_names, attr_values);
- if (filename && name)
- {
- ghb_rawdata_t *rd;
- GdkPixbuf *pb;
- GError *err = NULL;
-
- pb = gdk_pixbuf_new_from_file(filename, &err);
- if (pb == NULL)
- {
- g_warning("Failed to open icon file %s: %s", filename, err->message);
- break;
- }
- gval = ghb_dict_value_new();
- int colorspace = gdk_pixbuf_get_colorspace(pb);
- gboolean alpha = gdk_pixbuf_get_has_alpha(pb);
- int width = gdk_pixbuf_get_width(pb);
- int height = gdk_pixbuf_get_height(pb);
- int bps = gdk_pixbuf_get_bits_per_sample(pb);
- int rowstride = gdk_pixbuf_get_rowstride(pb);
-
- ghb_dict_insert(gval, g_strdup("colorspace"),
- ghb_int_value_new(colorspace));
- ghb_dict_insert(gval, g_strdup("alpha"),
- ghb_boolean_value_new(alpha));
- ghb_dict_insert(gval, g_strdup("width"),
- ghb_int_value_new(width));
- ghb_dict_insert(gval, g_strdup("height"),
- ghb_int_value_new(height));
- ghb_dict_insert(gval, g_strdup("bps"),
- ghb_int_value_new(bps));
- ghb_dict_insert(gval, g_strdup("rowstride"),
- ghb_int_value_new(rowstride));
-
- rd = g_malloc(sizeof(ghb_rawdata_t));
- rd->data = gdk_pixbuf_get_pixels(pb);
- rd->size = height * rowstride * bps / 8;
- GValue *data = ghb_rawdata_value_new(rd);
- ghb_dict_insert(gval, g_strdup("data"), data);
-
- if (pd->key) g_free(pd->key);
- pd->key = g_strdup(name);
- g_free(filename);
- }
- else
- {
- g_warning("%s:missing a requried attribute", name);
- exit(EXIT_FAILURE);
- }
- } break;
- case R_PLIST:
- {
- gchar *filename;
- const gchar *name;
-
- name = lookup_attr_value("file", attr_names, attr_values);
- filename = find_file(inc_list, name);
- name = lookup_attr_value("name", attr_names, attr_values);
- if (filename && name)
- {
- gval = ghb_plist_parse_file(filename);
- if (pd->key) g_free(pd->key);
- pd->key = g_strdup(name);
- g_free(filename);
- }
- else
- {
- g_warning("%s:missing a requried attribute", name);
- exit(EXIT_FAILURE);
- }
- } break;
- case R_STRING:
- {
- gchar *filename;
- const gchar *name;
-
- name = lookup_attr_value("file", attr_names, attr_values);
- filename = find_file(inc_list, name);
- name = lookup_attr_value("name", attr_names, attr_values);
- if (filename && name)
- {
- gval = read_string_from_file(filename);
- if (pd->key) g_free(pd->key);
- pd->key = g_strdup(name);
- g_free(filename);
- }
- else
- {
- g_warning("%s:missing a requried attribute", name);
- exit(EXIT_FAILURE);
- }
- } break;
- }
- // Add the element to the current container
- if (gval)
- { // There's an element to add
- if (current == NULL)
- {
- pd->plist = gval;
- return;
- }
- gtype = G_VALUE_TYPE(current);
- if (gtype == ghb_array_get_type())
- {
- ghb_array_append(current, gval);
- }
- else if (gtype == ghb_dict_get_type())
- {
- if (pd->key == NULL)
- {
- g_warning("No key for dictionary item");
- ghb_value_free(gval);
- }
- else
- {
- ghb_dict_insert(current, g_strdup(pd->key), gval);
- }
- }
- else
- {
- g_error("Invalid container type. This shouldn't happen");
- }
- }
+ parse_data_t *pd = (parse_data_t*)ud;
+ union
+ {
+ gint id;
+ gpointer pid;
+ } id;
+ gint ii;
+
+ // Check to see if the first element found has been closed
+ // If so, ignore any junk following it.
+ if (pd->closed_top)
+ return;
+
+ for (ii = 0; ii < TAG_MAP_SZ; ii++)
+ {
+ if (strcmp(tag, tag_map[ii].tag) == 0)
+ {
+ id.id = tag_map[ii].id;
+ break;
+ }
+ }
+ if (ii == TAG_MAP_SZ)
+ {
+ g_warning("Unrecognized start tag (%s)", tag);
+ return;
+ }
+ g_queue_push_head(pd->tag_stack, id.pid);
+ GType gtype = 0;
+ GValue *gval = NULL;
+ GValue *current = g_queue_peek_head(pd->stack);
+ switch (id.id)
+ {
+ case R_SECTION:
+ {
+ const gchar *name;
+
+ name = lookup_attr_value("name", attr_names, attr_values);
+ if (name && strcmp(name, "icons") == 0)
+ {
+ gval = ghb_dict_value_new();
+ if (pd->key) g_free(pd->key);
+ pd->key = g_strdup(name);
+ g_queue_push_head(pd->stack, gval);
+ }
+ } break;
+ case R_ICON:
+ {
+ gchar *filename;
+ const gchar *name;
+
+ name = lookup_attr_value("file", attr_names, attr_values);
+ filename = find_file(inc_list, name);
+ name = lookup_attr_value("name", attr_names, attr_values);
+ if (filename && name)
+ {
+ ghb_rawdata_t *rd;
+ GdkPixbuf *pb;
+ GError *err = NULL;
+
+ pb = gdk_pixbuf_new_from_file(filename, &err);
+ if (pb == NULL)
+ {
+ g_warning("Failed to open icon file %s: %s", filename, err->message);
+ break;
+ }
+ gval = ghb_dict_value_new();
+ int colorspace = gdk_pixbuf_get_colorspace(pb);
+ gboolean alpha = gdk_pixbuf_get_has_alpha(pb);
+ int width = gdk_pixbuf_get_width(pb);
+ int height = gdk_pixbuf_get_height(pb);
+ int bps = gdk_pixbuf_get_bits_per_sample(pb);
+ int rowstride = gdk_pixbuf_get_rowstride(pb);
+
+ ghb_dict_insert(gval, g_strdup("colorspace"),
+ ghb_int_value_new(colorspace));
+ ghb_dict_insert(gval, g_strdup("alpha"),
+ ghb_boolean_value_new(alpha));
+ ghb_dict_insert(gval, g_strdup("width"),
+ ghb_int_value_new(width));
+ ghb_dict_insert(gval, g_strdup("height"),
+ ghb_int_value_new(height));
+ ghb_dict_insert(gval, g_strdup("bps"),
+ ghb_int_value_new(bps));
+ ghb_dict_insert(gval, g_strdup("rowstride"),
+ ghb_int_value_new(rowstride));
+
+ rd = g_malloc(sizeof(ghb_rawdata_t));
+ rd->data = gdk_pixbuf_get_pixels(pb);
+ rd->size = height * rowstride * bps / 8;
+ GValue *data = ghb_rawdata_value_new(rd);
+ ghb_dict_insert(gval, g_strdup("data"), data);
+
+ if (pd->key) g_free(pd->key);
+ pd->key = g_strdup(name);
+ g_free(filename);
+ }
+ else
+ {
+ g_warning("%s:missing a requried attribute", name);
+ exit(EXIT_FAILURE);
+ }
+ } break;
+ case R_PLIST:
+ {
+ gchar *filename;
+ const gchar *name;
+
+ name = lookup_attr_value("file", attr_names, attr_values);
+ filename = find_file(inc_list, name);
+ name = lookup_attr_value("name", attr_names, attr_values);
+ if (filename && name)
+ {
+ gval = ghb_plist_parse_file(filename);
+ if (pd->key) g_free(pd->key);
+ pd->key = g_strdup(name);
+ g_free(filename);
+ }
+ else
+ {
+ g_warning("%s:missing a requried attribute", name);
+ exit(EXIT_FAILURE);
+ }
+ } break;
+ case R_STRING:
+ {
+ gchar *filename;
+ const gchar *name;
+
+ name = lookup_attr_value("file", attr_names, attr_values);
+ filename = find_file(inc_list, name);
+ name = lookup_attr_value("name", attr_names, attr_values);
+ if (filename && name)
+ {
+ gval = read_string_from_file(filename);
+ if (pd->key) g_free(pd->key);
+ pd->key = g_strdup(name);
+ g_free(filename);
+ }
+ else
+ {
+ g_warning("%s:missing a requried attribute", name);
+ exit(EXIT_FAILURE);
+ }
+ } break;
+ }
+ // Add the element to the current container
+ if (gval)
+ { // There's an element to add
+ if (current == NULL)
+ {
+ pd->plist = gval;
+ return;
+ }
+ gtype = G_VALUE_TYPE(current);
+ if (gtype == ghb_array_get_type())
+ {
+ ghb_array_append(current, gval);
+ }
+ else if (gtype == ghb_dict_get_type())
+ {
+ if (pd->key == NULL)
+ {
+ g_warning("No key for dictionary item");
+ ghb_value_free(gval);
+ }
+ else
+ {
+ ghb_dict_insert(current, g_strdup(pd->key), gval);
+ }
+ }
+ else
+ {
+ g_error("Invalid container type. This shouldn't happen");
+ }
+ }
}
static void
end_element(
- GMarkupParseContext *ctx,
- const gchar *name,
- gpointer ud,
- GError **error)
+ GMarkupParseContext *ctx,
+ const gchar *name,
+ gpointer ud,
+ GError **error)
{
- parse_data_t *pd = (parse_data_t*)ud;
- gint id;
- union
- {
- gint id;
- gpointer pid;
- } start_id;
- gint ii;
-
- // Check to see if the first element found has been closed
- // If so, ignore any junk following it.
- if (pd->closed_top)
- return;
-
- for (ii = 0; ii < TAG_MAP_SZ; ii++)
- {
- if (strcmp(name, tag_map[ii].tag) == 0)
- {
- id = tag_map[ii].id;
- break;
- }
- }
- if (ii == TAG_MAP_SZ)
- {
- g_warning("Unrecognized start tag (%s)", name);
- return;
- }
- start_id.pid = g_queue_pop_head(pd->tag_stack);
- if (start_id.id != id)
- g_warning("start tag != end tag: (%s %d) %d", name, id, id);
-
- GValue *gval = NULL;
- GValue *current = g_queue_peek_head(pd->stack);
- GType gtype = 0;
- switch (id)
- {
- case R_SECTION:
- {
- g_queue_pop_head(pd->stack);
- } break;
- }
- if (gval)
- {
- // Get the top of the data structure stack and if it's an array
- // or dict, add the current element
- if (current == NULL)
- {
- pd->plist = gval;
- pd->closed_top = TRUE;
- return;
- }
- gtype = G_VALUE_TYPE(current);
- if (gtype == ghb_array_get_type())
- {
- ghb_array_append(current, gval);
- }
- else if (gtype == ghb_dict_get_type())
- {
- if (pd->key == NULL)
- {
- g_warning("No key for dictionary item");
- ghb_value_free(gval);
- }
- else
- {
- ghb_dict_insert(current, g_strdup(pd->key), gval);
- }
- }
- else
- {
- g_error("Invalid container type. This shouldn't happen");
- }
- }
- if (g_queue_is_empty(pd->tag_stack))
- pd->closed_top = TRUE;
+ parse_data_t *pd = (parse_data_t*)ud;
+ gint id;
+ union
+ {
+ gint id;
+ gpointer pid;
+ } start_id;
+ gint ii;
+
+ // Check to see if the first element found has been closed
+ // If so, ignore any junk following it.
+ if (pd->closed_top)
+ return;
+
+ for (ii = 0; ii < TAG_MAP_SZ; ii++)
+ {
+ if (strcmp(name, tag_map[ii].tag) == 0)
+ {
+ id = tag_map[ii].id;
+ break;
+ }
+ }
+ if (ii == TAG_MAP_SZ)
+ {
+ g_warning("Unrecognized start tag (%s)", name);
+ return;
+ }
+ start_id.pid = g_queue_pop_head(pd->tag_stack);
+ if (start_id.id != id)
+ g_warning("start tag != end tag: (%s %d) %d", name, id, id);
+
+ GValue *gval = NULL;
+ GValue *current = g_queue_peek_head(pd->stack);
+ GType gtype = 0;
+ switch (id)
+ {
+ case R_SECTION:
+ {
+ g_queue_pop_head(pd->stack);
+ } break;
+ }
+ if (gval)
+ {
+ // Get the top of the data structure stack and if it's an array
+ // or dict, add the current element
+ if (current == NULL)
+ {
+ pd->plist = gval;
+ pd->closed_top = TRUE;
+ return;
+ }
+ gtype = G_VALUE_TYPE(current);
+ if (gtype == ghb_array_get_type())
+ {
+ ghb_array_append(current, gval);
+ }
+ else if (gtype == ghb_dict_get_type())
+ {
+ if (pd->key == NULL)
+ {
+ g_warning("No key for dictionary item");
+ ghb_value_free(gval);
+ }
+ else
+ {
+ ghb_dict_insert(current, g_strdup(pd->key), gval);
+ }
+ }
+ else
+ {
+ g_error("Invalid container type. This shouldn't happen");
+ }
+ }
+ if (g_queue_is_empty(pd->tag_stack))
+ pd->closed_top = TRUE;
}
static void
text_data(
- GMarkupParseContext *ctx,
- const gchar *text,
- gsize len,
- gpointer ud,
- GError **error)
+ GMarkupParseContext *ctx,
+ const gchar *text,
+ gsize len,
+ gpointer ud,
+ GError **error)
{
- parse_data_t *pd = (parse_data_t*)ud;
- if (pd->value) g_free(pd->value);
- pd->value = g_strdup(text);
+ parse_data_t *pd = (parse_data_t*)ud;
+ if (pd->value) g_free(pd->value);
+ pd->value = g_strdup(text);
}
static void
passthrough(
- GMarkupParseContext *ctx,
- const gchar *text,
- gsize len,
- gpointer ud,
- GError **error)
+ GMarkupParseContext *ctx,
+ const gchar *text,
+ gsize len,
+ gpointer ud,
+ GError **error)
{
- //parse_data_t *pd = (parse_data_t*)ud;
+ //parse_data_t *pd = (parse_data_t*)ud;
- //g_debug("passthrough %s", text);
+ //g_debug("passthrough %s", text);
}
static void
parse_error(GMarkupParseContext *ctx, GError *error, gpointer ud)
{
- g_warning("Resource parse error: %s", error->message);
+ g_warning("Resource parse error: %s", error->message);
}
// This is required or the parser crashes
static void
destroy_notify(gpointer data)
{ // Do nothing
- //g_debug("destroy parser");
+ //g_debug("destroy parser");
}
GValue*
ghb_resource_parse(const gchar *buf, gssize len)
{
- GMarkupParseContext *ctx;
- GMarkupParser parser;
- parse_data_t pd;
- GError *err = NULL;
-
- pd.stack = g_queue_new();
- pd.tag_stack = g_queue_new();
- pd.key = NULL;
- pd.value = NULL;
- pd.plist = ghb_dict_value_new();
- g_queue_push_head(pd.stack, pd.plist);
- pd.closed_top = FALSE;
-
- parser.start_element = start_element;
- parser.end_element = end_element;
- parser.text = text_data;
- parser.passthrough = passthrough;
- parser.error = parse_error;
- ctx = g_markup_parse_context_new(&parser, 0, &pd, destroy_notify);
-
- g_markup_parse_context_parse(ctx, buf, len, &err);
- g_markup_parse_context_end_parse(ctx, &err);
- g_markup_parse_context_free(ctx);
- g_queue_free(pd.stack);
- g_queue_free(pd.tag_stack);
- return pd.plist;
+ GMarkupParseContext *ctx;
+ GMarkupParser parser;
+ parse_data_t pd;
+ GError *err = NULL;
+
+ pd.stack = g_queue_new();
+ pd.tag_stack = g_queue_new();
+ pd.key = NULL;
+ pd.value = NULL;
+ pd.plist = ghb_dict_value_new();
+ g_queue_push_head(pd.stack, pd.plist);
+ pd.closed_top = FALSE;
+
+ parser.start_element = start_element;
+ parser.end_element = end_element;
+ parser.text = text_data;
+ parser.passthrough = passthrough;
+ parser.error = parse_error;
+ ctx = g_markup_parse_context_new(&parser, 0, &pd, destroy_notify);
+
+ g_markup_parse_context_parse(ctx, buf, len, &err);
+ g_markup_parse_context_end_parse(ctx, &err);
+ g_markup_parse_context_free(ctx);
+ g_queue_free(pd.stack);
+ g_queue_free(pd.tag_stack);
+ return pd.plist;
}
GValue*
ghb_resource_parse_file(FILE *fd)
{
- gchar *buffer;
- size_t size;
- GValue *gval;
-
- if (fd == NULL)
- return NULL;
- fseek(fd, 0, SEEK_END);
- size = ftell(fd);
- fseek(fd, 0, SEEK_SET);
- buffer = g_malloc(size+1);
- size = fread(buffer, 1, size, fd);
- buffer[size] = 0;
- gval = ghb_resource_parse(buffer, (gssize)size);
- g_free(buffer);
- return gval;
+ gchar *buffer;
+ size_t size;
+ GValue *gval;
+
+ if (fd == NULL)
+ return NULL;
+ fseek(fd, 0, SEEK_END);
+ size = ftell(fd);
+ fseek(fd, 0, SEEK_SET);
+ buffer = g_malloc(size+1);
+ size = fread(buffer, 1, size, fd);
+ buffer[size] = 0;
+ gval = ghb_resource_parse(buffer, (gssize)size);
+ g_free(buffer);
+ return gval;
}
static void
@@ -495,10 +495,10 @@ usage(char *cmd)
gint
main(gint argc, gchar *argv[])
{
- FILE *file;
- GValue *gval;
+ FILE *file;
+ GValue *gval;
int opt;
- const gchar *src, *dst;
+ const gchar *src, *dst;
do
{
@@ -508,30 +508,30 @@ main(gint argc, gchar *argv[])
case -1: break;
case 'I':
- inc_list = g_list_prepend(inc_list, g_strdup(optarg));
+ inc_list = g_list_prepend(inc_list, g_strdup(optarg));
break;
}
} while (opt != -1);
- if (optind != argc - 2)
- {
- usage(argv[0]);
- return EXIT_FAILURE;
- }
+ if (optind != argc - 2)
+ {
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
src = argv[optind++];
dst = argv[optind++];
- g_type_init();
- file = g_fopen(src, "r");
- if (file == NULL)
- {
- fprintf(stderr, "Error: failed to open %s\n", src);
- return EXIT_FAILURE;
- }
-
- gval = ghb_resource_parse_file(file);
- ghb_plist_write_file(dst, gval);
- fclose(file);
- return 0;
+ g_type_init();
+ file = g_fopen(src, "r");
+ if (file == NULL)
+ {
+ fprintf(stderr, "Error: failed to open %s\n", src);
+ return EXIT_FAILURE;
+ }
+
+ gval = ghb_resource_parse_file(file);
+ ghb_plist_write_file(dst, gval);
+ fclose(file);
+ return 0;
}