X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:date:message-id:subject:from:to :content-type; q=dns; s=default; b=Vu+BJXXpY5bQH5hfkdNvQrBzexQqx LibfV9ssjclXupmqhVTpNE7epzRWQGjWPbLNP1Gt/gI6Jj63MY0Ifc+LQtA/W6Ey fP4vARq/PWLZ7VSZH3WhJv8+hXZUyikpNt8+CLn2tvopNAUCY6+WS1XH4zekJ/qL 8NAoxi+J5pNUoQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:date:message-id:subject:from:to :content-type; s=default; bh=vk7JP8bYX9mL/VlGHFtNB8nxEt8=; b=hCR hDLI3QU25asPb7AK3SZ9O/krf91RFk0Zrn+gcstVVF0Ijkx59jS03sOQzxfEoR5h 8y54ANaVlv4YpqAH5u20qh28w/78u+2wwiWas6NjW56sc/3QMP9C9Ui/XlrOa9Gy B28dsoqFZkImQQ0qrW1EnkO06kiBZg2pBuAC31yo= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_SV autolearn=ham version=3.3.1 MIME-Version: 1.0 X-Received: by 10.42.122.66 with SMTP id m2mr3435008icr.15.1364061362269; Sat, 23 Mar 2013 10:56:02 -0700 (PDT) Date: Sat, 23 Mar 2013 12:56:01 -0500 Message-ID: Subject: cvs changes to support CR/LF in Root & Repository files From: Bill Priest To: cygwin AT cygwin DOT com Content-Type: multipart/mixed; boundary=20cf3003bbb6f3371604d89b485e X-Virus-Found: No --20cf3003bbb6f3371604d89b485e Content-Type: text/plain; charset=ISO-8859-1 All, I used tortoisecvs (as a plugin for windows eclipse) to check out some repositories to a "windows 7" directory (e.g. not a cygwin directory). I tried to use the cygwin cvs client to diff files and check status but it complained ": no such repository" for "cvs log ". A simple dos2unix on the CVS/Root file changed the error to "cvs log: nothing known about "; a dos2unix on CVS/Repository allowed the "cvs log" command to work correctly. I'm used to being able to copy/move svn sandboxes between linux and windows w/o any issues so I checked into the cvs source to see what it would take to support LF as well as CR/LF. This issue isn't limited to the cygwin cvs as the same "sandbox" copied to linux has the same problem. I hacked the root.c and repos.c to work around the problem (as of yet I haven't seen any impact to commands wrt Entries and template don't seem to be affected. I've attached patch.txt with the changes. This can be tested by running dos2unix CVS/Root CVS/Repository; cvs log configure (the current version of cvs will not work while the patched version will work normally). Bill Index: ChangeLog =================================================================== RCS file: /sources/cvs/ccvs/ChangeLog,v retrieving revision 1.1379 diff -u -r1.1379 ChangeLog --- ChangeLog 12 Nov 2009 02:29:17 -0000 1.1379 +++ ChangeLog 23 Mar 2013 17:48:31 -0000 @@ -1,3 +1,8 @@ +2013-03-23 Bill Pries + + * root.c: Support CR/LF as well as LF + * repos.c: Support CR/LF as well as LF + 2009-11-11 Derek R. Price * NEWS: Note default taginfo format string fix. Index: src/repos.c =================================================================== RCS file: /sources/cvs/ccvs/src/repos.c,v retrieving revision 1.49 diff -u -r1.49 repos.c --- src/repos.c 18 Nov 2008 22:56:55 -0000 1.49 +++ src/repos.c 23 Mar 2013 17:48:31 -0000 @@ -101,6 +101,9 @@ error (0, errno, "cannot close %s", quote (tmp)); free (tmp); + if ((cp = strrchr (repos, '\r')) != NULL) + *cp = '\0'; /* strip the carriage return */ + if ((cp = strrchr (repos, '\n')) != NULL) *cp = '\0'; /* strip the newline */ Index: src/root.c =================================================================== RCS file: /sources/cvs/ccvs/src/root.c,v retrieving revision 1.137 diff -u -r1.137 root.c --- src/root.c 12 Sep 2008 19:55:29 -0000 1.137 +++ src/root.c 23 Mar 2013 17:48:31 -0000 @@ -60,7 +60,6 @@ char *tmp; char *cvsadm; char *cp; - int len; TRACE (TRACE_FLOW, "Name_Root (%s, %s)", TRACE_NULL (dir), TRACE_NULL (update_dir)); @@ -88,7 +87,7 @@ */ fpin = xfopen (tmp, "r"); - if ((len = getline (&root, &root_allocated, fpin)) < 0) + if (getline (&root, &root_allocated, fpin) < 0) { char *admfile = dir_append (update_dir, CVSADM_ROOT); /* FIXME: should be checking for end of file separately; errno @@ -99,8 +98,11 @@ goto out; } fclose (fpin); - cp = root + len - 1; - if (*cp == '\n') + + if ((cp = strrchr (root, '\r')) != NULL) + *cp = '\0'; /* strip the carriage return */ + + if ((cp = strrchr (root, '\n')) != NULL) *cp = '\0'; /* strip the newline */ /* --20cf3003bbb6f3371604d89b485e Content-Type: text/plain; charset=US-ASCII; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hen2pwoe0 SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvc291cmNlcy9jdnMvY2N2cy9DaGFuZ2VMb2csdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMTM3OQpkaWZmIC11IC1yMS4xMzc5IENoYW5nZUxvZwot LS0gQ2hhbmdlTG9nCTEyIE5vdiAyMDA5IDAyOjI5OjE3IC0wMDAwCTEuMTM3 OQorKysgQ2hhbmdlTG9nCTIzIE1hciAyMDEzIDE3OjUwOjA3IC0wMDAwCkBA IC0xLDMgKzEsOCBAQAorMjAxMy0wMy0yMyAgQmlsbCBQcmllcyA8cHJpZXN0 d2lsbGlhbWxAZ21haWwuY29tPgorCisJKiByb290LmM6IFN1cHBvcnQgQ1Iv TEYgYXMgd2VsbCBhcyBMRgorCSogcmVwb3MuYzogU3VwcG9ydCBDUi9MRiBh cyB3ZWxsIGFzIExGCisKIDIwMDktMTEtMTEgIERlcmVrIFIuIFByaWNlICA8 ZGVyZWtAeGltYmlvdC5jb20+CiAKIAkqIE5FV1M6IE5vdGUgZGVmYXVsdCB0 YWdpbmZvIGZvcm1hdCBzdHJpbmcgZml4LgpJbmRleDogc3JjL3JlcG9zLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvY3Zz L2NjdnMvc3JjL3JlcG9zLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDkK ZGlmZiAtdSAtcjEuNDkgcmVwb3MuYwotLS0gc3JjL3JlcG9zLmMJMTggTm92 IDIwMDggMjI6NTY6NTUgLTAwMDAJMS40OQorKysgc3JjL3JlcG9zLmMJMjMg TWFyIDIwMTMgMTc6NTA6MDggLTAwMDAKQEAgLTEwMSw2ICsxMDEsOSBAQAog CWVycm9yICgwLCBlcnJubywgImNhbm5vdCBjbG9zZSAlcyIsIHF1b3RlICh0 bXApKTsKICAgICBmcmVlICh0bXApOwogCisgICAgaWYgKChjcCA9IHN0cnJj aHIgKHJlcG9zLCAnXHInKSkgIT0gTlVMTCkKKwkqY3AgPSAnXDAnOwkJCS8q IHN0cmlwIHRoZSBjYXJyaWFnZSByZXR1cm4gKi8KKwogICAgIGlmICgoY3Ag PSBzdHJyY2hyIChyZXBvcywgJ1xuJykpICE9IE5VTEwpCiAJKmNwID0gJ1ww JzsJCQkvKiBzdHJpcCB0aGUgbmV3bGluZSAqLwogCkluZGV4OiBzcmMvcm9v dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zb3VyY2Vz L2N2cy9jY3ZzL3NyYy9yb290LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MTM3CmRpZmYgLXUgLXIxLjEzNyByb290LmMKLS0tIHNyYy9yb290LmMJMTIg U2VwIDIwMDggMTk6NTU6MjkgLTAwMDAJMS4xMzcKKysrIHNyYy9yb290LmMJ MjMgTWFyIDIwMTMgMTc6NTA6MDggLTAwMDAKQEAgLTYwLDcgKzYwLDYgQEAK ICAgICBjaGFyICp0bXA7CiAgICAgY2hhciAqY3ZzYWRtOwogICAgIGNoYXIg KmNwOwotICAgIGludCBsZW47CiAKICAgICBUUkFDRSAoVFJBQ0VfRkxPVywg Ik5hbWVfUm9vdCAoJXMsICVzKSIsCiAJICAgVFJBQ0VfTlVMTCAoZGlyKSwg VFJBQ0VfTlVMTCAodXBkYXRlX2RpcikpOwpAQCAtODgsNyArODcsNyBAQAog ICAgICAqLwogICAgIGZwaW4gPSB4Zm9wZW4gKHRtcCwgInIiKTsKIAotICAg IGlmICgobGVuID0gZ2V0bGluZSAoJnJvb3QsICZyb290X2FsbG9jYXRlZCwg ZnBpbikpIDwgMCkKKyAgICBpZiAoZ2V0bGluZSAoJnJvb3QsICZyb290X2Fs bG9jYXRlZCwgZnBpbikgPCAwKQogICAgIHsKIAljaGFyICphZG1maWxlID0g ZGlyX2FwcGVuZCAodXBkYXRlX2RpciwgQ1ZTQURNX1JPT1QpOwogCS8qIEZJ WE1FOiBzaG91bGQgYmUgY2hlY2tpbmcgZm9yIGVuZCBvZiBmaWxlIHNlcGFy YXRlbHk7IGVycm5vCkBAIC05OSw4ICs5OCwxMSBAQAogCWdvdG8gb3V0Owog ICAgIH0KICAgICBmY2xvc2UgKGZwaW4pOwotICAgIGNwID0gcm9vdCArIGxl biAtIDE7Ci0gICAgaWYgKCpjcCA9PSAnXG4nKQorCisgICAgaWYgKChjcCA9 IHN0cnJjaHIgKHJvb3QsICdccicpKSAhPSBOVUxMKQorCSpjcCA9ICdcMCc7 CQkJLyogc3RyaXAgdGhlIGNhcnJpYWdlIHJldHVybiAqLworCisgICAgaWYg KChjcCA9IHN0cnJjaHIgKHJvb3QsICdcbicpKSAhPSBOVUxMKQogCSpjcCA9 ICdcMCc7CQkJLyogc3RyaXAgdGhlIG5ld2xpbmUgKi8KIAogICAgIC8qCg== --20cf3003bbb6f3371604d89b485e Content-Type: text/plain; charset=us-ascii -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple --20cf3003bbb6f3371604d89b485e--