Fix behavior of .INCLUDE within a macro or .REPEAT. In the original code
.INCLUDE was executed after expansion of the macro or .REPEAT - which was wrong and caused all sorts of unexpected behavior. Related issues/PRs are #231, #1473, #2159 and maybe others. Note: After this change error messages for nested macro/.include statements may be wrong. This is an unrelated bug that was always there and got exposed by this fix. The bug needs to be addressed in a separate PR.
This commit is contained in:
@@ -38,6 +38,17 @@
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Data */
|
||||
/*****************************************************************************/
|
||||
|
||||
|
||||
|
||||
/* Opaque pointer to an input stack */
|
||||
typedef void* InputStack;
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Code */
|
||||
/*****************************************************************************/
|
||||
@@ -63,6 +74,15 @@ void CheckInputStack (void);
|
||||
** stuff on the input stack.
|
||||
*/
|
||||
|
||||
InputStack RetrieveInputStack (void);
|
||||
/* Retrieve the current input stack. This will also clear it. Used when
|
||||
** including a file. The current input stack is stored together with the old
|
||||
** input file and restored when the file is closed.
|
||||
*/
|
||||
|
||||
void RestoreInputStack (InputStack S);
|
||||
/* Restore an old input stack that was retrieved by RetrieveInputStack(). */
|
||||
|
||||
|
||||
|
||||
/* End of istack.h */
|
||||
|
||||
Reference in New Issue
Block a user