From nobody Tue Sep 12 16:42:57 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RlTsZ153Bz4stVs; Tue, 12 Sep 2023 16:42:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RlTsZ0cTSz3bvx; Tue, 12 Sep 2023 16:42:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=; b=o2o2N8g1FgbvW6jff8WasBZRpmG9R3oNo+EM6Z6SK2n3s6c33JU1a4cBdZOTIjLO+mSQKV P0OEeXUc4b5qeJATQjGLRxSiLNSqMVWWSE2nNpm3r2r893rkls5Akx2rbXuwqU6DMLf6Ld kqdjqsW2OlLOupphBLAv4usG7Guv4NUvln3FsGxKIty3X+LW5F+TF403iUFh+9AOZM7xDE NogvwdwvnXzFmXI1KkLAToWAurEZGu2vAaMgVp5eeOt/pCdiXz19EUGxhlqfZi9Za8/h9t JOud3oMBl0r0LvDbygnyshAhDwLMmTBhe6GPzNV6EXFPh33KfgwL7aDEHmztGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536978; a=rsa-sha256; cv=none; b=rxDulXAfnmJHY6usKJnTbVq/FMvyohVID+A8q4OPqEu9KKWgMJxFYHGK6pBTzE0OQi5yLE ZP0koy+uWuLme5Y6NmXzVgBDjGzfwuaWX1A2ixApvVNw2Kj6q787+C3jh51mD8y7wnh0jv p4bj7l8p90c/ZtI2WimAojZB77mMIxQusvAKNlBQMTeGYXft9OF/45Gty6Wy3vaF7pu4OH qsdJu3FTALbaSTitpWuogHqQpv3aI36lsmcz5bWzR1AwFtYpjS7KnEowQRZFhuTcsfds28 f14kn1au//lA6zdnNvE8VaXbU5MPdLqpzdQ7pLaUKGVpjfcehFE9zY1+4ll0XA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1694536978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=; b=TReyBngZRw73966QfluUfjSpDjkvbbncfxajZogelOjgzbjMIvHI3zscsm3WT0aDm7Z/l8 mDGIf5dohYPWG05jxH6DMQ2b0iEHM6LobcPB1eafsCHORR1+lvNzZYooNgHiIyaUn/YNHF HYr6w/Fvl+dKiCSMq5xApMRdU1K2EWs8UXI+rX0+w0b5AHkBiKQ2mE9Lz+uznElG5eCYaV E3xdzxmHN/ezAbJghRTiCQuYe1UH7su8euE1L3NXtPW3MFK4zG9f8XGxDLh79sZwe87OXF cjKmd6qeRh6qwQf0mZkh42ospwxx3fLTzYCsV0LASeuYeFfpLRmVC5WsS2M+lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RlTsY6nTzzg6p; Tue, 12 Sep 2023 16:42:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38CGgv9r070561; Tue, 12 Sep 2023 16:42:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgv4t070558; Tue, 12 Sep 2023 16:42:57 GMT (envelope-from git) Date: Tue, 12 Sep 2023 16:42:57 GMT Message-Id: <202309121642.38CGgv4t070558@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Piotr Pawel Stefaniak Subject: git: 8e5c53af831b - main - sh: also auto-complete functions List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pstef X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8e5c53af831bd180af0c59f2d96c67ab9da59590 Auto-Submitted: auto-generated The branch main has been updated by pstef: URL: https://cgit.FreeBSD.org/src/commit/?id=8e5c53af831bd180af0c59f2d96c67ab9da59590 commit 8e5c53af831bd180af0c59f2d96c67ab9da59590 Author: Piotr Pawel Stefaniak AuthorDate: 2023-04-30 16:31:52 +0000 Commit: Piotr Pawel Stefaniak CommitDate: 2023-09-12 16:40:05 +0000 sh: also auto-complete functions Differential Revision: https://reviews.freebsd.org/D40619 --- bin/sh/histedit.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index 0d40e1c9ec1a..842c166159bc 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -51,6 +51,7 @@ static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95"; * Editline and history functions (and glue). */ #include "alias.h" +#include "exec.h" #include "shell.h" #include "parser.h" #include "var.h" @@ -621,6 +622,7 @@ static char char **matches = NULL, **rmatches; size_t i = 0, size = 16, uniq; size_t curpos = end - start, lcstring = -1; + struct cmdentry e; in_command_completion = false; if (start > 0 || memchr("/.~", text[0], 3) != NULL) @@ -680,6 +682,16 @@ static char goto out; matches = rmatches; } + for (const void *a = NULL; (a = itercmd(a, &e)) != NULL;) { + if (e.cmdtype != CMDFUNCTION) + continue; + if (strncmp(e.cmdname, text, curpos) != 0) + continue; + rmatches = add_match(matches, ++i, &size, strdup(e.cmdname)); + if (rmatches == NULL) + goto out; + matches = rmatches; + } out: free(free_path); if (i == 0) {