* lyx_main.C:
- LyX::prepareExit(): avoid utf8_to_ucs4() conversion at this late stage because this can cause problem on Mac.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15955 a592a061-630c-0410-9148-cb99ea01b6c8
* 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
* development/cmake/config.h.cmake:
there is no mode_t
* src/support/copy.C
chmod is declared in io.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15913 a592a061-630c-0410-9148-cb99ea01b6c8
preferences file with \use_converter_cache true. It is disabled by default,
and no GUI support for changing the preferences is yet implemented.
* src/insets/insetgraphics.C
(InsetGraphics::prepareFile): Use image file cache
* src/insets/ExternalSupport.C
(updateExternal): Use image file cache
* src/exporter.C
(Exporter::Export): Do not use image file cache
* src/graphics/GraphicsCacheItem.C
(CacheItem::Impl::imageConverted): Add the converted file to the
image file cache
(CacheItem::Impl::convertToDisplayFo): Use image file cache
* src/converter.C
(Converters::convert): Use image file cache if the caller allowed that
* src/converter.h
(Converters::convert): Adjust arguments
* src/Makefile.am: Add new files
* src/support/lyxlib.h
(chmod): new function
(copy): add mode argument
* src/support/copy.C
(chmod): new function
(copy): implement mode argument
* src/support/mkdir.C
(lyx::support::mkdir): Add warning if permissions are ignored
* src/lyxrc.[Ch]: Add new settings \converter_cache_maxage and
\use_converter_cache
* src/ConverterCache.[Ch]: New image file cache
* src/importer.C
(Importer::Import): Do nut use the image file cache
* src/lyx_main.C
(LyX::init): Initialize the image file cache
* src/mover.[Ch]
(Mover::do_copy): Add mode argument
(SpecialisedMover::do_copy): ditto
* configure.ac: Check for chmod
* development/cmake/ConfigureChecks.cmake: ditto
* development/cmake/config.h.cmake: ditto
* development/scons/SConstruct: ditto
* development/scons/scons_manifest.py: Add new files
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15897 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer.C
(Buffer::insertStringAsLines): Uncomment isPrintable test
* src/support/lstrings.C
(compare_no_case): Use char_type and not int for the docstring version
(ascii_tolower): Convert to a template
(compare_ascii_no_case): Do not use a template anymore, because we
need int for the string version and char_type for the docstring
version as intermediate type
(lowercase): Use towlower if possible
(uppercase): Use towupper if possible
* src/support/textutils.h
(isLetterChar): Use iswalpha if possible
(isPrintable): Use iswprint if possible
(isPrintableNonspace): Use iswprint and iswspace if possible
(isDigit): Use iswdigit if possible
* src/paragraph.C
(Paragraph::asString): remove obsolete FIXME
(Paragraph::transformChar): add FIXME
* configure.ac: Add definition of LIBC_WCTYPE_USES_UCS4 to config.h
* development/cmake/config.h.cmake: ditto
* development/scons/SConstruct: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15893 a592a061-630c-0410-9148-cb99ea01b6c8
codepoint > 255.
I decided that this is no file format change: We already had the change to
format 249 that allowed unicode in .lyx files. The output to .tex of
non-ascii characters is now different than before (even for those that were
supported previously, e.g. german umlauts in latin1), but this is only
relevant if people referenced a label in ERT. Since we cannot detect this
anyway we don't need a file format change.
* src/support/lstrings.C
(escape): Extend the escaping algorithm from 8 bit to 24 bit.
* src/support/lstrings.h
(escape): Update comment
* lib/lyx2lyx/lyx_1_4.py
(lyx_support_escape): Update comment
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15883 a592a061-630c-0410-9148-cb99ea01b6c8
labelstring_appendix in layout files
* src/text2.C
(LyXText::setLayout): Translate labelwidthstring for paragraph
(LyXText::getStringToIndex): labelwidthstring is now a docstring
* src/buffer.[Ch]
(Buffer::translateLabel): New method for translating a label if it
is not already translated by the user in the layout file
* src/lyxtext.h
(setParagraph): labelwidthstring is now a docstring
* src/support/lstrings.[Ch]
(bool isAscii): New utility function: Determine whether a docstring
contains only pure ascii
* src/text3.C
(LyXText::dispatch): setParagraph() now takes a docstring
* src/lyxlayout.C
(LyXLayout::read): Don't use from_ascii when reading labelstring_,
endlabelstring_ and labelstring_appendix_
* src/buffer_funcs.C
(setLabel): labelwidthstring is now a docstring
(setLabel): Use Buffer::translateLabel instead of Buffer::B_ to
translate labels
(expandLabel): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15855 a592a061-630c-0410-9148-cb99ea01b6c8
where sizeof(wchar_t) == 2
* src/support/docstring.C:
- New class num_put_failure for warning about non-ascii characters.
- New class ascii_num_put_facet for outputting numbers to odocstreams.
- Add the ascii_num_put_facet facet to the locale initializer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15849 a592a061-630c-0410-9148-cb99ea01b6c8
(iconv_codecvt_facet::do_max_length): Update to current UTF8
specification and return 4 for UTF8.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15642 a592a061-630c-0410-9148-cb99ea01b6c8
* 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
* 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
* 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
- Fix LaTeX export of User guide (the utf8 conversion buffer was too small)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15390 a592a061-630c-0410-9148-cb99ea01b6c8
Known problems:
- No space is output after a \hfill. I probably broke this with the
InsetCommand patch. I'll have a look later.
- Although the encoding is now UTF8 the arguments of the inputenc package
are still the old ones, so LaTeX will not run.
- Labels and references with non-ASCII characters are broken. This needs to
be fixed in lyx::support::escape(), but this is a file format change.
- Something seems to be wrong with index entries, but this is probably also
due to the InsetCommand changes.
Have fun!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15378 a592a061-630c-0410-9148-cb99ea01b6c8
export (e.g. the ToC) and the navigate menu.
* src/insets/insetbase.h
(InsetBase::plaintext): output to a docstream
(InsetBase::textString): ditto
* src/mathed/TextPainter.h
(TextPainter::show): ditto
* src/support/docstream.[Ch] New file and string streams for
docstring. The file streams convert to UTF8 on the fly.
* many more files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15301 a592a061-630c-0410-9148-cb99ea01b6c8
* lstrings.[Ch]: new docstring trim() function
* qt4/validators.C: PathValidator::validate() and printable_list() converted to unicode.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15281 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/unicode.C
(iconv_convert): Use boost::uint32_t for storing a buffer character,
since the previously stored unsigned char is too small. I did not
use lyx::char_type on purpose because that might not be interpreted
as number, but as wide character if lyx::char_type == wchar_t.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15278 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/fontutils.C:
Undefine the min and max macros if they are defined
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15210 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/fontutils.C:
Undefine the min and max macros after inclusion of windows.h on cygwin.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15203 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt4/GuiView.C
(setGeometry): replace test for Q_OS_WIN32 with Q_WS_WIN
* src/support/fontutils.C:
If X_DISPLAY_MISSING is defined, compile the code for Win32
on cygwin, too.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15201 a592a061-630c-0410-9148-cb99ea01b6c8
These font related functions were identical for qt3 and qt4. They are not Qt dependent at all and could also apply to an eventual Win32 or MacOSX gtk port.
Jen-Marc says: It would be nice to convince fontconfig to do the same for linux.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15196 a592a061-630c-0410-9148-cb99ea01b6c8