X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvalue-labels.h;h=fb7ec22b57564a922562fa2c46acc557532bc6d5;hb=a9acce47d67e0ab35ce1690e4f1b1ac0121c2d78;hp=ce863a40db82df3aec7eb22653773e8358d12f49;hpb=b31bac73c9affb7843d332807ffe5cef9c5e7cea;p=pspp-builds.git diff --git a/src/data/value-labels.h b/src/data/value-labels.h index ce863a40..fb7ec22b 100644 --- a/src/data/value-labels.h +++ b/src/data/value-labels.h @@ -14,39 +14,49 @@ You should have received a copy of the GNU General Public License 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; - +/* 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); +/* 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); -char *val_labs_find (const 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 *, @@ -55,4 +65,4 @@ struct val_lab *val_labs_next (const struct val_labs *, struct val_labs_iterator **); void val_labs_done (struct val_labs_iterator **); -#endif /* value-labels.h */ +#endif /* data/value-labels.h */