- for (i = 0; i < ARRAY_SIZE (aliases); i++) {
- alias = &aliases[i];
-
- if (strcmp (argv[1], alias->name) == 0)
- {
- int substitutions;
-
- argv_local = talloc_size (local, sizeof (char *) *
- (argc + MAX_ALIAS_SUBSTITUTIONS - 1));
- if (argv_local == NULL) {
- fprintf (stderr, "Out of memory.\n");
- return 1;
- }
-
- /* Copy all substution arguments from the alias. */
- argv_local[0] = argv[0];
- for (j = 0; j < MAX_ALIAS_SUBSTITUTIONS; j++) {
- if (alias->substitutions[j] == NULL)
- break;
- argv_local[j+1] = alias->substitutions[j];
- }
- substitutions = j;
-
- /* And copy all original arguments (skipping the argument
- * that matched the alias of course. */
- for (j = 2; j < (unsigned) argc; j++) {
- argv_local[substitutions+j-1] = argv[j];
- }
-
- argc += substitutions - 1;
- argv = (char **) argv_local;
- }