git: 0fd450e2895e - main - sh: tab-complete aliases

From: Piotr Pawel Stefaniak <pstef_at_FreeBSD.org>
Date: Tue, 12 Sep 2023 16:42:55 UTC
The branch main has been updated by pstef:

URL: https://cgit.FreeBSD.org/src/commit/?id=0fd450e2895e1f9085fbd361a2aad8421a16dc66

commit 0fd450e2895e1f9085fbd361a2aad8421a16dc66
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-04-29 20:38:50 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:39:42 +0000

    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 3ca8a0bcefa7..0d40e1c9ec1a 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) {