Home | History | Annotate | Download | only in libxslt
      1 /*
      2  * Summary: Implementation of the XSLT number functions
      3  * Description: Implementation of the XSLT number functions
      4  *
      5  * Copy: See Copyright for the status of this software.
      6  *
      7  * Author: Bjorn Reese <breese (at) users.sourceforge.net> and Daniel Veillard
      8  */
      9 
     10 #ifndef __XML_XSLT_NUMBERSINTERNALS_H__
     11 #define __XML_XSLT_NUMBERSINTERNALS_H__
     12 
     13 #include <libxml/tree.h>
     14 #include "xsltexports.h"
     15 
     16 #ifdef __cplusplus
     17 extern "C" {
     18 #endif
     19 
     20 /**
     21  * xsltNumberData:
     22  *
     23  * This data structure is just a wrapper to pass xsl:number data in.
     24  */
     25 typedef struct _xsltNumberData xsltNumberData;
     26 typedef xsltNumberData *xsltNumberDataPtr;
     27 
     28 struct _xsltNumberData {
     29     const xmlChar *level;
     30     const xmlChar *count;
     31     const xmlChar *from;
     32     const xmlChar *value;
     33     const xmlChar *format;
     34     int has_format;
     35     int digitsPerGroup;
     36     int groupingCharacter;
     37     int groupingCharacterLen;
     38     xmlDocPtr doc;
     39     xmlNodePtr node;
     40 
     41     /*
     42      * accelerators
     43      */
     44 };
     45 
     46 /**
     47  * xsltFormatNumberInfo,:
     48  *
     49  * This data structure lists the various parameters needed to format numbers.
     50  */
     51 typedef struct _xsltFormatNumberInfo xsltFormatNumberInfo;
     52 typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr;
     53 
     54 struct _xsltFormatNumberInfo {
     55     int	    integer_hash;	/* Number of '#' in integer part */
     56     int	    integer_digits;	/* Number of '0' in integer part */
     57     int	    frac_digits;	/* Number of '0' in fractional part */
     58     int	    frac_hash;		/* Number of '#' in fractional part */
     59     int	    group;		/* Number of chars per display 'group' */
     60     int     multiplier;		/* Scaling for percent or permille */
     61     char    add_decimal;	/* Flag for whether decimal point appears in pattern */
     62     char    is_multiplier_set;	/* Flag to catch multiple occurences of percent/permille */
     63     char    is_negative_pattern;/* Flag for processing -ve prefix/suffix */
     64 };
     65 
     66 #ifdef __cplusplus
     67 }
     68 #endif
     69 #endif /* __XML_XSLT_NUMBERSINTERNALS_H__ */
     70