X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Fsubcommand-list.c;h=5cec533c965756a80782eff1ae753ffe99fa33fd;hb=5ee84736663824fe12474b78dace867e42893a14;hp=e309cf1b801725165de5a0e2f8635133e6afc00c;hpb=3816248a008a4af75aac6319d0c9929cb7ff679e;p=pspp-builds.git diff --git a/src/language/lexer/subcommand-list.c b/src/language/lexer/subcommand-list.c index e309cf1b..5cec533c 100644 --- a/src/language/lexer/subcommand-list.c +++ b/src/language/lexer/subcommand-list.c @@ -1,24 +1,18 @@ -/* subclist - lists for PSPP subcommands +/* PSPP - a program for statistical analysis. + Copyright (C) 2004 Free Software Foundation, Inc. -Copyright (C) 2004 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -Written by John Darrington + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #include @@ -39,13 +33,34 @@ subc_list_double_create(subc_list_double *l) l->n_data = 0; } +void +subc_list_int_create(subc_list_int *l) +{ + l->data = xnmalloc (CHUNKSIZE, sizeof *l->data); + l->sz = CHUNKSIZE; + l->n_data = 0; +} + /* Push a value onto the list */ void subc_list_double_push(subc_list_double *l, double d) { l->data[l->n_data++] = d; - if (l->n_data >= l->sz ) + if (l->n_data >= l->sz ) + { + l->sz += CHUNKSIZE; + l->data = xnrealloc (l->data, l->sz, sizeof *l->data); + } + +} + +void +subc_list_int_push(subc_list_int *l, int d) +{ + l->data[l->n_data++] = d; + + if (l->n_data >= l->sz ) { l->sz += CHUNKSIZE; l->data = xnrealloc (l->data, l->sz, sizeof *l->data); @@ -54,12 +69,18 @@ subc_list_double_push(subc_list_double *l, double d) } /* Return the number of items in the list */ -int +int subc_list_double_count(const subc_list_double *l) { return l->n_data; } +int +subc_list_int_count(const subc_list_int *l) +{ + return l->n_data; +} + /* Index into the list (array) */ double @@ -68,9 +89,21 @@ subc_list_double_at(const subc_list_double *l, int idx) return l->data[idx]; } +int +subc_list_int_at(const subc_list_int *l, int idx) +{ + return l->data[idx]; +} + /* Free up the list */ void subc_list_double_destroy(subc_list_double *l) { free(l->data); } + +void +subc_list_int_destroy(subc_list_int *l) +{ + free(l->data); +}