Wrap file I/O to claws_* to benefit from custom locking when
[claws.git] / src / common / claws_io.h
index e3e0e0ce5b6808455ddcd90d21b80deb908a2918..35edae381be83abf95d2ea19c29fcaffcc0b496c 100644 (file)
 #ifndef __CLAWS_IO_H__
 #define __CLAWS_IO_H__
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#include "claws-features.h"
+#endif
+
+#include <stdio.h>
+
+#if HAVE_FGETS_UNLOCKED
+#define claws_fgets fgets_unlocked
+#define claws_fgetc fgetc_unlocked
+#define claws_fputs fputs_unlocked
+#define claws_fputc fputc_unlocked
+#define claws_fread fread_unlocked
+#define claws_fwrite fwrite_unlocked
+#define claws_feof feof_unlocked
+#define claws_ferror ferror_unlocked
+
+FILE *claws_fopen(const char *file, const char *mode);
+FILE *claws_fdopen(int fd, const char *mode);
+int claws_fclose(FILE *fp);
+int claws_safe_fclose(FILE *fp);
+
+#else
+
+#define claws_fgets fgets
+#define claws_fgetc fgetc
+#define claws_fputs fputs
+#define claws_fputc fputc
+#define claws_fread fread
+#define claws_fwrite fwrite
+#define claws_feof feof
+#define claws_ferror ferror
+#define claws_fopen g_fopen
+#define claws_fdopen fdopen
+#define claws_fclose fclose
+#define claws_safe_fclose safe_fclose
+#endif
+
 int safe_fclose(FILE *fp);
 
 #endif