diff options
Diffstat (limited to 'graphics/asymptote/settings.cc')
-rw-r--r-- | graphics/asymptote/settings.cc | 98 |
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")); |