From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22666 invoked by alias); 27 Jul 2018 10:14:34 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 43213 Received: (qmail 16474 invoked by uid 1010); 27 Jul 2018 10:14:34 -0000 X-Qmail-Scanner-Diagnostics: from mail-pg1-f195.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.215.195):SA:0(-1.9/5.0):. Processed in 0.593152 secs); 27 Jul 2018 10:14:34 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: joeypabalinas@gmail.com X-Qmail-Scanner-Mime-Attachments: |signature.asc| X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=Db3FRydriKUe4bl082cQimlCNmkQB0N3LmuMBnwui8Q=; b=IHcYTHc0bDzTJ0XBh2HO1819ZbiEmp7IzaD6fcIoXigmNLk8gyoe5nrk0FbXplgnKz YMNqmXJRWei97K+2LD8X3cJTF+UcQ93fLKvwYnKd6+w4K7MDWeA/H7ifWhRxzXmm32q5 9CkXdPc6rmPHJXy7iueNZG6K5ofyJAZbUBTEU9J3hgCaz3IHfK2EyzeXLA3ub9EEW+Hh J8wz06aWDl8kZokvQoD1C6ZGmk4/64/0WNq/8BhSGGvOuY6xBPHjBipzUm0HBXLIrtBQ Sj5yjqhfw/LjIu0j/4QmBUbg3Ka7dqiNA/DHKlEStkdYpsMC1sRKJ/y1ZsVIqSyaRANm 9NmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=Db3FRydriKUe4bl082cQimlCNmkQB0N3LmuMBnwui8Q=; b=h2McFULYMnKbflLFLZ10O1uai1IT9IoVzvrhTugjWl17GXsz4LoPfsreJutNZdv6D1 bvYlWb3cpFTEAkrIvDmXWOb7wwHf/qIp79lR2zWImk3sHbvqci7MieBFSr3F3YN0OwyE n/zqqGLZEYdzCbHt6JpaUHLmErjOquzsIsORQLy74NgpbE8ZG1sOYqXCzn0gVRfsD1qb hX46KsPuS/VD/t7OsZe1vtotULujN4JrJ7QEceVVFaDiOIGW6dF4T421wvp68EADbFDT k0MYWkf55DDiuJIjDVANq6wIEW/0iLj46kY81u7hB6hIUrqD2xmc63PWlKj0yO5CppVR OnUw== X-Gm-Message-State: AOUpUlFPhPUnyRc+gkZItDKToLZBleSCTFL5u42l0xzsQRONRWnYPuye 4NPX2ZWiTR85xOO/Kahfye8TEifS X-Google-Smtp-Source: AAOMgpdN8qgw8Jvt4Rwuwe9deQOCTLA3tmADYQdCUMgbx1iiYu3/i+LJLY1y7I4mJFRSgV5BhLZ6aA== X-Received: by 2002:a63:f45:: with SMTP id 5-v6mr5607483pgp.447.1532686470757; Fri, 27 Jul 2018 03:14:30 -0700 (PDT) Date: Fri, 27 Jul 2018 00:14:28 -1000 From: Joey Pabalinas To: Zsh Workers Mailing List Cc: Joey Pabalinas Subject: [PATCH] Src/prompt.c: Add %O and %o prompt escapes Message-ID: <20180727101428.lrylyaghwcpykupu@hobbes.alyptik.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="3ehpnlcmxoamngbv" Content-Disposition: inline User-Agent: NeoMutt/20180716 --3ehpnlcmxoamngbv Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Implement %O and %o as shorthands for resetting fg/bg color and terminal attributes (underline/standout/boldface) respectively. Update the documentation to include the two new prompt escapes. Signed-off-by: Joey Pabalinas --- Doc/Zsh/prompt.yo | 6 ++++++ Src/prompt.c | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/Doc/Zsh/prompt.yo b/Doc/Zsh/prompt.yo index 909012c8e787b04fcf..8086c54b2e651923c5 100644 --- a/Doc/Zsh/prompt.yo +++ b/Doc/Zsh/prompt.yo @@ -244,10 +244,16 @@ colours are allowed in the second format also. ) item(tt(%K) LPAR()tt(%k)RPAR())( Start (stop) using a different bacKground colour. The syntax is identical to that for tt(%F) and tt(%f). ) +item(tt(%O))( +Reset foreground and background colours to default. +) +item(tt(%o))( +Turn off all terminal attributes (underline/standout/boldface). +) item(tt(%{)...tt(%}))( Include a string as a literal escape sequence. The string within the braces should not change the cursor position. Brace pairs can nest. =20 diff --git a/Src/prompt.c b/Src/prompt.c index 959ed8e3d57a0286a8..48980e744437bc6b23 100644 --- a/Src/prompt.c +++ b/Src/prompt.c @@ -567,10 +567,29 @@ putpromptchar(int doprint, int endchar, unsigned int = *txtchangep) case 'k': txtchangeset(txtchangep, TXTNOBGCOLOUR, TXT_ATTR_BG_ON_MASK); txtunset(TXT_ATTR_BG_ON_MASK); set_colour_attribute(TXTNOBGCOLOUR, COL_SEQ_BG, TSC_PROMPT); break; + case 'O': + txtchangeset(txtchangep, TXTNOFGCOLOUR, TXT_ATTR_FG_ON_MASK); + txtchangeset(txtchangep, TXTNOBGCOLOUR, TXT_ATTR_BG_ON_MASK); + txtunset(TXT_ATTR_FG_ON_MASK); + txtunset(TXT_ATTR_BG_ON_MASK); + set_colour_attribute(TXTNOFGCOLOUR, COL_SEQ_FG, TSC_PROMPT); + set_colour_attribute(TXTNOBGCOLOUR, COL_SEQ_BG, TSC_PROMPT); + break; + case 'o': + txtchangeset(txtchangep, TXTNOUNDERLINE, TXTUNDERLINE); + txtchangeset(txtchangep, TXTNOSTANDOUT, TXTSTANDOUT); + txtchangeset(txtchangep, TXTNOBOLDFACE, TXTBOLDFACE); + txtunset(TXTUNDERLINE); + txtunset(TXTSTANDOUT); + txtunset(TXTBOLDFACE); + tsetcap(TCUNDERLINEEND, TSC_PROMPT|TSC_DIRTY); + tsetcap(TCSTANDOUTEND, TSC_PROMPT|TSC_DIRTY); + tsetcap(TCALLATTRSOFF, TSC_PROMPT|TSC_DIRTY); + break; case '[': if (idigit(*++bv->fm)) arg =3D zstrtol(bv->fm, &bv->fm, 10); if (!prompttrunc(arg, ']', doprint, endchar, txtchangep)) return *bv->fm; --=20 Cheers, Joey Pabalinas --3ehpnlcmxoamngbv Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEKlZXrihdNOcUPZTNruvLfWhyVBkFAlta8IQACgkQruvLfWhy VBlNmxAA1NiFlu1m5cuqVDgb1y4ssVWl8B7oF8r3uQ1PMqgKu31Lx7dVIcPzdl1R PKdPp331zI9hfjxBR1DkBKvMvoMQbsMqorEDeL7iakVPpr+p4dErOsDXdzsDtnp0 iLgpYRXW4cbkFkOz4uJnIHMRnZLWSnsSt9NR8k0cj0WeUYumsjhsFBYbsrh0YcwH earCoDHHlmkRdq1u9h3INsgtuovhbFZMIlnVzj0/dzS++2bHD9y4IL3x4C7/sY36 QP3XvSJ6dyJ87ZTzsF5S5nDq36f4f+pjaYpxDviNf/aeYUEOGc7Sc1klWhsrYkiv eXgzLJ6dY8jWrEAG3yyjxXrI+S99/JIitJhXtOo/56jrSB1D5OxyTMLOEQX7Z7G0 2iT4B4G0qSx2rPxucQjlM3ngt18WoK+o2CSjce5mr79dhVPBUZuwAc0Ctw0sMYxJ vAHxACJUwkTCYW5gEIH+03WeyYantUyjjN4WCdHiCljbSZ/Z4FMrl15z3ORdof3n s+xqYy42KzXIH1zhRTTMLwqzE6rR7CbfMV+cZqZpcHyWPwCSA69ZvJKQRpAUSXM1 P9u9CDwJqM2A5ccU4e9r3ydeMr2qb5EnxXIkkEmOB5u7v9rs06+x1mKVgGb4lTxT W2s3ZnGVhwOEEP4DCyo/yqH502LaIAl8RtH/iYxwlxhZyzjXBVc= =bxOr -----END PGP SIGNATURE----- --3ehpnlcmxoamngbv--