2005-09-20 03:06:26 +03:00
|
|
|
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 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
#include <stdbool.h> /* Gnulib, C99 */
|
|
|
|
#include <signal.h> /* ? */
|
2005-09-20 03:06:26 +03:00
|
|
|
#include <locale.h> /* ? */
|
2005-08-30 15:49:43 +03:00
|
|
|
+#ifdef HAVE_ICONV
|
|
|
|
#include <iconv.h> /* Gnulib, POSIX */
|
|
|
|
#include "iconvme.h" /* Gnulib */
|
|
|
|
+#endif
|
|
|
|
#ifdef HAVE_NL_LANGINFO
|
|
|
|
#include <langinfo.h>
|
|
|
|
#endif
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -71,8 +73,10 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
#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, },
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -90,15 +94,21 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
{ 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
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -140,13 +150,17 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
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);
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -174,12 +188,14 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
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"));
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -320,6 +336,7 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
|
|
|
|
init_logging(logfilename, timestamp_format);
|
|
|
|
|
|
|
|
+#ifdef HAVE_ICONV
|
|
|
|
if (device_charset != NULL) {
|
|
|
|
if (in_charset == NULL) {
|
|
|
|
#ifdef HAVE_NL_LANGINFO
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -336,6 +353,7 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
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.
|
|
|
|
*/
|
2005-09-20 03:06:26 +03:00
|
|
|
@@ -409,8 +427,10 @@
|
2005-08-30 15:49:43 +03:00
|
|
|
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);
|
|
|
|
|