Commit 19973b6ad9863a56f5c5fbcfd90e20ab2490a2c2
Committed by
Wolfgang Denk
1 parent
e11887a77d
Exists in
master
and in
54 other branches
Minor code cleanup.
Showing 1 changed file with 80 additions and 94 deletions Side-by-side Diff
common/main.c
... | ... | @@ -95,14 +95,12 @@ |
95 | 95 | { |
96 | 96 | int abort = 0; |
97 | 97 | uint64_t etime = endtick(bootdelay); |
98 | - struct | |
99 | - { | |
98 | + struct { | |
100 | 99 | char* str; |
101 | 100 | u_int len; |
102 | 101 | int retry; |
103 | 102 | } |
104 | - delaykey [] = | |
105 | - { | |
103 | + delaykey [] = { | |
106 | 104 | { str: getenv ("bootdelaykey"), retry: 1 }, |
107 | 105 | { str: getenv ("bootdelaykey2"), retry: 1 }, |
108 | 106 | { str: getenv ("bootstopkey"), retry: 0 }, |
... | ... | @@ -498,7 +496,7 @@ |
498 | 496 | |
499 | 497 | #ifdef CONFIG_BOOT_RETRY_TIME |
500 | 498 | /*************************************************************************** |
501 | - * initialise command line timeout | |
499 | + * initialize command line timeout | |
502 | 500 | */ |
503 | 501 | void init_cmd_timeout(void) |
504 | 502 | { |
505 | 503 | |
506 | 504 | |
... | ... | @@ -529,24 +527,10 @@ |
529 | 527 | * Author: Janghoon Lyu <nandy@mizi.com> |
530 | 528 | */ |
531 | 529 | |
532 | -#if 1 /* avoid redundand code -- wd */ | |
533 | 530 | #define putnstr(str,n) do { \ |
534 | 531 | printf ("%.*s", n, str); \ |
535 | 532 | } while (0) |
536 | -#else | |
537 | -void putnstr(const char *str, size_t n) | |
538 | -{ | |
539 | - if (str == NULL) | |
540 | - return; | |
541 | 533 | |
542 | - while (n && *str != '\0') { | |
543 | - putc(*str); | |
544 | - str++; | |
545 | - n--; | |
546 | - } | |
547 | -} | |
548 | -#endif | |
549 | - | |
550 | 534 | #define CTL_CH(c) ((c) - 'a' + 1) |
551 | 535 | |
552 | 536 | #define MAX_CMDBUF_SIZE 256 |
553 | 537 | |
554 | 538 | |
555 | 539 | |
556 | 540 | |
557 | 541 | |
558 | 542 | |
559 | 543 | |
560 | 544 | |
561 | 545 | |
562 | 546 | |
563 | 547 | |
564 | 548 | |
565 | 549 | |
566 | 550 | |
... | ... | @@ -1138,97 +1122,99 @@ |
1138 | 1122 | { |
1139 | 1123 | char c, prev; |
1140 | 1124 | const char *varname_start = NULL; |
1141 | - int inputcnt = strlen (input); | |
1125 | + int inputcnt = strlen (input); | |
1142 | 1126 | int outputcnt = CFG_CBSIZE; |
1143 | - int state = 0; /* 0 = waiting for '$' */ | |
1144 | - /* 1 = waiting for '(' or '{' */ | |
1145 | - /* 2 = waiting for ')' or '}' */ | |
1146 | - /* 3 = waiting for ''' */ | |
1127 | + int state = 0; /* 0 = waiting for '$' */ | |
1128 | + | |
1129 | + /* 1 = waiting for '(' or '{' */ | |
1130 | + /* 2 = waiting for ')' or '}' */ | |
1131 | + /* 3 = waiting for ''' */ | |
1147 | 1132 | #ifdef DEBUG_PARSER |
1148 | 1133 | char *output_start = output; |
1149 | 1134 | |
1150 | - printf ("[PROCESS_MACROS] INPUT len %d: \"%s\"\n", strlen(input), input); | |
1135 | + printf ("[PROCESS_MACROS] INPUT len %d: \"%s\"\n", strlen (input), | |
1136 | + input); | |
1151 | 1137 | #endif |
1152 | 1138 | |
1153 | - prev = '\0'; /* previous character */ | |
1139 | + prev = '\0'; /* previous character */ | |
1154 | 1140 | |
1155 | 1141 | while (inputcnt && outputcnt) { |
1156 | - c = *input++; | |
1157 | - inputcnt--; | |
1158 | - | |
1159 | - if (state!=3) { | |
1160 | - /* remove one level of escape characters */ | |
1161 | - if ((c == '\\') && (prev != '\\')) { | |
1162 | - if (inputcnt-- == 0) | |
1163 | - break; | |
1164 | - prev = c; | |
1165 | 1142 | c = *input++; |
1166 | - } | |
1167 | - } | |
1143 | + inputcnt--; | |
1168 | 1144 | |
1169 | - switch (state) { | |
1170 | - case 0: /* Waiting for (unescaped) $ */ | |
1171 | - if ((c == '\'') && (prev != '\\')) { | |
1172 | - state = 3; | |
1173 | - break; | |
1145 | + if (state != 3) { | |
1146 | + /* remove one level of escape characters */ | |
1147 | + if ((c == '\\') && (prev != '\\')) { | |
1148 | + if (inputcnt-- == 0) | |
1149 | + break; | |
1150 | + prev = c; | |
1151 | + c = *input++; | |
1152 | + } | |
1174 | 1153 | } |
1175 | - if ((c == '$') && (prev != '\\')) { | |
1176 | - state++; | |
1177 | - } else { | |
1178 | - *(output++) = c; | |
1179 | - outputcnt--; | |
1180 | - } | |
1181 | - break; | |
1182 | - case 1: /* Waiting for ( */ | |
1183 | - if (c == '(' || c == '{') { | |
1184 | - state++; | |
1185 | - varname_start = input; | |
1186 | - } else { | |
1187 | - state = 0; | |
1188 | - *(output++) = '$'; | |
1189 | - outputcnt--; | |
1190 | 1154 | |
1191 | - if (outputcnt) { | |
1155 | + switch (state) { | |
1156 | + case 0: /* Waiting for (unescaped) $ */ | |
1157 | + if ((c == '\'') && (prev != '\\')) { | |
1158 | + state = 3; | |
1159 | + break; | |
1160 | + } | |
1161 | + if ((c == '$') && (prev != '\\')) { | |
1162 | + state++; | |
1163 | + } else { | |
1192 | 1164 | *(output++) = c; |
1193 | 1165 | outputcnt--; |
1194 | 1166 | } |
1195 | - } | |
1196 | - break; | |
1197 | - case 2: /* Waiting for ) */ | |
1198 | - if (c == ')' || c == '}') { | |
1199 | - int i; | |
1200 | - char envname[CFG_CBSIZE], *envval; | |
1201 | - int envcnt = input-varname_start-1; /* Varname # of chars */ | |
1167 | + break; | |
1168 | + case 1: /* Waiting for ( */ | |
1169 | + if (c == '(' || c == '{') { | |
1170 | + state++; | |
1171 | + varname_start = input; | |
1172 | + } else { | |
1173 | + state = 0; | |
1174 | + *(output++) = '$'; | |
1175 | + outputcnt--; | |
1202 | 1176 | |
1203 | - /* Get the varname */ | |
1204 | - for (i = 0; i < envcnt; i++) { | |
1205 | - envname[i] = varname_start[i]; | |
1177 | + if (outputcnt) { | |
1178 | + *(output++) = c; | |
1179 | + outputcnt--; | |
1180 | + } | |
1206 | 1181 | } |
1207 | - envname[i] = 0; | |
1182 | + break; | |
1183 | + case 2: /* Waiting for ) */ | |
1184 | + if (c == ')' || c == '}') { | |
1185 | + int i; | |
1186 | + char envname[CFG_CBSIZE], *envval; | |
1187 | + int envcnt = input - varname_start - 1; /* Varname # of chars */ | |
1208 | 1188 | |
1209 | - /* Get its value */ | |
1210 | - envval = getenv (envname); | |
1211 | - | |
1212 | - /* Copy into the line if it exists */ | |
1213 | - if (envval != NULL) | |
1214 | - while ((*envval) && outputcnt) { | |
1215 | - *(output++) = *(envval++); | |
1216 | - outputcnt--; | |
1189 | + /* Get the varname */ | |
1190 | + for (i = 0; i < envcnt; i++) { | |
1191 | + envname[i] = varname_start[i]; | |
1217 | 1192 | } |
1218 | - /* Look for another '$' */ | |
1219 | - state = 0; | |
1193 | + envname[i] = 0; | |
1194 | + | |
1195 | + /* Get its value */ | |
1196 | + envval = getenv (envname); | |
1197 | + | |
1198 | + /* Copy into the line if it exists */ | |
1199 | + if (envval != NULL) | |
1200 | + while ((*envval) && outputcnt) { | |
1201 | + *(output++) = *(envval++); | |
1202 | + outputcnt--; | |
1203 | + } | |
1204 | + /* Look for another '$' */ | |
1205 | + state = 0; | |
1206 | + } | |
1207 | + break; | |
1208 | + case 3: /* Waiting for ' */ | |
1209 | + if ((c == '\'') && (prev != '\\')) { | |
1210 | + state = 0; | |
1211 | + } else { | |
1212 | + *(output++) = c; | |
1213 | + outputcnt--; | |
1214 | + } | |
1215 | + break; | |
1220 | 1216 | } |
1221 | - break; | |
1222 | - case 3: /* Waiting for ' */ | |
1223 | - if ((c == '\'') && (prev != '\\')) { | |
1224 | - state = 0; | |
1225 | - } else { | |
1226 | - *(output++) = c; | |
1227 | - outputcnt--; | |
1228 | - } | |
1229 | - break; | |
1230 | - } | |
1231 | - prev = c; | |
1217 | + prev = c; | |
1232 | 1218 | } |
1233 | 1219 | |
1234 | 1220 | if (outputcnt) |
... | ... | @@ -1236,7 +1222,7 @@ |
1236 | 1222 | |
1237 | 1223 | #ifdef DEBUG_PARSER |
1238 | 1224 | printf ("[PROCESS_MACROS] OUTPUT len %d: \"%s\"\n", |
1239 | - strlen(output_start), output_start); | |
1225 | + strlen (output_start), output_start); | |
1240 | 1226 | #endif |
1241 | 1227 | } |
1242 | 1228 |