Hi, Maarten suggested to hurry as 1.0 is on it's way, so attached are two more patches:
1. 0001-mingw-logtarget-windbg.patch (win32 platform) Adds a new log target named "windbg" for windows builds which replaces the "syslog" target on this platform. It uses OutputDebugString() for logging. This is a core feature in windows which is similar to the kernel's message ringbuffer (i.e.: no log files, log entirely in memory, not persistent) For reading such logs, a tool named dbgview is available at www.sysinternals.com 2. 0002-configure-honor-without-nls.patch (all platforms) Despite what configure --help says, the current setup does ignore this flag, always using NLS (and linking against libintl etc.) This is actually not a bug in pulseaudio itself but 2 bugs in intltool and glib's gettext M4 macros. Since intltool looks pretty dead to me (last commit ages ago) and I needed a fix *fast*, I chose to implement a workaround for that. Cheers -Fritz
diff --git a/src/daemon/cmdline.c b/src/daemon/cmdline.c
index 4854aff..25a9414 100644
--- a/src/daemon/cmdline.c
+++ b/src/daemon/cmdline.c
@@ -145,7 +145,11 @@ void pa_cmdline_help(const char *argv0) {
" this time passed\n"
" --log-level[=LEVEL] Increase or set verbosity
level\n"
" -v Increase the verbosity
level\n"
+#ifdef OS_IS_WIN32
+ " --log-target={auto,windbg,stderr,file:PATH}\n"
+#else
" --log-target={auto,syslog,stderr,file:PATH}\n"
+#endif
" Specify the log target\n"
" --log-meta[=BOOL] Include code location in
log messages\n"
" --log-time[=BOOL] Include timestamps in log
messages\n"
@@ -319,7 +323,11 @@ int pa_cmdline_parse(pa_daemon_conf *conf, int argc, char
*const argv [], int *d
case ARG_LOG_TARGET:
if (pa_daemon_conf_set_log_target(conf, optarg) < 0) {
+#ifdef OS_IS_WIN32
+ pa_log(_("Invalid log target: use either 'windbg',
'stderr' or 'auto' or a valid file name 'file:<path>'."));
+#else
pa_log(_("Invalid log target: use either 'syslog',
'stderr' or 'auto' or a valid file name 'file:<path>'."));
+#endif
goto fail;
}
break;
diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
index 67b772a..fca82bb 100644
--- a/src/daemon/daemon-conf.c
+++ b/src/daemon/daemon-conf.c
@@ -179,11 +179,17 @@ int pa_daemon_conf_set_log_target(pa_daemon_conf *c,
const char *string) {
pa_assert(c);
pa_assert(string);
- if (!strcmp(string, "auto"))
+ if (!strcmp(string, "auto")) {
c->auto_log_target = 1;
- else if (!strcmp(string, "syslog")) {
+#ifdef OS_IS_WIN32
+ } else if (!strcmp(string, "windbg")) {
+ c->auto_log_target = 0;
+ c->log_target = PA_LOG_WINDBG;
+#else
+ } else if (!strcmp(string, "syslog")) {
c->auto_log_target = 0;
c->log_target = PA_LOG_SYSLOG;
+#endif
} else if (!strcmp(string, "stderr")) {
c->auto_log_target = 0;
c->log_target = PA_LOG_STDERR;
diff --git a/src/daemon/main.c b/src/daemon/main.c
index 5316656..8ba03b4 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -811,8 +811,13 @@ int main(int argc, char *argv[]) {
daemon_pipe[0] = -1;
#endif
- if (conf->auto_log_target)
+ if (conf->auto_log_target) {
+#ifdef OS_IS_WIN32
+ pa_log_set_target(PA_LOG_WINDBG);
+#else
pa_log_set_target(PA_LOG_SYSLOG);
+#endif
+ }
#ifdef HAVE_SETSID
if (setsid() < 0) {
diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c
index 18fafe3..1bb9829 100644
--- a/src/pulse/client-conf.c
+++ b/src/pulse/client-conf.c
@@ -71,7 +71,11 @@ pa_client_conf *pa_client_conf_new(void) {
pa_client_conf *c = pa_xmemdup(&default_conf, sizeof(default_conf));
c->daemon_binary = pa_xstrdup(PA_BINARY);
+#ifdef OS_IS_WIN32
+ c->extra_arguments = pa_xstrdup("--log-target=windbg");
+#else
c->extra_arguments = pa_xstrdup("--log-target=syslog");
+#endif
c->cookie_file = pa_xstrdup(PA_NATIVE_COOKIE_FILE);
return c;
diff --git a/src/pulsecore/log.c b/src/pulsecore/log.c
index b12cbf0..caa4774 100644
--- a/src/pulsecore/log.c
+++ b/src/pulsecore/log.c
@@ -426,6 +426,22 @@ void pa_log_levelv_meta(
break;
}
+#ifdef OS_IS_WIN32
+ case PA_LOG_WINDBG: {
+ char *local_t;
+ char *line;
+ /* We shouldn't be using dynamic allocation here to
+ * minimize the hit in RT threads */
+ if ((local_t = pa_utf8_to_locale(t)))
+ t = local_t;
+ /* No timestamp, as windows debug buffer facility already
provides one */
+ line = pa_sprintf_malloc("%c %s %s", level_to_char[level],
location, t);
+ OutputDebugStringA(line);
+ pa_xfree(line);
+ pa_xfree(local_t);
+ break;
+ }
+#endif
case PA_LOG_NULL:
default:
break;
diff --git a/src/pulsecore/log.h b/src/pulsecore/log.h
index ad04e7b..e209ec5 100644
--- a/src/pulsecore/log.h
+++ b/src/pulsecore/log.h
@@ -37,6 +37,7 @@ typedef enum pa_log_target {
PA_LOG_SYSLOG,
PA_LOG_NULL, /* to /dev/null */
PA_LOG_FD, /* to a file descriptor, e.g. a char device */
+ PA_LOG_WINDBG, /* log to windows debug buffer */
PA_LOG_TARGET_MAX
} pa_log_target_t;
diff --git a/bootstrap.sh b/bootstrap.sh
index c7c8582..1c7895b 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -87,6 +87,12 @@ else
test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
intltoolize --copy --force --automake
+ # There's a stupid bug in intltool:
+ # It does not honor --disable-nls and still complains about missing/old
+ # versions. Until that is fixed in upstream, we work around, by providing
+ # our own fixed M4 file and therefore delete the one, generated by
intltoolize.
+ rm -f m4/intltool.m4
+
"$LIBTOOLIZE" -c --force
run_versioned aclocal "$VERSION" -I m4
run_versioned autoconf 2.63 -Wall
diff --git a/configure.ac b/configure.ac
index b79e0e0..a0b41f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -555,7 +555,14 @@ IT_PROG_INTLTOOL([0.35.0])
GETTEXT_PACKAGE=pulseaudio
AC_SUBST([GETTEXT_PACKAGE])
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
-AM_GLIB_GNU_GETTEXT
+
+dnl AM_GLIB_GNU_GETTEXT has a nasty side effect:
+dnl If it finds a working GNU gettext, it always
+dnl sets USE_NLS=yes. This obviously renders the
+dnl option --disable-nls useless.
+dnl So: invoke it conditionally.
+AS_IF([test x$USE_NLS = xyes],
+ [AM_GLIB_GNU_GETTEXT])
pulselocaledir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(pulselocaledir)
diff --git a/m4/pa_intltool.m4 b/m4/pa_intltool.m4
new file mode 100644
index 0000000..16aeca2
--- /dev/null
+++ b/m4/pa_intltool.m4
@@ -0,0 +1,228 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <[email protected]>
+## Kenneth Christiansen <[email protected]>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 40 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL], [
+AC_PREREQ([2.50])dnl
+AC_REQUIRE([AM_NLS])dnl
+
+case "$am__api_version" in
+ 1.[01234])
+ AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
+ ;;
+ *)
+ ;;
+esac
+
+if test -n "$1"; then
+ AC_MSG_CHECKING([for intltool >= $1])
+
+ INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 +
$ 2 * 100 + $ 3; }'`
+ INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" "
-f3`
+ [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F.
'{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
+ ]
+ AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+ test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge
"$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or
later.])
+ fi
+fi
+
+AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
+AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
+AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
+if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z
"$INTLTOOL_EXTRACT"; then
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([The intltool scripts were not found. Please install
intltool.])
+ fi
+fi
+
+ INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p
$(top_srcdir)/po $< [$]@'
+ INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE)
; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@'
+ INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+ INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE)
$(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c
$(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
+
+_IT_SUBST(INTLTOOL_DESKTOP_RULE)
+_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
+_IT_SUBST(INTLTOOL_KEYS_RULE)
+_IT_SUBST(INTLTOOL_PROP_RULE)
+_IT_SUBST(INTLTOOL_OAF_RULE)
+_IT_SUBST(INTLTOOL_PONG_RULE)
+_IT_SUBST(INTLTOOL_SERVER_RULE)
+_IT_SUBST(INTLTOOL_SHEET_RULE)
+_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
+_IT_SUBST(INTLTOOL_UI_RULE)
+_IT_SUBST(INTLTOOL_XAM_RULE)
+_IT_SUBST(INTLTOOL_KBD_RULE)
+_IT_SUBST(INTLTOOL_XML_RULE)
+_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+_IT_SUBST(INTLTOOL_CAVES_RULE)
+_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
+_IT_SUBST(INTLTOOL_THEME_RULE)
+_IT_SUBST(INTLTOOL_SERVICE_RULE)
+_IT_SUBST(INTLTOOL_POLICY_RULE)
+
+# Check the gettext tools to make sure they are GNU
+AC_PATH_PROG(XGETTEXT, xgettext)
+AC_PATH_PROG(MSGMERGE, msgmerge)
+AC_PATH_PROG(MSGFMT, msgfmt)
+AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+ fi
+fi
+xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
+mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
+mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
+if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+ fi
+fi
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([perl not found])
+ fi
+fi
+AC_MSG_CHECKING([for perl >= 5.8.1])
+$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+if test $? -ne 0; then
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([perl 5.8.1 is required for intltool])
+ fi
+else
+ IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
+ AC_MSG_RESULT([$IT_PERL_VERSION])
+fi
+if test "x$2" != "xno-xml"; then
+ AC_MSG_CHECKING([for XML::Parser])
+ if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+ AC_MSG_RESULT([ok])
+ else
+ if test "$USE_NLS" = "yes" ; then
+ AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+ fi
+ fi
+fi
+
+# Substitute ALL_LINGUAS so we can use it in po/Makefile
+AC_SUBST(ALL_LINGUAS)
+
+# Set DATADIRNAME correctly if it is not set yet
+# (copied from glib-gettext.m4)
+if test -z "$DATADIRNAME"; then
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[extern int _nl_msg_cat_cntr;
+ return _nl_msg_cat_cntr]])],
+ [DATADIRNAME=share],
+ [case $host in
+ *-*-solaris*)
+ dnl On Solaris, if bind_textdomain_codeset is in libc,
+ dnl GNU format message catalog is always supported,
+ dnl since both are added to the libc all together.
+ dnl Hence, we'd like to go with DATADIRNAME=share
+ dnl in this case.
+ AC_CHECK_FUNC(bind_textdomain_codeset,
+ [DATADIRNAME=share], [DATADIRNAME=lib])
+ ;;
+ *)
+ [DATADIRNAME=lib]
+ ;;
+ esac])
+fi
+AC_SUBST(DATADIRNAME)
+
+IT_PO_SUBDIR([po])
+])
+
+
+# IT_PO_SUBDIR(DIRNAME)
+# ---------------------
+# All po subdirs have to be declared with this macro; the subdir "po" is
+# declared by IT_PROG_INTLTOOL.
+#
+AC_DEFUN([IT_PO_SUBDIR],
+[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
+dnl
+dnl The following CONFIG_COMMANDS should be executed at the very end
+dnl of config.status.
+AC_CONFIG_COMMANDS_PRE([
+ AC_CONFIG_COMMANDS([$1/stamp-it], [
+ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
+ AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
+ fi
+ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
+ >"$1/stamp-it.tmp"
+ [sed '/^#/d
+ s/^[[].*] *//
+ /^[ ]*$/d
+ '"s|^| $ac_top_srcdir/|" \
+ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
+ ]
+ [sed '/^POTFILES =/,/[^\\]$/ {
+ /^POTFILES =/!d
+ r $1/POTFILES
+ }
+ ' "$1/Makefile.in" >"$1/Makefile"]
+ rm -f "$1/Makefile.tmp"
+ mv "$1/stamp-it.tmp" "$1/stamp-it"
+ ])
+])dnl
+])
+
+# _IT_SUBST(VARIABLE)
+# -------------------
+# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
+#
+AC_DEFUN([_IT_SUBST],
+[
+AC_SUBST([$1])
+m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
+]
+)
+
+# deprecated macros
+AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
+# A hint is needed for aclocal from Automake <= 1.9.4:
+# AC_DEFUN([AC_PROG_INTLTOOL], ...)
diff --git a/src/pulsecore/proplist-util.c b/src/pulsecore/proplist-util.c
index 642c498..ae47ba8 100644
--- a/src/pulsecore/proplist-util.c
+++ b/src/pulsecore/proplist-util.c
@@ -25,7 +25,9 @@
#include <string.h>
#include <locale.h>
+#ifdef ENABLE_NLS
#include <libintl.h>
+#endif
#ifdef __APPLE__
#include <crt_externs.h>
@@ -207,10 +209,14 @@ void pa_init_proplist(pa_proplist *p) {
}
if (!pa_proplist_contains(p, PA_PROP_APPLICATION_LANGUAGE)) {
+#ifdef ENABLE_NLS
const char *l;
if ((l = setlocale(LC_MESSAGES, NULL)))
pa_proplist_sets(p, PA_PROP_APPLICATION_LANGUAGE, l);
+#else
+ pa_proplist_sets(p, PA_PROP_APPLICATION_LANGUAGE, "C");
+#endif
}
if (!pa_proplist_contains(p, PA_PROP_WINDOW_X11_DISPLAY)) {
signature.asc
Description: OpenPGP digital signature
_______________________________________________ pulseaudio-discuss mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
