summaryrefslogtreecommitdiffstats
path: root/source3/web/swat.c
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 /source3/web/swat.c
parent3aed02989f0366c48ce2fa41186ad53caadc26d3 (diff)
downloadsamba-5b9ecb5ae3fbbe10260312608f1a175e683347fe.tar.gz
samba-5b9ecb5ae3fbbe10260312608f1a175e683347fe.tar.xz
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)
Diffstat (limited to 'source3/web/swat.c')
-rw-r--r--source3/web/swat.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/web/swat.c b/source3/web/swat.c
index 25dc9306ea6..d14e1bd1e9c 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.