Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
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,
	T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20120113;
        h=mime-version:from:date:message-id:subject:to;
        bh=IM3TtUo9GBG9OCoAeA9r4T8Ay0yxIWT1tezJkezM3B0=;
        b=EjgS3ZRRccTaTTjBeTeeCsF3ef4HK0lEJw56iCFPgmcbhFmUpkTJFD//2BfmJ7/BsS
         vhhR6/XddHIsWNvKVSR5qms+UzImq9aUtg+svYXeXuA7LiuHPb+1VFjE6UfTFF8sxIpw
         LZBd0HEP3eAJ1okWTaWkDqXpiesn1CbZhmoFho+OKXugdIpzwWfieYZMbFefSc8qMdIJ
         7zVTR5XB6vU6s8Mz/T5KV3ZZV1MMD3I7KGCrTDdqsg6uRyTydnkz1Q52m87JfKN2ISsh
         psjBCrACSt4XszZ3s0NydzcgeiHD8otQ6NEz7CJQYI8M8r6fR+20mQw1u/xCIvhYis7a
         dZEg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
        bh=IM3TtUo9GBG9OCoAeA9r4T8Ay0yxIWT1tezJkezM3B0=;
        b=Nn22BXxAilm9lTYvj8LlwbG6ciZzmw7ax1wM1063MsncUuRuTBWU8YFkXoGm+3mcf6
         rJZ5zyZQqFJ9qjP18MS66UizOjEOPGQKXYMBVL2OGmrP6WblabiQ//6IXtB0xqkAQmRI
         N4keoHoUi4EhoNOM4oftmfGxNBXrHuHXZUK0ehOZMDLR4YvHbXri9CwX38JdLXHOEA1M
         wy5jfX44jHpV8SLOcH5y/4nd3NEI1vUL9P1W/SlWymmKeGXTWhl0sGAB0xpngDBxU+bQ
         pitUiToLwN1A1dUGYjLALCPKT4Ynfz65aFrlNbMzQxTU0ivgwH9TaD1dZ+qqJNqsDz2e
         3e8g==
X-Gm-Message-State: AOPr4FXXt2iCZ5V14Bv+nj7VPy4NASOS/0UbZsUK1VwEWW0U37VdsXm3c9IJLcrdlhVMFjXhk8Ik7i+A+MjQlA==
X-Received: by 10.112.160.35 with SMTP id xh3mr8273825lbb.86.1461929678890;
 Fri, 29 Apr 2016 04:34:38 -0700 (PDT)
MIME-Version: 1.0
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
Date: Fri, 29 Apr 2016 13:34:19 +0200
Message-ID: <CAKc7PVDAUh=he-N+s1ZSGS8JfuCJ+66EB+bpkmOBhFaKXX-k=A@mail.gmail.com>
Subject: Support for 256 colors in zsh/curses
To: Zsh hackers list <zsh-workers@zsh.org>
Content-Type: multipart/mixed; boundary=001a11c33f1032ece305319e075d
X-Seq: zsh-workers 38356

--001a11c33f1032ece305319e075d
Content-Type: text/plain; charset=UTF-8

Hello,
the existing infrastructure in zsh/curses is quite nice. If user
requests color pair "a/b", it is first looked up in a hash table:

