Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2615182pxb; Sun, 17 Oct 2021 20:35:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz2FQ/tJGZiB9rEjKMkHmMVm5r66qzrI1AzBwcpaxSl9cyc6zYfIAKFLElUN42WWM4czxhN X-Received: by 2002:a62:3606:0:b0:445:38d5:98bf with SMTP id d6-20020a623606000000b0044538d598bfmr26133021pfa.4.1634528101593; Sun, 17 Oct 2021 20:35:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1634528101; cv=none; d=google.com; s=arc-20160816; b=d7rwpDbecP8Clk94c4zruV0xCZVyJveizsDGfRIel2UR9HtzkGWlyam6NFZmKfA0Wi Gy6G9MOImxvFlb1HFlhcsrjix5/tkFwqjk3bJEzbvU+ruwCIPmdLS2y5dkS/5a0+31Z8 RShQoRbUyUaG+LGkl+qVfZ0lNojcZ92K+n257xOCdOfZ+z0cNEEc10CCSK2Gv4708lck SM7ISPoT1j+Hio4TdvqwYCLhvKDo4zbh85lSQNg5WS9OxFMXyAiBoK+PoEZuCIoDVQv4 janC6k6p+RAvD1GLmqIMEGLbRqQ5R2HEWlJZuvHJqN2GgkIQsAHE0nvhS5FTv48+XVRc RDWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-disposition:mime-version:message-id :subject:cc:to:from:date:dkim-signature:dkim-signature; bh=eILtDThS15EVW64aCebMmA4bjm6AbsJmEdCTRDYtsoQ=; b=mclE2KHLyvsqLcCnvi3mITDsw+4/YO+IqQXb8UNsKqcykDWq8pY4zzqeXlDGwSu7hV ByJUylVosL669bSd0LMMXBWpYiw4npY4szDvr2LC7tEa59wCtBh/tKM86h+zo8B1E4Ey I4+i9QlNq0fiHotpXrsLIqbzQW82/+wWG0rjChFZ0ortUyFWwPMGVWMkzeZyktpqTzsf Nxg530eUA98j96EqekxNj7UWM7ez7iXrcvbikgAEzISY/Ii1XLdqSQwKxNu6+4g1k+c3 LPQcuiB6jcuQeZZf507tKT8l5ZnOoKIjU/1bl12uIgamw8n7cjGo6t4/YPiF4IQu9Yvi CnBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joshtriplett.org header.s=fm1 header.b=JFiW4Y6C; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=J61Vyz+K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j6si10911124pld.440.2021.10.17.20.34.49; Sun, 17 Oct 2021 20:35:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@joshtriplett.org header.s=fm1 header.b=JFiW4Y6C; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=J61Vyz+K; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244317AbhJPL3J (ORCPT + 98 others); Sat, 16 Oct 2021 07:29:09 -0400 Received: from new2-smtp.messagingengine.com ([66.111.4.224]:42305 "EHLO new2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229848AbhJPL3D (ORCPT ); Sat, 16 Oct 2021 07:29:03 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id 6E3AB580FDE; Sat, 16 Oct 2021 07:26:54 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Sat, 16 Oct 2021 07:26:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= joshtriplett.org; h=date:from:to:cc:subject:message-id :mime-version:content-type; s=fm1; bh=eILtDThS15EVW64aCebMmA4bjm 6AbsJmEdCTRDYtsoQ=; b=JFiW4Y6C8+WQ58dOasxfFFnr8YpBTjrXRJT7CCLPw8 3ERsqbu2TKAP5dJ7XQVpq4I9jvULZWJTwVbGgs0wzVeJGTO6kBdHtuu7xc6uVBHf 4JRbI87GcaaygnZOTlE3vn7PcsxvMjK8FMEO8IBAOO0zO/oK3lvtXhJSoS6GQesd yyS8KA/Tz/20Kpy2IrngEBv37JFtQRgNJUDnQaqZiWnYDcN13IHVl92SuTV74fc7 I//ymom6LQLliYXfWCel2DHVPR4TqEJH68B7V0jEYUBHjjqu7W/1jUTBAUmyYVKN FgeDgHBQ8ou2ExPMlyBQzEHEjQTl72k2BgbJ5Xg+RQNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=eILtDThS15EVW64aCebMmA4bjm6Ab sJmEdCTRDYtsoQ=; b=J61Vyz+Kw9LuRHcEMID+5eIR1Rbxd9OTk1een1HchHNoW Ri0p8oUNmkzThooGzw44teV3Rppah5llq0OFgUishSAeKGMs2BYwx8GZFeeBbmTA /opZFUJOGZdWoVCg1BramyH1B5apbVn7SOBAew8cD8ATDATmHnhvzZ2pkWzJf+nu AlgQb/FIKcbCVokcECmYjJRtjFazhCv3ZP4rd+btdyC904yTTzIA+OXNlWhPlqVj PdExcfh07kCBwL1OMyNtLRXxBWLbXynKKQN3TnCBbwwibRV4te8TITvr03yiNwf3 bz/FbNmEaPHees6Bs87BjtEh6f7foPzswkkcrJtwg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvdduiedggedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvffukfggtggusehttdertddttddvnecuhfhrohhmpeflohhshhcuvfhr ihhplhgvthhtuceojhhoshhhsehjohhshhhtrhhiphhlvghtthdrohhrgheqnecuggftrf grthhtvghrnhepleelgeegtdejjeefuedvudefgefgkedtfeekheevueevvddvhfegfffg vdfgffeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epjhhoshhhsehjohhshhhtrhhiphhlvghtthdrohhrgh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 16 Oct 2021 07:26:52 -0400 (EDT) Date: Sat, 16 Oct 2021 13:26:50 +0200 From: Josh Triplett To: Masahiro Yamada Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] kconfig: lxdialog: Support home/end when editing values Message-ID: <257b264c328253acda17ebafd7be6740021b1707.1634383536.git.josh@joshtriplett.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When editing long string values, this makes navigation much easier. Signed-off-by: Josh Triplett --- Ran into this when repeatedly editing CONFIG_CMDLINE and wanting to change the first value. scripts/kconfig/lxdialog/inputbox.c | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/scripts/kconfig/lxdialog/inputbox.c b/scripts/kconfig/lxdialog/inputbox.c index 1dcfb288ee63..25c7cb05b3da 100644 --- a/scripts/kconfig/lxdialog/inputbox.c +++ b/scripts/kconfig/lxdialog/inputbox.c @@ -181,6 +181,39 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width pos++; } continue; + case KEY_HOME: + if (pos > 0) { + pos = show_x = input_x = 0; + wmove(dialog, box_y, box_x); + for (i = 0; i < box_width; i++) + waddch(dialog, ' '); + wmove(dialog, box_y, box_x); + for (i = 0; i < box_width && instr[show_x + i]; i++) + waddch(dialog, instr[show_x + i]); + wmove(dialog, box_y, box_x); + } + continue; + case KEY_END: + if (pos < len) { + pos = len; + wmove(dialog, box_y, box_x); + for (i = 0; i < box_width; i++) + waddch(dialog, ' '); + wmove(dialog, box_y, box_x); + if (len < box_width) { + show_x = 0; + input_x = box_width - 1; + for (i = 0; i < box_width && instr[show_x + i]; i++) + waddch(dialog, instr[show_x + i]); + } else { + show_x = len - box_width + 1; + input_x = box_width - 1; + } + for (i = 0; i < box_width && instr[show_x + i]; i++) + waddch(dialog, instr[show_x + i]); + wmove(dialog, box_y, input_x + box_x); + } + continue; default: if (key < 0x100 && isprint(key)) { if (len < MAX_LEN) { -- 2.33.0