From 0fd450e2895e1f9085fbd361a2aad8421a16dc66 Mon Sep 17 00:00:00 2001 From: Piotr Pawel Stefaniak Date: Sat, 29 Apr 2023 22:38:50 +0200 Subject: [PATCH] sh: tab-complete aliases Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/histedit.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index 3ca8a0bcefa..0d40e1c9ec1 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -50,6 +50,7 @@ static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95"; /* * Editline and history functions (and glue). */ +#include "alias.h" #include "shell.h" #include "parser.h" #include "var.h" @@ -671,6 +672,14 @@ static char goto out; matches = rmatches; } + for (const struct alias *ap = NULL; (ap = iteralias(ap)) != NULL;) { + if (strncmp(ap->name, text, curpos) != 0) + continue; + rmatches = add_match(matches, ++i, &size, strdup(ap->name)); + if (rmatches == NULL) + goto out; + matches = rmatches; + } out: free(free_path); if (i == 0) {