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 {