From: Enlightenment C. <no...@cv...> - 2006-12-31 10:07:15
|
Enlightenment CVS committal Author : englebass Project : e17 Module : apps/e Dir : e17/apps/e/src/bin Modified Files: e_gadcon.c Log Message: Better check for unique id. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_gadcon.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -3 -r1.60 -r1.61 --- e_gadcon.c 30 Dec 2006 23:32:24 -0000 1.60 +++ e_gadcon.c 31 Dec 2006 10:07:12 -0000 1.61 @@ -655,6 +655,7 @@ E_Config_Gadcon_Client *cf_gcc; int id = 0; char buf[256]; + int ok; E_OBJECT_CHECK_RETURN(gc, NULL); E_OBJECT_TYPE_CHECK_RETURN(gc, E_GADCON_TYPE, NULL); @@ -662,12 +663,18 @@ cf_gc = e_gadcon_config_get(gc->name, gc->id); if (!cf_gc) return NULL; - for (l = cf_gc->clients; l; l = l->next) + do { - cf_gcc = l->data; - if (!strcmp(name, cf_gcc->name)) id++; + ok = 1; + snprintf(buf, sizeof(buf), "%s.%s.%i", cf_gc->id, name, id); + for (l = cf_gc->clients; l; l = l->next) + { + cf_gcc = l->data; + if (!strcmp(buf, cf_gcc->id)) ok = 0; + } + id++; } - snprintf(buf, sizeof(buf), "%s.%s.%i", cf_gc->id, name, id); + while (!ok); cf_gcc = E_NEW(E_Config_Gadcon_Client, 1); if (!cf_gcc) return NULL; |