#include <cinttypes>
#include <limits>
-#define LOG_INF(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
-#define LOG_WRN(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
-#define LOG_ERR(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
-#define LOG_DBG(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
+#if defined(LLAVA_LOG_OFF)
+# define LOG_INF(...)
+# define LOG_WRN(...)
+# define LOG_ERR(...)
+# define LOG_DBG(...)
+#else // defined(LLAVA_LOG_OFF)
+# define LOG_INF(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
+# define LOG_WRN(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
+# define LOG_ERR(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
+# define LOG_DBG(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
+#endif // defined(LLAVA_LOG_OFF)
//#define CLIP_DEBUG_FUNCTIONS
#include <limits>
#include <vector>
-#define die(msg) do { fputs("error: " msg "\n", stderr); exit(1); } while (0)
-#define die_fmt(fmt, ...) do { fprintf(stderr, "error: " fmt "\n", __VA_ARGS__); exit(1); } while (0)
-
-#define LOG_INF(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
-#define LOG_WRN(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
-#define LOG_ERR(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
-#define LOG_DBG(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
+#if defined(LLAVA_LOG_OFF)
+# define LOG_INF(...)
+# define LOG_WRN(...)
+# define LOG_ERR(...)
+# define LOG_DBG(...)
+#else // defined(LLAVA_LOG_OFF)
+# define LOG_INF(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
+# define LOG_WRN(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
+# define LOG_ERR(...) do { fprintf(stderr, __VA_ARGS__); } while (0)
+# define LOG_DBG(...) do { fprintf(stdout, __VA_ARGS__); } while (0)
+#endif // defined(LLAVA_LOG_OFF)
// RGB uint8 image
struct clip_image_u8 {
errno = 0;
size_t ret = fread(buffer, 1, fileSize, file); // Read the file into the buffer
if (ferror(file)) {
- die_fmt("read error: %s", strerror(errno));
+ LOG_ERR("read error: %s", strerror(errno));
+ free(buffer);
+ fclose(file);
+ return false;
}
if (ret != (size_t) fileSize) {
- die("unexpectedly reached end of file");
+ LOG_ERR("unexpectedly reached end of file");
+ free(buffer);
+ fclose(file);
+ return false;
}
fclose(file); // Close the file