diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-08-27 11:41:05 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:30:14 -0500 |
commit | 5b9ecb5ae3fbbe10260312608f1a175e683347fe (patch) | |
tree | c410824b7e3f5bb4035da6c21c7ac171840a80df /source3/web | |
parent | 3aed02989f0366c48ce2fa41186ad53caadc26d3 (diff) | |
download | samba-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)
Diffstat (limited to 'source3/web')
-rw-r--r-- | source3/web/statuspage.c | 2 | ||||
-rw-r--r-- | source3/web/swat.c | 25 |
2 files changed, 27 insertions, 0 deletions
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. |