From 1fd38bad143e0918141bdd807bdbb4a663643d83 Mon Sep 17 00:00:00 2001 From: Alexander Eckart Date: Sun, 17 Jun 2012 14:31:39 +0200 Subject: [PATCH] better handling for combined chars in song sorting (sort letter) --- Vocaluxe/Base/CSongs.cs | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/Vocaluxe/Base/CSongs.cs b/Vocaluxe/Base/CSongs.cs index eeaf0d1a..cc33b1ed 100644 --- a/Vocaluxe/Base/CSongs.cs +++ b/Vocaluxe/Base/CSongs.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Globalization; using System.IO; using System.Text; using System.Text.RegularExpressions; @@ -612,21 +613,7 @@ namespace Vocaluxe.Base int NotLetterCat = -1; for (int i=0; i < _SongsSortList.Length; i++) { - Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString[0]); - - //Fix for german Umlaute - switch (firstLetter) - { - case 'Ä': - firstLetter = 'A'; - break; - case 'Ö': - firstLetter = 'O'; - break; - case 'Ü': - firstLetter = 'U'; - break; - } + Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString.Normalize(NormalizationForm.FormD)[0]); if (!Char.IsLetter(firstLetter)) { @@ -684,21 +671,7 @@ namespace Vocaluxe.Base NotLetterCat = -1; for (int i=0; i < _SongsSortList.Length; i++) { - Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString[0]); - - //Fix for german Umlaute - switch (firstLetter) - { - case 'Ä': - firstLetter = 'A'; - break; - case 'Ö': - firstLetter = 'O'; - break; - case 'Ü': - firstLetter = 'U'; - break; - } + Char firstLetter = Char.ToUpper(_SongsSortList[i].SortString.Normalize(NormalizationForm.FormD)[0]); if (!Char.IsLetter(firstLetter)) {