Fix up make_errors.go.
We broke C++ file scanning. It also was silently failing on Windows
because os.Rename's error was ignored. Also make it work on Windows; we
just need to close the files early.
Change-Id: I1aa976ef67a1feaf574c41cf07d2202c245f027a
Reviewed-on: https://boringssl-review.googlesource.com/22466
Commit-Queue: Steven Valdez <svaldez@google.com>
Reviewed-by: Steven Valdez <svaldez@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/util/make_errors.go b/util/make_errors.go
index 22fbd6a..2525a69 100644
--- a/util/make_errors.go
+++ b/util/make_errors.go
@@ -110,7 +110,7 @@
}
for _, name := range filenames {
- if !strings.HasSuffix(name, ".c") {
+ if !strings.HasSuffix(name, ".c") && !strings.HasSuffix(name, ".cc") {
continue
}
@@ -136,7 +136,12 @@
if err := writeHeaderFile(newHeaderFile, headerFile, prefix, reasons); err != nil {
return err
}
- os.Rename(headerPath+".tmp", headerPath)
+ // Windows forbids renaming an open file.
+ headerFile.Close()
+ newHeaderFile.Close()
+ if err := os.Rename(headerPath+".tmp", headerPath); err != nil {
+ return err
+ }
dataFile, err := os.OpenFile(dataPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
if err != nil {