aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/ChangeLog8
-rw-r--r--e-util/e-pilot-map.c23
-rw-r--r--e-util/e-pilot-map.h4
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);