Fix unicode filename compare when wchar_t is not 16bit
Do not use wcscmp() which takes wchar_t arguments. wchar_t bit width is system dependent. It is often 32bits. Grafx2 supports 16bits wide characters fixes b49fa1dfcc6209065c79f112b364a75f0d30e2b2
This commit is contained in:
		
							parent
							
								
									e76adfe9d9
								
							
						
					
					
						commit
						653593ba66
					
				@ -827,7 +827,7 @@ void Read_list_of_drives(T_Fileselector *list, byte name_length)
 | 
			
		||||
#else
 | 
			
		||||
// case-sensitive
 | 
			
		||||
  #define FILENAME_COMPARE strcmp
 | 
			
		||||
  #define FILENAME_COMPARE_UNICODE wcscmp
 | 
			
		||||
  #define FILENAME_COMPARE_UNICODE Unicode_strcmp
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -73,6 +73,18 @@ void Unicode_strlcat(word * dst, const word * src, size_t len)
 | 
			
		||||
  Unicode_strlcpy(dst + dst_len, src, len - dst_len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Compare two unicode strings
 | 
			
		||||
int Unicode_strcmp(const word * s1, const word * s2)
 | 
			
		||||
{
 | 
			
		||||
  while (*s1 == *s2)
 | 
			
		||||
  {
 | 
			
		||||
    if (*s1 == 0) return 0;
 | 
			
		||||
    s1++;
 | 
			
		||||
    s2++;
 | 
			
		||||
  }
 | 
			
		||||
  return (*s1 > *s2) ? 1 : -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Compare an unicode string with a regular Latin1 string
 | 
			
		||||
int Unicode_char_strcmp(const word * s1, const char * s2)
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -46,6 +46,9 @@ void Unicode_strlcpy(word * dst, const word * src, size_t len);
 | 
			
		||||
/// Append unicode string to another
 | 
			
		||||
void Unicode_strlcat(word * dst, const word * src, size_t len);
 | 
			
		||||
 | 
			
		||||
/// Compare two unicode strings
 | 
			
		||||
int Unicode_strcmp(const word * s1, const word * s2);
 | 
			
		||||
 | 
			
		||||
/// Compare an unicode string with a regular Latin1 string
 | 
			
		||||
int Unicode_char_strcmp(const word * s1, const char * s2);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user