summaryrefslogtreecommitdiff
path: root/graphics/asymptote/settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/settings.cc')
-rw-r--r--graphics/asymptote/settings.cc98
1 files changed, 59 insertions, 39 deletions
diff --git a/graphics/asymptote/settings.cc b/graphics/asymptote/settings.cc
index 355e7ca2ec..be96fd0cd1 100644
--- a/graphics/asymptote/settings.cc
+++ b/graphics/asymptote/settings.cc
@@ -101,8 +101,8 @@ string defaultPSViewer="open";
string defaultPDFViewer="open";
string defaultHTMLViewer="open";
#else
-string defaultPSViewer="gv";
-string defaultPDFViewer="acroread";
+string defaultPSViewer="evince";
+string defaultPDFViewer="evince";
string defaultHTMLViewer="google-chrome";
#endif
string defaultGhostscript="gs";
@@ -118,14 +118,12 @@ bool msdos=true;
string HOME="USERPROFILE";
string docdir="c:\\Program Files\\Asymptote";
const char pathSeparator=';';
-//string defaultPSViewer="gsview32.exe";
string defaultPSViewer="cmd";
//string defaultPDFViewer="AcroRd32.exe";
string defaultPDFViewer="cmd";
string defaultHTMLViewer="cmd";
string defaultGhostscript;
string defaultGhostscriptLibrary;
-//string defaultDisplay="imdisplay";
string defaultDisplay="cmd";
//string defaultAnimate="animate";
string defaultAnimate="cmd";
@@ -203,8 +201,6 @@ void queryRegistry()
if(defaultPDFViewer != "cmd")
defaultPDFViewer=getEntry("Adobe/Acrobat Reader/*/InstallPath/@")+"\\"+
defaultPDFViewer;
- if(defaultPSViewer != "cmd")
- defaultPSViewer=getEntry("Ghostgum/GSview/*")+"\\gsview\\"+defaultPSViewer;
string s;
s=getEntry("Microsoft/Windows/CurrentVersion/App Paths/Asymptote/Path");
if(!s.empty()) docdir=s;
@@ -367,9 +363,9 @@ struct option : public gc {
}
// Outputs description of the command for the -help option.
- virtual void describe() {
+ virtual void describe(char option) {
// Don't show the option if it has no desciption.
- if (!desc.empty()) {
+ if(!hide() && ((option == 'h') ^ env())) {
const unsigned WIDTH=22;
string start=describeStart();
cerr << std::left << std::setw(WIDTH) << start;
@@ -379,14 +375,19 @@ struct option : public gc {
}
cerr << " " << desc;
if(cmdlineonly) cerr << "; command-line only";
- if(Default != "")
- cerr << " [" << Default << "]";
+ if(Default != "") {
+ if(!desc.empty()) cerr << " ";
+ cerr << Default;
+ }
cerr << endl;
}
}
virtual void reset() {
}
+
+ virtual bool env() {return false;}
+ virtual bool hide() {return false;}
};
const string noarg;
@@ -464,7 +465,7 @@ struct boolSetting : public itemSetting {
bool defaultValue=false)
: itemSetting(name, code, noarg, desc,
types::primBoolean(), (item)defaultValue,
- defaultValue ? "true" : "false") {}
+ defaultValue ? "[true]" : "[false]") {}
bool getOption() {
value=(item)true;
@@ -475,6 +476,8 @@ struct boolSetting : public itemSetting {
struct negOption : public option {
boolSetting &base;
+ bool hide() {return true;}
+
negOption(boolSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -521,6 +524,8 @@ struct boolSetting : public itemSetting {
struct negOption : public option {
multiOption &base;
+ bool hide() {return true;}
+
negOption(multiOption &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -562,7 +567,7 @@ struct stringSetting : public argumentSetting {
stringSetting(string name, char code,
string argname, string desc,
string defaultValue="")
- : argumentSetting(name, code, argname, desc.empty() ? "" :
+ : argumentSetting(name, code, argname, desc == "" ? "["+defaultValue+"]" :
desc+(defaultValue.empty() ? "" : " ["+defaultValue+"]"),
types::primString(), (item)defaultValue) {}
@@ -601,6 +606,8 @@ struct warnSetting : public option {
struct negOption : public option {
warnSetting &base;
+ bool hide() {return true;}
+
negOption(warnSetting &base, string name, string argname)
: option(name, 0, argname, ""), base(base) {}
@@ -631,6 +638,7 @@ string GetEnv(string s, string Default) {
struct envSetting : public stringSetting {
envSetting(string name, string Default)
: stringSetting(name, 0, " ", "", GetEnv(name,Default)) {}
+ bool env() {return true;}
};
template<class T>
@@ -706,6 +714,7 @@ struct stringArraySetting : public itemSetting {
stringArraySetting(string name, array *defaultValue)
: itemSetting(name, 0, "", "",
types::stringArray(), (item) defaultValue) {}
+ bool hide() {return true;}
bool getOption() {return true;}
};
@@ -788,6 +797,8 @@ struct boolrefSetting : public refSetting<bool> {
struct negOption : public option {
boolrefSetting &base;
+ bool hide() {return true;}
+
negOption(boolrefSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -839,6 +850,8 @@ struct incrementSetting : public refSetting<Int> {
struct negOption : public option {
incrementSetting &base;
+ bool hide() {return true;}
+
negOption(incrementSetting &base, string name)
: option(name, 0, noarg, ""), base(base) {}
@@ -868,6 +881,8 @@ struct incrementOption : public option {
Int level=1)
: option(name, code, noarg, desc, true), ref(ref), level(level) {}
+ bool hide() {return true;}
+
bool getOption() {
// Increment the value.
(*ref) += level;
@@ -903,15 +918,19 @@ void reportSyntax() {
exit(1);
}
-void displayOptions()
+void displayOptions(char code)
{
cerr << endl;
- cerr << "Options (negate by replacing - with -no): "
- << endl << endl;
+ if(code == 'h')
+ cerr << "Options (negate boolean options by replacing - with -no): "
+ << endl << endl;
+ else
+ cerr << "Environment settings: "
+ << endl << endl;
for (optionsMap_t::iterator opt=optionsMap.begin();
opt!=optionsMap.end();
++opt)
- opt->second->describe();
+ opt->second->describe(code);
}
struct helpOption : public option {
@@ -920,7 +939,7 @@ struct helpOption : public option {
bool getOption() {
usage(argv0);
- displayOptions();
+ displayOptions(code);
cerr << endl;
exit(0);
@@ -1211,7 +1230,7 @@ void initSettings() {
addOption(new stringArraySetting("wheeldown", stringArray(wheeldown)));
addOption(new stringArraySetting("suppress", new array));
- addOption(new warnSetting("warn", 0, "string", "Enable warning"));
+ addOption(new warnSetting("warn", 0, "str", "Enable warning"));
multiOption *view=new multiOption("View", 'V', "View output");
view->add(new boolSetting("batchView", 0, "View output in batch mode",
@@ -1235,9 +1254,9 @@ void initSettings() {
"Show 3D axes in PDF output", true));
addOption(new boolSetting("ibl", 0,
"Enable environment map image-based lighting", false));
- addOption(new stringSetting("image", 0,"string","Environment image name","snowyField"));
- addOption(new stringSetting("imageDir", 0,"string","Environment image library directory","ibl"));
- addOption(new stringSetting("imageURL", 0,"string","Environment image library URL","https://vectorgraphics.gitlab.io/asymptote/ibl"));
+ addOption(new stringSetting("image", 0,"str","Environment image name","snowyField"));
+ addOption(new stringSetting("imageDir", 0,"str","Environment image library directory","ibl"));
+ addOption(new stringSetting("imageURL", 0,"str","Environment image library URL","https://vectorgraphics.gitlab.io/asymptote/ibl"));
addOption(new realSetting("render", 0, "n",
"Render 3D graphics using n pixels per bp (-1=auto)",
havegl ? -1.0 : 0.0));
@@ -1290,6 +1309,7 @@ void initSettings() {
"Write expressions entered at the prompt to stdout",
true));
addOption(new helpOption("help", 'h', "Show summary of options"));
+ addOption(new helpOption("environment", 'e', "Show summary of environment settings"));
addOption(new versionOption("version", 0, "Show version"));
addOption(new pairSetting("offset", 'O', "pair", "PostScript offset"));
@@ -1379,8 +1399,8 @@ void initSettings() {
"Garbage collect using purge(divisor=n) [2]"));
#endif
- addOption(new stringSetting("prompt", 0,"string","Prompt","> "));
- addOption(new stringSetting("prompt2", 0,"string",
+ addOption(new stringSetting("prompt", 0,"str","Prompt","> "));
+ addOption(new stringSetting("prompt2", 0,"str",
"Continuation prompt for multiline input ",
".."));
addOption(new boolSetting("multiline", 0,
@@ -1394,8 +1414,8 @@ void initSettings() {
addOption(new boolSetting("wait", 0,
"Wait for child processes to finish before exiting"));
- addOption(new IntSetting("inpipe", 0, "n","",-1));
- addOption(new IntSetting("outpipe", 0, "n","",-1));
+ addOption(new IntSetting("inpipe", 0, "n","Input pipe",-1));
+ addOption(new IntSetting("outpipe", 0, "n","Output pipe",-1));
addOption(new boolSetting("exitonEOF", 0, "Exit interactive mode on EOF",
true));
@@ -1422,11 +1442,11 @@ void initSettings() {
addOption(new IntSetting("pdfreloaddelay", 0, "usec",
"Delay before attempting initial pdf reload"
,750000));
- addOption(new stringSetting("autoimport", 0, "string",
+ addOption(new stringSetting("autoimport", 0, "str",
"Module to automatically import"));
- addOption(new userSetting("command", 'c', "string",
+ addOption(new userSetting("command", 'c', "str",
"Command to autoexecute"));
- addOption(new userSetting("user", 'u', "string",
+ addOption(new userSetting("user", 'u', "str",
"General purpose user string"));
addOption(new realSetting("zoomfactor", 0, "factor", "Zoom step factor",
@@ -1456,20 +1476,20 @@ void initSettings() {
addOption(new IntSetting("digits", 0, "n",
"Default output file precision", 7));
- addOption(new realSetting("paperwidth", 0, "bp", ""));
- addOption(new realSetting("paperheight", 0, "bp", ""));
+ addOption(new realSetting("paperwidth", 0, "bp", "Default page width"));
+ addOption(new realSetting("paperheight", 0, "bp", "Default page height"));
- addOption(new stringSetting("dvipsOptions", 0, "string", ""));
- addOption(new stringSetting("dvisvgmOptions", 0, "string", ""));
+ addOption(new stringSetting("dvipsOptions", 0, "str", ""));
+ addOption(new stringSetting("dvisvgmOptions", 0, "str", ""));
addOption(new boolSetting("dvisvgmMultipleFiles", 0,
"dvisvgm supports multiple files", true));
- addOption(new stringSetting("convertOptions", 0, "string", ""));
- addOption(new stringSetting("gsOptions", 0, "string", ""));
- addOption(new stringSetting("htmlviewerOptions", 0, "string", ""));
- addOption(new stringSetting("psviewerOptions", 0, "string", ""));
- addOption(new stringSetting("pdfviewerOptions", 0, "string", ""));
- addOption(new stringSetting("pdfreloadOptions", 0, "string", ""));
- addOption(new stringSetting("glOptions", 0, "string", ""));
+ addOption(new stringSetting("convertOptions", 0, "str", ""));
+ addOption(new stringSetting("gsOptions", 0, "str", ""));
+ addOption(new stringSetting("htmlviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("psviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("pdfviewerOptions", 0, "str", ""));
+ addOption(new stringSetting("pdfreloadOptions", 0, "str", ""));
+ addOption(new stringSetting("glOptions", 0, "str", ""));
addOption(new stringSetting("hyperrefOptions", 0, "str",
"","setpagesize=false,unicode,pdfborder=0 0 0"));