diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-04-26 12:42:11 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-04-26 12:42:11 +0300 |
commit | d50fc04ded36255465184a16c70eb4c50acdb199 (patch) | |
tree | 02a568794c2a211621d1fe39868eaad7963bdc43 /src/tagr.h | |
parent | 099a946ad4465c42db4737b247f1e89bd03c83ae (diff) | |
download | tagr-d50fc04ded36255465184a16c70eb4c50acdb199.tar.gz tagr-d50fc04ded36255465184a16c70eb4c50acdb199.tar.bz2 |
Introduce formats in preprocessor variables.
* configure.ac: Version 1.9.90
* NEWS: Likewise.
* etc/Makefile.am (EXTRA_DIST): Add logfilter.awk uptmpl.sed
* etc/logfilter.awk: New file
* etc/uptmpl.sed: New file
* etc/tagr.tmpl: Update
* etc/upgrade.awk: Add copyleft header
* gnulib.modules: Add fprintftime.
* src/graph.c (rate_unit): Change to "Bytes per Second".
(number_suffix, number_suffix_count): Move to grid.c
* src/html.gram.y: Work with formats.
* src/html.lex.l: Likewise.
* src/output.c (update_output): Store NOW as a number and
provide a formatting function for it.
* src/tagr.h (union value, value_format_fn): New types.
(pp_value_t): New members: fmt, format
(add_numeric_value, add_string_value): Change return type.
(init_value): New proto.
Diffstat (limited to 'src/tagr.h')
-rw-r--r-- | src/tagr.h | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -97,15 +97,21 @@ int yyerror (char *s); typedef enum { unspecified_value, numeric_value, string_value } value_type; +union value +{ + double number; + char *string; +}; + +typedef void (*value_format_fn) (FILE *, union value, const char *, int); + typedef struct { value_type type; int prec; - union - { - double number; - char *string; - } v; + char *fmt; + value_format_fn format; + union value v; } pp_value_t; typedef struct pp_value_list @@ -117,8 +123,11 @@ typedef struct pp_value_list int read_symtab (pp_tab_t **tab, const char *name); int write_symtab (pp_tab_t *tab, const char *name); -void add_numeric_value (pp_tab_t ** ptab, const char *name, double number); -void add_string_value (pp_tab_t ** ptab, const char *name, const char *string); +void init_value (pp_value_t *p, value_type type, union value *v); +pp_value_t *add_numeric_value (pp_tab_t ** ptab, + const char *name, double number); +pp_value_t *add_string_value (pp_tab_t ** ptab, + const char *name, const char *string); int find_value (char *name, pp_value_t * val); void free_tab (pp_tab_t ** ptab); int create_html (pp_tab_t * tab, char *file, char *dest); |