On Tue, May 29, 2007 at 11:20:45AM +0900, Koji Yokota wrote:
> Enrico Forestieri wrote:
> > I don't understand. Seems that you are still using wchar_t ...
> > This crash is very similar to the one I was getting on cygwin after the
> > switch to unicode. I remember that someway I was able to fix it by
> > using the STLport library, before the real fix by Georg. Have a look
> > at this thread (may be you will get some ideas on how to proceed):
> > http://thread.gmane.org/gmane.editors.lyx.devel/68855
> 
> Enrico, I'm now checking this but before that I send a quick result of 
> the patches. I applied the attached patches but unfortunately there was 
> no improvement. I stated that the initialization succeeded in the 
> previous mail, but it was due to the fact that I already had a user 
> setting directory $HOME/.lyx-svn . Removing it draws back to the same 
> result as before.

That is because of autoloading of the splash.lyx document.
I am running out of ideas here. I think that you will need advice from
a real expert such as Georg.

> # Does RC1 go with the following modification suggested before?
> 
> --- src/support/lstrings.cpp    (revision 18398)
> +++ src/support/lstrings.cpp    (working copy)
> @@ -21,6 +21,7 @@
>   #include <boost/tokenizer.hpp>
>   #include <boost/assert.hpp>
> 
> +#undef USE_BOOST_FORMAT
>   #ifndef I_AM_NOT_AFRAID_OF_HEADER_LIBRARIES
>   #if USE_BOOST_FORMAT
>   #include <boost/format.hpp>

> --- src/support/docstring.h.orig      Sun May 27 17:26:19 2007
> +++ src/support/docstring.h   Sun May 27 17:27:27 2007
> @@ -98,7 +98,7 @@
>  } // namespace lyx
>  
>  
> -#if SIZEOF_WCHAR_T != 4 && defined(__GNUC__) && defined(__GNUC_MINOR__) && 
> __GNUC__ == 3 && __GNUC_MINOR__ < 4
> +#if 1
>  // Missing char_traits methods in gcc 3.3 and older. Taken from gcc 4.2svn.
>  namespace std {
>  
> --- src/support/docstream.cpp.orig    Sun May 27 17:40:11 2007
> +++ src/support/docstream.cpp Sun May 27 17:40:11 2007
> @@ -322,7 +322,7 @@
>  
>  }
>  
> -#if (!defined(HAVE_WCHAR_T) || SIZEOF_WCHAR_T != 4) && defined(__GNUC__)
> +#if 1
>  // We get undefined references to these virtual methods. This looks like
>  // a bug in gcc. The implementation here does not do anything useful, since
>  // it is overriden in iconv_codecvt_facet.
> --- src/support/docstring.cpp.orig    Sun May 27 17:40:35 2007
> +++ src/support/docstring.cpp Sun May 27 17:40:35 2007
> @@ -217,7 +217,7 @@
>  
>  } // namespace lyx
>  
> -#if (!defined(HAVE_WCHAR_T) || SIZEOF_WCHAR_T != 4) && defined(__GNUC__)
> +#if 1
>  
>  // gcc does not have proper locale facets for lyx::char_type if
>  // sizeof(wchar_t) == 2, so we have to implement them on our own.
> --- src/support/types.h.orig  Sun May 27 17:40:58 2007
> +++ src/support/types.h       Sun May 27 17:40:58 2007
> @@ -23,7 +23,7 @@
>  namespace lyx {
>  
>       /// The type used to hold characters in paragraphs
> -#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4
> +#if 0
>       // Prefer this if possible because GNU libstdc++ has usable
>       // std::ctype<wchar_t> locale facets but not
>       // std::ctype<boost::uint32_t>. gcc older than 3.4 is also missing

> --- configure.ac.orig   2007-05-28 17:10:24.952949000 +0200
> +++ configure.ac        2007-05-28 17:11:04.599949500 +0200
> @@ -356,11 +356,7 @@
>  #endif
>  #endif
>  
> -#if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
> -#  define USE_BOOST_FORMAT 1
> -#else
>  #  define USE_BOOST_FORMAT 0
> -#endif
>  
>  #define BOOST_USER_CONFIG <config.h>


-- 
Enrico

Reply via email to