From 5b529aba2ca4213cbaf95cef77f61108bf6c43c3 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Sat, 14 Jul 2001 20:01:17 +0000 Subject: [PATCH] trying to accept AVT for "format" in xsl:number Daniel * libxslt/numbers.c libxslt/numbersInternals.h libxslt/preproc.c: trying to accept AVT for "format" in xsl:number Daniel --- ChangeLog | 5 +++++ libxslt/numbers.c | 10 ++++++++++ libxslt/numbersInternals.h | 1 + libxslt/preproc.c | 12 +++++++----- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42c1d2b..bef1758 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jul 15 16:01:55 CEST 2001 Daniel Veillard + + * libxslt/numbers.c libxslt/numbersInternals.h libxslt/preproc.c: + trying to accept AVT for "format" in xsl:number + Fri Jul 13 16:57:08 CEST 2001 Daniel Veillard * win32/libxslt/libxslt.defs: trying to close #57460 by adding diff --git a/libxslt/numbers.c b/libxslt/numbers.c index 9fea063..3ea233c 100644 --- a/libxslt/numbers.c +++ b/libxslt/numbers.c @@ -29,6 +29,7 @@ #include #include "xsltutils.h" #include "pattern.h" +#include "templates.h" #include "numbersInternals.h" #ifndef FALSE @@ -600,6 +601,15 @@ xsltNumberFormat(xsltTransformContextPtr ctxt, double number; xsltNumberFormatToken array[1024]; + if ((data->format == NULL) && (data->has_format != 0)) { + data->format = xsltEvalAttrValueTemplate(ctxt, data->node, + (const xmlChar *) "format", + XSLT_NAMESPACE); + } + if (data->format == NULL) { + return; + } + output = xmlBufferCreate(); if (output == NULL) goto XSLT_NUMBER_FORMAT_END; diff --git a/libxslt/numbersInternals.h b/libxslt/numbersInternals.h index f6fd7aa..0cb7df4 100644 --- a/libxslt/numbersInternals.h +++ b/libxslt/numbersInternals.h @@ -27,6 +27,7 @@ typedef struct _xsltNumberData { xmlChar *from; xmlChar *value; xmlChar *format; + int has_format; int digitsPerGroup; xmlChar groupingCharacter; xmlDocPtr doc; diff --git a/libxslt/preproc.c b/libxslt/preproc.c index 9772feb..7170cc6 100644 --- a/libxslt/preproc.c +++ b/libxslt/preproc.c @@ -717,13 +717,15 @@ xsltNumberComp(xsltStylesheetPtr style, xmlNodePtr cur) { comp->numdata.value = xsltGetNsProp(cur, (const xmlChar *)"value", XSLT_NAMESPACE); - prop = xsltGetNsProp(cur, (const xmlChar *)"format", XSLT_NAMESPACE); - if (prop != NULL) { - comp->numdata.format = prop; - } else { + prop = xsltEvalStaticAttrValueTemplate(style, cur, + (const xmlChar *)"format", + XSLT_NAMESPACE, &comp->numdata.has_format); + if (comp->numdata.has_format == 0) { comp->numdata.format = xmlStrdup(BAD_CAST("")); + } else { + comp->numdata.format = prop; } - + comp->numdata.count = xsltGetNsProp(cur, (const xmlChar *)"count", XSLT_NAMESPACE); comp->numdata.from = xsltGetNsProp(cur, (const xmlChar *)"from", -- 2.7.4