Hi All,
 
    I'm writing this few words to propose a patch to a Win32 path behaviour: system ignores case in path.
This generally isn't a problem (CVS just works) but try this little sequence in NT and/or W9x command shell:
 
1> mkdir pippo
2> cd pippo
 
3> cvs co cvsroot/modules
4> cd cvsroot
 
5> edit modules
 
[make some changes to modules here]
 
6> cvs commit modules
 
|Checking in modules;
|D:\CVS\CVSROOT/cvsroot/modules,v  <--  modules
|new revision: 1.4; previous revision: 1.3
|done
Here's the bug: no 'commit: Rebuilding administrative file database'!!!!
 
7> cd..
8> cvs release -d cvsroot
 
repeat now the sequence with line 4 as follows:
 
4 > cvs co CVSROOT/modules
 
Well, now the output of commit will be:
 
|Checking in modules;
|D:\CVS\CVSROOT/CVSROOT/modules,v  <--  modules
|new revision: 1.5; previous revision: 1.4
|done
|CVS.EXE commit: Rebuilding administrative file database
Ok... I simply propose to replace a 'strcmp' with a 'stricmp' in commit.c source file.
 
I don't know how this may affect unix behaviour.
 
Here's the patch in context diff (original sources cvs-1.10.8):
 
---8<---
Index: gnu/CVS/src/commit.c
diff -c gnu/CVS/src/commit.c:1.1.1.1 gnu/CVS/src/commit.c:1.2
*** gnu/CVS/src/commit.c:1.1.1.1 Thu May 04 19:52:44 2000
--- gnu/CVS/src/commit.c Thu May 04 19:56:08 2000
***************
*** 1443,1452 ****
   p = repository + strlen (CVSroot_directory);
   if (*p == '/')
       ++p;
!  if (strcmp ("CVSROOT", p) == 0
       /* Check for subdirectories because people may want to create
          subdirectories and list files therein in checkoutlist.  */
!      || strncmp ("CVSROOT/", p, strlen ("CVSROOT/")) == 0
       )
   {
       /* "Database" might a little bit grandiose and/or vague,
--- 1443,1452 ----
   p = repository + strlen (CVSroot_directory);
   if (*p == '/')
       ++p;
!  if (stricmp ("CVSROOT", p) == 0
       /* Check for subdirectories because people may want to create
          subdirectories and list files therein in checkoutlist.  */
!      || strnicmp ("CVSROOT/", p, strlen ("CVSROOT/")) == 0
       )
   {
       /* "Database" might a little bit grandiose and/or vague,
---8<---
 
Lawers things: "I grant permission to distribute this patch under the terms of the GNU Public License"
 
---
Bye, Fox.

Reply via email to