Network endian for mark and cache files
authorColin Leroy <colin@colino.net>
Wed, 13 Nov 2002 01:26:21 +0000 (01:26 +0000)
committerColin Leroy <colin@colino.net>
Wed, 13 Nov 2002 01:26:21 +0000 (01:26 +0000)
ChangeLog.claws
configure.in
src/defs.h
src/msgcache.c
src/procmsg.c
src/procmsg.h

index 4dba1fb..d46c453 100644 (file)
@@ -1,3 +1,12 @@
+2002-11-13 [colin]     0.8.5claws136
+
+       * src/msgcache.c
+               Remove duplicated code
+       * src/defs.h
+               Bumped CACHE_VERSION and MARK_VERSION
+       * src/procmsg.[ch]
+               Network endian for cache and mark files
+
 2002-11-12 [colin]     0.8.5claws135
 
        * src/inc.c
index fee146f..f56791d 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws135
+EXTRA_VERSION=claws136
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 771cb53..08e97fc 100644 (file)
@@ -66,8 +66,8 @@
 #define FOLDER_LIST            "folderlist.xml"
 #define CACHE_FILE             ".sylpheed_cache"
 #define MARK_FILE              ".sylpheed_mark"
-#define CACHE_VERSION          20
-#define MARK_VERSION           2
+#define CACHE_VERSION          21
+#define MARK_VERSION           3
 
 #define DEFAULT_SIGNATURE      ".signature"
 #define DEFAULT_INC_PATH       "/usr/bin/mh/inc"
index 94a6b9b..6ee5bf4 100644 (file)
@@ -305,23 +305,6 @@ void msgcache_read_mark(MsgCache *cache, const gchar *mark_file)
        fclose(fp);
 }
 
-#define WRITE_CACHE_DATA_INT(n, fp) \
-       fwrite(&n, sizeof(n), 1, fp)
-
-#define WRITE_CACHE_DATA(data, fp) \
-{ \
-       gint len; \
- \
-       if (data == NULL || (len = strlen(data)) == 0) { \
-               len = 0; \
-               WRITE_CACHE_DATA_INT(len, fp); \
-       } else { \
-               len = strlen(data); \
-               WRITE_CACHE_DATA_INT(len, fp); \
-               fwrite(data, len, 1, fp); \
-       } \
-}
-
 void msgcache_write_cache(MsgInfo *msginfo, FILE *fp)
 {
        MsgTmpFlags flags = msginfo->flags.tmp_flags & MSG_CACHED_FLAG_MASK;
index b47af18..74bb008 100644 (file)
@@ -106,6 +106,7 @@ static gint procmsg_read_cache_data_str(FILE *fp, gchar **str)
        size_t len;
 
        if (fread(&len, sizeof(len), 1, fp) == 1) {
+               len = me2ne_32(len);
                if (len < 0)
                        ret = -1;
                else {
@@ -155,6 +156,8 @@ static gint procmsg_read_cache_data_str(FILE *fp, gchar **str)
                g_warning(_("Cache data is corrupted\n")); \
                procmsg_msginfo_free(msginfo); \
                break; \
+       } else { \
+               n = me2ne_32(n); \
        } \
 }
 
index cfbff25..01a6b36 100644 (file)
@@ -143,9 +143,20 @@ typedef enum
 #define MSG_IS_IGNORE_THREAD(msg)      (((msg).perm_flags & MSG_IGNORE_THREAD) != 0)
 #define MSG_IS_RETRCPT_PENDING(msg)    (((msg).perm_flags & MSG_RETRCPT_PENDING) != 0)
 
+/* code from bits/byteswap.h (C) 1997, 1998 Free Software Foundation, Inc. */
+#ifdef BIG_ENDIAN_HOST
+#define me2ne_32(x) (x)
+#else
+#define me2ne_32(x) \
+     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
+      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
 
-#define WRITE_CACHE_DATA_INT(n, fp) \
-       fwrite(&n, sizeof(n), 1, fp)
+#endif
+
+#define WRITE_CACHE_DATA_INT(n, fp) { \
+       int i = n; i = me2ne_32(i); \
+       fwrite(&i, sizeof(n), 1, fp); \
+}
 
 #define WRITE_CACHE_DATA(data, fp) \
 { \