Fix warnings.

This commit is contained in:
Victor Zverovich 2014-05-06 06:58:32 -07:00
parent fb4ccac951
commit e1c86f0b5d
2 changed files with 18 additions and 5 deletions

View File

@ -38,6 +38,14 @@
// Check if format.h compiles with windows.h included.
#ifdef _WIN32
# include <windows.h>
// Fix MSVC warning about "unsafe" fopen.
FILE *FOpen(const char *filename, const char *mode) {
FILE *f = 0;
errno = fopen_s(&f, filename, mode);
return f;
}
#define fopen FOpen
#endif
#include "format.h"
@ -1585,12 +1593,15 @@ TEST(FormatterTest, FormatExamples) {
EXPECT_EQ("0123456789", s);
}
EXPECT_THROW({
const char *filename = "nonexistent";
FILE *f = std::fopen(filename, "r");
const char *filename = "nonexistent";
FILE *ftest = fopen(filename, "r");
int error_code = errno;
EXPECT_TRUE(ftest == 0);
EXPECT_SYSTEM_ERROR({
FILE *f = fopen(filename, "r");
if (!f)
fmt::ThrowSystemError(errno, "Cannot open file '{}'") << filename;
}, fmt::SystemError);
}, error_code, "Cannot open file 'nonexistent'");
}
TEST(FormatterTest, StrNamespace) {

View File

@ -35,6 +35,7 @@
#ifdef _WIN32
# include <crtdbg.h> // for _CrtSetReportMode
# define close _close
#endif // _WIN32
namespace {
@ -258,7 +259,8 @@ bool IsClosed(int fd) {
// Attempts to read count characters from a file.
std::string Read(File &f, std::size_t count) {
std::string buffer(count, '\0');
std::streamsize offset = 0, n = 0;
std::streamsize n = 0;
std::size_t offset = 0;
do {
n = f.read(&buffer[offset], count - offset);
offset += n;