commit 560d424b6d7cd4205b062ad95f1b104bd4f8bcc3 "env: re-add support for auto-completion" fell short of its description - the 'used' logic in hmatch_r was reversed - 'used' is 0 if the hash table entry is not used, or -1 if deleted. This patch makes hmatch_r actually match on valid ('used') entries, instead of skipping them and failing to match anything.
typing 'printenv tft' and hitting 'tab' now displays valid choices for variable names. Signed-off-by: Kim Phillips <kim.phill...@freescale.com> Cc: Mike Frysinger <vap...@gentoo.org> --- lib/hashtable.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/lib/hashtable.c b/lib/hashtable.c index fcdb53c..92eaa38 100644 --- a/lib/hashtable.c +++ b/lib/hashtable.c @@ -209,7 +209,7 @@ int hmatch_r(const char *match, int last_idx, ENTRY ** retval, size_t key_len = strlen(match); for (idx = last_idx + 1; idx < htab->size; ++idx) { - if (htab->table[idx].used > 0) + if (htab->table[idx].used <= 0) continue; if (!strncmp(match, htab->table[idx].entry.key, key_len)) { *retval = &htab->table[idx].entry; -- 1.7.4.2.dirty _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot