use PRIu64 for printing 64-bit in, %d for printing int
authorEvan Martin <martine@danga.com>
Mon, 18 Jun 2012 22:41:28 +0000 (15:41 -0700)
committerEvan Martin <martine@danga.com>
Mon, 18 Jun 2012 22:41:28 +0000 (15:41 -0700)
Fixes a warning.

src/build_log.cc
src/win32port.h

index 720b4b4..4baff42 100644 (file)
@@ -19,6 +19,8 @@
 #include <string.h>
 
 #ifndef _WIN32
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
 #include <unistd.h>
 #endif
 
@@ -325,8 +327,8 @@ BuildLog::LogEntry* BuildLog::LookupByOutput(const string& path) {
 }
 
 void BuildLog::WriteEntry(FILE* f, const LogEntry& entry) {
-  fprintf(f, "%d\t%d\t%ld\t%s\t%llu\n",
-          entry.start_time, entry.end_time, (long) entry.restat_mtime,
+  fprintf(f, "%d\t%d\t%d\t%s\t%" PRIu64 "\n",
+          entry.start_time, entry.end_time, entry.restat_mtime,
           entry.output.c_str(), entry.command_hash);
 }
 
index 4abdb14..1cc8d12 100644 (file)
@@ -1,3 +1,17 @@
+// Copyright 2012 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 #ifndef NINJA_WIN32PORT_H_
 #define NINJA_WIN32PORT_H_
 #pragma once
@@ -6,5 +20,10 @@
 typedef signed long long int64_t;
 typedef unsigned long long uint64_t;
 
+// printf format specifier for uint64_t, from C99.
+#ifndef PRIu64
+#define PRIu64 "I64u"
+#endif
+
 #endif // NINJA_WIN32PORT_H_