mirror of
https://github.com/golang/go
synced 2024-11-21 20:14:52 -07:00
cmd/gc: insert \n at end of every input file
Not just the first one. Fixes #5433. Fixes #5913. R=ken2 CC=golang-dev https://golang.org/cl/12028049
This commit is contained in:
parent
28138f1364
commit
27d17255db
@ -751,6 +751,7 @@ struct Io
|
||||
int32 ilineno;
|
||||
int nlsemi;
|
||||
int eofnl;
|
||||
int last;
|
||||
int peekc;
|
||||
int peekc1; // second peekc for ...
|
||||
char* cp; // used for content when bin==nil
|
||||
|
@ -329,6 +329,8 @@ main(int argc, char *argv[])
|
||||
curio.peekc = 0;
|
||||
curio.peekc1 = 0;
|
||||
curio.nlsemi = 0;
|
||||
curio.eofnl = 0;
|
||||
curio.last = 0;
|
||||
|
||||
// Skip initial BOM if present.
|
||||
if(Bgetrune(curio.bin) != BOM)
|
||||
@ -1602,7 +1604,7 @@ check:
|
||||
}
|
||||
case EOF:
|
||||
// insert \n at EOF
|
||||
if(curio.eofnl)
|
||||
if(curio.eofnl || curio.last == '\n')
|
||||
return EOF;
|
||||
curio.eofnl = 1;
|
||||
c = '\n';
|
||||
@ -1611,6 +1613,7 @@ check:
|
||||
lexlineno++;
|
||||
break;
|
||||
}
|
||||
curio.last = c;
|
||||
return c;
|
||||
}
|
||||
|
||||
|
@ -12,4 +12,4 @@
|
||||
package main
|
||||
|
||||
func foo() {
|
||||
bar(1, // ERROR "unexpected|missing|undefined"
|
||||
bar(1, // ERROR "unexpected|missing|undefined"
|
Loading…
Reference in New Issue
Block a user