From 1026c17e7e9005d11bf65d6f54ea0276ff88114a Mon Sep 17 00:00:00 2001 From: axel Date: Tue, 4 Oct 2005 01:26:39 +1000 Subject: [PATCH] Use internal implementation for wcsncasecmp darcs-hash:20051003152639-ac50b-581206ef8148f4d24875862f6cc09909b369fac0.gz --- common.c | 20 ++++++++++++++++++++ input.c | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/common.c b/common.c index 8768f8e0c..baccb406a 100644 --- a/common.c +++ b/common.c @@ -602,6 +602,26 @@ int wcscasecmp( const wchar_t *a, const wchar_t *b ) return wcscasecmp( a+1,b+1); } +int wcsncasecmp( const wchar_t *a, const wchar_t *b, int count ) +{ + if( count == 0 ) + return 0; + + if( *a == 0 ) + { + return (*b==0)?0:-1; + } + else if( *b == 0 ) + { + return 1; + } + int diff = towlower(*a)-towlower(*b); + if( diff != 0 ) + return diff; + else + return wcsncasecmp( a+1,b+1, count-1); +} + int wcsvarname( wchar_t *str ) { while( *str ) diff --git a/input.c b/input.c index ea8ddff67..888d38f13 100644 --- a/input.c +++ b/input.c @@ -489,7 +489,7 @@ static wchar_t *input_symbolic_sequence( const wchar_t *in ) for( i=0; map[i].in; i++ ) { - if( wcsncmp( in, map[i].in, wcslen(map[i].in) )==0 ) + if( wcsncasecmp( in, map[i].in, wcslen(map[i].in) )==0 ) { in+= wcslen( map[i].in ); res = str2wcs( map[i].out );