Sorry, Andre, but this broke not only the modules stuff but the general handling of TextClasses. I'm not opposed to doing this sort of thing, but it's going to be a little more complicated. I'll do it when I get a bit of time, or I can explain what the issue is here if you want to do it.
I'll separately re-commit some of the cleanup here.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23189 a592a061-630c-0410-9148-cb99ea01b6c8
Also a few cosmetical changes where I xould not resist.
Would be nice if the 'modules people' could verify that their baby
is strill alive...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23154 a592a061-630c-0410-9148-cb99ea01b6c8
i. It didn't handle a leading "~"
ii. It wrongly handled a string of ../../etc when this took us back to the root directory.
Fix for (i) borrowed from expandPath(). The other is just logic.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22687 a592a061-630c-0410-9148-cb99ea01b6c8
The main change is to support/ForkedCalls.{h,cpp}. We introduce a static variable IAmAChild and a corresponding accessor. This is set to true in a new fork() method, in the branch taken by the child. (Note: fork() is safe cross-platform, as it just returns -1 if we don't have fork().) This ForkedProcess::iAmAChild() method is then used to protect GuiView::message().
As Abdel has pointed out, there may be other such calls to be protected, e.g., the emission of the Buffer::changed() signal. Those are not addressed here.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22587 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/InsetExternal.cpp: fix compiling. (Does not work yet)
* src/insets/InsetGraphics.cpp: use latexFilename to produce output.
* src/insets/InsetGraphicsParams.cpp: use availableFile to show preview.
* src/EmbeddedFiles.h|cpp: More things are moved from EmbeddedFiles to EmbeddedFile
* src/frontends/qt4/GuiGraphics.cpp: remove embeddable-related operations.
* src/support/FileName.h: make isReadableFile virtual
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22410 a592a061-630c-0410-9148-cb99ea01b6c8
- odocfstream: properly fix plaintext output by getting rid of ctor with std::string argument as this can be mixed up with std::ofstream(std::string) ctor where the argument is a file. UTF8 is now the default encoding.
- PreviewLoader::Impl::startLoading(): catch another potential iconv exception.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22332 a592a061-630c-0410-9148-cb99ea01b6c8
- flush out data at the end of the conversion process (bug 4439).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22319 a592a061-630c-0410-9148-cb99ea01b6c8
22077, 22078, 22079, 22080, 22081.
Sorry Peter, but this was breaking too many things, see discussions
on lyx-devel.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22101 a592a061-630c-0410-9148-cb99ea01b6c8
- QProcess::start and ProgressInterface::appendMessage take a Qstring as an argument.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22081 a592a061-630c-0410-9148-cb99ea01b6c8
- provide some more information about the processes result.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22080 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView:
- insertPlaintextString(): now accept a FileName.
- contentsOfPlaintextFile(): ditto and use FileName::fileContents().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21915 a592a061-630c-0410-9148-cb99ea01b6c8
This happens when opening the External Material dialog, where
a temporary filename is generated but the corresponding file
is not yet created.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21893 a592a061-630c-0410-9148-cb99ea01b6c8
Now support/* should have no dependencies on src/* anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
- introduce changeExtension(): the goal is to replace progressively the one in filetools.cpp
- get rid of internal_path() checking for Win32 as the path is always normalized with slashes with QFileInfo.
* BufferParams: get rid of filepath member. This was used only once and was fixing a path in BufferParam was wrong anyway.
* Buffer::filePath(): always regenerate instead of caching it in BufferParams.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21847 a592a061-630c-0410-9148-cb99ea01b6c8
- simplify copyTo(), the second argument was never used.
- move string manipulations to FileName::Private
- replace platform specific code with Qt equivalent.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21793 a592a061-630c-0410-9148-cb99ea01b6c8
introduce isReadableDirectory
replace isReadable by either isReadableFile or isReadableDirectory
remove isReadable
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21769 a592a061-630c-0410-9148-cb99ea01b6c8
as externally modified.
* src/Buffer.cpp (Buffer::readFile): filenames are always stored
as UTF-8 in the FileName class.
* src/support/FileName.h: correct comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21620 a592a061-630c-0410-9148-cb99ea01b6c8
Sorry Uwe but if this does not compile it is a problem on your system.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21529 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstream.{cpp,h}:
Move insertion operator for char types from docstream.h to
docstream.cpp and compile it only when USE_WCHAR_T is not defined.
* src/support/strfwd.h:
Implement forward declarations in standard C++ way.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21513 a592a061-630c-0410-9148-cb99ea01b6c8
Would be nice if people tested read/write, and Bo perhaps the 'embedded'
feature?
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21492 a592a061-630c-0410-9148-cb99ea01b6c8
hope there are only conforming implementaions out there ;-}
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21312 a592a061-630c-0410-9148-cb99ea01b6c8
In the future, when Cursor has been fixed to work correctly with multiple views of the same Buffer, we could transfer the Undo owner from Buffer to Cursor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21031 a592a061-630c-0410-9148-cb99ea01b6c8
- Modifier on return type ignored
- Ambigous else
- Ambigous logical operators
- Semi-colon instead of empty block
- Missing header files
- Missing using std::XX
- Initialization out of order
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20304 a592a061-630c-0410-9148-cb99ea01b6c8
xft-fonts package is still required. However, on *nix there seem
to be no way to tell fontconfig to prefer our fonts instead of
others matching the requirements, so, in case of conflict, the
fontconfig files should be manually adjusted, or some existing
font package used (note that the quality of the bakoma fonts is
better than that of the xft ones). There is no such problem on
Windows where our private fonts are always preferred over the
installed ones (and I hope the same holds true for Mac).
* src/LyX.cpp
(LyX::exec): don't call addFontResources() and restoreFontResources()
anymore, as the frontend code will do the job.
* src/frontends/qt4/GuiFontLoader.{cpp,h}
(GuiFontLoader::GuiFontLoader): register math fonts with Qt.
(GuiFontLoader::~GuiFontLoader): unregister math fonts.
* src/support/os.h
* src/support/os_unix.cpp
* src/support/os_win32.cpp
* src/support/os_cygwin.cpp:
remove code dealing with fonts.
* configure.ac: don't check for fontconfig headers anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20128 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/os_unix.cpp
(addFontResources): add the system fonts dir to the paths
scanned by fontconfig.
(restoreFontResources): remove the system fonts dir from the
fontconfig configuration.
* configure.ac:
add check for the fontconfig devel headers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20034 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/tempname.cpp: move code about HAVE_MKSTEMP here (only user)
* src/pch.h:
* src/Buffer.cpp:
* configure.ac: remove all traces of utime.h and HAVE_UTIME
* config/lyxinclude.m4: remove WITH_WARNING define (which be rendered useless in
a future commit from christian)
* development/scons/SConstruct: try to update.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19395 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filetools.cpp (i18nLibFileSearch): use a trick to find
out the name of the current translation.
* po/*.po: add the entry necessary for the above trick.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19350 a592a061-630c-0410-9148-cb99ea01b6c8
using false as the third parameter to setenv for not having it
replaced when already set.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19335 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/gzstream.h: re-introduce the stream we were using in
1.4.x. The boost iostream solution produces unreadable streams
on windows and we do not know why currently.
* src/support/Makefile.am:
* src/Buffer.cpp:
* src/Lexer.cpp:
* development/scons/scons_manifest.py: adapt.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19271 a592a061-630c-0410-9148-cb99ea01b6c8
- consider that not only utf8, but also most cjk encodings, are multibyte encodings
(fixes bug 4012)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19076 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/os_cygwin.cpp
* src/support/os_win32.cpp
(addFontResources): use AddFontResourceEx on Windows version
supporting this API in order to mark our fonts as private.
(restoreFontResources): ditto with RemoveFontResourceEx.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19038 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Changes.cpp:
* src/support/userinfo.cpp:
* src/Paragraph.cpp:
* src/Changes.h:
* src/Buffer.cpp:
* src/Paragraph.h:
* src/BufferParams.cpp: do not save the name of authors
in LyX documents, who have not made a single change in
change tracking mode
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19019 a592a061-630c-0410-9148-cb99ea01b6c8
- isAscii(): char is signed with MSVC so the comparison was not correct. Add a static_cast to "unsigned char" as per the other methods.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19001 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstring.{cpp,h}:
- rename normalize_kc to normalize_c and use normalization form C (instead of KC)
* src/callback.cpp:
* src/Trans.cpp:
* src/frontends/qt4/GuiClipboard.cpp:
* src/frontends/qt4/GuiSelection.cpp:
* lib/lyx2lyx/lyx_1_5.py:
- use normalization forms C and D instead of KC and KD.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18991 a592a061-630c-0410-9148-cb99ea01b6c8
* src/graphics/GraphicsConverter.cpp
(move_file, build_script): convert any path name to the local
encoding directly in the python script.
* src/support/tempname.cpp
(tempName): don't pass local 8bit encoded strings to addName as
it expects them to be utf8 encoded.
* src/ServerSocket.cpp
(ServerSocket::ServerSocket): ditto for setEnv.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18893 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/qstring_helpers.cpp
(toqstr): Use iconv for surrogate pairs
(qstring_to_ucs4): ditto
* src/support/qstring_helpers.h
(qchar_to_ucs4): Remove obsolete comment, the doxygen doc is more
accurate
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18622 a592a061-630c-0410-9148-cb99ea01b6c8
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
read from a text file.
* src/encoding.[Ch]
(Encoding::latexChar): New, output a character to LaTeX
(Encoding::validate): New, add needed preamble stuff for a character
(Encodings::read): Read new unicodesymbols file
(Encodings::isCombiningChar): New, is a character a combining char?
* src/paragraph_pimpl.C
(isEncoding): Delete, no longer needed
(getEncoding): New, get the real encoding of a font
(Paragraph::Pimpl::latexSurrogatePair): New, output a surrogate pair
to LaTeX
(Paragraph::Pimpl::simpleTeXBlanks): Use latexSurrogatePair if needed
(Paragraph::Pimpl::simpleTeXSpecialChars): Ditto, and replace several
hardcoded characters with a call of encoding.latexChar()
(Paragraph::Pimpl::validate): replace several hardcoded characters
with a call of encoding.validate()
* src/support/debugstream.h
(basic_debugstream::disable): New, disable the stream completely
(basic_debugstream::enable): New, reenable the stream
* src/lyx_main.[Ch]: Adjust to changes above
* src/paragraph.C: Ditto
* lib/unicodesymbols: New file with UCS4 -> LaTeX command mapping.
It is far from complete yet, but contains most accents on latin
characters.
* lib/Makefile.am: add lib/unicodesymbols
* development/scons/scons_manifest.py: ditto
* development/tools/unicodesymbols.py: Helper script to update
lib/unicodesymbols with new symbols
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16920 a592a061-630c-0410-9148-cb99ea01b6c8
* ExceptionMessage: new exception based message for errors and warnings.
* package.C.in:
- replace lyxerr based errors and warning with ExceptionMessage throwing.
- bail_out(): erased!
* os_win32.C:
- replace lyxerr based errors and warning with ExceptionMessage throwing.
- bail_out(): erased!
* tex2lyx.C: catch any exception from Package class.
* lyx_main.C: catch any exception from Package class and act accordingly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16834 a592a061-630c-0410-9148-cb99ea01b6c8
* src/converter.C
(Converters::convert): Convert command to be executed to the proper
encoding. Use from_utf8 instead of from_ascii in order to avoid
assertions when displaying an alert.
* src/support/docstring.[Ch]
(to_filesystem8bit): new conversion function.
* lib/scripts/fig2pstex.py
* lib/scripts/fig2pdftex.py:
Modified to reflect the changes above.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16803 a592a061-630c-0410-9148-cb99ea01b6c8
* src/LaTeX.C
(LaTeX::deplog): Assume that filenames in log files are stored in
the file system encoding
* src/frontends/qt4/qt_helpers.[Ch]
(internal_path): delete
* src/frontends/qt4/QGraphics.C: Adjust to change above
* src/frontends/qt4/QPrefsDialog.C: ditto
* src/frontends/qt4/QExternal.C: ditto
* src/frontends/qt4/QInclude.C: ditto
* src/support/os.h: Document the encoding of filename arguments
* src/support/os_win32.h: ditto
* src/support/filetools.C
(findtexfile): Convert filename from file system encoding
* src/support/os_win32.C: Convert filenames from utf8 to file system
encoding and vice versa where needed
* src/support/os_cygwin.C: ditto
* src/support/getcwd.C
(getcwd): Use internal_path() with correct encoding
* src/support/docstring.[Ch]
(from_filesystem8bit): new conversion function
* src/support/environment.C
(getEnv): convert environment variable from local 8bit encoding to utf8
(setEnv): convert environment variable from utf8 to local 8bit encoding
* src/support/environment.h: document encoding of function arguments
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16753 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=3114
* os.h
- new docstring adapted internal_path()
* qt_helpers.[Ch]:
- new QString adapted internal_path()
All other files: use that.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16744 a592a061-630c-0410-9148-cb99ea01b6c8
Move OS dependent code where it belongs.
* src/lyx_cb.C:
Remove unused include
* src/support/os.h
* src/support/os_unix.C
* src/support/os_win32.C
* src/support/os_cygwin.C:
Move here the code from fontutils.[Ch]
* src/support/os_cygwin.C
(external_path, external_path_list): don't differentiate anymore
on Qt/X11 or Qt/Win builds.
* src/support/environment.C
(setEnvPath): get rid of the #ifdef for cygwin.
* src/lyx_main.C
(LyX::exec): addFontResources and restoreFontResources are now
in the os namespace.
* src/support/Makefile.am
* src/client/Makefile.am
* src/tex2lyx/Makefile.am
* development/scons/scons_manifest.py:
Updated
* src/support/fontutils.[Ch]:
Removed
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16655 a592a061-630c-0410-9148-cb99ea01b6c8
encodings) more fine grained: From paragraph level to individual character
level. The inputenc package supports that since at least 2000.
* src/insets/insetbase.h
(latex): Document the differences between output to a string stream
and a file stream
* src/buffer.h
(writeLaTeXSource): ditto
* src/output_latex.h
(latexParagraphs): ditto
(switchEncoding): new function to change the encoding of a stream
(and output \inputencoding commands)
* src/paragraph_pimpl.C
(Paragraph::Pimpl::simpleTeXSpecialC): Adjust to latexWriteEndChanges
changes
* src/support/docstream.[Ch]
(setEncoding, operator<<): New stream modifier that changes the
encoding of file streams
* src/lyxfont.[Ch]
(LyXFont::latexWriteStartChanges): Change stream encoding if needed
(LyXFont::latexWriteEndChanges): Change stream encoding if needed
* src/lyxfont.h
(public:):
* src/paragraph.C
(Paragraph::simpleTeXOnePar): Adjust to latexWriteStartChanges and latexWriteEndChanges changes
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
(bool Paragraph::simpleTeXOnePar):
* src/output_latex.C
(TeXOnePar): Remove the ugly hack to for wencoding changes and use
switchEncoding instead. A nice side effect is that the old hack would
not work if the main language encoding is latin1 and a character
would be mapped to a cedilla in the "fake ucs4" encoding, because
iconv refuses to convert such a character to latin1, although it
exists in latin1 (it wants to attach it to a base character).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16633 a592a061-630c-0410-9148-cb99ea01b6c8
the role kLSRolesAll for both edito and viewer, since it is what
the finder does.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16602 a592a061-630c-0410-9148-cb99ea01b6c8
like 3043
* src/support/docstream.C
(iconv_codecvt_facet::do_out): Output the to be converted string and
the partially converted result in hex notation if an error occurs
(iconv_codecvt_facet::do_in): ditto
(iconv_codecvt_facet::do_iconv): remove now obsolete error message
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16469 a592a061-630c-0410-9148-cb99ea01b6c8
(IconvProcessor::convert): Fix hex output of bytes on systems where
char is signed
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16468 a592a061-630c-0410-9148-cb99ea01b6c8
(iconv_convert): Fix a crash: Don't try to create a vector from two
pointers where end is before begin.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16408 a592a061-630c-0410-9148-cb99ea01b6c8
instead of std::string
* src/support/lyxlib.h
* src/support/getcwd.C
(getcwd): return a FileName, not a std::string in filesystem encoding
* src/support/filetools.[Ch]
(makeAbsPath): return a FileName, not a std::string in undefined encoding
* src/support/lyxlib.h
* src/support/tempName.C
(makeAbsPath): return a FileName, not a std::string in undefined encoding
* many other files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16399 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filetools.h
(fileSearch): change return value type to vector<FileName>
* src/support/filetools.C
(dirList): Convert filenames from the file system encoding
* src/converter.C
(Converters::move): Adjust to dirList interface change
* src/support/filename.[Ch]
(FileName::fromFilesystemEncoding): New static method
* src/client/client.C: Add comments about filename encoding
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16362 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filetools.[Ch]
(fileOpenSearch): comment out since it is unused
(fileSearch): Use addExtension instead of changeExtension, since we
are always called without extesnion, or with the correct one.
(addExtension): new function
* src/lyx_main.C
(LyX::init): tell fileSearch that we are also interested in the name
if the file does not exist
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16361 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/package.h
(Package::system_temp_dir): new, return the system temp dir.
* src/support/package.C.in
(Package::Package): record the system temp dir.
* src/lyx_main.C
(LyX::prepareExit): don't remove the temporary directory if it
is the same as the system temp dir, meaning that the lyx_tmpdir
has not yet been created.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16318 a592a061-630c-0410-9148-cb99ea01b6c8
from/to the local 8bit encoding with it.
Only the autotools build system is updated, scons and cmake users need to
add qt4 cpp flags when compiling libsupport, and link libsupport against
libQtCore.
* src/frontends/qt4/qt_helpers.[Ch]
(toqstr, qchar_to_ucs4, ucs4_to_qchar, ucs4_to_qstring,
qstring_to_ucs4, fromqstr): Move these qstring conversion functions
from here ...
* src/support/qstring_helpers.[Ch] ... to these new files
* src/support/docstring.[Ch]
(from_local8bit): new conversion function from local 8bit encoding
to ucs4
(to_local8bit): new conversion function from ucs4 to local 8bit
encoding to ucs4
(to_local8bit_failure): exception that is thrown by to_local8bit if
the argument cannot be converted to the local encoding
* src/support/filename.C
(FileName::toFilesystemEncoding): implement with the help of QFile
* src/support/Makefile.am: Add new files, qt4 cpp flags and link
against libQtCore
* src/client/client.C: Convert commandline input from local encoding
to ucs4. Convert stuff that is sent to to the server to utf8,
because LyX interprets it as utf8 on the other end of the pipe.
* src/lyx_main.C
(LyX::exec): convert commandline input from local encoding to utf8
(LyX::init): ditto
(LyX::easyParse): ditto
* development/scons/scons_manifest.py: Add new files
* config/qt4.m4: Define new variables QT4_CORE_INCLUDES,
QT4_CORE_LDFLAGS and QT4_CORE_LIB
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16257 a592a061-630c-0410-9148-cb99ea01b6c8
needsUpdate() in src/lyx_main.C).
toFilesystemEncoding() is now used in all places where it is needed if I did
not forget anything.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16184 a592a061-630c-0410-9148-cb99ea01b6c8
* 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
created by the default constrcutor anyway.
This prevents an assert in findtexfiles.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16168 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstring.C
(do_get): terminate the string before using it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16086 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstring.C
(do_get): use reserve() and the += operator in order to
avoid a possible buffer overrun.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16070 a592a061-630c-0410-9148-cb99ea01b6c8
- 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
file names, and DocFileName contains the special extensions for documents,
included figures etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15965 a592a061-630c-0410-9148-cb99ea01b6c8
where sizeof(wchar_t) == 2
* src/support/docstring.C:
- New class ascii_num_get_facet for inputting numbers from idocstreams.
- Add the ascii_num_get_facet facet to the locale initializer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15959 a592a061-630c-0410-9148-cb99ea01b6c8
* 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