Simplify WriteFile() usage under windows
This commit is contained in:
		@@ -151,17 +151,12 @@ void SPDLOG_INLINE wincolor_sink<ConsoleMutex>::write_to_file_(const memory_buf_
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    DWORD total_written = 0;
 | 
			
		||||
    do
 | 
			
		||||
    DWORD bytes_written = 0;
 | 
			
		||||
    bool ok = ::WriteFile(out_handle_, formatted.data(), size, &bytes_written, nullptr) != 0;
 | 
			
		||||
    if (!ok)
 | 
			
		||||
    {
 | 
			
		||||
        DWORD bytes_written = 0;
 | 
			
		||||
        bool ok = ::WriteFile(out_handle_, formatted.data() + total_written, size - total_written, &bytes_written, nullptr) != 0;
 | 
			
		||||
        if (!ok || bytes_written == 0)
 | 
			
		||||
        {
 | 
			
		||||
            throw_spdlog_ex("wincolor_sink: write_to_file_ failed. GetLastError(): " + std::to_string(::GetLastError()));
 | 
			
		||||
        }
 | 
			
		||||
        total_written += bytes_written;
 | 
			
		||||
    } while (total_written < size);
 | 
			
		||||
        throw_spdlog_ex("wincolor_sink: write_to_file_ failed. GetLastError(): " + std::to_string(::GetLastError()));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// wincolor_stdout_sink
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user