about summary refs log tree commit diff
path: root/localedata/bug-setlocale1.c
diff options
context:
space:
mode:
Diffstat (limited to 'localedata/bug-setlocale1.c')
-rw-r--r--localedata/bug-setlocale1.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/localedata/bug-setlocale1.c b/localedata/bug-setlocale1.c
index cf787be02c..dc7f6f3f08 100644
--- a/localedata/bug-setlocale1.c
+++ b/localedata/bug-setlocale1.c
@@ -12,16 +12,16 @@ do_test (int argc, char *argv[])
   if (argc > 1)
     {
       char *newargv[5];
-      asprintf (&newargv[0], "%self/ld.so", argv[1]);
-      if (newargv[0] == NULL)
+      int i;
+      if (argc != 2 && argc != 5)
 	{
-	  puts ("asprintf failed");
+	  printf ("wrong number of arguments (%d)\n", argc);
 	  return 1;
 	}
-      newargv[1] = (char *) "--library-path";
-      newargv[2] = argv[1];
-      newargv[3] = argv[0];
-      newargv[4] = NULL;
+
+      for (i = 0; i < (argc == 5 ? 4 : 1); i++)
+	newargv[i] = argv[i + 1];
+      newargv[i] = NULL;
 
       char *env[3];
       env[0] = (char *) "LC_CTYPE=de_DE.UTF-8";
@@ -32,9 +32,9 @@ do_test (int argc, char *argv[])
 	  return 1;
 	}
       asprintf (&env[1], "LOCPATH=%s", loc);
-      if (newargv[0] == NULL)
+      if (env[1] == NULL)
 	{
-	  puts ("second asprintf failed");
+	  puts ("asprintf failed");
 	  return 1;
 	}
       env[2] = NULL;