[cvsnt] Taginfo call cannot handle & character in argument list or module name....

Bo Berglund bo.berglund at telia.com
Sat Aug 14 23:44:49 BST 2004


I have a problem with tagging a sandbox that contains a subfolder
named 'Run&Drive'.
What happens is that it looks like the parameter list from CVSNT to my
program (CVSMailer) lists an erroneous module name. Instead of the
correct one (/Bosse/ModuleYY/Run&Drive) it seems like I am supplied
only /Bosse/ModuleYY/Run
This means that CVSNT seems to cut short where the ampersand character
is located.
I don't really know if this is a fault in CVSNT, WindowsXP or
CVSMailer, but trying to debug it I have come this far:
I have a loop inside the program that runs through the program
parameter list and logs each parameter value. This log lokks like
this:
20040815 00:24:06 DEBUG: Parameter 1: -t00000184
20040815 00:24:06 DEBUG: Parameter 2: bosse
20040815 00:24:06 DEBUG: Parameter 3: /Bosse
20040815 00:24:06 DEBUG: Parameter 4: -rbosse
20040815 00:24:06 DEBUG: Parameter 5: TestTag2_20040814
20040815 00:24:06 DEBUG: Parameter 6: add
20040815 00:24:06 DEBUG: Parameter 7: /Bosse/ModuleYY/Run

As you can see the final parameter that should list the module folder
name misses the &Drive part.

I have ruled out a problem in Delphi5 where the ParamStr(i) function
might not correctly handle this case. It does and when I run my
program manually with & inserted in the command parameter list it is
read and logged OK.
Then I did a test by supplying a bogus argument in taginfo by
inserting a & char in the middle somewhere and did a tag operation and
what happened was that this cut the parameter list short at the point
where & is inserted.

So my conclusion is that CVSNT for some reason does not like & inside
the argument list in taginfo and also will fail if a module folder
name contains an & char.

version info from cvs ver:
Client: Concurrent Versions System (CVSNT) 2.0.41a (client/server)
Server: Concurrent Versions System (CVSNT) 2.0.51 (client/server)


/Bo
(Bo Berglund, developer in Sweden)



More information about the cvsnt mailing list