Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1339612imm; Fri, 15 Jun 2018 15:37:31 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLUr982BDiIntKsHt+VPr4aYm4TAuR1H/DLv8ZejliuWdQIOmCuAup/BgyZxaEvVqUaCJS6 X-Received: by 2002:a17:902:c6b:: with SMTP id 98-v6mr4072267pls.37.1529102251540; Fri, 15 Jun 2018 15:37:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529102251; cv=none; d=google.com; s=arc-20160816; b=ziswQFogEfYgqXPYy8timu313kEnd6Rs+/mXMvm1+mpwgvt8WE5cd96nyHFvGZGaLp DP0Mtkna14ei6NqAai5u5udDPU75lF6YkxTKsMXsDCd/D2UqksmN7q0sEZB1n1NjUMMW 2dIOWpFWRgVV1CvBt6VB7PZS/gb9fdZG3EK/m236raOqJu0gCarZZ0wVag4emCcSL8/0 LYbKJrjXSLs294boczMNaAzG98Rr1sqk7uJ2LrXW+V27k6Ayuv/3E5VcvdvpLEcxxCpj Gt+3Ff134lu19frecLRDidgbIV+knX7YYYHsBNCkvYq5RBDo09w036YPpPHdaRVVXjVY qY4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=MK0qX2ul6EtSlxKY+ngGjpxTlltuqzdio9krD9gckzM=; b=gsa2lppvxbmUXdwZElSRtJDG4p6+5+xNzyLjfZhFza6fuSAts5CBAM55/Ro0oibsgR rreeglzssgy4zZr979DtTgPXqsjV32xBRtUnTzmA1ocucIYmgsrPo3qOquRC4p3Xz1rS xEJzjuYzZUCbgpLnbWljRpRKUER9Gt0TX49pMzLU1AyXb58ipHqHSeg6RKP7QGz3T+Q6 q9ME8QMeHYvn4Dy+DNO6IfXPgEZ/P54sb61ISoAXE6UXD8SPUEJHecQZUsJ5u87PAzCO CDm8WeNPX1JT7HTcFhNs8PKS7fKeYUgj7yNtsci9K2YyjJOgfQ+ZdXHLHK4rU0byYR8e 84tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gouders.net header.s=gnet header.b=pUUWIWZ0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2-v6si8818290plt.421.2018.06.15.15.37.03; Fri, 15 Jun 2018 15:37:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gouders.net header.s=gnet header.b=pUUWIWZ0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756684AbeFOWg2 (ORCPT + 99 others); Fri, 15 Jun 2018 18:36:28 -0400 Received: from services.gouders.net ([141.101.32.176]:33583 "EHLO services.gouders.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756583AbeFOWg0 (ORCPT ); Fri, 15 Jun 2018 18:36:26 -0400 Received: from lena.gouders.net (ipservice-047-071-023-039.pools.arcor-ip.net [47.71.23.39]) (authenticated bits=0) by services.gouders.net (8.14.8/8.14.8) with ESMTP id w5FMTCfH020007 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Sat, 16 Jun 2018 00:29:24 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gouders.net; s=gnet; t=1529101767; bh=M01q+/dgp1UXPKZAfgyUD9hBfKSMRu2W48WEQ5B24tI=; h=From:To:Cc:Subject:Date; b=pUUWIWZ06nJESG5C9r3fSyokZRUbDjz114LmBytwSSecztHbsZFOiENHBebxi2Ouw 1mFWBC3TK/cecUoQDbSnCZWtzOJKPFnbugN/AEYIFAQJC3tRQ6BR5+2fw2/6+VzUUo qj/lKGDl/jYBvJ+celPISkJI4k7+DPIfbtfN/vqM= From: Dirk Gouders To: Masahiro Yamada , Randy Dunlap , Linux Kbuild mailing list , Linux Kernel Mailing List , Segher Boessenkool , Sam Ravnborg Cc: Dirk Gouders Subject: [RFC v6 0/1] mconf: global i-search in menu structure Date: Sat, 16 Jun 2018 00:29:06 +0200 Message-Id: <20180615222907.23449-1-dirk@gouders.net> X-Mailer: git-send-email 2.16.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, version 6 of this RFC was mainly influenced by a discussion with Randy Dunlap about a patch for i-search in nconf. In that discussion I stated that it would be a lot of work to implement a global i-search but while thinking about that statement afterwards, I realized that most of the needed functionality is already there in search_conf(), the search function for config symbols. The menu tree is converted in a flat menu to ease the implementation of a cyclic i-search and the rest of the implementation does no longer interfere so much with current menu handling. Dirk Changes in v6: * The modification of the function print_autowrap() was reworked and is no longer a separate function. * The i-search navigation was completely reworked and now works on the whole menu tree. * Hotkeys are back, because they do not interfere that much with this version of i-search navigation. Changes in v5: * More thoroughly tested code * Hotkey navigation concept completely dropped * Printable characters except special ones form the search string * Focus-sensitive help text above menu * DEL erases search string * Matching string is highlighted in selected menu item * README help text adjusted Changes in v4: * Prototype: consequent i-search navigation concept Changes in v3: * Use current git tree to make the patch apply. * Eliminate debugging output to stderr. Changes in v2: * Additionally to CTRL-s, \ can be used to start isearch. * Raw mode is off by default an can be enabled by an environment variable MENUCONFIG_RAW_MODE. * I also added a variable for toggling raw mode but did not implement anything else. * The isearch indicator is now displayed as soon as isearch is started. * Any key except \, CTRL-s, alphanumeric characters and space terminates isearch and -- except ESC ESC -- is further processed, e.g. ENTER terminates isearch and is then used to navigate into a submenu. * Problems with mismatches and matches above the current position were fixed. Dirk Gouders (1): mconf: global i-search in menu structure scripts/kconfig/lxdialog/checklist.c | 2 +- scripts/kconfig/lxdialog/dialog.h | 3 +- scripts/kconfig/lxdialog/inputbox.c | 2 +- scripts/kconfig/lxdialog/menubox.c | 177 +++++++++++++++++++++++++++++----- scripts/kconfig/lxdialog/util.c | 37 ++++++- scripts/kconfig/lxdialog/yesno.c | 2 +- scripts/kconfig/mconf.c | 181 +++++++++++++++++++++++++++++++++-- 7 files changed, 364 insertions(+), 40 deletions(-) -- 2.16.4