logo       

RegExp problem in VSSHistoryParser::ParseUsernameAndDate(): msg#00051

windows.dotnet.ccnet.devel

Subject: RegExp problem in VSSHistoryParser::ParseUsernameAndDate()

Hi,

 

When I launch ccnet and force build my VSS project, the following exception occurs : "Invalid data retrieved from VSS.  Unable to parse username and date from text."

 

I use VSS 6d and VS.NET 2003 in French for both (French os too)

 

The following variables are set:

 

entry : "*****  Tools.build  *****\nVersion 3\nUtilisateur : Thomas       Date : 15/11/04   Heure : 18:24\nArchivé dans $/Projets/Tools\nCommentaire: \n\n"

 

The RegExp doesn't seem to match this entry.

 

Analysing the string deeper indicates one thing:

 

In French, space between word and ':' isn't considered as a normal space (char 32 decimal), but as a non-wrap character, which is encoded as char 160 decimal.

 

In consequence, to correctly match the string, the pattern must be replaced by, in my case:

 

"{0}\s?:(.+){1}\s?:(.+){2}\s?:(.+)$"

 

Where "\s?" matches any white space character, but is optional (considering the English case where space character isn't present).

 

This particularity seems to cause other problems in other methods such as ::ParseFileNameOther(), where you search for entry.IndexOf(locale.TimeKeyword + ":"); which cannot be found in this case.

 

Two solutions could be envisaged:

- Change the code to accept char 160 between word and :

- Remove all the char 160 prior any string manipulation

 

I'll modify the source code locally with the second one, waiting for an official modification.

 

Thanks.

 

PS: Si je me réfère à DNG, il semblerait que la team de développement soit française, je suis donc aussi disponible pour donner plus de détails en français.

 

Thomas Bolon

NetFinances Services

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise