On Sun, Jul 08, 2007 at 04:22:29AM +0900, Koji Yokota wrote:

> Enrico Forestieri wrote:
> > On Sat, Jul 07, 2007 at 08:37:15PM +0200, Enrico Forestieri wrote:
> > 
> >> On Sun, Jul 08, 2007 at 03:29:46AM +0900, Koji Yokota wrote:
> >>
> >>> but crash also happens when I start it with
> >>>
> >>>  > env LC_ALL=C lyx
> >>>
> >>> In this case, there are no such complaints.
> >> Yes, the C locale is always supported. The crash is due to missing
> >> support for wchar_t, meaning that even the C locale can't deal with
> >> wide characters. Please try the patch I sent you.
> > 
> > Strange. I still don't see on the list the mail with the patch, so
> > I am resending it attached here.
> 
> Indeed the problem seems around here. The patch solved the problem when
> I start lyx with LC_ALL=C.
> 
> However, when it is started with ja_JP locale for example, it still
> crashes with complaints:
> 
> > terminate called after throwing an instance of 'std::runtime_error'
> >   what():  locale::facet::_S_create_c_locale name not valid
> > Abort (damped core)
> 
> A little more modification may be necessary.

This occurs when the locale itself is not supported and I also get it
on cygwin. Please, try the attached patch, which should definitely
solve the issue.

-- 
Enrico
Index: src/frontends/controllers/frontend_helpers.cpp
===================================================================
--- src/frontends/controllers/frontend_helpers.cpp      (revision 18988)
+++ src/frontends/controllers/frontend_helpers.cpp      (working copy)
@@ -1108,6 +1108,12 @@ class Sorter
                                      LanguagePair, bool>
 {
 public:
+#if !defined(USE_WCHAR_T) && defined(__GNUC__)
+       bool operator()(LanguagePair const & lhs,
+                       LanguagePair const & rhs) const {
+               return lhs.first < rhs.first;
+       }
+#else
        Sorter() : loc_("") {};
        bool operator()(LanguagePair const & lhs,
                        LanguagePair const & rhs) const {
@@ -1115,6 +1121,7 @@ public:
        }
 private:
        std::locale loc_;
+#endif
 };
 
 } // namespace anon

Reply via email to