diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index 85bc267..e6f7ef2 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -8228,6 +8228,10 @@ The \fnref{statisticsInitialization} function initializes variables
used to collect statistics. Currently, only the garbage collector
information is initialized.
+We test {\bfref{*ThisIsARunningSystem*}}. If this variable is true
+then we are restarting from a previously running system and we
+do not want to reset all of the user variables.
+
\calls{restart}{init-memory-config}
\calls{restart}{initroot}
\calls{restart}{openserver}
@@ -8268,13 +8272,15 @@ information is initialized.
(setq $openServerIfTrue nil)
(setq |$SpadServer| t))
(setq |$IOindex| 1)
- (setq |$InteractiveFrame| (|makeInitialModemapFrame|))
(setq |$printLoadMsgs| nil)
(setq $current-directory (get-current-directory))
(setq *default-pathname-defaults* (pathname $current-directory))
(|statisticsInitialization|)
- (|initHist|)
- (|initializeInterpreterFrameRing|)
+ (unless *ThisIsARunningSystem*
+ (setq |$InteractiveFrame| (|makeInitialModemapFrame|))
+ (|initHist|)
+ (|initializeInterpreterFrameRing|))
+ (setq *ThisIsARunningSystem* t)
(when |$displayStartMsgs| (|spadStartUpMsgs|))
(setq |$currentLine| nil)
(restart0)
@@ -31307,6 +31313,19 @@ and Axiom exits. Then do
\end{chunk}
+\defvar{*ThisIsARunningSystem*}
+When a user does
+\begin{verbatim}
+ )savesystem foo
+\end{verbatim}
+we set this variable to true. This is tested in the restart function,
+which is called when the system starts, to prevent losing user
+information.
+\begin{chunk}{initvars}
+(defvar *ThisIsARunningSystem* nil "Are we restarting a running system?")
+
+\end{chunk}
+
\defun{savesystem}{The )savesystem command}
\calls{savesystem}{helpSpad2Cmd}
\calls{savesystem}{spad-save}
@@ -31314,7 +31333,9 @@ and Axiom exits. Then do
(defun |savesystem| (arg)
(if (or (not (eql (|#| arg) 1)) (null (symbolp (car arg))))
(|helpSpad2Cmd| '(|savesystem|))
- (spad-save (symbol-name (car arg)))))
+ (progn
+ (setq *ThisIsARunningSystem* t)
+ (spad-save (symbol-name (car arg))))))
\end{chunk}
diff --git a/changelog b/changelog
index ebf1294..9515c90 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20150105 c1m src/axiom-website/patches.html 20150105.02.c1m.patch
+20150105 c1m books/bookvol5 make savesystem work
20150105 tpd src/axiom-website/patches.html 20150105.01.tpd.patch
20150105 tpd books/bookvol5 literate programming changes
20150105 tpd books/axiom.sty add \Defun for better TOC
diff --git a/patch b/patch
index 6571ee1..507b96f 100644
--- a/patch
+++ b/patch
@@ -1,3 +1,36 @@
-books/bookvol5 literate programming changes
+books/bookvol5 make savesystem work
+
+axiom -nox
+ AXIOM Computer Algebra System
+ Version: Axiom (August 2014)
+ Timestamp: Monday January 5, 2015 at 21:31:45
+-----------------------------------------------------------------------------
+ Issue )copyright to view copyright notices.
+ Issue )summary for a summary of useful system commands.
+ Issue )quit to leave AXIOM and return to shell.
+ Visit http://axiom-developer.org for more information
+-----------------------------------------------------------------------------
+
+(1) -> tpd:=1
+
+ (1) 1
+ Type: PositiveInteger
+(2) -> )savesystem foo
+
+t1 # ./foo
+ AXIOM Computer Algebra System
+ Version: Axiom (August 2014)
+ Timestamp: Monday January 5, 2015 at 21:31:45
+-----------------------------------------------------------------------------
+ Issue )copyright to view copyright notices.
+ Issue )summary for a summary of useful system commands.
+ Issue )quit to leave AXIOM and return to shell.
+ Visit http://axiom-developer.org for more information
+-----------------------------------------------------------------------------
+
+(1) -> tpd
+
+ (1) 1
+ Type: PositiveInteger
+
-Rearrange code and begin explanation of the frame mechanism
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a35d871..d95b87a 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -4894,6 +4894,8 @@ books/bookvol5 merge, rewrite and remove some browser functions
book/timeline correct Ralf Stephan participation
20150105.01.tpd.patch
books/bookvol5 literate programming changes
+20150105.02.c1m.patch
+books/bookvol5 make savesystem work