X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvariable.c;h=42a07ee8bb5d3481bec1a4656f13bba1dd61a393;hb=7293c1a383d325c371bd708401e5a1d7586a4d90;hp=6a00d014a18df32b7a85cb90bd3d6b3871444a7c;hpb=eba86bfdc3b849058a19fffa82da05249ec9a90a;p=pspp diff --git a/src/data/variable.c b/src/data/variable.c index 6a00d014a1..42a07ee8bb 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009, 2010, 2011, 2012, 2013, 2014, 2016 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 @@ -42,6 +42,42 @@ #include "gettext.h" #define _(msgid) gettext (msgid) +#define N_(msgid) (msgid) + +/* This should follow the definition in Gtk */ +typedef struct +{ + int value; + const char *name; + const char *label; +} GEnumValue; + +const GEnumValue align[] = + { + {ALIGN_LEFT, "left", N_("Left")}, + {ALIGN_RIGHT, "right", N_("Right")}, + {ALIGN_CENTRE, "center", N_("Center")}, + {0,0,0} + }; + +const GEnumValue measure[] = + { + {MEASURE_NOMINAL, "nominal", N_("Nominal")}, + {MEASURE_ORDINAL, "ordinal", N_("Ordinal")}, + {MEASURE_SCALE, "scale", N_("Scale")}, + {0,0,0} + }; + +const GEnumValue role[] = + { + {ROLE_INPUT, "input", N_("Input")}, + {ROLE_TARGET, "output", N_("Output")}, + {ROLE_BOTH, "both", N_("Both")}, + {ROLE_NONE, "none", N_("None")}, + {ROLE_PARTITION, "partition", N_("Partition")}, + {ROLE_SPLIT, "split", N_("Split")}, + {0,0,0} + }; /* A variable. */ struct variable @@ -771,20 +807,8 @@ measure_is_valid (enum measure m) const char * measure_to_string (enum measure m) { - switch (m) - { - case MEASURE_NOMINAL: - return _("Nominal"); - - case MEASURE_ORDINAL: - return _("Ordinal"); - - case MEASURE_SCALE: - return _("Scale"); - - default: - return "Invalid"; - } + assert (m == measure[m].value); + return gettext (measure[m].label); } /* Returns a string version of measurement level M, for use in PSPP command @@ -866,31 +890,10 @@ var_role_is_valid (enum var_role role) /* Returns a string version of ROLE, for display to a user. */ const char * -var_role_to_string (enum var_role role) +var_role_to_string (enum var_role r) { - switch (role) - { - case ROLE_INPUT: - return _("Input"); - - case ROLE_TARGET: - return _("Output"); - - case ROLE_BOTH: - return _("Both"); - - case ROLE_NONE: - return _("None"); - - case ROLE_PARTITION: - return _("Partition"); - - case ROLE_SPLIT: - return _("Split"); - - default: - return "Invalid"; - } + assert (r == role[r].value); + return gettext (role[r].label); } /* Returns a string version of ROLE, for use in PSPP comamnd syntax. */ @@ -996,20 +999,8 @@ alignment_is_valid (enum alignment a) const char * alignment_to_string (enum alignment a) { - switch (a) - { - case ALIGN_LEFT: - return _("Left"); - - case ALIGN_RIGHT: - return _("Right"); - - case ALIGN_CENTRE: - return _("Center"); - - default: - return "Invalid"; - } + assert (a == align[a].value); + return gettext (align[a].label); } /* Returns a string version of alignment A, for use in PSPP command syntax. */