aboutsummaryrefslogtreecommitdiffhomepage
path: root/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'util.cpp')
-rw-r--r--util.cpp144
1 files changed, 72 insertions, 72 deletions
diff --git a/util.cpp b/util.cpp
index 59ed9601..0daabef4 100644
--- a/util.cpp
+++ b/util.cpp
@@ -1,7 +1,7 @@
/** \file util.c
- Generic utilities library.
+ Generic utilities library.
- Contains datastructures such as automatically growing array lists, priority queues, etc.
+ Contains datastructures such as automatically growing array lists, priority queues, etc.
*/
#include "config.h"
@@ -49,79 +49,79 @@
int wcsfilecmp( const wchar_t *a, const wchar_t *b )
{
- CHECK( a, 0 );
- CHECK( b, 0 );
-
- if( *a==0 )
- {
- if( *b==0)
- return 0;
- return -1;
- }
- if( *b==0 )
- {
- return 1;
- }
-
- long secondary_diff=0;
- if( iswdigit( *a ) && iswdigit( *b ) )
- {
- wchar_t *aend, *bend;
- long al;
- long bl;
- long diff;
-
- errno = 0;
- al = wcstol( a, &aend, 10 );
- bl = wcstol( b, &bend, 10 );
-
- if( errno )
- {
- /*
- Huuuuuuuuge numbers - fall back to regular string comparison
- */
- return wcscmp( a, b );
- }
-
- diff = al - bl;
- if( diff )
- return diff > 0 ? 2 : -2;
-
- secondary_diff = (aend-a) - (bend-b);
-
- a=aend-1;
- b=bend-1;
- }
- else
- {
- int diff = towlower(*a) - towlower(*b);
- if( diff != 0 )
- return (diff>0)?2:-2;
-
- secondary_diff = *a-*b;
- }
-
- int res = wcsfilecmp( a+1, b+1 );
-
- if( abs(res) < 2 )
- {
- /*
- No primary difference in rest of string.
- Use secondary difference on this element if found.
- */
- if( secondary_diff )
- {
- return secondary_diff > 0 ? 1 :-1;
- }
- }
-
- return res;
+ CHECK( a, 0 );
+ CHECK( b, 0 );
+
+ if( *a==0 )
+ {
+ if( *b==0)
+ return 0;
+ return -1;
+ }
+ if( *b==0 )
+ {
+ return 1;
+ }
+
+ long secondary_diff=0;
+ if( iswdigit( *a ) && iswdigit( *b ) )
+ {
+ wchar_t *aend, *bend;
+ long al;
+ long bl;
+ long diff;
+
+ errno = 0;
+ al = wcstol( a, &aend, 10 );
+ bl = wcstol( b, &bend, 10 );
+
+ if( errno )
+ {
+ /*
+ Huuuuuuuuge numbers - fall back to regular string comparison
+ */
+ return wcscmp( a, b );
+ }
+
+ diff = al - bl;
+ if( diff )
+ return diff > 0 ? 2 : -2;
+
+ secondary_diff = (aend-a) - (bend-b);
+
+ a=aend-1;
+ b=bend-1;
+ }
+ else
+ {
+ int diff = towlower(*a) - towlower(*b);
+ if( diff != 0 )
+ return (diff>0)?2:-2;
+
+ secondary_diff = *a-*b;
+ }
+
+ int res = wcsfilecmp( a+1, b+1 );
+
+ if( abs(res) < 2 )
+ {
+ /*
+ No primary difference in rest of string.
+ Use secondary difference on this element if found.
+ */
+ if( secondary_diff )
+ {
+ return secondary_diff > 0 ? 1 :-1;
+ }
+ }
+
+ return res;
}
long long get_time()
{
- struct timeval time_struct;
- gettimeofday( &time_struct, 0 );
- return 1000000ll*time_struct.tv_sec+time_struct.tv_usec;
+ struct timeval time_struct;
+ gettimeofday( &time_struct, 0 );
+ return 1000000ll*time_struct.tv_sec+time_struct.tv_usec;
}