Viewing file: pr52306.c (1.63 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* PR middle-end/52306 */
struct xmlNs { const unsigned char *prefix; };
struct xmlNode { const unsigned char *name; struct xmlNs *ns; struct xmlNs *nsDef; };
struct xsltTemplate { const unsigned char *name; int inheritedNsNr; void *inheritedNs; };
struct xsltTemplate *xsltNewTemplate(void); void xsltGetQNameURI(unsigned char**); long xmlMalloc(unsigned long); void xsltGenericDebug(void); int xmlStrEqual(const unsigned char*, const unsigned char*);
static void xsltGetInheritedNsList( struct xsltTemplate *template, struct xmlNode *node) { struct xmlNs *cur; struct xmlNs **ret; int nbns = 0; int maxns = 10; int i;
if (template == 0 || template->inheritedNsNr != 0 || template->inheritedNs != 0) return;
while (node != 0) { cur = node->nsDef; ret = (struct xmlNs**) xmlMalloc((maxns + 1) * sizeof(struct xmlNs*)); for (i = 0; i < nbns; i++) if (cur->prefix == ret[i]->prefix || xmlStrEqual(cur->prefix, 0)) break;
if (i >= nbns) { if (nbns >= maxns) return; ret[nbns++] = cur; } } }
static void xsltParseStylesheetTemplate(struct xmlNode *template) { struct xsltTemplate *ret; unsigned char *prop;
ret = xsltNewTemplate(); if (ret == 0) return; xsltGetInheritedNsList(ret, template); xsltGenericDebug(); xsltGetQNameURI(&prop); xmlStrEqual(0, ret->name); }
void xsltParseStylesheetTop(struct xmlNode *cur) { xmlStrEqual(0, 0);
while (cur != 0) { if (xmlStrEqual(cur->name, 0)) ; else if (xmlStrEqual(cur->name, 0)) ; else if (xmlStrEqual(cur->name, 0)) xsltParseStylesheetTemplate(cur); } }
|