| 200 | |
| 201 | |
| 202 | int FuzzyStrCmp(const wxString& a, const wxString& b) |
| 203 | { |
| 204 | size_t aCookie = 0, bCookie = 0; |
| 205 | wxString aField, bField; |
| 206 | |
| 207 | do { |
| 208 | aField = GetNextField(a, aCookie); |
| 209 | bField = GetNextField(b, bCookie); |
| 210 | |
| 211 | if (aField.IsNumber() && bField.IsNumber()) { |
| 212 | unsigned long aInteger = StrToULong(aField); |
| 213 | unsigned long bInteger = StrToULong(bField); |
| 214 | |
| 215 | if (aInteger < bInteger) { |
| 216 | return -1; |
| 217 | } else if (aInteger > bInteger) { |
| 218 | return 1; |
| 219 | } |
| 220 | } else if (aField < bField) { |
| 221 | return -1; |
| 222 | } else if (aField > bField) { |
| 223 | return 1; |
| 224 | } |
| 225 | } while (!aField.IsEmpty() && !bField.IsEmpty()); |
| 226 | |
| 227 | return 0; |
| 228 | } |
| 229 | |
| 230 | |
| 231 | int FuzzyStrCaseCmp(const wxString& a, const wxString& b) |