cssprovider: More error handling into load_internal()

Now the parsing functions starting at parse_stylesheet() don't have to
care about errors anymore.
This commit is contained in:
Benjamin Otte 2011-04-11 19:57:42 +02:00
parent da52175013
commit f937d0275a

View File

@ -2591,21 +2591,10 @@ gtk_css_provider_propagate_error (GtkCssProvider *provider,
g_prefix_error (propagate_to, "%s:%u:%u: ", path ? path : "<unknown>", line, position);
}
static gboolean
static void
parse_stylesheet (GtkCssProvider *css_provider,
GScanner *scanner,
GError **error)
GScanner *scanner)
{
gulong error_handler;
if (error)
error_handler = g_signal_connect (css_provider,
"parsing-error",
G_CALLBACK (gtk_css_provider_propagate_error),
error);
else
error_handler = 0; /* silence gcc */
g_scanner_get_next_token (scanner);
while (!g_scanner_eof (scanner))
@ -2627,6 +2616,31 @@ parse_stylesheet (GtkCssProvider *css_provider,
gtk_css_scanner_reset (scanner);
}
}
static gboolean
gtk_css_provider_load_internal (GtkCssProvider *css_provider,
GFile *file,
const char *data,
gsize length,
GError **error)
{
GScanner *scanner;
gulong error_handler;
if (error)
error_handler = g_signal_connect (css_provider,
"parsing-error",
G_CALLBACK (gtk_css_provider_propagate_error),
error);
else
error_handler = 0; /* silence gcc */
scanner = gtk_css_scanner_new (file, data, length);
parse_stylesheet (css_provider, scanner);
gtk_css_scanner_destroy (scanner);
if (error)
{
@ -2643,25 +2657,6 @@ parse_stylesheet (GtkCssProvider *css_provider,
return TRUE;
}
static gboolean
gtk_css_provider_load_internal (GtkCssProvider *css_provider,
GFile *file,
const char *data,
gsize length,
GError **error)
{
GScanner *scanner;
gboolean result;
scanner = gtk_css_scanner_new (file, data, length);
result = parse_stylesheet (css_provider, scanner, error);
gtk_css_scanner_destroy (scanner);
return result;
}
/**
* gtk_css_provider_load_from_data:
* @css_provider: a #GtkCssProvider