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