summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y13
1 files changed, 8 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index 9b8cf15875..414c775fd1 100644
--- a/parse.y
+++ b/parse.y
@@ -398,11 +398,11 @@ compstmt : stmts opt_terms
stmts : none
| stmt
{
- $$ = newline_node(remove_begin($1));
+ $$ = newline_node($1);
}
| stmts terms stmt
{
- $$ = block_append($1, newline_node(remove_begin($3)));
+ $$ = block_append($1, newline_node($3));
}
| error stmt
{
@@ -4549,10 +4549,13 @@ newline_node(node)
{
NODE *nl = 0;
if (node) {
+ int line;
if (nd_type(node) == NODE_NEWLINE) return node;
- nl = NEW_NEWLINE(node);
- fixpos(nl, node);
- nl->nd_nth = nd_line(node);
+ line = nd_line(node);
+ node = remove_begin(node);
+ nl = NEW_NEWLINE(node);
+ nd_set_line(nl, line);
+ nl->nd_nth = line;
}
return nl;
}