From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 941 invoked from network); 11 Aug 2022 14:37:40 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 11 Aug 2022 14:37:40 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1660228660; b=SPlV+rUhZjxrV+F+j3NY8bknTXmSo1GB9OD84KSqLWSbXqJsACj1i0eNduQhHp47g65FLTdGiY OlyekpEVId69Qlq9+bXOJrB1esqOt/w2IZip2tUBwidFsYLX0Y+T7F+uyKBJBedoCyETbnsSit c5NgqK6SGm3psvCJiN9LtXoV8XmOdqkP1HwqIo2VpILMd54uDw/pjvGGFhseumvpstZt+Lmgdt zYupTHZi6P7IQ89ewds3P0A5R/2B4yTBSwew2YjR7KnBAFG0gJfujl4qGhpum3T2VakIM9vgSR z9Q/OREeOVxG3oZX3GB2vDW9r2G6iMcTY8+csLJm6gtj7g==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-qt1-f169.google.com) smtp.remote-ip=209.85.160.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1660228660; bh=sHnt3rqiV6mxCaWIpCbOAND6gW5uFlxPuw6gtYFTv1c=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=hYMtaV12iz8RRtBMI8ZnXIs/tLysKuLQzKp/jmHg/PrPonuVZAyhpP4DKowEyRdcl0wsazx6rq l/MBMJL4QBQVN70Mi9s/89n1B1m17VJFUjC2p2wOK/lhELDtDpgB2JvUQCxKqvHs4jlLefVx8y iINVsGtj8OL4eFMFgTnK2Pnt/s3uhPPk9EPkLIUJNba+HHMp7ITJIDYN7Jbi/hjMt6mXS4KH3S ucy0+of7/Vua1a3QocLl0eyVmqIMUOGbH8Thf0OCpHndL4VnJAcwUlYtdy9G52kwrbFjwy/c11 R63MbVOOsFwHD4bMXRy5/msCc/Z2gWSqB/xowbyN1hNhGQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=CZ74zmPHJikVq1xrNpUDiQ8SjKrxqkSKm7J1ZG0x2dE=; b=CbYBcKg8TECfaQI5ORTaxSAzNT HAsW1VP01bAF4wp7Sh30Ax6PtCGMP88YyXqDGhVl6C0WPgPts/OxAWJKKbGM20yPD5pfrdlVMJc3V W/4/Go6cmChn1/nXOJdWwlg3sVpEf4cb4gfjbSWaM2JJtTmT10DOYox9q0CgYq7POb7z0Rt1KpNGl DDqFNuW27dqmm/5ThoGYHn6CkUTXNyXOnpNAIX5rB2/A6TUb/SUed3NXS7LqpIy3EMewrivZI9pld TRKrvcOvbTl+NX+rKPmGYy1icZsSut3kMsuLDbadJxSiGLMFvrstwtbXs9PuGvuoQYBp0SGunxVIi HGo/Tw3w==; Received: from authenticated user by zero.zsh.org with local id 1oM9Jc-0008l8-75; Thu, 11 Aug 2022 14:37:40 +0000 Authentication-Results: zsh.org; iprev=pass (mail-qt1-f169.google.com) smtp.remote-ip=209.85.160.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-qt1-f169.google.com ([209.85.160.169]:34654) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1oM9JI-0008QD-Pb; Thu, 11 Aug 2022 14:37:21 +0000 Received: by mail-qt1-f169.google.com with SMTP id e28so5574206qts.1; Thu, 11 Aug 2022 07:37:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=CZ74zmPHJikVq1xrNpUDiQ8SjKrxqkSKm7J1ZG0x2dE=; b=ScYD/gMsmN9NqtUT4ldQrjriHRQ/T8UHxFx1G6mpvvlUsqMEJfz4TqXCTrXLeEmNFM iTme4gex+eRSb4y1QtSJOfGqc9iNRyR63cZOVCR3ZXCi+vKsu95/4r8DYsnOwb4pt0GJ Z9SJv3b+L/u+r/0jn98SzhtFMt2PyujK6baU5zdGexIwjrOj6Hgg5cMSd4b/vgZEkl5T F/K/z2x2aaVTyx+U9zh14LI2kVGwW55C6srVkC7p/KEQxLD8aIxspVlmKwKo0MDPZDHM bHIQUiEpgFg3hKHOZs/+4pcPt9j/q8VB6yzuYU7xwBUE6DQn1YPSKmW/mml2BCzE2nkF Wzow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=CZ74zmPHJikVq1xrNpUDiQ8SjKrxqkSKm7J1ZG0x2dE=; b=KINL3r/mojCDkS/MDXwI8cPketPLwCgad4sa/oFpy+yixAiYm66EcmzcoEm6QTlrpn kgrYfT2tE2Cn11c2smbXp6m9Hu8cKc7YQf/fT8/vzBJhkSYrvPdbVjxoJ8i7D6qUmKNP ixZYVn8wh08inrUNn6BFa4krxGhc6XzyixRcjAemHhOpTXG4uYWu1tvSnZQYpGaRk7HZ nxjpU3mdpbuY7sfek49U5RiwwVYHmOziI2BTi/e5uCh406M3w7k+tV8rqUIZVeAfkS13 FxIilYrqT+SS8y1l2/uJ/hvfm9QLYLMAPb1Krf0v1k2IrvBDgx2B4IO6cx/Y7uZARgJy PZvA== X-Gm-Message-State: ACgBeo3peN79ySFErU+IQXr7YtnUsqaHnOnaZtv731LfpJceKBfbtt1e O+DBaKPkxmjAKiOlUXSauhqyBBaZsbPEBG0tkiQ= X-Google-Smtp-Source: AA6agR7Rs1R/T6rhbHBxXNmg/ICpZoJVX/7GhUe1bBAXGhrTGM0yHo9fFarv2+XqSJzr8+8jAEActHfDWrpSSQoCWCg= X-Received: by 2002:a05:622a:1213:b0:31e:e1de:fc8d with SMTP id y19-20020a05622a121300b0031ee1defc8dmr29503182qtx.652.1660228639390; Thu, 11 Aug 2022 07:37:19 -0700 (PDT) MIME-Version: 1.0 References: <20220810115120.182853-1-felipe.contreras@gmail.com> In-Reply-To: <20220810115120.182853-1-felipe.contreras@gmail.com> From: Roman Perepelitsa Date: Thu, 11 Aug 2022 16:37:08 +0200 Message-ID: Subject: Re: [PATCH] prompt: support generic non-visible regions To: Felipe Contreras Cc: zsh-workers@zsh.org, Oliver Kiddle , dana Content-Type: text/plain; charset="UTF-8" X-Seq: 50454 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: On Wed, Aug 10, 2022 at 1:56 PM Felipe Contreras wrote: > > readline assumes anything between \001 (start of header) and \002 (start > of text) is non-visible characters. > > In zsh we do this with `%F{color}`, but we could support > `\001\e[31m\002` as well. I like this patch but for a different reason. It closes the capability gap in zsh prompts with and without prompt_percent. When one disables prompt_percent, they can do all the same things as before _except_ mark some sequences as zero-width. The loss of this capability in turn means that one cannot use colors (and many other things) in prompt without prompt_percent. With this patch we'll have a nice guarantee that the following two pieces of code are equivalent: A: emulate -R zsh PS1=$whatever B: emulate -R zsh -o no_prompt_percent PS1=${(%)whatever} (Assuming no other prompt parameters are set.) No real-world use cases come to mind but it just looks simple and elegant from the user's point of view. Roman.