- for (i = 2; i < argc; i++)
- if (snprintf(options, sizeof(options), "%s %s", options, argv[i]) >= sizeof(options)) {
- fprintf(stderr, "argument line too long - %s\n", options);
- return -1;
+ for (len = 0, i = 2; i < argc; i++)
+ len += strlen(argv[i]) + 1;
+
+ options = malloc(len);
+ options[0] = 0;
+ cur = options;
+ for (i = 2; i < argc; i++) {
+ if (options[0]) {
+ *cur = ' ';
+ cur++;