summaryrefslogtreecommitdiff
path: root/sys/src/cmd/yacc.c
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2020-05-13 18:50:01 -0700
committerOri Bernstein <ori@eigenstate.org>2020-05-13 18:50:01 -0700
commited4645979c0a6286d92c6bddaee7ea71727b0afb (patch)
tree88330b9ca634d8dd5bba4f9cb22ff823bacb9376 /sys/src/cmd/yacc.c
parentd332f8a9b5d4437e7d8d0946bb03c13d7fe8a236 (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.c14
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;