From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 12 16:53:09 2014 Received: (at submit) by debbugs.gnu.org; 12 Jul 2014 20:53:09 +0000 Received: from localhost ([127.0.0.1]:40973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X64I7-0000qx-U9 for submit@debbugs.gnu.org; Sat, 12 Jul 2014 16:53:08 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47822) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X64I3-0000qM-Ik for submit@debbugs.gnu.org; Sat, 12 Jul 2014 16:53:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X64Hs-0004c3-LU for submit@debbugs.gnu.org; Sat, 12 Jul 2014 16:52:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:47701) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X64Hs-0004bx-Ic for submit@debbugs.gnu.org; Sat, 12 Jul 2014 16:52:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49395) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X64Hn-0007UL-AT for bug-gnu-emacs@gnu.org; Sat, 12 Jul 2014 16:52:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X64Hh-0004WJ-TC for bug-gnu-emacs@gnu.org; Sat, 12 Jul 2014 16:52:47 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:44404) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X64Hh-0004RX-IM for bug-gnu-emacs@gnu.org; Sat, 12 Jul 2014 16:52:41 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 1F12AA60004 for ; Sat, 12 Jul 2014 13:52:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vo-iWnH7flF3 for ; Sat, 12 Jul 2014 13:52:28 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id BA72BA60006 for ; Sat, 12 Jul 2014 13:52:28 -0700 (PDT) Message-ID: <53C1A00C.6050906@cs.ucla.edu> Date: Sat, 12 Jul 2014 13:52:28 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Emacs bug reports and feature requests Subject: Simplify via set_binary_mode Content-Type: multipart/mixed; boundary="------------010205020604060203060009" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) This is a multi-part message in MIME format. --------------010205020604060203060009 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Tags: patch Attached is a proposed minor simplification to have Emacs use set_binary_mode more consistently. I'm filing this as a bug report to give Eli a heads-up, as it affects the Microsoft ports. This is relative to trunk bzr 117525. --------------010205020604060203060009 Content-Type: text/plain; charset=UTF-8; name="binary-io.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="binary-io.patch" PT09IG1vZGlmaWVkIGZpbGUgJ2FkbWluL0NoYW5nZUxvZycKLS0tIGFkbWluL0NoYW5nZUxv ZwkyMDE0LTA2LTMwIDAwOjAxOjUxICswMDAwCisrKyBhZG1pbi9DaGFuZ2VMb2cJMjAxNC0w Ny0xMiAyMDo0Nzo1MCArMDAwMApAQCAtMSwzICsxLDkgQEAKKzIwMTQtMDctMTIgIFBhdWwg RWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUu CisJKiBtZXJnZS1nbnVsaWIgKEdOVUxJQl9NT0RVTEVTKTogQWRkIGJpbmFyeS1pby4gIEl0 IHdhcyBhbHJlYWR5CisJcHJlc2VudCBpbXBsaWNpdGx5OyB0aGlzIGp1c3QgbWFrZXMgdGhl IGRlcGVuZGVuY2UgZXhwbGljaXQuCisKIDIwMTQtMDYtMzAgIEdsZW5uIE1vcnJpcyAgPHJn bUBnbnUub3JnPgogCiAJKiB1cGRhdGVfYXV0b2dlbjogRmluZCBsb2FkZGVmcyB0YXJnZXRz IHJhdGhlciB0aGFuCgo9PT0gbW9kaWZpZWQgZmlsZSAnYWRtaW4vbWVyZ2UtZ251bGliJwot LS0gYWRtaW4vbWVyZ2UtZ251bGliCTIwMTQtMDUtMTcgMDg6MTE6MzEgKzAwMDAKKysrIGFk bWluL21lcmdlLWdudWxpYgkyMDE0LTA3LTEyIDIwOjQ3OjUwICswMDAwCkBAIC0yNiw3ICsy Niw3IEBACiBHTlVMSUJfVVJMPWdpdDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dudWxpYi5n aXQKIAogR05VTElCX01PRFVMRVM9JwotICBhbGxvY2Etb3B0IGJ5dGVzd2FwIGMtY3R5cGUg Yy1zdHJjYXNlCisgIGFsbG9jYS1vcHQgYmluYXJ5LWlvIGJ5dGVzd2FwIGMtY3R5cGUgYy1z dHJjYXNlCiAgIGNhcmVhZGxpbmthdCBjbG9zZS1zdHJlYW0gY291bnQtb25lLWJpdHMgY291 bnQtdHJhaWxpbmctemVyb3MKICAgY3J5cHRvL21kNSBjcnlwdG8vc2hhMSBjcnlwdG8vc2hh MjU2IGNyeXB0by9zaGE1MTIKICAgZHRvYXN0ciBkdG90aW1lc3BlYyBkdXAyIGVudmlyb24g ZXhlY2luZm8gZmFjY2Vzc2F0Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGliLXNyYy9DaGFuZ2VM b2cnCi0tLSBsaWItc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEyIDE3OjUzOjI5ICswMDAwCisr KyBsaWItc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEyIDIwOjQ3OjUwICswMDAwCkBAIC0xLDUg KzEsMTAgQEAKIDIwMTQtMDctMTIgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgogCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUuCisJKiBoZXhsLmMsIG1ha2UtZG9jZmlsZS5j OgorCUluY2x1ZGUgYmluYXJ5LWlvLmggaW5zdGVhZCBvZiBmY250bC5oIGFuZC9vciBpby5o LgorCShtYWluKTogVXNlIHNldF9iaW5hcnlfbW9kZSBpbiBwbGFjZSBvZiBoYW5kY3JhZnRl ZCBjb2RlLgorCiAJKiBldGFncy5jIChMaXNwX2Z1bmN0aW9ucyk6IEFsc28gcmVjb3JkIGNs LWRlZnVuIGV0Yy4gKEJ1ZyMxNzk2NSkKIAogMjAxNC0wNi0yNiAgR2xlbm4gTW9ycmlzICA8 cmdtQGdudS5vcmc+Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGliLXNyYy9oZXhsLmMnCi0tLSBs aWItc3JjL2hleGwuYwkyMDE0LTAxLTAxIDA3OjQzOjM0ICswMDAwCisrKyBsaWItc3JjL2hl eGwuYwkyMDE0LTA3LTEyIDIwOjQ3OjUwICswMDAwCkBAIC0yNCwxNSArMjQsOCBAQAogCiAj aW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxjdHlwZS5oPgotI2lmZGVmIERPU19OVAot I2luY2x1ZGUgPGZjbnRsLmg+Ci0jaWYgX19ESkdQUF9fID49IDIKLSNpbmNsdWRlIDxpby5o PgotI2VuZGlmCi0jZW5kaWYKLSNpZmRlZiBXSU5ET1dTTlQKLSNpbmNsdWRlIDxpby5oPgot I2VuZGlmCisKKyNpbmNsdWRlIDxiaW5hcnktaW8uaD4KIAogI2RlZmluZSBERUZBVUxUX0dS T1VQSU5HCTB4MDEKICNkZWZpbmUgREVGQVVMVF9CQVNFCQkxNgpAQCAtMTU1LDIwICsxNDgs MTIgQEAKIAogICAgICAgaWYgKHVuX2ZsYWcpCiAJewotCSAgY2hhciBidWZbMThdOworCSAg c2V0X2JpbmFyeV9tb2RlIChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKIAotI2lmZGVm IERPU19OVAotI2lmIChfX0RKR1BQX18gPj0gMikgfHwgKGRlZmluZWQgV0lORE9XU05UKQot ICAgICAgICAgIGlmICghaXNhdHR5IChmaWxlbm8gKHN0ZG91dCkpKQotCSAgICBzZXRtb2Rl IChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKLSNlbHNlCi0JICAoc3Rkb3V0KS0+X2Zs YWcgJj0gfl9JT1RFWFQ7IC8qIHByaW50IGJpbmFyeSAqLwotCSAgX3NldG1vZGUgKGZpbGVu byAoc3Rkb3V0KSwgT19CSU5BUlkpOwotI2VuZGlmCi0jZW5kaWYKIAkgIGZvciAoOzspCiAJ ICAgIHsKLQkgICAgICByZWdpc3RlciBpbnQgaSwgYyA9IDAsIGQ7CisJICAgICAgaW50IGks IGMgPSAwLCBkOworCSAgICAgIGNoYXIgYnVmWzE4XTsKIAogI2RlZmluZSBoZXhjaGFyKHgp IChpc2RpZ2l0ICh4KSA/IHggLSAnMCcgOiB4IC0gJ2EnICsgMTApCiAKQEAgLTIxMCwxNSAr MTk1LDcgQEAKIAl9CiAgICAgICBlbHNlCiAJewotI2lmZGVmIERPU19OVAotI2lmIChfX0RK R1BQX18gPj0gMikgfHwgKGRlZmluZWQgV0lORE9XU05UKQotICAgICAgICAgIGlmICghaXNh dHR5IChmaWxlbm8gKGZwKSkpCi0JICAgIHNldG1vZGUgKGZpbGVubyAoZnApLCBPX0JJTkFS WSk7Ci0jZWxzZQotCSAgKGZwKS0+X2ZsYWcgJj0gfl9JT1RFWFQ7IC8qIHJlYWQgYmluYXJ5 ICovCi0JICBfc2V0bW9kZSAoZmlsZW5vIChmcCksIE9fQklOQVJZKTsKLSNlbmRpZgotI2Vu ZGlmCisJICBzZXRfYmluYXJ5X21vZGUgKGZpbGVubyAoZnApLCBPX0JJTkFSWSk7CiAJICBh ZGRyZXNzID0gMDsKIAkgIHN0cmluZ1swXSA9ICcgJzsKIAkgIHN0cmluZ1sxN10gPSAnXDAn OwoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpYi1zcmMvbWFrZS1kb2NmaWxlLmMnCi0tLSBsaWIt c3JjL21ha2UtZG9jZmlsZS5jCTIwMTQtMDYtMTcgMTY6MDk6MTkgKzAwMDAKKysrIGxpYi1z cmMvbWFrZS1kb2NmaWxlLmMJMjAxNC0wNy0xMiAyMDo0Nzo1MCArMDAwMApAQCAtMzgsMTcg KzM4LDE2IEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPiAg IC8qIGNvbmZpZy5oIHVuY29uZGl0aW9uYWxseSBpbmNsdWRlcyB0aGlzIGFueXdheSAqLwot I2lmZGVmIE1TRE9TCi0jaW5jbHVkZSA8ZmNudGwuaD4KLSNlbmRpZiAvKiBNU0RPUyAqLwor CiAjaWZkZWYgV0lORE9XU05UCiAvKiBEZWZpbmVkIHRvIGJlIHN5c19mb3BlbiBpbiBtcy13 MzIuaCwgYnV0IG9ubHkgI2lmZGVmIGVtYWNzLCBzbyB0aGlzCiAgICBpcyByZWFsbHkganVz dCBpbnN1cmFuY2UuICAqLwogI3VuZGVmIGZvcGVuCi0jaW5jbHVkZSA8ZmNudGwuaD4KICNp bmNsdWRlIDxkaXJlY3QuaD4KICNlbmRpZiAvKiBXSU5ET1dTTlQgKi8KIAorI2luY2x1ZGUg PGJpbmFyeS1pby5oPgorCiAjaWZkZWYgRE9TX05UCiAvKiBEZWZpbmVkIHRvIGJlIHN5c19j aGRpciBpbiBtcy13MzIuaCwgYnV0IG9ubHkgI2lmZGVmIGVtYWNzLCBzbyB0aGlzCiAgICBp cyByZWFsbHkganVzdCBpbnN1cmFuY2UuCkBAIC0xMzgsMTkgKzEzNyw3IEBACiAgIG91dGZp bGUgPSBzdGRvdXQ7CiAKICAgLyogRG9uJ3QgcHV0IENScyBpbiB0aGUgRE9DIGZpbGUuICAq LwotI2lmZGVmIE1TRE9TCi0gIF9mbW9kZSA9IE9fQklOQVJZOwotI2lmIDAgIC8qIFN1c3Bp Y2lvbiBpcyB0aGF0IHRoaXMgY2F1c2VzIGhhbmdpbmcuCi0JICBTbyBpbnN0ZWFkIHdlIHJl cXVpcmUgcGVvcGxlIHRvIHVzZSAtbyBvbiBNU0RPUy4gICovCi0gIChzdGRvdXQpLT5fZmxh ZyAmPSB+X0lPVEVYVDsKLSAgX3NldG1vZGUgKGZpbGVubyAoc3Rkb3V0KSwgT19CSU5BUlkp OwotI2VuZGlmCi0gIG91dGZpbGUgPSAwOwotI2VuZGlmIC8qIE1TRE9TICovCi0jaWZkZWYg V0lORE9XU05UCi0gIF9mbW9kZSA9IE9fQklOQVJZOwotICBfc2V0bW9kZSAoZmlsZW5vIChz dGRvdXQpLCBPX0JJTkFSWSk7Ci0jZW5kaWYgLyogV0lORE9XU05UICovCisgIHNldF9iaW5h cnlfbW9kZSAoZmlsZW5vIChzdGRvdXQpLCBPX0JJTkFSWSk7CiAKICAgLyogSWYgZmlyc3Qg dHdvIGFyZ3MgYXJlIC1vIEZJTEUsIG91dHB1dCB0byBGSUxFLiAgKi8KICAgaSA9IDE7Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3JjL0NoYW5nZUxvZycKLS0tIHNyYy9DaGFuZ2VMb2cJMjAx NC0wNy0xMiAxNzo1MzoyOSArMDAwMAorKysgc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEyIDIw OjQ3OjUwICswMDAwCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTQtMDctMTIgIFBhdWwgRWdnZXJ0 ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUuCisJKiBt aW5pYnVmLmM6IEluY2x1ZGUgYmluYXJ5LWlvLmggaW5zdGVhZCBvZiBmY250bC5oLgorCShy ZWFkX21pbmlidWZfbm9uaW50ZXJhY3RpdmUpOgorCVVzZSBzZXRfYmluYXJ5X21vZGUgaW5z dGVhZCBvZiBoYW5kY3JhZnRlZCBjb2RlLgorCSogc3lzZGVwLmMsIHN5c3R0eS5oIChlbWFj c19nZXRfdHR5KTogUmV0dXJuIGludCwgbm90IHZvaWQuCisKIDIwMTQtMDctMTIgIEVsaSBa YXJldHNraWkgIDxlbGl6QGdudS5vcmc+CiAKIAkqIHhkaXNwLmMgKGRpc3BsYXlfbGluZSk6 IERvbid0IGNhbGwgRkVUQ0hfQllURSB3aXRoIGFyZ3VtZW50IGxlc3MKCj09PSBtb2RpZmll ZCBmaWxlICdzcmMvbWluaWJ1Zi5jJwotLS0gc3JjL21pbmlidWYuYwkyMDE0LTA3LTEyIDA3 OjQ3OjQwICswMDAwCisrKyBzcmMvbWluaWJ1Zi5jCTIwMTQtMDctMTIgMjA6NDc6NTAgKzAw MDAKQEAgLTIyLDkgKzIyLDcgQEAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPHN0 ZGlvLmg+CiAKLSNpZmRlZiBXSU5ET1dTTlQKLSNpbmNsdWRlIDxmY250bC5oPgkvKiBGb3Ig T19CSU5BUlksIE9fVEVYVC4gKi8KLSNlbmRpZgorI2luY2x1ZGUgPGJpbmFyeS1pby5oPgog CiAjaW5jbHVkZSAibGlzcC5oIgogI2luY2x1ZGUgImNvbW1hbmRzLmgiCkBAIC0yMzksMTEg KzIzNyw4IEBACiAgIC8qIE1hbmlwdWxhdGUgdHR5LiAgKi8KICAgaWYgKGhpZGVfY2hhcikK ICAgICB7Ci0gICAgICBlbWFjc19nZXRfdHR5IChmaWxlbm8gKHN0ZGluKSwgJmV0dHkpOwot I2lmZGVmIFdJTkRPV1NOVAotICAgICAgaWYgKGlzYXR0eSAoZmlsZW5vIChzdGRpbikpKQot CV9zZXRtb2RlIChmaWxlbm8gKHN0ZGluKSwgT19CSU5BUlkpOwotI2VuZGlmCisgICAgICBp ZiAoZW1hY3NfZ2V0X3R0eSAoZmlsZW5vIChzdGRpbiksICZldHR5KSA9PSAwKQorCXNldF9i aW5hcnlfbW9kZSAoZmlsZW5vIChzdGRpbiksIE9fQklOQVJZKTsKICAgICAgIHN1cHByZXNz X2VjaG9fb25fdHR5IChmaWxlbm8gKHN0ZGluKSk7CiAgICAgfQogCkBAIC0yODEsMTEgKzI3 Niw4IEBACiAgIGlmIChoaWRlX2NoYXIpCiAgICAgewogICAgICAgZnByaW50ZiAoc3Rkb3V0 LCAiXG4iKTsKLSAgICAgIGVtYWNzX3NldF90dHkgKGZpbGVubyAoc3RkaW4pLCAmZXR0eSwg MCk7Ci0jaWZkZWYgV0lORE9XU05UCi0gICAgICBpZiAoaXNhdHR5IChmaWxlbm8gKHN0ZGlu KSkpCi0JX3NldG1vZGUgKGZpbGVubyAoc3RkaW4pLCBPX1RFWFQpOwotI2VuZGlmCisgICAg ICBpZiAoZW1hY3Nfc2V0X3R0eSAoZmlsZW5vIChzdGRpbiksICZldHR5LCAwKSA9PSAwKQor CXNldF9iaW5hcnlfbW9kZSAoZmlsZW5vIChzdGRpbiksIE9fVEVYVCk7CiAgICAgfQogCiAg IGlmIChsZW4gfHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1xyJykKCj09PSBtb2RpZmllZCBmaWxl ICdzcmMvc3lzZGVwLmMnCi0tLSBzcmMvc3lzZGVwLmMJMjAxNC0wNy0xMSAxNzo1NToyNCAr MDAwMAorKysgc3JjL3N5c2RlcC5jCTIwMTQtMDctMTIgMjA6NDc6NTAgKzAwMDAKQEAgLTc3 NSw4ICs3NzUsOSBAQAogLyogR2V0dGluZyBhbmQgc2V0dGluZyBlbWFjc190dHkgc3RydWN0 dXJlcy4gICovCiAKIC8qIFNldCAqVEMgdG8gdGhlIHBhcmFtZXRlcnMgYXNzb2NpYXRlZCB3 aXRoIHRoZSB0ZXJtaW5hbCBGRCwKLSAgIG9yIGNsZWFyIGl0IGlmIHRoZSBwYXJhbWV0ZXJz IGFyZSBub3QgYXZhaWxhYmxlLiAgKi8KLXZvaWQKKyAgIG9yIGNsZWFyIGl0IGlmIHRoZSBw YXJhbWV0ZXJzIGFyZSBub3QgYXZhaWxhYmxlLgorICAgUmV0dXJuIDAgb24gc3VjY2Vzcywg LTEgKHNldHRpbmcgZXJybm8pIG9uIGZhaWx1cmUuICAqLworaW50CiBlbWFjc19nZXRfdHR5 IChpbnQgZmQsIHN0cnVjdCBlbWFjc190dHkgKnNldHRpbmdzKQogewogICAvKiBSZXRyaWV2 ZSB0aGUgcHJpbWFyeSBwYXJhbWV0ZXJzIC0gYmF1ZCByYXRlLCBjaGFyYWN0ZXIgc2l6ZSwg ZXRjZXRlcmEuICAqLwpAQCAtNzkyLDkgKzc5MywxMCBAQAogCXNldHRpbmdzLT5tYWluID0g Y29uc29sZV9tb2RlOwogICAgIH0KICNlbmRpZgkvKiBXSU5ET1dTTlQgKi8KKyAgcmV0dXJu IGlzYXR0eSAoZmQpIC0gMTsKICNlbHNlCS8qICFET1NfTlQgKi8KICAgLyogV2UgaGF2ZSB0 aG9zZSBuaWZ0eSBQT1NJWCB0Y211bWJsZWF0dHIgZnVuY3Rpb25zLiAgKi8KLSAgdGNnZXRh dHRyIChmZCwgJnNldHRpbmdzLT5tYWluKTsKKyAgcmV0dXJuIHRjZ2V0YXR0ciAoZmQsICZz ZXR0aW5ncy0+bWFpbik7CiAjZW5kaWYKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9z eXN0dHkuaCcKLS0tIHNyYy9zeXN0dHkuaAkyMDE0LTA3LTExIDE3OjU1OjI0ICswMDAwCisr KyBzcmMvc3lzdHR5LmgJMjAxNC0wNy0xMiAyMDo0Nzo1MCArMDAwMApAQCAtODAsNyArODAs NyBAQAogfTsKIAwKIC8qIEZyb20gc3lzZGVwLmMgb3IgdzMyLmMgICovCi1leHRlcm4gdm9p ZCBlbWFjc19nZXRfdHR5IChpbnQsIHN0cnVjdCBlbWFjc190dHkgKikgRVhURVJOQUxMWV9W SVNJQkxFOworZXh0ZXJuIGludCBlbWFjc19nZXRfdHR5IChpbnQsIHN0cnVjdCBlbWFjc190 dHkgKikgRVhURVJOQUxMWV9WSVNJQkxFOwogZXh0ZXJuIGludCBlbWFjc19zZXRfdHR5IChp bnQsIHN0cnVjdCBlbWFjc190dHkgKiwgYm9vbCkgRVhURVJOQUxMWV9WSVNJQkxFOwogZXh0 ZXJuIHZvaWQgc3VwcHJlc3NfZWNob19vbl90dHkgKGludCk7CiBleHRlcm4gaW50IHNlcmlh bF9vcGVuIChMaXNwX09iamVjdCk7Cgo= --------------010205020604060203060009-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 13 00:20:28 2014 Received: (at 18006) by debbugs.gnu.org; 13 Jul 2014 04:20:28 +0000 Received: from localhost ([127.0.0.1]:53399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6BH1-0002Ou-KC for submit@debbugs.gnu.org; Sun, 13 Jul 2014 00:20:28 -0400 Received: from mtaout25.012.net.il ([80.179.55.181]:38751) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6BGx-0002OZ-PH for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 00:20:25 -0400 Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0N8M00E00UCDDN00@mtaout25.012.net.il> for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 07:15:59 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N8M00964UINFI50@mtaout25.012.net.il>; Sun, 13 Jul 2014 07:15:59 +0300 (IDT) Date: Sun, 13 Jul 2014 07:20:26 +0300 From: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode In-reply-to: <53C1A00C.6050906@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <837g3hanzp.fsf@gnu.org> References: <53C1A00C.6050906@cs.ucla.edu> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 12 Jul 2014 13:52:28 -0700 > From: Paul Eggert > > Attached is a proposed minor simplification to have Emacs use > set_binary_mode more consistently. I'm filing this as a bug report to > give Eli a heads-up, as it affects the Microsoft ports. This is > relative to trunk bzr 117525. Thanks. However, I don't understand what is the purpose of this patch. If we want to clean up uses of setmode and related issues, I'm all for it (some of that code is old and unnecessary). But then the Gnulib binary-io module is not the answer, or at least not all of it. Some of the reasons: . in some places, we want all file I/O to be in binary mode; Gnulib doesn't support that . some of the code needs to switch a file descriptor to binary or text mode only when the descriptor is or isn't connected to a terminal device; Gnulib is ambivalent about that (it always does that for MSDOS, and never for Windows) . AFAIK, Gnulib's binary-io also replaces isatty, which is not really needed in Emacs (you don't show the patches for lib/ so I can only guess) . we don't want in Emacs the msvc-nothrow wrappers for library functions Some specific comments about the patch: > @@ -155,20 +148,12 @@ > > if (un_flag) > { > - char buf[18]; > + set_binary_mode (fileno (stdout), O_BINARY); > > -#ifdef DOS_NT > -#if (__DJGPP__ >= 2) || (defined WINDOWSNT) > - if (!isatty (fileno (stdout))) > - setmode (fileno (stdout), O_BINARY); > -#else > - (stdout)->_flag &= ~_IOTEXT; /* print binary */ > - _setmode (fileno (stdout), O_BINARY); > -#endif > -#endif We no longer support DJGPP < 2, so the #else stuff could simply go away. > -#ifdef DOS_NT > -#if (__DJGPP__ >= 2) || (defined WINDOWSNT) > - if (!isatty (fileno (fp))) > - setmode (fileno (fp), O_BINARY); > -#else > - (fp)->_flag &= ~_IOTEXT; /* read binary */ > - _setmode (fileno (fp), O_BINARY); > -#endif > -#endif Likewise. > /* Don't put CRs in the DOC file. */ > -#ifdef MSDOS > - _fmode = O_BINARY; > -#if 0 /* Suspicion is that this causes hanging. > - So instead we require people to use -o on MSDOS. */ > - (stdout)->_flag &= ~_IOTEXT; > - _setmode (fileno (stdout), O_BINARY); > -#endif > - outfile = 0; > -#endif /* MSDOS */ > -#ifdef WINDOWSNT > - _fmode = O_BINARY; > - _setmode (fileno (stdout), O_BINARY); > -#endif /* WINDOWSNT */ > + set_binary_mode (fileno (stdout), O_BINARY); This is wrong: setting _fmode affects all I/O, input and output, not just stdout. Gnulib's binary-io doesn't have the equivalent functionality. > @@ -239,11 +237,8 @@ > /* Manipulate tty. */ > if (hide_char) > { > - emacs_get_tty (fileno (stdin), &etty); > -#ifdef WINDOWSNT > - if (isatty (fileno (stdin))) > - _setmode (fileno (stdin), O_BINARY); > -#endif > + if (emacs_get_tty (fileno (stdin), &etty) == 0) > + set_binary_mode (fileno (stdin), O_BINARY); > suppress_echo_on_tty (fileno (stdin)); This logic is flawed: if emacs_get_tty failed, then emacs_set_tty should not be called as well. > #endif /* WINDOWSNT */ > + return isatty (fd) - 1; This will not work with Windows isatty, because it doesn't return 1 when fd is connected to a console. To summarize, if we want to clean up that code, I'm willing to do the job. Bug Gnulib's binary-io is not the answer. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 13 01:29:12 2014 Received: (at 18006) by debbugs.gnu.org; 13 Jul 2014 05:29:12 +0000 Received: from localhost ([127.0.0.1]:53410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6CLX-00049B-AV for submit@debbugs.gnu.org; Sun, 13 Jul 2014 01:29:12 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:37808) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6CLT-00048u-GC for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 01:29:09 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 8CEB6A60009; Sat, 12 Jul 2014 22:29:01 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id m2qwKBwtDRq8; Sat, 12 Jul 2014 22:28:57 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 1E684A60008; Sat, 12 Jul 2014 22:28:57 -0700 (PDT) Message-ID: <53C21918.9020001@cs.ucla.edu> Date: Sat, 12 Jul 2014 22:28:56 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> In-Reply-To: <837g3hanzp.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------040807030205030802040909" X-Spam-Score: -3.0 (---) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.0 (---) This is a multi-part message in MIME format. --------------040807030205030802040909 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Eli Zaretskii wrote: > . in some places, we want all file I/O to be in binary mode; Gnulib > doesn't support that The Emacs code can continue to use _fmode as before; that part won't be simplified, but one step at a time. > . some of the code needs to switch a file descriptor to binary or > text mode only when the descriptor is or isn't connected to a > terminal device; Gnulib is ambivalent about that (it always does > that for MSDOS, and never for Windows) binary-io has two interfaces; one (set_binary_mode) always does it, on all platforms; the other (SET_BINARY) deliberately has no effect on __DJGPP__ when isatty returns nonzero. Emacs can use either interface, as it needs. Should SET_BINARY also should have no effect on MS-Windows when isatty returns nonzero? If so, I suppose we can change SET_BINARY to do that. > . AFAIK, Gnulib's binary-io also replaces isatty It doesn't, so this shouldn't be a problem. (Emacs already uses binary-io, by the way; if this were a problem I expect we'd already have run into it.) > . we don't want in Emacs the msvc-nothrow wrappers for library > functions binary-io doesn't do that either. >> /* Don't put CRs in the DOC file. */ >> -#ifdef MSDOS >> - _fmode = O_BINARY; >> -#if 0 /* Suspicion is that this causes hanging. >> - So instead we require people to use -o on MSDOS. */ >> - (stdout)->_flag &= ~_IOTEXT; >> - _setmode (fileno (stdout), O_BINARY); >> -#endif >> - outfile = 0; >> -#endif /* MSDOS */ >> -#ifdef WINDOWSNT >> - _fmode = O_BINARY; >> - _setmode (fileno (stdout), O_BINARY); >> -#endif /* WINDOWSNT */ >> + set_binary_mode (fileno (stdout), O_BINARY); > > This is wrong: setting _fmode affects all I/O, input and output, not > just stdout. Gnulib's binary-io doesn't have the equivalent > functionality. If setting _fmode affects all I/O, why does the WINDOWSNT code bother to call _setmode? Conversely, why does make-docfile.c need to set _fmode, if the intent is "Don't put CRs in the DOC file"; shouldn't it suffice to call _setmode on stdout? > This logic is flawed: if emacs_get_tty failed, then emacs_set_tty > should not be called as well. I was just copying the existing logic. But it's easy to fix while we're at it; revised patch attached. > This will not work with Windows isatty, because it doesn't return 1 > when fd is connected to a console. Thanks, I also tried to address that in the attached patch. --------------040807030205030802040909 Content-Type: text/plain; charset=UTF-8; name="binary-io.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="binary-io.patch" PT09IG1vZGlmaWVkIGZpbGUgJ2FkbWluL0NoYW5nZUxvZycKLS0tIGFkbWluL0NoYW5nZUxv ZwkyMDE0LTA2LTMwIDAwOjAxOjUxICswMDAwCisrKyBhZG1pbi9DaGFuZ2VMb2cJMjAxNC0w Ny0xMiAyMDo1Njo1MSArMDAwMApAQCAtMSwzICsxLDkgQEAKKzIwMTQtMDctMTIgIFBhdWwg RWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUg KEJ1ZyMxODAwNikuCisJKiBtZXJnZS1nbnVsaWIgKEdOVUxJQl9NT0RVTEVTKTogQWRkIGJp bmFyeS1pby4gIEl0IHdhcyBhbHJlYWR5CisJcHJlc2VudCBpbXBsaWNpdGx5OyB0aGlzIGp1 c3QgbWFrZXMgdGhlIGRlcGVuZGVuY2UgZXhwbGljaXQuCisKIDIwMTQtMDYtMzAgIEdsZW5u IE1vcnJpcyAgPHJnbUBnbnUub3JnPgogCiAJKiB1cGRhdGVfYXV0b2dlbjogRmluZCBsb2Fk ZGVmcyB0YXJnZXRzIHJhdGhlciB0aGFuCgo9PT0gbW9kaWZpZWQgZmlsZSAnYWRtaW4vbWVy Z2UtZ251bGliJwotLS0gYWRtaW4vbWVyZ2UtZ251bGliCTIwMTQtMDUtMTcgMDg6MTE6MzEg KzAwMDAKKysrIGFkbWluL21lcmdlLWdudWxpYgkyMDE0LTA3LTEyIDIwOjQ3OjUwICswMDAw CkBAIC0yNiw3ICsyNiw3IEBACiBHTlVMSUJfVVJMPWdpdDovL2dpdC5zYXZhbm5haC5nbnUu b3JnL2dudWxpYi5naXQKIAogR05VTElCX01PRFVMRVM9JwotICBhbGxvY2Etb3B0IGJ5dGVz d2FwIGMtY3R5cGUgYy1zdHJjYXNlCisgIGFsbG9jYS1vcHQgYmluYXJ5LWlvIGJ5dGVzd2Fw IGMtY3R5cGUgYy1zdHJjYXNlCiAgIGNhcmVhZGxpbmthdCBjbG9zZS1zdHJlYW0gY291bnQt b25lLWJpdHMgY291bnQtdHJhaWxpbmctemVyb3MKICAgY3J5cHRvL21kNSBjcnlwdG8vc2hh MSBjcnlwdG8vc2hhMjU2IGNyeXB0by9zaGE1MTIKICAgZHRvYXN0ciBkdG90aW1lc3BlYyBk dXAyIGVudmlyb24gZXhlY2luZm8gZmFjY2Vzc2F0Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGli LXNyYy9DaGFuZ2VMb2cnCi0tLSBsaWItc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEyIDE3OjUz OjI5ICswMDAwCisrKyBsaWItc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEzIDA1OjI0OjQzICsw MDAwCkBAIC0xLDUgKzEsMTEgQEAKIDIwMTQtMDctMTIgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0 QGNzLnVjbGEuZWR1PgogCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUgKEJ1ZyMxODAwNikuCisJ KiBoZXhsLmMsIG1ha2UtZG9jZmlsZS5jOgorCUluY2x1ZGUgYmluYXJ5LWlvLmggaW5zdGVh ZCBvZiBmY250bC5oIGFuZC9vciBpby5oLgorCShtYWluKTogVXNlIHNldF9iaW5hcnlfbW9k ZSBvciBTRVRfQklOQVJZCisJaW4gcGxhY2Ugb2YgaGFuZGNyYWZ0ZWQgY29kZS4KKwogCSog ZXRhZ3MuYyAoTGlzcF9mdW5jdGlvbnMpOiBBbHNvIHJlY29yZCBjbC1kZWZ1biBldGMuIChC dWcjMTc5NjUpCiAKIDIwMTQtMDYtMjYgIEdsZW5uIE1vcnJpcyAgPHJnbUBnbnUub3JnPgoK PT09IG1vZGlmaWVkIGZpbGUgJ2xpYi1zcmMvaGV4bC5jJwotLS0gbGliLXNyYy9oZXhsLmMJ MjAxNC0wMS0wMSAwNzo0MzozNCArMDAwMAorKysgbGliLXNyYy9oZXhsLmMJMjAxNC0wNy0x MyAwNToyNDo0MyArMDAwMApAQCAtMjQsMTUgKzI0LDggQEAKIAogI2luY2x1ZGUgPHN0ZGlv Lmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KLSNpZmRlZiBET1NfTlQKLSNpbmNsdWRlIDxmY250 bC5oPgotI2lmIF9fREpHUFBfXyA+PSAyCi0jaW5jbHVkZSA8aW8uaD4KLSNlbmRpZgotI2Vu ZGlmCi0jaWZkZWYgV0lORE9XU05UCi0jaW5jbHVkZSA8aW8uaD4KLSNlbmRpZgorCisjaW5j bHVkZSA8YmluYXJ5LWlvLmg+CiAKICNkZWZpbmUgREVGQVVMVF9HUk9VUElORwkweDAxCiAj ZGVmaW5lIERFRkFVTFRfQkFTRQkJMTYKQEAgLTE1NSwyMCArMTQ4LDEyIEBACiAKICAgICAg IGlmICh1bl9mbGFnKQogCXsKLQkgIGNoYXIgYnVmWzE4XTsKKwkgIFNFVF9CSU5BUlkgKGZp bGVubyAoc3Rkb3V0KSk7CiAKLSNpZmRlZiBET1NfTlQKLSNpZiAoX19ESkdQUF9fID49IDIp IHx8IChkZWZpbmVkIFdJTkRPV1NOVCkKLSAgICAgICAgICBpZiAoIWlzYXR0eSAoZmlsZW5v IChzdGRvdXQpKSkKLQkgICAgc2V0bW9kZSAoZmlsZW5vIChzdGRvdXQpLCBPX0JJTkFSWSk7 Ci0jZWxzZQotCSAgKHN0ZG91dCktPl9mbGFnICY9IH5fSU9URVhUOyAvKiBwcmludCBiaW5h cnkgKi8KLQkgIF9zZXRtb2RlIChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKLSNlbmRp ZgotI2VuZGlmCiAJICBmb3IgKDs7KQogCSAgICB7Ci0JICAgICAgcmVnaXN0ZXIgaW50IGks IGMgPSAwLCBkOworCSAgICAgIGludCBpLCBjID0gMCwgZDsKKwkgICAgICBjaGFyIGJ1Zlsx OF07CiAKICNkZWZpbmUgaGV4Y2hhcih4KSAoaXNkaWdpdCAoeCkgPyB4IC0gJzAnIDogeCAt ICdhJyArIDEwKQogCkBAIC0yMTAsMTUgKzE5NSw3IEBACiAJfQogICAgICAgZWxzZQogCXsK LSNpZmRlZiBET1NfTlQKLSNpZiAoX19ESkdQUF9fID49IDIpIHx8IChkZWZpbmVkIFdJTkRP V1NOVCkKLSAgICAgICAgICBpZiAoIWlzYXR0eSAoZmlsZW5vIChmcCkpKQotCSAgICBzZXRt b2RlIChmaWxlbm8gKGZwKSwgT19CSU5BUlkpOwotI2Vsc2UKLQkgIChmcCktPl9mbGFnICY9 IH5fSU9URVhUOyAvKiByZWFkIGJpbmFyeSAqLwotCSAgX3NldG1vZGUgKGZpbGVubyAoZnAp LCBPX0JJTkFSWSk7Ci0jZW5kaWYKLSNlbmRpZgorCSAgU0VUX0JJTkFSWSAoZmlsZW5vIChm cCkpOwogCSAgYWRkcmVzcyA9IDA7CiAJICBzdHJpbmdbMF0gPSAnICc7CiAJICBzdHJpbmdb MTddID0gJ1wwJzsKCj09PSBtb2RpZmllZCBmaWxlICdsaWItc3JjL21ha2UtZG9jZmlsZS5j JwotLS0gbGliLXNyYy9tYWtlLWRvY2ZpbGUuYwkyMDE0LTA2LTE3IDE2OjA5OjE5ICswMDAw CisrKyBsaWItc3JjL21ha2UtZG9jZmlsZS5jCTIwMTQtMDctMTIgMjA6NDc6NTAgKzAwMDAK QEAgLTM4LDE3ICszOCwxNiBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxz dGRsaWIuaD4gICAvKiBjb25maWcuaCB1bmNvbmRpdGlvbmFsbHkgaW5jbHVkZXMgdGhpcyBh bnl3YXkgKi8KLSNpZmRlZiBNU0RPUwotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jZW5kaWYgLyog TVNET1MgKi8KKwogI2lmZGVmIFdJTkRPV1NOVAogLyogRGVmaW5lZCB0byBiZSBzeXNfZm9w ZW4gaW4gbXMtdzMyLmgsIGJ1dCBvbmx5ICNpZmRlZiBlbWFjcywgc28gdGhpcwogICAgaXMg cmVhbGx5IGp1c3QgaW5zdXJhbmNlLiAgKi8KICN1bmRlZiBmb3BlbgotI2luY2x1ZGUgPGZj bnRsLmg+CiAjaW5jbHVkZSA8ZGlyZWN0Lmg+CiAjZW5kaWYgLyogV0lORE9XU05UICovCiAK KyNpbmNsdWRlIDxiaW5hcnktaW8uaD4KKwogI2lmZGVmIERPU19OVAogLyogRGVmaW5lZCB0 byBiZSBzeXNfY2hkaXIgaW4gbXMtdzMyLmgsIGJ1dCBvbmx5ICNpZmRlZiBlbWFjcywgc28g dGhpcwogICAgaXMgcmVhbGx5IGp1c3QgaW5zdXJhbmNlLgpAQCAtMTM4LDE5ICsxMzcsNyBA QAogICBvdXRmaWxlID0gc3Rkb3V0OwogCiAgIC8qIERvbid0IHB1dCBDUnMgaW4gdGhlIERP QyBmaWxlLiAgKi8KLSNpZmRlZiBNU0RPUwotICBfZm1vZGUgPSBPX0JJTkFSWTsKLSNpZiAw ICAvKiBTdXNwaWNpb24gaXMgdGhhdCB0aGlzIGNhdXNlcyBoYW5naW5nLgotCSAgU28gaW5z dGVhZCB3ZSByZXF1aXJlIHBlb3BsZSB0byB1c2UgLW8gb24gTVNET1MuICAqLwotICAoc3Rk b3V0KS0+X2ZsYWcgJj0gfl9JT1RFWFQ7Ci0gIF9zZXRtb2RlIChmaWxlbm8gKHN0ZG91dCks IE9fQklOQVJZKTsKLSNlbmRpZgotICBvdXRmaWxlID0gMDsKLSNlbmRpZiAvKiBNU0RPUyAq LwotI2lmZGVmIFdJTkRPV1NOVAotICBfZm1vZGUgPSBPX0JJTkFSWTsKLSAgX3NldG1vZGUg KGZpbGVubyAoc3Rkb3V0KSwgT19CSU5BUlkpOwotI2VuZGlmIC8qIFdJTkRPV1NOVCAqLwor ICBzZXRfYmluYXJ5X21vZGUgKGZpbGVubyAoc3Rkb3V0KSwgT19CSU5BUlkpOwogCiAgIC8q IElmIGZpcnN0IHR3byBhcmdzIGFyZSAtbyBGSUxFLCBvdXRwdXQgdG8gRklMRS4gICovCiAg IGkgPSAxOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9DaGFuZ2VMb2cnCi0tLSBzcmMvQ2hh bmdlTG9nCTIwMTQtMDctMTIgMTc6NTM6MjkgKzAwMDAKKysrIHNyYy9DaGFuZ2VMb2cJMjAx NC0wNy0xMyAwNToyNDo0MyArMDAwMApAQCAtMSwzICsxLDEyIEBACisyMDE0LTA3LTEyICBQ YXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KKworCVVzZSBiaW5hcnktaW8gbW9k dWxlIChCdWcjMTgwMDYpLgorCSogbWluaWJ1Zi5jOiBJbmNsdWRlIGJpbmFyeS1pby5oIGlu c3RlYWQgb2YgZmNudGwuaC4KKwkocmVhZF9taW5pYnVmX25vbmludGVyYWN0aXZlKToKKwlV c2Ugc2V0X2JpbmFyeV9tb2RlIGluc3RlYWQgb2YgaGFuZGNyYWZ0ZWQgY29kZS4KKwlEb24n dCBjYWxsIGVtYWNzX3NldF90dHkgaWYgZW1hY3NfZ2V0X3R0eSBmYWlsZWQuCisJKiBzeXNk ZXAuYywgc3lzdHR5LmggKGVtYWNzX2dldF90dHkpOiBSZXR1cm4gaW50LCBub3Qgdm9pZC4K KwogMjAxNC0wNy0xMiAgRWxpIFphcmV0c2tpaSAgPGVsaXpAZ251Lm9yZz4KIAogCSogeGRp c3AuYyAoZGlzcGxheV9saW5lKTogRG9uJ3QgY2FsbCBGRVRDSF9CWVRFIHdpdGggYXJndW1l bnQgbGVzcwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9taW5pYnVmLmMnCi0tLSBzcmMvbWlu aWJ1Zi5jCTIwMTQtMDctMTIgMDc6NDc6NDAgKzAwMDAKKysrIHNyYy9taW5pYnVmLmMJMjAx NC0wNy0xMyAwNToyNDo0MyArMDAwMApAQCAtMjIsOSArMjIsNyBAQAogI2luY2x1ZGUgPGVy cm5vLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIAotI2lmZGVmIFdJTkRPV1NOVAotI2luY2x1 ZGUgPGZjbnRsLmg+CS8qIEZvciBPX0JJTkFSWSwgT19URVhULiAqLwotI2VuZGlmCisjaW5j bHVkZSA8YmluYXJ5LWlvLmg+CiAKICNpbmNsdWRlICJsaXNwLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMuaCIKQEAgLTIzMSw2ICsyMjksNyBAQAogICBpbnQgYzsKICAgdW5zaWduZWQgY2hh ciBoaWRlX2NoYXIgPSAwOwogICBzdHJ1Y3QgZW1hY3NfdHR5IGV0dHk7CisgIGJvb2wgZXR0 eV92YWxpZDsKIAogICAvKiBDaGVjaywgd2hldGhlciB3ZSBuZWVkIHRvIHN1cHByZXNzIGVj aG9pbmcuICAqLwogICBpZiAoQ0hBUkFDVEVSUCAoVnJlYWRfaGlkZV9jaGFyKSkKQEAgLTIz OSwxMSArMjM4LDkgQEAKICAgLyogTWFuaXB1bGF0ZSB0dHkuICAqLwogICBpZiAoaGlkZV9j aGFyKQogICAgIHsKLSAgICAgIGVtYWNzX2dldF90dHkgKGZpbGVubyAoc3RkaW4pLCAmZXR0 eSk7Ci0jaWZkZWYgV0lORE9XU05UCi0gICAgICBpZiAoaXNhdHR5IChmaWxlbm8gKHN0ZGlu KSkpCi0JX3NldG1vZGUgKGZpbGVubyAoc3RkaW4pLCBPX0JJTkFSWSk7Ci0jZW5kaWYKKyAg ICAgIGV0dHlfdmFsaWQgPSBlbWFjc19nZXRfdHR5IChmaWxlbm8gKHN0ZGluKSwgJmV0dHkp ID09IDA7CisgICAgICBpZiAoZXR0eV92YWxpZCkKKwlzZXRfYmluYXJ5X21vZGUgKGZpbGVu byAoc3RkaW4pLCBPX0JJTkFSWSk7CiAgICAgICBzdXBwcmVzc19lY2hvX29uX3R0eSAoZmls ZW5vIChzdGRpbikpOwogICAgIH0KIApAQCAtMjgxLDExICsyNzgsMTEgQEAKICAgaWYgKGhp ZGVfY2hhcikKICAgICB7CiAgICAgICBmcHJpbnRmIChzdGRvdXQsICJcbiIpOwotICAgICAg ZW1hY3Nfc2V0X3R0eSAoZmlsZW5vIChzdGRpbiksICZldHR5LCAwKTsKLSNpZmRlZiBXSU5E T1dTTlQKLSAgICAgIGlmIChpc2F0dHkgKGZpbGVubyAoc3RkaW4pKSkKLQlfc2V0bW9kZSAo ZmlsZW5vIChzdGRpbiksIE9fVEVYVCk7Ci0jZW5kaWYKKyAgICAgIGlmIChldHR5X3ZhbGlk KQorCXsKKwkgIGVtYWNzX3NldF90dHkgKGZpbGVubyAoc3RkaW4pLCAmZXR0eSwgMCk7CisJ ICBzZXRfYmluYXJ5X21vZGUgKGZpbGVubyAoc3RkaW4pLCBPX1RFWFQpOworCX0KICAgICB9 CiAKICAgaWYgKGxlbiB8fCBjID09ICdcbicgfHwgYyA9PSAnXHInKQoKPT09IG1vZGlmaWVk IGZpbGUgJ3NyYy9zeXNkZXAuYycKLS0tIHNyYy9zeXNkZXAuYwkyMDE0LTA3LTExIDE3OjU1 OjI0ICswMDAwCisrKyBzcmMvc3lzZGVwLmMJMjAxNC0wNy0xMyAwNToyNDo0MyArMDAwMApA QCAtNzc1LDggKzc3NSw5IEBACiAvKiBHZXR0aW5nIGFuZCBzZXR0aW5nIGVtYWNzX3R0eSBz dHJ1Y3R1cmVzLiAgKi8KIAogLyogU2V0ICpUQyB0byB0aGUgcGFyYW1ldGVycyBhc3NvY2lh dGVkIHdpdGggdGhlIHRlcm1pbmFsIEZELAotICAgb3IgY2xlYXIgaXQgaWYgdGhlIHBhcmFt ZXRlcnMgYXJlIG5vdCBhdmFpbGFibGUuICAqLwotdm9pZAorICAgb3IgY2xlYXIgaXQgaWYg dGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBhdmFpbGFibGUuCisgICBSZXR1cm4gMCBvbiBzdWNj ZXNzLCAtMSAoc2V0dGluZyBlcnJubykgb24gZmFpbHVyZS4gICovCitpbnQKIGVtYWNzX2dl dF90dHkgKGludCBmZCwgc3RydWN0IGVtYWNzX3R0eSAqc2V0dGluZ3MpCiB7CiAgIC8qIFJl dHJpZXZlIHRoZSBwcmltYXJ5IHBhcmFtZXRlcnMgLSBiYXVkIHJhdGUsIGNoYXJhY3RlciBz aXplLCBldGNldGVyYS4gICovCkBAIC03ODYsMTUgKzc4NywxNiBAQAogICBIQU5ETEUgaCA9 IChIQU5ETEUpX2dldF9vc2ZoYW5kbGUgKGZkKTsKICAgRFdPUkQgY29uc29sZV9tb2RlOwog Ci0gIGlmIChoICYmIGggIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCisgIGlmIChoICYmIGgg IT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUgJiYgR2V0Q29uc29sZU1vZGUgKGgsICZjb25zb2xl X21vZGUpKQogICAgIHsKLSAgICAgIGlmIChHZXRDb25zb2xlTW9kZSAoaCwgJmNvbnNvbGVf bW9kZSkpCi0Jc2V0dGluZ3MtPm1haW4gPSBjb25zb2xlX21vZGU7CisgICAgICBzZXR0aW5n cy0+bWFpbiA9IGNvbnNvbGVfbW9kZTsKKyAgICAgIHJldHVybiAwOwogICAgIH0KICNlbmRp ZgkvKiBXSU5ET1dTTlQgKi8KKyAgcmV0dXJuIGlzYXR0eSAoZmQpIC0gMTsKICNlbHNlCS8q ICFET1NfTlQgKi8KICAgLyogV2UgaGF2ZSB0aG9zZSBuaWZ0eSBQT1NJWCB0Y211bWJsZWF0 dHIgZnVuY3Rpb25zLiAgKi8KLSAgdGNnZXRhdHRyIChmZCwgJnNldHRpbmdzLT5tYWluKTsK KyAgcmV0dXJuIHRjZ2V0YXR0ciAoZmQsICZzZXR0aW5ncy0+bWFpbik7CiAjZW5kaWYKIH0K IAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9zeXN0dHkuaCcKLS0tIHNyYy9zeXN0dHkuaAky MDE0LTA3LTExIDE3OjU1OjI0ICswMDAwCisrKyBzcmMvc3lzdHR5LmgJMjAxNC0wNy0xMiAy MDo0Nzo1MCArMDAwMApAQCAtODAsNyArODAsNyBAQAogfTsKIAwKIC8qIEZyb20gc3lzZGVw LmMgb3IgdzMyLmMgICovCi1leHRlcm4gdm9pZCBlbWFjc19nZXRfdHR5IChpbnQsIHN0cnVj dCBlbWFjc190dHkgKikgRVhURVJOQUxMWV9WSVNJQkxFOworZXh0ZXJuIGludCBlbWFjc19n ZXRfdHR5IChpbnQsIHN0cnVjdCBlbWFjc190dHkgKikgRVhURVJOQUxMWV9WSVNJQkxFOwog ZXh0ZXJuIGludCBlbWFjc19zZXRfdHR5IChpbnQsIHN0cnVjdCBlbWFjc190dHkgKiwgYm9v bCkgRVhURVJOQUxMWV9WSVNJQkxFOwogZXh0ZXJuIHZvaWQgc3VwcHJlc3NfZWNob19vbl90 dHkgKGludCk7CiBleHRlcm4gaW50IHNlcmlhbF9vcGVuIChMaXNwX09iamVjdCk7Cgo= --------------040807030205030802040909-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 13 11:02:21 2014 Received: (at 18006) by debbugs.gnu.org; 13 Jul 2014 15:02:21 +0000 Received: from localhost ([127.0.0.1]:53813 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6LID-0004ir-3i for submit@debbugs.gnu.org; Sun, 13 Jul 2014 11:02:21 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:47157) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6LIA-0004iY-BR for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 11:02:19 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0N8N00D00O9YZZ00@a-mtaout23.012.net.il> for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 18:02:11 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N8N00DXIOFNZU00@a-mtaout23.012.net.il>; Sun, 13 Jul 2014 18:02:11 +0300 (IDT) Date: Sun, 13 Jul 2014 18:02:21 +0300 From: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode In-reply-to: <53C21918.9020001@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <8338e59u9u.fsf@gnu.org> References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sat, 12 Jul 2014 22:28:56 -0700 > From: Paul Eggert > CC: 18006@debbugs.gnu.org > > > . in some places, we want all file I/O to be in binary mode; Gnulib > > doesn't support that > > The Emacs code can continue to use _fmode as before; that part won't be > simplified, but one step at a time. See below. > > . some of the code needs to switch a file descriptor to binary or > > text mode only when the descriptor is or isn't connected to a > > terminal device; Gnulib is ambivalent about that (it always does > > that for MSDOS, and never for Windows) > > binary-io has two interfaces; one (set_binary_mode) always does it, on > all platforms; the other (SET_BINARY) deliberately has no effect on > __DJGPP__ when isatty returns nonzero. Emacs can use either interface, > as it needs. OK. > Should SET_BINARY also should have no effect on MS-Windows > when isatty returns nonzero? No, the SET_BINARY macro does TRT here. > Emacs already uses binary-io, by the way; if this were a problem I > expect we'd already have run into it. We don't currently use binary-io on Windows. > >> /* Don't put CRs in the DOC file. */ > >> -#ifdef MSDOS > >> - _fmode = O_BINARY; > >> -#if 0 /* Suspicion is that this causes hanging. > >> - So instead we require people to use -o on MSDOS. */ > >> - (stdout)->_flag &= ~_IOTEXT; > >> - _setmode (fileno (stdout), O_BINARY); > >> -#endif > >> - outfile = 0; > >> -#endif /* MSDOS */ > >> -#ifdef WINDOWSNT > >> - _fmode = O_BINARY; > >> - _setmode (fileno (stdout), O_BINARY); > >> -#endif /* WINDOWSNT */ > >> + set_binary_mode (fileno (stdout), O_BINARY); > > > > This is wrong: setting _fmode affects all I/O, input and output, not > > just stdout. Gnulib's binary-io doesn't have the equivalent > > functionality. > > If setting _fmode affects all I/O, why does the WINDOWSNT code bother to > call _setmode? Because setting _fmode only affects the open/fopen calls made _after_ the change. It cannot affect standard streams that are opened before 'main' runs. However, I think that we should simply use "rb", "wb", etc. in the calls to 'fopen', and forget all this _fmode stuff. (Btw, are there still standard C libraries we care about that don't support "rb" and "wb"? If not, we could use these on all platforms, without any #ifdefs.) > Conversely, why does make-docfile.c need to set _fmode, > if the intent is "Don't put CRs in the DOC file"; shouldn't it suffice > to call _setmode on stdout? The comment is inaccurate: it actually doesn't want to put CRs in any output files, not just DOC. > > This logic is flawed: if emacs_get_tty failed, then emacs_set_tty > > should not be called as well. > > I was just copying the existing logic. But it's easy to fix while we're > at it; revised patch attached. > > > This will not work with Windows isatty, because it doesn't return 1 > > when fd is connected to a console. > > Thanks, I also tried to address that in the attached patch. Thanks. I have one comment: > +int > emacs_get_tty (int fd, struct emacs_tty *settings) > { > /* Retrieve the primary parameters - baud rate, character size, etcetera. */ > @@ -786,15 +787,16 @@ > HANDLE h = (HANDLE)_get_osfhandle (fd); > DWORD console_mode; > > - if (h && h != INVALID_HANDLE_VALUE) > + if (h && h != INVALID_HANDLE_VALUE && GetConsoleMode (h, &console_mode)) > { > - if (GetConsoleMode (h, &console_mode)) > - settings->main = console_mode; > + settings->main = console_mode; > + return 0; > } > #endif /* WINDOWSNT */ > + return isatty (fd) - 1; Do we need this "-1" part now? It could misfire if isatty does return 1 some day. From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 13 22:12:08 2014 Received: (at 18006) by debbugs.gnu.org; 14 Jul 2014 02:12:08 +0000 Received: from localhost ([127.0.0.1]:54054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6VkM-0000EY-Ls for submit@debbugs.gnu.org; Sun, 13 Jul 2014 22:12:07 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:40194) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6VkI-0000Dw-V5 for 18006@debbugs.gnu.org; Sun, 13 Jul 2014 22:12:05 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 98A7EA60009; Sun, 13 Jul 2014 19:11:56 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AQKyx+eaWooe; Sun, 13 Jul 2014 19:11:55 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id D113739E8017; Sun, 13 Jul 2014 19:11:54 -0700 (PDT) Message-ID: <53C33C6A.6060601@cs.ucla.edu> Date: Sun, 13 Jul 2014 19:11:54 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> <8338e59u9u.fsf@gnu.org> In-Reply-To: <8338e59u9u.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------040508070105040200040706" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------040508070105040200040706 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Eli Zaretskii wrote: >> + return isatty (fd) - 1; > Do we need this "-1" part now? It could misfire if isatty does > return 1 some day. Sorry, I don't so how it can misfire. isatty returns 1 on success, 0 on failure; whereas the caller returns 0 on success, -1 on failure. So subtracting 1 is the right thing to do, no? A revised patch, taking your other comments into account, is attached. It's relative to trunk bzr 117527. --------------040508070105040200040706 Content-Type: text/plain; charset=UTF-8; name="binary-io.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="binary-io.patch" PT09IG1vZGlmaWVkIGZpbGUgJ2FkbWluL0NoYW5nZUxvZycKLS0tIGFkbWluL0NoYW5nZUxv ZwkyMDE0LTA2LTMwIDAwOjAxOjUxICswMDAwCisrKyBhZG1pbi9DaGFuZ2VMb2cJMjAxNC0w Ny0xNCAwMjowMjoxNSArMDAwMApAQCAtMSwzICsxLDkgQEAKKzIwMTQtMDctMTQgIFBhdWwg RWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJVXNlIGJpbmFyeS1pbyBtb2R1bGUs IE9fQklOQVJZLCBhbmQgImIiIGZsYWcgKEJ1ZyMxODAwNikuCisJKiBtZXJnZS1nbnVsaWIg KEdOVUxJQl9NT0RVTEVTKTogQWRkIGJpbmFyeS1pby4gIEl0IHdhcyBhbHJlYWR5CisJcHJl c2VudCBpbXBsaWNpdGx5OyB0aGlzIGp1c3QgbWFrZXMgdGhlIGRlcGVuZGVuY2UgZXhwbGlj aXQuCisKIDIwMTQtMDYtMzAgIEdsZW5uIE1vcnJpcyAgPHJnbUBnbnUub3JnPgogCiAJKiB1 cGRhdGVfYXV0b2dlbjogRmluZCBsb2FkZGVmcyB0YXJnZXRzIHJhdGhlciB0aGFuCgo9PT0g bW9kaWZpZWQgZmlsZSAnYWRtaW4vbWVyZ2UtZ251bGliJwotLS0gYWRtaW4vbWVyZ2UtZ251 bGliCTIwMTQtMDUtMTcgMDg6MTE6MzEgKzAwMDAKKysrIGFkbWluL21lcmdlLWdudWxpYgky MDE0LTA3LTEyIDIwOjQ3OjUwICswMDAwCkBAIC0yNiw3ICsyNiw3IEBACiBHTlVMSUJfVVJM PWdpdDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dudWxpYi5naXQKIAogR05VTElCX01PRFVM RVM9JwotICBhbGxvY2Etb3B0IGJ5dGVzd2FwIGMtY3R5cGUgYy1zdHJjYXNlCisgIGFsbG9j YS1vcHQgYmluYXJ5LWlvIGJ5dGVzd2FwIGMtY3R5cGUgYy1zdHJjYXNlCiAgIGNhcmVhZGxp bmthdCBjbG9zZS1zdHJlYW0gY291bnQtb25lLWJpdHMgY291bnQtdHJhaWxpbmctemVyb3MK ICAgY3J5cHRvL21kNSBjcnlwdG8vc2hhMSBjcnlwdG8vc2hhMjU2IGNyeXB0by9zaGE1MTIK ICAgZHRvYXN0ciBkdG90aW1lc3BlYyBkdXAyIGVudmlyb24gZXhlY2luZm8gZmFjY2Vzc2F0 Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGliLXNyYy9DaGFuZ2VMb2cnCi0tLSBsaWItc3JjL0No YW5nZUxvZwkyMDE0LTA3LTE0IDAwOjQ1OjE5ICswMDAwCisrKyBsaWItc3JjL0NoYW5nZUxv ZwkyMDE0LTA3LTE0IDAyOjAyOjE1ICswMDAwCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDct MTQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJVXNlIGJpbmFyeS1p byBtb2R1bGUsIE9fQklOQVJZLCBhbmQgImIiIGZsYWcgKEJ1ZyMxODAwNikuCisJKiBldGFn cy5jLCBoZXhsLmMsIG1ha2UtZG9jZmlsZS5jOgorCUluY2x1ZGUgYmluYXJ5LWlvLmggaW5z dGVhZCBvZiBmY250bC5oIGFuZC9vciBpby5oLgorCShtYWluKTogVXNlIHNldF9iaW5hcnlf bW9kZSBvciBTRVRfQklOQVJZCisJaW4gcGxhY2Ugb2YgaGFuZGNyYWZ0ZWQgY29kZS4KKwkq IGV0YWdzLmMgKG1haW4pIFtET1NfTlRdOgorCSogbW92ZW1haWwuYyAobWFpbikgW1dJTkRP V1NOVF06CisJRG9uJ3QgbWVzcyB3aXRoIF9mbW9kZS4KKwkqIGV0YWdzLmMgKG1haW4sIHBy b2Nlc3NfZmlsZV9uYW1lLCBhbmFseXNlX3JlZ2V4KToKKwlVc2UgZm9wZW4vcG9wZW4ncyAi YiIgZmxhZyBpbnN0ZWFkLgorCSogbW92ZW1haWwuYyAobWFpbiwgcG9wbWFpbCk6IFVzZSBv cGVuL2xrX29wZW4vbWtvc3RlbXAncyBPX0JJTkFSWQorCWluc3RlYWQuCisKIDIwMTQtMDct MTMgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogCiAJKiBtYWtlLWRvY2Zp bGUuYzogU2ltcGxpZnkgYSBiaXQsIHRvIHNpbXBsaWZ5IGZ1cnRoZXIgcmVmYWN0b3Jpbmcu Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGliLXNyYy9ldGFncy5jJwotLS0gbGliLXNyYy9ldGFn cy5jCTIwMTQtMDctMTIgMTY6MjY6NTQgKzAwMDAKKysrIGxpYi1zcmMvZXRhZ3MuYwkyMDE0 LTA3LTE0IDAyOjAyOjE1ICswMDAwCkBAIC0xMDUsMTcgKzEwNSwxMyBAQAogI2lmZGVmIE1T RE9TCiAjIHVuZGVmIE1TRE9TCiAjIGRlZmluZSBNU0RPUyB0cnVlCi0jIGluY2x1ZGUgPGZj bnRsLmg+CiAjIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgotIyBpbmNsdWRlIDxpby5oPgogI2Vs c2UKICMgZGVmaW5lIE1TRE9TIGZhbHNlCiAjZW5kaWYgLyogTVNET1MgKi8KIAogI2lmZGVm IFdJTkRPV1NOVAotIyBpbmNsdWRlIDxmY250bC5oPgogIyBpbmNsdWRlIDxkaXJlY3QuaD4K LSMgaW5jbHVkZSA8aW8uaD4KICMgZGVmaW5lIE1BWFBBVEhMRU4gX01BWF9QQVRICiAjIHVu ZGVmIEhBVkVfTlRHVUkKICMgdW5kZWYgIERPU19OVApAQCAtMTMxLDYgKzEyNyw3IEBACiAj aW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxz eXMvc3RhdC5oPgorI2luY2x1ZGUgPGJpbmFyeS1pby5oPgogI2luY2x1ZGUgPGMtc3RyY2Fz ZS5oPgogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CkBAIC0xMDAyLDEzICs5OTksOCBAQAogICBs aW5lYnVmZmVyIGZpbGVuYW1lX2xiOwogICBib29sIGhlbHBfYXNrZWQgPSBmYWxzZTsKICAg cHRyZGlmZl90IGxlbjsKLSBjaGFyICpvcHRzdHJpbmc7Ci0gaW50IG9wdDsKLQotCi0jaWZk ZWYgRE9TX05UCi0gIF9mbW9kZSA9IE9fQklOQVJZOyAgIC8qIGFsbCBvZiBmaWxlcyBhcmUg dHJlYXRlZCBhcyBiaW5hcnkgZmlsZXMgKi8KLSNlbmRpZiAvKiBET1NfTlQgKi8KKyAgY2hh ciAqb3B0c3RyaW5nOworICBpbnQgb3B0OwogCiAgIHByb2duYW1lID0gYXJndlswXTsKICAg bmluY2x1ZGVkX2ZpbGVzID0gMDsKQEAgLTExOTUsMTUgKzExODcsMTAgQEAKICAgICAgIGlm IChzdHJlcSAodGFnZmlsZSwgIi0iKSkKIAl7CiAJICB0YWdmID0gc3Rkb3V0OwotI2lmZGVm IERPU19OVAotCSAgLyogU3dpdGNoIHJlZGlyZWN0ZWQgYHN0ZG91dCcgdG8gYmluYXJ5IG1v ZGUgKHNldHRpbmcgYF9mbW9kZScKLQkgICAgIGRvZXNuJ3QgdGFrZSBlZmZlY3QgdW50aWwg YWZ0ZXIgYHN0ZG91dCcgaXMgYWxyZWFkeSBvcGVuKS4gKi8KLQkgIGlmICghaXNhdHR5IChm aWxlbm8gKHN0ZG91dCkpKQotCSAgICBzZXRtb2RlIChmaWxlbm8gKHN0ZG91dCksIE9fQklO QVJZKTsKLSNlbmRpZiAvKiBET1NfTlQgKi8KKwkgIFNFVF9CSU5BUlkgKGZpbGVubyAoc3Rk b3V0KSk7CiAJfQogICAgICAgZWxzZQotCXRhZ2YgPSBmb3BlbiAodGFnZmlsZSwgYXBwZW5k X3RvX3RhZ2ZpbGUgPyAiYSIgOiAidyIpOworCXRhZ2YgPSBmb3BlbiAodGFnZmlsZSwgYXBw ZW5kX3RvX3RhZ2ZpbGUgPyAiYWIiIDogIndiIik7CiAgICAgICBpZiAodGFnZiA9PSBOVUxM KQogCXBmYXRhbCAodGFnZmlsZSk7CiAgICAgfQpAQCAtMTMwNiw3ICsxMjkzLDcgQEAKICAg ICAgIGFwcGVuZF90b190YWdmaWxlID0gdHJ1ZTsKICAgICB9CiAKLSAgdGFnZiA9IGZvcGVu ICh0YWdmaWxlLCBhcHBlbmRfdG9fdGFnZmlsZSA/ICJhIiA6ICJ3Iik7CisgIHRhZ2YgPSBm b3BlbiAodGFnZmlsZSwgYXBwZW5kX3RvX3RhZ2ZpbGUgPyAiYWIiIDogIndiIik7CiAgIGlm ICh0YWdmID09IE5VTEwpCiAgICAgcGZhdGFsICh0YWdmaWxlKTsKICAgcHV0X2VudHJpZXMg KG5vZGVoZWFkKTsJLyogd3JpdGUgYWxsIHRoZSB0YWdzIChDVEFHUykgKi8KQEAgLTE1NDcs MTEgKzE1MzQsMTEgQEAKICAgaWYgKHJlYWxfbmFtZSA9PSBjb21wcmVzc2VkX25hbWUpCiAg ICAgewogICAgICAgY2hhciAqY21kID0gY29uY2F0IChjb21wci0+Y29tbWFuZCwgIiAiLCBy ZWFsX25hbWUpOwotICAgICAgaW5mID0gKEZJTEUgKikgcG9wZW4gKGNtZCwgInIiKTsKKyAg ICAgIGluZiA9IHBvcGVuIChjbWQsICJyYiIpOwogICAgICAgZnJlZSAoY21kKTsKICAgICB9 CiAgIGVsc2UKLSAgICBpbmYgPSBmb3BlbiAocmVhbF9uYW1lLCAiciIpOworICAgIGluZiA9 IGZvcGVuIChyZWFsX25hbWUsICJyYiIpOwogICBpZiAoaW5mID09IE5VTEwpCiAgICAgewog ICAgICAgcGVycm9yIChyZWFsX25hbWUpOwpAQCAtNTYxNCw3ICs1NjAxLDcgQEAKIAljaGFy ICpyZWdleGZpbGUgPSByZWdleF9hcmcgKyAxOwogCiAJLyogcmVnZXhmaWxlIGlzIGEgZmls ZSBjb250YWluaW5nIHJlZ2V4cHMsIG9uZSBwZXIgbGluZS4gKi8KLQlyZWdleGZwID0gZm9w ZW4gKHJlZ2V4ZmlsZSwgInIiKTsKKwlyZWdleGZwID0gZm9wZW4gKHJlZ2V4ZmlsZSwgInJi Iik7CiAJaWYgKHJlZ2V4ZnAgPT0gTlVMTCkKIAkgIHBmYXRhbCAocmVnZXhmaWxlKTsKIAls aW5lYnVmZmVyX2luaXQgKCZyZWdleGJ1Zik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbGliLXNy Yy9oZXhsLmMnCi0tLSBsaWItc3JjL2hleGwuYwkyMDE0LTAxLTAxIDA3OjQzOjM0ICswMDAw CisrKyBsaWItc3JjL2hleGwuYwkyMDE0LTA3LTEzIDA1OjI0OjQzICswMDAwCkBAIC0yNCwx NSArMjQsOCBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxjdHlwZS5oPgot I2lmZGVmIERPU19OVAotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaWYgX19ESkdQUF9fID49IDIK LSNpbmNsdWRlIDxpby5oPgotI2VuZGlmCi0jZW5kaWYKLSNpZmRlZiBXSU5ET1dTTlQKLSNp bmNsdWRlIDxpby5oPgotI2VuZGlmCisKKyNpbmNsdWRlIDxiaW5hcnktaW8uaD4KIAogI2Rl ZmluZSBERUZBVUxUX0dST1VQSU5HCTB4MDEKICNkZWZpbmUgREVGQVVMVF9CQVNFCQkxNgpA QCAtMTU1LDIwICsxNDgsMTIgQEAKIAogICAgICAgaWYgKHVuX2ZsYWcpCiAJewotCSAgY2hh ciBidWZbMThdOworCSAgU0VUX0JJTkFSWSAoZmlsZW5vIChzdGRvdXQpKTsKIAotI2lmZGVm IERPU19OVAotI2lmIChfX0RKR1BQX18gPj0gMikgfHwgKGRlZmluZWQgV0lORE9XU05UKQot ICAgICAgICAgIGlmICghaXNhdHR5IChmaWxlbm8gKHN0ZG91dCkpKQotCSAgICBzZXRtb2Rl IChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKLSNlbHNlCi0JICAoc3Rkb3V0KS0+X2Zs YWcgJj0gfl9JT1RFWFQ7IC8qIHByaW50IGJpbmFyeSAqLwotCSAgX3NldG1vZGUgKGZpbGVu byAoc3Rkb3V0KSwgT19CSU5BUlkpOwotI2VuZGlmCi0jZW5kaWYKIAkgIGZvciAoOzspCiAJ ICAgIHsKLQkgICAgICByZWdpc3RlciBpbnQgaSwgYyA9IDAsIGQ7CisJICAgICAgaW50IGks IGMgPSAwLCBkOworCSAgICAgIGNoYXIgYnVmWzE4XTsKIAogI2RlZmluZSBoZXhjaGFyKHgp IChpc2RpZ2l0ICh4KSA/IHggLSAnMCcgOiB4IC0gJ2EnICsgMTApCiAKQEAgLTIxMCwxNSAr MTk1LDcgQEAKIAl9CiAgICAgICBlbHNlCiAJewotI2lmZGVmIERPU19OVAotI2lmIChfX0RK R1BQX18gPj0gMikgfHwgKGRlZmluZWQgV0lORE9XU05UKQotICAgICAgICAgIGlmICghaXNh dHR5IChmaWxlbm8gKGZwKSkpCi0JICAgIHNldG1vZGUgKGZpbGVubyAoZnApLCBPX0JJTkFS WSk7Ci0jZWxzZQotCSAgKGZwKS0+X2ZsYWcgJj0gfl9JT1RFWFQ7IC8qIHJlYWQgYmluYXJ5 ICovCi0JICBfc2V0bW9kZSAoZmlsZW5vIChmcCksIE9fQklOQVJZKTsKLSNlbmRpZgotI2Vu ZGlmCisJICBTRVRfQklOQVJZIChmaWxlbm8gKGZwKSk7CiAJICBhZGRyZXNzID0gMDsKIAkg IHN0cmluZ1swXSA9ICcgJzsKIAkgIHN0cmluZ1sxN10gPSAnXDAnOwoKPT09IG1vZGlmaWVk IGZpbGUgJ2xpYi1zcmMvbWFrZS1kb2NmaWxlLmMnCi0tLSBsaWItc3JjL21ha2UtZG9jZmls ZS5jCTIwMTQtMDctMTQgMDA6NDU6MTkgKzAwMDAKKysrIGxpYi1zcmMvbWFrZS1kb2NmaWxl LmMJMjAxNC0wNy0xNCAwMDo1MToxOSArMDAwMApAQCAtMzgsMTcgKzM4LDE2IEBACiAKICNp bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPiAgIC8qIGNvbmZpZy5oIHVu Y29uZGl0aW9uYWxseSBpbmNsdWRlcyB0aGlzIGFueXdheSAqLwotI2lmZGVmIE1TRE9TCi0j aW5jbHVkZSA8ZmNudGwuaD4KLSNlbmRpZiAvKiBNU0RPUyAqLworCiAjaWZkZWYgV0lORE9X U05UCiAvKiBEZWZpbmVkIHRvIGJlIHN5c19mb3BlbiBpbiBtcy13MzIuaCwgYnV0IG9ubHkg I2lmZGVmIGVtYWNzLCBzbyB0aGlzCiAgICBpcyByZWFsbHkganVzdCBpbnN1cmFuY2UuICAq LwogI3VuZGVmIGZvcGVuCi0jaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxkaXJlY3Qu aD4KICNlbmRpZiAvKiBXSU5ET1dTTlQgKi8KIAorI2luY2x1ZGUgPGJpbmFyeS1pby5oPgor CiAjaWZkZWYgRE9TX05UCiAvKiBEZWZpbmVkIHRvIGJlIHN5c19jaGRpciBpbiBtcy13MzIu aCwgYnV0IG9ubHkgI2lmZGVmIGVtYWNzLCBzbyB0aGlzCiAgICBpcyByZWFsbHkganVzdCBp bnN1cmFuY2UuCkBAIC0xNjcsMTkgKzE2Niw3IEBACiAgICAgICArK2k7CiAgICAgfQogCi0g IC8qIERvbid0IHB1dCBDUnMgaW4gdGhlIG91dHB1dCBmaWxlLiAgKi8KLSNpZmRlZiBNU0RP UwotICBfZm1vZGUgPSBPX0JJTkFSWTsKLSNpZiAwICAvKiBTdXNwaWNpb24gaXMgdGhhdCB0 aGlzIGNhdXNlcyBoYW5naW5nLgotCSAgU28gaW5zdGVhZCB3ZSByZXF1aXJlIHBlb3BsZSB0 byB1c2UgLW8gb24gTVNET1MuICAqLwotICAoc3Rkb3V0KS0+X2ZsYWcgJj0gfl9JT1RFWFQ7 Ci0gIF9zZXRtb2RlIChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKLSNlbmRpZgotI2Vu ZGlmIC8qIE1TRE9TICovCi0jaWZkZWYgV0lORE9XU05UCi0gIF9mbW9kZSA9IE9fQklOQVJZ OwotICBfc2V0bW9kZSAoZmlsZW5vIChzdGRvdXQpLCBPX0JJTkFSWSk7Ci0jZW5kaWYgLyog V0lORE9XU05UICovCisgIHNldF9iaW5hcnlfbW9kZSAoZmlsZW5vIChzdGRvdXQpLCBPX0JJ TkFSWSk7CiAKICAgaWYgKGdlbmVyYXRlX2dsb2JhbHMpCiAgICAgc3RhcnRfZ2xvYmFscyAo KTsKCj09PSBtb2RpZmllZCBmaWxlICdsaWItc3JjL21vdmVtYWlsLmMnCi0tLSBsaWItc3Jj L21vdmVtYWlsLmMJMjAxNC0wMS0wMSAwNzo0MzozNCArMDAwMAorKysgbGliLXNyYy9tb3Zl bWFpbC5jCTIwMTQtMDctMTQgMDI6MDI6MTUgKzAwMDAKQEAgLTE5MSwxMSArMTkxLDYgQEAK ICAgdWlkX3QgcmVhbF9naWQgPSBnZXRnaWQgKCk7CiAgIHVpZF90IHByaXZfZ2lkID0gZ2V0 ZWdpZCAoKTsKIAotI2lmZGVmIFdJTkRPV1NOVAotICAvKiBFbnN1cmUgYWxsIGZpbGUgaS9v IGlzIGluIGJpbmFyeSBtb2RlLiAqLwotICBfZm1vZGUgPSBfT19CSU5BUlk7Ci0jZW5kaWYK LQogICBkZWxldGVfbG9ja25hbWUgPSAwOwogCiAgIHdoaWxlICgoYyA9IGdldG9wdCAoYXJn YywgYXJndiwgQVJHU1RSKSkgIT0gRU9GKQpAQCAtMzA0LDcgKzI5OSw3IEBACiAKIAkgIG1l bWNweSAodGVtcG5hbWUsIGlubmFtZSwgaW5uYW1lX2Rpcmxlbik7CiAJICBzdHJjcHkgKHRl bXBuYW1lICsgaW5uYW1lX2RpcmxlbiwgIkVYWFhYWFgiKTsKLQkgIGRlc2MgPSBta29zdGVt cCAodGVtcG5hbWUsIDApOworCSAgZGVzYyA9IG1rb3N0ZW1wICh0ZW1wbmFtZSwgT19CSU5B UlkpOwogCSAgaWYgKGRlc2MgPCAwKQogCSAgICB7CiAJICAgICAgaW50IG1rb3N0ZW1wX2Vy cm5vID0gZXJybm87CkBAIC0zNTgsMTIgKzM1MywxMiBAQAogCiAjaWZuZGVmIE1BSUxfVVNF X01NREYKICNpZmRlZiBNQUlMX1VTRV9TWVNURU1fTE9DSwotICAgICAgaW5kZXNjID0gb3Bl biAoaW5uYW1lLCBPX1JEV1IpOworICAgICAgaW5kZXNjID0gb3BlbiAoaW5uYW1lLCBPX1JE V1IgfCBPX0JJTkFSWSk7CiAjZWxzZSAgLyogaWYgbm90IE1BSUxfVVNFX1NZU1RFTV9MT0NL ICovCi0gICAgICBpbmRlc2MgPSBvcGVuIChpbm5hbWUsIE9fUkRPTkxZKTsKKyAgICAgIGlu ZGVzYyA9IG9wZW4gKGlubmFtZSwgT19SRE9OTFkgfCBPX0JJTkFSWSk7CiAjZW5kaWYgLyog bm90IE1BSUxfVVNFX1NZU1RFTV9MT0NLICovCiAjZWxzZSAgLyogTUFJTF9VU0VfTU1ERiAq LwotICAgICAgaW5kZXNjID0gbGtfb3BlbiAoaW5uYW1lLCBPX1JET05MWSwgMCwgMCwgMTAp OworICAgICAgaW5kZXNjID0gbGtfb3BlbiAoaW5uYW1lLCBPX1JET05MWSB8IE9fQklOQVJZ LCAwLCAwLCAxMCk7CiAjZW5kaWYgLyogTUFJTF9VU0VfTU1ERiAqLwogCiAgICAgICBpZiAo aW5kZXNjIDwgMCkKQEAgLTM3Miw3ICszNjcsNyBAQAogICAgICAgLyogTWFrZSBzdXJlIHRo ZSB1c2VyIGNhbiByZWFkIHRoZSBvdXRwdXQgZmlsZS4gICovCiAgICAgICB1bWFzayAodW1h c2sgKDApICYgMDM3Nyk7CiAKLSAgICAgIG91dGRlc2MgPSBvcGVuIChvdXRuYW1lLCBPX1dS T05MWSB8IE9fQ1JFQVQgfCBPX0VYQ0wsIDA2NjYpOworICAgICAgb3V0ZGVzYyA9IG9wZW4g KG91dG5hbWUsIE9fV1JPTkxZIHwgT19CSU5BUlkgfCBPX0NSRUFUIHwgT19FWENMLCAwNjY2 KTsKICAgICAgIGlmIChvdXRkZXNjIDwgMCkKIAlwZmF0YWxfd2l0aF9uYW1lIChvdXRuYW1l KTsKIApAQCAtNjc1LDcgKzY3MCw3IEBACiAgICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwog ICAgIH0KIAotICBtYmZpID0gb3BlbiAob3V0ZmlsZSwgT19XUk9OTFkgfCBPX0NSRUFUIHwg T19FWENMLCAwNjY2KTsKKyAgbWJmaSA9IG9wZW4gKG91dGZpbGUsIE9fV1JPTkxZIHwgT19C SU5BUlkgfCBPX0NSRUFUIHwgT19FWENMLCAwNjY2KTsKICAgaWYgKG1iZmkgPCAwKQogICAg IHsKICAgICAgIHBvcF9jbG9zZSAoc2VydmVyKTsKCj09PSBtb2RpZmllZCBmaWxlICdzcmMv Q2hhbmdlTG9nJwotLS0gc3JjL0NoYW5nZUxvZwkyMDE0LTA3LTEzIDE1OjUwOjM1ICswMDAw CisrKyBzcmMvQ2hhbmdlTG9nCTIwMTQtMDctMTQgMDI6MDI6MTUgKzAwMDAKQEAgLTEsMyAr MSwyMiBAQAorMjAxNC0wNy0xNCAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+ CisKKwlVc2UgYmluYXJ5LWlvIG1vZHVsZSwgT19CSU5BUlksIGFuZCAiYiIgZmxhZyAoQnVn IzE4MDA2KS4KKwkqIGNhbGxwcm9jLmMgKGNyZWF0ZV90ZW1wX2ZpbGUpOiBVc2UgbWtvc3Rl bXAncyBPX0JJTkFSWSBmbGFnLgorCSogZW1hY3MuYyBbTVNET1NdOgorCSogZW1hY3MuYyAo bWFpbikgW0RPU19OVF06IERvbid0IG1lc3Mgd2l0aCBfZm1vZGUuCisJKG1haW4pIFtNU0RP U106IFVzZSBTRVRfQklOQVJZIGluc3RlYWQgb2Ygc2V0bW9kZS4KKwkqIG1pbmlidWYuYzog SW5jbHVkZSBiaW5hcnktaW8uaCBpbnN0ZWFkIG9mIGZjbnRsLmguCisJKHJlYWRfbWluaWJ1 Zl9ub25pbnRlcmFjdGl2ZSk6CisJVXNlIHNldF9iaW5hcnlfbW9kZSBpbnN0ZWFkIG9mIGhh bmRjcmFmdGVkIGNvZGUuCisJRG9uJ3QgY2FsbCBlbWFjc19zZXRfdHR5IGlmIGVtYWNzX2dl dF90dHkgZmFpbGVkLgorCSogcHJvY2Vzcy5jOiBJbmNsdWRlIGJpbmFyeS1pby5oLgorCShG bWFrZV9uZXR3b3JrX3Byb2Nlc3MsIG5ldHdvcmtfaW50ZXJmYWNlX2xpc3QpCisJKG5ldHdv cmtfaW50ZXJmYWNlX2luZm8sIHNlcnZlcl9hY2NlcHRfY29ubmVjdGlvbik6CisJVXNlIHNl dF9iaW5hcnlfbW9kZSBvbiBuZXdseS1jcmVhdGVkIHNvY2tldHMuCisJKiBzeXNkZXAuYywg c3lzdHR5LmggKGVtYWNzX2dldF90dHkpOiBSZXR1cm4gaW50LCBub3Qgdm9pZC4KKwkqIHN5 c2RlcC5jIChlbWFjc19vcGVuLCBlbWFjc19waXBlKTogVXNlIE9fQklOQVJZLgorCSogdzMy LmMgKHBpcGUyKTogQWRqdXN0IGVhc3NlcnQgdG8gaW5jbHVkZSBPX0JJTkFSWS4KKwogMjAx NC0wNy0xMyAgUGF1bCBFZ2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CiAKIAlJbXByb3Zl IGJlaGF2aW9yIG9mICdienIgdXA7IGNkIHNyYzsgbWFrZSAtaycuCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3JjL2NhbGxwcm9jLmMnCi0tLSBzcmMvY2FsbHByb2MuYwkyMDE0LTA2LTA4IDAw OjM1OjI3ICswMDAwCisrKyBzcmMvY2FsbHByb2MuYwkyMDE0LTA3LTE0IDAyOjAyOjE1ICsw MDAwCkBAIC05ODIsNyArOTgyLDcgQEAKIAogICAgIGNvdW50ID0gU1BFQ1BETF9JTkRFWCAo KTsKICAgICByZWNvcmRfdW53aW5kX3Byb3RlY3Rfbm90aGluZyAoKTsKLSAgICBmZCA9IG1r b3N0ZW1wICh0ZW1wZmlsZSwgT19DTE9FWEVDKTsKKyAgICBmZCA9IG1rb3N0ZW1wICh0ZW1w ZmlsZSwgT19CSU5BUlkgfCBPX0NMT0VYRUMpOwogICAgIGlmIChmZCA8IDApCiAgICAgICBy ZXBvcnRfZmlsZV9lcnJvciAoIkZhaWxlZCB0byBvcGVuIHRlbXBvcmFyeSBmaWxlIHVzaW5n IHBhdHRlcm4iLAogCQkJIHBhdHRlcm4pOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9lbWFj cy5jJwotLS0gc3JjL2VtYWNzLmMJMjAxNC0wNi0wMyAyMDowODowOCArMDAwMAorKysgc3Jj L2VtYWNzLmMJMjAxNC0wNy0xNCAwMjowMjoxNSArMDAwMApAQCAtNTEsNiArNTEsMTAgQEAK ICNpbmNsdWRlICJjeWd3MzIuaCIKICNlbmRpZgogCisjaWZkZWYgTVNET1MKKyNpbmNsdWRl IDxiaW5hcnktaW8uaD4KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAj aW5jbHVkZSBURVJNX0hFQURFUgogI2VuZGlmIC8qIEhBVkVfV0lORE9XX1NZU1RFTSAqLwpA QCAtOTE4LDIwICs5MjIsMTAgQEAKIAogI2VuZGlmCS8qIG5vdCBTWVNURU1fTUFMTE9DICov CiAKLSNpZiBkZWZpbmVkIChNU0RPUykgfHwgZGVmaW5lZCAoV0lORE9XU05UKQotICAvKiBX ZSBkbyBhbGwgZmlsZSBpbnB1dC9vdXRwdXQgYXMgYmluYXJ5IGZpbGVzLiAgV2hlbiB3ZSBu ZWVkIHRvIHRyYW5zbGF0ZQotICAgICBuZXdsaW5lcywgd2UgZG8gdGhhdCBtYW51YWxseS4g ICovCi0gIF9mbW9kZSA9IE9fQklOQVJZOwotI2VuZGlmIC8qIE1TRE9TIHx8IFdJTkRPV1NO VCAqLwotCiAjaWZkZWYgTVNET1MKLSAgaWYgKCFpc2F0dHkgKGZpbGVubyAoc3RkaW4pKSkK LSAgICBzZXRtb2RlIChmaWxlbm8gKHN0ZGluKSwgT19CSU5BUlkpOwotICBpZiAoIWlzYXR0 eSAoZmlsZW5vIChzdGRvdXQpKSkKLSAgICB7Ci0gICAgICBmZmx1c2ggKHN0ZG91dCk7Ci0g ICAgICBzZXRtb2RlIChmaWxlbm8gKHN0ZG91dCksIE9fQklOQVJZKTsKLSAgICB9CisgIFNF VF9CSU5BUlkgKGZpbGVubyAoc3RkaW4pKTsKKyAgZmZsdXNoIChzdGRvdXQpOworICBTRVRf QklOQVJZIChmaWxlbm8gKHN0ZG91dCkpOwogI2VuZGlmIC8qIE1TRE9TICovCiAKICAgLyog U2tpcCBpbml0aWFsIHNldGxvY2FsZSBpZiBMQ19BTEwgaXMgIkMiLCBhcyBpdCdzIG5vdCBu ZWVkZWQgaW4gdGhhdCBjYXNlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9taW5pYnVmLmMn Ci0tLSBzcmMvbWluaWJ1Zi5jCTIwMTQtMDctMTIgMDc6NDc6NDAgKzAwMDAKKysrIHNyYy9t aW5pYnVmLmMJMjAxNC0wNy0xMyAwNToyNDo0MyArMDAwMApAQCAtMjIsOSArMjIsNyBAQAog I2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KIAotI2lmZGVmIFdJTkRP V1NOVAotI2luY2x1ZGUgPGZjbnRsLmg+CS8qIEZvciBPX0JJTkFSWSwgT19URVhULiAqLwot I2VuZGlmCisjaW5jbHVkZSA8YmluYXJ5LWlvLmg+CiAKICNpbmNsdWRlICJsaXNwLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMuaCIKQEAgLTIzMSw2ICsyMjksNyBAQAogICBpbnQgYzsKICAg dW5zaWduZWQgY2hhciBoaWRlX2NoYXIgPSAwOwogICBzdHJ1Y3QgZW1hY3NfdHR5IGV0dHk7 CisgIGJvb2wgZXR0eV92YWxpZDsKIAogICAvKiBDaGVjaywgd2hldGhlciB3ZSBuZWVkIHRv IHN1cHByZXNzIGVjaG9pbmcuICAqLwogICBpZiAoQ0hBUkFDVEVSUCAoVnJlYWRfaGlkZV9j aGFyKSkKQEAgLTIzOSwxMSArMjM4LDkgQEAKICAgLyogTWFuaXB1bGF0ZSB0dHkuICAqLwog ICBpZiAoaGlkZV9jaGFyKQogICAgIHsKLSAgICAgIGVtYWNzX2dldF90dHkgKGZpbGVubyAo c3RkaW4pLCAmZXR0eSk7Ci0jaWZkZWYgV0lORE9XU05UCi0gICAgICBpZiAoaXNhdHR5IChm aWxlbm8gKHN0ZGluKSkpCi0JX3NldG1vZGUgKGZpbGVubyAoc3RkaW4pLCBPX0JJTkFSWSk7 Ci0jZW5kaWYKKyAgICAgIGV0dHlfdmFsaWQgPSBlbWFjc19nZXRfdHR5IChmaWxlbm8gKHN0 ZGluKSwgJmV0dHkpID09IDA7CisgICAgICBpZiAoZXR0eV92YWxpZCkKKwlzZXRfYmluYXJ5 X21vZGUgKGZpbGVubyAoc3RkaW4pLCBPX0JJTkFSWSk7CiAgICAgICBzdXBwcmVzc19lY2hv X29uX3R0eSAoZmlsZW5vIChzdGRpbikpOwogICAgIH0KIApAQCAtMjgxLDExICsyNzgsMTEg QEAKICAgaWYgKGhpZGVfY2hhcikKICAgICB7CiAgICAgICBmcHJpbnRmIChzdGRvdXQsICJc biIpOwotICAgICAgZW1hY3Nfc2V0X3R0eSAoZmlsZW5vIChzdGRpbiksICZldHR5LCAwKTsK LSNpZmRlZiBXSU5ET1dTTlQKLSAgICAgIGlmIChpc2F0dHkgKGZpbGVubyAoc3RkaW4pKSkK LQlfc2V0bW9kZSAoZmlsZW5vIChzdGRpbiksIE9fVEVYVCk7Ci0jZW5kaWYKKyAgICAgIGlm IChldHR5X3ZhbGlkKQorCXsKKwkgIGVtYWNzX3NldF90dHkgKGZpbGVubyAoc3RkaW4pLCAm ZXR0eSwgMCk7CisJICBzZXRfYmluYXJ5X21vZGUgKGZpbGVubyAoc3RkaW4pLCBPX1RFWFQp OworCX0KICAgICB9CiAKICAgaWYgKGxlbiB8fCBjID09ICdcbicgfHwgYyA9PSAnXHInKQoK PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9wcm9jZXNzLmMnCi0tLSBzcmMvcHJvY2Vzcy5jCTIw MTQtMDctMDggMTc6MTM6MzIgKzAwMDAKKysrIHNyYy9wcm9jZXNzLmMJMjAxNC0wNy0xNCAw MjowMjoxNSArMDAwMApAQCAtODgsNiArODgsNyBAQAogI2luY2x1ZGUgPHB0eS5oPgogI2Vu ZGlmCiAKKyNpbmNsdWRlIDxiaW5hcnktaW8uaD4KICNpbmNsdWRlIDxjLWN0eXBlLmg+CiAj aW5jbHVkZSA8c2lnMnN0ci5oPgogI2luY2x1ZGUgPHZlcmlmeS5oPgpAQCAtMzE0Miw2ICsz MTQzLDggQEAKIAkgIGNvbnRpbnVlOwogCX0KIAorICAgICAgc2V0X2JpbmFyeV9tb2RlIChz LCBPX0JJTkFSWSk7CisKICNpZmRlZiBEQVRBR1JBTV9TT0NLRVRTCiAgICAgICBpZiAoIWlz X3NlcnZlciAmJiBzb2NrdHlwZSA9PSBTT0NLX0RHUkFNKQogCWJyZWFrOwpAQCAtMzUzNSw2 ICszNTM4LDcgQEAKICAgICByZXR1cm4gUW5pbDsKICAgY291bnQgPSBTUEVDUERMX0lOREVY ICgpOwogICByZWNvcmRfdW53aW5kX3Byb3RlY3RfaW50IChjbG9zZV9maWxlX3Vud2luZCwg cyk7CisgIHNldF9iaW5hcnlfbW9kZSAocywgT19CSU5BUlkpOwogCiAgIGRvCiAgICAgewpA QCAtMzY4Nyw2ICszNjkxLDcgQEAKICAgICByZXR1cm4gUW5pbDsKICAgY291bnQgPSBTUEVD UERMX0lOREVYICgpOwogICByZWNvcmRfdW53aW5kX3Byb3RlY3RfaW50IChjbG9zZV9maWxl X3Vud2luZCwgcyk7CisgIHNldF9iaW5hcnlfbW9kZSAocywgT19CSU5BUlkpOwogCiAgIGVs dCA9IFFuaWw7CiAjaWYgZGVmaW5lZCAoU0lPQ0dJRkZMQUdTKSAmJiBkZWZpbmVkIChIQVZF X1NUUlVDVF9JRlJFUV9JRlJfRkxBR1MpCkBAIC00MTM0LDYgKzQxMzksNyBAQAogICBjaGFu X3Byb2Nlc3Nbc10gPSBwcm9jOwogCiAgIGZjbnRsIChzLCBGX1NFVEZMLCBPX05PTkJMT0NL KTsKKyAgc2V0X2JpbmFyeV9tb2RlIChzLCBPX0JJTkFSWSk7CiAKICAgcCA9IFhQUk9DRVNT IChwcm9jKTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9zeXNkZXAuYycKLS0tIHNyYy9z eXNkZXAuYwkyMDE0LTA3LTExIDE3OjU1OjI0ICswMDAwCisrKyBzcmMvc3lzZGVwLmMJMjAx NC0wNy0xNCAwMjowMjoxNSArMDAwMApAQCAtNzc1LDggKzc3NSw5IEBACiAvKiBHZXR0aW5n IGFuZCBzZXR0aW5nIGVtYWNzX3R0eSBzdHJ1Y3R1cmVzLiAgKi8KIAogLyogU2V0ICpUQyB0 byB0aGUgcGFyYW1ldGVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHRlcm1pbmFsIEZELAotICAg b3IgY2xlYXIgaXQgaWYgdGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBhdmFpbGFibGUuICAqLwot dm9pZAorICAgb3IgY2xlYXIgaXQgaWYgdGhlIHBhcmFtZXRlcnMgYXJlIG5vdCBhdmFpbGFi bGUuCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSAoc2V0dGluZyBlcnJubykgb24gZmFp bHVyZS4gICovCitpbnQKIGVtYWNzX2dldF90dHkgKGludCBmZCwgc3RydWN0IGVtYWNzX3R0 eSAqc2V0dGluZ3MpCiB7CiAgIC8qIFJldHJpZXZlIHRoZSBwcmltYXJ5IHBhcmFtZXRlcnMg LSBiYXVkIHJhdGUsIGNoYXJhY3RlciBzaXplLCBldGNldGVyYS4gICovCkBAIC03ODYsMTUg Kzc4NywxNiBAQAogICBIQU5ETEUgaCA9IChIQU5ETEUpX2dldF9vc2ZoYW5kbGUgKGZkKTsK ICAgRFdPUkQgY29uc29sZV9tb2RlOwogCi0gIGlmIChoICYmIGggIT0gSU5WQUxJRF9IQU5E TEVfVkFMVUUpCisgIGlmIChoICYmIGggIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUgJiYgR2V0 Q29uc29sZU1vZGUgKGgsICZjb25zb2xlX21vZGUpKQogICAgIHsKLSAgICAgIGlmIChHZXRD b25zb2xlTW9kZSAoaCwgJmNvbnNvbGVfbW9kZSkpCi0Jc2V0dGluZ3MtPm1haW4gPSBjb25z b2xlX21vZGU7CisgICAgICBzZXR0aW5ncy0+bWFpbiA9IGNvbnNvbGVfbW9kZTsKKyAgICAg IHJldHVybiAwOwogICAgIH0KICNlbmRpZgkvKiBXSU5ET1dTTlQgKi8KKyAgcmV0dXJuIGlz YXR0eSAoZmQpIC0gMTsKICNlbHNlCS8qICFET1NfTlQgKi8KICAgLyogV2UgaGF2ZSB0aG9z ZSBuaWZ0eSBQT1NJWCB0Y211bWJsZWF0dHIgZnVuY3Rpb25zLiAgKi8KLSAgdGNnZXRhdHRy IChmZCwgJnNldHRpbmdzLT5tYWluKTsKKyAgcmV0dXJuIHRjZ2V0YXR0ciAoZmQsICZzZXR0 aW5ncy0+bWFpbik7CiAjZW5kaWYKIH0KIApAQCAtMjE5OCw2ICsyMjAwLDcgQEAKICNlbmRp ZgogCiAvKiBPcGVuIEZJTEUgZm9yIEVtYWNzIHVzZSwgdXNpbmcgb3BlbiBmbGFncyBPRkxB RyBhbmQgbW9kZSBNT0RFLgorICAgVXNlIGJpbmFyeSBJL08gb24gc3lzdGVtcyB0aGF0IGNh cmUgYWJvdXQgdGV4dCB2cyBiaW5hcnkgSS9PLgogICAgQXJyYW5nZSBmb3Igc3VicHJvZ3Jh bXMgdG8gbm90IGluaGVyaXQgdGhlIGZpbGUgZGVzY3JpcHRvci4KICAgIFByZWZlciBhIG1l dGhvZCB0aGF0IGlzIG11bHRpdGhyZWFkLXNhZmUsIGlmIGF2YWlsYWJsZS4KICAgIERvIG5v dCBmYWlsIG1lcmVseSBiZWNhdXNlIHRoZSBvcGVuIHdhcyBpbnRlcnJ1cHRlZCBieSBhIHNp Z25hbC4KQEAgLTIyMDcsNyArMjIxMCw3IEBACiBlbWFjc19vcGVuIChjb25zdCBjaGFyICpm aWxlLCBpbnQgb2ZsYWdzLCBpbnQgbW9kZSkKIHsKICAgaW50IGZkOwotICBvZmxhZ3MgfD0g T19DTE9FWEVDOworICBvZmxhZ3MgfD0gT19CSU5BUlkgfCBPX0NMT0VYRUM7CiAgIHdoaWxl ICgoZmQgPSBvcGVuIChmaWxlLCBvZmxhZ3MsIG1vZGUpKSA8IDAgJiYgZXJybm8gPT0gRUlO VFIpCiAgICAgUVVJVDsKICAgaWYgKCEgT19DTE9FWEVDICYmIDAgPD0gZmQpCkBAIC0yMjU0 LDcgKzIyNTcsNyBAQAogI2lmZGVmIE1TRE9TCiAgIHJldHVybiBwaXBlIChmZCk7CiAjZWxz ZSAgLyogIU1TRE9TICovCi0gIGludCByZXN1bHQgPSBwaXBlMiAoZmQsIE9fQ0xPRVhFQyk7 CisgIGludCByZXN1bHQgPSBwaXBlMiAoZmQsIE9fQklOQVJZIHwgT19DTE9FWEVDKTsKICAg aWYgKCEgT19DTE9FWEVDICYmIHJlc3VsdCA9PSAwKQogICAgIHsKICAgICAgIGZjbnRsIChm ZFswXSwgRl9TRVRGRCwgRkRfQ0xPRVhFQyk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3N5 c3R0eS5oJwotLS0gc3JjL3N5c3R0eS5oCTIwMTQtMDctMTEgMTc6NTU6MjQgKzAwMDAKKysr IHNyYy9zeXN0dHkuaAkyMDE0LTA3LTEyIDIwOjQ3OjUwICswMDAwCkBAIC04MCw3ICs4MCw3 IEBACiB9OwogDAogLyogRnJvbSBzeXNkZXAuYyBvciB3MzIuYyAgKi8KLWV4dGVybiB2b2lk IGVtYWNzX2dldF90dHkgKGludCwgc3RydWN0IGVtYWNzX3R0eSAqKSBFWFRFUk5BTExZX1ZJ U0lCTEU7CitleHRlcm4gaW50IGVtYWNzX2dldF90dHkgKGludCwgc3RydWN0IGVtYWNzX3R0 eSAqKSBFWFRFUk5BTExZX1ZJU0lCTEU7CiBleHRlcm4gaW50IGVtYWNzX3NldF90dHkgKGlu dCwgc3RydWN0IGVtYWNzX3R0eSAqLCBib29sKSBFWFRFUk5BTExZX1ZJU0lCTEU7CiBleHRl cm4gdm9pZCBzdXBwcmVzc19lY2hvX29uX3R0eSAoaW50KTsKIGV4dGVybiBpbnQgc2VyaWFs X29wZW4gKExpc3BfT2JqZWN0KTsKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvdzMyLmMnCi0t LSBzcmMvdzMyLmMJMjAxNC0wNy0xMCAxOTowOToyNiArMDAwMAorKysgc3JjL3czMi5jCTIw MTQtMDctMTQgMDI6MDI6MTUgKzAwMDAKQEAgLTg4Miw3ICs4ODIsNyBAQAogCSAgZ19iX2lu aXRfc2V0X25hbWVkX3NlY3VyaXR5X2luZm9fYSA9IDE7CiAJICBobV9hZHZhcGkzMiA9IExv YWRMaWJyYXJ5ICgiQWR2YXBpMzIuZGxsIik7CiAJICBzX3Bmbl9TZXRfTmFtZWRfU2VjdXJp dHlfSW5mb0EgPQotCSAgICAoU2V0TmFtZWRTZWN1cml0eUluZm9BX1Byb2MpIEdldFByb2NB ZGRyZXNzIChobV9hZHZhcGkzMiwKKwkgICAgKFNldE5hbWVkU2VjdXJpdHlJbmZvQV9Qcm9j KSBHZXRQcm9jQWRkcmVzcyAoaG1fYWR2YXBpMzIsCiAJCQkJCQkJICJTZXROYW1lZFNlY3Vy aXR5SW5mb0EiKTsKIAl9CiAgICAgICBpZiAoc19wZm5fU2V0X05hbWVkX1NlY3VyaXR5X0lu Zm9BID09IE5VTEwpCkBAIC03ODY1LDcgKzc4NjUsNyBAQAogICBpbnQgcmM7CiAgIHVuc2ln bmVkIGZsYWdzOwogCi0gIGVhc3NlcnQgKHBpcGUyX2ZsYWdzID09IE9fQ0xPRVhFQyk7Cisg IGVhc3NlcnQgKHBpcGUyX2ZsYWdzID09IChPX0JJTkFSWSB8IE9fQ0xPRVhFQykpOwogCiAg IC8qIG1ha2UgcGlwZSBoYW5kbGVzIG5vbi1pbmhlcml0YWJsZTsgd2hlbiB3ZSBzcGF3biBh IGNoaWxkLCB3ZQogICAgICByZXBsYWNlIHRoZSByZWxldmFudCBoYW5kbGUgd2l0aCBhbiBp bmhlcml0YWJsZSBvbmUuICBBbHNvIHB1dAoK --------------040508070105040200040706-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 14 11:21:52 2014 Received: (at 18006) by debbugs.gnu.org; 14 Jul 2014 15:21:52 +0000 Received: from localhost ([127.0.0.1]:54790 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6i4a-00055i-Jj for submit@debbugs.gnu.org; Mon, 14 Jul 2014 11:21:52 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:42115) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6i4V-00055R-4q for 18006@debbugs.gnu.org; Mon, 14 Jul 2014 11:21:47 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0N8P00E00JVSI300@a-mtaout22.012.net.il> for 18006@debbugs.gnu.org; Mon, 14 Jul 2014 18:21:36 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N8P00EDEK005S80@a-mtaout22.012.net.il>; Mon, 14 Jul 2014 18:21:36 +0300 (IDT) Date: Mon, 14 Jul 2014 18:21:49 +0300 From: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode In-reply-to: <53C33C6A.6060601@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <83pph87ype.fsf@gnu.org> References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> <8338e59u9u.fsf@gnu.org> <53C33C6A.6060601@cs.ucla.edu> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 13 Jul 2014 19:11:54 -0700 > From: Paul Eggert > CC: 18006@debbugs.gnu.org > > Eli Zaretskii wrote: > > > + return isatty (fd) - 1; > > > Do we need this "-1" part now? It could misfire if isatty does > return 1 some day. > > Sorry, I don't so how it can misfire. isatty returns 1 on success, 0 > on failure; whereas the caller returns 0 on success, -1 on > failure. So subtracting 1 is the right thing to do, no? The MinGW isatty returns a non-zero value for any character device (e.g., the null device), not just for the console. GetConsoleMode fails for anything that isn't a console, so the code will fall through to this line, and return something other than -1. In addition, even when the descriptor _is_ connected to a console, isatty returns a value that is not 1. You already return zero for success, so I think it is better to use an explicit return -1; here. Or did I miss something? > A revised patch, taking your other comments into account, is > attached. It's relative to trunk bzr 117527. Thanks. This goes farther than I intended (I didn't intend to remove _fmode from src/ files), but I guess it's good to get rid of _fmode there as well. It does trigger a couple more comments, though: > === modified file 'src/process.c' > --- src/process.c 2014-07-08 17:13:32 +0000 > +++ src/process.c 2014-07-14 02:02:15 +0000 > @@ -88,6 +88,7 @@ > #include > #endif > > +#include > #include > #include > #include > @@ -3142,6 +3143,8 @@ > continue; > } > > + set_binary_mode (s, O_BINARY); This and other similar changes in process.c are unnecessary: sockets don't need to be switched to binary mode. Moreover, the file descriptor returned by 'sys_socket' (a wrapper for 'socket') on MS-Windows is not used for any actual I/O, it is used as a key for looking up socket handles recorded in a table maintained by w32.c. Of course, if you want to have this for consistency, it cannot do any harm in this case. > /* Open FILE for Emacs use, using open flags OFLAG and mode MODE. > + Use binary I/O on systems that care about text vs binary I/O. > Arrange for subprograms to not inherit the file descriptor. > Prefer a method that is multithread-safe, if available. > Do not fail merely because the open was interrupted by a signal. > @@ -2207,7 +2210,7 @@ > emacs_open (const char *file, int oflags, int mode) > { > int fd; > - oflags |= O_CLOEXEC; > + oflags |= O_BINARY | O_CLOEXEC; > while ((fd = open (file, oflags, mode)) < 0 && errno == EINTR) This is not quite right, as it effectively disallows opening a file in text mode (lread.c, xfaces.c, and termcap.c use that feature). It's probably my fault: I failed to mention that _fmode controls only the _default_ open mode, which can still be overridden by an explicit O_BINARY or O_TEXT flag. So the above addition of O_BINARY should be conditioned on O_TEXT not being set in OFLAGS. Otherwise, the patch looks good to me. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 14 16:16:27 2014 Received: (at 18006) by debbugs.gnu.org; 14 Jul 2014 20:16:27 +0000 Received: from localhost ([127.0.0.1]:54992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6mfi-0007rO-2C for submit@debbugs.gnu.org; Mon, 14 Jul 2014 16:16:26 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:49307) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X6mff-0007r9-Ab for 18006@debbugs.gnu.org; Mon, 14 Jul 2014 16:16:24 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id B8FADA60002; Mon, 14 Jul 2014 13:16:16 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cUrdO1wrx7gB; Mon, 14 Jul 2014 13:16:11 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 9A0C3A6000E; Mon, 14 Jul 2014 13:16:11 -0700 (PDT) Message-ID: <53C43A86.4070303@cs.ucla.edu> Date: Mon, 14 Jul 2014 13:16:06 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> <8338e59u9u.fsf@gnu.org> <53C33C6A.6060601@cs.ucla.edu> <83pph87ype.fsf@gnu.org> In-Reply-To: <83pph87ype.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------070802030709020101090309" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------070802030709020101090309 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Eli Zaretskii wrote: > Otherwise, the patch looks good to me. Thanks; I installed it after fixing things up as per your comments. Your explanation of _fmode led me to find a minor porting bug. Fx_load_color_file [!HAVE_X_WINDOWS] uses fopen with "rt"; unlike "rb" this isn't specified by POSIX and a web search suggests that it does fail on a few older platforms. Emacs no longer modifies _fmode so "r" should suffice now anyway. Also, there are two other places where some "rt"-related simplifications can be done. Proposed further patch attached. --------------070802030709020101090309 Content-Type: text/plain; charset=UTF-8; name="binary-io.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="binary-io.patch" PT09IG1vZGlmaWVkIGZpbGUgJ2xpYi1zcmMvQ2hhbmdlTG9nJwotLS0gbGliLXNyYy9DaGFu Z2VMb2cJMjAxNC0wNy0xNCAxOToyMzoxOCArMDAwMAorKysgbGliLXNyYy9DaGFuZ2VMb2cJ MjAxNC0wNy0xNCAxOTo0Njo1NCArMDAwMApAQCAtMSw1ICsxLDkgQEAKIDIwMTQtMDctMTQg IFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogCisJVXNlICJiIiBmbGFnIG1v cmUgY29uc2lzdGVudGx5OyBhdm9pZCAidCIgKEJ1ZyMxODAwNikuCisJKiBtYWtlLWRvY2Zp bGUuYyAoUkVBRF9URVhUKTogUmVtb3ZlOyBhbGwgdXNlcyByZXBsYWNlZCBieSAiciIuCisJ KFJFQURfQklOQVJZKTogUmVtb3ZlOyBhbGwgdXNlcyByZXBsYWNlZCBieSAicmIiLgorCiAJ VXNlIGJpbmFyeS1pbyBtb2R1bGUsIE9fQklOQVJZLCBhbmQgImIiIGZsYWcgKEJ1ZyMxODAw NikuCiAJKiBldGFncy5jLCBoZXhsLmMsIG1ha2UtZG9jZmlsZS5jOgogCUluY2x1ZGUgYmlu YXJ5LWlvLmggaW5zdGVhZCBvZiBmY250bC5oIGFuZC9vciBpby5oLgoKPT09IG1vZGlmaWVk IGZpbGUgJ2xpYi1zcmMvbWFrZS1kb2NmaWxlLmMnCi0tLSBsaWItc3JjL21ha2UtZG9jZmls ZS5jCTIwMTQtMDctMTQgMTk6MjM6MTggKzAwMDAKKysrIGxpYi1zcmMvbWFrZS1kb2NmaWxl LmMJMjAxNC0wNy0xNCAxOTo0Njo1NCArMDAwMApAQCAtNTUsMTIgKzU1LDggQEAKICAgIFNp bWlsYXJseSwgbXNkb3MgZGVmaW5lcyB0aGlzIGFzIHN5c19jaGRpciwgYnV0IHdlJ3JlIG5v dCBsaW5raW5nIHdpdGggdGhlCiAgICBmaWxlIHdoZXJlIHRoYXQgZnVuY3Rpb24gaXMgZGVm aW5lZC4gICovCiAjdW5kZWYgY2hkaXIKLSNkZWZpbmUgUkVBRF9URVhUICJydCIKLSNkZWZp bmUgUkVBRF9CSU5BUlkgInJiIgogI2RlZmluZSBJU19TTEFTSChjKSAgKChjKSA9PSAnLycg fHwgKGMpID09ICdcXCcgfHwgKGMpID09ICc6JykKICNlbHNlICAvKiBub3QgRE9TX05UICov Ci0jZGVmaW5lIFJFQURfVEVYVCAiciIKLSNkZWZpbmUgUkVBRF9CSU5BUlkgInIiCiAjZGVm aW5lIElTX1NMQVNIKGMpICAoKGMpID09ICcvJykKICNlbmRpZiAvKiBub3QgRE9TX05UICov CiAKQEAgLTIxNiwxMSArMjEyLDExIEBACiAgIGlmICghZ2VuZXJhdGVfZ2xvYmFscykKICAg ICBwdXRfZmlsZW5hbWUgKGZpbGVuYW1lKTsKICAgaWYgKGxlbiA+IDQgJiYgIXN0cmNtcCAo ZmlsZW5hbWUgKyBsZW4gLSA0LCAiLmVsYyIpKQotICAgIHJldHVybiBzY2FuX2xpc3BfZmls ZSAoZmlsZW5hbWUsIFJFQURfQklOQVJZKTsKKyAgICByZXR1cm4gc2Nhbl9saXNwX2ZpbGUg KGZpbGVuYW1lLCAicmIiKTsKICAgZWxzZSBpZiAobGVuID4gMyAmJiAhc3RyY21wIChmaWxl bmFtZSArIGxlbiAtIDMsICIuZWwiKSkKLSAgICByZXR1cm4gc2Nhbl9saXNwX2ZpbGUgKGZp bGVuYW1lLCBSRUFEX1RFWFQpOworICAgIHJldHVybiBzY2FuX2xpc3BfZmlsZSAoZmlsZW5h bWUsICJyIik7CiAgIGVsc2UKLSAgICByZXR1cm4gc2Nhbl9jX2ZpbGUgKGZpbGVuYW1lLCBS RUFEX1RFWFQpOworICAgIHJldHVybiBzY2FuX2NfZmlsZSAoZmlsZW5hbWUsICJyIik7CiB9 CiAKIHN0YXRpYyB2b2lkCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL0NoYW5nZUxvZycKLS0t IHNyYy9DaGFuZ2VMb2cJMjAxNC0wNy0xNCAxOToyMzoxOCArMDAwMAorKysgc3JjL0NoYW5n ZUxvZwkyMDE0LTA3LTE0IDE5OjQ2OjU0ICswMDAwCkBAIC0xLDUgKzEsMTAgQEAKIDIwMTQt MDctMTQgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogCisJVXNlICJiIiBm bGFnIG1vcmUgY29uc2lzdGVudGx5OyBhdm9pZCAidCIgKEJ1ZyMxODAwNikuCisJKiBscmVh ZC5jIChGbG9hZCkgW0RPU19OVF06CisJKiB4ZmFjZXMuYyAoRnhfbG9hZF9jb2xvcl9maWxl KSBbIUhBVkVfWF9XSU5ET1dTXToKKwlObyBsb25nZXIgbmVlZCB0byB1c2UgInJ0IiBpbnN0 ZWFkIG9mICJyIi4KKwogCVVzZSBiaW5hcnktaW8gbW9kdWxlLCBPX0JJTkFSWSwgYW5kICJi IiBmbGFnIChCdWcjMTgwMDYpLgogCSogY2FsbHByb2MuYyAoY3JlYXRlX3RlbXBfZmlsZSk6 IFVzZSBta29zdGVtcCdzIE9fQklOQVJZIGZsYWcuCiAJKiBlbWFjcy5jIFtNU0RPU106Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2xyZWFkLmMnCi0tLSBzcmMvbHJlYWQuYwkyMDE0LTA3 LTAyIDAzOjI2OjE5ICswMDAwCisrKyBzcmMvbHJlYWQuYwkyMDE0LTA3LTE0IDE5OjQ2OjU0 ICswMDAwCkBAIC0xMDYxLDEwICsxMDYxLDYgQEAKICAgY29uc3QgY2hhciAqZm1vZGUgPSAi ciI7CiAgIGludCB2ZXJzaW9uOwogCi0jaWZkZWYgRE9TX05UCi0gIGZtb2RlID0gInJ0IjsK LSNlbmRpZiAvKiBET1NfTlQgKi8KLQogICBDSEVDS19TVFJJTkcgKGZpbGUpOwogCiAgIC8q IElmIGZpbGUgbmFtZSBpcyBtYWdpYywgY2FsbCB0aGUgaGFuZGxlci4gICovCkBAIC0xMTY5 LDcgKzExNjUsNyBAQAogCSBUcmFtcCBkb2VzIG5vdCBjYXRjaCBgbG9hZCcgb3BlcmF0aW9u cyBmb3Igc3VjaCBmaWxlcywgc28gd2UKIAkgZW5kIHVwIHdpdGggYSBuaWwgYXMgdGhlIGBs b2FkJyBoYW5kbGVyIGFib3ZlLiAgSWYgd2Ugd291bGQKIAkgY29udGludWUgd2l0aCBmZCA9 IC0yLCB3ZSB3aWxsIGJlaGF2ZSB3cm9uZ2x5LCBhbmQgaW4KLQkgcGFydGljdWxhciB0cnkg cmVhZGluZyBhIC5lbGMgZmlsZSBpbiB0aGUgInJ0IiBtb2RlIGluc3RlYWQKKwkgcGFydGlj dWxhciB0cnkgcmVhZGluZyBhIC5lbGMgZmlsZSBpbiB0aGUgInIiIG1vZGUgaW5zdGVhZAog CSBvZiAicmIiLiAgU2VlIGJ1ZyAjOTMxMSBmb3IgdGhlIHJlc3VsdHMuICBUbyB3b3JrIGFy b3VuZAogCSB0aGlzLCB3ZSB0cnkgdG8gb3BlbiB0aGUgZmlsZSBsb2NhbGx5LCBhbmQgZ28g d2l0aCB0aGF0IGlmIGl0CiAJIHN1Y2NlZWRzLiAgKi8KCj09PSBtb2RpZmllZCBmaWxlICdz cmMveGZhY2VzLmMnCi0tLSBzcmMveGZhY2VzLmMJMjAxNC0wNy0wNyAyMzozMzowNSArMDAw MAorKysgc3JjL3hmYWNlcy5jCTIwMTQtMDctMTQgMTk6NDY6NTQgKzAwMDAKQEAgLTYyNTYs NyArNjI1Niw3IEBACiAgIGFic3BhdGggPSBGZXhwYW5kX2ZpbGVfbmFtZSAoZmlsZW5hbWUs IFFuaWwpOwogCiAgIGJsb2NrX2lucHV0ICgpOwotICBmcCA9IGVtYWNzX2ZvcGVuIChTU0RB VEEgKGFic3BhdGgpLCAicnQiKTsKKyAgZnAgPSBlbWFjc19mb3BlbiAoU1NEQVRBIChhYnNw YXRoKSwgInIiKTsKICAgaWYgKGZwKQogICAgIHsKICAgICAgIGNoYXIgYnVmWzUxMl07Cgo= --------------070802030709020101090309-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 10:37:42 2014 Received: (at 18006) by debbugs.gnu.org; 15 Jul 2014 14:37:42 +0000 Received: from localhost ([127.0.0.1]:55733 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X73rO-0003pp-1d for submit@debbugs.gnu.org; Tue, 15 Jul 2014 10:37:41 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:33521) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X73rI-0003pU-NK for 18006@debbugs.gnu.org; Tue, 15 Jul 2014 10:37:36 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0N8R00L00CG9ZY00@a-mtaout23.012.net.il> for 18006@debbugs.gnu.org; Tue, 15 Jul 2014 17:37:26 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N8R00LFPCMDZP10@a-mtaout23.012.net.il>; Tue, 15 Jul 2014 17:37:26 +0300 (IDT) Date: Tue, 15 Jul 2014 17:37:40 +0300 From: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode In-reply-to: <53C43A86.4070303@cs.ucla.edu> X-012-Sender: halo1@inter.net.il To: Paul Eggert Message-id: <83egxm8z7v.fsf@gnu.org> References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> <8338e59u9u.fsf@gnu.org> <53C33C6A.6060601@cs.ucla.edu> <83pph87ype.fsf@gnu.org> <53C43A86.4070303@cs.ucla.edu> X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 18006 Cc: 18006@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Mon, 14 Jul 2014 13:16:06 -0700 > From: Paul Eggert > CC: 18006@debbugs.gnu.org > > Your explanation of _fmode led me to find a minor porting bug. > Fx_load_color_file [!HAVE_X_WINDOWS] uses fopen with "rt"; unlike "rb" > this isn't specified by POSIX and a web search suggests that it does > fail on a few older platforms. Emacs no longer modifies _fmode so "r" > should suffice now anyway. Also, there are two other places where some > "rt"-related simplifications can be done. Proposed further patch attached. Thanks. The lib-src part looks OK to me. > --- src/ChangeLog 2014-07-14 19:23:18 +0000 > +++ src/ChangeLog 2014-07-14 19:46:54 +0000 > @@ -1,5 +1,10 @@ > 2014-07-14 Paul Eggert > > + Use "b" flag more consistently; avoid "t" (Bug#18006). > + * lread.c (Fload) [DOS_NT]: > + * xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]: > + No longer need to use "rt" instead of "r". This part doesn't look right. If we don't use "rt", then when emacs_fopen calls emacs_open, the latter will interpret the lack of "t" as a sign to use the default binary mode, which is not what we want. I think we can fix this in one of 2 ways: either (a) let emacs_fopen start with O_TEXT in bmode by default, at least on DOS_NT platforms; or (b) change emacs_open back to not apply O_BINARY by default, and instead use "rb", "wb", and O_BINARY in all the places except those that use "rt" or "wt" now. I like the latter alternative better, because the former makes emacs_fopen and emacs_open use 2 different defaults (text vs binary), which is contrary to intuition and easy to forget. WDYT? From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 15 15:39:54 2014 Received: (at 18006-done) by debbugs.gnu.org; 15 Jul 2014 19:39:54 +0000 Received: from localhost ([127.0.0.1]:55833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X78Zt-0003h9-JV for submit@debbugs.gnu.org; Tue, 15 Jul 2014 15:39:53 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:45946) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X78Zs-0003gw-Ac for 18006-done@debbugs.gnu.org; Tue, 15 Jul 2014 15:39:52 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 22491A60007; Tue, 15 Jul 2014 12:39:46 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jgvBrMQtFrN8; Tue, 15 Jul 2014 12:39:37 -0700 (PDT) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 470FF39E801B; Tue, 15 Jul 2014 12:39:37 -0700 (PDT) Message-ID: <53C58378.2000405@cs.ucla.edu> Date: Tue, 15 Jul 2014 12:39:36 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Eli Zaretskii Subject: Re: bug#18006: Simplify via set_binary_mode References: <53C1A00C.6050906@cs.ucla.edu> <837g3hanzp.fsf@gnu.org> <53C21918.9020001@cs.ucla.edu> <8338e59u9u.fsf@gnu.org> <53C33C6A.6060601@cs.ucla.edu> <83pph87ype.fsf@gnu.org> <53C43A86.4070303@cs.ucla.edu> <83egxm8z7v.fsf@gnu.org> In-Reply-To: <83egxm8z7v.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18006-done Cc: 18006-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Eli Zaretskii wrote: > The lib-src part looks OK to me. Thanks, I installed that. > This part doesn't look right. If we don't use "rt", then when > emacs_fopen calls emacs_open Ah, sorry, that part was a false alarm. I forgot that emacs_fopen doesn't pass the mode string to fopen, which means there's no portability bug there after all. If we were going to make a change I'd prefer your (a) to your (b) as it keeps the mainline code simpler, but doing nothing at all is simpler yet, so I'll close the bug. From unknown Mon Aug 18 15:40:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 13 Aug 2014 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator