Code

po: update German translation
[ncmpc.git] / src / options.c
index df1a9da16fff6fca44da8dc780a4155763a18a7d..e863c726f7173ddb73870d9338ee2aff4d92e42a 100644 (file)
@@ -1,5 +1,5 @@
 /* ncmpc (Ncurses MPD Client)
- * (c) 2004-2009 The Music Player Daemon Project
+ * (c) 2004-2010 The Music Player Daemon Project
  * Project homepage: http://musicpd.org
 
  * This program is free software; you can redistribute it and/or modify
@@ -49,13 +49,14 @@ typedef void (*option_callback_fn_t)(int c, const char *arg);
 
 
 options_t options = {
-       .port = DEFAULT_PORT,
        .crossfade_time = DEFAULT_CROSSFADE_TIME,
        .seek_time = 1,
 #ifdef ENABLE_LYRICS_SCREEN
        .lyrics_timeout = DEFAULT_LYRICS_TIMEOUT,
+       .lyrics_autosave = false,
 #endif
        .find_wrap = true,
+       .scroll_offset = 0,
        .wide_cursor = true,
        .audible_bell = true,
        .bell_on_wrap = true,
@@ -63,8 +64,8 @@ options_t options = {
 #ifndef NCMPC_MINI
        .scroll = DEFAULT_SCROLL,
        .welcome_screen_list = true,
-       .display_time = true,
        .jump_prefix_only = true,
+       .second_column = true,
 #endif
 };
 
@@ -78,8 +79,8 @@ static const arg_opt_t option_table[] = {
        { 'M', "no-mouse", NULL, "Disable mouse" },
 #endif
        { 'e', "exit", NULL, "Exit on connection errors" },
-       { 'p', "port", "PORT", "Connect to server on port [" DEFAULT_PORT_STR "]" },
-       { 'h', "host", "HOST", "Connect to server on host [" DEFAULT_HOST "]" },
+       { 'p', "port", "PORT", "Connect to server on port" },
+       { 'h', "host", "HOST", "Connect to server on host" },
        { 'P', "password","PASSWORD", "Connect with password" },
        { 'f', "config", "FILE", "Read configuration from file" },
        { 'k', "key-file","FILE", "Read configuration from file" },
@@ -250,23 +251,19 @@ handle_option(int c, const char *arg)
                options.port = atoi(arg);
                break;
        case 'h': /* --host */
-               if( options.host )
-                       g_free(options.host);
+               g_free(options.host);
                options.host = g_strdup(arg);
                break;
        case 'P': /* --password */
-               if( options.password )
-                       g_free(options.password);
+               g_free(options.password);
                options.password = locale_to_utf8(arg);
                break;
        case 'f': /* --config */
-               if( options.config_file )
-                       g_free(options.config_file);
+               g_free(options.config_file);
                options.config_file = g_strdup(arg);
                break;
        case 'k': /* --key-file */
-               if( options.key_file )
-                       g_free(options.key_file);
+               g_free(options.key_file);
                options.key_file = g_strdup(arg);
                break;
        case 'S': /* --key-file */
@@ -366,38 +363,38 @@ options_parse(int argc, const char *argv[])
                option_cb (opt->shortopt, NULL);
        else if (opt && opt->argument)
                option_error(ERROR_MISSING_ARGUMENT, opt->longopt, opt->argument);
+
+       if (!options.host && getenv("MPD_HOST")) {
+               g_free(options.host);
+               options.host = g_strdup(getenv("MPD_HOST"));
+       }
 }
 
 void
 options_init(void)
 {
-       const char *value;
-       char *tmp;
-
-       /* get initial values for host and password from MPD_HOST (environment) */
-       if ((value = g_getenv(MPD_HOST_ENV)))
-               options.host = g_strdup(value);
-       else
-               options.host = g_strdup(DEFAULT_HOST);
-
-       if ((tmp = g_strstr_len(options.host, strlen(options.host), "@"))) {
-               char *oldhost = options.host;
-               *tmp  = '\0';
-               options.password = locale_to_utf8(oldhost);
-               options.host = g_strdup(tmp+1);
-               g_free(oldhost);
-       }
-
-       /* get initial values for port from MPD_PORT (environment) */
-       if ((value = g_getenv(MPD_PORT_ENV)))
-               options.port = atoi(value);
-
        /* default option values */
        options.list_format = g_strdup(DEFAULT_LIST_FORMAT);
        options.status_format = g_strdup(DEFAULT_STATUS_FORMAT);
        options.screen_list = g_strsplit_set(DEFAULT_SCREEN_LIST, " ", 0);
-       options.timedisplay_type = g_strdup(DEFAULT_TIMEDISPLAY_TYPE);
 #ifndef NCMPC_MINI
        options.scroll_sep = g_strdup(DEFAULT_SCROLL_SEP);
 #endif
 }
+
+void
+options_deinit(void)
+{
+       g_free(options.host);
+       g_free(options.username);
+       g_free(options.password);
+       g_free(options.config_file);
+       g_free(options.key_file);
+       g_free(options.list_format);
+       g_free(options.status_format);
+       g_strfreev(options.screen_list);
+#ifndef NCMPC_MINI
+       g_free(options.xterm_title_format);
+       g_free(options.scroll_sep);
+#endif
+}