Add assertions.
[pspp] / src / recode.c
index 034ae959e83c2bd7aa02e5c2bbfd26b3fd954aa4..a8574c9919199e7dcb79be27edf09cbffd139fd1 100644 (file)
@@ -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 <config.h>
 #include "error.h"
@@ -66,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[LONG_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). */
@@ -412,7 +412,7 @@ cmd_recode (void)
        rcd->dest = dict_create_var (default_dict, rcd->dest_name, 0);
        if (!rcd->dest)
          {
-           /* FIXME: This can occur if a destname is duplicated.
+           /* FIXME: This can fail if a destname is duplicated.
               We could give an error at parse time but I don't
               care enough. */
            rcd->dest = dict_lookup_var_assert (default_dict, rcd->dest_name);
@@ -445,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 ();
@@ -540,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;
@@ -568,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 ();
@@ -576,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;