ash: one "current line = 1" might be missing, fix that

I'm not sure this is necessary, but dash has this init here.
Just in case, do it too.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2017-08-14 19:46:56 +02:00
parent c2aea025bb
commit 0485b677d2

View File

@ -1229,6 +1229,10 @@ struct strpush {
int unget; int unget;
}; };
/*
* The parsefile structure pointed to by the global variable parsefile
* contains information about the current file being read.
*/
struct parsefile { struct parsefile {
struct parsefile *prev; /* preceding file on stack */ struct parsefile *prev; /* preceding file on stack */
int linno; /* current line */ int linno; /* current line */
@ -1902,10 +1906,6 @@ nextopt(const char *optstring)
/* ============ Shell variables */ /* ============ Shell variables */
/*
* The parsefile structure pointed to by the global variable parsefile
* contains information about the current file being read.
*/
struct shparam { struct shparam {
int nparam; /* # of positional parameters (without $0) */ int nparam; /* # of positional parameters (without $0) */
#if ENABLE_ASH_GETOPTS #if ENABLE_ASH_GETOPTS
@ -13603,6 +13603,7 @@ init(void)
{ {
/* we will never free this */ /* we will never free this */
basepf.next_to_pgetc = basepf.buf = ckmalloc(IBUFSIZ); basepf.next_to_pgetc = basepf.buf = ckmalloc(IBUFSIZ);
basepf.linno = 1;
sigmode[SIGCHLD - 1] = S_DFL; /* ensure we install handler even if it is SIG_IGNed */ sigmode[SIGCHLD - 1] = S_DFL; /* ensure we install handler even if it is SIG_IGNed */
setsignal(SIGCHLD); setsignal(SIGCHLD);