Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Mon, 15 Apr 2002 22:00:43 +0200 From: Pavel Tsekov Reply-To: Pavel Tsekov X-Priority: 3 (Normal) Message-ID: <1653605153.20020415220043@gmx.net> To: cygwin AT cygwin DOT com Subject: [PATCH] cygutils:conv.c: Prevent truncation of file if 0xFF is encountered MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------591441A613FBFE6A" Note-from-DJ: This may be spam ------------591441A613FBFE6A Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello ;) Today a colleague of mine was struck by a bug of dos2unix/unix2dos utilities i.e. if the code encounters 0xFF in the file being processed it erronously thinks that this is the EOF and stops processing. The result is that the original file is truncated to the position of the 0xFF character. As to why we have such characters in source file - our mother language is bulgarian and we sometimes still type comments in it :) A patch is attached to fix this behaviour. ------------591441A613FBFE6A Content-Type: application/octet-stream; name="conv.c.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="conv.c.diff" LS0tIGN5Z3V0aWxzLTEuMC4wL3NyYy9jb252L2NvbnYuYwlTdW4gTWFyICAzIDAzOjA5OjM5IDIw MDIKKysrIC9ob21lL3BhdmVsdHovY29udi5jCU1vbiBBcHIgMTUgMTk6Mjg6MTYgMjAwMgpAQCAt MzI2LDYgKzMyNiw3IEBAIHN0YXRpYyBpbnQgY29udmVydChjb25zdCBjaGFyICpmbiwgaW50IEMK ICAgY2hhciAqdGVtcEZuOwogICBGSUxFICppbiA9IHN0ZGluLCAqb3V0ID0gc3Rkb3V0OwogICBj aGFyIGJ1ZltQQVRIX01BWCAqIDJdOworICBpbnQgZXJyb3I7CiAgIGlmIChmbiAhPSBOVUxMKSB7 CiAgICAgZnByaW50ZihzdGRlcnIsICIlczogIiwgZm4pOwogICAgIGlmICgoaW4gPSBmb3Blbihm biwgInJiIikpID09IE5VTEwpIHsKQEAgLTM0NSw3ICszNDYsOCBAQCBzdGF0aWMgaW50IGNvbnZl cnQoY29uc3QgY2hhciAqZm4sIGludCBDCiAgICAgc2V0bW9kZSgxLCBPX0JJTkFSWSk7CiAgIH0K IAotICB3aGlsZSAoKGMgPSBmZ2V0YyhpbikpICE9IEVPRikgeworICB3aGlsZSAoKGMgPSBmZ2V0 YyhpbikpICE9IEVPRiB8fAorICAgICAgICAgIShlcnJvciA9IChmZW9mIChpbikgIT0gMCB8fCBm ZXJyb3IoaW4pICE9IDApKSkgewogICAgIGlmIChjID09ICdccicpIHsKICAgICAgIGlmICgoQ29u dlR5cGUgPT0gQ1RfVU5JWDJET1MpICYmIChmbiAhPSBOVUxMKSkgewogICAgICAgICAvLyBmaWxl IGlzIGFscmVkeSBpbiBET1MgZm9ybWF0IHNvIGl0IGlzIG5vdCBuZWNlc3NlcnkgdG8gdG91Y2gg aXQKQEAgLTM5Myw4ICszOTUsOSBAQCBzdGF0aWMgaW50IGNvbnZlcnQoY29uc3QgY2hhciAqZm4s IGludCBDCiAgICAgfQogICAgIGZwdXRjKGMsIG91dCk7CiAgIH0KLSAgaWYgKGMgIT0gRU9GKQot ICAgIHdoaWxlICgoYyA9IGZnZXRjKGluKSkgIT0gRU9GKSB7CisgIGlmIChjICE9IEVPRiB8fCAh ZXJyb3IpCisgICAgd2hpbGUgKChjID0gZmdldGMoaW4pKSAhPSBFT0YgfHwKKyAgICAgICAgICAg IShlcnJvciA9IChmZW9mIChpbikgIT0gMCB8fCBmZXJyb3IoaW4pICE9IDApKSkgewogICAgICAg aWYgKGMgPT0gJ1xyJykKICAgICAgICAgY29udGludWU7CiAgICAgICBpZiAoYyA9PSAnXG4nKSB7 CkBAIC00MjQsNyArNDI3LDggQEAgc3RhdGljIGludCBjb252ZXJ0KGNvbnN0IGNoYXIgKmZuLCBp bnQgQwogICAgICAgcmV0dXJuIC0yOwogICAgIH0KIAotICAgIHdoaWxlICgoYyA9IGZnZXRjKGlu KSkgIT0gRU9GKQorICAgIHdoaWxlICgoYyA9IGZnZXRjKGluKSkgIT0gRU9GIHx8CisgICAgICAg ICAgICEoZXJyb3IgPSAoZmVvZiAoaW4pICE9IDAgfHwgZmVycm9yKGluKSAhPSAwKSkpCiAgICAg ICBmcHV0YyhjLCBvdXQpOwogCiAgICAgaWYgKGZjbG9zZShpbikgPCAwKSB7Cg== ------------591441A613FBFE6A Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------------591441A613FBFE6A--