chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
document new choose screen properly
[disorder]
/
lib
/
trackdb.c
diff --git
a/lib/trackdb.c
b/lib/trackdb.c
index 53d7cf311239f056d6c25953ad9e0d5284063edb..54016bae0c8bcaf2fff04784ce00b3c3068abaef 100644
(file)
--- a/
lib/trackdb.c
+++ b/
lib/trackdb.c
@@
-1014,7
+1014,8
@@
int trackdb_notice_tid(const char *track,
int err, n;
struct kvp *t, *a, *p;
int t_changed, ret;
int err, n;
struct kvp *t, *a, *p;
int t_changed, ret;
- char *alias, **w;
+ char *alias, **w, *noticed;
+ time_t now;
/* notice whether the tracks.db entry changes */
t_changed = 0;
/* notice whether the tracks.db entry changes */
t_changed = 0;
@@
-1025,6
+1026,12
@@
int trackdb_notice_tid(const char *track,
/* this is a real track */
t_changed += kvp_set(&t, "_alias_for", 0);
t_changed += kvp_set(&t, "_path", path);
/* this is a real track */
t_changed += kvp_set(&t, "_alias_for", 0);
t_changed += kvp_set(&t, "_path", path);
+ time(&now);
+ if(ret == DB_NOTFOUND) {
+ /* It's a new track; record the time */
+ byte_xasprintf(¬iced, "%lld", (long long)now);
+ t_changed += kvp_set(&t, "_noticed", noticed);
+ }
/* if we have an alias record it in the database */
if((err = compute_alias(&alias, track, p, tid))) return err;
if(alias) {
/* if we have an alias record it in the database */
if((err = compute_alias(&alias, track, p, tid))) return err;
if(alias) {
@@
-1049,10
+1056,8
@@
int trackdb_notice_tid(const char *track,
return err;
if(ret == DB_NOTFOUND) {
uint32_t timestamp[2];
return err;
if(ret == DB_NOTFOUND) {
uint32_t timestamp[2];
- time_t now;
DBT key, data;
DBT key, data;
- time(&now);
timestamp[0] = htonl((uint64_t)now >> 32);
timestamp[1] = htonl((uint32_t)now);
memset(&key, 0, sizeof key);
timestamp[0] = htonl((uint64_t)now >> 32);
timestamp[1] = htonl((uint32_t)now);
memset(&key, 0, sizeof key);