diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2017-11-13 23:07:47 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2017-11-14 22:33:19 +0100 |
commit | 3f96e57aed69fcd88a8d4f06bbf97688f67ca343 (patch) | |
tree | d33365f8d7a2417490bc6738d381009832ae7033 /package/utils | |
parent | 6d283b8029c87590bd056617340dbdb110239415 (diff) | |
download | mtk-20170518-3f96e57aed69fcd88a8d4f06bbf97688f67ca343.zip mtk-20170518-3f96e57aed69fcd88a8d4f06bbf97688f67ca343.tar.gz mtk-20170518-3f96e57aed69fcd88a8d4f06bbf97688f67ca343.tar.bz2 |
otrx: add support for -A (append) and -a (align) options
They are inspired and compatible with the original and mjn3's trx tool.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'package/utils')
-rw-r--r-- | package/utils/otrx/src/otrx.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/package/utils/otrx/src/otrx.c b/package/utils/otrx/src/otrx.c index d08507f..7e117c6 100644 --- a/package/utils/otrx/src/otrx.c +++ b/package/utils/otrx/src/otrx.c @@ -346,7 +346,7 @@ static int otrx_create(int argc, char **argv) { fseek(trx, curr_offset, SEEK_SET); optind = 3; - while ((c = getopt(argc, argv, "f:b:")) != -1) { + while ((c = getopt(argc, argv, "f:A:a:b:")) != -1) { switch (c) { case 'f': if (curr_idx >= TRX_MAX_PARTS) { @@ -370,6 +370,27 @@ static int otrx_create(int argc, char **argv) { curr_offset += sbytes; break; + case 'A': + sbytes = otrx_create_append_file(trx, optarg); + if (sbytes < 0) { + fprintf(stderr, "Failed to append file %s\n", optarg); + } else { + curr_offset += sbytes; + } + + sbytes = otrx_create_align(trx, curr_offset, 4); + if (sbytes < 0) + fprintf(stderr, "Failed to append zeros\n"); + else + curr_offset += sbytes; + break; + case 'a': + sbytes = otrx_create_align(trx, curr_offset, strtol(optarg, NULL, 0)); + if (sbytes < 0) + fprintf(stderr, "Failed to append zeros\n"); + else + curr_offset += sbytes; + break; case 'b': sbytes = strtol(optarg, NULL, 0) - curr_offset; if (sbytes < 0) { @@ -541,6 +562,8 @@ static void usage() { printf("Creating new TRX file:\n"); printf("\totrx create <file> [options] [partitions]\n"); printf("\t-f file\t\t\t\t[partition] start new partition with content copied from file\n"); + printf("\t-A file\t\t\t\t[partition] append current partition with content copied from file\n"); + printf("\t-a alignment\t\t\t[partition] align current partition\n"); printf("\t-b offset\t\t\t[partition] append zeros to partition till reaching absolute offset\n"); printf("\n"); printf("Extracting from TRX file:\n"); |