Delete cached conversions if the converter changes.
* src/frontends/qt4/QPrefs.cpp
(PrefConverters::update_converter): delete cached files since the
new converter might create different ones
(PrefConverters::remove_converter): ditto
* src/support/convert.cpp
(unsigned long convert<unsigned long>): New template specialization
* src/ConverterCache.h
(ConverterCache::remove_all): New method, removes all cached
conversions of a particular converter
* src/ConverterCache.cpp
(CacheType): Also store source file format
(ConverterCache::Impl::readIndex): Handle files with spaces correctly
(ConverterCache::Impl::writeIndex): ditto
(various): adapt to changed CacheType
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18378 a592a061-630c-0410-9148-cb99ea01b6c8
Remove all explicit 8bit characters from the source, to fix compilation
with windows xp under a chinese locale (bug 3496).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18256 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/tempname.C
(tempName): Return FileName in utf8 encoding.
* src/lyxsocket.[Ch]
(LyXServerSocket::LyXServerSocket): Use FileName instead of string
and set the env var LYXSOCKET in the filesystem encoding as this
is what the client expects.
* src/support/socktools.[Ch]
(socktools::listen): Convert to FileName and use the filesystem
encoding for the file names stored in the sockaddr_un struct.
* src/client/client.C
(socktools::connect): Convert to FileName and use the filesystem
encoding for the file names stored in the sockaddr_un struct.
(LyXDataSocket::LyXDataSocket, main): Convert to FileName.
* src/lyx_main.C
(LyX::exec): Use FileName instead of string in socket code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17749 a592a061-630c-0410-9148-cb99ea01b6c8
This fixes some encoding problems, and hopefully also bug 3410.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17746 a592a061-630c-0410-9148-cb99ea01b6c8
Most important improvements:
- read file character by character and treat newline like space characters.
Thus the @ does not need to be at the beginning of a line.
- it reads @string entries and replaces the strings in the field values
- it also handles @comment entries
- it recovers from syntax errors at the next entry starting with @
- it ignores everything between entries
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17723 a592a061-630c-0410-9148-cb99ea01b6c8
keyboard input via kmap, clipboard and selection) to normalized form KC
(precomposed characters) since we don't support the decomposed form very
well.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17702 a592a061-630c-0410-9148-cb99ea01b6c8
isdigit from ctype.h, because the latter are locale dependant and do not
work with char_type.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17698 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/unicode.C (convert): do not forget to reset lyxerr to
std::dec type of output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17609 a592a061-630c-0410-9148-cb99ea01b6c8
src/support/filetools.C
(makeDisplayPath): do not shorten path when it is the libdir one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17442 a592a061-630c-0410-9148-cb99ea01b6c8
(lowercase): assert that input is pure ASCII
(uppercase): ditto
* src/support/lstrings.h
(lowercase): document that only ASCII input is allowed
(uppercase): ditto
* src/lyxfind.C
(stringSelected): Use compare_no_case (more efficient)
* src/MenuBackend.C: remove unused using directive
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17393 a592a061-630c-0410-9148-cb99ea01b6c8
support directory, return as a relative path (enclosed in brackets)
* frontends/qt4/GuiView.C (updateTabs): use makeDisplayPath instead
of onlyFileName.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17384 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filename.C
(DocFileName::mangledFilenam): Use a whitelist of allowed characters
instead of an incomplete blacklist of disallowed ones
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17378 a592a061-630c-0410-9148-cb99ea01b6c8
* src/output_plaintext.C
(writePlaintextParagraph): Use compare_ascii_no_case instead of
compare_no_case, since the strings to compare are pure ASCII anyway.
* src/frontends/qt4/QPrefsDialog.C
(setComboxFont): ditto
* src/MenuBackend.C
(Menu::checkShortcuts): ditto
* src/frontends/qt4/QLImage.C
(QLImage::loadableFormats): Use ascii_lowercase instead of lowercase
since the input is pure ASCII anyway.
* src/tex2lyx/text.C
(splitLatexLength): ditto
* src/support/lstrings.[Ch]
(compare_no_case): Get rid of both std::string variants
(lowercase): Get rid of std::string variant
(uppercase): Change std::string variant to docstring
* src/support/tests/regfiles/lstrings: Add new expected output
* src/support/tests/lstrings.C: Add tests for docstring functions
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17371 a592a061-630c-0410-9148-cb99ea01b6c8
* FontMetrics.h: only one string width() method.
* Painter.h: only one text() method.
* all other files: adapt to above API change.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17362 a592a061-630c-0410-9148-cb99ea01b6c8
reference to lyx::utf8ToUcs4.
I did not fix this since it is an interface violation that should be fixed
otherwise.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17358 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/lstrings.C
(uppercase): Use qt instead of non working libc/home grown solution
(lowercase): ditto
(local_lowercase): Use qt instead of libc tolower for ucs4 chars
* src/support/qstring_helpers.C
(qstring_to_ucs4): Use qchar_to_ucs4 because of the assertion
* src/support/lstrings.h: Add some documentation
* src/support/qstring_helpers.h
(is_utf16): New function: Tests whether an ucs4 character is also a
valid utf16 character
(qchar_to_ucs4): Assert on is_utf16()
(ucs4_to_qchar): Replace old assertion with better is_utf16()
* src/support/textutils.h
(isLetterChar): Delete non-working implementation
(isPrintable): Ditto
(isPrintableNonspace): Ditto
(isDigit):
* src/support/textutils.C: New file, contains new implementations
using qt of the functions in textutils.h
* src/support/Makefile.am: Add textutils.C
* development/scons/scons_manifest.py: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17354 a592a061-630c-0410-9148-cb99ea01b6c8
What I did:
* move xx_foo.ext to xx/foo.ext
* update Makefile.am to make install work
* minimally update scons_manifest.py (I'd be surprised to see it
work).
* update i18nLibFileSearch to use the new naming scheme, and keep
temporarily some code that checks the old method.
* update image paths in .lyx files
* update name of files (examples in tutorial, for ex.) in lyx files
What is definitely broken:
* cmake (did not touch it)
* TOC files (I am not sure how the code works)
I would be surprised if nothing else was wrong.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17343 a592a061-630c-0410-9148-cb99ea01b6c8
(makeLatexName): Exclude ", otherwise we would trigger the same
problem of unbalanced quotes as in bug 3266
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17336 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filetools.C
(makeLatexName): Don't set the 8th bit of characters to 0.
This is not needed anymore, since we don't use isalpha() anymore,
but a whitelist of allowed characters.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17331 a592a061-630c-0410-9148-cb99ea01b6c8
* src/buffer.C
(Buffer::readString): Tell readFile that we do not have a file
(Buffer::readString): readFile(name) returns a bool, not an enum
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16931 a592a061-630c-0410-9148-cb99ea01b6c8