summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-11-01 11:23:24 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-11-01 11:23:24 +0000
commit591ec0349b424e94eaaaa1c9bf486f769ff34732 (patch)
treef08595af7af1d51a456bcaaf516b7a30cda12c57 /utils
parent9e0ab22262ffd29b5273bb23162a15bf0a8c391f (diff)
downloadrockbox-591ec0349b424e94eaaaa1c9bf486f769ff34732.tar.gz
rockbox-591ec0349b424e94eaaaa1c9bf486f769ff34732.tar.bz2
rockbox-591ec0349b424e94eaaaa1c9bf486f769ff34732.zip
sbtools: rework the color hack and add switch to disable color output
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30880 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils')
-rw-r--r--utils/sbtools/misc.c21
-rw-r--r--utils/sbtools/misc.h6
-rw-r--r--utils/sbtools/sbtoelf.c25
3 files changed, 34 insertions, 18 deletions
diff --git a/utils/sbtools/misc.c b/utils/sbtools/misc.c
index 39934951ae..4eeda4ef33 100644
--- a/utils/sbtools/misc.c
+++ b/utils/sbtools/misc.c
@@ -211,3 +211,24 @@ void print_key(struct crypto_key_t *key, bool newline)
if(newline)
printf("\n");
}
+
+char OFF[] = { 0x1b, 0x5b, 0x31, 0x3b, '0', '0', 0x6d, '\0' };
+
+char GREY[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '0', 0x6d, '\0' };
+char RED[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '1', 0x6d, '\0' };
+char GREEN[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '2', 0x6d, '\0' };
+char YELLOW[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '3', 0x6d, '\0' };
+char BLUE[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '4', 0x6d, '\0' };
+
+static bool g_color_enable = true;
+
+void enable_color(bool enable)
+{
+ g_color_enable = enable;
+}
+
+void color(color_t c)
+{
+ if(g_color_enable)
+ printf("%s", (char *)c);
+}
diff --git a/utils/sbtools/misc.h b/utils/sbtools/misc.h
index cc0a3fb5ea..a685816047 100644
--- a/utils/sbtools/misc.h
+++ b/utils/sbtools/misc.h
@@ -48,4 +48,10 @@ bool parse_key(char **str, struct crypto_key_t *key);
void add_keys_from_file(const char *key_file);
void print_key(struct crypto_key_t *key, bool newline);
+typedef char color_t[];
+
+extern color_t OFF, GREY, RED, GREEN, YELLOW, BLUE;
+void color(color_t c);
+void enable_color(bool enable);
+
#endif /* __MISC_H__ */
diff --git a/utils/sbtools/sbtoelf.c b/utils/sbtools/sbtoelf.c
index 47aebe7890..24417dc88e 100644
--- a/utils/sbtools/sbtoelf.c
+++ b/utils/sbtools/sbtoelf.c
@@ -42,22 +42,6 @@
#include "sb.h"
#include "misc.h"
-#if 1 /* ANSI colors */
-
-# define color(a) printf("%s",a)
-char OFF[] = { 0x1b, 0x5b, 0x31, 0x3b, '0', '0', 0x6d, '\0' };
-
-char GREY[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '0', 0x6d, '\0' };
-char RED[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '1', 0x6d, '\0' };
-char GREEN[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '2', 0x6d, '\0' };
-char YELLOW[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '3', 0x6d, '\0' };
-char BLUE[] = { 0x1b, 0x5b, 0x31, 0x3b, '3', '4', 0x6d, '\0' };
-
-#else
- /* disable colors */
-# define color(a)
-#endif
-
/* all blocks are sized as a multiple of 0x1ff */
#define PAD_TO_BOUNDARY(x) (((x) + 0x1ff) & ~0x1ff)
@@ -723,7 +707,8 @@ void usage(void)
printf(" -k <file>\tAdd key file\n");
printf(" -z\t\tAdd zero key\n");
printf(" -r\t\tUse raw command mode\n");
- printf(" --add-key <key>\tAdd single key (hex or usbotp)\n");
+ printf(" -a/--add-key <key>\tAdd single key (hex or usbotp)\n");
+ printf(" -n/--no-color\tDisable output colors\n");
exit(1);
}
@@ -742,16 +727,20 @@ int main(int argc, char **argv)
{"help", no_argument, 0, '?'},
{"debug", no_argument, 0, 'd'},
{"add-key", required_argument, 0, 'a'},
+ {"no-color", no_argument, 0, 'n'},
{0, 0, 0, 0}
};
- int c = getopt_long(argc, argv, "?do:k:zra:", long_options, NULL);
+ int c = getopt_long(argc, argv, "?do:k:zra:n", long_options, NULL);
if(c == -1)
break;
switch(c)
{
case -1:
break;
+ case 'n':
+ enable_color(false);
+ break;
case 'd':
g_debug = true;
break;