X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvalue-labels.h;h=fb7ec22b57564a922562fa2c46acc557532bc6d5;hb=a5f512f378fbab43da8496d366dedcf59f29f580;hp=f0ea0a6d2b09ad81695419ba4204d0506e16b53d;hpb=f5eee9d8478b154444bb0eede53fb892b8130974;p=pspp-builds.git diff --git a/src/data/value-labels.h b/src/data/value-labels.h index f0ea0a6d..fb7ec22b 100644 --- a/src/data/value-labels.h +++ b/src/data/value-labels.h @@ -1,55 +1,62 @@ -/* PSPP - computes sample statistics. +/* PSPP - a program for statistical analysis. Copyright (C) 1997-9, 2000 Free Software Foundation, Inc. - Written by Ben Pfaff . - 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 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. - 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 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. */ + along with this program. If not, see . */ -#ifndef VAL_LABS_H -#define VAL_LABS_H 1 +/* Sets of value labels. + + struct val_labs represents a mapping from `union value's to + strings. The `union value's in the mapping all have the same + width. If this width is numeric or short string, the mapping + may contain any number of entries; long string mappings are + always empty. */ + +#ifndef DATA_VALUE_LABELS_H +#define DATA_VALUE_LABELS_H 1 #include #include - #include -struct val_labs; -struct variable; - -struct val_lab +/* One value label. */ +struct val_lab { union value value; const char *label; }; +/* Creating and destroying sets of value labels. */ struct val_labs *val_labs_create (int width); -struct val_labs *val_labs_copy (const struct val_labs *); -void val_labs_destroy (struct val_labs *); +struct val_labs *val_labs_clone (const struct val_labs *); void val_labs_clear (struct val_labs *); -size_t val_labs_count (const struct val_labs *); +void val_labs_destroy (struct val_labs *); +/* Looking up value labels. */ +char *val_labs_find (const struct val_labs *, union value); + +/* Basic properties. */ +size_t val_labs_count (const struct val_labs *); bool val_labs_can_set_width (const struct val_labs *, int new_width); void val_labs_set_width (struct val_labs *, int new_width); -int val_labs_add (struct val_labs *, union value, const char *); -int val_labs_replace (struct val_labs *, union value, const char *); -int val_labs_remove (struct val_labs *, union value); -char *val_labs_find (const struct val_labs *, union value); +/* Adding value labels. */ +bool val_labs_add (struct val_labs *, union value, const char *); +void val_labs_replace (struct val_labs *, union value, const char *); +bool val_labs_remove (struct val_labs *, union value); +/* Iterating through value labels. */ struct val_labs_iterator; - struct val_lab *val_labs_first (const struct val_labs *, struct val_labs_iterator **); struct val_lab *val_labs_first_sorted (const struct val_labs *, @@ -58,10 +65,4 @@ struct val_lab *val_labs_next (const struct val_labs *, struct val_labs_iterator **); void val_labs_done (struct val_labs_iterator **); -/* Return a string representing this value, in the form most - appropriate from a human factors perspective. - (IE: the label if it has one, otherwise the alpha/numeric ) -*/ -const char *value_to_string(const union value *, const struct variable *); - -#endif /* value-labels.h */ +#endif /* data/value-labels.h */