!(cpn = (Colorpairnode) gethashnode2(zcurses_colorpairs, colorpair))) {

if it doesn't exist, then "x/y" (e.g. "red/black") is translated to
corresponding integers, and init_pair is called:

if (next_cp >= COLOR_PAIRS || init_pair(next_cp, f, b) == ERR)  {

where "f" and "b" are the translated integers. The color pair is put
into the hash under "x/y" for future reuse.


To support 256 colors, all I had to do is translate num1/num2 into
f=num1, b=num2, i.e. just directly (classic atoi) translate color
number into integer to be passed to curses as its color number. Not
sure what else can I write, reading the code will reveal how
transparent the change is. Any questions maybe?

Best regards,
Sebastian Gniazdowski

--001a11c33f1032ece305319e075d
Content-Type: text/plain; charset=US-ASCII; name="zshcurses_256colors.patch.txt"
Content-Disposition: attachment; filename="zshcurses_256colors.patch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_inln5s0t0

ZGlmZiAtLWdpdCBhL0RvYy9ac2gvbW9kX2N1cnNlcy55byBiL0RvYy9ac2gvbW9kX2N1cnNlcy55
bwppbmRleCA4MTA0NTcyLi4zOTBmY2U4IDEwMDY0NAotLS0gYS9Eb2MvWnNoL21vZF9jdXJzZXMu
eW8KKysrIGIvRG9jL1pzaC9tb2RfY3Vyc2VzLnlvCkBAIC0xMTEsNyArMTExLDEwIEBAIEVhY2gg
dmFyKGZnX2NvbCl0dCgvKXZhcihiZ19jb2wpIGF0dHJpYnV0ZSAodG8gYmUgcmVhZCBhcwogZm9y
IGNoYXJhY3RlciBvdXRwdXQuICBUaGUgY29sb3IgdHQoZGVmYXVsdCkgaXMgc29tZXRpbWVzIGF2
YWlsYWJsZQogKGluIHBhcnRpY3VsYXIgaWYgdGhlIGxpYnJhcnkgaXMgbmN1cnNlcyksIHNwZWNp
ZnlpbmcgdGhlIGZvcmVncm91bmQKIG9yIGJhY2tncm91bmQgY29sb3Igd2l0aCB3aGljaCB0aGUg
dGVybWluYWwgc3RhcnRlZC4gIFRoZSBjb2xvciBwYWlyCi10dChkZWZhdWx0L2RlZmF1bHQpIGlz
IGFsd2F5cyBhdmFpbGFibGUuCit0dChkZWZhdWx0L2RlZmF1bHQpIGlzIGFsd2F5cyBhdmFpbGFi
bGUuIFRvIHVzZSBtb3JlIHRoYW4gdGhlIDggbmFtZWQKK2NvbG9ycyAocmVkLCBncmVlbiwgZXRj
LikgY29uc3RydWN0IHRoZSB2YXIoZmdfY29sKXR0KC8pdmFyKGJnX2NvbCkKK3BhaXJzIHdpdGgg
bnVtYmVycyBpbiB0aGVtLCBlLmcgdHQoMTI4LzIwMCkuIE1heGltdW0gY29sb3IgbnVtYmVyIGlz
CisyNTQgaWYgdGVybWluYWwgc3VwcG9ydHMgMjU2IGNvbG9ycy4KIAogdHQoYmcpIG92ZXJyaWRl
cyB0aGUgY29sb3IgYW5kIG90aGVyIGF0dHJpYnV0ZXMgb2YgYWxsIGNoYXJhY3RlcnMgaW4gdGhl
CiB3aW5kb3cuICBJdHMgdXN1YWwgdXNlIGlzIHRvIHNldCB0aGUgYmFja2dyb3VuZCBpbml0aWFs
bHksIGJ1dCBpdCB3aWxsCmRpZmYgLS1naXQgYS9TcmMvTW9kdWxlcy9jdXJzZXMuYyBiL1NyYy9N
b2R1bGVzL2N1cnNlcy5jCmluZGV4IDdmZmY4NTguLjYzYzY3NDggMTAwNjQ0Ci0tLSBhL1NyYy9N
b2R1bGVzL2N1cnNlcy5jCisrKyBiL1NyYy9Nb2R1bGVzL2N1cnNlcy5jCkBAIC0zNTAsOCArMzUw
LDIwIEBAIHpjdXJzZXNfY29sb3JnZXQoY29uc3QgY2hhciAqbmFtLCBjaGFyICpjb2xvcnBhaXIp
CiAJfQogCiAJKmJnID0gJ1wwJzsgICAgICAgIAotCWYgPSB6Y3Vyc2VzX2NvbG9yKGNwKTsKLQli
ID0gemN1cnNlc19jb2xvcihiZysxKTsKKworICAgICAgICAvLyBjcC9iZyBjYW4gYmUge251bWJl
cn0ve251bWJlcn0gb3Ige25hbWV9L3tuYW1lfQorCisgICAgICAgIGlmKCBjcFswXSA+PSAnMCcg
JiYgY3BbMF0gPD0gJzknICkgeworICAgICAgICAgICAgZiA9IGF0b2koY3ApOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZiA9IHpjdXJzZXNfY29sb3IoY3ApOworICAgICAgICB9CisK
KyAgICAgICAgaWYoIChiZysxKVswXSA+PSAnMCcgJiYgKGJnKzEpWzBdIDw9ICc5JyApIHsKKyAg
ICAgICAgICAgIGIgPSBhdG9pKGJnKzEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
YiA9IHpjdXJzZXNfY29sb3IoYmcrMSk7CisgICAgICAgIH0KIAogCWlmIChmPT0tMiB8fCBiPT0t
MikgewogCSAgICBpZiAoZiA9PSAtMikK
--001a11c33f1032ece305319e075d
Content-Type: application/octet-stream; name=cursescolors
Content-Disposition: attachment; filename=cursescolors
Content-Transfer-Encoding: base64
X-Attachment-Id: f_inln5s181

IyEvdXNyL2xvY2FsL2Jpbi96c2gtNS4yLWRldi0xCgp6bW9kbG9hZCB6c2gvY3Vyc2VzCgp6Y3Vy
c2VzIGluaXQKCnpjdXJzZXMgYmcgc3Rkc2NyIDEwLzEyIEBfCmZvciAoKCBpID0gMDsgaSA8PSAy
NjA7IGkgKysgKSk7IGRvCiAgICB6Y3Vyc2VzIGF0dHIgc3Rkc2NyICRpL2JsYWNrCiAgICB6Y3Vy
c2VzIHN0cmluZyBzdGRzY3IgJGkiICIKZG9uZQoKemN1cnNlcyByZWZyZXNoIHN0ZHNjcgp6Y3Vy
c2VzIGlucHV0IHN0ZHNjcgp6Y3Vyc2VzIGVuZAo=
--001a11c33f1032ece305319e075d--

