Le 04/12/2016 à 12:00, Michael Steinberg a écrit :
> Hello all,
> 
> when doing other stuff I ran into one of a gazillion cases that can make 
> StrNumCmp starting in
> common/string.cpp:214 crash. There are quite a few unchecked iterator 
> dereferences, the aLength
> parameter is not correctly taken into account, etc.. The comment on the 
> function's declaration is
> not enough specification for me to rewrite it properly. If somebody would 
> come up with a spec for me
> I would happily rewrite the function.
> 
> Cheers!
> Michael
> 

It is similar to a string comparison (for string sorting) but unlike the usual 
strncmp() or
strncasecmp() functions, when digits are encountered in a string, they are 
converted to a number and
this is the number value which is taken in account for comparison.

This is especially useful to sort component references or value.
For instance:
when the 2 strings U12 and U2 are compared by ASCII value:
In usual comparison (from ASCII value), U120 is sorted before U20
In StrNumCmp:
120 is read as a integer value
20  is read as a integer value
and comparisons are between U<120> and U<20> where <120> and <20> are integers, 
not chars.

and U120 is sorted after U20


-- 
Jean-Pierre CHARRAS

_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to