Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_tiff_logger.h
Go to the documentation of this file.
1/*
2 * This file is part of Krita
3 *
4 * SPDX-FileCopyrightText: 2022 L. E. Segovia <amy@amyspark.me>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9#ifndef KIS_TIFF_LOGGER_H
10#define KIS_TIFF_LOGGER_H
11
12#include <QString>
13
14#include <cstdio>
15
16#include <kis_debug.h>
17
18QString formatVarArgs(const char *fmt, va_list args)
19{
20 int size = 4096;
21 QByteArray buf(size, 0);
22#ifdef _WIN32
23 int n = vsnprintf_s(buf.data(), size, size - 1, fmt, args);
24#else
25 int n = vsnprintf(buf.data(), size, fmt, args);
26#endif
27 while (n >= size || buf.at(size - 2)) {
28 size *= 2;
29 buf.resize(size);
30 buf[size - 1] = 0;
31 buf[size - 2] = 0;
32#ifdef _WIN32
33 n = vsnprintf_s(buf.data(), size, size - 1, fmt, args);
34#else
35 n = vsnprintf(buf.data(), size, fmt, args);
36#endif
37 }
38
39 if (n) {
40 return {buf};
41 } else {
42 return {};
43 }
44}
45
46void KisTiffErrorHandler(const char *module, const char *fmt, va_list args)
47{
48 QString msg("%1: %2");
49
50 errFile << msg.arg(module, formatVarArgs(fmt, args));
51}
52
53void KisTiffWarningHandler(const char *module, const char *fmt, va_list args)
54{
55 QString msg("%1: %2");
56
57 warnFile << msg.arg(module, formatVarArgs(fmt, args));
58}
59
60#endif
#define warnFile
Definition kis_debug.h:95
#define errFile
Definition kis_debug.h:115
QString formatVarArgs(const char *fmt, va_list args)
void KisTiffWarningHandler(const char *module, const char *fmt, va_list args)
void KisTiffErrorHandler(const char *module, const char *fmt, va_list args)