mirror of
https://gitlab.gnome.org/GNOME/libxslt
synced 2025-11-08 11:02:18 +03:00
very early steps, Daniel.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
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 @@ libxslt_la_SOURCES = \
|
|||||||
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,17 +9,48 @@
|
|||||||
* 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>
|
||||||
|
#include <libxml/xmlerror.h>
|
||||||
#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 *
|
||||||
* *
|
* *
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 @@
|
|||||||
*/
|
*/
|
||||||
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 @@ xsltFreeStylesheet(xsltStylesheetPtr sheet) {
|
|||||||
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,12 +21,14 @@ extern "C" {
|
|||||||
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);
|
||||||
|
void xsltFreeStylesheet (xsltStylesheetPtr sheet);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 @@ static int debug = 0;
|
|||||||
|
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user