XSLT stylesheet is now loaded directly from file
Reading from memory kind of disabled XInclude possibility. Included files must have been loaded one by one, which is a bit out of control.
This commit is contained in:
parent
ffb00a00a0
commit
3fea7bf0a8
@ -673,7 +673,6 @@ ag_chart_create_svg(AgChart *chart, GError **err)
|
|||||||
gchar *value,
|
gchar *value,
|
||||||
*stylesheet_path,
|
*stylesheet_path,
|
||||||
*css_path,
|
*css_path,
|
||||||
*xslt,
|
|
||||||
*save_content = NULL,
|
*save_content = NULL,
|
||||||
*css_uri,
|
*css_uri,
|
||||||
*css_final_uri,
|
*css_final_uri,
|
||||||
@ -688,10 +687,8 @@ ag_chart_create_svg(AgChart *chart, GError **err)
|
|||||||
GEnumClass *planets_class,
|
GEnumClass *planets_class,
|
||||||
*aspects_class,
|
*aspects_class,
|
||||||
*antiscia_class;
|
*antiscia_class;
|
||||||
guint xslt_length;
|
|
||||||
gint save_length;
|
gint save_length;
|
||||||
GFile *xslt_file,
|
GFile *css_file;
|
||||||
*css_file;
|
|
||||||
xsltStylesheetPtr xslt_proc;
|
xsltStylesheetPtr xslt_proc;
|
||||||
locale_t current_locale;
|
locale_t current_locale;
|
||||||
|
|
||||||
@ -834,30 +831,19 @@ ag_chart_create_svg(AgChart *chart, GError **err)
|
|||||||
|
|
||||||
// Now, doc contains the generated XML tree
|
// Now, doc contains the generated XML tree
|
||||||
|
|
||||||
// Now let's load the style sheet
|
|
||||||
stylesheet_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.xsl");
|
|
||||||
g_debug("Opening %s as a stylesheet", stylesheet_path);
|
|
||||||
xslt_file = g_file_new_for_path(stylesheet_path);
|
|
||||||
if (!g_file_load_contents(xslt_file, NULL, &xslt, &xslt_length, NULL, err)) {
|
|
||||||
g_free(stylesheet_path);
|
|
||||||
xmlFreeDoc(doc);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
css_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.css");
|
css_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.css");
|
||||||
g_debug("Using %s as a CSS stylesheet", css_path);
|
g_debug("Using %s as a CSS stylesheet", css_path);
|
||||||
css_file = g_file_new_for_path(css_path);
|
css_file = g_file_new_for_path(css_path);
|
||||||
css_uri = g_file_get_uri(css_file);
|
css_uri = g_file_get_uri(css_file);
|
||||||
|
|
||||||
if ((xslt_doc = xmlReadMemory(xslt, xslt_length, "chart.xsl", NULL, 0)) == NULL) {
|
stylesheet_path = g_strdup_printf("%s/%s", PKGDATADIR, "chart.xsl");
|
||||||
|
g_debug("Opening %s as a stylesheet", stylesheet_path);
|
||||||
|
if ((xslt_doc = xmlReadFile(stylesheet_path, "UTF-8", 0)) == NULL) {
|
||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
||||||
g_free(stylesheet_path);
|
g_free(stylesheet_path);
|
||||||
g_free(css_path);
|
g_free(css_path);
|
||||||
g_free(css_uri);
|
g_free(css_uri);
|
||||||
g_object_unref(css_file);
|
g_object_unref(css_file);
|
||||||
g_object_unref(xslt_file);
|
|
||||||
g_free(xslt);
|
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -873,9 +859,7 @@ ag_chart_create_svg(AgChart *chart, GError **err)
|
|||||||
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
g_set_error(err, AG_CHART_ERROR, AG_CHART_ERROR_CORRUPT_FILE, "File '%s' can not be parsed as a stylesheet file.", stylesheet_path);
|
||||||
g_free(stylesheet_path);
|
g_free(stylesheet_path);
|
||||||
g_free(css_path);
|
g_free(css_path);
|
||||||
g_free(xslt);
|
|
||||||
g_free(css_uri);
|
g_free(css_uri);
|
||||||
g_object_unref(xslt_file);
|
|
||||||
g_object_unref(css_file);
|
g_object_unref(css_file);
|
||||||
xmlFreeDoc(xslt_doc);
|
xmlFreeDoc(xslt_doc);
|
||||||
xmlFreeDoc(doc);
|
xmlFreeDoc(doc);
|
||||||
@ -897,7 +881,6 @@ ag_chart_create_svg(AgChart *chart, GError **err)
|
|||||||
uselocale(current_locale);
|
uselocale(current_locale);
|
||||||
g_free(stylesheet_path);
|
g_free(stylesheet_path);
|
||||||
g_free(css_path);
|
g_free(css_path);
|
||||||
g_object_unref(xslt_file);
|
|
||||||
g_object_unref(css_file);
|
g_object_unref(css_file);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
xsltFreeStylesheet(xslt_proc);
|
xsltFreeStylesheet(xslt_proc);
|
||||||
|
Loading…
Reference in New Issue
Block a user