Commit Graph

16 Commits

Author SHA1 Message Date
Abdelrazak Younes
c35007dbce Add two optimized versions of the ucs4 to local encoding.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18306 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-14 09:41:00 +00:00
Abdelrazak Younes
fe4da6920b remove 'lyx::'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18234 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-08 14:09:27 +00:00
Abdelrazak Younes
85f66bcd90 Fix support lib dependency problem.
* docstring.C: Implement utf8ToUcs4() locally.

* all other files: remove utf8ToUcs4().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17361 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-26 12:46:44 +00:00
Georg Baum
c4320d24cd Make string conversion work with non-ucs2-characters if using qt 4.2
* src/frontends/qt4/qt_helpers.[Ch]
	(toqstr): Use QString::fromUcs4 if the qt version is at
	least 4.2.
	(qstring_to_ucs4): Use QString::toUcs4 if the qt version is at
	least 4.2
	(ucs4_to_qstring): Delete to avoid confusion, since it was only
	used in one place

	* src/frontends/qt4/panelstack.C
	(PanelStack::addCategory): Use toqstr instead of ucs4_to_qstring

	* src/support/unicode.[Ch]
	(ucs2_to_ucs4): Replace with utf16_to_ucs4
	(ucs4_to_ucs2): Replace with ucs4_to_utf16


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16169 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-04 13:50:46 +00:00
Abdelrazak Younes
8346fb6a47 add comment about location of the implementation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15969 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-18 20:28:18 +00:00
Abdelrazak Younes
7aa50e8f2b * lyx_main.[Ch]
- merge exec() and priv_exec()
  - LyX constructor is now public.
  - there is no global singleton_ object anymore, only a pointer.
  - IconvProcessor(): new utf8 to ucs4 convertor.

* main.C: instantiate a LyX object and exec() it. No more use of static methods.

* docstring.C: use utf8ToUcs4() instead of a static variable.

* unicode.h: declare extern utf8ToUcs4().



  

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15967 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-18 17:47:12 +00:00
Georg Baum
2981181ec3 Fix crashes reported by Bennet Helm and Kornel Benko
* src/support/unicode.[Ch]
	(IconvProcessor): Rework the implementation to fix two bugs:
	- iconv_close was called even if the conversion descriptor was
	  invalid
	- The compiler generated copy constructor did simply copy the pimpl_
	  pointer. Therefore pimpl_ was deleted twice for all IconvProcessor
	  instances created by eightbit_to_ucs4() and ucs4_to_eightbit().
	  This is solved by using a scoped_ptr for pimpl_.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15937 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-15 21:40:46 +00:00
Abdelrazak Younes
2d5ecd2bb8 remove the constness of the two code strings because this does not pass boost_concept_check with gcc-3.3.4-11:
g++ -/usr/include/g++/bits/boost_concept_check.h: In member function `
   lyx::IconvProcessor& lyx::IconvProcessor::operator=(const
   lyx::IconvProcessor&)':
/usr/include/g++/bits/boost_concept_check.h:203:   instantiated from `void __gnu_cxx::_SGIAssignableConcept<_Tp>::__constraints() [with _Tp = lyx::IconvProcessor]'
/usr/include/g++/bits/stl_map.h:94:   instantiated from `std::map<std::string, lyx::IconvProcessor, std::less<std::string>, std::allocator<std::pair<const std::string, lyx::IconvProcessor> > >'
unicode.C:281:   instantiated from here
/usr/include/g++/bits/boost_concept_check.h:203: error: non-static const member
   `const std::string lyx::IconvProcessor::tocode_', can't use default
   assignment operator
/usr/include/g++/bits/boost_concept_check.h:203: error: non-static const member
   `const std::string lyx::IconvProcessor::fromcode_', can't use default
   assignment operator


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15612 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-30 09:36:33 +00:00
Abdelrazak Younes
826c31a80d * unicode.[Ch]: new IconvProcessor class that enable to split iconv_convert() initialization and conversion parts.
* docstring.C: utf8_to_ucs4() makes use of IconvProcessor instead of iconv_convert.

The IconvProcessor interface will permit to switch to another processor than iconv.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15609 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-29 21:59:59 +00:00
Abdelrazak Younes
451b12d00d * LyXLex::Pimpl::buff is now a string.
* unicode.[Ch]:
 - new non template iconv_convert()
 - iconv_convert() template use above function.

* docstring.C:
 - utf8_to_ucs4(): new function, use the new iconv_convert() function above.
 - from_utf8(): use utf8_to_ucs4() function above.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15592 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-28 15:16:30 +00:00
Georg Baum
fa1856440c Restore inputenc support
* src/encoding.h
	(encoding_table): remove, this is no longer needed with unicode
	(iconvName_): new member: name of the encoding in iconv syntax

	* src/exporter.C
	(Exporter::Export): Use return value of Buffer::makeLaTeXFile

	* src/buffer.[Ch]
	(Buffer::makeLaTeXFile): return whether the file has been created
	successfully

	* src/buffer.C
	(Buffer::makeLaTeXFile): Use a docstream that converts to the correct
	encoding
	Display an error dialog is something went wrong

	* src/bufferparams.C
	(BufferParams::writeLaTeX): Undo the utf8 inputenc hack

	* src/frontends/qt4/QDocumentDialog.C: Add some FIXMEs

	* src/support/unicode.[Ch]
	(eightbit_to_ucs4): New conversion function
	(ucs4_to_eightbit): New conversion function

	* src/support/docstream.[Ch]
	(utf8_codecvt_facet_exception): Move to header and rename to
	iconv_codecvt_facet_exception
	(odocfstream): Take the encoding as argument

	* src/support/docstream.C
	(utf8_codecvt_facet): Generalize to other encodings than utf8 and
	rename to iconv_codecvt_facet

	* src/encoding.C: Remove obsolete tables

	* src/output_latex.C
	(TeXOnePar): Convert the paragraph to different encoding if needed

	* lib/encodings: Remove obsolete tables


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15564 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-26 15:01:45 +00:00
André Pönitz
6c300f72a2 move everything into namespace lyx
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15422 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-21 00:16:43 +00:00
Abdelrazak Younes
5ac136d708 MacOSX compile fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15354 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-17 11:58:21 +00:00
Georg Baum
59fdb31af3 s/boost::uint32_t/lyx::char_type/g except in the definition of lyx::docstring
and lyx::char_type


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14990 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-13 17:11:39 +00:00
Lars Gullik Bjønnes
bb61b2655f More unicode work. Fixup some usages.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14968 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-10 18:34:24 +00:00
Lars Gullik Bjønnes
c46b7d8955 Merge the unicode branch into trunk.
- src/support/unicode.[Ch]: new files with functions for converting
  to and fro ucs4, ucs2 and utf8.
- src/support/docstring.h: specialization of basic_string that
  holds a uint32_t internally.
- Several functions changed to use char_type instead of char or unsigned char.
- Qt3 and Qt4 sends ucs2 on to core
- Gtk sends ucs4 on to core
- Read and write utf-8 .lyx files.
- font_metrics and painter updated to handle ucs4 chars as input.
- Quite a bit of ugly compability code, conversion string->docstring, etc.
- Have fun...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14661 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-13 22:54:59 +00:00