Commit Graph

56 Commits

Author SHA1 Message Date
Enrico Forestieri
1717ef203c Introduce the possibility of setting a prefix for the TEXINPUTS environment
variable. This is done in the preferences, much like as the PATH prefix.
A single '.' in the paths will get replaced with the current document dir
and also non-absolute paths will be prefixed with that dir.

The default semantics of TEXINPUTS apply, such that, for example, if a
path is terminated with a double slash, all subdirectories will be also
searched by both the TeX engine and ancillary programs such as dvi
previewers or dvips. As an example, if the prefix is set to ".:figs", the
TEXINPUTS variable will be set as ".:<docdir>:<docdir>/figs:$ORIGTEXINPUTS",
where <docdir> is the document directory.

The initial '.' is necessary to address the actual current dir (this will
be the temp dir at preview time), while if TEXINPUTS was initially unset,
such that $ORIGTEXINPUTS is empty, a colon (or semicolon on Windows) will
end the path list. This is very important, because we don't want to replace
the system directories but to complement them and, in order to do that, an
empty element has to be present in the list. Indeed, according to the
TEXINPUTS semantics, an empty element means the standard search path.
This works whether TEXINPUTS is originally set or not, because if the
original TEXINPUTS starts with a colon (meaning that the standard search
path is wanted there) we will have an empty element at that point,
otherwise the final colon will simply serve as a path separator.

Of course, on Windows a ';' has to be used as a path separator. LyX will
take care of transforming the platform path list into one understandable
by the TeX engine. For example, this will be the case for a Cygwin version
of LyX using a native Windows TeX engine or viceversa. I tested all of
this and it works for me.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38681 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-09 23:25:51 +00:00
Enrico Forestieri
3efc6385d7 See r37176. Let's keep this a Windows only "feature".
Something went wrong with a script while previewing a document and now
I have to wait for 30 minutes for quitting LyX without killing it.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38578 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-04 00:17:07 +00:00
Enrico Forestieri
be3fba333b Remove left over.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34919 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 14:43:12 +00:00
Enrico Forestieri
952a31a43e Fix output to terminal when LyX is launched from a GUI on *nix
aka
Surrender to Windowsisms
aka
Resistance is futile, you will be assimilated


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34918 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 14:30:46 +00:00
Enrico Forestieri
0f8929d5d1 Fix command line parsing and allow unicode arguments for tex2lyx on Windows.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33723 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-12 01:18:39 +00:00
Enrico Forestieri
3fce202517 On Windows, allow loading documents with non-ascii chars in their path
also from command line and from explorer windows.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33561 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-25 00:20:31 +00:00
Enrico Forestieri
10f1370464 On windows, allow saving a document whose pathname contains unicode chars.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33539 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-22 19:34:25 +00:00
Enrico Forestieri
37974532f6 Fix bug #5238: LyX 1.6 fails with non-ascii chars in path (on Windows)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33524 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-21 04:51:27 +00:00
Enrico Forestieri
2fb21c28b5 Simpler things are almost always better.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29843 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-25 17:30:02 +00:00
Enrico Forestieri
6d1d27eb90 Take into account file system case sensitivity when checking whether
a path starts with a given prefix.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29793 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-22 22:34:43 +00:00
Enrico Forestieri
8fe984090f Allow immediate output of spawned processes for all platforms.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29668 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-14 15:13:58 +00:00
Enrico Forestieri
0ed38ed1f4 Allow to separately redirect stdout and stderr.
Now "lyx > stdout.log" should produce the same output as before
the switch to QProcess.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29655 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-13 12:55:01 +00:00
Enrico Forestieri
97303baac2 Avoid #ifdef's and use OS specific code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29652 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-13 09:48:11 +00:00
Enrico Forestieri
e0941bdb4b Revert r29444 (to be soon replaced by Georg's solution).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29497 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-02 16:39:14 +00:00
Enrico Forestieri
b0936fac4c When performing a reverse DVI search and the tmpdir is a symlink, the
DVI viewer passes back the resolved path, such that the search fails,
as internally LyX uses the unresolved path.
This patch fixes this bug by using the new method FileName::realPath
which resolves a path by getting rid of any '.', '..', or symlink
path components.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29476 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-01 15:18:11 +00:00
Enrico Forestieri
4053db1858 Speed up FileName operator==, such that working with child documents on
Windows and Solaris is again possible.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29444 a592a061-630c-0410-9148-cb99ea01b6c8
2009-04-29 22:42:26 +00:00
Jürgen Spitzmüller
5be56b517a Fix bug 5827 (validate date-insert argument):
* src/support/os*.{cpp,h}:
	- new function is_valid_strftime that validates strftime arguments, 
	  OS dependant (win32 differs here)

* src/Text3.cpp:
	- use is_valid_strftime in LFUN_DATE_INSERT status check.

* src/frontends/qt4/GuiPrefs.{cpp, h}:
	- new GUI validator for strftime.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28932 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-27 11:22:54 +00:00
Peter Kümmel
cab745d661 Fix bug 2235: jpeg capital letters (.JPG) does not work with pdflatex
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26744 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-05 11:51:18 +00:00
Abdelrazak Younes
96ee270933 transfer os::is_absolute_path() to FileName::isAbsolute().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22187 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-17 15:15:37 +00:00
André Pönitz
a5263e0f92 introduce a header to forward declare std::string.
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
2007-10-31 22:40:34 +00:00
Enrico Forestieri
92065820e5 Register math fonts with Qt 4.2 or higher. Using Qt 4.1, the old
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
2007-09-07 16:22:05 +00:00
Georg Baum
ac7ee5b85e Don't use the char version of uppercase
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17430 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-13 10:22:10 +00:00
Georg Baum
77b9dbd557 Fix several filename and environment variable encoding problems
* 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
2007-01-18 20:47:27 +00:00
Abdelrazak Younes
200db1541a Partly revert revision 16744. Georg doesn't want to mix string/docstring in there.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16745 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-18 13:35:01 +00:00
Abdelrazak Younes
0c496dc535 Convert internal_path() to unicode (partially). Fix bug 3114:
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
2007-01-18 12:30:07 +00:00
Enrico Forestieri
fc3a2761de Log:
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
2007-01-11 21:22:18 +00:00
Georg Baum
4ae87a3bb8 Call python with the -tt switch to make mixed tab/space indentation an error
* src/support/os.[Ch]
	(python): new function, return the python command

	* lib/lyx2lyx/lyx_1_5.py
	(revert_font_settings): replace tabs with spaces

The rest is simply s/python/python -tt/ and
s/"python"/lyx::support::os::python()/ where appropriate.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14270 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-30 13:54:01 +00:00
Jean-Marc Lasgouttes
44a5cfc89c Renaming:
cygwin_path_fix		->	windows_style_tex_paths
	cygwin_path_fix_needed	->	tex_expects_windows_paths
	check_cygwin_path	->	check_windows_style_tex_paths
	use_cygwin_paths	->	use_windows_paths
	RC_CYGWIN_PATH_FIX	->	RC_TEX_EXPECTS_WINDOWS_PATHS

	* src/frontends/qt4/ui/QPrefCygwinPathUi.ui
	* src/frontends/qt3/ui/QPrefCygwinPathModule.ui
	  Updated checkbutton label and description

	* src/frontends/qt4/QPrefsDialog.C
	  (PrefCygwinPath): cygwin_path_fix -> windows_style_tex_paths
	  (QPrefsDialog): Enable checkbutton for native WIN32 builds

	* src/frontends/xforms/forms/form_preferences.fd
	  Updated label and name of checkbutton

	* src/frontends/xforms/FormPreferences.C
	  (apply): cygwin_path_fix -> windows_style_tex_paths
	           check_cygwin_path -> check_windows_style_tex_paths
	  (build): Enable checkbutton for native WIN32 builds
	  (update): Ditto
	  (feedback): Updated description

	* src/frontends/qt3/QPrefs.C
	* src/frontends/qt3/QPrefsDialog.C
	* src/frontends/qt3/QPrefsDialog.h
	  Renaming as above, enabled checkbutton for native WIN32 builds

	* src/support/os_unix.C
	* src/support/os.h
	* src/support/os_win32.C
	  Renaming cygwin_path_fix -> windows_style_tex_paths
	* src/support/os_cygwin.C
	  Ditto
	  (external_path, external_path_list): always return windows
	  style paths, not depending on the checkbutton status

	* src/lyxrc.C
	* src/lyxrc.h
	* src/lyxfunc.C
	* src/lyx_main.C
	  Renaming

	* lib/configure.py
	  Renaming, more meaningful diagnostics




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14242 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-27 10:51:24 +00:00
Georg Baum
9e8e666c8a * src/support/os.h
(canAutoOpenFile): correct comment
	(autoOpenFile): ditto

	* src/support/os_win32.C
	(canAutoOpenFile): Remove unneeded test for dot
	(autoOpenFile): whitespace

	* src/support/os_cygwin.C
	(canAutoOpenFile): Remove unneeded test for dot
	(autoOpenFile): whitespace


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13866 a592a061-630c-0410-9148-cb99ea01b6c8
2006-05-18 19:09:53 +00:00
Jean-Marc Lasgouttes
b6e30400f5 New auto-open feature from Bo Peng (with help from Jean-Marc and Enrico)
* src/lyx_main.C (init): call Formats::setAutoOpen.
	
	* src/lyxrc.C (read): do not reset editor/viewer values of "none".

	* src/format.C (fixCommand): helper function: tweak command depending
	of the availability of OS viewer/editor.
	(setAutoOpen): run fixCommand over all the formats.

	* src/support/Makefile.am: under win32, link against shlwapi.dll.
	
	* src/support/os_*.C (canAutoOpenFile, autoOpenFile): new
	functions, used	to let the OS handle viewers and editors it knows about.

	* configure.ac: improve check for shlwapi.

	* lib/configure.py: remove check for native windows viewers.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13855 a592a061-630c-0410-9148-cb99ea01b6c8
2006-05-17 22:13:33 +00:00
Georg Baum
0dcc1e0cce Fix mess up of internal/external paths (from Enrico Forestieri)
* src/frontends/qt2/QPrefs.C:
	(internal_path_list, external_path_list): Handle the PATH prefix
	style according to the user-prefs style.
	(QPrefs::apply, QPrefs::update_contents): fix inverted logic of
	rc.cygwin_path_fix

	* src/support/os.h: New declarations to deal with PATH lists.
	* src/support/os_cygwin.C: Major rewrite to account for path style
	problems.
	* src/support/os_unix.C:
	* src/support/os_win32.C: Stub functions for PATH lists.
	* src/support/environment.C: fix bug 2344: Wrong path_prefix handling
	in cygwin
	* src/support/filetools.C (ChangeExtension): fix for the path
	style to be written in .tex files (cygwin related).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13558 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-05 19:26:08 +00:00
Georg Baum
05ea233390 Fix latex_path on cygwin:
* src/support/os.h
        * src/support/os_unix.C
        * src/support/os_win32.C
        * src/support/os_cygwin.C
        (latex_path): new function, handle the OS-specific part of
        lyx::support::latex_path

        * src/support/filetools.C
        (latex_path): use lyx::os::support::latex_path (bug 2409)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13474 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-24 12:48:37 +00:00
Angus Leeming
7b214dd05e The Cygwin path fix.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9478 a592a061-630c-0410-9148-cb99ea01b6c8
2005-01-14 15:53:30 +00:00
Angus Leeming
211c2f3136 The setEnvPath stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9473 a592a061-630c-0410-9148-cb99ea01b6c8
2005-01-13 10:10:16 +00:00
Angus Leeming
b5589bf6cf The package reworking.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9463 a592a061-630c-0410-9148-cb99ea01b6c8
2005-01-10 19:17:43 +00:00
Angus Leeming
f1e9f57553 * Replace all use of 'slashify_path' with 'internal_path'.
* Specialise 'internal_path' and 'external_path' for Windows and Cygwin.
* Enable LyX to find its system_lyxdir on Windows.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9401 a592a061-630c-0410-9148-cb99ea01b6c8
2004-12-20 16:59:33 +00:00
Angus Leeming
4b7891d873 OS Abstraction of "HOME" and the null device.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9376 a592a061-630c-0410-9148-cb99ea01b6c8
2004-12-15 19:35:43 +00:00
Angus Leeming
b7e87f4b11 Comments.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9374 a592a061-630c-0410-9148-cb99ea01b6c8
2004-12-14 16:38:22 +00:00
Angus Leeming
005322c183 Clean-up interface to os::init.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9372 a592a061-630c-0410-9148-cb99ea01b6c8
2004-12-14 16:20:07 +00:00
Angus Leeming
627f2c70fa Fix a bunch of doxygen warnings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7879 a592a061-630c-0410-9148-cb99ea01b6c8
2003-10-08 11:31:51 +00:00
Lars Gullik Bjønnes
44cd0fc9a1 The std::string mammoth path.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7862 a592a061-630c-0410-9148-cb99ea01b6c8
2003-10-06 15:43:21 +00:00
Angus Leeming
236ea81bc5 Replace LString.h with support/std_string.h,
Lsstream.h with support/std_sstream.h,
support/LIstream.h with support/std_istream.h,
support/LOstream.h with support/std_ostream.h.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7685 a592a061-630c-0410-9148-cb99ea01b6c8
2003-09-05 17:23:11 +00:00
Angus Leeming
0be0fcfd59 If I ever see another licence blurb again, it'll be too soon...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7598 a592a061-630c-0410-9148-cb99ea01b6c8
2003-08-23 00:17:00 +00:00
Angus Leeming
8f90cc97a6 Replace occurances of system_tempdir with os::getTmpDir().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7365 a592a061-630c-0410-9148-cb99ea01b6c8
2003-07-26 18:25:29 +00:00
Lars Gullik Bjønnes
92d522b7f1 introduce namespace lyx::support
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7224 a592a061-630c-0410-9148-cb99ea01b6c8
2003-06-30 23:56:22 +00:00
Angus Leeming
9fe2fd47ea Standard blurb.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7185 a592a061-630c-0410-9148-cb99ea01b6c8
2003-06-18 09:56:10 +00:00
Angus Leeming
6412ac52b6 Add new copyFileToDir helper function.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7091 a592a061-630c-0410-9148-cb99ea01b6c8
2003-06-03 10:14:52 +00:00
Lars Gullik Bjønnes
99d1627a47 dont use pragma impementation and interface anymore
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6138 a592a061-630c-0410-9148-cb99ea01b6c8
2003-02-13 16:53:15 +00:00
André Pönitz
501f1dd61b clean up a bit
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6079 a592a061-630c-0410-9148-cb99ea01b6c8
2003-02-10 10:22:05 +00:00
Jean-Marc Lasgouttes
72956b1c3b cygwin/popen fix from kayvan
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5331 a592a061-630c-0410-9148-cb99ea01b6c8
2002-09-23 16:03:11 +00:00