Enlightenment CVS committal Author : atmosphere Project : e17 Module : apps/entrance
Dir : e17/apps/entrance/src/client Modified Files: entrance_config.c entrance_config.h Log Message: remember n users, or don't remember at allis optional via the system config =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entrance/src/client/entrance_config.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- entrance_config.c 3 Mar 2004 16:13:10 -0000 1.16 +++ entrance_config.c 3 Mar 2004 19:31:37 -0000 1.17 @@ -110,6 +110,10 @@ { syslog(LOG_WARNING, "Warning: No users found."); } + if (!e_db_int_get(db, "/entrance/user/remember", &e->users.remember)) + e->users.remember = 1; + if (!e_db_int_get(db, "/entrance/user/remember_n", &e->users.remember_n)) + e->users.remember_n = 5; /* session hash and font list */ if (e_db_int_get(db, "/entrance/session/count", &num_session)) @@ -257,25 +261,41 @@ /** * entrance_config_user_list_write : Write out the possibly reordered user - * list into the config db. This still needs fixing. - * FIXME: Nuke all old keys from the db relating to /entrance/user - * FIXME: Check another config parameter whether we should write or not - * FIXME: Check another config parameter so we only write n user + * list into the config db. * @e - a pointer to the config struct we want to write the user list for */ void entrance_config_user_list_write(Entrance_Config * e) { int i = 0; + int count = 0; Evas_List *l = NULL; E_DB_File *db = NULL; Entrance_User *eu = NULL; + char **old_keys = NULL; char file[PATH_MAX], buf[PATH_MAX]; snprintf(file, PATH_MAX, "%s/entrance_config.db", PACKAGE_CFG_DIR); + if (!e->users.remember) + return; if ((db = e_db_open(file))) { - for (l = e->users.keys; l; l = l->next, i++) + if ((old_keys = e_db_match_keys(db, "/entrance/user/", &count))) + { + for (i = 0; i < count; i++) + { + e_db_data_del(db, old_keys[i]); + free(old_keys[i]); + } + free(old_keys); + e_db_close(db); + e_db_flush(); + } + } + if ((db = e_db_open(file))) + { + for (i = 0, l = e->users.keys; l && i < e->users.remember_n; + l = l->next, i++) { if ((eu = (Entrance_User *) l->data)) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/entrance/src/client/entrance_config.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- entrance_config.h 3 Mar 2004 18:16:15 -0000 1.11 +++ entrance_config.h 3 Mar 2004 19:31:37 -0000 1.12 @@ -79,6 +79,8 @@ */ struct { + int remember; + int remember_n; Evas_Hash *hash; Evas_List *keys; } users; ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs