diff options
author | Ori Bernstein <ori@eigenstate.org> | 2020-05-13 18:50:01 -0700 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2020-05-13 18:50:01 -0700 |
commit | ed4645979c0a6286d92c6bddaee7ea71727b0afb (patch) | |
tree | 88330b9ca634d8dd5bba4f9cb22ff823bacb9376 /sys/src/cmd/yacc.c | |
parent | d332f8a9b5d4437e7d8d0946bb03c13d7fe8a236 (diff) |
stop fiddling with path construction.
There's fd2path, which gives back the full path directly.
This makes the code even simpler.
Diffstat (limited to 'sys/src/cmd/yacc.c')
-rw-r--r-- | sys/src/cmd/yacc.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/src/cmd/yacc.c b/sys/src/cmd/yacc.c index 6d90c643c..8e78c12ff 100644 --- a/sys/src/cmd/yacc.c +++ b/sys/src/cmd/yacc.c @@ -143,7 +143,7 @@ Biobuf* foutput; /* y.output file */ /* communication variables between various I/O routines */ char* infile; /* input file name */ -char* inpath; /* input full path */ +char inpath[1024]; /* input full path */ int numbval; /* value of an input number */ char tokname[NAMESIZE+UTFmax+1]; /* input token name, slop for runes and 0 */ @@ -1185,7 +1185,7 @@ setup(int argc, char *argv[]) long c, t; int i, j, lev, ty, ytab, *p; int vflag, dflag, stem; - char actnm[8], *stemc, dirbuf[512]; + char actnm[8], *stemc; ytab = 0; vflag = 0; @@ -1231,16 +1231,12 @@ setup(int argc, char *argv[]) if(argc < 1) error("no input file"); - dirbuf[0] = '\0'; infile = argv[0]; - if(infile[0] != '/' && getwd(dirbuf, sizeof dirbuf)==nil) - error("cannot get cwd"); - inpath = smprint("%s/%s", dirbuf, infile); - cleanname(inpath); - - finput = Bopen(inpath, OREAD); + finput = Bopen(infile, OREAD); if(finput == 0) error("cannot open '%s'", argv[0]); + if(fd2path(Bfildes(finput), inpath, sizeof(inpath)) == -1) + error("cannot get path for %s", infile); Blethal(finput, nil); cnamp = cnames; |