Adopt use of gnulib for portability.
[pspp] / src / count.c
index 1697c0fbd3a32db806a66b2f304ff19f9281ac58..bab59f90c7c7db3d0f432bcf61948ad860368a43 100644 (file)
@@ -29,6 +29,9 @@
 #include "str.h"
 #include "var.h"
 
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
 /* Implementation details:
 
    The S?SS manuals do not specify the order that COUNT subcommands are
@@ -108,7 +111,7 @@ struct cnt_var_info
     struct cnt_var_info *next;
 
     struct variable *d;                /* Destination variable. */
-    char n[SHORT_NAME_LEN + 1];        /* Name of dest var. */
+    char n[LONG_NAME_LEN + 1]; /* Name of dest var. */
 
     struct counting *c;                /* The counting specifications. */
   };
@@ -145,7 +148,7 @@ cmd_count (void)
       cnt->d = NULL;
       cnt->c = NULL;
 
-      /* Get destination struct variable, or at least its name. */
+      /* Get destination variable, or at least its name. */
       if (!lex_force_id ())
        goto fail;
       cnt->d = dict_lookup_var (default_dict, tokid);
@@ -158,7 +161,7 @@ cmd_count (void)
            }
        }
       else
-       strcpy (cnt->n, tokid);
+       str_copy_trunc (cnt->n, sizeof cnt->n, tokid);
 
       lex_get ();
       if (!lex_force_match ('='))
@@ -349,7 +352,7 @@ parse_string_criteria (struct counting * c)
       cur = &c->crit.s[n++];
       cur->type = CNT_SINGLE;
       cur->s = malloc (len + 1);
-      st_pad_copy (cur->s, ds_c_str (&tokstr), len + 1);
+      str_copy_rpad (cur->s, len + 1, ds_c_str (&tokstr));
       lex_get ();
 
       lex_match (',');