Hi Jeffrey!

The CVS head/1.5.3 distribution loop in hal_device_added() is flawed
since "j" is only initialized to 0 in the outer loop (over i) and
never set back to 0. This means that only the first item in devices[]
(which happens to be the most popular "block" capability) is executed,
it does not work for all subsequent loops. 

Doing 1.5 loops in one for() construct is also a bit confusing, so I cleaned
this up a little and made it work for all devices[] entries. (Patch attached)

Thanks for considering,

Martin
-- 
Martin Pitt        http://www.piware.de
Ubuntu Developer   http://www.ubuntu.com
Debian Developer   http://www.debian.org

In a world without walls and fences, who needs Windows and Gates?
diff -ruN gnome-volume-manager-1.5.3-old/src/manager.c 
gnome-volume-manager-1.5.3/src/manager.c
--- gnome-volume-manager-1.5.3-old/src/manager.c        2005-10-19 
12:01:11.000000000 +0200
+++ gnome-volume-manager-1.5.3/src/manager.c    2005-10-19 12:02:14.000000000 
+0200
@@ -1890,8 +1890,9 @@
        
        qsort (capabilities, n, sizeof (char *), strptrcmp);
        
-       for (i = 0, j = 0; i < G_N_ELEMENTS (devices) && j < n; i++) {
+       for (i = 0; i < G_N_ELEMENTS (devices); i++) {
                int cmp = -1;
+                j = 0;
 
                while (j < n && (cmp = strcmp (capabilities[j], 
devices[i].capability)) < 0)
                        j++;
@@ -1899,7 +1900,6 @@
                if (cmp == 0) {
                        if (devices[i].handler (udi, capabilities[j]))
                                break;
-                       j++;
                }
        }
        

Attachment: signature.asc
Description: Digital signature

_______________________________________________
utopia-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/utopia-list

Reply via email to