diff -ruN gmediaserver-0.8.0-old/src/main.c gmediaserver-0.8.0-new/src/main.c --- gmediaserver-0.8.0-old/src/main.c 2005-09-10 09:26:00.000000000 +0200 +++ gmediaserver-0.8.0-new/src/main.c 2005-09-17 20:48:01.000000000 +0200 @@ -32,8 +32,10 @@ #include /* Gnulib, C99 */ #include /* ? */ #include /* ? */ +#ifdef HAVE_ICONV #include /* Gnulib, POSIX */ #include "iconvme.h" /* Gnulib */ +#endif #ifdef HAVE_NL_LANGINFO #include #endif @@ -71,8 +73,10 @@ #ifdef HAVE_ID3LIB { "disable-id3", no_argument, NULL, OPT_DISABLE_ID3 }, #endif +#ifdef HAVE_ICONV { "in-charset", required_argument, NULL, OPT_IN_CHARSET }, { "device-charset", required_argument, NULL, OPT_DEVICE_CHARSET }, +#endif { "friendly-name", required_argument, NULL, OPT_FRIENDLY_NAME }, { "pid-file", required_argument, NULL, OPT_PIDFILE }, { "profile", required_argument, NULL, OPT_PROFILE, }, @@ -90,15 +94,21 @@ { NULL, 0, NULL, 0 } }; +#ifdef HAVE_ICONV iconv_t charset_convert = (iconv_t) -1; +#endif const char version_etc_copyright[] = "Copyright (C) 2005 Oskar Liljeblad."; char * convert_string(const char *str) { +#ifdef HAVE_ICONV if (charset_convert == (iconv_t) -1) return xstrdup(str); return iconv_alloc(charset_convert, str); +#else + return xstrdup(str); +#endif } static void @@ -140,13 +150,17 @@ char *logfilename = NULL; char *timestamp_format = NULL; uint32_t expire_time; +#ifdef HAVE_ICONV char *in_charset = NULL; char *device_charset = NULL; +#endif set_program_name(argv[0]); +#ifdef LOCALE if (setlocale(LC_ALL, "") == NULL) warn(_("cannot set locale: %s\n"), errstr); +#endif #ifdef ENABLE_NLS if (bindtextdomain(PACKAGE, LOCALEDIR) == NULL) warn(_("cannot bind message domain: %s\n"), errstr); @@ -174,12 +188,14 @@ id3_enabled = false; break; #endif +#ifdef HAVE_ICONV case OPT_IN_CHARSET: in_charset = optarg; break; case OPT_DEVICE_CHARSET: device_charset = optarg; break; +#endif case OPT_FRIENDLY_NAME: if (optarg[0] == '\0') die(_("friendly name cannot be empty\n")); @@ -320,6 +336,7 @@ init_logging(logfilename, timestamp_format); +#ifdef HAVE_ICONV if (device_charset != NULL) { if (in_charset == NULL) { #ifdef HAVE_NL_LANGINFO @@ -336,6 +353,7 @@ if (charset_convert == (iconv_t) -1) die(_("cannot create character set convertor\nTry using another value for --in-charset or --device-charset\n")); } +#endif /* We could write pid before initiating logging too. */ @@ -409,8 +427,10 @@ if (pidfilename != NULL) unlink(pidfilename); /* ignore errors */ +#ifdef HAVE_ICONV if (charset_convert != (iconv_t) -1) iconv_close(charset_convert); /* ignore errors (only EINVAL) */ +#endif finish_logging(true);