Implemented long variable names a la spss V12.
[pspp] / src / recode.c
index 089caba12fcb02353c1ecd920b03525335bacf9b..36bb590e51634a5c84b6b6db7e636453f8494253 100644 (file)
@@ -25,6 +25,7 @@
 #include "alloc.h"
 #include "case.h"
 #include "command.h"
+#include "dictionary.h"
 #include "error.h"
 #include "lexer.h"
 #include "magic.h"
@@ -65,7 +66,7 @@ struct rcd_var
 
     struct variable *src;      /* Source variable. */
     struct variable *dest;     /* Destination variable. */
-    char dest_name[9];         /* Name of dest variable if we're creating it. */
+    char dest_name[SHORT_NAME_LEN + 1];                /* Name of dest variable if we're creating it. */
 
     int has_sysmis;            /* Do we recode for SYSMIS? */
     union value sysmis;                /* Coding for SYSMIS (if src is numeric). */
@@ -444,7 +445,7 @@ parse_dest_spec (struct rcd_var * rcd, union value * v, size_t *max_dst_width)
 
   v->c = NULL;
 
-  if (token == T_NUM)
+  if (lex_is_number ())
     {
       v->f = tokval;
       lex_get ();
@@ -539,7 +540,7 @@ parse_src_spec (struct rcd_var * rcd, int type, size_t max_src_width)
                    return 0;
                  if (lex_match_id ("HI") || lex_match_id ("HIGHEST"))
                    c->type = RCD_ELSE;
-                 else if (token == T_NUM)
+                 else if (lex_is_number ())
                    {
                      c->type = RCD_LOW;
                      c->f1.f = tokval;
@@ -567,7 +568,7 @@ parse_src_spec (struct rcd_var * rcd, int type, size_t max_src_width)
                  return 0;
                }
            }
-         else if (token == T_NUM)
+         else if (lex_is_number ())
            {
              c->f1.f = tokval;
              lex_get ();
@@ -575,7 +576,7 @@ parse_src_spec (struct rcd_var * rcd, int type, size_t max_src_width)
                {
                  if (lex_match_id ("HI") || lex_match_id ("HIGHEST"))
                    c->type = RCD_HIGH;
-                 else if (token == T_NUM)
+                 else if (lex_is_number ())
                    {
                      c->type = RCD_RANGE;
                      c->f2.f = tokval;