- bar = para_basename(nmmd->filename);
- gettimeofday(&now, NULL);
- ret = make_message(
- "%s:%lu\n" "%s:%s\n" "%s:%i\n" "%s:%u\n"
- "%s:%s\n" "%s:%s\n" "%s:%s\n" "%s:%s\n"
- "%s:%li\n" "%s:%s\n" "%s" "%s"
- "%s:%s\n" "%s:%lu.%lu\n" "%s:%lu.%lu\n",
- status_item_list[SI_FILE_SIZE], nmmd->size / 1024,
- status_item_list[SI_MTIME], mtime,
- status_item_list[SI_LENGTH], nmmd->seconds_total,
- status_item_list[SI_NUM_PLAYED], nmmd->num_played,
-
- status_item_list[SI_STATUS_BAR], bar ? bar : "(none)",
- status_item_list[SI_STATUS], status,
- status_item_list[SI_STATUS_FLAGS], flags,
- status_item_list[SI_SELECTOR], selectors[nmmd->selector_num].name,
-
- status_item_list[SI_OFFSET], offset,
- status_item_list[SI_FORMAT], audio_format_name(nmmd->audio_format),
- nmmd->selector_info,
- nmmd->audio_file_info,
-
- status_item_list[SI_UPTIME], ut,
- status_item_list[SI_STREAM_START],
- (long unsigned)nmmd->stream_start.tv_sec,
- (long unsigned)nmmd->stream_start.tv_usec,
- status_item_list[SI_CURRENT_TIME],
- (long unsigned)now.tv_sec,
- (long unsigned)now.tv_usec
-
- );
- free(bar);
+ if (nmmd->size) { /* parent currently has an audio file open */
+ localtime_r(&nmmd->mtime, &mtime_tm);
+ strftime(mtime, 29, "%b %d %Y", &mtime_tm);
+ }
+ gettimeofday(¤t_time, NULL);
+ /*
+ * The calls to WRITE_STATUS_ITEM() below never fail because
+ * b->max_size is zero (unlimited), see para_printf(). However, clang
+ * is not smart enough to prove this and complains nevertheless.
+ * Casting the return value to void silences clang.
+ */
+ (void)WRITE_STATUS_ITEM(&b, SI_FILE_SIZE, "%zu\n", nmmd->size / 1024);
+ (void)WRITE_STATUS_ITEM(&b, SI_MTIME, "%s\n", mtime);
+ (void)WRITE_STATUS_ITEM(&b, SI_STATUS, "%s\n", status);
+ (void)WRITE_STATUS_ITEM(&b, SI_STATUS_FLAGS, "%s\n", flags);
+ (void)WRITE_STATUS_ITEM(&b, SI_OFFSET, "%li\n", offset);
+ (void)WRITE_STATUS_ITEM(&b, SI_AFS_MODE, "%s\n", mmd->afs_mode_string);
+ (void)WRITE_STATUS_ITEM(&b, SI_STREAM_START, "%lu.%lu\n",
+ (long unsigned)nmmd->stream_start.tv_sec,
+ (long unsigned)nmmd->stream_start.tv_usec);
+ (void)WRITE_STATUS_ITEM(&b, SI_CURRENT_TIME, "%lu.%lu\n",
+ (long unsigned)current_time.tv_sec,
+ (long unsigned)current_time.tv_usec);