From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <9front-bounces@9front.inri.net> X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: from 9front.inri.net (9front.inri.net [168.235.81.73]) by inbox.vuxu.org (Postfix) with ESMTP id 3C21D225C1 for ; Sat, 13 Apr 2024 07:00:28 +0200 (CEST) Received: from mail-lf1-f54.google.com ([209.85.167.54]) by 9front; Sat Apr 13 00:59:29 -0400 2024 Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-5171a529224so1912619e87.0 for <9front@9front.org>; Fri, 12 Apr 2024 21:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712984366; x=1713589166; darn=9front.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=YW6jzzQxr2fXR2meXUeC2PEVgWZrv8n8lT+KiPaNeuc=; b=bh0zZJDimhmVpaxQeuL+Y+iNKduogUc9leIPuQSYvCD5yttJn2irInG9LQFFJqfhcW K17kNVgOPrhLLe8UdWYRxgGbmhW33jyQ8I5+75qdiu56qnu1n0Gbhc4FHbY1HdHjIB7s 2L6CfkHVBQ5p78VHrBIb3dguNCQkvwfkIscOBXy5qipFyjsoMKHGpymRCInqxILwcb91 FrIsTw4LLygudIwgh7UDNYTgyACSoszUjJMW3dfUZNxbCEt3A/syNZvj1q3bzijSuYsz fpVRoDgHuNgH3SJKQ5gcAOXCWy0o+NhPE4CdhX0j6OYsCuAKYAe3qYJ3Vh7RdsCdWmru k57w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712984366; x=1713589166; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=YW6jzzQxr2fXR2meXUeC2PEVgWZrv8n8lT+KiPaNeuc=; b=oM3zhk6KMv2wJQmIW7OOwHCjY/hC+nJJe+S9nTg7ZDGzWSoIFhhBxukq3Yt3tJISfp 3YZNEAVgSM+ngfU6e32euAiJjzR5aKGF+PSSrom7cIBgzBHpom9slJhY9YYISgx8BCtO aYDQQXRSrAaILxuYFy3lqLRdl1mm1PGT27Ri0UhPc/IrHOJvYwq8daktTkUxmFA44oYL 0O6IAFl0KySrJcwi0UJ8yo1P/ajs4+Nsp7uInA3ixNpmZKr+0Drb++XmaGZge49R//Q/ v5ZH97ENI5Sh0eC78etmKbbcBU+LWNlAUK1+aHtwHrtFP/Lkt/00KrfjErFFvS4lZuOG /hjA== X-Gm-Message-State: AOJu0Yz1zhPDGKAVH+lKKz4ISoGXWCLdE8gXHwnGXfDVQt5nnY2yquka Wxo6tgeQ0T1yMsSF4cgaElGuBCz4UZDUoIDmAuAm5731ObH0yL3J16gamAkF+loTKi8UxOys8xy 3tRIBpFAT0S+RgNj3TEZOaGyV3al+EHms X-Google-Smtp-Source: AGHT+IHzT5hm+3nxPkKN0Cc1KpXPUdwjtS89o8V8bRQp6HMFIWnlgMUMpBYd5MJgFb6VXK7VBKMtjQsjLvifMP/Rr4Q= X-Received: by 2002:a19:385b:0:b0:513:172d:5b46 with SMTP id d27-20020a19385b000000b00513172d5b46mr2341982lfj.39.1712984366134; Fri, 12 Apr 2024 21:59:26 -0700 (PDT) MIME-Version: 1.0 From: Amavect Date: Fri, 12 Apr 2024 23:59:09 -0500 Message-ID: To: 9front@9front.org Content-Type: multipart/mixed; boundary="000000000000a6cdf70615f34017" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: extended base property control Subject: [9front] [drawterm] [PATCH] fix backspace deleting login prompt Reply-To: 9front@9front.org Precedence: bulk --000000000000a6cdf70615f34017 Content-Type: text/plain; charset="UTF-8" fix backspace deleting login prompt devkbd directly echos to the terminal, but it doesn't know the line buffer length. Instead, let devcons control the echoing. Move kbd functions from devcons into devkbd. Remove kbdputc from fns.h Create consreadkbdline to reduce indentation. Remove the now unneeded precondition in the echo function. Backspace now deletes a UTF-8 codepoint during the login prompt. Visual mismatch may still happen if a codepoint is not a glyph. It's good enough for now. Thanks, Amavect --000000000000a6cdf70615f34017 X-Attachment-Id: f_luxmj1040 Content-Type: multipart/mixed; boundary="upas-ocdzccexqpvfbcqpgrltaofdqk" Content-Disposition: inline This is a multi-part message in MIME format. --upas-ocdzccexqpvfbcqpgrltaofdqk Content-Disposition: inline Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit from postmaster@9front: The following attachment had content that we can't prove to be harmless. To avoid possible automatic execution, we changed the content headers. The original header was: Content-Type: text/x-patch; charset="US-ASCII"; name="0001-fix-backspace-deleting-login-prompt.patch" Content-Disposition: attachment; filename="0001-fix-backspace-deleting-login-prompt.patch" Content-Transfer-Encoding: base64 Content-ID: --upas-ocdzccexqpvfbcqpgrltaofdqk Content-Type: application/octet-stream Content-Disposition: attachment; filename="0001-fix-backspace-deleting-login-prompt.patch.suspect" Content-Transfer-Encoding: base64 RnJvbSA3ZjBmNDIxMGI2MGI5MTIwMzI3MzcxNDZmYjAzNmNlZmQ3MWQ2NzBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWF2ZWN0IDxhbWF2ZWN0QGdtYWlsLmNvbT4KRGF0ZTogRnJp LCAxMiBBcHIgMjAyNCAyMzozODo0MCAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIGZpeCBiYWNrc3Bh Y2UgZGVsZXRpbmcgbG9naW4gcHJvbXB0CgpkZXZrYmQgZGlyZWN0bHkgZWNob3MgdG8gdGhlIHRl cm1pbmFsLApidXQgaXQgZG9lc24ndCBrbm93IHRoZSBsaW5lIGJ1ZmZlciBsZW5ndGguCkluc3Rl YWQsIGxldCBkZXZjb25zIGNvbnRyb2wgdGhlIGVjaG9pbmcuCgpNb3ZlIGtiZCBmdW5jdGlvbnMg ZnJvbSBkZXZjb25zIGludG8gZGV2a2JkLgpSZW1vdmUga2JkcHV0YyBmcm9tIGZucy5oCkNyZWF0 ZSBjb25zcmVhZGtiZGxpbmUgdG8gcmVkdWNlIGluZGVudGF0aW9uLgpSZW1vdmUgdGhlIG5vdyB1 bm5lZWRlZCBwcmVjb25kaXRpb24gaW4gdGhlIGVjaG8gZnVuY3Rpb24uCgpCYWNrc3BhY2Ugbm93 IGRlbGV0ZXMgYSBVVEYtOCBjb2RlcG9pbnQgZHVyaW5nIHRoZSBsb2dpbiBwcm9tcHQuClZpc3Vh bCBtaXNtYXRjaCBtYXkgc3RpbGwgaGFwcGVuIGlmIGEgY29kZXBvaW50IGlzIG5vdCBhIGdseXBo LgpJdCdzIGdvb2QgZW5vdWdoIGZvciBub3cuCi0tLQoga2Vybi9kZXZjb25zLmMgfCAxMzkgKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoga2Vybi9kZXZr YmQuYyAgfCAgNTggKysrKysrKysrKysrKysrKysrKystCiBrZXJuL2Zucy5oICAgICB8ICAgMSAt CiAzIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9rZXJuL2RldmNvbnMuYyBiL2tlcm4vZGV2Y29ucy5jCmluZGV4IDhjOTQ5OTMu LmFhNDQzOGQgMTAwNjQ0Ci0tLSBhL2tlcm4vZGV2Y29ucy5jCisrKyBiL2tlcm4vZGV2Y29ucy5j CkBAIC00LDggKzQsNiBAQAogI2luY2x1ZGUJImZucy5oIgogI2luY2x1ZGUJImVycm9yLmgiCiAK LSNpbmNsdWRlIAkia2V5Ym9hcmQuaCIKLQogI2luY2x1ZGUJPGF1dGhzcnYuaD4KIAogI3VuZGVm IHdyaXRlCkBAIC0yNjcsNjggKzI2NSwxNiBAQCBlY2hvc2NyZWVuKGNoYXIgKmJ1ZiwgaW50IG4p CiBzdGF0aWMgdm9pZAogZWNobyhjaGFyICpidWYsIGludCBuKQogewotCWlmKGtiZC5yYXcpCi0J CXJldHVybjsKIAlpZihzY3JlZW5wdXRzICE9IDApCiAJCWVjaG9zY3JlZW4oYnVmLCBuKTsKIAll bHNlCiAJCXdyaXRlKDEsIGJ1Ziwgbik7CiB9CiAKLXN0YXRpYyBpbnQKLV9rYmRwdXRjKFF1ZXVl ICpxLCBpbnQgYykKLXsKLQljaGFyIGJ1ZltVVEZtYXhdOwotCVJ1bmUgciA9IGM7Ci0JaW50IG47 Ci0KLQlpZigobiA9IHJ1bmV0b2NoYXIoYnVmLCAmcikpID4gMCl7Ci0JCWVjaG8oYnVmLCBuKTsK LQkJcXByb2R1Y2UocSwgYnVmLCBuKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIF9rYmRwdXRj LCBidXQgd2l0aCBjb21wb3NlIHRyYW5zbGF0aW9uICovCi1pbnQKLWtiZHB1dGMoUXVldWUgKnEs IGludCBjKQorc3RhdGljIHZvaWQKK2VjaG9jaGFyKGNoYXIgYykKIHsKLQlzdGF0aWMgaW50IGNv bGxlY3RpbmcsIG5rOwotCXN0YXRpYyBSdW5lIGtjWzVdOwotCWludCBpOwotCi0Jc3dpdGNoKGMp ewotCWNhc2UgMDoKLQljYXNlIEtjYXBzOgotCWNhc2UgS251bToKLQljYXNlIEtzaGlmdDoKLQlj YXNlIEthbHRncjoKLQljYXNlIEttb2Q0OgotCWNhc2UgS2N0bDoKLQkJLyogaWdub3JlIG1vZGlm aWVyczsgc2VlIG5leHRydW5lKCkgb2Yga2JkZnMgKi8KLQkJcmV0dXJuIDA7Ci0KLQljYXNlIEth bHQ6Ci0JCWNvbGxlY3RpbmcgPSAxOwotCQluayA9IDA7Ci0JCXJldHVybiAwOwotCX0KLQotCWlm KCFjb2xsZWN0aW5nKQotCQlyZXR1cm4gX2tiZHB1dGMocSwgYyk7Ci0KLQlrY1tuaysrXSA9IGM7 Ci0JYyA9IGxhdGluMShrYywgbmspOwotCWlmKGMgPCAtMSkgIC8qIG5lZWQgbW9yZSBrZXlzdHJv a2VzICovCi0JCXJldHVybiAwOwotCWlmKGMgIT0gLTEpIC8qIHZhbGlkIHNlcXVlbmNlICovCi0J CV9rYmRwdXRjKHEsIGMpOwotCWVsc2UKLQkJZm9yKGk9MDsgaTxuazsgaSsrKQotCQkJX2tiZHB1 dGMocSwga2NbaV0pOwotCW5rID0gMDsKLQljb2xsZWN0aW5nID0gMDsKLQlyZXR1cm4gMDsKKwll Y2hvKCZjLCAxKTsKIH0KIAogCkBAIC01MTcsMTMgKzQ2Myw1OCBAQCBxcmVhZGNvbnMoUXVldWUg KnEsIGNoYXIgKmJ1ZiwgaW50IG4pCiAJcmV0dXJuIHFyZWFkKHEsIGJ1Ziwgbik7CiB9CiAKK3N0 YXRpYyBsb25nCitjb25zcmVhZGtiZGxpbmUodm9pZCAqYnVmLCBsb25nIG4pCit7CisJY2hhciBj aDsKKwlpbnQgZW9sOworCisJd2hpbGUoIXFjYW5yZWFkKGxpbmVxKSl7CisJCWVvbCA9IDE7CisJ CWlmKHFyZWFkY29ucyhrYmRxLCAmY2gsIDEpID09IDEpeworCQkJZW9sID0gMDsKKwkJCWtiZC5s aW5lW2tiZC54XSA9IGNoOworCQkJc3dpdGNoKGNoKXsKKwkJCWNhc2UgJ1xiJzoKKwkJCQlpZihr YmQueCA+IDApeworCQkJCQlrYmQueC0tOworCQkJCQkvKiBhdHRlbXB0IGRlbGV0aW5nIGEgY29k ZXBvaW50ICovCisJCQkJCXdoaWxlKGtiZC54ID4gMCAmJiBrYmQubGluZVtrYmQueF0gPCAoY2hh ciktMHg0MCkKKwkJCQkJCWtiZC54LS07CisJCQkJCS8qIGNvZGVwb2ludCA9PSBnbHlwaD8gT25l IGNhbiBob3BlLi4uICovCisJCQkJCWVjaG9jaGFyKGNoKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJ CQljYXNlIDB4MTU6CisJCQkJa2JkLnggPSAwOworCQkJCWJyZWFrOworCQkJY2FzZSAnXG4nOgor CQkJCWtiZC54Kys7CisJCQkJZWNob2NoYXIoY2gpOworCQkJCS8qIGZhbGx0aHJvdWdoICovCisJ CQljYXNlIDB4MDQ6CisJCQkJZW9sID0gMTsKKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJ a2JkLngrKzsKKwkJCQllY2hvY2hhcihjaCk7CisJCQl9CisJCX0KKwkJaWYoa2JkLnggPT0gc2l6 ZW9mKGtiZC5saW5lKSB8fCBlb2wpeworCQkJcXdyaXRlKGxpbmVxLCBrYmQubGluZSwga2JkLngp OworCQkJa2JkLnggPSAwOworCQl9CisJfQorCXJldHVybiBxcmVhZChsaW5lcSwgYnVmLCBuKTsK K30KKwogc3RhdGljIGxvbmcKIGNvbnNyZWFkKENoYW4gKmMsIHZvaWQgKmJ1ZiwgbG9uZyBuLCB2 bG9uZyBvZmYpCiB7CiAJY2hhciAqYjsKIAljaGFyIHRtcFsxMjhdOwkJLyogbXVzdCBiZSA+PSA2 Kk5VTVNJWkUgKi8KIAljaGFyICpjYnVmID0gYnVmOwotCWludCBjaCwgaSwgZW9sOworCWludCBp OwogCXZsb25nIG9mZnNldCA9IG9mZjsKIAogCWlmKG4gPD0gMCkKQEAgLTU1MCwzNiArNTQxLDgg QEAgY29uc3JlYWQoQ2hhbiAqYywgdm9pZCAqYnVmLCBsb25nIG4sIHZsb25nIG9mZikKIAkJCQl9 IHdoaWxlIChuPjAgJiYgcWNhbnJlYWQoa2JkcSkpOwogCQkJCW4gPSBjYnVmIC0gKGNoYXIqKWJ1 ZjsKIAkJCX0KLQkJfSBlbHNlIHsKLQkJCXdoaWxlKCFxY2FucmVhZChsaW5lcSkpIHsKLQkJCQll b2wgPSAxOwotCQkJCWlmKHFyZWFkY29ucyhrYmRxLCAma2JkLmxpbmVba2JkLnhdLCAxKSA9PSAx KXsKLQkJCQkJZW9sID0gMDsKLQkJCQkJY2ggPSBrYmQubGluZVtrYmQueF07Ci0JCQkJCXN3aXRj aChjaCl7Ci0JCQkJCWNhc2UgJ1xiJzoKLQkJCQkJCWlmKGtiZC54KQotCQkJCQkJCWtiZC54LS07 Ci0JCQkJCQlicmVhazsKLQkJCQkJY2FzZSAweDE1OgotCQkJCQkJa2JkLnggPSAwOwotCQkJCQkJ YnJlYWs7Ci0JCQkJCWNhc2UgJ1xuJzoKLQkJCQkJCWtiZC54Kys7Ci0JCQkJCWNhc2UgMHgwNDoK LQkJCQkJCWVvbCA9IDE7Ci0JCQkJCQlicmVhazsKLQkJCQkJZGVmYXVsdDoKLQkJCQkJCWtiZC54 Kys7Ci0JCQkJCX0KLQkJCQl9Ci0JCQkJaWYoa2JkLnggPT0gc2l6ZW9mKGtiZC5saW5lKSB8fCBl b2wpewotCQkJCQlxd3JpdGUobGluZXEsIGtiZC5saW5lLCBrYmQueCk7Ci0JCQkJCWtiZC54ID0g MDsKLQkJCQl9Ci0JCQl9Ci0JCQluID0gcXJlYWQobGluZXEsIGJ1Ziwgbik7Ci0JCX0KKwkJfSBl bHNlCisJCQluID0gY29uc3JlYWRrYmRsaW5lKGJ1Ziwgbik7CiAJCXF1bmxvY2soJmtiZC5sayk7 CiAJCXBvcGVycm9yKCk7CiAJCXJldHVybiBuOwpkaWZmIC0tZ2l0IGEva2Vybi9kZXZrYmQuYyBi L2tlcm4vZGV2a2JkLmMKaW5kZXggZTA5MjFlMi4uNmZlMzE0MyAxMDA2NDQKLS0tIGEva2Vybi9k ZXZrYmQuYworKysgYi9rZXJuL2RldmtiZC5jCkBAIC00LDkgKzQsNjUgQEAKICNpbmNsdWRlCSJm bnMuaCIKICNpbmNsdWRlCSJlcnJvci5oIgogCisjaW5jbHVkZSAJImtleWJvYXJkLmgiCisKIHN0 YXRpYyBRdWV1ZSoJa2V5cTsKIHN0YXRpYyBpbnQga2JkaW51c2U7CiAKK3N0YXRpYyBpbnQKK19r YmRwdXRjKFF1ZXVlICpxLCBpbnQgYykKK3sKKwljaGFyIGJ1ZltVVEZtYXhdOworCVJ1bmUgciA9 IGM7CisJaW50IG47CisKKwlpZigobiA9IHJ1bmV0b2NoYXIoYnVmLCAmcikpID4gMCkKKwkJcXBy b2R1Y2UocSwgYnVmLCBuKTsKKwlyZXR1cm4gMDsKK30KKworLyogX2tiZHB1dGMsIGJ1dCB3aXRo IGNvbXBvc2UgdHJhbnNsYXRpb24gKi8KK3N0YXRpYyBpbnQKK2tiZHB1dGMoUXVldWUgKnEsIGlu dCBjKQoreworCXN0YXRpYyBpbnQgY29sbGVjdGluZywgbms7CisJc3RhdGljIFJ1bmUga2NbNV07 CisJaW50IGk7CisKKwlzd2l0Y2goYyl7CisJY2FzZSAwOgorCWNhc2UgS2NhcHM6CisJY2FzZSBL bnVtOgorCWNhc2UgS3NoaWZ0OgorCWNhc2UgS2FsdGdyOgorCWNhc2UgS21vZDQ6CisJY2FzZSBL Y3RsOgorCQkvKiBpZ25vcmUgbW9kaWZpZXJzOyBzZWUgbmV4dHJ1bmUoKSBvZiBrYmRmcyAqLwor CQlyZXR1cm4gMDsKKworCWNhc2UgS2FsdDoKKwkJY29sbGVjdGluZyA9IDE7CisJCW5rID0gMDsK KwkJcmV0dXJuIDA7CisJfQorCisJaWYoIWNvbGxlY3RpbmcpCisJCXJldHVybiBfa2JkcHV0Yyhx LCBjKTsKKworCWtjW25rKytdID0gYzsKKwljID0gbGF0aW4xKGtjLCBuayk7CisJaWYoYyA8IC0x KSAgLyogbmVlZCBtb3JlIGtleXN0cm9rZXMgKi8KKwkJcmV0dXJuIDA7CisJaWYoYyAhPSAtMSkg LyogdmFsaWQgc2VxdWVuY2UgKi8KKwkJX2tiZHB1dGMocSwgYyk7CisJZWxzZQorCQlmb3IoaT0w OyBpPG5rOyBpKyspCisJCQlfa2JkcHV0YyhxLCBrY1tpXSk7CisJbmsgPSAwOworCWNvbGxlY3Rp bmcgPSAwOworCXJldHVybiAwOworfQorCiB2b2lkCiBrYmRrZXkoUnVuZSByLCBpbnQgZG93bikK IHsKQEAgLTE3LDcgKzczLDcgQEAga2Jka2V5KFJ1bmUgciwgaW50IGRvd24pCiAKIAlpZigha2Jk aW51c2UgfHwga2V5cSA9PSBuaWwpewogCQlpZihkb3duKQotCQkJa2JkcHV0YyhrYmRxLCByKTsJ LyogL2Rldi9jb25zICovCisJCQlrYmRwdXRjKGtiZHEsIHIpOwogCQlyZXR1cm47CiAJfQogCmRp ZmYgLS1naXQgYS9rZXJuL2Zucy5oIGIva2Vybi9mbnMuaAppbmRleCBmMjY3NzgxLi5lMWZhMDQx IDEwMDY0NAotLS0gYS9rZXJuL2Zucy5oCisrKyBiL2tlcm4vZm5zLmgKQEAgLTc4LDcgKzc4LDYg QEAgaW50CQlpcHJpbnQoY2hhciosIC4uLik7CiB2b2lkCQlpc2RpcihDaGFuKik7CiBpbnQJCWlz ZXZlKHZvaWQpOwogI2RlZmluZQlpc2xvKCkJKDApCi1pbnQJCWtiZHB1dGMoUXVldWUqLCBpbnQp Owogdm9pZAkJa2Jka2V5KFJ1bmUsIGludCk7CiBpbnQJCWtwcm9jKGNoYXIqLCB2b2lkKCopKHZv aWQqKSwgdm9pZCopOwogdm9pZAkJa3NldGVudihjaGFyKiwgY2hhciosIGludCk7Ci0tIAoyLjQ0 LjAKCg== --upas-ocdzccexqpvfbcqpgrltaofdqk-- --000000000000a6cdf70615f34017--