Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(292)

Unified Diff: third_party/libxslt/libxslt/documents.c

Issue 2865973002: Check in the libxslt roll script. (Closed)
Patch Set: Consistent quotes. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/libxslt/libxslt/documents.h ('k') | third_party/libxslt/libxslt/extensions.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/libxslt/libxslt/documents.c
diff --git a/third_party/libxslt/libxslt/documents.c b/third_party/libxslt/libxslt/documents.c
deleted file mode 100644
index 3f3a7312ca8e27fac181866c44eeea80e772992f..0000000000000000000000000000000000000000
--- a/third_party/libxslt/libxslt/documents.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
- * documents.c: Implementation of the documents handling
- *
- * See Copyright for the status of this software.
- *
- * daniel@veillard.com
- */
-
-#define IN_LIBXSLT
-#include "libxslt.h"
-
-#include <string.h>
-
-#include <libxml/xmlmemory.h>
-#include <libxml/tree.h>
-#include <libxml/hash.h>
-#include <libxml/parser.h>
-#include <libxml/parserInternals.h>
-#include "xslt.h"
-#include "xsltInternals.h"
-#include "xsltutils.h"
-#include "documents.h"
-#include "transform.h"
-#include "imports.h"
-#include "keys.h"
-#include "security.h"
-
-#ifdef LIBXML_XINCLUDE_ENABLED
-#include <libxml/xinclude.h>
-#endif
-
-#define WITH_XSLT_DEBUG_DOCUMENTS
-
-#ifdef WITH_XSLT_DEBUG
-#define WITH_XSLT_DEBUG_DOCUMENTS
-#endif
-
-/************************************************************************
- * *
- * Hooks for the document loader *
- * *
- ************************************************************************/
-
-/**
- * xsltDocDefaultLoaderFunc:
- * @URI: the URI of the document to load
- * @dict: the dictionary to use when parsing that document
- * @options: parsing options, a set of xmlParserOption
- * @ctxt: the context, either a stylesheet or a transformation context
- * @type: the xsltLoadType indicating the kind of loading required
- *
- * Default function to load document not provided by the compilation or
- * transformation API themselve, for example when an xsl:import,
- * xsl:include is found at compilation time or when a document()
- * call is made at runtime.
- *
- * Returns the pointer to the document (which will be modified and
- * freed by the engine later), or NULL in case of error.
- */
-static xmlDocPtr
-xsltDocDefaultLoaderFunc(const xmlChar * URI, xmlDictPtr dict, int options,
- void *ctxt ATTRIBUTE_UNUSED,
- xsltLoadType type ATTRIBUTE_UNUSED)
-{
- xmlParserCtxtPtr pctxt;
- xmlParserInputPtr inputStream;
- xmlDocPtr doc;
-
- pctxt = xmlNewParserCtxt();
- if (pctxt == NULL)
- return(NULL);
- if ((dict != NULL) && (pctxt->dict != NULL)) {
- xmlDictFree(pctxt->dict);
- pctxt->dict = NULL;
- }
- if (dict != NULL) {
- pctxt->dict = dict;
- xmlDictReference(pctxt->dict);
-#ifdef WITH_XSLT_DEBUG
- xsltGenericDebug(xsltGenericDebugContext,
- "Reusing dictionary for document\n");
-#endif
- }
- xmlCtxtUseOptions(pctxt, options);
- inputStream = xmlLoadExternalEntity((const char *) URI, NULL, pctxt);
- if (inputStream == NULL) {
- xmlFreeParserCtxt(pctxt);
- return(NULL);
- }
- inputPush(pctxt, inputStream);
- if (pctxt->directory == NULL)
- pctxt->directory = xmlParserGetDirectory((const char *) URI);
-
- xmlParseDocument(pctxt);
-
- if (pctxt->wellFormed) {
- doc = pctxt->myDoc;
- }
- else {
- doc = NULL;
- xmlFreeDoc(pctxt->myDoc);
- pctxt->myDoc = NULL;
- }
- xmlFreeParserCtxt(pctxt);
-
- return(doc);
-}
-
-
-xsltDocLoaderFunc xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
-
-/**
- * xsltSetLoaderFunc:
- * @f: the new function to handle document loading.
- *
- * Set the new function to load document, if NULL it resets it to the
- * default function.
- */
-
-void
-xsltSetLoaderFunc(xsltDocLoaderFunc f) {
- if (f == NULL)
- xsltDocDefaultLoader = xsltDocDefaultLoaderFunc;
- else
- xsltDocDefaultLoader = f;
-}
-
-/************************************************************************
- * *
- * Module interfaces *
- * *
- ************************************************************************/
-
-/**
- * xsltNewDocument:
- * @ctxt: an XSLT transformation context (or NULL)
- * @doc: a parsed XML document
- *
- * Register a new document, apply key computations
- *
- * Returns a handler to the document
- */
-xsltDocumentPtr
-xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr doc) {
- xsltDocumentPtr cur;
-
- cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
- if (cur == NULL) {
- xsltTransformError(ctxt, NULL, (xmlNodePtr) doc,
- "xsltNewDocument : malloc failed\n");
- return(NULL);
- }
- memset(cur, 0, sizeof(xsltDocument));
- cur->doc = doc;
- if (ctxt != NULL) {
- if (! XSLT_IS_RES_TREE_FRAG(doc)) {
- cur->next = ctxt->docList;
- ctxt->docList = cur;
- }
- /*
- * A key with a specific name for a specific document
- * will only be computed if there's a call to the key()
- * function using that specific name for that specific
- * document. I.e. computation of keys will be done in
- * xsltGetKey() (keys.c) on an on-demand basis.
- *
- * xsltInitCtxtKeys(ctxt, cur); not called here anymore
- */
- }
- return(cur);
-}
-
-/**
- * xsltNewStyleDocument:
- * @style: an XSLT style sheet
- * @doc: a parsed XML document
- *
- * Register a new document, apply key computations
- *
- * Returns a handler to the document
- */
-xsltDocumentPtr
-xsltNewStyleDocument(xsltStylesheetPtr style, xmlDocPtr doc) {
- xsltDocumentPtr cur;
-
- cur = (xsltDocumentPtr) xmlMalloc(sizeof(xsltDocument));
- if (cur == NULL) {
- xsltTransformError(NULL, style, (xmlNodePtr) doc,
- "xsltNewStyleDocument : malloc failed\n");
- return(NULL);
- }
- memset(cur, 0, sizeof(xsltDocument));
- cur->doc = doc;
- if (style != NULL) {
- cur->next = style->docList;
- style->docList = cur;
- }
- return(cur);
-}
-
-/**
- * xsltFreeStyleDocuments:
- * @style: an XSLT stylesheet (representing a stylesheet-level)
- *
- * Frees the node-trees (and xsltDocument structures) of all
- * stylesheet-modules of the stylesheet-level represented by
- * the given @style.
- */
-void
-xsltFreeStyleDocuments(xsltStylesheetPtr style) {
- xsltDocumentPtr doc, cur;
-#ifdef XSLT_REFACTORED_XSLT_NSCOMP
- xsltNsMapPtr nsMap;
-#endif
-
- if (style == NULL)
- return;
-
-#ifdef XSLT_REFACTORED_XSLT_NSCOMP
- if (XSLT_HAS_INTERNAL_NSMAP(style))
- nsMap = XSLT_GET_INTERNAL_NSMAP(style);
- else
- nsMap = NULL;
-#endif
-
- cur = style->docList;
- while (cur != NULL) {
- doc = cur;
- cur = cur->next;
-#ifdef XSLT_REFACTORED_XSLT_NSCOMP
- /*
- * Restore all changed namespace URIs of ns-decls.
- */
- if (nsMap)
- xsltRestoreDocumentNamespaces(nsMap, doc->doc);
-#endif
- xsltFreeDocumentKeys(doc);
- if (!doc->main)
- xmlFreeDoc(doc->doc);
- xmlFree(doc);
- }
-}
-
-/**
- * xsltFreeDocuments:
- * @ctxt: an XSLT transformation context
- *
- * Free up all the space used by the loaded documents
- */
-void
-xsltFreeDocuments(xsltTransformContextPtr ctxt) {
- xsltDocumentPtr doc, cur;
-
- cur = ctxt->docList;
- while (cur != NULL) {
- doc = cur;
- cur = cur->next;
- xsltFreeDocumentKeys(doc);
- if (!doc->main)
- xmlFreeDoc(doc->doc);
- xmlFree(doc);
- }
- cur = ctxt->styleList;
- while (cur != NULL) {
- doc = cur;
- cur = cur->next;
- xsltFreeDocumentKeys(doc);
- if (!doc->main)
- xmlFreeDoc(doc->doc);
- xmlFree(doc);
- }
-}
-
-/**
- * xsltLoadDocument:
- * @ctxt: an XSLT transformation context
- * @URI: the computed URI of the document
- *
- * Try to load a document (not a stylesheet)
- * within the XSLT transformation context
- *
- * Returns the new xsltDocumentPtr or NULL in case of error
- */
-xsltDocumentPtr
-xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) {
- xsltDocumentPtr ret;
- xmlDocPtr doc;
-
- if ((ctxt == NULL) || (URI == NULL))
- return(NULL);
-
- /*
- * Security framework check
- */
- if (ctxt->sec != NULL) {
- int res;
-
- res = xsltCheckRead(ctxt->sec, ctxt, URI);
- if (res == 0) {
- xsltTransformError(ctxt, NULL, NULL,
- "xsltLoadDocument: read rights for %s denied\n",
- URI);
- return(NULL);
- }
- }
-
- /*
- * Walk the context list to find the document if preparsed
- */
- ret = ctxt->docList;
- while (ret != NULL) {
- if ((ret->doc != NULL) && (ret->doc->URL != NULL) &&
- (xmlStrEqual(ret->doc->URL, URI)))
- return(ret);
- ret = ret->next;
- }
-
- doc = xsltDocDefaultLoader(URI, ctxt->dict, ctxt->parserOptions,
- (void *) ctxt, XSLT_LOAD_DOCUMENT);
-
- if (doc == NULL)
- return(NULL);
-
- if (ctxt->xinclude != 0) {
-#ifdef LIBXML_XINCLUDE_ENABLED
-#if LIBXML_VERSION >= 20603
- xmlXIncludeProcessFlags(doc, ctxt->parserOptions);
-#else
- xmlXIncludeProcess(doc);
-#endif
-#else
- xsltTransformError(ctxt, NULL, NULL,
- "xsltLoadDocument(%s) : XInclude processing not compiled in\n",
- URI);
-#endif
- }
- /*
- * Apply white-space stripping if asked for
- */
- if (xsltNeedElemSpaceHandling(ctxt))
- xsltApplyStripSpaces(ctxt, xmlDocGetRootElement(doc));
- if (ctxt->debugStatus == XSLT_DEBUG_NONE)
- xmlXPathOrderDocElems(doc);
-
- ret = xsltNewDocument(ctxt, doc);
- return(ret);
-}
-
-/**
- * xsltLoadStyleDocument:
- * @style: an XSLT style sheet
- * @URI: the computed URI of the document
- *
- * Try to load a stylesheet document within the XSLT transformation context
- *
- * Returns the new xsltDocumentPtr or NULL in case of error
- */
-xsltDocumentPtr
-xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) {
- xsltDocumentPtr ret;
- xmlDocPtr doc;
- xsltSecurityPrefsPtr sec;
-
- if ((style == NULL) || (URI == NULL))
- return(NULL);
-
- /*
- * Security framework check
- */
- sec = xsltGetDefaultSecurityPrefs();
- if (sec != NULL) {
- int res;
-
- res = xsltCheckRead(sec, NULL, URI);
- if (res == 0) {
- xsltTransformError(NULL, NULL, NULL,
- "xsltLoadStyleDocument: read rights for %s denied\n",
- URI);
- return(NULL);
- }
- }
-
- /*
- * Walk the context list to find the document if preparsed
- */
- ret = style->docList;
- while (ret != NULL) {
- if ((ret->doc != NULL) && (ret->doc->URL != NULL) &&
- (xmlStrEqual(ret->doc->URL, URI)))
- return(ret);
- ret = ret->next;
- }
-
- doc = xsltDocDefaultLoader(URI, style->dict, XSLT_PARSE_OPTIONS,
- (void *) style, XSLT_LOAD_STYLESHEET);
- if (doc == NULL)
- return(NULL);
-
- ret = xsltNewStyleDocument(style, doc);
- return(ret);
-}
-
-/**
- * xsltFindDocument:
- * @ctxt: an XSLT transformation context
- * @doc: a parsed XML document
- *
- * Try to find a document within the XSLT transformation context.
- * This will not find document infos for temporary
- * Result Tree Fragments.
- *
- * Returns the desired xsltDocumentPtr or NULL in case of error
- */
-xsltDocumentPtr
-xsltFindDocument (xsltTransformContextPtr ctxt, xmlDocPtr doc) {
- xsltDocumentPtr ret;
-
- if ((ctxt == NULL) || (doc == NULL))
- return(NULL);
-
- /*
- * Walk the context list to find the document
- */
- ret = ctxt->docList;
- while (ret != NULL) {
- if (ret->doc == doc)
- return(ret);
- ret = ret->next;
- }
- if (doc == ctxt->style->doc)
- return(ctxt->document);
- return(NULL);
-}
-
« no previous file with comments | « third_party/libxslt/libxslt/documents.h ('k') | third_party/libxslt/libxslt/extensions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698