all_args(int argc, char ** argv) {
string_t s = (string_t) { 0, NULL };
if (argc > 2) {
- size_t i, len = 0;
+ size_t i, len = argc - 2;
for (i = 2; i < (size_t) argc; ++i) {
len += strlen(argv[i]);
}
for (len = 0, i = 2; i < (size_t) argc; ++i) {
strcpy(s.buf + len, argv[i]);
len += strlen(argv[i]);
- if (i + 1 < argc) {
- s.buf[len - 1] = ' ';
- len++;
+ if (i + 1 < (size_t) argc) {
+ s.buf[len++] = ' ';
}
}
+ s.len = len;
}
}
return s;
for (f = 0; f < ARRLEN(macro); ++f) {
if (!strncmp(s.buf + i, macro[f].buf, macro[f].len)) {
max += globals[f].len;
+ i += globals[f].len;
}
}
}
for (i = 0; i < s.len; ++i) {
for (f = 0; f < ARRLEN(macro); ++f) {
if (!strncmp(s.buf + i, macro[f].buf, macro[f].len)) {
- insert(s.buf + i, s.len - i, globals[f].buf, globals[f].len, 2);
+ insert(s.buf + i, s.len - i, globals[f].buf, globals[f].len, macro[f].len);
+ i += globals[f].len;
}
}
}