From 7067cb3620a61461b33d4192ce4ed81c3b5c27ea Mon Sep 17 00:00:00 2001 From: Paul Hilfinger Date: Mon, 27 May 2002 22:33:54 +0000 Subject: [PATCH] * src/output.c (output_skeleton): Put an explicit path in front of the skeleton file name, rather than relying on the -I directory, to partially alleviate effects of having a skeleton file lying around in the current directory. --- ChangeLog | 7 +++++++ src/output.c | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e949eaf..55542c3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-05-27 Paul Hilfinger + + * src/output.c (output_skeleton): Put an explicit path in front of + the skeleton file name, rather than relying on the -I directory, + to partially alleviate effects of having a skeleton file lying around + in the current directory. + 2002-05-27 Paul Hilfinger * src/conflicts.c (log_resolution): Correct typo: diff --git a/src/output.c b/src/output.c index 2b2f1f08..a8ddf822 100644 --- a/src/output.c +++ b/src/output.c @@ -994,20 +994,30 @@ output_skeleton (void) { const char *bison_pkgdatadir = getenv ("BISON_PKGDATADIR"); const char *m4 = getenv ("M4"); + int pkg_data_len; + char *full_skeleton; + if (!m4) m4 = M4; if (!bison_pkgdatadir) bison_pkgdatadir = PKGDATADIR; + pkg_data_len = strlen (bison_pkgdatadir); + full_skeleton = XMALLOC (char, pkg_data_len + strlen (skeleton) + 1); + if (bison_pkgdatadir[pkg_data_len-1] == '/') + sprintf (full_skeleton, "%s%s", bison_pkgdatadir, skeleton); + else + sprintf (full_skeleton, "%s/%s", bison_pkgdatadir, skeleton); if (trace_flag) fprintf (stderr, "running: %s -I %s m4sugar/m4sugar.m4 %s %s\n", - m4, bison_pkgdatadir, tempfile, skeleton); + m4, bison_pkgdatadir, tempfile, full_skeleton); skel_in = readpipe (m4, "-I", bison_pkgdatadir, "m4sugar/m4sugar.m4", tempfile, - skeleton, + full_skeleton, NULL); + XFREE (full_skeleton); if (!skel_in) error (EXIT_FAILURE, errno, "cannot run m4"); skel_lex (); -- 2.45.2