Hi,

For book keeping its easier if version 2 of a patch is sent to the same
thread as
the original (e.g., use --in-reply-to: <msgid> in git send-email) and
[PATCH v2 01/13]
in header.

Anyway, this one is v2 of [PATCH 01/13]
https://www.mail-archive.com/openvpn-devel@lists.sourceforge
.net/msg15583.html

On Thu, Oct 12, 2017 at 3:24 AM, Simon Rozman <si...@rozman.si> wrote:

> MinGW's snwprintf() is a replacement for ISO C's swprintf() used by
> MSVC.


A confusing statement as MinGW too has 'swprintf' and my suggestion
was to just use 'swprintf' both for mingw and MSVC. Then neither build
would depend on non-standard variants.

That said its fine if you want to keep this as just an MSVC compliance
patch..


> MSVC also provides _snwprintf(), however using it leads to
> unportable code.
>
> After a discussion with Selva Nair on devel mailing list, an agreement
> was reached to use swprintf() for MSVC builds.
>
> This patch uniforms snwprintf() usage while making it compile using
> MinGW and MSVC.
>
> Assigning _snwprintf() return value to unused variable was also removed
> at one occasion.
> ---
>  config-msvc.h                 | 3 ++-
>  src/openvpn/tun.c             | 2 +-
>  src/openvpnserv/interactive.c | 8 ++++----
>  3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/config-msvc.h b/config-msvc.h
> index 0bb153d..c940d15 100644
> --- a/config-msvc.h
> +++ b/config-msvc.h
> @@ -93,9 +93,10 @@
>  #define strncasecmp strnicmp
>  #define strcasecmp _stricmp
>
> -#if _MSC_VER<1900
> +#if _MSC_VER < 1900
>  #define snprintf _snprintf
>  #endif
> +#define snwprintf swprintf


>  #if _MSC_VER < 1800
>  #define strtoull strtoul
> diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c
> index 3639718..9e3ca41 100644
> --- a/src/openvpn/tun.c
> +++ b/src/openvpn/tun.c
> @@ -4622,7 +4622,7 @@ get_adapter_index_method_1(const char *guid)
>      DWORD index;
>      ULONG aindex;
>      wchar_t wbuf[256];
> -    _snwprintf(wbuf, SIZE(wbuf), L"\\DEVICE\\TCPIP_%S", guid);
> +    snwprintf(wbuf, SIZE(wbuf), L"\\DEVICE\\TCPIP_%S", guid);
>      wbuf [SIZE(wbuf) - 1] = 0;
>      if (GetAdapterIndex(wbuf, &aindex) != NO_ERROR)
>      {
> diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
> index 823b25b..a060a06 100644
> --- a/src/openvpnserv/interactive.c
> +++ b/src/openvpnserv/interactive.c
> @@ -276,7 +276,7 @@ ReturnProcessId(HANDLE pipe, DWORD pid, DWORD count,
> LPHANDLE events)
>       * Same format as error messages (3 line string) with error = 0 in
>       * 0x%08x format, PID on line 2 and a description "Process ID" on
> line 3
>       */
> -    _snwprintf(buf, _countof(buf), L"0x%08x\n0x%08x\n%s", 0, pid, msg);
> +    snwprintf(buf, _countof(buf), L"0x%08x\n0x%08x\n%s", 0, pid, msg);
>      buf[_countof(buf) - 1] = '\0';
>
>      WritePipeAsync(pipe, buf, wcslen(buf) * 2, count, events);
> @@ -1066,7 +1066,7 @@ RegisterDNS(LPVOID unused)
>
>      if (GetSystemDirectory(sys_path, MAX_PATH))
>      {
> -        _snwprintf(ipcfg, MAX_PATH, L"%s\\%s", sys_path, L"ipconfig.exe");
> +        snwprintf(ipcfg, MAX_PATH, L"%s\\%s", sys_path, L"ipconfig.exe");
>          ipcfg[MAX_PATH-1] = L'\0';
>      }
>
> @@ -1706,8 +1706,8 @@ RunOpenvpn(LPVOID p)
>      else if (exit_code != 0)
>      {
>          WCHAR buf[256];
> -        int len = _snwprintf(buf, _countof(buf),
> -                             L"OpenVPN exited with error: exit code =
> %lu", exit_code);
> +        snwprintf(buf, _countof(buf),
> +                  L"OpenVPN exited with error: exit code = %lu",
> exit_code);
>          buf[_countof(buf) - 1] =  L'\0';
>          ReturnError(pipe, ERROR_OPENVPN_STARTUP, buf, 1, &exit_event);
>      }
>

As said above, I would have replaced all _snwprintf and snwprintf by
swprintf and avoided the #define. That has the added advantage that mingw
builds also will no longer depend on the non-standard snwprintf.

Nevertheless I'm ok with this unless someone else objects.

Selva
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to