>>>>> "Bennett" == Bennett Helm <[EMAIL PROTECTED]> writes:

Bennett> On Sep 7, 2004, at 8:18 AM, Jean-Marc Lasgouttes wrote:
>> The following patch should make Tools>Reconfigure work even when
>> LyX is in a directory like /My Applications/.
>> 
>> Bennett, I would appreciate if you could try it. Remember to run
>> 'make' in the lib directory after applying it.

Bennett> It doesn't work: placing LyX in "~/Desktop/testing testing"
Bennett> and trying to reconfigure gives the following:

Bennett> sh: line 1: /Users/bennett/Desktop/testing: No such file or
Bennett> directory

It is even worse that I thought, and I am sure that many other things
are broken.

Please try the next version.

JMarc

Index: lib/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/ChangeLog,v
retrieving revision 1.622
diff -u -p -r1.622 ChangeLog
--- lib/ChangeLog	15 Aug 2004 20:59:44 -0000	1.622
+++ lib/ChangeLog	9 Sep 2004 14:52:03 -0000
@@ -1,3 +1,16 @@
+2004-09-07  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
+
+	* 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-08-15  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
 
 	* Makefile.am (dist_lyx2lyx_DATA): fix entry for lyx2lyx/LyX.py
Index: lib/chkconfig.ltx
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/chkconfig.ltx,v
retrieving revision 1.13
diff -u -p -r1.13 chkconfig.ltx
--- lib/chkconfig.ltx	13 Oct 2003 09:50:08 -0000	1.13
+++ lib/chkconfig.ltx	9 Sep 2004 14:52:03 -0000
@@ -35,24 +35,16 @@
 
 % we do not want to stop on errors
 \nonstopmode\makeatletter
-% Have we been called from the configure script?
[EMAIL PROTECTED]
- {\message{%
-**** WARNING: For proper results, you should not run this script directly.^^J%
-**** Please use the `configure' script.^^J}
-  \newcommand\srcdir{.}}
- [EMAIL PROTECTED]/}}}
 
 %%% Some useful macros.
 %   Several commands are defined to test for packages:
 %    \AddLayout{<layout>} adds an entry for <layout> in textclass.lst
 %    \AddVariable{<name>}{<value>} creates a new variable chk_<name>,
 %      and gives it the value <value>.
-%    \TestDocClass[<file>]{<name>} tests whether <name>.cls (or <file>,
-%      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{<name>}{<command>} if layout <name> has not already
+%      been tested for, execute <command>. Note that you will
+%      probably not need to use this directly, since the configure
+%      script generates the needed macro calls automatically.
 %    \TestPackage[<file>]{<name>} tests whether <name>.sty (or <file>,
 %      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
    [EMAIL PROTECTED]@#1}
-     {\bgroup
-        \catcode`\#=9  % consider # as a space
-        \input{layouts/#1.layout}  % read the layout file
-      \egroup
+     {#2  % execute the command
       [EMAIL PROTECTED]@#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
Index: lib/configure.m4
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/configure.m4,v
retrieving revision 1.80
diff -u -p -r1.80 configure.m4
--- lib/configure.m4	28 May 2004 07:14:55 -0000	1.80
+++ lib/configure.m4	9 Sep 2004 14:52:03 -0000
@@ -426,8 +426,8 @@ 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
+  # 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) ;;
@@ -464,11 +464,14 @@ 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 <<EOF
-\\newcommand\\srcdir{${srcdir}}
 ${linuxdoc_cmd}
 ${docbook_cmd}
-\\input{${srcdir}/chkconfig.ltx}
+\\input{chkconfig.ltx}
 EOF
   ## Construct the list of classes to test for.
   # build the list of available layout files and convert it to commands
@@ -476,14 +479,19 @@ EOF
   for file in ./layouts/*.layout ${srcdir}/layouts/*.layout ; do
     case $file in
       */\*.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
-  done | sed -e 's%^.*layouts/\(.*\)\.layout$%\\TestDocClass{\1}%'\
-	     > 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
Index: src/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/ChangeLog,v
retrieving revision 1.1977
diff -u -p -r1.1977 ChangeLog
--- src/ChangeLog	4 Sep 2004 12:13:48 -0000	1.1977
+++ src/ChangeLog	9 Sep 2004 14:52:05 -0000
@@ -1,3 +1,8 @@
+2004-09-09  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
+
+	* lyx_cb.C (Reconfigure): quote the name of configure script in
+	case it contains spaces
+
 2004-09-04  Lars Gullik Bjonnes  <[EMAIL PROTECTED]>
 
 	* client: new dir
Index: src/lyx_cb.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyx_cb.C,v
retrieving revision 1.241
diff -u -p -r1.241 lyx_cb.C
--- src/lyx_cb.C	16 Aug 2004 11:27:47 -0000	1.241
+++ src/lyx_cb.C	9 Sep 2004 14:52:05 -0000
@@ -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"));
Index: src/frontends/qt2/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/ChangeLog,v
retrieving revision 1.712
diff -u -p -r1.712 ChangeLog
--- src/frontends/qt2/ChangeLog	19 Aug 2004 06:30:43 -0000	1.712
+++ src/frontends/qt2/ChangeLog	9 Sep 2004 14:52:05 -0000
@@ -1,3 +1,8 @@
+2004-09-09  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
+
+	* qfont_loader.C (addFontPath): quote the name of the font dir in
+	case it contains a space
+
 2004-08-19  Georg Baum  <[EMAIL PROTECTED]>
 
 	* BulletsModule.C (setBullet): use toqstr() for a string passed to
Index: src/frontends/qt2/qfont_loader.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/qfont_loader.C,v
retrieving revision 1.49
diff -u -p -r1.49 qfont_loader.C
--- src/frontends/qt2/qfont_loader.C	20 May 2004 09:36:28 -0000	1.49
+++ src/frontends/qt2/qfont_loader.C	9 Sep 2004 14:52:05 -0000
@@ -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;

Reply via email to