Skip to content
Snippets Groups Projects
Commit d510b2f0d033 authored by Daniel Veillard's avatar Daniel Veillard
Browse files

very early steps, Daniel.

parent 361132ed976c
Branches
No related tags found
No related merge requests found
Sun Jan 7 16:11:42 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* libxslt/xslt.[ch] libxslt/xsltInternals.h libxslt/xsltproc.c:
very early coding
Sun Jan 7 15:10:54 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr> Sun Jan 7 15:10:54 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* configure.in Makefile.am AUTHORS NEWS autogen.sh config.h.in * configure.in Makefile.am AUTHORS NEWS autogen.sh config.h.in
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
noinst_PROGRAMS = xsltproc noinst_PROGRAMS = xsltproc
DEPS = $(top_builddir)/libxslt/libxslt.la DEPS = $(top_builddir)/libxslt/libxslt.la
LDADDS = $(top_builddir)/libxslt/libxslt.la $(LIBXML_LIBS) LDADDS = -L. $(top_builddir)/libxslt/libxslt.la $(LIBXML_LIBS)
xsltproc_SOURCES = xsltproc.c xsltproc_SOURCES = xsltproc.c
xsltproc_LDFLAGS = xsltproc_LDFLAGS =
......
...@@ -9,5 +9,8 @@ ...@@ -9,5 +9,8 @@
* Daniel.Veillard@imag.fr * Daniel.Veillard@imag.fr
*/ */
#include <string.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h> #include <libxml/parser.h>
#include <libxml/tree.h> #include <libxml/tree.h>
...@@ -12,5 +15,6 @@ ...@@ -12,5 +15,6 @@
#include <libxml/parser.h> #include <libxml/parser.h>
#include <libxml/tree.h> #include <libxml/tree.h>
#include <libxml/xmlerror.h>
#include <libxslt/xslt.h> #include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h> #include <libxslt/xsltInternals.h>
...@@ -14,6 +18,12 @@ ...@@ -14,6 +18,12 @@
#include <libxslt/xslt.h> #include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h> #include <libxslt/xsltInternals.h>
/*
* There is no XSLT specific error reporting module yet
*/
#define xsltGenericError xmlGenericError
#define xsltGenericErrorContext xmlGenericErrorContext
/************************************************************************ /************************************************************************
* * * *
* Routines to handle XSLT data structures * * Routines to handle XSLT data structures *
...@@ -21,6 +31,27 @@ ...@@ -21,6 +31,27 @@
************************************************************************/ ************************************************************************/
/** /**
* xsltNewStylesheet:
*
* Create a new XSLT Stylesheet
*
* Returns the newly allocated xsltStylesheetPtr or NULL in case of error
*/
xsltStylesheetPtr
xsltNewStylesheet(void) {
xsltStylesheetPtr cur;
cur = (xsltStylesheetPtr) xmlMalloc(sizeof(xsltStylesheet));
if (cur == NULL) {
xsltGenericError(xsltGenericErrorContext,
"xsltNewStylesheet : malloc failed\n");
return(NULL);
}
memset(cur, 0, sizeof(xsltStylesheet));
return(cur);
}
/**
* xsltFreeStylesheet: * xsltFreeStylesheet:
* @sheet: an XSLT stylesheet * @sheet: an XSLT stylesheet
* *
...@@ -28,6 +59,12 @@ ...@@ -28,6 +59,12 @@
*/ */
void void
xsltFreeStylesheet(xsltStylesheetPtr sheet) { xsltFreeStylesheet(xsltStylesheetPtr sheet) {
if (sheet == NULL)
return;
if (sheet->doc != NULL)
xmlFreeDoc(sheet->doc);
memset(sheet, -1, sizeof(xsltStylesheet));
xmlFree(sheet);
} }
/************************************************************************ /************************************************************************
...@@ -48,6 +85,24 @@ ...@@ -48,6 +85,24 @@
xsltStylesheetPtr xsltStylesheetPtr
xsltParseStylesheetFile(const xmlChar* filename) { xsltParseStylesheetFile(const xmlChar* filename) {
xsltStylesheetPtr ret; xsltStylesheetPtr ret;
xmlDocPtr doc;
if (filename == NULL)
return(NULL);
doc = xmlParseFile(filename);
if (doc == NULL) {
xsltGenericError(xsltGenericErrorContext,
"xsltParseStylesheetFile : cannot parse %s\n", filename);
return(NULL);
}
ret = xsltNewStylesheet();
if (ret == NULL) {
xmlFreeDoc(doc);
return(NULL);
}
ret->doc = doc;
return(ret); return(ret);
} }
......
...@@ -21,9 +21,10 @@ ...@@ -21,9 +21,10 @@
typedef struct _xsltStylesheet xsltStylesheet; typedef struct _xsltStylesheet xsltStylesheet;
typedef xsltStylesheet *xsltStylesheetPtr; typedef xsltStylesheet *xsltStylesheetPtr;
struct _xsltStylesheet { struct _xsltStylesheet {
xmlDocPtr doc; /* the parsed XML stylesheet */
}; };
/* /*
* Functions associated to the internal types * Functions associated to the internal types
*/ */
xsltStylesheetPtr xsltParseStylesheetFile (const xmlChar* filename); xsltStylesheetPtr xsltParseStylesheetFile (const xmlChar* filename);
...@@ -24,9 +25,10 @@ ...@@ -24,9 +25,10 @@
}; };
/* /*
* Functions associated to the internal types * Functions associated to the internal types
*/ */
xsltStylesheetPtr xsltParseStylesheetFile (const xmlChar* filename); xsltStylesheetPtr xsltParseStylesheetFile (const xmlChar* filename);
void xsltFreeStylesheet (xsltStylesheetPtr sheet);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
* Daniel.Veillard@imag.fr * Daniel.Veillard@imag.fr
*/ */
#include <string.h>
#include <libxml/xmlmemory.h>
#include <libxslt/xslt.h> #include <libxslt/xslt.h>
#include <libxslt/xsltInternals.h> #include <libxslt/xsltInternals.h>
...@@ -13,8 +15,7 @@ ...@@ -13,8 +15,7 @@
int int
main(int argc, char **argv) { main(int argc, char **argv) {
int i, count; int i;
int files = 0;
xsltStylesheetPtr cur; xsltStylesheetPtr cur;
LIBXML_TEST_VERSION LIBXML_TEST_VERSION
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment