From: Jean-Marc Lasgouttes Date: Tue, 14 Sep 2004 10:20:38 +0000 (+0000) Subject: make LyX work better when run from a directory which name contains spaces or other... X-Git-Tag: 1.6.10~15020 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=558e849e692cc72ea74ac3859405b85e54c6e315;p=features.git make LyX work better when run from a directory which name contains spaces or other special characters git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8982 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/lib/ChangeLog b/lib/ChangeLog index 1b903fe088..8fcb93ef92 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,16 @@ +2004-09-07 Jean-Marc Lasgouttes + + * configure.m4: instead of \input-ing the layout files directly in + latex, grep out the correct command from them; remove need for + \srcdir. This should fix the bug where latex configuration cannot + be done because LyX is installed in a directory which name + contains spaces. + + * chkconfig.ltx: remove use of macro \srcdir + (\TestDocClass): change to take two arguments + (\DeclareLaTeXClass, \DeclareLinuxDocClass, \DeclareDocBookClass): + do not exit after execution + 2004-09-13 Jean-Marc Lasgouttes * languages: add nynorsk diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx index 3e992653cf..296188a5a5 100644 --- a/lib/chkconfig.ltx +++ b/lib/chkconfig.ltx @@ -35,24 +35,16 @@ % we do not want to stop on errors \nonstopmode\makeatletter -% Have we been called from the configure script? -\@ifundefined{srcdir} - {\message{% -**** WARNING: For proper results, you should not run this script directly.^^J% -**** Please use the `configure' script.^^J} - \newcommand\srcdir{.}} - {\def\input@path{{\srcdir/}}} %%% Some useful macros. % Several commands are defined to test for packages: % \AddLayout{} adds an entry for in textclass.lst % \AddVariable{}{} creates a new variable chk_, % and gives it the value . -% \TestDocClass[]{} tests whether .cls (or , -% if it is provided) exists and creates a new entry with -% \AddLayout if this is the case. Note that you will probably not -% need to use this directly, since the configure script generates -% the needed macro calls automatically. +% \TestDocClass{}{} if layout has not already +% been tested for, execute . Note that you will +% probably not need to use this directly, since the configure +% script generates the needed macro calls automatically. % \TestPackage[]{} tests whether .sty (or , % if it is provided) exists. % Both commands call \AddVariable to give value 'yes' or 'no' to @@ -95,13 +87,10 @@ \fi} \newcommand{\TestPackage}[2][\default]{ \TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}} -\newcommand{\TestDocClass}[1]{ +\newcommand{\TestDocClass}[2]{ \def\layoutname{#1} % remember the name of the layout file \@ifundefined{layout@#1} - {\bgroup - \catcode`\#=9 % consider # as a space - \input{layouts/#1.layout} % read the layout file - \egroup + {#2 % execute the command \global\@namedef{layout@#1}{}} {} % we have already tried this one. } @@ -109,7 +98,6 @@ \TestItem[#1]{\layoutname}{document class}{cls} {\AddLayout[\firstelement]{\layoutname}{#2}{true}} {\AddLayout[\firstelement]{\layoutname}{#2}{false}} - \expandafter\endinput } \newcommand{\DeclareLinuxDocClass}[2][\default]{ \message{^^J\prefix checking for linuxdoc class \layoutname... } @@ -118,7 +106,6 @@ \AddLayout[#1]{\layoutname}{#2}{false}} {\message{yes^^J} \AddLayout[#1]{\layoutname}{#2}{true}} - \expandafter\endinput } % Only for compatibility. Will be removed later. \let\DeclareSGMLClass=\DeclareDocBookClass @@ -130,7 +117,6 @@ \AddLayout[#1]{\layoutname}{#2}{false}} {\message{yes^^J} \AddLayout[#1]{\layoutname}{#2}{true}} - \expandafter\endinput } % Stolen from article.cls diff --git a/lib/configure.m4 b/lib/configure.m4 index 4b0d358430..b68cee868c 100644 --- a/lib/configure.m4 +++ b/lib/configure.m4 @@ -167,8 +167,8 @@ ac_prog=[$]0 changequote(,)dnl srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` -test "x$srcdir" = "x$ac_prog" && srcdir=. -if test ! -r ${srcdir}/chkconfig.ltx ; then +test "x${srcdir}" = "x$ac_prog" && srcdir=. +if test ! -r "${srcdir}"/chkconfig.ltx ; then echo "configure: error: cannot find chkconfig.ltx script" exit 1 fi @@ -426,9 +426,9 @@ if test ${lyx_check_config} = no ; then # for some reason. Run ./configure if you need to update it after a # configuration change. EOF - # build the list of available layout files and convert it to commands - # for chkconfig.ltx - for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do + # build the list of available layout files and convert it to entries + # for the default textclass.lst file + for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do case $file in */\*.layout) ;; *) if test -r "$file" ; then @@ -464,26 +464,34 @@ changequote(,)dnl else MSG_RESULT(auto) rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex + if ! test -r "chkconfig.ltx" ; then + ln -s "${srcdir}"/chkconfig.ltx . + rmlink=true + fi cat >wrap_chkconfig.ltx < chklayouts.tex + done > chklayouts.tex changequote([,])dnl [eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+' [eval] `cat chkconfig.vars | sed 's/-/_/g'` changequote(,)dnl + test -n "${rmlink}" && rm -f chkconfig.ltx fi # Do we have all the files we need? Useful if latex did not run @@ -503,7 +511,7 @@ changequote(,)dnl echo "creating doc/LaTeXConfig.lyx" echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed echo "s/@chk_docbook@/$chk_docbook/g" >> chkconfig.sed -sed -f chkconfig.sed ${srcdir}/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx +sed -f chkconfig.sed "${srcdir}"/doc/LaTeXConfig.lyx.in >doc/LaTeXConfig.lyx echo "creating $outfile" cat >$outfile </dev/null 2>/dev/null ; + if test -r "${srcdir}"/$file && diff $file.new "${srcdir}"/$file >/dev/null 2>/dev/null ; then echo "removing $file, which is identical to the system global version" rm -f $file.new diff --git a/src/ChangeLog b/src/ChangeLog index ed860f8eb7..ccac2b26bd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2004-09-09 Jean-Marc Lasgouttes + + * lyx_cb.C (Reconfigure): quote the name of configure script in + case it contains spaces + 2004-09-04 Lars Gullik Bjonnes * client: new dir diff --git a/src/frontends/qt2/ChangeLog b/src/frontends/qt2/ChangeLog index e4c95ccf72..ec99cafd30 100644 --- a/src/frontends/qt2/ChangeLog +++ b/src/frontends/qt2/ChangeLog @@ -1,3 +1,8 @@ +2004-09-09 Jean-Marc Lasgouttes + + * qfont_loader.C (addFontPath): quote the name of the font dir in + case it contains a space + 2004-08-19 Georg Baum * BulletsModule.C (setBullet): use toqstr() for a string passed to diff --git a/src/frontends/qt2/qfont_loader.C b/src/frontends/qt2/qfont_loader.C index 1c7e9ced3a..6f1cb146a4 100644 --- a/src/frontends/qt2/qfont_loader.C +++ b/src/frontends/qt2/qfont_loader.C @@ -36,6 +36,7 @@ using lyx::support::contains; using lyx::support::LibFileSearch; using lyx::support::OnlyPath; +using lyx::support::QuoteName; using lyx::support::Systemcall; using std::endl; @@ -63,7 +64,7 @@ void addFontPath() return; lyxerr[Debug::FONT] << "Adding " << dir << " to the font path." << endl; - string const command = "xset fp+ " + dir; + string const command = "xset fp+ " + QuoteName(dir); Systemcall s; if (!s.startscript(Systemcall::Wait, command)) return; diff --git a/src/lyx_cb.C b/src/lyx_cb.C index 663c4c4681..6988a430e7 100644 --- a/src/lyx_cb.C +++ b/src/lyx_cb.C @@ -62,6 +62,7 @@ using lyx::support::MakeDisplayPath; using lyx::support::OnlyFilename; using lyx::support::OnlyPath; using lyx::support::Path; +using lyx::support::QuoteName; using lyx::support::removeAutosaveFile; using lyx::support::rename; using lyx::support::split; @@ -446,7 +447,7 @@ void Reconfigure(BufferView * bv) Path p(user_lyxdir()); Systemcall one; one.startscript(Systemcall::Wait, - AddName(system_lyxdir(), "configure")); + QuoteName(AddName(system_lyxdir(), "configure"))); p.pop(); bv->owner()->message(_("Reloading configuration...")); lyxrc.read(LibFileSearch(string(), "lyxrc.defaults")); diff --git a/src/support/ChangeLog b/src/support/ChangeLog index f1636c967b..9f180be253 100644 --- a/src/support/ChangeLog +++ b/src/support/ChangeLog @@ -1,3 +1,8 @@ +2004-09-10 Jean-Marc Lasgouttes + + * filetools.C (LibScriptSearch): quote the path of the script, in + case it contains spaces + 2004-09-04 Lars Gullik Bjonnes * tostr.C: reimplement using lexical_cast diff --git a/src/support/filetools.C b/src/support/filetools.C index c9ea4562a8..d842690185 100644 --- a/src/support/filetools.C +++ b/src/support/filetools.C @@ -372,7 +372,7 @@ string const LibScriptSearch(string const & command_in) } else { // Replace "$$s/some_script" with "$LYX_SCRIPT_PATH/some_script" string::size_type const size_replace = size_script + 4; - command.replace(pos1, size_replace, script); + command.replace(pos1, size_replace, QuoteName(script)); } return command;