Changeset 253
- Timestamp:
- 07/09/05 01:25:12 (3 years ago)
- Files:
-
- op/trunk/main.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
op/trunk/main.c
r251 r253 1128 1128 } 1129 1129 } else { 1130 int consumed_args = 1; 1131 1130 1132 for (i = 0; i < cmd->nargs; i++) { 1131 1133 np = cmd->args[i]; … … 1136 1138 if (curarg + argc >= MAXARG - 1) 1137 1139 fatal(1, "%s: argument length exceeded",cmd->name); 1138 for (j = 1; j < argc; j++)1140 for (j = consumed_args; j < argc; j++) 1139 1141 new_argv[curarg++] = argv[j]; 1140 1142 } else 1141 1143 if (isdigit(np[1])) { 1142 if (atoi(np + 1) > argc) 1144 int argi = atoi(np + 1); 1145 1146 if (argi > argc) 1143 1147 fatal(1, "%s Referenced argument out of range",cmd->name); 1144 1148 if (curarg >= MAXARG - 1) 1145 1149 fatal(1, "%s: argument length exceeded",cmd->name); 1146 new_argv[curarg++] = argv[atoi(np + 1)]; 1150 new_argv[curarg++] = argv[argi]; 1151 if (argi >= consumed_args) 1152 consumed_args = argi + 1; 1147 1153 } 1148 1154 continue;
