From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15682 invoked by alias); 4 Mar 2017 15:53:30 -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: X-Seq: 40722 Received: (qmail 25652 invoked from network); 4 Mar 2017 15:53:30 -0000 X-Qmail-Scanner-Diagnostics: from new1-smtp.messagingengine.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(66.111.4.221):SA:0(-0.4/5.0):. Processed in 7.658269 secs); 04 Mar 2017 15:53:30 -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=-0.4 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: psprint3@fastmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at spf.messagingengine.com designates 66.111.4.221 as permitted sender) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h= content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= mesmtp; bh=BIsFJwdzsYhhHtv5qz8ZR/US21w=; b=69X9M/LBAqofiVgO2DMSZ 3YAl2tl9IYu95YDczCLp5hzR9CG8VxUMlTqTQ0iMW8tjOq9DOVlYOQMjhgYq4Ik4 aOOBVH5il4cYj/jafDRwNCmzLpYKm785snEylPvK9dW4bzpVYzXg/qr0xCQmVbCf LKs8/wVW/nNn4lPIsASzzY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=smtpout; bh=BIsFJwdzsYhhHtv5qz8ZR/US2 1w=; b=ZawEUUVTn8L41ITrbZeaX7wYs+gBCjqCz1jPKjhHDHo2PsdABx12SG2a/ C9UWPxR6KVWT0J/KN2FB1nObTTHFYPKCoTvbNz75QOAyQvhXAUXuX8OiWPj3zYq7 hN+oVDNetyvUAyNdwY2YjJtZQes6CvbfEnotxlxgFl2MGZGwc8= X-ME-Sender: Message-Id: <1488642798.1756243.900318136.4F132B98@webmail.messagingengine.com> From: Sebastian Gniazdowski To: zsh-workers@zsh.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_148864279817562431" X-Mailer: MessagingEngine.com Webmail Interface - ajax-1f3b8e78 Date: Sat, 04 Mar 2017 07:53:18 -0800 Subject: [PATCH] Zcurses sub-command "resize_term" --_----------=_148864279817562431 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" Hello, thought I need that, turned out it isn't exactly needed. "zcurses end; zcurses refresh;" accomplishes the same goal. More, 5 system configurations confirmed that endwin() before resize_term(); is needed, otherwise moves start to be inaccurate (randomly ignore x position). I think it's a bug in ncurses. Tested OS X ncurses 5.4, Homebrew ncursesw 6.0-2, Arch Linux ncursesw 6.0, Ubuntu 14.04 ncurses 5.9, FreeBSD ncursesw.so.8. So why a new sub-command? For versatility. Some edge situations, future ncurses versions, PDCurses, etc. The sub-command will secure edge cases and new situations. If it has "endwin" third param, it does the needed endwin() and refresh. If "nosave" is used, curses terminal state will not be re-read into internal variable. I can imagine some edge case for that. "endwin_nosave" can be used for both effects. To test resize_term extension availability, 0 for height and width can be given, $? == 0 or $? == 2 are possible results. -- Sebastian Gniazdowski psprint3@fastmail.com --_----------=_148864279817562431 Content-Disposition: attachment; filename="zcurses_resize_term.diff" Content-Id: <1488642693.1755661.7e8ec5bdcfd965ba483c3a12a94008495013e128.75050B43@content.messagingengine.com> Content-Transfer-Encoding: base64 Content-Type: text/plain; name="zcurses_resize_term.diff" ZGlmZiAtLWdpdCBhL0RvYy9ac2gvbW9kX2N1cnNlcy55byBiL0RvYy9ac2gv bW9kX2N1cnNlcy55bwppbmRleCA3MmRjNDA5Li44MjEwM2U0IDEwMDY0NAot LS0gYS9Eb2MvWnNoL21vZF9jdXJzZXMueW8KKysrIGIvRG9jL1pzaC9tb2Rf Y3Vyc2VzLnlvCkBAIC0yNyw3ICsyNyw4IEBAIHhpdGVtKHR0KHpjdXJzZXMp IHR0KHNjcm9sbCkgdmFyKHRhcmdldHdpbikgWyB0dChvbikgfCB0dChvZmYp IHwgW3R0KCspfHR0KC0pXXZhCiB4aXRlbSh0dCh6Y3Vyc2VzKSB0dChpbnB1 dCkgdmFyKHRhcmdldHdpbikgWyB2YXIocGFyYW0pIFsgdmFyKGtwYXJhbSkg WyB2YXIobXBhcmFtKSBdIF0gXSkKIHhpdGVtKHR0KHpjdXJzZXMpIHR0KG1v dXNlKSBbIHR0KGRlbGF5KSB2YXIobnVtKSB8IFt0dCgrKXx0dCgtKV10dCht b3Rpb24pIF0pCiB4aXRlbSh0dCh6Y3Vyc2VzKSB0dCh0aW1lb3V0KSB2YXIo dGFyZ2V0d2luKSB2YXIoaW50dmFsKSkKLWl0ZW0odHQoemN1cnNlcykgdHQo cXVlcnljaGFyKSB2YXIodGFyZ2V0d2luKSBbIHZhcihwYXJhbSkgXSkoCit4 aXRlbSh0dCh6Y3Vyc2VzKSB0dChxdWVyeWNoYXIpIHZhcih0YXJnZXR3aW4p IFsgdmFyKHBhcmFtKSBdKQoraXRlbSh0dCh6Y3Vyc2VzKSB0dChyZXNpemVf dGVybSkgdmFyKGhlaWdodCkgdmFyKHdpZHRoKSBbIHR0KGVuZHdpbikgfCB0 dChub3NhdmUpIHwgdHQoZW5kd2luX25vc2F2ZSkgXSkoCiBNYW5pcHVsYXRl IGN1cnNlcyB3aW5kb3dzLiAgQWxsIHVzZXMgb2YgdGhpcyBjb21tYW5kIHNo b3VsZCBiZQogYnJhY2tldGVkIGJ5IGB0dCh6Y3Vyc2VzIGluaXQpJyB0byBp bml0aWFsaXNlIHVzZSBvZiBjdXJzZXMsIGFuZAogYHR0KHpjdXJzZXMgZW5k KScgdG8gZW5kIGl0OyBvbWl0dGluZyBgdHQoemN1cnNlcyBlbmQpJyBjYW4g Y2F1c2UKQEAgLTIxMSw2ICsyMTIsMjEgQEAgc2Vjb25kIGlzIHRoZSBjb2xv ciBwYWlyIGluIHRoZSB1c3VhbCB2YXIoZmdfY29sKXR0KC8pdmFyKGJnX2Nv bCkKIG5vdGF0aW9uLCBvciB0dCgwKSBpZiBjb2xvciBpcyBub3Qgc3VwcG9y dGVkLiAgQW55IGF0dHJpYnV0ZXMgb3RoZXIgdGhhbgogY29sb3IgdGhhdCBh cHBseSB0byB0aGUgY2hhcmFjdGVyLCBhcyBzZXQgd2l0aCB0aGUgc3ViY29t bWFuZCB0dChhdHRyKSwKIGFwcGVhciBhcyBhZGRpdGlvbmFsIGVsZW1lbnRz LgorCitUaGUgc3ViY29tbWFuZCB0dChyZXNpemVfdGVybSkgcmVzaXplcyB0 dChzdGRzY3IpIGFuZCBhbGwgd2luZG93cyB0bworZ2l2ZW4gZGltZW5zaW9u cyAod2luZG93cyB0aGF0IHN0aWNrIG91dCBmcm9tIHRoZSBuZXcgZGltZW5z aW9ucyBhcmUKK3Jlc2l6ZWQgZG93bikuIFRoZSB1bmRlcmx5aW5nIGN1cnNl cyBleHRlbnNpb24gKHR0KHJlc2l6ZV90ZXJtIGNhbGwpKQorY2FuIGJlIHVu YXZhaWxhYmxlLiBUbyB2ZXJpZnksIHplcm9lcyBjYW4gYmUgdXNlZCBmb3Ig dmFyKGhlaWdodCkgYW5kCit2YXIod2lkdGgpLiBJZiB0aGUgcmVzdWx0IG9m IHRoZSBzdWJjb21tYW5kIGlzIHR0KDApLCByZXNpemVfdGVybSBpcworYXZh aWxhYmxlICh0dCgyKSBvdGhlcndpc2UpLiBUZXN0cyBzaG93IHRoYXQgcmVz aXppbmcgY2FuIGJlIG5vcm1hbGx5CithY2NvbXBsaXNoZWQgYnkgY2FsbGlu ZyB0dCh6Y3Vyc2VzIGVuZCkgYW5kIHR0KHpjdXJzZXMgcmVmcmVzaCkuIFRo ZQordHQocmVzaXplX3Rlcm0pIHN1YmNvbW1hbmQgaXMgcHJvdmlkZWQgZm9y IHZlcnNhdGlsaXR5LiBNdWx0aXBsZQorc3lzdGVtIGNvbmZpZ3VyYXRpb25z IGhhdmUgYmVlbiBjaGVja2VkIGFuZCB0dCh6Y3Vyc2VzIGVuZCkgYW5kCit0 dCh6Y3Vyc2VzIHJlZnJlc2gpIGFyZSBzdGlsbCBuZWVkZWQgZm9yIGNvcnJl Y3QgdGVybWluYWwgc3RhdGUgYWZ0ZXIKK3Jlc2l6ZS4gVG8gaW52b2tlIHRo ZW0gd2l0aCB0dChyZXNpemVfdGVybSksIHVzZSB2YXIoZW5kd2luKSBhcmd1 bWVudC4KK1VzaW5nIHZhcihub3NhdmUpIGFyZ3VtZW50IHdpbGwgY2F1c2Ug bmV3IHRlcm1pbmFsIHN0YXRlIHRvIG5vdCBiZQorc2F2ZWQgaW50ZXJuYWxs eSBieSB0dCh6Y3Vyc2VzKS4gVGhpcyBpcyBhbHNvIHByb3ZpZGVkIGZvciB2 ZXJzYXRpbGl0eQorYW5kIHNob3VsZCBub3JtYWxseSBiZSBub3QgbmVlZGVk LgogKQogZW5kaXRlbSgpCiAKZGlmZiAtLWdpdCBhL1NyYy9Nb2R1bGVzL2N1 cnNlcy5jIGIvU3JjL01vZHVsZXMvY3Vyc2VzLmMKaW5kZXggZDljMTliZC4u ZGNiN2VkMiAxMDA2NDQKLS0tIGEvU3JjL01vZHVsZXMvY3Vyc2VzLmMKKysr IGIvU3JjL01vZHVsZXMvY3Vyc2VzLmMKQEAgLTE0OTAsNiArMTQ5MCw3NCBA QCB6Y2NtZF90b3VjaChjb25zdCBjaGFyICpuYW0sIGNoYXIgKiphcmdzKQog ICAgIHJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQKK3pjY21kX3Jlc2l6 ZV90ZXJtKGNvbnN0IGNoYXIgKm5hbSwgY2hhciAqKmFyZ3MpCit7CisjaWZk ZWYgSEFWRV9SRVNJWkVfVEVSTQorICAgIGludCB5LCB4LCBkb19lbmR3aW49 MCwgZG9fc2F2ZT0xOworICAgIExpbmtOb2RlIHN0ZHNjcl93aW4gPSB6Y3Vy c2VzX2dldHdpbmRvd2J5bmFtZSgic3Rkc2NyIik7CisKKyAgICBpZiAoc3Rk c2NyX3dpbikgeworICAgICAgICB5ID0gYXRvaShhcmdzWzBdKTsKKyAgICAg ICAgeCA9IGF0b2koYXJnc1sxXSk7CisgICAgICAgIGlmIChhcmdzWzJdKSB7 CisgICAgICAgICAgICBpZiAoMCA9PSBzdHJjbXAoYXJnc1syXSwgImVuZHdp biIpKSB7CisgICAgICAgICAgICAgICAgZG9fZW5kd2luPTE7CisgICAgICAg ICAgICB9IGVsc2UgaWYgKDAgPT0gc3RyY21wKGFyZ3NbMl0sICJlbmR3aW5f bm9zYXZlIikpIHsKKyAgICAgICAgICAgICAgICBkb19lbmR3aW49MTsKKyAg ICAgICAgICAgICAgICBkb19zYXZlPTA7CisgICAgICAgICAgICB9IGVsc2Ug aWYgKDAgPT0gc3RyY21wKGFyZ3NbMl0sICJub3NhdmUiKSkgeworICAgICAg ICAgICAgICAgIGRvX3NhdmU9MDsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgendhcm5uYW0obmFtLCAiYHJlc2l6ZV90ZXJtJyBl eHBlY3RzIGBlbmR3aW4nLCBgbm9zYXZlJyBvciBgZW5kd2luX25vc2F2ZScg Zm9yIHRoaXJkIGFyZ3VtZW50LCBpZiBnaXZlbiIpOworICAgICAgICAgICAg fQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHkgPT0gMCAmJiB4ID09IDAg JiYgYXJnc1syXSA9PSBOVUxMKSB7CisgICAgICAgICAgICAvLyBTcGVjaWFs IGNhc2UgdG8ganVzdCB0ZXN0IHRoYXQgY3Vyc2VzIGhhcyByZXNpemVfdGVy bS4gI2lmZGVmCisgICAgICAgICAgICAvLyBIQVZFX1JFU0laRV9URVJNIHdp bGwgcmVzdWx0IGluIHJldHVybiB2YWx1ZSAyIGlmIHJlc2l6ZV90ZXJtCisg ICAgICAgICAgICAvLyBpcyBub3QgYXZhaWxhYmxlLgorICAgICAgICAgICAg cmV0dXJuIDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBX aXRob3V0IHRoaXMgY2FsbCBzb21lIHdpbmRvdyBtb3ZlcyBhcmUgaW5uYWN1 cmF0ZS4gVGVzdGVkIG9uCisgICAgICAgICAgICAvLyBPUyBYIG5jdXJzZXMg NS40LCBIb21lYnJldyBuY3Vyc2VzdyA2LjAtMiwgQXJjaCBMaW51eCBuY3Vy c2VzdworICAgICAgICAgICAgLy8gNi4wLCBVYnVudHUgMTQuMDQgbmN1cnNl cyA1LjksIEZyZWVCU0QgbmN1cnNlc3cuc28uOAorICAgICAgICAgICAgLy8K KyAgICAgICAgICAgIC8vIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgd2hvbGUg cmVzaXplIGdvYWwgY2FuIGJlIChmcm9tIHRlc3RzKQorICAgICAgICAgICAg Ly8gYWNjb21wbGlzaGVkIGJ5IGNhbGxpbmcgZW5kd2luIGFuZCByZWZyZXNo LiBCdXQgdG8gc2VjdXJlIGFueQorICAgICAgICAgICAgLy8gZnV0dXJlIHBy b2JsZW1zLCByZXNpemVfdGVybSBpcyBwcm92aWRlZCwgYW5kIGl0IGlzIGZl YXR1cmVkCisgICAgICAgICAgICAvLyB3aXRoIGVuZHdpbiwgc28gdGhhdCB1 c2VycyBoYXZlIG11bHRpcGxlIG9wdGlvbnMuCisgICAgICAgICAgICBpZiAo ZG9fZW5kd2luKSB7CisgICAgICAgICAgICAgICAgZW5kd2luKCk7CisgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmKCByZXNpemVfdGVybSggeSwg eCApID09IE9LICkgeworICAgICAgICAgICAgICAgIC8vIFRoaW5ncyB3b3Jr IHdpdGhvdXQgdGhpcywgYnV0IHdlIG5lZWQgdG8gZ2V0IG91dCBmcm9tCisg ICAgICAgICAgICAgICAgLy8gZW5kd2luIChpLmUuIGNhbGwgcmVmcmVzaCks IGFuZCBpbiB0aGVvcnkgc3RvcmUgbmV3CisgICAgICAgICAgICAgICAgLy8g Y3Vyc2VzIHN0YXRlICh0aGUgcmVzaXplIG1pZ2h0IGhhdmUgY2hhbmdlZCBp dCksIHdoaWNoCisgICAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIHByZXNl bnRlZCB0byB0ZXJtaW5hbCBvbmx5IGFmdGVyIHJlZnJlc2guCisgICAgICAg ICAgICAgICAgaWYgKGRvX2VuZHdpbiB8fCBkb19zYXZlKSB7CisgICAgICAg ICAgICAgICAgICAgIFpDV2luIHc7CisgICAgICAgICAgICAgICAgICAgIHcg PSAoWkNXaW4pZ2V0ZGF0YShzdGRzY3Jfd2luKTsKKyAgICAgICAgICAgICAg ICAgICAgd25vdXRyZWZyZXNoKHctPndpbik7CisgICAgICAgICAgICAgICAg ICAgIGRvdXBkYXRlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg ICAgICAgICAgaWYgKGRvX3NhdmUpIHsKKyAgICAgICAgICAgICAgICAgICAg Z2V0dHlpbmZvKCZjdXJzZXNfdHR5X3N0YXRlKTsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJu IDE7CisgICAgfQorI2Vsc2UKKyAgICByZXR1cm4gMjsKKyNlbmRpZgorfQog CiAvKioqKioqKioqKioqKioqKioqKioqCiAgIE1haW4gYnVpbHRpbiBoYW5k bGVyCkBAIC0xNTIzLDYgKzE1OTEsNyBAQCBiaW5femN1cnNlcyhjaGFyICpu YW0sIGNoYXIgKiphcmdzLCBVTlVTRUQoT3B0aW9ucyBvcHMpLCBVTlVTRUQo aW50IGZ1bmMpKQogCXsibW91c2UiLCB6Y2NtZF9tb3VzZSwgMCwgLTF9LAog CXsicXVlcnljaGFyIiwgemNjbWRfcXVlcnljaGFyLCAxLCAyfSwKIAl7InRv dWNoIiwgemNjbWRfdG91Y2gsIDEsIC0xfSwKKwl7InJlc2l6ZV90ZXJtIiwg emNjbWRfcmVzaXplX3Rlcm0sIDIsIDN9LAogCXtOVUxMLCAoemNjbWRfdCkw LCAwLCAwfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBi L2NvbmZpZ3VyZS5hYwppbmRleCAwNTUxYTY5Li45MTFjYzQ1IDEwMDY0NAot LS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0xMzA5 LDcgKzEzMDksNyBAQCBBQ19DSEVDS19GVU5DUyhzdHJmdGltZSBzdHJwdGlt ZSBta3RpbWUgdGltZWxvY2FsIFwKIAkgICAgICAgcHV0ZW52IGdldGVudiBz ZXRlbnYgdW5zZXRlbnYgeHdcCiAJICAgICAgIGJyayBzYnJrIFwKIAkgICAg ICAgcGF0aGNvbmYgc3lzY29uZiBcCi0JICAgICAgIHRnZXRlbnQgdGlnZXRm bGFnIHRpZ2V0bnVtIHRpZ2V0c3RyIHNldHVwdGVybSBpbml0c2NyIFwKKwkg ICAgICAgdGdldGVudCB0aWdldGZsYWcgdGlnZXRudW0gdGlnZXRzdHIgc2V0 dXB0ZXJtIGluaXRzY3IgcmVzaXplX3Rlcm0gXAogCSAgICAgICBnZXRjY2hh ciBzZXRjY2hhciB3YWRkd3N0ciB3Z2V0X3djaCB3aW5fd2NoIHVzZV9kZWZh dWx0X2NvbG9ycyBcCiAJICAgICAgIHBjcmVfY29tcGlsZSBwY3JlX3N0dWR5 IHBjcmVfZXhlYyBcCiAJICAgICAgIG5sX2xhbmdpbmZvIFwK --_----------=_148864279817562431--