Adopt use of gnulib for portability.
[pspp-builds.git] / src / mis-val.c
index 23d803fcf05e884ed33286d534625eb22caf9718..27a5134307e9572aaface102bc3739da462e5351 100644 (file)
 
    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 <config.h>
-#include <assert.h>
+#include "error.h"
 #include <stdlib.h>
 #include "command.h"
 #include "error.h"
 #include "str.h"
 #include "var.h"
 
-#include "debug-print.h"
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
 
-#if DEBUGGING
-static void debug_print ();
-#endif
+#include "debug-print.h"
 
 /* Variables on MIS VAL. */
 static struct variable **v;
@@ -56,8 +55,6 @@ cmd_missing_values (void)
 {
   int i;
 
-  lex_match_id ("MISSING");
-  lex_match_id ("VALUES");
   while (token != '.')
     {
       if (!parse_varnames ())
@@ -88,10 +85,6 @@ cmd_missing_values (void)
       free (v);
     }
 
-#if 0 && DEBUGGING
-  debug_print ();
-#endif
-
   return lex_end_of_command ();
 
 fail:
@@ -104,7 +97,7 @@ parse_varnames (void)
 {
   int i;
 
-  if (!parse_variables (NULL, &v, &nv, PV_SAME_TYPE))
+  if (!parse_variables (default_dict, &v, &nv, PV_SAME_TYPE))
     return 0;
   if (!lex_match ('('))
     {
@@ -163,7 +156,7 @@ parse_num_or_range (struct num_or_range * nor)
       nor->d[0] = LOWEST;
       nor->d[1] = tokval;
     }
-  else if (token == T_NUM)
+  else if (lex_is_number ())
     {
       nor->d[0] = tokval;
       lex_get ();
@@ -317,7 +310,7 @@ parse_alpha (void)
          msg (SE, _("String is not of proper length."));
          return 0;
        }
-      strncpy (missing[miss_type].s, ds_value (&tokstr), MAX_SHORT_STRING);
+      strncpy (missing[miss_type].s, ds_c_str (&tokstr), MAX_SHORT_STRING);
       lex_get ();
       lex_match (',');
     }
@@ -353,51 +346,3 @@ copy_missing_values (struct variable *dest, const struct variable *src)
        memcpy (dest->missing[i].s, src->missing[i].s, src->width);
   }
 }
-
-\f
-/* Debug output. */
-
-#if 0 && DEBUGGING
-static void
-debug_print (void)
-{
-  int i, j;
-
-  puts (_("Missing value:"));
-  for (i = 0; i < nvar; i++)
-    {
-      printf ("         %8s: ", var[i]->name);
-      if (var[i]->type == ALPHA && var[i]->nv > 1)
-       puts (_("(long string variable)"));
-      else
-       switch (var[i]->miss_type)
-         {
-         case MISSING_NONE:
-           printf (_("(no missing values)\n"));
-           break;
-         case MISSING_1:
-         case MISSING_2:
-         case MISSING_3:
-           printf ("(MISSING_%d)", var[i]->miss_type);
-           for (j = 0; j < var[i]->miss_type; j++)
-             if (var[i]->type == ALPHA)
-               printf ("  \"%.*s\"", var[i]->width, var[i]->missing[j].s);
-             else
-               printf ("  %.2g", var[i]->missing[j].f);
-           printf ("\n");
-           break;
-         case MISSING_RANGE:
-           printf ("(MISSING_RANGE)  %.2g THRU %.2g\n",
-                   var[i]->missing[0].f, var[i]->missing[1].f);
-           break;
-         case MISSING_RANGE_1:
-           printf ("(MISSING_RANGE_1)  %.2g THRU %.2g, %.2g\n",
-                   var[i]->missing[0].f, var[i]->missing[1].f,
-                   var[i]->missing[2].f);
-           break;
-         default:
-           printf (_("(!!!INTERNAL ERROR--%d!!!)\n"), var[i]->miss_type);
-         }
-    }
-}
-#endif /* DEBUGGING */