]> git.deb.at Git - pkg/abook.git/blobdiff - database.c
Add fix_spelling_error_in_binary.diff patch
[pkg/abook.git] / database.c
index b38dbe0947aad033b3b5269e7a01618749b9e7dc..7dd4a9ad315289742fd213374d7acaa7457106b0 100644 (file)
@@ -58,7 +58,7 @@ abook_field standard_fields[] = {
        {"url",         N_("URL"),              FIELD_STRING}, /* URL */
        {"notes",       N_("Notes"),            FIELD_STRING}, /* NOTES */
        {"anniversary", N_("Anniversary day"),  FIELD_DATE},   /* ANNIVERSARY */
-       {"groups",      N_("Groups"),           FIELD_LIST}, /* GROUPS */
+       {"groups",      N_("Groups"),           FIELD_LIST},   /* GROUPS */
        {0} /* ITEM_FIELDS */
 };
 
@@ -557,6 +557,33 @@ void merge_selected_items()
        select_none();
 }
 
+void remove_duplicates()
+{
+       int i,j,k;
+       char *tmpj;
+       if(list_is_empty())
+               return;
+
+       /* Scan from the last one */
+       for(j = LAST_ITEM - 1; j >= 0; j--) {
+               tmpj = db_name_get(j);
+               for(i = LAST_ITEM; i > j; i--)
+                       /* Check name and merge if dups */
+                       if (0 == strcmp(tmpj,db_name_get(i))) {
+                               item_merge(database[j],database[i]);
+                               if (curitem == i) curitem--;
+                               for(k = i; k < LAST_ITEM; k++) {
+                                       item_copy(database[k], database[k + 1]);
+                               }
+                               item_free(&database[LAST_ITEM]);
+                               items--;
+                       }
+       }
+
+       adjust_list_capacity();
+}
+
+
 char *
 get_surname(char *s)
 {