mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-29 05:01:49 +00:00
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
This commit is contained in:
parent
5aecf3bac5
commit
558e849e69
@ -1,3 +1,16 @@
|
|||||||
|
2004-09-07 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
|
||||||
|
|
||||||
|
* 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 <lasgouttes@lyx.org>
|
2004-09-13 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
|
||||||
|
|
||||||
* languages: add nynorsk
|
* languages: add nynorsk
|
||||||
|
@ -35,24 +35,16 @@
|
|||||||
|
|
||||||
% we do not want to stop on errors
|
% we do not want to stop on errors
|
||||||
\nonstopmode\makeatletter
|
\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.
|
%%% Some useful macros.
|
||||||
% Several commands are defined to test for packages:
|
% Several commands are defined to test for packages:
|
||||||
% \AddLayout{<layout>} adds an entry for <layout> in textclass.lst
|
% \AddLayout{<layout>} adds an entry for <layout> in textclass.lst
|
||||||
% \AddVariable{<name>}{<value>} creates a new variable chk_<name>,
|
% \AddVariable{<name>}{<value>} creates a new variable chk_<name>,
|
||||||
% and gives it the value <value>.
|
% and gives it the value <value>.
|
||||||
% \TestDocClass[<file>]{<name>} tests whether <name>.cls (or <file>,
|
% \TestDocClass{<name>}{<command>} if layout <name> has not already
|
||||||
% if it is provided) exists and creates a new entry with
|
% been tested for, execute <command>. Note that you will
|
||||||
% \AddLayout if this is the case. Note that you will probably not
|
% probably not need to use this directly, since the configure
|
||||||
% need to use this directly, since the configure script generates
|
% script generates the needed macro calls automatically.
|
||||||
% the needed macro calls automatically.
|
|
||||||
% \TestPackage[<file>]{<name>} tests whether <name>.sty (or <file>,
|
% \TestPackage[<file>]{<name>} tests whether <name>.sty (or <file>,
|
||||||
% if it is provided) exists.
|
% if it is provided) exists.
|
||||||
% Both commands call \AddVariable to give value 'yes' or 'no' to
|
% Both commands call \AddVariable to give value 'yes' or 'no' to
|
||||||
@ -95,13 +87,10 @@
|
|||||||
\fi}
|
\fi}
|
||||||
\newcommand{\TestPackage}[2][\default]{
|
\newcommand{\TestPackage}[2][\default]{
|
||||||
\TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}}
|
\TestItem[#1]{#2}{package}{sty}{\AddPackage{#2}}{}}
|
||||||
\newcommand{\TestDocClass}[1]{
|
\newcommand{\TestDocClass}[2]{
|
||||||
\def\layoutname{#1} % remember the name of the layout file
|
\def\layoutname{#1} % remember the name of the layout file
|
||||||
\@ifundefined{layout@#1}
|
\@ifundefined{layout@#1}
|
||||||
{\bgroup
|
{#2 % execute the command
|
||||||
\catcode`\#=9 % consider # as a space
|
|
||||||
\input{layouts/#1.layout} % read the layout file
|
|
||||||
\egroup
|
|
||||||
\global\@namedef{layout@#1}{}}
|
\global\@namedef{layout@#1}{}}
|
||||||
{} % we have already tried this one.
|
{} % we have already tried this one.
|
||||||
}
|
}
|
||||||
@ -109,7 +98,6 @@
|
|||||||
\TestItem[#1]{\layoutname}{document class}{cls}
|
\TestItem[#1]{\layoutname}{document class}{cls}
|
||||||
{\AddLayout[\firstelement]{\layoutname}{#2}{true}}
|
{\AddLayout[\firstelement]{\layoutname}{#2}{true}}
|
||||||
{\AddLayout[\firstelement]{\layoutname}{#2}{false}}
|
{\AddLayout[\firstelement]{\layoutname}{#2}{false}}
|
||||||
\expandafter\endinput
|
|
||||||
}
|
}
|
||||||
\newcommand{\DeclareLinuxDocClass}[2][\default]{
|
\newcommand{\DeclareLinuxDocClass}[2][\default]{
|
||||||
\message{^^J\prefix checking for linuxdoc class \layoutname... }
|
\message{^^J\prefix checking for linuxdoc class \layoutname... }
|
||||||
@ -118,7 +106,6 @@
|
|||||||
\AddLayout[#1]{\layoutname}{#2}{false}}
|
\AddLayout[#1]{\layoutname}{#2}{false}}
|
||||||
{\message{yes^^J}
|
{\message{yes^^J}
|
||||||
\AddLayout[#1]{\layoutname}{#2}{true}}
|
\AddLayout[#1]{\layoutname}{#2}{true}}
|
||||||
\expandafter\endinput
|
|
||||||
}
|
}
|
||||||
% Only for compatibility. Will be removed later.
|
% Only for compatibility. Will be removed later.
|
||||||
\let\DeclareSGMLClass=\DeclareDocBookClass
|
\let\DeclareSGMLClass=\DeclareDocBookClass
|
||||||
@ -130,7 +117,6 @@
|
|||||||
\AddLayout[#1]{\layoutname}{#2}{false}}
|
\AddLayout[#1]{\layoutname}{#2}{false}}
|
||||||
{\message{yes^^J}
|
{\message{yes^^J}
|
||||||
\AddLayout[#1]{\layoutname}{#2}{true}}
|
\AddLayout[#1]{\layoutname}{#2}{true}}
|
||||||
\expandafter\endinput
|
|
||||||
}
|
}
|
||||||
|
|
||||||
% Stolen from article.cls
|
% Stolen from article.cls
|
||||||
|
@ -167,8 +167,8 @@ ac_prog=[$]0
|
|||||||
changequote(,)dnl
|
changequote(,)dnl
|
||||||
srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
|
srcdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
|
||||||
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
|
||||||
test "x$srcdir" = "x$ac_prog" && srcdir=.
|
test "x${srcdir}" = "x$ac_prog" && srcdir=.
|
||||||
if test ! -r ${srcdir}/chkconfig.ltx ; then
|
if test ! -r "${srcdir}"/chkconfig.ltx ; then
|
||||||
echo "configure: error: cannot find chkconfig.ltx script"
|
echo "configure: error: cannot find chkconfig.ltx script"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
# for some reason. Run ./configure if you need to update it after a
|
||||||
# configuration change.
|
# configuration change.
|
||||||
EOF
|
EOF
|
||||||
# build the list of available layout files and convert it to commands
|
# build the list of available layout files and convert it to entries
|
||||||
# for chkconfig.ltx
|
# for the default textclass.lst file
|
||||||
for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
|
for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do
|
||||||
case $file in
|
case $file in
|
||||||
*/\*.layout) ;;
|
*/\*.layout) ;;
|
||||||
*) if test -r "$file" ; then
|
*) if test -r "$file" ; then
|
||||||
@ -464,26 +464,34 @@ changequote(,)dnl
|
|||||||
else
|
else
|
||||||
MSG_RESULT(auto)
|
MSG_RESULT(auto)
|
||||||
rm -f wrap_chkconfig.ltx chkconfig.vars chkconfig.classes chklayouts.tex
|
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 <<EOF
|
cat >wrap_chkconfig.ltx <<EOF
|
||||||
\\newcommand\\srcdir{${srcdir}}
|
|
||||||
${linuxdoc_cmd}
|
${linuxdoc_cmd}
|
||||||
${docbook_cmd}
|
${docbook_cmd}
|
||||||
\\input{${srcdir}/chkconfig.ltx}
|
\\input{chkconfig.ltx}
|
||||||
EOF
|
EOF
|
||||||
## Construct the list of classes to test for.
|
## Construct the list of classes to test for.
|
||||||
# build the list of available layout files and convert it to commands
|
# build the list of available layout files and convert it to commands
|
||||||
# for chkconfig.ltx
|
# for chkconfig.ltx
|
||||||
for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
|
for file in ./layouts/*.layout "${srcdir}"/layouts/*.layout ; do
|
||||||
case $file in
|
case $file in
|
||||||
*/\*.layout) ;;
|
*/\*.layout) ;;
|
||||||
*) test -r "$file" && echo $file ;;
|
*) if test -r "$file" ; then
|
||||||
|
class=`echo $file | sed -e 's%^.*layouts/\(.*\)\.layout$%\1%'`
|
||||||
|
# Generate the proper TestDocClass command for this layout
|
||||||
|
grep '\\Declare\(LaTeX\|DocBook\|LinuxDoc\)Class' "$file" \
|
||||||
|
| sed -e 's/^\# *\(.*\)$/\\TestDocClass{'${class}'}{\1}/'
|
||||||
|
fi ;;
|
||||||
esac
|
esac
|
||||||
done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
|
done > chklayouts.tex
|
||||||
> chklayouts.tex
|
|
||||||
changequote([,])dnl
|
changequote([,])dnl
|
||||||
[eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
|
[eval] ${LATEX} wrap_chkconfig.ltx 2>/dev/null | grep '^\+'
|
||||||
[eval] `cat chkconfig.vars | sed 's/-/_/g'`
|
[eval] `cat chkconfig.vars | sed 's/-/_/g'`
|
||||||
changequote(,)dnl
|
changequote(,)dnl
|
||||||
|
test -n "${rmlink}" && rm -f chkconfig.ltx
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Do we have all the files we need? Useful if latex did not run
|
# 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 "creating doc/LaTeXConfig.lyx"
|
||||||
echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
|
echo "s/@chk_linuxdoc@/$chk_linuxdoc/g" >> chkconfig.sed
|
||||||
echo "s/@chk_docbook@/$chk_docbook/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"
|
echo "creating $outfile"
|
||||||
cat >$outfile <<EOF
|
cat >$outfile <<EOF
|
||||||
@ -673,7 +681,7 @@ for file in $outfile textclass.lst packages.lst \
|
|||||||
doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
|
doc/LaTeXConfig.lyx xfonts/fonts.dir ; do
|
||||||
# we rename the file first, so that we avoid comparing a file with itself
|
# we rename the file first, so that we avoid comparing a file with itself
|
||||||
mv $file $file.new
|
mv $file $file.new
|
||||||
if test -r $srcdir/$file && diff $file.new $srcdir/$file >/dev/null 2>/dev/null ;
|
if test -r "${srcdir}"/$file && diff $file.new "${srcdir}"/$file >/dev/null 2>/dev/null ;
|
||||||
then
|
then
|
||||||
echo "removing $file, which is identical to the system global version"
|
echo "removing $file, which is identical to the system global version"
|
||||||
rm -f $file.new
|
rm -f $file.new
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-09-09 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
|
||||||
|
|
||||||
|
* lyx_cb.C (Reconfigure): quote the name of configure script in
|
||||||
|
case it contains spaces
|
||||||
|
|
||||||
2004-09-04 Lars Gullik Bjonnes <larsbj@gullik.net>
|
2004-09-04 Lars Gullik Bjonnes <larsbj@gullik.net>
|
||||||
|
|
||||||
* client: new dir
|
* client: new dir
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-09-09 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
|
||||||
|
|
||||||
|
* qfont_loader.C (addFontPath): quote the name of the font dir in
|
||||||
|
case it contains a space
|
||||||
|
|
||||||
2004-08-19 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
2004-08-19 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||||
|
|
||||||
* BulletsModule.C (setBullet): use toqstr() for a string passed to
|
* BulletsModule.C (setBullet): use toqstr() for a string passed to
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
using lyx::support::contains;
|
using lyx::support::contains;
|
||||||
using lyx::support::LibFileSearch;
|
using lyx::support::LibFileSearch;
|
||||||
using lyx::support::OnlyPath;
|
using lyx::support::OnlyPath;
|
||||||
|
using lyx::support::QuoteName;
|
||||||
using lyx::support::Systemcall;
|
using lyx::support::Systemcall;
|
||||||
|
|
||||||
using std::endl;
|
using std::endl;
|
||||||
@ -63,7 +64,7 @@ void addFontPath()
|
|||||||
return;
|
return;
|
||||||
lyxerr[Debug::FONT] << "Adding " << dir
|
lyxerr[Debug::FONT] << "Adding " << dir
|
||||||
<< " to the font path." << endl;
|
<< " to the font path." << endl;
|
||||||
string const command = "xset fp+ " + dir;
|
string const command = "xset fp+ " + QuoteName(dir);
|
||||||
Systemcall s;
|
Systemcall s;
|
||||||
if (!s.startscript(Systemcall::Wait, command))
|
if (!s.startscript(Systemcall::Wait, command))
|
||||||
return;
|
return;
|
||||||
|
@ -62,6 +62,7 @@ using lyx::support::MakeDisplayPath;
|
|||||||
using lyx::support::OnlyFilename;
|
using lyx::support::OnlyFilename;
|
||||||
using lyx::support::OnlyPath;
|
using lyx::support::OnlyPath;
|
||||||
using lyx::support::Path;
|
using lyx::support::Path;
|
||||||
|
using lyx::support::QuoteName;
|
||||||
using lyx::support::removeAutosaveFile;
|
using lyx::support::removeAutosaveFile;
|
||||||
using lyx::support::rename;
|
using lyx::support::rename;
|
||||||
using lyx::support::split;
|
using lyx::support::split;
|
||||||
@ -446,7 +447,7 @@ void Reconfigure(BufferView * bv)
|
|||||||
Path p(user_lyxdir());
|
Path p(user_lyxdir());
|
||||||
Systemcall one;
|
Systemcall one;
|
||||||
one.startscript(Systemcall::Wait,
|
one.startscript(Systemcall::Wait,
|
||||||
AddName(system_lyxdir(), "configure"));
|
QuoteName(AddName(system_lyxdir(), "configure")));
|
||||||
p.pop();
|
p.pop();
|
||||||
bv->owner()->message(_("Reloading configuration..."));
|
bv->owner()->message(_("Reloading configuration..."));
|
||||||
lyxrc.read(LibFileSearch(string(), "lyxrc.defaults"));
|
lyxrc.read(LibFileSearch(string(), "lyxrc.defaults"));
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-09-10 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
|
||||||
|
|
||||||
|
* filetools.C (LibScriptSearch): quote the path of the script, in
|
||||||
|
case it contains spaces
|
||||||
|
|
||||||
2004-09-04 Lars Gullik Bjonnes <larsbj@gullik.net>
|
2004-09-04 Lars Gullik Bjonnes <larsbj@gullik.net>
|
||||||
|
|
||||||
* tostr.C: reimplement using lexical_cast
|
* tostr.C: reimplement using lexical_cast
|
||||||
|
@ -372,7 +372,7 @@ string const LibScriptSearch(string const & command_in)
|
|||||||
} else {
|
} else {
|
||||||
// Replace "$$s/some_script" with "$LYX_SCRIPT_PATH/some_script"
|
// Replace "$$s/some_script" with "$LYX_SCRIPT_PATH/some_script"
|
||||||
string::size_type const size_replace = size_script + 4;
|
string::size_type const size_replace = size_script + 4;
|
||||||
command.replace(pos1, size_replace, script);
|
command.replace(pos1, size_replace, QuoteName(script));
|
||||||
}
|
}
|
||||||
|
|
||||||
return command;
|
return command;
|
||||||
|
Loading…
Reference in New Issue
Block a user