Fix building with libc++ from LLVM 19

Avoid instantiating the std::char_traits<T> template with arbitrary types.
That is no longer possible with the implementation of the C++ STL from LLVM 19.

diff -urN kicad-8.0.6/eeschema/sch_io/easyedapro/sch_io_easyedapro.cpp.orig kicad-8.0.6/eeschema/sch_io/easyedapro/sch_io_easyedapro.cpp
--- kicad-8.0.6/eeschema/sch_io/easyedapro/sch_io_easyedapro.cpp.orig	2024-10-13 21:12:40.000000000 +0200
+++ kicad-8.0.6/eeschema/sch_io/easyedapro/sch_io_easyedapro.cpp	2025-01-10 23:13:55.672983900 +0100
@@ -205,7 +205,7 @@
             std::vector<nlohmann::json> lines;
             while( zip.CanRead() )
             {
-                nlohmann::json js = nlohmann::json::parse( txt.ReadLine() );
+                nlohmann::json js = nlohmann::json::parse( txt.ReadLine().utf8_string() );
                 lines.emplace_back( js );
             }
 
@@ -257,7 +257,7 @@
             if( !line.Contains( wxS( "ATTR" ) ) )
                 continue; // Don't bother parsing
 
-            nlohmann::json js = nlohmann::json::parse( line );
+            nlohmann::json js = nlohmann::json::parse( line.utf8_string() );
             if( js.at( 0 ) == "ATTR" && js.at( 3 ) == "Symbol" )
             {
                 aSymbolNameList.Add( js.at( 4 ).get<wxString>() );
--- kicad-8.0.6/thirdparty/compoundfilereader/compoundfilereader.h.orig	2024-10-13 21:12:40.000000000 +0200
+++ kicad-8.0.6/thirdparty/compoundfilereader/compoundfilereader.h	2025-01-10 22:59:47.868651800 +0100
@@ -79,7 +79,7 @@
 
 struct COMPOUND_FILE_ENTRY
 {
-    uint16_t name[32];
+    char16_t name[32];
     uint16_t nameLen;
     uint8_t type;
     uint8_t colorFlag;
@@ -131,7 +131,7 @@
     }
 };
 
-typedef std::basic_string<uint16_t> utf16string;
+typedef std::basic_string<char16_t> utf16string;
 typedef std::function<int(const COMPOUND_FILE_ENTRY*, const utf16string& dir, int level)>
     EnumFilesCallback;
 
