/** \file gui.c Curses-based interface for paraslash. */
+#include <regex.h>
#include <signal.h>
#include <sys/types.h>
#include <dirent.h>
+#include <curses.h>
+
#include "gui.cmdline.h"
#include "para.h"
#include "gui.h"
#include "string.h"
-#include <curses.h>
#include "ringbuffer.h"
#include "fd.h"
#include "error.h"
size_t len;
int color;
};
-struct ringbuffer *bot_win_rb;
+static struct ringbuffer *bot_win_rb;
#define NUM_LINES(len) (1 + (len) / bot.cols)
static unsigned scroll_position;
static struct gui_theme theme;
-int _argc;
-char **_argv;
+static int _argc;
+static char **_argv;
static void com_help(void);
static void com_reread_conf(void);
static void com_page_up(void);
static void com_page_down(void);
-struct gui_command command_list[] = {
+static struct gui_command command_list[] = {
{
.key = "?",
.name = "help",
num = 0;
}
/* replace newlines by spaces */
- for (i = 0; i < len; i++) {
+ for (i = 0; i < len && str[i]; i++) {
if (str[i] == '\n')
str[i] = ' ';
}
static int update_item(int item_num, char *buf)
{
- free(stat_content[item_num]);
- stat_content[item_num] = para_strdup(buf);
+ char **c = stat_content + item_num;
+
+ free(*c);
+ if (buf && buf[0])
+ goto dup;
+ switch (item_num) {
+ case SI_ARTIST:
+ *c = para_strdup("(artist tag not set)");
+ goto print;
+ case SI_TITLE:
+ *c = para_strdup("(title tag not set)");
+ goto print;
+ case SI_YEAR:
+ *c = para_strdup("????");
+ goto print;
+ case SI_ALBUM:
+ *c = para_strdup("(album tag not set)");
+ goto print;
+ case SI_COMMENT:
+ *c = para_strdup("(comment tag not set)");
+ goto print;
+ }
+dup:
+ *c = para_strdup(buf);
+print:
print_stat_item(item_num);
return 1;
}