Adopt use of gnulib for portability.
[pspp] / src / repeat.c
index 3b57b66a7398db1b391e5cadc38eb8daa1e76faf..0f5bb42f4dbc4aec79b75417b040f4c779314a57 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 "repeat.h"
 #include "command.h"
 #include "dictionary.h"
 #include "error.h"
-#include "getline.h"
+#include "getl.h"
 #include "lexer.h"
 #include "misc.h"
 #include "settings.h"
 #include "str.h"
 #include "var.h"
 
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
 #include "debug-print.h"
 
 /* Describes one DO REPEAT macro. */
 struct repeat_entry
   {
     int type;                  /* 1=variable names, 0=any other. */
-    char id[9];                        /* Macro identifier. */
+    char id[LONG_NAME_LEN + 1];        /* Macro identifier. */
     char **replacement;                /* Macro replacement. */
     struct repeat_entry *next;
   };
@@ -125,7 +128,7 @@ static int
 internal_cmd_do_repeat (void)
 {
   /* Name of first DO REPEAT macro. */
-  char first_name[9];
+  char first_name[LONG_NAME_LEN + 1];
 
   /* Current filename. */
   const char *current_filename = NULL;
@@ -146,7 +149,7 @@ internal_cmd_do_repeat (void)
       if (!lex_force_id ())
        return 0;
       for (iter = repeat_tab; iter; iter = iter->next)
-       if (!strcmp (iter->id, tokid))
+       if (!strcasecmp (iter->id, tokid))
          {
            msg (SE, _("Identifier %s is given twice."), tokid);
            return 0;
@@ -169,7 +172,7 @@ internal_cmd_do_repeat (void)
       
       if (token == T_ID)
        result = parse_ids (e);
-      else if (token == T_NUM)
+      else if (lex_is_number ())
        result = parse_numbers (e);
       else if (token == T_STRING)
        result = parse_strings (e);
@@ -553,12 +556,12 @@ perform_DO_REPEAT_substitutions (void)
 
       /* Collect an identifier. */
       {
-       char name[9];
+       char name[LONG_NAME_LEN + 1];
        char *start = cp;
        char *np = name;
        char *substitution;
 
-       while (CHAR_IS_IDN (*cp) && np < &name[8])
+       while (CHAR_IS_IDN (*cp) && np < &name[LONG_NAME_LEN])
          *np++ = *cp++;
        while (CHAR_IS_IDN (*cp))
          cp++;