#define IN_LIBXSLT
#include "libxslt.h"
#include <math.h>
#include <limits.h>
#include <float.h>
#include <string.h>
#include <libxml/xmlmemory.h>
#include <libxml/parserInternals.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxml/encoding.h>
#include "xsltutils.h"
#include "pattern.h"
#include "templates.h"
#include "transform.h"
#include "numbersInternals.h"
#ifndef FALSE
#define FALSE …
#define TRUE …
#endif
#define SYMBOL_QUOTE …
#define DEFAULT_TOKEN …
#define DEFAULT_SEPARATOR …
#define MAX_TOKENS …
xsltFormatToken;
xsltFormatTokenPtr;
struct _xsltFormatToken { … };
xsltFormat;
xsltFormatPtr;
struct _xsltFormat { … };
static char alpha_upper_list[] = …;
static char alpha_lower_list[] = …;
static xsltFormatToken default_token;
static int
xsltUTF8Charcmp(xmlChar *utf1, xmlChar *utf2) { … }
static int
xsltIsLetterDigit(int val) { … }
#define IS_SPECIAL(self,letter) …
#define IS_DIGIT_ZERO(x) …
#define IS_DIGIT_ONE(x) …
static int
xsltIsDigitZero(int ch)
{ … }
static void
xsltNumberFormatDecimal(xmlBufferPtr buffer,
double number,
int digit_zero,
int width,
int digitsPerGroup,
int groupingCharacter,
int groupingCharacterLen)
{ … }
static void
xsltNumberFormatAlpha(xsltNumberDataPtr data,
xmlBufferPtr buffer,
double number,
int is_upper)
{ … }
static void
xsltNumberFormatRoman(xsltNumberDataPtr data,
xmlBufferPtr buffer,
double number,
int is_upper)
{ … }
static void
xsltNumberFormatTokenize(const xmlChar *format,
xsltFormatPtr tokens)
{ … }
static void
xsltNumberFormatInsertNumbers(xsltNumberDataPtr data,
double *numbers,
int numbers_max,
xsltFormatPtr tokens,
xmlBufferPtr buffer)
{ … }
static int
xsltTestCompMatchCount(xsltTransformContextPtr context,
xmlNodePtr node,
xsltCompMatchPtr countPat,
xmlNodePtr cur)
{ … }
static int
xsltNumberFormatGetAnyLevel(xsltTransformContextPtr context,
xmlNodePtr node,
xsltCompMatchPtr countPat,
xsltCompMatchPtr fromPat,
double *array)
{ … }
static int
xsltNumberFormatGetMultipleLevel(xsltTransformContextPtr context,
xmlNodePtr node,
xsltCompMatchPtr countPat,
xsltCompMatchPtr fromPat,
double *array,
int max)
{ … }
static int
xsltNumberFormatGetValue(xmlXPathContextPtr context,
xmlNodePtr node,
const xmlChar *value,
double *number)
{ … }
void
xsltNumberFormat(xsltTransformContextPtr ctxt,
xsltNumberDataPtr data,
xmlNodePtr node)
{ … }
static int
xsltFormatNumberPreSuffix(xsltDecimalFormatPtr self, xmlChar **format, xsltFormatNumberInfoPtr info)
{ … }
xmlXPathError
xsltFormatNumberConversion(xsltDecimalFormatPtr self,
xmlChar *format,
double number,
xmlChar **result)
{ … }