X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fformats.c;h=6b5f8d219e119f8f57c4d61a1ad1b9d8e799be2d;hb=0f27235bdf621a87df0c9c2d9b01e9198eb7c42d;hp=36c019c01d07d50f15c7019a9a007718c0f4260c;hpb=74a57f26f1458b28a0fddbb9f46004ac8f4d9c30;p=pspp diff --git a/src/formats.c b/src/formats.c index 36c019c01d..6b5f8d219e 100644 --- a/src/formats.c +++ b/src/formats.c @@ -14,8 +14,8 @@ 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., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #include #include @@ -30,10 +30,6 @@ #include "debug-print.h" -#if DEBUGGING -static void debug_print (void); -#endif - enum { FORMATS_PRINT = 001, @@ -81,7 +77,7 @@ internal_cmd_formats (int which) if (token == '.') break; - if (!parse_variables (default_dict, &v, &cv, PV_SAME_TYPE)) + if (!parse_variables (default_dict, &v, &cv, PV_NUMERIC)) return CMD_PART_SUCCESS_MAYBE; type = v[0]->type; @@ -90,31 +86,11 @@ internal_cmd_formats (int which) msg (SE, _("`(' expected after variable list")); goto fail; } - if (!parse_format_specifier (&f, 0) || !check_output_specifier (&f)) + if (!parse_format_specifier (&f, 0) + || !check_output_specifier (&f, true) + || !check_specifier_type (&f, NUMERIC, true)) goto fail; - /* Catch type mismatch errors. */ - if ((type == ALPHA) ^ (0 != (formats[f.type].cat & FCAT_STRING))) - { - msg (SE, _("Format %s may not be assigned to a %s variable."), - fmt_to_string (&f), type == NUMERIC ? _("numeric") : _("string")); - goto fail; - } - - /* This is an additional check for string variables. We can't - let the user specify an A8 format for a string variable with - width 4. */ - if (type == ALPHA) - { - /* Shortest string so far. */ - int min_len = INT_MAX; - - for (i = 0; i < cv; i++) - min_len = min (min_len, v[i]->width); - if (!check_string_specifier (&f, min_len)) - goto fail; - } - if (!lex_match (')')) { msg (SE, _("`)' expected after output format.")); @@ -131,30 +107,9 @@ internal_cmd_formats (int which) free (v); v = NULL; } -#if DEBUGGING - debug_print (); -#endif return CMD_SUCCESS; fail: free (v); return CMD_PART_SUCCESS_MAYBE; } - -#if DEBUGGING -static void -debug_print (void) -{ - int i; - - printf (_("Formats:\n")); - printf (_(" Name Print Write\n")); - printf (" -------- ------------ ------------\n"); - for (i = 0; i < default_dict.nvar; i++) - { - struct variable *v = default_dict.var[i]; - printf (" %-8s %-12s", v->name, fmt_to_string (&v->print)); - printf (" %-12s\n", fmt_to_string (&v->write)); - } -} -#endif /* DEBUGGING */