summaryrefslogtreecommitdiff
path: root/graphics/asymptote/runfile.cc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-28 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2021-12-28 03:01:00 +0000
commitecdf859b6ce481abfd530425dcf6f0f764bd0001 (patch)
tree13bc161dc046876ac6c92fce5f9f5034ba9aa573 /graphics/asymptote/runfile.cc
parent790995b7e79697514364450bf9c04f1b8d500838 (diff)
CTAN sync 202112280300
Diffstat (limited to 'graphics/asymptote/runfile.cc')
-rw-r--r--graphics/asymptote/runfile.cc251
1 files changed, 127 insertions, 124 deletions
diff --git a/graphics/asymptote/runfile.cc b/graphics/asymptote/runfile.cc
index 72ead073b2..c9b2554da8 100644
--- a/graphics/asymptote/runfile.cc
+++ b/graphics/asymptote/runfile.cc
@@ -123,11 +123,14 @@ void gen_runfile3(stack *Stack)
string name=vm::pop<string>(Stack,emptystring);
#line 45 "runfile.in"
file *f=NULL;
- if(mode == "binary") {
+ if(mode == "binary")
f=new ibfile(name,check);
- } else if(mode == "xdr") {
+ else if(mode == "xdr" || mode == "xdrgz") {
#ifdef HAVE_RPC_RPC_H
- f=new ixfile(name,check);
+ if(mode == "xdr")
+ f=new ixfile(name,check);
+ else if(mode == "xdrgz")
+ f=new igzxfile(name,check);
#else
ostringstream buf;
buf << name << ": XDR read support not enabled";
@@ -135,7 +138,7 @@ void gen_runfile3(stack *Stack)
#endif
} else if(mode == "") {
char c=comment.empty() ? (char) 0 : comment[0];
- f=new ifile(name,c,check);
+ f=new camp::ifile(name,c,check);
} else {
f=NULL;
ostringstream buf;
@@ -147,7 +150,7 @@ void gen_runfile3(stack *Stack)
{Stack->push<file*>(f); return;}
}
-#line 71 "runfile.in"
+#line 74 "runfile.in"
// file* output(string name=emptystring, bool update=false, string comment=commentchar, string mode=emptystring);
void gen_runfile4(stack *Stack)
{
@@ -155,7 +158,7 @@ void gen_runfile4(stack *Stack)
string comment=vm::pop<string>(Stack,commentchar);
bool update=vm::pop<bool>(Stack,false);
string name=vm::pop<string>(Stack,emptystring);
-#line 73 "runfile.in"
+#line 76 "runfile.in"
file *f=NULL;
if(mode == "pipe") {
f=new opipe(name);
@@ -190,152 +193,152 @@ void gen_runfile4(stack *Stack)
{Stack->push<file*>(f); return;}
}
-#line 108 "runfile.in"
+#line 111 "runfile.in"
// bool eof(file *f);
void gen_runfile5(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 109 "runfile.in"
+#line 112 "runfile.in"
{Stack->push<bool>(f->eof()); return;}
}
-#line 113 "runfile.in"
+#line 116 "runfile.in"
// bool eol(file *f);
void gen_runfile6(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 114 "runfile.in"
+#line 117 "runfile.in"
{Stack->push<bool>(f->eol()); return;}
}
-#line 118 "runfile.in"
+#line 121 "runfile.in"
// bool error(file *f);
void gen_runfile7(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 119 "runfile.in"
+#line 122 "runfile.in"
{Stack->push<bool>(f->error()); return;}
}
-#line 123 "runfile.in"
+#line 126 "runfile.in"
// void clear(file *f);
void gen_runfile8(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 124 "runfile.in"
+#line 127 "runfile.in"
f->clear();
}
-#line 128 "runfile.in"
+#line 131 "runfile.in"
// void close(file *f);
void gen_runfile9(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 129 "runfile.in"
+#line 132 "runfile.in"
f->close();
}
-#line 133 "runfile.in"
+#line 136 "runfile.in"
// Int precision(file *f=NULL, Int digits=0);
void gen_runfile10(stack *Stack)
{
Int digits=vm::pop<Int>(Stack,0);
file * f=vm::pop<file *>(Stack,NULL);
-#line 134 "runfile.in"
+#line 137 "runfile.in"
if(f == 0) f=&camp::Stdout;
{Stack->push<Int>(f->precision(digits)); return;}
}
-#line 139 "runfile.in"
+#line 142 "runfile.in"
// void flush(file *f);
void gen_runfile11(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 140 "runfile.in"
+#line 143 "runfile.in"
f->flush();
}
-#line 144 "runfile.in"
+#line 147 "runfile.in"
// string getc(file *f);
void gen_runfile12(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 145 "runfile.in"
+#line 148 "runfile.in"
char c=0;
if(f->isOpen()) f->read(c);
{Stack->push<string>(string(1,c)); return;}
}
-#line 151 "runfile.in"
+#line 154 "runfile.in"
// Int tell(file *f);
void gen_runfile13(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 152 "runfile.in"
+#line 155 "runfile.in"
{Stack->push<Int>(f->tell()); return;}
}
-#line 156 "runfile.in"
+#line 159 "runfile.in"
// void seek(file *f, Int pos);
void gen_runfile14(stack *Stack)
{
Int pos=vm::pop<Int>(Stack);
file * f=vm::pop<file *>(Stack);
-#line 157 "runfile.in"
+#line 160 "runfile.in"
f->seek(pos,pos >= 0);
}
-#line 161 "runfile.in"
+#line 164 "runfile.in"
// void seekeof(file *f);
void gen_runfile15(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 162 "runfile.in"
+#line 165 "runfile.in"
f->seek(0,false);
}
-#line 166 "runfile.in"
+#line 169 "runfile.in"
void namePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 167 "runfile.in"
+#line 170 "runfile.in"
{Stack->push<string>(f.filename()); return;}
}
-#line 171 "runfile.in"
+#line 174 "runfile.in"
void modePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 172 "runfile.in"
+#line 175 "runfile.in"
{Stack->push<string>(f.FileMode()); return;}
}
// Set file dimensions
-#line 177 "runfile.in"
+#line 180 "runfile.in"
void dimensionSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
Int nz=vm::pop<Int>(Stack,-1);
Int ny=vm::pop<Int>(Stack,-1);
Int nx=vm::pop<Int>(Stack,-1);
-#line 178 "runfile.in"
+#line 181 "runfile.in"
f->dimension(nx,ny,nz);
{Stack->push<file*>(f); return;}
}
-#line 183 "runfile.in"
+#line 186 "runfile.in"
void dimensionSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 184 "runfile.in"
+#line 187 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(dimensionSetHelper),f)); return;}
}
-#line 188 "runfile.in"
+#line 191 "runfile.in"
void dimensionPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 189 "runfile.in"
+#line 192 "runfile.in"
array *a=new array(3);
(*a)[0]=f.Nx();
(*a)[1]=f.Ny();
@@ -344,174 +347,174 @@ void dimensionPart(stack *Stack)
}
// Set file f to read arrays in line-at-a-time mode
-#line 198 "runfile.in"
+#line 201 "runfile.in"
void lineSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 199 "runfile.in"
+#line 202 "runfile.in"
f->LineMode(b);
{Stack->push<file*>(f); return;}
}
-#line 204 "runfile.in"
+#line 207 "runfile.in"
void lineSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 205 "runfile.in"
+#line 208 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(lineSetHelper),f)); return;}
}
-#line 209 "runfile.in"
+#line 212 "runfile.in"
void linePart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 210 "runfile.in"
+#line 213 "runfile.in"
{Stack->push<bool>(f.LineMode()); return;}
}
// Set file to read comma-separated values
-#line 215 "runfile.in"
+#line 218 "runfile.in"
void csvSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 216 "runfile.in"
+#line 219 "runfile.in"
f->CSVMode(b);
{Stack->push<file*>(f); return;}
}
-#line 221 "runfile.in"
+#line 224 "runfile.in"
void csvSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 222 "runfile.in"
+#line 225 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(csvSetHelper),f)); return;}
}
-#line 226 "runfile.in"
+#line 229 "runfile.in"
void csvPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 227 "runfile.in"
+#line 230 "runfile.in"
{Stack->push<bool>(f.CSVMode()); return;}
}
// Set file to read whitespace-separated values
-#line 232 "runfile.in"
+#line 235 "runfile.in"
void wordSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 233 "runfile.in"
+#line 236 "runfile.in"
f->WordMode(b);
{Stack->push<file*>(f); return;}
}
-#line 238 "runfile.in"
+#line 241 "runfile.in"
void wordSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 239 "runfile.in"
+#line 242 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(wordSetHelper),f)); return;}
}
-#line 243 "runfile.in"
+#line 246 "runfile.in"
void wordPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 244 "runfile.in"
+#line 247 "runfile.in"
{Stack->push<bool>(f.WordMode()); return;}
}
// Set file to read/write single precision real XDR values.
-#line 249 "runfile.in"
+#line 252 "runfile.in"
void singlerealSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 250 "runfile.in"
+#line 253 "runfile.in"
f->SingleReal(b);
{Stack->push<file*>(f); return;}
}
-#line 255 "runfile.in"
+#line 258 "runfile.in"
void singlerealSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 256 "runfile.in"
+#line 259 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(singlerealSetHelper),f)); return;}
}
-#line 260 "runfile.in"
+#line 263 "runfile.in"
void singlerealPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 261 "runfile.in"
+#line 264 "runfile.in"
{Stack->push<bool>(f.SingleReal()); return;}
}
// Set file to read/write single precision int XDR values.
-#line 266 "runfile.in"
+#line 269 "runfile.in"
void singleintSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 267 "runfile.in"
+#line 270 "runfile.in"
f->SingleInt(b);
{Stack->push<file*>(f); return;}
}
-#line 272 "runfile.in"
+#line 275 "runfile.in"
void singleintSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 273 "runfile.in"
+#line 276 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(singleintSetHelper),f)); return;}
}
-#line 277 "runfile.in"
+#line 280 "runfile.in"
void singleintPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 278 "runfile.in"
+#line 281 "runfile.in"
{Stack->push<bool>(f.SingleInt()); return;}
}
// Set file to read/write signed int XDR values.
-#line 283 "runfile.in"
+#line 286 "runfile.in"
void signedintSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
bool b=vm::pop<bool>(Stack,true);
-#line 284 "runfile.in"
+#line 287 "runfile.in"
f->SignedInt(b);
{Stack->push<file*>(f); return;}
}
-#line 289 "runfile.in"
+#line 292 "runfile.in"
void signedintSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 290 "runfile.in"
+#line 293 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(signedintSetHelper),f)); return;}
}
-#line 294 "runfile.in"
+#line 297 "runfile.in"
void signedintPart(stack *Stack)
{
file f=vm::pop<file>(Stack);
-#line 295 "runfile.in"
+#line 298 "runfile.in"
{Stack->push<bool>(f.SignedInt()); return;}
}
// Set file to read an arrayi (i int sizes followed by an i-dimensional array)
-#line 300 "runfile.in"
+#line 303 "runfile.in"
void readSetHelper(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
Int i=vm::pop<Int>(Stack);
-#line 301 "runfile.in"
+#line 304 "runfile.in"
switch(i) {
case 1:
f->dimension(-2);
@@ -532,21 +535,21 @@ void readSetHelper(stack *Stack)
{Stack->push<file*>(f); return;}
}
-#line 322 "runfile.in"
+#line 325 "runfile.in"
void readSet(stack *Stack)
{
file * f=vm::pop<file *>(Stack);
-#line 323 "runfile.in"
+#line 326 "runfile.in"
{Stack->push<callable*>(new thunk(new bfunc(readSetHelper),f)); return;}
}
// Delete file named s.
-#line 328 "runfile.in"
+#line 331 "runfile.in"
// Int delete(string s);
void gen_runfile41(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 329 "runfile.in"
+#line 332 "runfile.in"
s=outpath(s);
Int rc=unlink(s.c_str());
if(rc == 0 && verbose > 0)
@@ -555,13 +558,13 @@ void gen_runfile41(stack *Stack)
}
// Rename file "from" to file "to".
-#line 338 "runfile.in"
+#line 341 "runfile.in"
// Int rename(string from, string to);
void gen_runfile42(stack *Stack)
{
string to=vm::pop<string>(Stack);
string from=vm::pop<string>(Stack);
-#line 339 "runfile.in"
+#line 342 "runfile.in"
from=outpath(from);
to=outpath(to);
Int rc=rename(from.c_str(),to.c_str());
@@ -571,12 +574,12 @@ void gen_runfile42(stack *Stack)
}
// Create a uniquely named temporary file.
-#line 349 "runfile.in"
+#line 352 "runfile.in"
// string mktemp(string s);
void gen_runfile43(stack *Stack)
{
string s=vm::pop<string>(Stack);
-#line 350 "runfile.in"
+#line 353 "runfile.in"
char *S=StrdupMalloc(s+"XXXXXX");
int fd=mkstemp(S);
if(fd < 0) {
@@ -603,85 +606,85 @@ void gen_runfile_venv(venv &ve)
REGISTER_BLTIN(run::nullFile,"nullFile");
#line 43 "runfile.in"
addFunc(ve, run::gen_runfile3, primFile(), SYM(input), formal(primString(), SYM(name), true, false), formal(primBoolean(), SYM(check), true, false), formal(primString(), SYM(comment), true, false), formal(primString(), SYM(mode), true, false));
-#line 71 "runfile.in"
+#line 74 "runfile.in"
addFunc(ve, run::gen_runfile4, primFile(), SYM(output), formal(primString(), SYM(name), true, false), formal(primBoolean(), SYM(update), true, false), formal(primString(), SYM(comment), true, false), formal(primString(), SYM(mode), true, false));
-#line 108 "runfile.in"
+#line 111 "runfile.in"
addFunc(ve, run::gen_runfile5, primBoolean(), SYM(eof), formal(primFile(), SYM(f), false, false));
-#line 113 "runfile.in"
+#line 116 "runfile.in"
addFunc(ve, run::gen_runfile6, primBoolean(), SYM(eol), formal(primFile(), SYM(f), false, false));
-#line 118 "runfile.in"
+#line 121 "runfile.in"
addFunc(ve, run::gen_runfile7, primBoolean(), SYM(error), formal(primFile(), SYM(f), false, false));
-#line 123 "runfile.in"
+#line 126 "runfile.in"
addFunc(ve, run::gen_runfile8, primVoid(), SYM(clear), formal(primFile(), SYM(f), false, false));
-#line 128 "runfile.in"
+#line 131 "runfile.in"
addFunc(ve, run::gen_runfile9, primVoid(), SYM(close), formal(primFile(), SYM(f), false, false));
-#line 133 "runfile.in"
+#line 136 "runfile.in"
addFunc(ve, run::gen_runfile10, primInt(), SYM(precision), formal(primFile(), SYM(f), true, false), formal(primInt(), SYM(digits), true, false));
-#line 139 "runfile.in"
+#line 142 "runfile.in"
addFunc(ve, run::gen_runfile11, primVoid(), SYM(flush), formal(primFile(), SYM(f), false, false));
-#line 144 "runfile.in"
+#line 147 "runfile.in"
addFunc(ve, run::gen_runfile12, primString(), SYM(getc), formal(primFile(), SYM(f), false, false));
-#line 151 "runfile.in"
+#line 154 "runfile.in"
addFunc(ve, run::gen_runfile13, primInt(), SYM(tell), formal(primFile(), SYM(f), false, false));
-#line 156 "runfile.in"
+#line 159 "runfile.in"
addFunc(ve, run::gen_runfile14, primVoid(), SYM(seek), formal(primFile(), SYM(f), false, false), formal(primInt(), SYM(pos), false, false));
-#line 161 "runfile.in"
+#line 164 "runfile.in"
addFunc(ve, run::gen_runfile15, primVoid(), SYM(seekeof), formal(primFile(), SYM(f), false, false));
-#line 166 "runfile.in"
+#line 169 "runfile.in"
REGISTER_BLTIN(run::namePart,"namePart");
-#line 171 "runfile.in"
+#line 174 "runfile.in"
REGISTER_BLTIN(run::modePart,"modePart");
-#line 176 "runfile.in"
+#line 179 "runfile.in"
REGISTER_BLTIN(run::dimensionSetHelper,"dimensionSetHelper");
-#line 183 "runfile.in"
+#line 186 "runfile.in"
REGISTER_BLTIN(run::dimensionSet,"dimensionSet");
-#line 188 "runfile.in"
+#line 191 "runfile.in"
REGISTER_BLTIN(run::dimensionPart,"dimensionPart");
-#line 197 "runfile.in"
+#line 200 "runfile.in"
REGISTER_BLTIN(run::lineSetHelper,"lineSetHelper");
-#line 204 "runfile.in"
+#line 207 "runfile.in"
REGISTER_BLTIN(run::lineSet,"lineSet");
-#line 209 "runfile.in"
+#line 212 "runfile.in"
REGISTER_BLTIN(run::linePart,"linePart");
-#line 214 "runfile.in"
+#line 217 "runfile.in"
REGISTER_BLTIN(run::csvSetHelper,"csvSetHelper");
-#line 221 "runfile.in"
+#line 224 "runfile.in"
REGISTER_BLTIN(run::csvSet,"csvSet");
-#line 226 "runfile.in"
+#line 229 "runfile.in"
REGISTER_BLTIN(run::csvPart,"csvPart");
-#line 231 "runfile.in"
+#line 234 "runfile.in"
REGISTER_BLTIN(run::wordSetHelper,"wordSetHelper");
-#line 238 "runfile.in"
+#line 241 "runfile.in"
REGISTER_BLTIN(run::wordSet,"wordSet");
-#line 243 "runfile.in"
+#line 246 "runfile.in"
REGISTER_BLTIN(run::wordPart,"wordPart");
-#line 248 "runfile.in"
+#line 251 "runfile.in"
REGISTER_BLTIN(run::singlerealSetHelper,"singlerealSetHelper");
-#line 255 "runfile.in"
+#line 258 "runfile.in"
REGISTER_BLTIN(run::singlerealSet,"singlerealSet");
-#line 260 "runfile.in"
+#line 263 "runfile.in"
REGISTER_BLTIN(run::singlerealPart,"singlerealPart");
-#line 265 "runfile.in"
+#line 268 "runfile.in"
REGISTER_BLTIN(run::singleintSetHelper,"singleintSetHelper");
-#line 272 "runfile.in"
+#line 275 "runfile.in"
REGISTER_BLTIN(run::singleintSet,"singleintSet");
-#line 277 "runfile.in"
+#line 280 "runfile.in"
REGISTER_BLTIN(run::singleintPart,"singleintPart");
-#line 282 "runfile.in"
+#line 285 "runfile.in"
REGISTER_BLTIN(run::signedintSetHelper,"signedintSetHelper");
-#line 289 "runfile.in"
+#line 292 "runfile.in"
REGISTER_BLTIN(run::signedintSet,"signedintSet");
-#line 294 "runfile.in"
+#line 297 "runfile.in"
REGISTER_BLTIN(run::signedintPart,"signedintPart");
-#line 299 "runfile.in"
+#line 302 "runfile.in"
REGISTER_BLTIN(run::readSetHelper,"readSetHelper");
-#line 322 "runfile.in"
+#line 325 "runfile.in"
REGISTER_BLTIN(run::readSet,"readSet");
-#line 327 "runfile.in"
+#line 330 "runfile.in"
addFunc(ve, run::gen_runfile41, primInt(), SYM(delete), formal(primString(), SYM(s), false, false));
-#line 337 "runfile.in"
+#line 340 "runfile.in"
addFunc(ve, run::gen_runfile42, primInt(), SYM(rename), formal(primString(), SYM(from), false, false), formal(primString(), SYM(to), false, false));
-#line 348 "runfile.in"
+#line 351 "runfile.in"
addFunc(ve, run::gen_runfile43, primString(), SYM(mktemp), formal(primString(), SYM(s), false, false));
}