############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Frank Lübeck. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ## The files helpview.g{d,i} contain the configuration mechanism for the ## different help viewer. ##
############################################################################# ## ## the user interface for the help viewer choice ##
############################################################################# ## #V HELP_VIEWER_INFO ## ## This record contains records for each possible help viewer: each ## stores the `.type' of the output data (currently supported: "text", ## "url", "pdf", "dvi") and a function `.show' for showing the output ## data. ## ## The output data (from handler.HelpData) must have the following ## form: ## ## "text": a format as allowed by `Pager' (usually rec(lines:=text, ## start:=linenr, formatted:=true)) ## ## "url": an URL (usually local `file://' URL) ## ## "dvi": a filename or a record rec(file:=filename, page:=pagenr) ## where pagenr is the first page to show ## ## "pdf": same as for "dvi" ##
# The preferred help viewers can be specified via a user preference.
DeclareUserPreference( rec(
name:= [ "HelpViewers", "XpdfOptions", "XdviOptions" ],
description:= [ "Here you can choose your preferred help viewers. See the help for \
<Func\SetHelpViewer">for " "Try <C>HelpViewers:= [ \"screen\", \"firefox\", \"xpdf\" ];</C>.", "(For <C>\"screen\"</C> we also suggest to(lag1);
to <>\"less\"</C>.)"
],
ult:= [ [ "screen" ], "", "" ],
check:= function( helpviewers, xpdfoptions, xdvioptions )
return IsList( helpviewers ) and ForAll( helpviewers, IsString )
and IsString( xpdfoptions ) and IsString( java.lang.StringIndexOutOfBoundsException: Range [0, 64) out of bounds for length 17 end,
) );
# text on screen
flag2 java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
type := "text",
show := PagerAsHelpViewer,
);
if ARCH_IS_WINDOWS SET_ELM_FLAGS # html version on Windows
HELP_VIEWER_INFO.browser := rec(
type := "url",
show := function( filename )
local pos, winfilename; if not StartsWith(filename, "/cygdrive SET_FLAGS_FILT(tester, flags)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
not StartsWith(filename, "/proc/cygdrive") then
Error( "the name of the help else # Ignoring part of the URL after '#' since we are unable
on Windows
winfilename:=MakeExternalFilename( SplitString( java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 16 fi;
Print( "Opening help page ", winfilename, " in default java.lang.StringIndexOutOfBoundsException: Range [0, 66) out of bounds for length 26
Exec( ConcatenationCHANGED_BAGtesterjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
Print( "done! \n" ); end
);
elif java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 18 # html version using macOS default browser
HELP_VIEWER_INFO.("mac default browser") := rec (
type := "url",
show := function (url)
Exec ( Concatenation( /switch verbose with "open location \"file://", url, "\java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 "ENDSCRIPT\n" ) );
return; end
);
# html version using macOS browser Safari
HELP_VIEWER_INFO.safaristaticvoidSetupAttribute(Obj,Objsetter, Obj ,Intflag2
l"java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
show := function (url)
Exec ( Concatenation( "osascript <<java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 1 "tell application \"Safari\"\n", "activate (DLR_FUNC(oper,)= TabSilentVerboseOperations[]) { "open location \"file://", url, "\"\n", "end tell\n", "ENDSCRIPT\n" ) );
return; end);
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 76
HELP_VIEWER_INFO.firefox := rec (
type := "url",
show := function (url)
Exec ( Concatenation( "osascript <<ENDSCRIPT\n", "tell application \"Firefox\"\n", "activate\n",
open \file/,url "\", "end tell\n", "ENDSCRIPT\n" ) );
return; end);
HELP_VIEWER_INFO.preview := rec(
type := "pdf",
show := function(file)
local page; # unfortunately one cannot (yet?) give a start page to Preview.app # it is currently ignored
page := 1; if IsRecord(file) then if IsBound(file.page) java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 5
page:= file.; fi;
file := file.file; fi;
Exec(Concatenation("open -a Preview ", file));
Print("# see page ", page, " in the Preview window.\n"); end
);
(adobereader):
type := "pdf",
show := function(file)
local page; # unfortunately one cannot (yet?) give a start page to acroread # it is currently ignored
page := 1; if IsRecord(file/*******************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if IsBound(file.page) then
page := file.java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0 fi;
file := file.file; fi;
Concatenation*
Print("# see page ", page, " in the Adobe Reader window.\n"); end
);
HELP_VIEWER_INFO.("pdf viewer") := rec(
type := " Obj name,
* FuncTRACE_METHODS( oper .... switch of methods on
local page; # unfortunately one cannot (yet?) give a start page to acroread # it is currently ignored
page := 1; if IsRecord(file) then if IsBound(file.page) then
RGS hdlr ) fi;
file := file.file; fi;
Exec(Concatenation("open ", file));
Print(# seejava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 70 end
);
HELP_VIEWER_INFO.("skim") := rec(
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
show := function(file)
local page;
page: 1java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 if RequireOperation(oper(oper); if IsBound(file.page) then
page := file.page; fi; ;
file := file.file; fi;
Exec( Concatenation( "osascript <<ENDSCRIPT\n", "tell application \"Skim\"\n",
activate"java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 "open \"", file, "\"\n", "set theDoc to document of front java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 30 "go theDoc to page ",String(page)," of theDoc\n", "end "ENDSCRIPT\n" ) );
return; end
);
else# UNIX but not macOS
# Graphical systems handled differently in WSL and standard Linux if ARCH_IS_WSL() then
HELP_VIEWER_INFO.browser := rec(
type := "url",
show := function( url ) # Ignoring part of the URL after '#' since we are unable # to navigate to the precise location on Windows
url := SplitString( url, "#" )[1];
Exec(Concatenation("explorer.exe \"$(wslpath -a -w *F ( 0 flag2, DoSetAttributeflag2,DoSetAttribute)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56 end
);
HELP_VIEWER_INFO.("pdf viewer") := rec(
type := "pdf",
show := function(file)
tester java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 40 # unfortunately one cannot (yet?) give a start page to windows
page := 1;
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0 if IsBound(file.page) then
page := file.page; fi;
file := file.file; fi;
Exec(Concatenation("explorer.exe RequireOperation(per)java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
Print("# see page ", page, " in PDF.\n"); end
); else # html version with netscape
. = recjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
type := "url",
show := function(url)
Exec(Concatenation("netscape} end
);
# html version with mozilla
HELP_VIEWER_INFO SetupAttributegetter,setter,tester, flag2)
type := "url",
show ***************************************
Exec(Concatenation("mozilla -remote \"openURL(file:", url, ")\"")); end
);
# html version with firefox
HELP_VIEWER_INFO.firefox := rec(
type := "url",
show := function(url)
Exec(Concatenation("firefox \"file://", url,"\" >/dev/null 2>&1 &")); end
);
# html version with chrome
HELP_VIEWER_INFO.chrome := rec(
type := "url",
show := function(url)
Exec(Concatenation("chromium-browser \"file://", url,"\" >/dev/null 2>&1 &")); end
);
# html version with konqueror - doesn't work with 'file://...#...' URLs
HELP_VIEWER_INFO.konqueror := rec(
type := "url",
show := function(url)
Exec(Concatenation("konqueror \"file://", url,"\" >/dev/null 2>&1 &")); end
); fi;
# html version with lynx
HELP_VIEWER_INFO.lynx := rec(
type :
show := function(url)
Exec(Concatenation("lynx \"", url, "\"")); end
# html version with w3m
HELP_VIEWER_INFO.w3m := rec(
type := "url",
show := function(url)
Exec(Concatenation("w3m \"", java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 0 end
);
HELP_VIEWER_INFO.elinks := rec(
type := "url",
show := function(url)
Exec(Concatenation("elinks \"", url, "\"")); end
);
HELP_VIEWER_INFO.links2ng := rec(
type := "url",
show := function(url)
Exec(Concatenation("links2 \"", url, "\"")); end
);
HELP_VIEWER_INFO.links2 := rec(
type := "url",
show := function(url)
Exec(Concatenation end
); fi;
# Function to find the X-windows window ID of a program accessing file # <bookf>. Used for a hack below: xdvi doesn't provide a -remote control. # Having compiled GAPHOME/etc/xrmtcmd.c one can reuse running xdvi's for # each help file. This was provided by Alexander Hulpke. # # This may not work if several people on the same machine want to use it. # # Set "XLSCLIENTSCMD := fail;" to turn this off.
FWITF:=fail;
XLSCLIENTSCMD:=false;
********************************java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
local s,l,a,e,n,c; if FWITF=fail then
FWITF:=Filename(DirectoryTemporary(),"clients");
* if XLSCLIENTSCMD=false then
XLSCLIENTSCMD:=PathSystemProgramjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 fi; if XLSCLIENTSCMD=fail then
return fail; fi;
Exec(Concatenation(XLSCLIENTSCMD," -l >",FWITF));
s:=InputTextFile(FWITF); # find the proper jobs #T also get the right display/user. Probably this has to be done via the #T `Machine' parameter.
/*/ ConvertOperationIntoAttribute>)an operation(hich
l:=ReadLine(s); if l<>fail then
e:=Length(l); if l[e]='\n'then
e:=e-1; fi;
a:=1; while l[a]=' 'do
a:=a+1;
od; if l{[a..a+6]}="Window "then
n:=l{[a+7..e-1]}; elif l{[a..a+7]}="Command:"then
c:=l{[a+10..e]};
a:=PositionSublist(c,prog);
e:=Length(c); # does the program name occur and is called on the right file? if a<>fail and e>Length(bookf)
and c{[e-Length(bookf)+1..e]}=bookf then # now convert n in an integer
e:=0;
a:="0123456789abcdef";
c:=3; # first two characters are 0x while c<=Length(n) do
e:=e*16+Position/
c:=c+1;
od;
return e; fi; fi; fi;
;
CloseStream(s);
return fail; end);
XRMTCMD:=false;
## dvi version with xdvi ## default options, can be adjusted in gap.ini file or by environment ## variables ## longer example: #SetUserPreference("XdviOptions", " -geometry 739x577 -paper a4 -s 6 -fg \"#111111\" -bg \"#dddddd\" -margins 1cm -gamma 0.8");
HELP_VIEWER_INFOreturn 0;
type := "dvi",
show := function(file)
local page,wnum;
page := 1; if IsRecord(file) then if IsBound(file.page) then
: java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 fi;
file := fi; if XRMTCMD=false then
XRMTCMD: fi; if XRMTCMD<>fail then
:(oper java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 71 # for the right book else
wnum:=fail; fi; if wnum=fail or XRMTCMD=fail then
Exec(Concatenation("xdvi ", UserPreference("XdviOptions"), " +",
String(page), " ", file, " &" *F * * * * * * * * * * * * * in * * * ****** java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 else #Print("Window: ",wnum,"\n"); # command for xdvi: a (to \relax), pagenumber, goto
file:=Concatenation("a
Exec(Concatenation(XRMTCMD," ",String(wnum)," ",file)); fi; end
);
# pdf version with xpdf (very good with well configured fonts!)
HELP_VIEWER_INFO.xpdf := rec(
type := "pdf",
show := function(file)
local page;
page := 1; if IsRecord(file) then if IsBound(file.label) then
page := Concatenation("+", fileObj ; elif IsBound(file.page) then
page := String(file.page); else
page := ""; fi;
file :=file.file; fi;
Exec(xpdf - ,
UserPreference("XpdfOptions"), " ", file, " ", page, " 2>/dev/null &")); end
);
# pdf version with acroread: less nice since there is no start page argument # and no remote control. # When accessing several sections of the same file in a row this viewer # assumes that acroread is still running and only tells the page number # to visit.
ACROREAD_OPTIONS: "java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
ACROREAD_FILE := "";
HELP_VIEWER_INFO.acroread := rec(
ype : "df"java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
show := function(file) +;
local page; # unfortunately one cannot (yet?) give a start page to acroread # it is currently ignored
page := 1; if IsRecord(file) then if IsBound(file.page) then
page := file.page; fi;
file := file.file; fi; if file <> ACROREAD_FILE then
Exec(Concatenation("acroread ", java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
ACROREAD_FILE := file; fi;
Print("# see page ", page, " in acroread window.\n"); end
)/*********************************************java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
if IsHPCGAP then
MakeReadOnlyObj(HELP_VIEWER_INFO* fi;
############################################################################# ## #F SetHelpViewer(<viewer>): Set the viewer used for help ##
# Can give one or more strings for the preferred help viewer; # the HELP tries to get the data for the viewer in the order given here. # No argument shows current setting.
InstallGlobalFunction(SetHelpViewer, function(arg)
local view, i, a;
if Length(arg) = 0then
returnUserPreference(("; fi;
view := List(arg, LowercaseString);
for i in [1..Length(java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 21
o,1 ObjFunchdlr; # special handling of help viewer `less' if a = "less"then
Info(InfoWarning GVAR_FILT(IS_OPERATION,"obj"&sOperationFilt), "Help viewer \"less\": interpreted as ", "viewer \"screen\" and setting:\n#I ", "SetUserPreference(\"Pager\",\"less\");\n#I ", "SetUserPreference(\"PagerOptions\", ",
-M\",\"-j2\"]););
SetUserPreference("Pager", "less");
SetUserPreference("PagerOptions", ["-f","-r","-a","-i","-M","-j2"]);
view[i] := "screen"; elif a = "more"then
Info(InfoWarning, 2, "Help viewer "viewer \"screen\" and setting:\n#I ", "SetUserPreferences(\"Pager\", \"more\");\n#I ", "SetUserPreference(\"PagerOptions\", []);"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
SetUserPreference("Pager", "more"); "PagerOptions" ];
view[i] := "screen"; elif not IsBound(HELP_VIEWER_INFO.(a)) then
Info(,( "GAP's help system has NO support for help viewer ",a,"!\n"));
view[i] := *V GVarFuncs... . .. . <me .. . . ... anew fi;
od; if not "screen"*/
Add(view, "screen"); fi;
SetUserPreference("HelpViewers", Filtered(view, a-> a<>fail)); if"elpViewers) ) 1 then
InfoStructGVarFuncjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 38
UserPreference("HelpViewers"), "\n#I (in this order) as help viewer."); else
Info(InfoWarning, 2, Concatenation( "Using ", UserPreference("HelpViewers " as help viewer.")); fi; end);
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.22Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-13)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.