diff options
-rw-r--r-- | e-util/ChangeLog | 8 | ||||
-rw-r--r-- | e-util/e-pilot-map.c | 23 | ||||
-rw-r--r-- | e-util/e-pilot-map.h | 4 |
3 files changed, 31 insertions, 4 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog index c30b28cbac..0d7e4d9da7 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,11 @@ +2001-10-27 JP Rosevear <jpr@ximian.com> + + * e-pilot-map.h: update proto + + * e-pilot-map.c (e_pilot_map_lookup_pid): touch the nodes if + indicated and found + (e_pilot_map_lookup_uid): ditto + 2001-10-26 JP Rosevear <jpr@ximian.com> * e-pilot-map.c (real_e_pilot_map_insert): take an extra param on diff --git a/e-util/e-pilot-map.c b/e-util/e-pilot-map.c index 92daa01637..cd6d953492 100644 --- a/e-util/e-pilot-map.c +++ b/e-util/e-pilot-map.c @@ -258,7 +258,7 @@ e_pilot_map_remove_by_uid (EPilotMap *map, const char *uid) guint32 -e_pilot_map_lookup_pid (EPilotMap *map, const char *uid) +e_pilot_map_lookup_pid (EPilotMap *map, const char *uid, gboolean touch) { EPilotMapUidNode *unode = NULL; @@ -270,11 +270,20 @@ e_pilot_map_lookup_pid (EPilotMap *map, const char *uid) if (unode == NULL) return 0; + if (touch) { + EPilotMapPidNode *pnode = NULL; + + pnode = g_hash_table_lookup (map->pid_map, &unode->pid); + if (pnode != NULL) + pnode->touched = TRUE; + unode->touched = TRUE; + } + return unode->pid; } const char * -e_pilot_map_lookup_uid (EPilotMap *map, guint32 pid) +e_pilot_map_lookup_uid (EPilotMap *map, guint32 pid, gboolean touch) { EPilotMapPidNode *pnode = NULL; @@ -285,6 +294,16 @@ e_pilot_map_lookup_uid (EPilotMap *map, guint32 pid) if (pnode == NULL) return NULL; + if (touch) { + EPilotMapUidNode *unode = NULL; + + unode = g_hash_table_lookup (map->uid_map, pnode->uid); + g_assert (unode != NULL); + + unode->touched = TRUE; + pnode->touched = TRUE; + } + return pnode->uid; } diff --git a/e-util/e-pilot-map.h b/e-util/e-pilot-map.h index 28f9223070..49e38e7fb2 100644 --- a/e-util/e-pilot-map.h +++ b/e-util/e-pilot-map.h @@ -45,8 +45,8 @@ void e_pilot_map_insert (EPilotMap *map, guint32 pid, const char *uid, gboolean void e_pilot_map_remove_by_pid (EPilotMap *map, guint32 pid); void e_pilot_map_remove_by_uid (EPilotMap *map, const char *uid); -guint32 e_pilot_map_lookup_pid (EPilotMap *map, const char *uid); -const char * e_pilot_map_lookup_uid (EPilotMap *map, guint32 pid); +guint32 e_pilot_map_lookup_pid (EPilotMap *map, const char *uid, gboolean touch); +const char * e_pilot_map_lookup_uid (EPilotMap *map, guint32 pid, gboolean touch); int e_pilot_map_read (const char *filename, EPilotMap **map); int e_pilot_map_write (const char *filename, EPilotMap *map); |