summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/settings.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/settings.cc')
-rw-r--r--Build/source/utils/asymptote/settings.cc26
1 files changed, 17 insertions, 9 deletions
diff --git a/Build/source/utils/asymptote/settings.cc b/Build/source/utils/asymptote/settings.cc
index 7b3d43529f9..67fd7a9d61b 100644
--- a/Build/source/utils/asymptote/settings.cc
+++ b/Build/source/utils/asymptote/settings.cc
@@ -867,7 +867,7 @@ void addOption(option *o) {
void version()
{
- cerr << PROGRAM << " version " << VERSION << SVN_REVISION
+ cerr << PROGRAM << " version " << REVISION
<< " [(C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince]"
<< endl;
}
@@ -1331,8 +1331,15 @@ void setInteractive()
(isatty(STDIN_FILENO) || getSetting<Int>("inpipe") >= 0))
interact::interactive=true;
- historyname=getSetting<bool>("localhistory") ?
- (string(getPath())+dirsep+"."+suffix+"_history") : (initdir+"/history");
+ if(getSetting<bool>("localhistory"))
+ historyname=string(getPath())+dirsep+"."+suffix+"_history";
+ else {
+ if(mkdir(initdir.c_str(),0777) != 0 && errno != EEXIST)
+ cerr << "failed to create directory "+initdir+"." << endl;
+ historyname=initdir+"/history";
+ }
+ if(verbose > 1)
+ cerr << "Using history " << historyname << endl;
}
bool view()
@@ -1401,9 +1408,10 @@ void initDir() {
if(mask == 0) mask=0027;
umask(mask);
#endif
- if(verbose > 1)
- cerr << "Using configuration directory " << initdir << endl;
- mkdir(initdir.c_str(),0777);
+ if(access(initdir.c_str(),F_OK) == 0) {
+ if(verbose > 1)
+ cerr << "Using configuration directory " << initdir << endl;
+ }
}
void setPath() {
@@ -1418,7 +1426,8 @@ void setPath() {
}
if(i < asydir.length()) searchPath.push_back(asydir.substr(i));
}
- searchPath.push_back(initdir);
+ if(access(initdir.c_str(),F_OK) == 0)
+ searchPath.push_back(initdir);
string sysdir=getSetting<string>("sysdir");
if(sysdir != "")
searchPath.push_back(sysdir);
@@ -1571,9 +1580,8 @@ Int getScroll()
if(!terminal)
terminal=getenv("TERM");
if(terminal) {
- int error;
- error=setupterm(terminal,1,&error);
#ifndef __MSDOS__
+ int error=setupterm(terminal,1,&error);
if(error == 0) scroll=lines > 2 ? lines-1 : 1;
else
#endif