* src/carray.h
authorAlfons Hoogervorst <alfons@proteus.demon.nl>
Tue, 21 Oct 2003 20:42:35 +0000 (20:42 +0000)
committerAlfons Hoogervorst <alfons@proteus.demon.nl>
Tue, 21 Oct 2003 20:42:35 +0000 (20:42 +0000)
glib wrappers
* src/carray.c
disable
* src/mailmbox.[ch]
* src/mailmbox_folder.c
* src/mailmbox_parse.c
* src/mailmbox_types.[ch]
%s/uint32_t/guint

ChangeLog.claws
configure.ac
src/carray.c
src/carray.h
src/mailmbox.c
src/mailmbox.h
src/mailmbox_folder.c
src/mailmbox_parse.c
src/mailmbox_types.c
src/mailmbox_types.h

index 97c6384..93af467 100644 (file)
@@ -1,5 +1,18 @@
+2003-10-21 [alfons]    0.9.6claws43
+
+       * src/carray.h
+               glib wrappers
+       * src/carray.c
+               disable
+       * src/mailmbox.[ch]
+       * src/mailmbox_folder.c
+       * src/mailmbox_parse.c
+       * src/mailmbox_types.[ch]
+               %s/uint32_t/guint
+
 2003-10-21 [luke]      0.9.6claws42
-        * src/stock_pixmaps.[ch]
+
+       * src/stock_pixmaps.[ch]
         * src/mimeview.c
         * src/pixmaps/mime_application_octet_stream.xpm         ** REMOVE **
         * src/pixmaps/messageview_text.xpm                      ** REMOVE **
index 7692ef4..b4a053a 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=42
+EXTRA_VERSION=43
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index 8ce2fb2..9031d59 100644 (file)
@@ -33,6 +33,7 @@
  * SUCH DAMAGE.
  */
 
+#if 0
 #include <stdlib.h>
 #include <string.h>
 #include "carray.h"
@@ -137,3 +138,4 @@ void carray_free(carray * array) {
   free(array->array);
   free(array);
 }
+#endif
index 8200452..a91a73c 100644 (file)
 #ifndef CARRAY_H
 #define CARRAY_H
 
+#include <glib.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <inttypes.h>
-
-struct carray_s {
-  void ** array;
-  uint32_t len;
-  uint32_t max;
-};
 
-typedef struct carray_s carray;
+typedef GPtrArray carray;
 
 /* Creates a new array of pointers, with initsize preallocated cells */
-carray *   carray_new(uint32_t initsize);
-
-/* Adds the pointer to data in the array.
-   Returns the index of the pointer in the array or -1 on error */
-int       carray_add(carray * array, void * data, uint32_t * index);
-
-int carray_set_size(carray * array, uint32_t new_size);
-
-/* Removes the cell at this index position. Returns TRUE on success.
-   Order of elements in the array IS changed. */
-int       carray_delete(carray * array, uint32_t indx);
+static inline carray *carray_new(guint initsize)
+{
+       carray *res = g_ptr_array_new();
+       gint n = (gint) initsize;
+       g_assert(n >= 0);
+       g_ptr_array_set_size(res, n);
+       return res;
+}
 
-/* Removes the cell at this index position. Returns TRUE on success.
-   Order of elements in the array IS not changed. */
-int       carray_delete_slow(carray * array, uint32_t indx);
+static inline gint carray_add(carray *array, void *data, guint *index)
+{
+       g_ptr_array_add(array, data);
+       *index = array->len - 1;
+       return 0;
+}
 
-/* remove without decreasing the size of the array */
-int carray_delete_fast(carray * array, uint32_t indx);
+static inline gint carray_set_size(carray *array, guint new_size)
+{
+       gint n = (gint) new_size;
+       g_assert(n >= 0);
+       g_ptr_array_set_size(array, n);
+       return 0;
+}
 
-/* Some of the following routines can be implemented as macros to
-   be faster. If you don't want it, define NO_MACROS */
-#ifdef NO_MACROS
+static inline gint carray_delete(carray *array, guint indx)
+{
+       gint n = (gint) indx;
+       if (n < 0) return -1;
+       if (n >= array->len) return -1;
+       g_ptr_array_remove_index_fast(array, n);
+       return 0;
+}
 
