summaryrefslogtreecommitdiff
path: root/graphics/gtkam/patches/patch-ab
blob: 78efe7d04b35466ee8eecadce9abd76f990a3a8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
$NetBSD: patch-ab,v 1.3 2007/01/30 16:33:59 joerg Exp $

--- src/gtkam-delete.c.orig	2007-01-30 14:51:30.000000000 +0000
+++ src/gtkam-delete.c
@@ -170,16 +170,25 @@ delete_all (GtkamDelete *delete, GtkamCa
 {
 	GtkWidget *d, *s;
 	int result, r1, r2;
-	CameraList l1, l2;
+	CameraList *l1, *l2;
 	const char *name;
 	GtkamDeleteAllDeletedData add;
 	GtkamDeleteFileDeletedData fdd;
 
+	result = gp_list_new(&l1);
+	if (result < GP_OK)
+		return FALSE;
+	result = gp_list_new(&l2);
+	if (result < GP_OK) {
+		gp_list_free(l1);
+		return FALSE;
+	}
+
 	s = gtkam_status_new (_("Deleting all files in '%s'..."), folder);
 	gtk_widget_show (s);
 	gtk_box_pack_start (GTK_BOX (GTK_DIALOG (delete)->vbox), s,
 			    FALSE, FALSE, 0);
-	r1 = gp_camera_folder_list_files (camera->camera, folder, &l1, NULL);
+	r1 = gp_camera_folder_list_files (camera->camera, folder, l1, NULL);
 	result = gp_camera_folder_delete_all (camera->camera, folder,
 					GTKAM_STATUS (s)->context->context);
 	switch (result) {
@@ -189,9 +198,13 @@ delete_all (GtkamDelete *delete, GtkamCa
 		g_signal_emit (G_OBJECT (delete),
 			signals[ALL_DELETED], 0, &add);
 		gtk_object_destroy (GTK_OBJECT (s));
+		gp_list_free(l1);
+		gp_list_free(l2);
 		return (TRUE);
 	case GP_ERROR_CANCEL:
 		gtk_object_destroy (GTK_OBJECT (s));
+		gp_list_free(l1);
+		gp_list_free(l2);
 		return (TRUE);
 	default:
 		d = gtkam_error_new (result, GTKAM_STATUS (s)->context,
@@ -202,11 +215,11 @@ delete_all (GtkamDelete *delete, GtkamCa
 
 		/* See what files have been deleted */
 		r2 = gp_camera_folder_list_files (camera->camera, folder,
-						  &l2, NULL);
+						  l2, NULL);
 		if ((r1 == GP_OK) && (r2 == GP_OK)) {
-			for (r1 = 0; r1 < gp_list_count (&l1); r1++) {
-				gp_list_get_name (&l1, r1, &name);
-				if (gp_list_lookup_name (&l2, name) >= 0) {
+			for (r1 = 0; r1 < gp_list_count (l1); r1++) {
+				gp_list_get_name (l1, r1, &name);
+				if (gp_list_lookup_name (l2, name) >= 0) {
 					fdd.camera = camera;
 					fdd.folder = folder;
 					fdd.name = name;
@@ -216,6 +229,8 @@ delete_all (GtkamDelete *delete, GtkamCa
 				}
 			}
 		}
+		gp_list_free(l1);
+		gp_list_free(l2);
 		return (FALSE);
 	}
 }