File ksh93-heredoclex.dif of Package ksh

--- src/cmd/ksh93/sh/lex.c
+++ src/cmd/ksh93/sh/lex.c	2013-02-26 12:21:11.618820739 +0100
@@ -1559,6 +1559,7 @@ static int comsub(register Lex_t *lp, in
 	register int	line=lp->sh->inlineno;
 	char *first,*cp=fcseek(0),word[5];
 	int off, messages=0, assignok=lp->assignok, csub;
+	struct ionod *inheredoc = lp->heredoc;
 	struct lexstate	save;
 	save = lp->lex;
 	csub = lp->comsub;
@@ -1683,7 +1684,7 @@ done:
 	lp->lexd.dolparen--;
 	lp->lex = save;
 	lp->assignok = (endchar(lp)==RBRACT?assignok:0);
-	if(lp->heredoc)
+	if(lp->heredoc && !inheredoc)
 		errormsg(SH_DICT,ERROR_exit(SYNBAD),e_lexsyntax5,lp->sh->inlineno,lp->heredoc->ioname);
 	return(messages);
 }
openSUSE Build Service is sponsored by