From f81333daa0bb652a5c1296941057eef82a12e12f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 3 Oct 2008 12:57:30 +0200 Subject: [PATCH] code style, indent with tabs XI Follow the same code style als MPD itself. --- src/colors.c | 397 +++++++++++++------------- src/colors.h | 26 +- src/command.c | 292 ++++++++++---------- src/command.h | 113 ++++---- src/conf.c | 643 +++++++++++++++++++------------------------ src/list_window.c | 4 +- src/main.c | 4 +- src/options.c | 2 +- src/playlist.c | 2 - src/playlist.h | 2 - src/screen.c | 2 - src/screen_browser.h | 2 - src/screen_help.c | 185 ++++++------- src/strfsong.c | 17 +- src/support.c | 4 +- src/support.h | 2 +- src/utils.c | 4 +- src/wreadln.c | 4 +- src/wreadln.h | 6 +- 19 files changed, 790 insertions(+), 921 deletions(-) diff --git a/src/colors.c b/src/colors.c index 67f3319..507be48 100644 --- a/src/colors.c +++ b/src/colors.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify @@ -27,32 +25,32 @@ #include #include -#define COLOR_BRIGHT_MASK (1<<7) +#define COLOR_BRIGHT_MASK (1<<7) -#define COLOR_BRIGHT_BLACK (COLOR_BLACK | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_RED (COLOR_RED | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_GREEN (COLOR_GREEN | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_YELLOW (COLOR_YELLOW | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_BLUE (COLOR_BLUE | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_MAGENTA (COLOR_MAGENTA | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_CYAN (COLOR_CYAN | COLOR_BRIGHT_MASK) -#define COLOR_BRIGHT_WHITE (COLOR_WHITE | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_BLACK (COLOR_BLACK | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_RED (COLOR_RED | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_GREEN (COLOR_GREEN | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_YELLOW (COLOR_YELLOW | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_BLUE (COLOR_BLUE | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_MAGENTA (COLOR_MAGENTA | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_CYAN (COLOR_CYAN | COLOR_BRIGHT_MASK) +#define COLOR_BRIGHT_WHITE (COLOR_WHITE | COLOR_BRIGHT_MASK) #define IS_BRIGHT(color) (color & COLOR_BRIGHT_MASK) /* name of the color fields */ -#define NAME_TITLE "title" -#define NAME_TITLE_BOLD "title-bold" -#define NAME_LINE "line" -#define NAME_LINE_BOLD "line-flags" -#define NAME_LIST "list" -#define NAME_LIST_BOLD "list-bold" -#define NAME_PROGRESS "progressbar" -#define NAME_STATUS "status-song" -#define NAME_STATUS_BOLD "status-state" -#define NAME_STATUS_TIME "status-time" -#define NAME_ALERT "alert" -#define NAME_BGCOLOR "background" +#define NAME_TITLE "title" +#define NAME_TITLE_BOLD "title-bold" +#define NAME_LINE "line" +#define NAME_LINE_BOLD "line-flags" +#define NAME_LIST "list" +#define NAME_LIST_BOLD "list-bold" +#define NAME_PROGRESS "progressbar" +#define NAME_STATUS "status-song" +#define NAME_STATUS_BOLD "status-state" +#define NAME_STATUS_TIME "status-time" +#define NAME_ALERT "alert" +#define NAME_BGCOLOR "background" typedef struct { short color; @@ -67,8 +65,7 @@ typedef struct { } color_entry_t; static color_entry_t colors[] = { - /* color pair, field name, color, mono attribute */ - /*-------------------------------------------------------------------------*/ + /* color pair, field name, color, mono attribute */ { COLOR_TITLE, NAME_TITLE, COLOR_YELLOW, A_NORMAL }, { COLOR_TITLE_BOLD, NAME_TITLE_BOLD, COLOR_BRIGHT_YELLOW, A_BOLD }, { COLOR_LINE, NAME_LINE, COLOR_WHITE, A_NORMAL }, @@ -91,239 +88,217 @@ static GList *color_definition_list = NULL; static color_entry_t * colors_lookup(int id) { - int i; - - i=0; - while( colors[i].name != NULL ) - { - if( colors[i].id == id ) - return &colors[i]; - i++; - } - return NULL; + int i = 0; + + while (colors[i].name != NULL) { + if (colors[i].id == id) + return &colors[i]; + i++; + } + + return NULL; } static color_entry_t * colors_lookup_by_name(const char *name) { - int i; - - i=0; - while( colors[i].name != NULL ) - { - if( !strcasecmp(colors[i].name, name) ) - return &colors[i]; - i++; - } - return NULL; + int i = 0; + + while (colors[i].name != NULL) { + if (!strcasecmp(colors[i].name, name)) + return &colors[i]; + i++; + } + + return NULL; } static int colors_update_pair(int id) { - color_entry_t *entry = colors_lookup(id); - short fg = -1; - - if( !entry ) - return -1; - - if( IS_BRIGHT(entry->fg) ) - { - entry->attrs = A_BOLD; - fg = entry->fg & ~COLOR_BRIGHT_MASK; - } - else - { - entry->attrs = A_NORMAL; - fg = entry->fg; - } - - init_pair(entry->id, fg, bg); - - return 0; + color_entry_t *entry = colors_lookup(id); + short fg = -1; + + if (!entry) + return -1; + + if (IS_BRIGHT(entry->fg)) { + entry->attrs = A_BOLD; + fg = entry->fg & ~COLOR_BRIGHT_MASK; + } else { + entry->attrs = A_NORMAL; + fg = entry->fg; + } + + init_pair(entry->id, fg, bg); + return 0; } short colors_str2color(const char *str) { - if( !strcasecmp(str,"black") ) - return COLOR_BLACK; - else if( !strcasecmp(str,"red") ) - return COLOR_RED; - else if( !strcasecmp(str,"green") ) - return COLOR_GREEN; - else if( !strcasecmp(str,"yellow") ) - return COLOR_YELLOW; - else if( !strcasecmp(str,"blue") ) - return COLOR_BLUE; - else if( !strcasecmp(str,"magenta") ) - return COLOR_MAGENTA; - else if( !strcasecmp(str,"cyan") ) - return COLOR_CYAN; - else if( !strcasecmp(str,"white") ) - return COLOR_WHITE; - else if( !strcasecmp(str,"brightred") ) - return COLOR_BRIGHT_RED; - else if( !strcasecmp(str,"brightgreen") ) - return COLOR_BRIGHT_GREEN; - else if( !strcasecmp(str,"brightyellow") ) - return COLOR_BRIGHT_YELLOW; - else if( !strcasecmp(str,"brightblue") ) - return COLOR_BRIGHT_BLUE; - else if( !strcasecmp(str,"brightmagenta") ) - return COLOR_BRIGHT_MAGENTA; - else if( !strcasecmp(str,"brightcyan") ) - return COLOR_BRIGHT_CYAN; - else if( !strcasecmp(str,"brightwhite") ) - return COLOR_BRIGHT_WHITE; - else if( !strcasecmp(str,"grey") || !strcasecmp(str,"gray") ) - return COLOR_BRIGHT_BLACK; - else if( !strcasecmp(str,"none") ) - return -1; - fprintf(stderr,_("Warning: Unknown color - %s\n"), str); - return -2; + if (!strcasecmp(str, "black")) + return COLOR_BLACK; + else if (!strcasecmp(str, "red")) + return COLOR_RED; + else if (!strcasecmp(str, "green")) + return COLOR_GREEN; + else if (!strcasecmp(str, "yellow")) + return COLOR_YELLOW; + else if (!strcasecmp(str, "blue")) + return COLOR_BLUE; + else if (!strcasecmp(str, "magenta")) + return COLOR_MAGENTA; + else if (!strcasecmp(str, "cyan")) + return COLOR_CYAN; + else if (!strcasecmp(str, "white")) + return COLOR_WHITE; + else if (!strcasecmp(str, "brightred")) + return COLOR_BRIGHT_RED; + else if (!strcasecmp(str, "brightgreen")) + return COLOR_BRIGHT_GREEN; + else if (!strcasecmp(str, "brightyellow")) + return COLOR_BRIGHT_YELLOW; + else if (!strcasecmp(str, "brightblue")) + return COLOR_BRIGHT_BLUE; + else if (!strcasecmp(str, "brightmagenta")) + return COLOR_BRIGHT_MAGENTA; + else if (!strcasecmp(str, "brightcyan")) + return COLOR_BRIGHT_CYAN; + else if (!strcasecmp(str, "brightwhite")) + return COLOR_BRIGHT_WHITE; + else if (!strcasecmp(str, "grey") || !strcasecmp(str, "gray")) + return COLOR_BRIGHT_BLACK; + else if (!strcasecmp(str, "none")) + return -1; + + fprintf(stderr,_("Warning: Unknown color - %s\n"), str); + return -2; } /* This function is called from conf.c before curses have been started, - * it adds the definition to the color_definition_list and init_color() is + * it adds the definition to the color_definition_list and init_color() is * done in colors_start() */ int colors_define(const char *name, short r, short g, short b) { - color_definition_entry_t *entry; - short color = colors_str2color(name); + color_definition_entry_t *entry; + short color = colors_str2color(name); - if( color<0 ) - return -1; + if (color < 0) + return -1; - entry = g_malloc(sizeof(color_definition_entry_t)); - entry->color = color; - entry->r = r; - entry->g = g; - entry->b = b; + entry = g_malloc(sizeof(color_definition_entry_t)); + entry->color = color; + entry->r = r; + entry->g = g; + entry->b = b; - color_definition_list = g_list_append(color_definition_list, entry); + color_definition_list = g_list_append(color_definition_list, entry); - return 0; + return 0; } - int colors_assign(const char *name, const char *value) { - color_entry_t *entry = colors_lookup_by_name(name); - short color; - - if( !entry ) - { - if( !strcasecmp(NAME_BGCOLOR, name) ) - { - if( (color=colors_str2color(value)) < -1 ) - return -1; - if( color > COLORS ) - color = color & ~COLOR_BRIGHT_MASK; - bg = color; - return 0; + color_entry_t *entry = colors_lookup_by_name(name); + short color; + + if (!entry) { + if (!strcasecmp(NAME_BGCOLOR, name)) { + if ((color = colors_str2color(value)) < -1) + return -1; + if (color > COLORS) + color = color & ~COLOR_BRIGHT_MASK; + bg = color; + return 0; + } + + fprintf(stderr,_("Warning: Unknown color field - %s\n"), name); + return -1; } - fprintf(stderr,_("Warning: Unknown color field - %s\n"), name); - return -1; - } - if( (color=colors_str2color(value)) < -1 ) - return -1; - entry->fg = color; + if ((color = colors_str2color(value)) < -1) + return -1; - return 0; + entry->fg = color; + return 0; } - int colors_start(void) { - if( has_colors() ) - { - /* initialize color support */ - start_color(); - use_default_colors(); - /* define any custom colors defined in the configuration file */ - if( color_definition_list && can_change_color() ) - { - GList *list = color_definition_list; - - while( list ) - { - color_definition_entry_t *entry = list->data; - - if( entry->color <= COLORS ) - init_color(entry->color, entry->r, entry->g, entry->b); - list=list->next; - } + if (has_colors()) { + /* initialize color support */ + start_color(); + use_default_colors(); + /* define any custom colors defined in the configuration file */ + if (color_definition_list && can_change_color()) { + GList *list = color_definition_list; + + while (list) { + color_definition_entry_t *entry = list->data; + + if (entry->color <= COLORS) + init_color(entry->color, entry->r, + entry->g, entry->b); + list = list->next; + } + } else if (color_definition_list && !can_change_color()) + fprintf(stderr, _("Terminal lacks support for changing colors!\n")); + + if (options.enable_colors) { + int i = 0; + + while (colors[i].name) { + /* update the color pairs */ + colors_update_pair(colors[i].id); + i++; + } + } + } else if (options.enable_colors) { + fprintf(stderr, _("Terminal lacks color capabilities!\n")); + options.enable_colors = 0; } - else if( color_definition_list && !can_change_color() ) - fprintf(stderr, _("Terminal lacks support for changing colors!\n")); - if( options.enable_colors ) - { - int i = 0; + /* free the color_definition_list */ + if (color_definition_list) { + GList *list = color_definition_list; - while(colors[i].name) - { - /* update the color pairs */ - colors_update_pair(colors[i].id); - i++; - } + while (list) { + g_free(list->data); + list=list->next; + } + g_list_free(color_definition_list); + color_definition_list = NULL; } - } - else if( options.enable_colors ) - { - fprintf(stderr, _("Terminal lacks color capabilities!\n")); - options.enable_colors = 0; - } - - /* free the color_definition_list */ - if( color_definition_list ) - { - GList *list = color_definition_list; - - while( list ) - { - g_free(list->data); - list=list->next; - } - g_list_free(color_definition_list); - color_definition_list = NULL; - } - return 0; + return 0; } - int colors_use(WINDOW *w, int id) { - color_entry_t *entry = colors_lookup(id); - short pair; - attr_t attrs; - - if( !entry ) - return -1; - - wattr_get(w, &attrs, &pair, NULL); - - if( options.enable_colors ) - { - /* color mode */ - if( attrs != entry->attrs || id!=pair ) - wattr_set(w, entry->attrs, id, NULL); - } - else - { - /* mono mode */ - if( attrs != entry->attrs ) - wattrset(w, entry->attrs); - } - - return 0; -} + color_entry_t *entry = colors_lookup(id); + short pair; + attr_t attrs; + if (!entry) + return -1; + + wattr_get(w, &attrs, &pair, NULL); + + if (options.enable_colors) { + /* color mode */ + if (attrs != entry->attrs || id != pair) + wattr_set(w, entry->attrs, id, NULL); + } else { + /* mono mode */ + if (attrs != entry->attrs) + wattrset(w, entry->attrs); + } + + return 0; +} diff --git a/src/colors.h b/src/colors.h index a913021..f8a22d2 100644 --- a/src/colors.h +++ b/src/colors.h @@ -3,17 +3,17 @@ #include -#define COLOR_TITLE 1 -#define COLOR_TITLE_BOLD 2 -#define COLOR_LINE 3 -#define COLOR_LINE_BOLD 4 -#define COLOR_LIST 5 -#define COLOR_LIST_BOLD 6 -#define COLOR_PROGRESSBAR 7 -#define COLOR_STATUS 8 -#define COLOR_STATUS_BOLD 9 -#define COLOR_STATUS_TIME 10 -#define COLOR_STATUS_ALERT 11 +#define COLOR_TITLE 1 +#define COLOR_TITLE_BOLD 2 +#define COLOR_LINE 3 +#define COLOR_LINE_BOLD 4 +#define COLOR_LIST 5 +#define COLOR_LIST_BOLD 6 +#define COLOR_PROGRESSBAR 7 +#define COLOR_STATUS 8 +#define COLOR_STATUS_BOLD 9 +#define COLOR_STATUS_TIME 10 +#define COLOR_STATUS_ALERT 11 short colors_str2color(const char *str); @@ -22,8 +22,4 @@ int colors_define(const char *name, short r, short g, short b); int colors_start(void); int colors_use(WINDOW *w, int id); - #endif /* COLORS_H */ - - - diff --git a/src/command.c b/src/command.c index 71ae50e..af188d1 100644 --- a/src/command.c +++ b/src/command.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify @@ -41,167 +39,165 @@ #define DK(x) #endif -#define BS KEY_BACKSPACE -#define DEL KEY_DC -#define UP KEY_UP -#define DWN KEY_DOWN +#define BS KEY_BACKSPACE +#define DEL KEY_DC +#define UP KEY_UP +#define DWN KEY_DOWN #define LEFT KEY_LEFT #define RGHT KEY_RIGHT #define HOME KEY_HOME -#define END KEY_END +#define END KEY_END #define PGDN KEY_NPAGE #define PGUP KEY_PPAGE -#define TAB 0x09 +#define TAB 0x09 #define STAB 0x161 -#define ESC 0x1B -#define F1 KEY_F(1) -#define F2 KEY_F(2) -#define F3 KEY_F(3) -#define F4 KEY_F(4) -#define F5 KEY_F(5) -#define F6 KEY_F(6) -#define F7 KEY_F(7) +#define ESC 0x1B +#define F1 KEY_F(1) +#define F2 KEY_F(2) +#define F3 KEY_F(3) +#define F4 KEY_F(4) +#define F5 KEY_F(5) +#define F6 KEY_F(6) +#define F7 KEY_F(7) -static command_definition_t cmds[] = -{ +static command_definition_t cmds[] = { #ifdef ENABLE_KEYDEF_SCREEN - { {'K', 0, 0 }, 0, CMD_SCREEN_KEYDEF, "screen-keyedit", - N_("Key configuration screen") }, + { {'K', 0, 0 }, 0, CMD_SCREEN_KEYDEF, "screen-keyedit", + N_("Key configuration screen") }, #endif - { { 'q', 'Q', 3 }, 0, CMD_QUIT, "quit", - N_("Quit") }, - - /* movment */ - { { UP, 'k', 0 }, 0, CMD_LIST_PREVIOUS, "up", - N_("Move cursor up") }, - { { DWN, 'j', 0 }, 0, CMD_LIST_NEXT, "down", - N_("Move cursor down") }, - { { HOME, 0x01, 0 }, 0, CMD_LIST_FIRST, "home", - N_("Home ") }, - { { END, 0x05, 0 }, 0, CMD_LIST_LAST, "end", - N_("End ") }, - { { PGUP, 0, 0 }, 0, CMD_LIST_PREVIOUS_PAGE, "pgup", - N_("Page up") }, - { { PGDN, 0, 0 }, 0, CMD_LIST_NEXT_PAGE, "pgdn", - N_("Page down") }, - - - /* basic screens */ - { { '1', F1, 'h' }, 0, CMD_SCREEN_HELP, "screen-help", - N_("Help screen") }, - { { '2', F2, 0 }, 0, CMD_SCREEN_PLAY, "screen-playlist", - N_("Playlist screen") }, - { { '3', F3, 0 }, 0, CMD_SCREEN_FILE, "screen-browse", - N_("Browse screen") }, - - - /* player commands */ - { { 13, 0, 0 }, 0, CMD_PLAY, "play", - N_("Play/Enter directory") }, - { { 'P', 0, 0 }, 0, CMD_PAUSE,"pause", - N_("Pause") }, - { { 's', BS, 0 }, 0, CMD_STOP, "stop", - N_("Stop") }, - { { 'o', 0, 0 }, 0, CMD_CROP, "crop", - N_("Crop") }, - { { '>', 0, 0 }, 0, CMD_TRACK_NEXT, "next", - N_("Next track") }, - { { '<', 0, 0 }, 0, CMD_TRACK_PREVIOUS, "prev", - N_("Previous track") }, - { { 'f', 0, 0 }, 0, CMD_SEEK_FORWARD, "seek-forward", - N_("Seek forward") }, - { { 'b', 0, 0 }, 0, CMD_SEEK_BACKWARD, "seek-backward", - N_("Seek backward") }, - { { '+', RGHT, 0 }, 0, CMD_VOLUME_UP, "volume-up", - N_("Increase volume") }, - { { '-', LEFT, 0 }, 0, CMD_VOLUME_DOWN, "volume-down", - N_("Decrease volume") }, - { { ' ', 0, 0 }, 0, CMD_SELECT, "select", - N_("Select/deselect song in playlist") }, - { { 't', 0, 0 }, 0, CMD_SELECT_ALL, "select_all", - N_("Select all listed items") }, - { { DEL, 'd', 0 }, 0, CMD_DELETE, "delete", - N_("Delete song from playlist") }, - { { 'Z', 0, 0 }, 0, CMD_SHUFFLE, "shuffle", - N_("Shuffle playlist") }, - { { 'c', 0, 0 }, 0, CMD_CLEAR, "clear", - N_("Clear playlist") }, - { { 'r', 0, 0 }, 0, CMD_REPEAT, "repeat", - N_("Toggle repeat mode") }, - { { 'z', 0, 0 }, 0, CMD_RANDOM, "random", - N_("Toggle random mode") }, - { { 'x', 0, 0 }, 0, CMD_CROSSFADE, "crossfade", - N_("Toggle crossfade mode") }, - { { 21, 0, 0 }, 0, CMD_DB_UPDATE, "db-update", - N_("Start a music database update") }, - { { 'S', 0, 0 }, 0, CMD_SAVE_PLAYLIST, "save", - N_("Save playlist") }, - { { 'a', 0, 0 }, 0, CMD_ADD, "add", - N_("Add url/file to playlist") }, - - { { '!', 0, 0 }, 0, CMD_GO_ROOT_DIRECTORY, "go-root-directory", - N_("Go to root directory") }, - { { '"', 0, 0 }, 0, CMD_GO_PARENT_DIRECTORY, "go-parent-directory", - N_("Go to parent directory") }, - - /* lists */ - { { 11, 0, 0 }, 0, CMD_LIST_MOVE_UP, "move-up", - N_("Move item up") }, - { { 10, 0, 0 }, 0, CMD_LIST_MOVE_DOWN, "move-down", - N_("Move item down") }, - { { 12, 0, 0 }, 0, CMD_SCREEN_UPDATE, "update", - N_("Update screen") }, - - - /* ncmpc options */ - { { 'w', 0, 0 }, 0, CMD_TOGGLE_FIND_WRAP, "wrap-mode", - N_("Toggle find mode") }, - { { 'U', 0, 0 }, 0, CMD_TOGGLE_AUTOCENTER, "autocenter-mode", - N_("Toggle auto center mode") }, - - - /* change screen */ - { { TAB, 0, 0 }, 0, CMD_SCREEN_NEXT, "screen-next", - N_("Next screen") }, - { { STAB, 0, 0 }, 0, CMD_SCREEN_PREVIOUS, "screen-prev", - N_("Previous screen") }, - - - /* find */ - { { '/', 0, 0 }, 0, CMD_LIST_FIND, "find", - N_("Forward find") }, - { { 'n', 0, 0 }, 0, CMD_LIST_FIND_NEXT, "find-next", - N_("Forward find next") }, - { { '?', 0, 0 }, 0, CMD_LIST_RFIND, "rfind", - N_("Backward find") }, - { { 'p', 0, 0 }, 0, CMD_LIST_RFIND_NEXT, "rfind-next", - N_("Backward find previous") }, - - - /* extra screens */ + { { 'q', 'Q', 3 }, 0, CMD_QUIT, "quit", + N_("Quit") }, + + /* movment */ + { { UP, 'k', 0 }, 0, CMD_LIST_PREVIOUS, "up", + N_("Move cursor up") }, + { { DWN, 'j', 0 }, 0, CMD_LIST_NEXT, "down", + N_("Move cursor down") }, + { { HOME, 0x01, 0 }, 0, CMD_LIST_FIRST, "home", + N_("Home ") }, + { { END, 0x05, 0 }, 0, CMD_LIST_LAST, "end", + N_("End ") }, + { { PGUP, 0, 0 }, 0, CMD_LIST_PREVIOUS_PAGE, "pgup", + N_("Page up") }, + { { PGDN, 0, 0 }, 0, CMD_LIST_NEXT_PAGE, "pgdn", + N_("Page down") }, + + + /* basic screens */ + { { '1', F1, 'h' }, 0, CMD_SCREEN_HELP, "screen-help", + N_("Help screen") }, + { { '2', F2, 0 }, 0, CMD_SCREEN_PLAY, "screen-playlist", + N_("Playlist screen") }, + { { '3', F3, 0 }, 0, CMD_SCREEN_FILE, "screen-browse", + N_("Browse screen") }, + + + /* player commands */ + { { 13, 0, 0 }, 0, CMD_PLAY, "play", + N_("Play/Enter directory") }, + { { 'P', 0, 0 }, 0, CMD_PAUSE,"pause", + N_("Pause") }, + { { 's', BS, 0 }, 0, CMD_STOP, "stop", + N_("Stop") }, + { { 'o', 0, 0 }, 0, CMD_CROP, "crop", + N_("Crop") }, + { { '>', 0, 0 }, 0, CMD_TRACK_NEXT, "next", + N_("Next track") }, + { { '<', 0, 0 }, 0, CMD_TRACK_PREVIOUS, "prev", + N_("Previous track") }, + { { 'f', 0, 0 }, 0, CMD_SEEK_FORWARD, "seek-forward", + N_("Seek forward") }, + { { 'b', 0, 0 }, 0, CMD_SEEK_BACKWARD, "seek-backward", + N_("Seek backward") }, + { { '+', RGHT, 0 }, 0, CMD_VOLUME_UP, "volume-up", + N_("Increase volume") }, + { { '-', LEFT, 0 }, 0, CMD_VOLUME_DOWN, "volume-down", + N_("Decrease volume") }, + { { ' ', 0, 0 }, 0, CMD_SELECT, "select", + N_("Select/deselect song in playlist") }, + { { 't', 0, 0 }, 0, CMD_SELECT_ALL, "select_all", + N_("Select all listed items") }, + { { DEL, 'd', 0 }, 0, CMD_DELETE, "delete", + N_("Delete song from playlist") }, + { { 'Z', 0, 0 }, 0, CMD_SHUFFLE, "shuffle", + N_("Shuffle playlist") }, + { { 'c', 0, 0 }, 0, CMD_CLEAR, "clear", + N_("Clear playlist") }, + { { 'r', 0, 0 }, 0, CMD_REPEAT, "repeat", + N_("Toggle repeat mode") }, + { { 'z', 0, 0 }, 0, CMD_RANDOM, "random", + N_("Toggle random mode") }, + { { 'x', 0, 0 }, 0, CMD_CROSSFADE, "crossfade", + N_("Toggle crossfade mode") }, + { { 21, 0, 0 }, 0, CMD_DB_UPDATE, "db-update", + N_("Start a music database update") }, + { { 'S', 0, 0 }, 0, CMD_SAVE_PLAYLIST, "save", + N_("Save playlist") }, + { { 'a', 0, 0 }, 0, CMD_ADD, "add", + N_("Add url/file to playlist") }, + + { { '!', 0, 0 }, 0, CMD_GO_ROOT_DIRECTORY, "go-root-directory", + N_("Go to root directory") }, + { { '"', 0, 0 }, 0, CMD_GO_PARENT_DIRECTORY, "go-parent-directory", + N_("Go to parent directory") }, + + /* lists */ + { { 11, 0, 0 }, 0, CMD_LIST_MOVE_UP, "move-up", + N_("Move item up") }, + { { 10, 0, 0 }, 0, CMD_LIST_MOVE_DOWN, "move-down", + N_("Move item down") }, + { { 12, 0, 0 }, 0, CMD_SCREEN_UPDATE, "update", + N_("Update screen") }, + + + /* ncmpc options */ + { { 'w', 0, 0 }, 0, CMD_TOGGLE_FIND_WRAP, "wrap-mode", + N_("Toggle find mode") }, + { { 'U', 0, 0 }, 0, CMD_TOGGLE_AUTOCENTER, "autocenter-mode", + N_("Toggle auto center mode") }, + + + /* change screen */ + { { TAB, 0, 0 }, 0, CMD_SCREEN_NEXT, "screen-next", + N_("Next screen") }, + { { STAB, 0, 0 }, 0, CMD_SCREEN_PREVIOUS, "screen-prev", + N_("Previous screen") }, + + + /* find */ + { { '/', 0, 0 }, 0, CMD_LIST_FIND, "find", + N_("Forward find") }, + { { 'n', 0, 0 }, 0, CMD_LIST_FIND_NEXT, "find-next", + N_("Forward find next") }, + { { '?', 0, 0 }, 0, CMD_LIST_RFIND, "rfind", + N_("Backward find") }, + { { 'p', 0, 0 }, 0, CMD_LIST_RFIND_NEXT, "rfind-next", + N_("Backward find previous") }, + + + /* extra screens */ #ifdef ENABLE_ARTIST_SCREEN - { {'4', F4, 0 }, 0, CMD_SCREEN_ARTIST, "screen-artist", - N_("Artist screen") }, + { {'4', F4, 0 }, 0, CMD_SCREEN_ARTIST, "screen-artist", + N_("Artist screen") }, #endif #ifdef ENABLE_SEARCH_SCREEN - { {'5', F5, 0 }, 0, CMD_SCREEN_SEARCH, "screen-search", - N_("Search screen") }, - { {'m', 0, 0 }, 0, CMD_SEARCH_MODE, "search-mode", - N_("Change search mode") }, + { {'5', F5, 0 }, 0, CMD_SCREEN_SEARCH, "screen-search", + N_("Search screen") }, + { {'m', 0, 0 }, 0, CMD_SEARCH_MODE, "search-mode", + N_("Change search mode") }, #endif #ifdef ENABLE_LYRICS_SCREEN - { {'7', F7, 0 }, 0, CMD_SCREEN_LYRICS, "screen-lyrics", - N_("Lyrics screen") }, - { {ESC, 0, 0 }, 0, CMD_INTERRUPT, "lyrics-interrupt", - N_("Interrupt action") }, - { {'u', 0, 0 }, 0, CMD_LYRICS_UPDATE, "lyrics-update", - N_("Update Lyrics") }, + { {'7', F7, 0 }, 0, CMD_SCREEN_LYRICS, "screen-lyrics", + N_("Lyrics screen") }, + { {ESC, 0, 0 }, 0, CMD_INTERRUPT, "lyrics-interrupt", + N_("Interrupt action") }, + { {'u', 0, 0 }, 0, CMD_LYRICS_UPDATE, "lyrics-update", + N_("Update Lyrics") }, #endif - - { { -1, -1, -1 }, 0, CMD_NONE, NULL, NULL } + { { -1, -1, -1 }, 0, CMD_NONE, NULL, NULL } }; command_definition_t * @@ -510,10 +506,10 @@ write_key_bindings(FILE *f, int flags) { int i,j; - if( flags & KEYDEF_WRITE_HEADER ) + if (flags & KEYDEF_WRITE_HEADER) fprintf(f, "## Key bindings for ncmpc (generated by ncmpc)\n\n"); - i=0; + i = 0; while (cmds[i].name && !ferror(f)) { if (cmds[i].flags & COMMAND_KEY_MODIFIED || flags & KEYDEF_WRITE_ALL) { diff --git a/src/command.h b/src/command.h index f4b6859..4529da8 100644 --- a/src/command.h +++ b/src/command.h @@ -8,61 +8,60 @@ #define MAX_COMMAND_KEYS 3 /* commands */ -typedef enum -{ - CMD_NONE = 0, - CMD_PLAY, - CMD_SELECT, - CMD_SELECT_ALL, - CMD_PAUSE, - CMD_STOP, - CMD_CROP, - CMD_TRACK_NEXT, - CMD_TRACK_PREVIOUS, - CMD_SEEK_FORWARD, - CMD_SEEK_BACKWARD, - CMD_SHUFFLE, - CMD_RANDOM, - CMD_CLEAR, - CMD_DELETE, - CMD_REPEAT, - CMD_CROSSFADE, - CMD_DB_UPDATE, - CMD_VOLUME_UP, - CMD_VOLUME_DOWN, - CMD_ADD, - CMD_SAVE_PLAYLIST, - CMD_TOGGLE_FIND_WRAP, - CMD_TOGGLE_AUTOCENTER, - CMD_SEARCH_MODE, - CMD_LIST_PREVIOUS, - CMD_LIST_NEXT, - CMD_LIST_FIRST, - CMD_LIST_LAST, - CMD_LIST_NEXT_PAGE, - CMD_LIST_PREVIOUS_PAGE, - CMD_LIST_FIND, - CMD_LIST_FIND_NEXT, - CMD_LIST_RFIND, - CMD_LIST_RFIND_NEXT, - CMD_LIST_MOVE_UP, - CMD_LIST_MOVE_DOWN, - CMD_MOUSE_EVENT, - CMD_SCREEN_UPDATE, - CMD_SCREEN_PREVIOUS, - CMD_SCREEN_NEXT, - CMD_SCREEN_PLAY, - CMD_SCREEN_FILE, - CMD_SCREEN_ARTIST, - CMD_SCREEN_SEARCH, - CMD_SCREEN_KEYDEF, - CMD_SCREEN_HELP, - CMD_SCREEN_LYRICS, - CMD_LYRICS_UPDATE, - CMD_INTERRUPT, - CMD_GO_ROOT_DIRECTORY, - CMD_GO_PARENT_DIRECTORY, - CMD_QUIT +typedef enum { + CMD_NONE = 0, + CMD_PLAY, + CMD_SELECT, + CMD_SELECT_ALL, + CMD_PAUSE, + CMD_STOP, + CMD_CROP, + CMD_TRACK_NEXT, + CMD_TRACK_PREVIOUS, + CMD_SEEK_FORWARD, + CMD_SEEK_BACKWARD, + CMD_SHUFFLE, + CMD_RANDOM, + CMD_CLEAR, + CMD_DELETE, + CMD_REPEAT, + CMD_CROSSFADE, + CMD_DB_UPDATE, + CMD_VOLUME_UP, + CMD_VOLUME_DOWN, + CMD_ADD, + CMD_SAVE_PLAYLIST, + CMD_TOGGLE_FIND_WRAP, + CMD_TOGGLE_AUTOCENTER, + CMD_SEARCH_MODE, + CMD_LIST_PREVIOUS, + CMD_LIST_NEXT, + CMD_LIST_FIRST, + CMD_LIST_LAST, + CMD_LIST_NEXT_PAGE, + CMD_LIST_PREVIOUS_PAGE, + CMD_LIST_FIND, + CMD_LIST_FIND_NEXT, + CMD_LIST_RFIND, + CMD_LIST_RFIND_NEXT, + CMD_LIST_MOVE_UP, + CMD_LIST_MOVE_DOWN, + CMD_MOUSE_EVENT, + CMD_SCREEN_UPDATE, + CMD_SCREEN_PREVIOUS, + CMD_SCREEN_NEXT, + CMD_SCREEN_PLAY, + CMD_SCREEN_FILE, + CMD_SCREEN_ARTIST, + CMD_SCREEN_SEARCH, + CMD_SCREEN_KEYDEF, + CMD_SCREEN_HELP, + CMD_SCREEN_LYRICS, + CMD_LYRICS_UPDATE, + CMD_INTERRUPT, + CMD_GO_ROOT_DIRECTORY, + CMD_GO_PARENT_DIRECTORY, + CMD_QUIT } command_t; @@ -87,8 +86,8 @@ command_definition_t *get_command_definitions(void); command_t find_key_command(int key, command_definition_t *cmds); void command_dump_keys(void); -int check_key_bindings(command_definition_t *cmds, char *buf, size_t size); -int write_key_bindings(FILE *f, int all); +int check_key_bindings(command_definition_t *cmds, char *buf, size_t size); +int write_key_bindings(FILE *f, int all); const char *key2str(int key); const char *get_key_description(command_t command); diff --git a/src/conf.c b/src/conf.c index a39c493..5dff1cc 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify @@ -39,48 +37,48 @@ #include #define MAX_LINE_LENGTH 1024 -#define COMMENT_TOKEN '#' +#define COMMENT_TOKEN '#' /* configuration field names */ -#define CONF_ENABLE_COLORS "enable-colors" -#define CONF_AUTO_CENTER "auto-center" -#define CONF_WIDE_CURSOR "wide-cursor" -#define CONF_ENABLE_BELL "enable-bell" -#define CONF_KEY_DEFINITION "key" -#define CONF_COLOR "color" -#define CONF_COLOR_DEFINITION "colordef" -#define CONF_LIST_FORMAT "list-format" -#define CONF_STATUS_FORMAT "status-format" -#define CONF_XTERM_TITLE_FORMAT "xterm-title-format" -#define CONF_LIST_WRAP "wrap-around" -#define CONF_FIND_WRAP "find-wrap" -#define CONF_FIND_SHOW_LAST "find-show-last" -#define CONF_AUDIBLE_BELL "audible-bell" -#define CONF_VISIBLE_BELL "visible-bell" -#define CONF_XTERM_TITLE "set-xterm-title" -#define CONF_ENABLE_MOUSE "enable-mouse" -#define CONF_CROSSFADE_TIME "crossfade-time" -#define CONF_SEARCH_MODE "search-mode" -#define CONF_HIDE_CURSOR "hide-cursor" -#define CONF_SEEK_TIME "seek-time" -#define CONF_SCREEN_LIST "screen-list" -#define CONF_TIMEDISPLAY_TYPE "timedisplay-type" -#define CONF_HOST "host" -#define CONF_PORT "port" -#define CONF_PASSWORD "password" -#define CONF_LYRICS_TIMEOUT "lyrics-timeout" -#define CONF_SHOW_SPLASH "show-splash" -#define CONF_SCROLL "scroll" -#define CONF_SCROLL_SEP "scroll-sep" -#define CONF_VISIBLE_BITRATE "visible-bitrate" -#define CONF_WELCOME_SCREEN_LIST "welcome-screen-list" +#define CONF_ENABLE_COLORS "enable-colors" +#define CONF_AUTO_CENTER "auto-center" +#define CONF_WIDE_CURSOR "wide-cursor" +#define CONF_ENABLE_BELL "enable-bell" +#define CONF_KEY_DEFINITION "key" +#define CONF_COLOR "color" +#define CONF_COLOR_DEFINITION "colordef" +#define CONF_LIST_FORMAT "list-format" +#define CONF_STATUS_FORMAT "status-format" +#define CONF_XTERM_TITLE_FORMAT "xterm-title-format" +#define CONF_LIST_WRAP "wrap-around" +#define CONF_FIND_WRAP "find-wrap" +#define CONF_FIND_SHOW_LAST "find-show-last" +#define CONF_AUDIBLE_BELL "audible-bell" +#define CONF_VISIBLE_BELL "visible-bell" +#define CONF_XTERM_TITLE "set-xterm-title" +#define CONF_ENABLE_MOUSE "enable-mouse" +#define CONF_CROSSFADE_TIME "crossfade-time" +#define CONF_SEARCH_MODE "search-mode" +#define CONF_HIDE_CURSOR "hide-cursor" +#define CONF_SEEK_TIME "seek-time" +#define CONF_SCREEN_LIST "screen-list" +#define CONF_TIMEDISPLAY_TYPE "timedisplay-type" +#define CONF_HOST "host" +#define CONF_PORT "port" +#define CONF_PASSWORD "password" +#define CONF_LYRICS_TIMEOUT "lyrics-timeout" +#define CONF_SHOW_SPLASH "show-splash" +#define CONF_SCROLL "scroll" +#define CONF_SCROLL_SEP "scroll-sep" +#define CONF_VISIBLE_BITRATE "visible-bitrate" +#define CONF_WELCOME_SCREEN_LIST "welcome-screen-list" typedef enum { - KEY_PARSER_UNKNOWN, - KEY_PARSER_CHAR, - KEY_PARSER_DEC, - KEY_PARSER_HEX, - KEY_PARSER_DONE + KEY_PARSER_UNKNOWN, + KEY_PARSER_CHAR, + KEY_PARSER_DEC, + KEY_PARSER_HEX, + KEY_PARSER_DONE } key_parser_state_t; static bool @@ -188,7 +186,7 @@ parse_key_definition(char *str) memset(buf, 0, MAX_LINE_LENGTH); g_strlcpy(buf, str+i, MAX_LINE_LENGTH); len = strlen(buf); - if( len==0 ) { + if (len == 0) { fprintf(stderr,_("Error: Incomplete key definition - %s\n"), str); return -1; } @@ -200,14 +198,15 @@ parse_key_definition(char *str) p = buf; end = buf+len; memset(keys, 0, sizeof(int)*MAX_COMMAND_KEYS); - while( i=0 ) { + while (i < MAX_COMMAND_KEYS && p < end && + (key = parse_key_value(p, len + 1, &p)) >= 0) { keys[i++] = key; - while( p=0 ) { + while (i < 3 && p < end && + (value = parse_key_value(p,len+1,&p)) >= 0) { rgb[i++] = value; while( p= 0 && g_ascii_isspace(line[i])) - { - line[i] = '\0'; - i--; - } - len = i+1; - - if( len>0 ) - { - i = 0; - /* skip whitespace */ - while (i < len && g_ascii_isspace(line[i])) - i++; - - /* continue if this line is not a comment */ - if( line[i] != COMMENT_TOKEN ) - { - /* get the name part */ - j=0; - while (i < len && line[i] != '=' && !g_ascii_isspace(line[i])) - { - name[j++] = line[i++]; - } - name[j] = '\0'; - - /* skip '=' and whitespace */ - while (i < len && (line[i] == '=' || g_ascii_isspace(line[i]))) - i++; - - /* get the value part */ - j=0; - while( ienable_colors = str2bool(value); - } - /* auto center */ - else if( !strcasecmp(CONF_AUTO_CENTER, name) ) - { - options->auto_center = str2bool(value); - } - /* color assignment */ - else if( !strcasecmp(CONF_COLOR, name) ) - { - parse_color(value); - } - /* wide cursor */ - else if( !strcasecmp(CONF_WIDE_CURSOR, name) ) - { - options->wide_cursor = str2bool(value); - } - /* welcome screen list */ - else if (!strcasecmp(CONF_WELCOME_SCREEN_LIST, name)) { - options->welcome_screen_list = str2bool(value); - } - /* visible bitrate */ - else if (!strcasecmp(CONF_VISIBLE_BITRATE, name)) { - options->visible_bitrate = str2bool(value); - } - /* timer display type */ - else if( !strcasecmp(CONF_TIMEDISPLAY_TYPE, name) ) - { - g_free(options->timedisplay_type); - options->timedisplay_type=g_strdup(parse_timedisplay_type(value)); - } - /* color definition */ - else if( !strcasecmp(CONF_COLOR_DEFINITION, name) ) - { - parse_color_definition(value); - } - /* list format string */ - else if( !strcasecmp(CONF_LIST_FORMAT, name) ) - { - g_free(options->list_format); - options->list_format = get_format(value); - } - /* status format string */ - else if( !strcasecmp(CONF_STATUS_FORMAT, name) ) - { - g_free(options->status_format); - options->status_format = get_format(value); - } - /* xterm title format string */ - else if( !strcasecmp(CONF_XTERM_TITLE_FORMAT, name) ) - { - g_free(options->xterm_title_format); - options->xterm_title_format = get_format(value); - } - else if( !strcasecmp(CONF_LIST_WRAP, name) ) - { - options->list_wrap = str2bool(value); - } - else if( !strcasecmp(CONF_FIND_WRAP, name) ) - { - options->find_wrap = str2bool(value); - } - else if( !strcasecmp(CONF_FIND_SHOW_LAST,name) ) - { - options->find_show_last_pattern = str2bool(value); - } - else if( !strcasecmp(CONF_AUDIBLE_BELL, name) ) - { - options->audible_bell = str2bool(value); - } - else if( !strcasecmp(CONF_VISIBLE_BELL, name) ) - { - options->visible_bell = str2bool(value); - } - else if( !strcasecmp(CONF_XTERM_TITLE, name) ) - { - options->enable_xterm_title = str2bool(value); - } - else if( !strcasecmp(CONF_ENABLE_MOUSE, name) ) - { - options->enable_mouse = str2bool(value); - } - else if( !strcasecmp(CONF_CROSSFADE_TIME, name) ) - { - options->crossfade_time = atoi(value); - } - else if( !strcasecmp(CONF_SEARCH_MODE, name) ) - { - options->search_mode = atoi(value); - } - else if( !strcasecmp(CONF_HIDE_CURSOR, name) ) - { - options->hide_cursor = atoi(value); - } - else if( !strcasecmp(CONF_SEEK_TIME, name) ) - { - options->seek_time = atoi(value); - } - else if( !strcasecmp(CONF_SCREEN_LIST, name) ) - { - g_strfreev(options->screen_list); - options->screen_list = check_screen_list(value); + int fd; + int quit = 0; + int free_filename = 0; + + if (filename == NULL) + return -1; + + if ((fd = open(filename,O_RDONLY)) < 0) { + perror(filename); + if (free_filename) + g_free(filename); + return -1; } - else if( !strcasecmp(CONF_SHOW_SPLASH, name) ) - { - /* the splash screen was removed */ + + while (!quit) { + int i,j; + int len; + int match_found; + char line[MAX_LINE_LENGTH]; + char name[MAX_LINE_LENGTH]; + char value[MAX_LINE_LENGTH]; + + line[0] = '\0'; + value[0] = '\0'; + + i = 0; + /* read a line ending with '\n' */ + do { + len = read(fd, &line[i], 1); + if (len == 1) + i++; + else + quit = 1; + } while (!quit && i < MAX_LINE_LENGTH && line[i-1] != '\n'); + + + /* remove trailing whitespace */ + line[i] = '\0'; + i--; + while (i >= 0 && g_ascii_isspace(line[i])) { + line[i] = '\0'; + i--; } - else if( !strcasecmp(CONF_HOST, name)) - { - options->host = get_format(value); - } - else if( !strcasecmp(CONF_PORT, name)) - { - options->port = atoi(get_format(value)); - } - else if( !strcasecmp(CONF_PASSWORD, name)) - { - options->password = get_format(value); - } - else if( !strcasecmp(CONF_LYRICS_TIMEOUT, name)) - { - options->lyrics_timeout = atoi(get_format(value)); - } - else if( !strcasecmp(CONF_SCROLL, name)) - { - options->scroll = str2bool(value); - } - else if( !strcasecmp(CONF_SCROLL_SEP, name)) - { - g_free(options->scroll_sep); - options->scroll_sep = get_format(value); - } - else - { - match_found = 0; + + len = i + 1; + if (len > 0) { + i = 0; + /* skip whitespace */ + while (i < len && g_ascii_isspace(line[i])) + i++; + + /* continue if this line is not a comment */ + if (line[i] != COMMENT_TOKEN) { + /* get the name part */ + j = 0; + while (i < len && line[i] != '=' && + !g_ascii_isspace(line[i])) { + name[j++] = line[i++]; + } + + name[j] = '\0'; + + /* skip '=' and whitespace */ + while (i < len && (line[i] == '=' || g_ascii_isspace(line[i]))) + i++; + + /* get the value part */ + j = 0; + while (i < len) + value[j++] = line[i++]; + value[j] = '\0'; + + match_found = 1; + + /* key definition */ + if (!strcasecmp(CONF_KEY_DEFINITION, name)) + parse_key_definition(value); + /* enable colors */ + else if(!strcasecmp(CONF_ENABLE_COLORS, name)) + options->enable_colors = str2bool(value); + /* auto center */ + else if (!strcasecmp(CONF_AUTO_CENTER, name)) + options->auto_center = str2bool(value); + /* color assignment */ + else if (!strcasecmp(CONF_COLOR, name)) + parse_color(value); + /* wide cursor */ + else if (!strcasecmp(CONF_WIDE_CURSOR, name)) + options->wide_cursor = str2bool(value); + /* welcome screen list */ + else if (!strcasecmp(CONF_WELCOME_SCREEN_LIST, name)) + options->welcome_screen_list = str2bool(value); + /* visible bitrate */ + else if (!strcasecmp(CONF_VISIBLE_BITRATE, name)) + options->visible_bitrate = str2bool(value); + /* timer display type */ + else if (!strcasecmp(CONF_TIMEDISPLAY_TYPE, name)) { + g_free(options->timedisplay_type); + options->timedisplay_type=g_strdup(parse_timedisplay_type(value)); + /* color definition */ + } else if (!strcasecmp(CONF_COLOR_DEFINITION, name)) + parse_color_definition(value); + /* list format string */ + else if (!strcasecmp(CONF_LIST_FORMAT, name)) { + g_free(options->list_format); + options->list_format = get_format(value); + /* status format string */ + } else if (!strcasecmp(CONF_STATUS_FORMAT, name)) { + g_free(options->status_format); + options->status_format = get_format(value); + /* xterm title format string */ + } else if (!strcasecmp(CONF_XTERM_TITLE_FORMAT, name)) { + g_free(options->xterm_title_format); + options->xterm_title_format = get_format(value); + } else if (!strcasecmp(CONF_LIST_WRAP, name)) + options->list_wrap = str2bool(value); + else if (!strcasecmp(CONF_FIND_WRAP, name)) + options->find_wrap = str2bool(value); + else if (!strcasecmp(CONF_FIND_SHOW_LAST,name)) + options->find_show_last_pattern = str2bool(value); + else if (!strcasecmp(CONF_AUDIBLE_BELL, name)) + options->audible_bell = str2bool(value); + else if (!strcasecmp(CONF_VISIBLE_BELL, name)) + options->visible_bell = str2bool(value); + else if (!strcasecmp(CONF_XTERM_TITLE, name)) + options->enable_xterm_title = str2bool(value); + else if (!strcasecmp(CONF_ENABLE_MOUSE, name)) + options->enable_mouse = str2bool(value); + else if (!strcasecmp(CONF_CROSSFADE_TIME, name)) + options->crossfade_time = atoi(value); + else if (!strcasecmp(CONF_SEARCH_MODE, name)) + options->search_mode = atoi(value); + else if (!strcasecmp(CONF_HIDE_CURSOR, name)) + options->hide_cursor = atoi(value); + else if (!strcasecmp(CONF_SEEK_TIME, name)) + options->seek_time = atoi(value); + else if (!strcasecmp(CONF_SCREEN_LIST, name)) { + g_strfreev(options->screen_list); + options->screen_list = check_screen_list(value); + } else if (!strcasecmp(CONF_SHOW_SPLASH, name)) { + /* the splash screen was removed */ + } else if (!strcasecmp(CONF_HOST, name)) + options->host = get_format(value); + else if (!strcasecmp(CONF_PORT, name)) + options->port = atoi(get_format(value)); + else if (!strcasecmp(CONF_PASSWORD, name)) + options->password = get_format(value); + else if (!strcasecmp(CONF_LYRICS_TIMEOUT, name)) + options->lyrics_timeout = atoi(get_format(value)); + else if (!strcasecmp(CONF_SCROLL, name)) + options->scroll = str2bool(value); + else if (!strcasecmp(CONF_SCROLL_SEP, name)) { + g_free(options->scroll_sep); + options->scroll_sep = get_format(value); + } else + match_found = 0; + + if (!match_found) + fprintf(stderr, + _("Unknown configuration parameter: %s\n"), + name); + } } + } + + if (free_filename) + g_free(filename); - if( !match_found ) - fprintf(stderr, - _("Unknown configuration parameter: %s\n"), - name); - } - } - } - - if( free_filename ) - g_free(filename); - - return 0; + return 0; } int @@ -616,80 +552,69 @@ get_user_key_binding_filename(void) return g_build_filename(g_get_home_dir(), "." PACKAGE, "keys", NULL); } - int read_configuration(options_t *options) { - char *filename = NULL; - - /* check for command line configuration file */ - if( options->config_file ) - filename = g_strdup(options->config_file); - - /* check for user configuration ~/.ncmpc/config */ - if( filename == NULL ) - { - filename = g_build_filename(g_get_home_dir(), - "." PACKAGE, "config", NULL); - if( !g_file_test(filename, G_FILE_TEST_IS_REGULAR) ) - { - g_free(filename); - filename = NULL; + char *filename = NULL; + + /* check for command line configuration file */ + if (options->config_file) + filename = g_strdup(options->config_file); + + /* check for user configuration ~/.ncmpc/config */ + if (filename == NULL) { + filename = g_build_filename(g_get_home_dir(), + "." PACKAGE, "config", NULL); + if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { + g_free(filename); + filename = NULL; + } + } + + /* check for global configuration SYSCONFDIR/ncmpc/config */ + if (filename == NULL) { + filename = g_build_filename(SYSCONFDIR, PACKAGE, "config", NULL); + if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { + g_free(filename); + filename = NULL; + } } - } - - /* check for global configuration SYSCONFDIR/ncmpc/config */ - if( filename == NULL ) - { - filename = g_build_filename(SYSCONFDIR, PACKAGE, "config", NULL); - if( !g_file_test(filename, G_FILE_TEST_IS_REGULAR) ) - { - g_free(filename); - filename = NULL; + + /* load configuration */ + if (filename) { + read_rc_file(filename, options); + g_free(filename); + filename = NULL; } - } - - /* load configuration */ - if( filename ) - { - read_rc_file(filename, options); - g_free(filename); - filename = NULL; - } - - /* check for command line key binding file */ - if( options->key_file ) - filename = g_strdup(options->key_file); - - /* check for user key bindings ~/.ncmpc/keys */ - if( filename == NULL ) - { - filename = get_user_key_binding_filename(); - if( !g_file_test(filename, G_FILE_TEST_IS_REGULAR) ) - { - g_free(filename); - filename = NULL; + + /* check for command line key binding file */ + if (options->key_file) + filename = g_strdup(options->key_file); + + /* check for user key bindings ~/.ncmpc/keys */ + if (filename == NULL) { + filename = get_user_key_binding_filename(); + if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { + g_free(filename); + filename = NULL; + } } - } - - /* check for global key bindings SYSCONFDIR/ncmpc/keys */ - if( filename == NULL ) - { - filename = g_build_filename(SYSCONFDIR, PACKAGE, "keys", NULL); - if( !g_file_test(filename, G_FILE_TEST_IS_REGULAR) ) - { - g_free(filename); - filename = NULL; + + /* check for global key bindings SYSCONFDIR/ncmpc/keys */ + if (filename == NULL) { + filename = g_build_filename(SYSCONFDIR, PACKAGE, "keys", NULL); + if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) { + g_free(filename); + filename = NULL; + } } - } - /* load key bindings */ - if( filename ) - { - read_rc_file(filename, options); - g_free(filename); - filename = NULL; - } + /* load key bindings */ + if (filename) { + read_rc_file(filename, options); + g_free(filename); + filename = NULL; + } - return 0; + return 0; } diff --git a/src/list_window.c b/src/list_window.c index 55b621b..efb6101 100644 --- a/src/list_window.c +++ b/src/list_window.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify diff --git a/src/main.c b/src/main.c index 668d5aa..e701712 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify diff --git a/src/options.c b/src/options.c index 9cb1b16..ca3e983 100644 --- a/src/options.c +++ b/src/options.c @@ -306,7 +306,7 @@ options_parse(int argc, const char *argv[]) } options_t * -options_init( void ) +options_init(void) { const char *value; char *tmp; diff --git a/src/playlist.c b/src/playlist.c index 108c4f5..19a1b41 100644 --- a/src/playlist.c +++ b/src/playlist.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * (c) 2004 by Kalle Wallin * (c) 2008 Max Kellermann * diff --git a/src/playlist.h b/src/playlist.h index 0d524ad..6597357 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * (c) 2004 by Kalle Wallin * (c) 2008 Max Kellermann * diff --git a/src/screen.c b/src/screen.c index 87d7388..231d84a 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify diff --git a/src/screen_browser.h b/src/screen_browser.h index cd218bc..17e41f6 100644 --- a/src/screen_browser.h +++ b/src/screen_browser.h @@ -1,6 +1,4 @@ /* - * $Id$ - * * (c) 2004 by Kalle Wallin * Copyright (C) 2008 Max Kellermann * diff --git a/src/screen_help.c b/src/screen_help.c index 700bc8b..adf9a03 100644 --- a/src/screen_help.c +++ b/src/screen_help.c @@ -29,120 +29,117 @@ #include #include - typedef struct { signed char highlight; command_t command; const char *text; } help_text_row_t; -static help_text_row_t help_text[] = -{ - { 1, CMD_NONE, N_("Keys - Movement") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_LIST_PREVIOUS, NULL }, - { 0, CMD_LIST_NEXT, NULL }, - { 0, CMD_LIST_PREVIOUS_PAGE, NULL }, - { 0, CMD_LIST_NEXT_PAGE, NULL }, - { 0, CMD_LIST_FIRST, NULL }, - { 0, CMD_LIST_LAST, NULL }, - { 0, CMD_NONE, NULL }, - { 0, CMD_SCREEN_PREVIOUS,NULL }, - { 0, CMD_SCREEN_NEXT, NULL }, - { 0, CMD_SCREEN_HELP, NULL }, - { 0, CMD_SCREEN_PLAY, NULL }, - { 0, CMD_SCREEN_FILE, NULL }, +static help_text_row_t help_text[] = { + { 1, CMD_NONE, N_("Keys - Movement") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_LIST_PREVIOUS, NULL }, + { 0, CMD_LIST_NEXT, NULL }, + { 0, CMD_LIST_PREVIOUS_PAGE, NULL }, + { 0, CMD_LIST_NEXT_PAGE, NULL }, + { 0, CMD_LIST_FIRST, NULL }, + { 0, CMD_LIST_LAST, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_SCREEN_PREVIOUS,NULL }, + { 0, CMD_SCREEN_NEXT, NULL }, + { 0, CMD_SCREEN_HELP, NULL }, + { 0, CMD_SCREEN_PLAY, NULL }, + { 0, CMD_SCREEN_FILE, NULL }, #ifdef ENABLE_SEARCH_SCREEN - { 0, CMD_SCREEN_SEARCH, NULL }, + { 0, CMD_SCREEN_SEARCH, NULL }, #endif #ifdef ENABLE_KEYDEF_SCREEN - { 0, CMD_SCREEN_KEYDEF, NULL }, + { 0, CMD_SCREEN_KEYDEF, NULL }, #endif - { 0, CMD_NONE, NULL }, - { 0, CMD_NONE, NULL }, - { 1, CMD_NONE, N_("Keys - Global") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_STOP, NULL }, - { 0, CMD_PAUSE, NULL }, - { 0, CMD_CROP, NULL }, - { 0, CMD_TRACK_NEXT, NULL }, - { 0, CMD_TRACK_PREVIOUS, NULL }, - { 0, CMD_SEEK_FORWARD, NULL }, - { 0, CMD_SEEK_BACKWARD, NULL }, - { 0, CMD_VOLUME_DOWN, NULL }, - { 0, CMD_VOLUME_UP, NULL }, - { 0, CMD_NONE, NULL }, - { 0, CMD_REPEAT, NULL }, - { 0, CMD_RANDOM, NULL }, - { 0, CMD_CROSSFADE, NULL }, - { 0, CMD_SHUFFLE, NULL }, - { 0, CMD_DB_UPDATE, NULL }, - { 0, CMD_NONE, NULL }, - { 0, CMD_LIST_FIND, NULL }, - { 0, CMD_LIST_RFIND, NULL }, - { 0, CMD_LIST_FIND_NEXT, NULL }, - { 0, CMD_LIST_RFIND_NEXT, NULL }, - { 0, CMD_TOGGLE_FIND_WRAP, NULL }, - { 0, CMD_NONE, NULL }, - { 0, CMD_QUIT, NULL }, - - { 0, CMD_NONE, NULL }, - { 0, CMD_NONE, NULL }, - { 1, CMD_NONE, N_("Keys - Playlist screen") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_PLAY, N_("Play") }, - { 0, CMD_DELETE, NULL }, - { 0, CMD_CLEAR, NULL }, - { 1, CMD_LIST_MOVE_UP, N_("Move song up") }, - { 0, CMD_LIST_MOVE_DOWN, N_("Move song down") }, - { 0, CMD_ADD, NULL }, - { 0, CMD_SAVE_PLAYLIST, NULL }, - { 0, CMD_SCREEN_UPDATE, N_("Center") }, - { 0, CMD_TOGGLE_AUTOCENTER, NULL }, - - { 0, CMD_NONE, NULL }, - { 0, CMD_NONE, NULL }, - { 1, CMD_NONE, N_("Keys - Browse screen") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_PLAY, N_("Enter directory/Select and play song") }, - { 0, CMD_SELECT, NULL }, - { 0, CMD_ADD, N_("Append song to playlist") }, - { 0, CMD_SAVE_PLAYLIST, NULL }, - { 0, CMD_DELETE, N_("Delete playlist") }, - { 0, CMD_GO_PARENT_DIRECTORY, NULL }, - { 0, CMD_GO_ROOT_DIRECTORY, NULL }, - { 0, CMD_SCREEN_UPDATE, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_NONE, NULL }, + { 1, CMD_NONE, N_("Keys - Global") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_STOP, NULL }, + { 0, CMD_PAUSE, NULL }, + { 0, CMD_CROP, NULL }, + { 0, CMD_TRACK_NEXT, NULL }, + { 0, CMD_TRACK_PREVIOUS, NULL }, + { 0, CMD_SEEK_FORWARD, NULL }, + { 0, CMD_SEEK_BACKWARD, NULL }, + { 0, CMD_VOLUME_DOWN, NULL }, + { 0, CMD_VOLUME_UP, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_REPEAT, NULL }, + { 0, CMD_RANDOM, NULL }, + { 0, CMD_CROSSFADE, NULL }, + { 0, CMD_SHUFFLE, NULL }, + { 0, CMD_DB_UPDATE, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_LIST_FIND, NULL }, + { 0, CMD_LIST_RFIND, NULL }, + { 0, CMD_LIST_FIND_NEXT, NULL }, + { 0, CMD_LIST_RFIND_NEXT, NULL }, + { 0, CMD_TOGGLE_FIND_WRAP, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_QUIT, NULL }, + + { 0, CMD_NONE, NULL }, + { 0, CMD_NONE, NULL }, + { 1, CMD_NONE, N_("Keys - Playlist screen") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_PLAY, N_("Play") }, + { 0, CMD_DELETE, NULL }, + { 0, CMD_CLEAR, NULL }, + { 1, CMD_LIST_MOVE_UP, N_("Move song up") }, + { 0, CMD_LIST_MOVE_DOWN, N_("Move song down") }, + { 0, CMD_ADD, NULL }, + { 0, CMD_SAVE_PLAYLIST, NULL }, + { 0, CMD_SCREEN_UPDATE, N_("Center") }, + { 0, CMD_TOGGLE_AUTOCENTER, NULL }, + + { 0, CMD_NONE, NULL }, + { 0, CMD_NONE, NULL }, + { 1, CMD_NONE, N_("Keys - Browse screen") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_PLAY, N_("Enter directory/Select and play song") }, + { 0, CMD_SELECT, NULL }, + { 0, CMD_ADD, N_("Append song to playlist") }, + { 0, CMD_SAVE_PLAYLIST, NULL }, + { 0, CMD_DELETE, N_("Delete playlist") }, + { 0, CMD_GO_PARENT_DIRECTORY, NULL }, + { 0, CMD_GO_ROOT_DIRECTORY, NULL }, + { 0, CMD_SCREEN_UPDATE, NULL }, #ifdef ENABLE_SEARCH_SCREEN - { 0, CMD_NONE, NULL }, - { 0, CMD_NONE, NULL }, - { 1, CMD_NONE, N_("Keys - Search screen") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_SCREEN_SEARCH, N_("Search") }, - { 0, CMD_PLAY, N_("Select and play") }, - { 0, CMD_SELECT, NULL }, - { 0, CMD_ADD, N_("Append song to playlist") }, - { 0, CMD_SELECT_ALL, NULL }, - { 0, CMD_SEARCH_MODE, NULL }, + { 0, CMD_NONE, NULL }, + { 0, CMD_NONE, NULL }, + { 1, CMD_NONE, N_("Keys - Search screen") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_SCREEN_SEARCH, N_("Search") }, + { 0, CMD_PLAY, N_("Select and play") }, + { 0, CMD_SELECT, NULL }, + { 0, CMD_ADD, N_("Append song to playlist") }, + { 0, CMD_SELECT_ALL, NULL }, + { 0, CMD_SEARCH_MODE, NULL }, #endif #ifdef ENABLE_LYRICS_SCREEN - { 0, CMD_NONE, NULL }, - { 0, CMD_NONE, NULL }, - { 1, CMD_NONE, N_("Keys - Lyrics screen") }, - { 2, CMD_NONE, NULL }, - { 0, CMD_SCREEN_LYRICS, N_("View Lyrics") }, - { 0, CMD_SELECT, N_("(Re)load lyrics") }, - { 0, CMD_INTERRUPT, N_("Interrupt retrieval") }, - { 0, CMD_LYRICS_UPDATE, N_("Explicitly download lyrics") }, - { 0, CMD_ADD, N_("Save lyrics") }, + { 0, CMD_NONE, NULL }, + { 0, CMD_NONE, NULL }, + { 1, CMD_NONE, N_("Keys - Lyrics screen") }, + { 2, CMD_NONE, NULL }, + { 0, CMD_SCREEN_LYRICS, N_("View Lyrics") }, + { 0, CMD_SELECT, N_("(Re)load lyrics") }, + { 0, CMD_INTERRUPT, N_("Interrupt retrieval") }, + { 0, CMD_LYRICS_UPDATE, N_("Explicitly download lyrics") }, + { 0, CMD_ADD, N_("Save lyrics") }, #endif }; #define help_text_rows (sizeof(help_text) / sizeof(help_text[0])) -static list_window_t *lw = NULL; - +static list_window_t *lw; static const char * list_callback(unsigned idx, int *highlight, mpd_unused void *data) diff --git a/src/strfsong.c b/src/strfsong.c index cef2056..ed3e20f 100644 --- a/src/strfsong.c +++ b/src/strfsong.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * Based on mpc's songToFormatedString modified for glib and ncmpc * * @@ -33,11 +31,12 @@ skip(const gchar * p) gint stack = 0; while (*p != '\0') { - if(*p == '[') stack++; - if(*p == '#' && p[1] != '\0') { + if (*p == '[') + stack++; + if (*p == '#' && p[1] != '\0') { /* skip escaped stuff */ ++p; - } else if(stack) { + } else if (stack) { if(*p == ']') stack--; } else { if(*p == '&' || *p == '|' || *p == ']') { @@ -63,7 +62,7 @@ _strfsong(gchar *s, gboolean found = FALSE; memset(s, 0, max); - if( song==NULL ) + if (song == NULL) return 0; for (p = format; *p != '\0' && length * * This program is free software; you can redistribute it and/or modify diff --git a/src/support.h b/src/support.h index 9edc20f..16dd7ae 100644 --- a/src/support.h +++ b/src/support.h @@ -16,4 +16,4 @@ typedef struct { char *strscroll(char *str, char *separator, int width, scroll_state_t *st); -#endif +#endif diff --git a/src/utils.c b/src/utils.c index fd7a064..cbb6963 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify diff --git a/src/wreadln.c b/src/wreadln.c index d01cfcb..e52d1fd 100644 --- a/src/wreadln.c +++ b/src/wreadln.c @@ -1,6 +1,4 @@ -/* - * $Id$ - * +/* * (c) 2004 by Kalle Wallin * * This program is free software; you can redistribute it and/or modify diff --git a/src/wreadln.h b/src/wreadln.h index 2dd2191..9ce6ae4 100644 --- a/src/wreadln.h +++ b/src/wreadln.h @@ -26,14 +26,14 @@ typedef void (*wrln_gcmp_post_cb_t) (GCompletion *gcmp, gchar *s, GList *l, void *data); extern wrln_gcmp_post_cb_t wrln_post_completion_callback; -/* Note, wreadln calls curs_set() and noecho(), to enable cursor and +/* Note, wreadln calls curs_set() and noecho(), to enable cursor and * disable echo. wreadln will not restore these settings when exiting! */ gchar *wreadln(WINDOW *w, /* the curses window to use */ const gchar *prompt, /* the prompt string or NULL */ const gchar *initial_value, /* initial value or NULL for a empty line - * (char *) -1 = get value from history */ + * (char *) -1 = get value from history */ gint x1, /* the maximum x position or 0 */ - GList **history, /* a pointer to a history list or NULL */ + GList **history, /* a pointer to a history list or NULL */ GCompletion *gcmp /* a GCompletion structure or NULL */ ); -- 2.30.2