-/* Returns the array itself */
-void **   carray_data(carray);
+static inline gint carray_delete_slow(carray *array, guint indx)
+{
+       gint n = (gint) indx;
+       if (n < 0) return -1;
+       return g_ptr_array_remove_index(array, n) ? 0 : -1;
+}
 
-/* Returns the number of elements in the array */
-int       carray_count(carray);
+static inline gint carray_delete_fast(carray *array, guint indx)
+{
+       gint n = (gint) indx;
+       if (n < 0) return -1;
+       g_ptr_array_index(array, n) = NULL;
+       return 0;
+}
 
-/* Returns the contents of one cell */
-void *    carray_get(carray array, int indx);
+static inline gint carray_free(carray *array)
+{
+       g_ptr_array_free(array, TRUE);
+}
 
-/* Sets the contents of one cell */
-void      carray_set(carray array, int indx, void * value);
+static inline gpointer carray_get(carray *array, guint index)
+{
+       gint n = (gint) index;
+       if (n < 0) return NULL;
+       return g_ptr_array_index(array, n);
+}
 
-#else
-#define   carray_data(a)         (a->array)
-#define   carray_count(a)        (a->len)
-#define   carray_get(a, indx)    (a->array[indx])
-#define   carray_set(a, indx, v) do { a->array[indx]=v; } while(0)
-#endif
+static inline carray_set(carray *array, guint index, gpointer value)
+{
+       gint n = (gint) index;
+       g_assert(n >= 0);
+       g_ptr_array_index(array, n) = value;
+}
 
-void carray_free(carray * array);
+static guint carray_count(carray *array)
+{
+       /* NOTE: We're hosed when len < 0, but that won't occur */
+       return (guint) array->len;
+}
 
 #ifdef __cplusplus
 }
index 3651e04..ce8def9 100644 (file)
@@ -389,7 +389,7 @@ static inline size_t get_fixed_line_size(char * line, size_t length,
 }
 
 static size_t get_fixed_message_size(char * message, size_t size,
-                                    uint32_t uid, int force_no_uid)
+                                    guint uid, int force_no_uid)
 {
   size_t fixed_size;
   size_t cur_token;
@@ -398,7 +398,7 @@ static size_t get_fixed_message_size(char * message, size_t size,
   char * cur;
   int end;
   int r;
-  uint32_t tmp_uid;
+  guint tmp_uid;
 
   cur_token = 0;
 
@@ -498,7 +498,7 @@ static inline char * write_fixed_line(char * str,
 
 static char * write_fixed_message(char * str,
                                  char * message, size_t size,
-                                 uint32_t uid, int force_no_uid)
+                                 guint uid, int force_no_uid)
 {
   size_t fixed_size;
   size_t cur_token;
@@ -585,7 +585,7 @@ mailmbox_append_message_list_no_lock(struct mailmbox_folder * folder,
   int res;
   size_t old_size;
   char * str;
-  uint32_t i;
+  guint i;
   size_t from_size;
   size_t maxuid;
   size_t left;
@@ -784,7 +784,7 @@ mailmbox_append_message(struct mailmbox_folder * folder,
 /* ********************************************************************** */
 
 int mailmbox_fetch_msg_no_lock(struct mailmbox_folder * folder,
-                              uint32_t num, char ** result,
+                              guint num, char ** result,
                               size_t * result_len)
 {
   struct mailmbox_msg_info * info;
@@ -819,7 +819,7 @@ int mailmbox_fetch_msg_no_lock(struct mailmbox_folder * folder,
 }
 
 int mailmbox_fetch_msg_headers_no_lock(struct mailmbox_folder * folder,
-                                      uint32_t num, char ** result,
+                                      guint num, char ** result,
                                       size_t * result_len)
 {
   struct mailmbox_msg_info * info;
@@ -854,7 +854,7 @@ int mailmbox_fetch_msg_headers_no_lock(struct mailmbox_folder * folder,
 }
 
 int mailmbox_fetch_msg(struct mailmbox_folder * folder,
-                      uint32_t num, char ** result,
+                      guint num, char ** result,
                       size_t * result_len)
 {
   int res;
@@ -903,7 +903,7 @@ int mailmbox_fetch_msg(struct mailmbox_folder * folder,
 }
 
 int mailmbox_fetch_msg_headers(struct mailmbox_folder * folder,
-                              uint32_t num, char ** result,
+                              guint num, char ** result,
                               size_t * result_len)
 {
   int res;
@@ -964,7 +964,7 @@ int mailmbox_copy_msg_list(struct mailmbox_folder * dest_folder,
   int r;
   int res;
   carray * append_tab;
-  uint32_t i;
+  guint i;
 
   r = mailmbox_validate_read_lock(src_folder);
   if (r != MAILMBOX_NO_ERROR) {
@@ -982,9 +982,9 @@ int mailmbox_copy_msg_list(struct mailmbox_folder * dest_folder,
     struct mailmbox_append_info * append_info;
     char * data;
     size_t len;
-    uint32_t uid;
+    guint uid;
 
-    uid = * ((uint32_t *) carray_get(tab, i));
+    uid = * ((guint *) carray_get(tab, i));
 
     r = mailmbox_fetch_msg_no_lock(src_folder, uid, &data, &len);
     if (r != MAILMBOX_NO_ERROR) {
@@ -1040,11 +1040,11 @@ int mailmbox_copy_msg_list(struct mailmbox_folder * dest_folder,
 
 int mailmbox_copy_msg(struct mailmbox_folder * dest_folder,
                      struct mailmbox_folder * src_folder,
-                     uint32_t uid)
+                     guint uid)
 {
   carray * tab;
   int res;
-  uint32_t * puid;
+  guint * puid;
   int r;
 
   tab = carray_new(1);
@@ -1092,7 +1092,7 @@ static int mailmbox_expunge_to_file_no_lock(char * dest_filename, int dest_fd,
 
       if (!folder->no_uid) {
        if (!info->written_uid) {
-         uint32_t uid;
+         guint uid;
          
          size += strlen(UID_HEADER " \r\n");
          
@@ -1257,7 +1257,7 @@ int mailmbox_expunge(struct mailmbox_folder * folder)
   return res;
 }
 
-int mailmbox_delete_msg(struct mailmbox_folder * folder, uint32_t uid)
+int mailmbox_delete_msg(struct mailmbox_folder * folder, guint uid)
 {
   struct mailmbox_msg_info * info;
   int res;
@@ -1313,7 +1313,7 @@ int mailmbox_delete_msg(struct mailmbox_folder * folder, uint32_t uid)
 int mailmbox_init(char * filename,
                  int force_readonly,
                  int force_no_uid,
-                 uint32_t default_written_uid,
+                 guint default_written_uid,
                  struct mailmbox_folder ** result_folder)
 {
   struct mailmbox_folder * folder;
index be4a0f0..5130d42 100644 (file)
@@ -17,11 +17,11 @@ mailmbox_append_message(struct mailmbox_folder * folder,
                        char * data, size_t len);
 
 int mailmbox_fetch_msg(struct mailmbox_folder * folder,
-                      uint32_t num, char ** result,
+                      guint num, char ** result,
                       size_t * result_len);
 
 int mailmbox_fetch_msg_headers(struct mailmbox_folder * folder,
-                              uint32_t num, char ** result,
+                              guint num, char ** result,
                               size_t * result_len);
 
 void mailmbox_fetch_result_free(char * msg);
@@ -32,16 +32,16 @@ int mailmbox_copy_msg_list(struct mailmbox_folder * dest_folder,
 
 int mailmbox_copy_msg(struct mailmbox_folder * dest_folder,
                      struct mailmbox_folder * src_folder,
-                     uint32_t uid);
+                     guint uid);
 
 int mailmbox_expunge(struct mailmbox_folder * folder);
 
-int mailmbox_delete_msg(struct mailmbox_folder * folder, uint32_t uid);
+int mailmbox_delete_msg(struct mailmbox_folder * folder, guint uid);
 
 int mailmbox_init(char * filename,
                  int force_readonly,
                  int force_no_uid,
-                 uint32_t default_written_uid,
+                 guint default_written_uid,
                  struct mailmbox_folder ** result_folder);
 
 void mailmbox_done(struct mailmbox_folder * folder);
@@ -87,11 +87,11 @@ int mailmbox_validate_read_lock(struct mailmbox_folder * folder);
 /* fetch message */
 
 int mailmbox_fetch_msg_no_lock(struct mailmbox_folder * folder,
-                              uint32_t num, char ** result,
+                              guint num, char ** result,
                               size_t * result_len);
 
 int mailmbox_fetch_msg_headers_no_lock(struct mailmbox_folder * folder,
-                                      uint32_t num, char ** result,
+                                      guint num, char ** result,
                                       size_t * result_len);
 
 /* append message */
index 3dc5af9..783b52b 100644 (file)
@@ -171,7 +171,7 @@ typedef struct _MBOXFolderItem      MBOXFolderItem;
 struct _MBOXFolderItem
 {
        FolderItem item;
-        uint32_t old_max_uid;
+        guint old_max_uid;
         struct mailmbox_folder * mbox;
 };
 
@@ -188,12 +188,12 @@ static FolderItem *mailmbox_folder_item_new(Folder *folder)
 
 #define MAX_UID_FILE "max-uid"
 
-void read_max_uid_value(FolderItem *item, uint32_t * pmax_uid)
+void read_max_uid_value(FolderItem *item, guint * pmax_uid)
 {
         gchar * path;
         gchar * file;
         FILE * f;
-        uint32_t max_uid;
+        guint max_uid;
         size_t r;
         
        path = folder_item_get_path(item);
@@ -215,7 +215,7 @@ void read_max_uid_value(FolderItem *item, uint32_t * pmax_uid)
         * pmax_uid = max_uid;
 }
 
-void write_max_uid_value(FolderItem *item, uint32_t max_uid)
+void write_max_uid_value(FolderItem *item, guint max_uid)
 {
         gchar * path;
         gchar * file;
@@ -313,7 +313,7 @@ static int mailmbox_item_sync(FolderItem *_item, int validate_uid)
         int r;
 
         if (item->mbox == NULL) {
-                uint32_t written_uid;
+                guint written_uid;
                 gchar * path;
                 
                 written_uid = 0;
@@ -368,7 +368,7 @@ static gint mailmbox_get_num_list(Folder *folder, FolderItem *item,
     GSList **list, gboolean *old_uids_valid)
 {
        gint nummsgs = 0;
-        uint32_t i;
+        guint i;
         struct mailmbox_folder * mbox;
 
        g_return_val_if_fail(item != NULL, -1);
@@ -451,7 +451,7 @@ static gchar *s_mailmbox_fetch_msg(Folder *folder, FolderItem *item, gint num)
         return NULL;
 }
 
-static MsgInfo *mailmbox_parse_msg(uint32_t uid,
+static MsgInfo *mailmbox_parse_msg(guint uid,
     char * data, size_t len, FolderItem *item)
 {
        MsgInfo *msginfo;
@@ -763,7 +763,7 @@ static gint mailmbox_remove_all_msg(Folder *folder, FolderItem *item)
 {
         struct mailmbox_folder * mbox;
         int r;
-        uint32_t i;
+        guint i;
         
        g_return_val_if_fail(item != NULL, -1);
         
index 57c88b2..aa63f42 100644 (file)
@@ -223,7 +223,7 @@ int mailimf_ignore_field_parse(char * message, size_t length,
 static inline int
 mailmbox_fields_parse(char * str, size_t length,
                      size_t * index,
-                     uint32_t * puid,
+                     guint * puid,
                      size_t * phlen)
 {
   size_t cur_token;
@@ -300,7 +300,7 @@ mailmbox_single_parse(char * str, size_t length,
                      size_t * pbody_len,
                      size_t * psize,
                      size_t * ppadding,
-                     uint32_t * puid)
+                     guint * puid)
 {
   size_t cur_token;
   size_t start;
@@ -311,7 +311,7 @@ mailmbox_single_parse(char * str, size_t length,
   size_t end;
   size_t next;
   size_t message_length;
-  uint32_t uid;
+  guint uid;
   int r;
 #if 0
   int in_mail_data;
@@ -581,14 +581,14 @@ mailmbox_parse_additionnal(struct mailmbox_folder * folder,
   size_t body_len;
   size_t size;
   size_t padding;
-  uint32_t uid;
+  guint uid;
   int r;
   int res;
 
-  uint32_t max_uid;
-  uint32_t first_index;
-  uint32_t i;
-  uint32_t j;
+  guint max_uid;
+  guint first_index;
+  guint i;
+  guint j;
 
   cur_token = * index;
 
@@ -742,7 +742,7 @@ mailmbox_parse_additionnal(struct mailmbox_folder * folder,
 
 static void flush_uid(struct mailmbox_folder * folder)
 {
-  uint32_t i;
+  guint i;
   
   for(i = 0 ; i < folder->tab->len ; i++) {
     struct mailmbox_msg_info * info;
index fc79063..e336259 100644 (file)
@@ -53,7 +53,7 @@ int mailmbox_msg_info_update(struct mailmbox_folder * folder,
                             size_t headers, size_t headers_len,
                             size_t body, size_t body_len,
                             size_t size, size_t padding,
-                            uint32_t uid)
+                            guint uid)
 {
   struct mailmbox_msg_info * info;
   int res;
@@ -65,7 +65,7 @@ int mailmbox_msg_info_update(struct mailmbox_folder * folder,
   key.len = sizeof(uid);
   r = chash_get(folder->hash, &key, &data);
   if (r < 0) {
-    uint32_t index;
+    guint index;
 
     info = mailmbox_msg_info_new(start, start_len, headers, headers_len,
                                 body, body_len, size, padding, uid);
@@ -126,7 +126,7 @@ mailmbox_msg_info_new(size_t start, size_t start_len,
                      size_t headers, size_t headers_len,
                      size_t body, size_t body_len,
                      size_t size, size_t padding,
-                     uint32_t uid)
+                     guint uid)
 {
   struct mailmbox_msg_info * info;
 
@@ -167,7 +167,7 @@ void mailmbox_msg_info_free(struct mailmbox_msg_info * info)
 
 #if 0
 struct mailmbox_msg_env *
-mailmbox_msg_env_new(uint32_t index, struct mailimf_fields * fields)
+mailmbox_msg_env_new(guint index, struct mailimf_fields * fields)
 {
   struct mailmbox_msg_env * msg_env;
 
@@ -279,7 +279,7 @@ struct mailmbox_folder * mailmbox_folder_new(char * filename)
 
 void mailmbox_folder_free(struct mailmbox_folder * folder)
 {
-  uint32_t i;
+  guint i;
 
   for(i = 0 ; i < folder->tab->len ; i++) {
     struct mailmbox_msg_info * info;
index 9032bed..a2723d1 100644 (file)
@@ -70,13 +70,13 @@ struct mailmbox_folder {
   int no_uid;
 
   int changed;
-  uint32_t deleted_count;
+  guint deleted_count;
   
   char * mapping;
   size_t mapping_size;
 
-  uint32_t written_uid;
-  uint32_t max_uid;
+  guint written_uid;
+  guint max_uid;
 
   chash * hash;
   carray * tab;
@@ -87,8 +87,8 @@ void mailmbox_folder_free(struct mailmbox_folder * folder);
 
 
 struct mailmbox_msg_info {
-  uint32_t index;
-  uint32_t uid;
+  guint index;
+  guint uid;
   int written_uid;
   int deleted;
 
@@ -112,29 +112,17 @@ int mailmbox_msg_info_update(struct mailmbox_folder * folder,
                             size_t headers, size_t headers_len,
                             size_t body, size_t body_len,
                             size_t size, size_t padding,
-                            uint32_t uid);
+                            guint uid);
 
 struct mailmbox_msg_info *
 mailmbox_msg_info_new(size_t start, size_t start_len,
                      size_t headers, size_t headers_len,
                      size_t body, size_t body_len,
                      size_t size, size_t padding,
-                     uint32_t uid);
+                     guint uid);
 
 void mailmbox_msg_info_free(struct mailmbox_msg_info * info);
 
-#if 0
-struct mailmbox_msg_env {
-  uint32_t index;
-  struct mailimf_fields * fields;
-};
-
-struct mailmbox_msg_env *
-mailmbox_msg_env_new(uint32_t index, struct mailimf_fields * fields);
-
-void mailmbox_msg_env_free(struct mailmbox_msg_env * msg_env);
-#endif
-
 struct mailmbox_append_info {
   char * message;
   size_t size;