[ar71xx] increase size of the kernel partition on the TL-WR[789]41N boards
[openwrt.git] / tools / firmware-utils / src / trx.c
index 787ffa8..5e5e77a 100644 (file)
@@ -88,7 +88,7 @@ int main(int argc, char **argv)
        char *ofn = NULL;
        char *buf;
        char *e;
-       int c, i;
+       int c, i, append = 0;
        size_t n;
        uint32_t cur_len;
        unsigned long maxlen = TRX_MAX_LEN;
@@ -110,11 +110,15 @@ int main(int argc, char **argv)
        in = NULL;
        i = 0;
 
-       while ((c = getopt(argc, argv, "-:o:m:a:b:f:")) != -1) {
+       while ((c = getopt(argc, argv, "-:o:m:a:b:f:A:")) != -1) {
                switch (c) {
+                       case 'A':
+                               append = 1;
+                               /* fall through */
                        case 'f':
                        case 1:
-                               p->offsets[i++] = STORE32_LE(cur_len);
+                               if (!append)
+                                       p->offsets[i++] = STORE32_LE(cur_len);
 
                                if (!(in = fopen(optarg, "r"))) {
                                        fprintf(stderr, "can not open \"%s\" for reading\n", optarg);
@@ -134,6 +138,7 @@ int main(int argc, char **argv)
                                        n += ROUND - (n & (ROUND-1));
                                }
                                cur_len += n;
+                               append = 0;
 
                                break;
                        case 'o':
@@ -167,6 +172,7 @@ int main(int argc, char **argv)
                                        fprintf(stderr, "realloc failed");
                                        return EXIT_FAILURE;
                                }
+                               p = (struct trx_header *) buf;
                                break;
                        case 'a':
                                errno = 0;
@@ -225,7 +231,7 @@ int main(int argc, char **argv)
        }
 
        fclose(out);
-
+       
        return EXIT_SUCCESS;
 }
 
This page took 0.022443 seconds and 4 git commands to generate.