/*
* This file is part of DisOrder
- * Copyright (C) 2008 Richard Kettlewell
+ * Copyright (C) 2008, 2009, 2011 Richard Kettlewell
* Copyright (C) 2008 Mark Wooding
*
* This program is free software: you can redistribute it and/or modify
};
/* display usage message and terminate */
-static void help(void) {
+static void attribute((noreturn)) help(void) {
xprintf("Usage:\n"
" disorder-choose [OPTIONS]\n"
"Options:\n"
struct kvp *prefs) {
const char *s;
char **track_tags;
- time_t last, now = time(0);
+ time_t last, now = xtime(0);
/* Reject tracks not in any collection (race between edit config and
* rescan) */
if(!find_track_root(track)) {
- info("found track not in any collection: %s", track);
+ disorder_info("found track not in any collection: %s", track);
return 0;
}
set_progname(argv);
mem_init();
- if(!setlocale(LC_CTYPE, "")) fatal(errno, "error calling setlocale");
+ if(!setlocale(LC_CTYPE, "")) disorder_fatal(errno, "error calling setlocale");
while((n = getopt_long(argc, argv, "hVc:dDSs", options, 0)) >= 0) {
switch(n) {
case 'h': help();
case 'D': debugging = 0; break;
case 'S': logsyslog = 0; break;
case 's': logsyslog = 1; break;
- default: fatal(0, "invalid option");
+ default: disorder_fatal(0, "invalid option");
}
}
if(logsyslog) {
openlog(progname, LOG_PID, LOG_DAEMON);
log_default = &log_syslog;
}
- if(config_read(0, NULL)) fatal(0, "cannot read configuration");
+ config_per_user = 0;
+ if(config_read(0, NULL)) disorder_fatal(0, "cannot read configuration");
/* Find out current queue/recent list */
queue_read();
recent_read();
trackdb_open(TRACKDB_NO_UPGRADE|TRACKDB_READ_ONLY);
global_tid = trackdb_begin_transaction();
if((err = trackdb_get_global_tid("required-tags", global_tid, &tags)))
- fatal(0, "error getting required-tags: %s", db_strerror(err));
+ disorder_fatal(0, "error getting required-tags: %s", db_strerror(err));
required_tags = parsetags(tags);
if((err = trackdb_get_global_tid("prohibited-tags", global_tid, &tags)))
- fatal(0, "error getting prohibited-tags: %s", db_strerror(err));
+ disorder_fatal(0, "error getting prohibited-tags: %s", db_strerror(err));
prohibited_tags = parsetags(tags);
if(trackdb_scan(0, collect_tracks_callback, 0, global_tid)) {
global_tid->abort(global_tid);
}
trackdb_commit_transaction(global_tid);
trackdb_close();
- trackdb_deinit();
+ trackdb_deinit(NULL);
D(("ntracks=%ld total_weight=%lld", ntracks, total_weight));
if(!total_weight)
- fatal(0, "no tracks match random choice criteria");
+ disorder_fatal(0, "no tracks match random choice criteria");
if(!winning)
- fatal(0, "internal: failed to pick a track");
+ disorder_fatal(0, "internal: failed to pick a track");
/* Pick a track */
xprintf("%s", winning);
xfclose(stdout);