diff options
| -rw-r--r-- | nncmpp.c | 17 | 
1 files changed, 14 insertions, 3 deletions
| @@ -101,6 +101,7 @@ enum  #include <unistr.h>  #include <uniwidth.h>  #include <uniconv.h> +#include <unicase.h>  // We need cURL to extract links from Internet stream playlists.  It'd be way  // too much code to do this all by ourselves, and there's nothing better around. @@ -784,9 +785,20 @@ load_config_colors (struct config_item *subtree, void *user_data)  }  static int +app_casecmp (const uint8_t *a, const uint8_t *b) +{ +	int res; +	// XXX: this seems to produce some strange results +	if (u8_casecmp (a, strlen ((const char *) a), b, strlen ((const char *) b), +		NULL, NULL, &res)) +		res = u8_strcmp (a, b); +	return res; +} + +static int  str_vector_sort_utf8_cb (const void *a, const void *b)  { -	return u8_strcmp (*(const uint8_t **) a, *(const uint8_t **) b); +	return app_casecmp (*(const uint8_t **) a, *(const uint8_t **) b);  }  static void @@ -2143,8 +2155,7 @@ library_tab_compare (char **a, char **b)  	if (xa.type != xb.type)  		return xa.type - xb.type; -	// TODO: this should be case insensitive -	return u8_strcmp ((uint8_t *) xa.path, (uint8_t *) xb.path); +	return app_casecmp ((uint8_t *) xa.path, (uint8_t *) xb.path);  }  static void | 
