diff options
Diffstat (limited to 'Build/source/utils/asymptote/picture.cc')
-rw-r--r-- | Build/source/utils/asymptote/picture.cc | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Build/source/utils/asymptote/picture.cc b/Build/source/utils/asymptote/picture.cc index 7b41fd7b530..827acc6ea70 100644 --- a/Build/source/utils/asymptote/picture.cc +++ b/Build/source/utils/asymptote/picture.cc @@ -20,7 +20,7 @@ using namespace settings; using namespace gl; texstream::~texstream() { - string name=stripFile(outname())+"texput."; + string name=stripTeXFile(outname())+"texput."; unlink((name+"aux").c_str()); unlink((name+"log").c_str()); unlink((name+"out").c_str()); @@ -213,7 +213,7 @@ void picture::texinit() return; } - string name=stripFile(outname())+"texput.aux"; + string name=stripTeXFile(outname())+"texput.aux"; const char *cname=name.c_str(); ofstream writeable(cname); if(!writeable) @@ -227,9 +227,9 @@ void picture::texinit() if(context) { // Create a null texput.tex file as a portable way of tricking context // to enter interactive mode (pending the implementation of --pipe). - string texput=stripFile(outname())+"texput.tex"; + string texput=stripTeXFile(outname())+"texput.tex"; ofstream(texput.c_str()); - cmd << texprogram() << " --scrollmode --purgeall " << texput; + cmd << texprogram() << " --scrollmode " << texput; } else cmd << texprogram() << " \\scrollmode"; @@ -256,7 +256,7 @@ bool picture::texprocess(const string& texname, const string& outname, string program=texprogram(); ostringstream cmd; bool context=settings::context(getSetting<string>("tex")); - cmd << program << (context ? " --nonstopmode --purgeall '" : + cmd << program << (context ? " --nonstopmode '" : " \\nonstopmode\\input '") << texname << "'"; bool quiet=verbose <= 1; status=System(cmd,quiet ? 1 : 0,true,"texpath",texpathmessage()); @@ -265,7 +265,7 @@ bool picture::texprocess(const string& texname, const string& outname, if(status) { if(quiet) { ostringstream cmd; - cmd << program << (context ? " --scrollmode --purgeall '" : + cmd << program << (context ? " --scrollmode '" : " \\scrollmode\\input '") << texname << "'"; System(cmd,0); } @@ -531,7 +531,8 @@ bool picture::shipout(picture *preamble, const string& Prefix, getSetting<string>("tex") != "none"; Labels=labels || TeXmode; - pdf=settings::pdf(getSetting<string>("tex")); + string texengine=getSetting<string>("tex"); + pdf=settings::pdf(texengine); bool standardout=Prefix == "-"; string prefix=standardout ? "out" : Prefix; @@ -682,6 +683,7 @@ bool picture::shipout(picture *preamble, const string& Prefix, } } + bool context=settings::context(texengine); if(status) { if(TeXmode) { if(Labels && verbose > 0) cout << "Wrote " << texname << endl; @@ -689,6 +691,7 @@ bool picture::shipout(picture *preamble, const string& Prefix, } else { if(Labels) { tex->epilogue(); + if(context) prefix=stripDir(prefix); status=texprocess(texname,prename,prefix,bboxshift); delete tex; if(!getSetting<bool>("keep")) { @@ -701,9 +704,11 @@ bool picture::shipout(picture *preamble, const string& Prefix, if(xobject) { if(transparency && pngxformat) status=(epstopdf(prename,Outname(prefix,"pdf",standardout)) == 0); - } else + } else { + if(context) prename=stripDir(prename); status=postprocess(prename,outname,outputformat,magnification,wait, view); + } } } } |