diff --git a/UnicodeCharacterInspector/CharacterInfoViewModel.cs b/UnicodeCharacterInspector/CharacterInfoViewModel.cs index 8b2b684..af756f5 100644 --- a/UnicodeCharacterInspector/CharacterInfoViewModel.cs +++ b/UnicodeCharacterInspector/CharacterInfoViewModel.cs @@ -104,7 +104,7 @@ namespace UnicodeCharacterInspector public UnicodeNameAliasCollection NameAliases { - get { return characterInfo.NameAliases; } + get { return character != null ? characterInfo.NameAliases : new UnicodeNameAliasCollection(); } } public string OldName diff --git a/UnicodeCharacterInspector/MainWindow.xaml b/UnicodeCharacterInspector/MainWindow.xaml index e24541b..f0b5c1f 100644 --- a/UnicodeCharacterInspector/MainWindow.xaml +++ b/UnicodeCharacterInspector/MainWindow.xaml @@ -53,6 +53,9 @@ + @@ -95,7 +98,9 @@ - + + () + diff --git a/UnicodeInformation.Builder/BinaryWriterExtensions.cs b/UnicodeInformation.Builder/BinaryWriterExtensions.cs index 674778b..f3dd7b9 100644 --- a/UnicodeInformation.Builder/BinaryWriterExtensions.cs +++ b/UnicodeInformation.Builder/BinaryWriterExtensions.cs @@ -57,11 +57,8 @@ namespace System.Unicode.Builder /// The name alias value to write. public static void WriteNameAliasToFile(this BinaryWriter writer, UnicodeNameAlias nameAlias) { - // This method will stuff two extra bits together with the byte count, provided that this one doesn't exceed 64. - var bytes = Encoding.UTF8.GetBytes(nameAlias.Name); - if (bytes.Length > 64) throw new InvalidOperationException("Did not expect UTF-8 encoded name aliases to be longer than 64 bytes."); - writer.WritePackedLength((byte)(nameAlias.Kind - 1), nameAlias.Name.Length); - writer.Write(bytes); + writer.Write(nameAlias.Name); + writer.Write((byte)nameAlias.Kind); } /// Writes a character name, packing two information bits along with the length. diff --git a/UnicodeInformation/UnicodeInfo.cs b/UnicodeInformation/UnicodeInfo.cs index a2bde78..c5c27b3 100644 --- a/UnicodeInformation/UnicodeInfo.cs +++ b/UnicodeInformation/UnicodeInfo.cs @@ -107,12 +107,7 @@ namespace System.Unicode for (int i = 0; i < nameAliases.Length; ++i) { - length = reader.ReadByte(); - UnicodeNameAliasKind aliasKind = (UnicodeNameAliasKind)((length >> 6) + 1); - length = (length & 0x3F) + 1; - - if (reader.Read(nameBuffer, 0, length) != length) throw new EndOfStreamException(); - nameAliases[i] = new UnicodeNameAlias(Encoding.UTF8.GetString(nameBuffer, 0, length), aliasKind); + nameAliases[i] = new UnicodeNameAlias(reader.ReadString(), (UnicodeNameAliasKind)(reader.ReadByte())); } } } diff --git a/UnicodeInformation/ucd.dat b/UnicodeInformation/ucd.dat index 806a960..46f4f8d 100644 Binary files a/UnicodeInformation/ucd.dat and b/UnicodeInformation/ucd.dat differ