diff --git a/src/include/array.cpp b/src/include/array.cpp index 060183d70..040cde8f8 100755 --- a/src/include/array.cpp +++ b/src/include/array.cpp @@ -578,7 +578,7 @@ void TArray::sort( COMPARE_FUNCTION_EX compare, // @parm Funzione indicante il criterio di ordinamento (default TSortable) void* jolly) - // @comm Nel caso non venga passata nessuna funzione che permetta di conforntare + // @comm Nel caso non venga passata nessuna funzione che permetta di confrontare // i due oggetti viene utilizzato il criterio { _cmp_func = compare; @@ -652,13 +652,20 @@ int TString_array::find( HIDDEN int ascending_string(const TObject** o1, const TObject** o2) { -// const TString* s1 = (const TString*)*o1; -// const TString* s2 = (const TString*)*o2; - // return strcmp(*s1, *s2); - const TToken_string* s1 = (const TToken_string*)*o1; - const TToken_string* s2 = (const TToken_string*)*o2; - - return s1->compare(*s2); + if (((const TToken_string*)*o1)->items() > 1) + { + const TToken_string* s1 = (const TToken_string*)*o1; + const TToken_string* s2 = (const TToken_string*)*o2; + + return s1->compare(*s2); + } + else + { + const TString* s1 = (const TString*)*o1; + const TString* s2 = (const TString*)*o2; + + return strcmp(*s1, *s2); + } } HIDDEN int descending_string(const TObject** o1, const TObject** o2)