summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-08-27 11:41:05 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:30:14 -0500
commit5b9ecb5ae3fbbe10260312608f1a175e683347fe (patch)
treec410824b7e3f5bb4035da6c21c7ac171840a80df
parent3aed02989f0366c48ce2fa41186ad53caadc26d3 (diff)
downloadsamba-5b9ecb5ae3fbbe10260312608f1a175e683347fe.tar.gz
samba-5b9ecb5ae3fbbe10260312608f1a175e683347fe.tar.bz2
samba-5b9ecb5ae3fbbe10260312608f1a175e683347fe.zip
r24701: Fix the swat build
Swat has not been built by default for a while, so I did not notice that the _ macro is actually used. Re-add the lang_msg_rotate function, this time only to swat so that this is the only binary that has to take the 16k penalty. (This used to be commit 191e1ef840c293f8575cc0a3f3ffba2080431fae)
-rw-r--r--source3/configure.in14
-rw-r--r--source3/web/statuspage.c2
-rw-r--r--source3/web/swat.c25
3 files changed, 35 insertions, 6 deletions
diff --git a/source3/configure.in b/source3/configure.in
index 0d0fdb1394..6997106ffb 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -354,21 +354,23 @@ AC_LIBREPLACE_CC_CHECKS
m4_include(lib/socket_wrapper/config.m4)
+SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)'
+SWAT_INSTALL_TARGETS=installswat
AC_ARG_ENABLE(swat,
[ --enable-swat Build the SWAT tool (default=yes)],
[
case "$enable_swat" in
- no) ;;
- *)
- SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)'
- SWAT_INSTALL_TARGETS=installswat
+ no)
+ SWAT_SBIN_TARGETS=''
+ SWAT_INSTALL_TARGETS=''
;;
esac
- AC_SUBST(SWAT_SBIN_TARGETS)
- AC_SUBST(SWAT_INSTALL_TARGETS)
])
+AC_SUBST(SWAT_SBIN_TARGETS)
+AC_SUBST(SWAT_INSTALL_TARGETS)
+
#################################################
# set prefix for 'make test'
selftest_prefix="./"
diff --git a/source3/web/statuspage.c b/source3/web/statuspage.c
index f4f84cd239..e90a94d9e7 100644
--- a/source3/web/statuspage.c
+++ b/source3/web/statuspage.c
@@ -20,6 +20,8 @@
#include "includes.h"
#include "web/swat_proto.h"
+#define _(x) lang_msg_rotate(x)
+
#define PIDMAP struct PidMap
/* how long to wait for start/stops to take effect */
diff --git a/source3/web/swat.c b/source3/web/swat.c
index 25dc9306ea..d14e1bd1e9 100644
--- a/source3/web/swat.c
+++ b/source3/web/swat.c
@@ -51,6 +51,7 @@ static int iNumNonAutoPrintServices = 0;
#define ENABLE_USER_FLAG "enable_user_flag"
#define RHOST "remote_host"
+#define _(x) lang_msg_rotate(x)
/****************************************************************************
****************************************************************************/
@@ -1328,6 +1329,30 @@ static void printers_page(void)
printf("</FORM>\n");
}
+/*
+ when the _() translation macro is used there is no obvious place to free
+ the resulting string and there is no easy way to give a static pointer.
+ All we can do is rotate between some static buffers and hope a single d_printf()
+ doesn't have more calls to _() than the number of buffers
+*/
+
+const char *lang_msg_rotate(const char *msgid)
+{
+#define NUM_LANG_BUFS 16
+ char *msgstr;
+ static pstring bufs[NUM_LANG_BUFS];
+ static int next;
+
+ msgstr = (char *)lang_msg(msgid);
+ if (!msgstr) return msgid;
+
+ pstrcpy(bufs[next], msgstr);
+ msgstr = bufs[next];
+
+ next = (next+1) % NUM_LANG_BUFS;
+
+ return msgstr;
+}
/**
* main function for SWAT.