X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fcount.c;h=058d60d539d81f71c7880b703fc9f1a1c62e06ad;hb=205ac3afa4c2b19c85819d8695abf3975bb11807;hp=3b9a0ac098c752593f7b68f99ff9bf5955627e61;hpb=60d7d619ee7885ad065f178eb0cf1e5d432b1921;p=pspp-builds.git diff --git a/src/count.c b/src/count.c index 3b9a0ac0..058d60d5 100644 --- a/src/count.c +++ b/src/count.c @@ -18,7 +18,7 @@ 02111-1307, USA. */ #include -#include +#include "error.h" #include #include "alloc.h" #include "command.h" @@ -54,8 +54,6 @@ Perhaps simultaneity could be implemented as an option. On the other hand, what good are the above commands? */ - -#include "debug-print.h" /* Definitions. */ @@ -118,18 +116,11 @@ struct count_trns struct trns_header h; struct cnt_var_info *specs; }; - -#if DEBUGGING -static void debug_print (void); -#endif - -/* First counting in chain. */ -static struct cnt_var_info *head; /* Parser. */ -static int count_trns_proc (struct trns_header *, struct ccase *); -static void count_trns_free (struct trns_header *); +static trns_proc_func count_trns_proc; +static trns_free_func count_trns_free; static int parse_numeric_criteria (struct counting *); static int parse_string_criteria (struct counting *); @@ -137,19 +128,11 @@ static int parse_string_criteria (struct counting *); int cmd_count (void) { - /* Specification currently being parsed. */ - struct cnt_var_info *cnt; - - /* Counting currently being parsed. */ - struct counting *c; - - /* Return value from parsing function. */ - int ret; - - /* Transformation. */ - struct count_trns *trns; - - lex_match_id ("COUNT"); + struct cnt_var_info *cnt; /* Specification currently being parsed. */ + struct counting *c; /* Counting currently being parsed. */ + int ret; /* Return value from parsing function. */ + struct count_trns *trns; /* Transformation. */ + struct cnt_var_info *head; /* First counting in chain. */ /* Parses each slash-delimited specification. */ head = cnt = xmalloc (sizeof *cnt); @@ -223,10 +206,6 @@ cmd_count (void) cnt->d = dict_create_var_assert (default_dict, cnt->n, 0); } -#if DEBUGGING - debug_print (); -#endif - trns = xmalloc (sizeof *trns); trns->h.proc = count_trns_proc; trns->h.free = count_trns_free; @@ -490,7 +469,8 @@ count_string (struct counting * cnt, struct ccase * c) /* Performs the COUNT transformation T on case C. */ static int -count_trns_proc (struct trns_header * trns, struct ccase * c) +count_trns_proc (struct trns_header * trns, struct ccase * c, + int case_num UNUSED) { struct cnt_var_info *info; struct counting *cnt; @@ -544,81 +524,3 @@ count_trns_free (struct trns_header * t) free (iter); } } - -/* Debugging. */ - -#if DEBUGGING -static void -debug_print (void) -{ - struct cnt_var_info *iter; - struct counting *i; - int j; - - printf ("COUNT\n"); - for (iter = head; iter; iter = iter->next) - { - printf (" %s=", iter->d->name); - for (i = iter->c; i; i = i->next) - { - for (j = 0; j < i->n; j++) - printf ("%s%s", j ? " " : "", i->v[j]->name); - printf (" ("); - if (i->v[0]->type == NUMERIC) - { - struct cnt_num *n; - - if (i->missing == 2) - printf ("MISSING"); - else if (i->missing == 1) - printf ("SYSMIS"); - else - assert (i->missing == 0); - - for (n = i->crit.n; n->type != CNT_SENTINEL; n++) - { - if (i->missing && n != i->crit.n) - printf (","); - switch (n->type) - { - case CNT_SINGLE: - printf ("%g", n->a); - break; - case CNT_HIGH: - printf ("%g THRU HIGH", n->a); - break; - case CNT_LOW: - printf ("LOW THRU %g", n->a); - break; - case CNT_RANGE: - printf ("%g THRU %g", n->a, n->b); - break; - case CNT_ANY: - printf ("LOW THRU HIGH"); - break; - default: - printf ("", n->type); - break; - } - } - } - else - { - struct cnt_str *s; - - for (s = i->crit.s; s->type != CNT_SENTINEL; s++) - { - if (s != i->crit.s) - printf (","); - if (s->type == CNT_SINGLE) - printf ("'%s'", s->s); - else - printf ("", s->type); - } - } - printf (") "); - } - printf ("\n"); - } -} -#endif /* DEBUGGING */