diff -uNr maxima-5.9.0.9beta2-orig/interfaces/xmaxima/Tkmaxima/Paths.tcl maxima-5.9.0.9beta2/interfaces/xmaxima/Tkmaxima/Paths.tcl --- maxima-5.9.0.9beta2-orig/interfaces/xmaxima/Tkmaxima/Paths.tcl 2004-07-24 21:10:11 +0400 +++ maxima-5.9.0.9beta2/interfaces/xmaxima/Tkmaxima/Paths.tcl 2004-08-25 22:17:58 +0400 @@ -1,6 +1,6 @@ # -*-mode: tcl; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # -# $Id: Paths.tcl,v 1.12 2004/07/04 03:30:35 billingd Exp $ +# $Id: Paths.tcl,v 1.10 2004/03/28 07:16:55 vvzhy Exp $ # # Attach this near the bottom of the xmaxima code to find the paths needed # to start up the interface. @@ -225,6 +225,21 @@ set env(MAXIMA_USERDIR) "$maxima_priv(maxima_prefix)/user" } } + + # jfa: extend path so that gcl can see gcc in windows package + # I don't know that this is the best place for this + if {$tcl_platform(platform) == "windows"} { + # jfa: This is an attempt to get a working path designation + # on various Windows versions. + if {$tcl_platform(os) == "Windows 95"} { + # Windows 95 or Windows 98 + regsub -all {/} "$maxima_priv(maxima_prefix)\\BIN" {\\} maxbinpath + } else { + # Other versions of Windows + set maxbinpath "$maxima_priv(maxima_prefix)/bin" + } + set env(PATH) "$maxbinpath;$env(PATH)" + } } proc vMAXSetMaximaCommand {} { @@ -253,10 +268,25 @@ if {[set exe [auto_execok $maxima_priv(xmaxima_maxima)]] == "" } { tide_failure [M "Error: Maxima executable not found\n\n Try setting the environment variable XMAXIMA_MAXIMA."] } - - set maxima_priv(xmaxima_maxima) maxima - if {[set exe [auto_execok $maxima_priv(xmaxima_maxima)]] == "" } { - tide_failure [M "Error: Maxima executable not found\n\n Try setting the environment variable XMAXIMA_MAXIMA."] + # jfa: bypass maxima script on windows + # vvz: on Windows 9X/ME only + if {$tcl_platform(os) == "Windows 95"} { + # maybe it's in lib - I don't like this + set dir $maxima_priv(maxima_verpkglibdir) + # FIXME - need autoconf(lisp) so we don't need glob + set exes [glob -nocomplain $dir/binary-*/maxima.exe] + if {[llength $exes] != "1" || \ + [set exe [lindex $exes 0]] == "" || \ + ![file isfile $exe]} { + tide_failure [M "Error: Maxima executable not found\n\n Try setting the environment variable XMAXIMA_MAXIMA."] + return + } + + } else { + set maxima_priv(xmaxima_maxima) maxima + if {[set exe [auto_execok $maxima_priv(xmaxima_maxima)]] == "" } { + tide_failure [M "Error: Maxima executable not found\n\n Try setting the environment variable XMAXIMA_MAXIMA."] + } } } @@ -271,19 +301,31 @@ set exe [file attrib $exe -shortname] } } + set command {} lappend command $exe eval lappend command $maxima_opts - - # vvz: Windows NT/2000/XP - # db: All windows now - if {$tcl_platform(platform) == "windows"} { - lappend command -s PORT - # vvz: Unix. Should be as above but we need this due to - # weird behaviour with some lisps - Why? - } else { + # FIXME: This is gcl specific so -lisp option is bogus + if {$tcl_platform(os) == "Windows 95"} { + # A gruesome hack. Normally, we communicate to the + # maxima image through the maxima shell script, as + # above. If the maxima script is not available, + # as may happen on windows, directly talk to the GCL + # saved image. jfa 04/28/2002 + #mike FIXME: this means xmaxima on windows is GCL only + # vvz: We need this only on Windows 9X/ME + + lappend command -eval "(maxima::start-server PORT)" -eval "(run)" -f + } else { + # vvz: Windows NT/2000/XP + if {$tcl_platform(platform) == "windows"} { + lappend command -s PORT + # vvz: Unix. Should be as above but we need this due to + # weird behaviour with some lisps - Why? + } else { lappend command -r ":lisp (start-server PORT)" + } } lappend command & @@ -291,3 +333,4 @@ } + diff -uNr maxima-5.9.0.9beta2-orig/interfaces/xmaxima/win32/InfoBefore.txt maxima-5.9.0.9beta2/interfaces/xmaxima/win32/InfoBefore.txt --- maxima-5.9.0.9beta2-orig/interfaces/xmaxima/win32/InfoBefore.txt 1970-01-01 03:00:00 +0300 +++ maxima-5.9.0.9beta2/interfaces/xmaxima/win32/InfoBefore.txt 2004-07-07 21:53:58 +0400 @@ -0,0 +1,2 @@ +Windows 9x users should read the section of the readme file on +environment space. diff -uNr maxima-5.9.0.9beta2-orig/interfaces/xmaxima/win32/readme.txt maxima-5.9.0.9beta2/interfaces/xmaxima/win32/readme.txt --- maxima-5.9.0.9beta2-orig/interfaces/xmaxima/win32/readme.txt 1970-01-01 03:00:00 +0300 +++ maxima-5.9.0.9beta2/interfaces/xmaxima/win32/readme.txt 2004-07-07 21:53:58 +0400 @@ -0,0 +1,93 @@ +This is the windows README file. + +Binary files included with this distribution +-------------------------------------------- + +The windows version package of maxima includes binary files +from other Open Source projects also hosted on Sourceforge. + +gcc: + +gcc.exe, cc1.exe and the files in lib/gcc-lib and include/ +subdirectories are from the mingw version of gcc. This is +available from http://prdownloads.sf.net/mingw/ + + +binutils: + +as.exe is from the mingw (http://www.mingw.org/) port of binutils +available from http://prdownloads.sf.net/mingw/ + + +gnuplot: + +The files wgnuplot.exe, wgnuplot.hlp and wgnuplot.mnu are from the +Windows distribution of gnuplot from http://gnuplot.sourceforge.net + + +Out of Environment Space +------------------------ + +When you attempt to run maxima on a Windows 9x machine +you may get the error + + Out of environment space + +The following advice from Microsoft Knowledge Base Article 230205 +(http://support.microsoft.com/support/kb/articles/Q230/2/05.ASP) +may be of assistance. + +CAUSE + +This issue can occur if you do not have enough memory in the MS-DOS +environment to set an environment variable. + +RESOLUTION + +To resolve this issue, increase the default environment space available +for MS-DOS programs. To do this, use one of the following methods. + +Modify the Environment for All MS-DOS Programs + +To increase the default environment space for all MS-DOS programs +running in Windows, edit the Shell command in the Config.sys file. +To do this, follow these steps: + +1. Click Start, and then click Run. + +2. In the Open box, type sysedit, and then click OK. + +3. Click the Config.sys window. + +4. At the beginning of the Shell= line, type REM, and then press + the SPACEBAR. + + If the Shell= line does not exist, proceed to the next step. + +5. Press the HOME key. + +6. Type the following line to create a new Shell= line, and then + press ENTER: + + SHELL=C:\COMMAND.COM /E:4096 /P + +7. On the File menu, click Save. + +8. On the File menu, click Exit. + +9. Restart the computer. + + +Modify the Environment for a Specific MS-DOS Program + +To increase the default environment space just for maxima.bat, follow +these steps: + +1. Right-click the maxima.bat program icon, and then click Properties. + +2. Click the Memory tab. + +3. In the Initial Environment box, type the number of kilobytes (KB) + that the program requires, and then click OK. + +NOTE: The maximum amount of memory that you can allocate is 4096 KB. diff -uNr maxima-5.9.0.9beta2-orig/src/macdes.lisp maxima-5.9.0.9beta2/src/macdes.lisp --- maxima-5.9.0.9beta2-orig/src/macdes.lisp 2004-07-25 21:19:14 +0400 +++ maxima-5.9.0.9beta2/src/macdes.lisp 2004-08-25 22:50:32 +0400 @@ -129,7 +129,7 @@ ;; are not empty. --jfa 07/25/04 #+gcl (if (and (string= *prompt-prefix* "") (string= *prompt-suffix* "")) - (system::info x '("maxima.info") *info-paths*) + (prog2 (setq system::*info-paths* *info-paths*) (system::info x '("maxima.info"))) (cl-info:info x '("maxima.info") *info-paths*)))) (defun $apropos ( s )