From 663815ead8feca5188b9a6e06316421303f06851 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 7 Sep 2010 20:21:19 +0200 Subject: playlist_vector: update_or_add() returns bool False if the vector was not modified. --- src/playlist_vector.c | 7 ++++++- src/playlist_vector.h | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/playlist_vector.c b/src/playlist_vector.c index 80b70a96c..7c1765a98 100644 --- a/src/playlist_vector.c +++ b/src/playlist_vector.c @@ -93,16 +93,21 @@ playlist_vector_add(struct playlist_vector *pv, pv->head = pm; } -void +bool playlist_vector_update_or_add(struct playlist_vector *pv, const char *name, time_t mtime) { struct playlist_metadata **pmp = playlist_vector_find_p(pv, name); if (pmp != NULL) { struct playlist_metadata *pm = *pmp; + if (mtime == pm->mtime) + return false; + pm->mtime = mtime; } else playlist_vector_add(pv, name, mtime); + + return true; } bool diff --git a/src/playlist_vector.h b/src/playlist_vector.h index a2ba306d3..566de5f00 100644 --- a/src/playlist_vector.h +++ b/src/playlist_vector.h @@ -58,7 +58,10 @@ void playlist_vector_add(struct playlist_vector *pv, const char *name, time_t mtime); -void +/** + * @return true if the vector or one of its items was modified + */ +bool playlist_vector_update_or_add(struct playlist_vector *pv, const char *name, time_t mtime); -- cgit v1.2.3