summaryrefslogtreecommitdiff
path: root/common/util.c
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2012-05-14 12:54:56 -0700
committerVadim Bendebury <vbendeb@chromium.org>2012-05-14 13:35:03 -0700
commit6a324c1de569529b26ebc694ceca3a66c38c989d (patch)
tree3886d4be6989ff6aa1ea2c8ec649761d9f56d7b3 /common/util.c
parent55898c8b4b14521bf6c188a7d7e034a9b1ae7b35 (diff)
downloadchrome-ec-6a324c1de569529b26ebc694ceca3a66c38c989d.tar.gz
Allow console commands abbreviation
The EC console input handling code is being enhanced to accept abbreviated command names. If the abbreviation is unique, the appropriate command is used, if the abbreviation is ambiguous, the command is handled as nonexistent. The error message is being modified to mention that the command either does not exist or is ambiguous. This change also makes it impossible to have command names matching the beginning of other command names. Two such cases are being fixed (`ch' renamed to `chan' and `thermal' renamed to 'thermalconf'). BUG=none TEST=manual . program the new EC image. Try entering at the console: > h Command 'h' either not found or ambiguous. Command returned error 1 > he Known commands: adc autofan battery ch charger ... > help Known commands: adc autofan battery ch charger ... Change-Id: Iaa3e91e1504e42daefb02d561e00c39003548197 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Diffstat (limited to 'common/util.c')
-rw-r--r--common/util.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/common/util.c b/common/util.c
index 47e9ba1226..b8afdf45c9 100644
--- a/common/util.c
+++ b/common/util.c
@@ -54,6 +54,22 @@ int strcasecmp(const char *s1, const char *s2)
}
+int strncasecmp(const char *s1, const char *s2, int size)
+{
+ int diff;
+
+ if (!size)
+ return 0;
+
+ do {
+ diff = tolower(*s1) - tolower(*s2);
+ if (diff)
+ return diff;
+ } while (*(s1++) && *(s2++) && --size);
+ return 0;
+}
+
+
int atoi(const char *nptr)
{
int result = 0;