/usr/share/gap/lib/session.g is in gap-libs 4r6p5-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #############################################################################
##
#W session.g GAP library Steve Linton
##
##
#Y Copyright (C) 2007 The GAP Group
##
## This file contains GAP functions which define the structure of a GAP session
## SESSION is called from init.g or from POST_RESTORE depending on whether
## this is a normal startup or startup from saved workspace
##
OnGAPPromptHook := fail; # set some values to suppress warning
SaveOnExitFile := fail;
InstallAtExit( function()
if not QUITTING and IsBound(SaveOnExitFile) and
IsString(SaveOnExitFile) then
SaveWorkspace(SaveOnExitFile);
fi;
end);
BIND_GLOBAL("SESSION",
function()
local f, prompt;
if GAPInfo.CommandLineOptions.q then
prompt := "";
else
prompt := "gap> ";
fi;
SHELL( GetBottomLVars(), # in global context
false, # no return
false, # no return obj
3, # set last, last2 and last3 each command
true, # set time after each command
prompt,
function()
if IsBound(OnGAPPromptHook) and IsFunction(OnGAPPromptHook) then
OnGAPPromptHook();
else
return;
fi;
end,
"*stdin*",
"*stdout*",
true);
BreakOnError := false;
if IsBound( GAPInfo.AtExitFuncs ) and IsList( GAPInfo.AtExitFuncs ) then
for f in GAPInfo.AtExitFuncs do
if IsFunction(f) then
CALL_WITH_CATCH(f,[]); # really should be CALL_WITH_CATCH here
fi;
od;
fi;
end);
BindGlobal("POST_RESTORE", function()
local f;
for f in GAPInfo.PostRestoreFuncs do
if IsFunction(f) then
f();
fi;
od;
SESSION();
end);
|