-20th November '99: wxWindows 2.1.12 released
+19th December '99: wxWindows 2.1.12 released
 
 Who has a BigEndian computer (e.g. Sparc) that runs a 15 and/or
-16 bit colour mode. I need this for testing purposes, i.e. this
+16 bit colour mode? I need this for testing purposes, i.e. this
 person could help me by running a small testprogram and sending
 me the output.
 
+Implemented wxMenuBar::Insert() and wxMenu::Insert(). There is
+also a Remove() method now, but the GTK doesn't really like that.
+
+Enhanced wxMimeTypesManager to read GNOME and KDE file ending
+bindings to MIME types and icons.
+
+Corrected wxExecute to longer eat up all memory and crash under
+certain circumstances (Karsten Ballueder).
+
+wxGTK no longer gives warnings if the application shows a dialog
+before entering the main loop.
+
+Updated documentation for wxFile, wxFFile and their respective
+stream classes. Documented some more stream classes.
+
+Improved wxHTML and its help system. Options dialog, better printing,
+history index.
+
+Corrected wxRegion::GetBox().
+
+Added wxNotebookSizer for combining notebooks and sizers.
+
+Added wxDir class. Useful as a replacement for wxFileGetFirst()
+and wxFileGetNext().
+
 Added wxStopWatch class.
 
 wxBitmap now derives from wxGDIObject.
 thread will delete its C++ class itself ("delete this") or
 if the main thread must delete the C++ class.
 
-Added TIFF reading code.
+Added TIFF reading code, PCX writing code.
 
 Minor compile and build fixes for different architectures.
 
 Also corrected navigation on wxRadioBox.
 
 Corrected segfaults in wxGLCanvas and stupid race when using
-several such windows.
+several such canvasses.
 
 Some minor updates to wxSockets.
 
 Speed-up for new encoding related font code.
 
-Change wxListCtrl to send deferred events, i.e. events emitted by
-the list ctrl won't get processed before the next idle message.
+Changed wxListBox to send deferred events, i.e. events emitted by
+the listbox won't get processed before the next idle message.
 
 Some more minor changes.
 
 
     if (c==(wxChar)0) return 0;
 
     f = 0.0;
-    if (! (c == wxT('.') || c == wxT('-') || c == wxT('+') || isdigit(c)) )
+    if (! (c == wxT('.') || c == wxT(',') || c == wxT('-') || c == wxT('+') || isdigit(c)) )
     {
         m_input.Ungetch(c);
         return 0.0;
         c = m_input.GetC();
     }
 
-    if (c == wxT('.'))
+    if (c == wxT('.') || c == wxT(','))
     {
         double f_multiplicator = (double) 0.1;
 
 
 wxTextOutputStream& wxTextOutputStream::operator<<(wxInt16 c)
 {
-    Write16( (wxUint16)c );
+    wxString str;
+    str.Printf(wxT("%d"), (signed int)c);
+    WriteString(str);
+    
     return *this;
 }
 
 wxTextOutputStream& wxTextOutputStream::operator<<(wxInt32 c)
 {
-    Write32( (wxUint32)c );
+    wxString str;
+    str.Printf(wxT("%ld"), (signed long)c);
+    WriteString(str);
+    
     return *this;
 }
 
 wxTextOutputStream& wxTextOutputStream::operator<<(wxUint16 c)
 {
-    Write16(c);
+    wxString str;
+    str.Printf(wxT("%u"), (unsigned int)c);
+    WriteString(str);
+    
     return *this;
 }
 
 wxTextOutputStream& wxTextOutputStream::operator<<(wxUint32 c)
 {
-    Write32(c);
+    wxString str;
+    str.Printf(wxT("%lu"), (unsigned long)c);
+    WriteString(str);
+
     return *this;
 }