Author: vlendec Date: 2007-08-27 11:41:05 +0000 (Mon, 27 Aug 2007) New Revision: 24701
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24701 Log: 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. Modified: branches/SAMBA_3_2/source/configure.in branches/SAMBA_3_2/source/web/statuspage.c branches/SAMBA_3_2/source/web/swat.c branches/SAMBA_3_2_0/source/configure.in branches/SAMBA_3_2_0/source/web/statuspage.c branches/SAMBA_3_2_0/source/web/swat.c Changeset: Modified: branches/SAMBA_3_2/source/configure.in =================================================================== --- branches/SAMBA_3_2/source/configure.in 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2/source/configure.in 2007-08-27 11:41:05 UTC (rev 24701) @@ -354,21 +354,23 @@ 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="./" Modified: branches/SAMBA_3_2/source/web/statuspage.c =================================================================== --- branches/SAMBA_3_2/source/web/statuspage.c 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2/source/web/statuspage.c 2007-08-27 11:41:05 UTC (rev 24701) @@ -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 */ Modified: branches/SAMBA_3_2/source/web/swat.c =================================================================== --- branches/SAMBA_3_2/source/web/swat.c 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2/source/web/swat.c 2007-08-27 11:41:05 UTC (rev 24701) @@ -51,6 +51,7 @@ #define ENABLE_USER_FLAG "enable_user_flag" #define RHOST "remote_host" +#define _(x) lang_msg_rotate(x) /**************************************************************************** ****************************************************************************/ @@ -1328,7 +1329,31 @@ 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. **/ Modified: branches/SAMBA_3_2_0/source/configure.in =================================================================== --- branches/SAMBA_3_2_0/source/configure.in 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2_0/source/configure.in 2007-08-27 11:41:05 UTC (rev 24701) @@ -353,21 +353,23 @@ 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="./" Modified: branches/SAMBA_3_2_0/source/web/statuspage.c =================================================================== --- branches/SAMBA_3_2_0/source/web/statuspage.c 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2_0/source/web/statuspage.c 2007-08-27 11:41:05 UTC (rev 24701) @@ -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 */ Modified: branches/SAMBA_3_2_0/source/web/swat.c =================================================================== --- branches/SAMBA_3_2_0/source/web/swat.c 2007-08-27 11:17:48 UTC (rev 24700) +++ branches/SAMBA_3_2_0/source/web/swat.c 2007-08-27 11:41:05 UTC (rev 24701) @@ -51,6 +51,7 @@ #define ENABLE_USER_FLAG "enable_user_flag" #define RHOST "remote_host" +#define _(x) lang_msg_rotate(x) /**************************************************************************** ****************************************************************************/ @@ -1328,7 +1329,31 @@ 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. **/
