On Tue, Sep 26, 2023 at 07:57:54PM -0400, Daniel Dickman wrote:
> desmume 0.9.11 was released in 2015. There was no release of 0.9.12, and 
> 0.9.13 was released in May 2022.
> 
> Below diff updates to the latest release which moves us forward by 7 
> years.
> 
> The nice thing about the update is a lot of patches go away as they are 
> already integrated upstream. Also the updates switches from sdl1 -> sdl2. 
> The changelog mentions a lot of bug fixes and enhancements too.
> 
> Appears to continue to work on amd64. There are no consumers so this 
> update should be low risk for release.
> 
> ok?

builds, runs... I played a few rounds of Plants vs. Zombies. The only
nit I have is the reference to mimmutable(1) in the patch is wrong and
should be mimmutable(2).

ok thfr@
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/emulators/desmume/Makefile,v
> retrieving revision 1.33
> diff -u -p -u -r1.33 Makefile
> --- Makefile  21 Sep 2023 13:10:25 -0000      1.33
> +++ Makefile  26 Sep 2023 23:49:56 -0000
> @@ -2,8 +2,9 @@ USE_WXNEEDED =        Yes
>  
>  COMMENT =    Nintendo DS emulator
>  
> -DISTNAME =   desmume-0.9.11
> -REVISION =   12
> +V =          0.9.13
> +DISTNAME =   desmume-${V}
> +EXTRACT_SUFX =       .tar.xz
>  
>  CATEGORIES = emulators
>  
> @@ -12,37 +13,36 @@ HOMEPAGE =        https://desmume.org/
>  # GPLv2+
>  PERMIT_PACKAGE =             Yes
>  
> -WANTLIB += agg c m pthread ${LIBCXX} z GL GLU X11 Xcomposite
> +WANTLIB += ${COMPILER_LIBCXX} GL GLU SDL2 SoundTouch X11 Xcomposite
>  WANTLIB += Xcursor Xdamage Xext Xfixes Xi Xinerama Xrandr Xrender
> -WANTLIB += fontconfig freetype gdk_pixbuf-2.0 gio-2.0
> -WANTLIB += glib-2.0 gobject-2.0 gthread-2.0 SDL SoundTouch
> -WANTLIB += atk-1.0 cairo gdk-x11-2.0 gtk-x11-2.0 iconv intl
> -WANTLIB += pango-1.0 pangocairo-1.0 pangoft2-1.0 zzip
> -WANTLIB += harfbuzz
> +WANTLIB += agg atk-1.0 c cairo fontconfig freetype gdk-x11-2.0
> +WANTLIB += gdk_pixbuf-2.0 gio-2.0 glib-2.0 gobject-2.0 gthread-2.0
> +WANTLIB += gtk-x11-2.0 harfbuzz intl m pango-1.0 pangocairo-1.0
> +WANTLIB += pangoft2-1.0 pcap z zzip
>  
> -SITES =              ${SITE_SOURCEFORGE:=desmume/}
> +SITES =              
> https://github.com/TASEmulators/desmume/releases/download/release_${V:S/./_/g}/
>  
>  RUN_DEPENDS =        devel/desktop-file-utils
>  
>  LIB_DEPENDS =        archivers/zziplib \
>               audio/soundtouch \
> -             devel/sdl \
> +             devel/sdl2 \
>               graphics/agg \
>               graphics/gdk-pixbuf2 \
>               x11/gtk+2
>  
> -CONFIGURE_ENV +=     CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" \
> -                     LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
> -
>  MODULES =    textproc/intltool
>  
> -
>  COMPILER =   base-clang ports-gcc
>  
> +FIX_CRLF_FILES =     desmume/src/arm_jit.cpp \
> +                     desmume/src/utils/task.cpp
> +
>  CONFIGURE_STYLE =    gnu
> -FIX_CRLF_FILES =     src/MMU_timing.h \
> -                     src/path.h \
> -                     src/arm_jit.cpp \
> -                     src/utils/AsmJit/core/stringbuilder.h
> +
> +CONFIGURE_ENV +=     CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" \
> +                     LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
> +
> +WRKSRC=${WRKDIST}/desmume/src/frontend/posix
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/emulators/desmume/distinfo,v
> retrieving revision 1.4
> diff -u -p -u -r1.4 distinfo
> --- distinfo  19 Apr 2015 04:11:16 -0000      1.4
> +++ distinfo  26 Sep 2023 23:49:56 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (desmume-0.9.11.tar.gz) = OrNLpswAlWYkUCXB3ZS/RJtqG0FtJDh8tC4YPHjjiJY=
> -SIZE (desmume-0.9.11.tar.gz) = 5359305
> +SHA256 (desmume-0.9.13.tar.xz) = VzRFDgwl9ELdRM2mpAQQ/WVHD0/i+h658Le22uItq68=
> +SIZE (desmume-0.9.13.tar.xz) = 10437780
> Index: patches/patch-desmume_src_arm_jit_cpp
> ===================================================================
> RCS file: patches/patch-desmume_src_arm_jit_cpp
> diff -N patches/patch-desmume_src_arm_jit_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-desmume_src_arm_jit_cpp     26 Sep 2023 23:49:56 -0000
> @@ -0,0 +1,18 @@
> +BSS is immutable so mark it as mutable so that mprotect RWX works
> +
> +see: mimmutable(1)
> +https://github.com/google/syzkaller/commit/bc009f82ea71c399f19eef28f115ff5cda7be4ba
> +
> +Index: desmume/src/arm_jit.cpp
> +--- desmume/src/arm_jit.cpp.orig
> ++++ desmume/src/arm_jit.cpp
> +@@ -205,7 +205,8 @@ static u8 recompile_counts[(1<<26)/16];
> + // Reduces memory needed for function pointers.
> + // FIXME win64 needs this too, x86_32 doesn't
> + 
> +-DS_ALIGN(4096) static u8 scratchpad[1<<25];
> ++DS_ALIGN(4096) static u8 scratchpad[1<<25]
> ++    __attribute__((section(".openbsd.mutable")));
> + static u8 *scratchptr;
> + 
> + struct ASMJIT_API StaticCodeGenerator : public Context
> Index: patches/patch-desmume_src_frontend_posix_gtk2_main_cpp
> ===================================================================
> RCS file: patches/patch-desmume_src_frontend_posix_gtk2_main_cpp
> diff -N patches/patch-desmume_src_frontend_posix_gtk2_main_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-desmume_src_frontend_posix_gtk2_main_cpp    26 Sep 2023 
> 23:49:56 -0000
> @@ -0,0 +1,17 @@
> +https://forums.desmume.org/viewtopic.php?id=10415
> +
> +Index: desmume/src/frontend/posix/gtk2/main.cpp
> +--- desmume/src/frontend/posix/gtk2/main.cpp.orig
> ++++ desmume/src/frontend/posix/gtk2/main.cpp
> +@@ -3551,6 +3551,11 @@ common_gtk_main( class configured_features *my_config)
> + 
> +     gtk_container_add (GTK_CONTAINER (pVBox), pDrawingArea);
> + 
> ++    /* Set a black background color for a usable full-screen mode. */
> ++    GdkColor color;
> ++    memset(&color, 0, sizeof(color));
> ++    gtk_widget_modify_bg(pDrawingArea, GTK_STATE_NORMAL, &color);
> ++
> +     gtk_widget_set_events(pDrawingArea,
> +                           GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK |
> +                           GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
> Index: patches/patch-desmume_src_libretro-common_rthreads_rthreads_c
> ===================================================================
> RCS file: patches/patch-desmume_src_libretro-common_rthreads_rthreads_c
> diff -N patches/patch-desmume_src_libretro-common_rthreads_rthreads_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-desmume_src_libretro-common_rthreads_rthreads_c     26 Sep 
> 2023 23:49:56 -0000
> @@ -0,0 +1,14 @@
> +OpenBSD does not implement pthread_setname_np
> +
> +Index: desmume/src/libretro-common/rthreads/rthreads.c
> +--- desmume/src/libretro-common/rthreads/rthreads.c.orig
> ++++ desmume/src/libretro-common/rthreads/rthreads.c
> +@@ -323,7 +323,7 @@ void sthread_setname(sthread_t *thread, const char *na
> +    // any thread. At the time of this writing (2021/08/30), there is no way 
> to
> +    // set the thread name from a different thread when running an Apple OS.
> + #if !defined(USE_WIN32_THREADS) && !defined(__APPLE__)
> +-   pthread_setname_np(thread->id, name);
> ++   pthread_set_name_np(thread->id, name);
> + #endif
> + }
> + 
> Index: patches/patch-desmume_src_utils_task_cpp
> ===================================================================
> RCS file: patches/patch-desmume_src_utils_task_cpp
> diff -N patches/patch-desmume_src_utils_task_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-desmume_src_utils_task_cpp  26 Sep 2023 23:49:56 -0000
> @@ -0,0 +1,14 @@
> +OpenBSD does not implement pthread_setname_np
> +
> +Index: desmume/src/utils/task.cpp
> +--- desmume/src/utils/task.cpp.orig
> ++++ desmume/src/utils/task.cpp
> +@@ -65,7 +65,7 @@ static void taskProc(void *arg)
> + #if defined(MAC_OS_X_VERSION_10_6) && (MAC_OS_X_VERSION_MAX_ALLOWED >= 
> MAC_OS_X_VERSION_10_6)
> +     if (ctx->needSetThreadName)
> +     {
> +-            pthread_setname_np(ctx->threadName);
> ++            pthread_set_name_np(ctx->threadName);
> +             ctx->needSetThreadName = false;
> +     }
> + #endif
> Index: patches/patch-desmume_src_wifi_cpp
> ===================================================================
> RCS file: patches/patch-desmume_src_wifi_cpp
> diff -N patches/patch-desmume_src_wifi_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-desmume_src_wifi_cpp        26 Sep 2023 23:49:56 -0000
> @@ -0,0 +1,13 @@
> +Missing includes for INADDR_ANY
> +
> +Index: desmume/src/wifi.cpp
> +--- desmume/src/wifi.cpp.orig
> ++++ desmume/src/wifi.cpp
> +@@ -44,6 +44,7 @@
> + #include <string.h>
> + #include <arpa/inet.h>
> + #include <sys/socket.h>
> ++#include <netinet/in.h>
> + #define socket_t    int
> + #define sockaddr_t  struct sockaddr
> + #define closesocket close
> Index: patches/patch-src_MMU_timing_h
> ===================================================================
> RCS file: patches/patch-src_MMU_timing_h
> diff -N patches/patch-src_MMU_timing_h
> --- patches/patch-src_MMU_timing_h    11 Mar 2022 18:59:34 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -ports-gcc fix for:
> -error: enumerator value for 'BLOCKMASK' is not an integer constant
> -From:
> -https://sourceforge.net/p/desmume/bugs/1570/
> -
> -Index: src/MMU_timing.h
> ---- src/MMU_timing.h.orig
> -+++ src/MMU_timing.h
> -@@ -155,8 +155,8 @@ class CacheController (private)
> -     enum { ASSOCIATIVITY = 1 << ASSOCIATIVESHIFT };
> -     enum { BLOCKSIZE = 1 << BLOCKSIZESHIFT };
> -     enum { TAGSHIFT = SIZESHIFT - ASSOCIATIVESHIFT };
> --    enum { TAGMASK = (u32)(~0 << TAGSHIFT) };
> --    enum { BLOCKMASK = ((u32)~0 >> (32 - TAGSHIFT)) & (u32)(~0 << 
> BLOCKSIZESHIFT) };
> -+    enum { TAGMASK = (u32)(~0U << TAGSHIFT) };
> -+    enum { BLOCKMASK = ((u32)~0U >> (32 - TAGSHIFT)) & (u32)(~0U << 
> BLOCKSIZESHIFT) };
> -     enum { WORDSIZE = sizeof(u32) };
> -     enum { WORDSPERBLOCK = (1 << BLOCKSIZESHIFT) / WORDSIZE };
> -     enum { DATAPERWORD = WORDSIZE * ASSOCIATIVITY };
> Index: patches/patch-src_arm_jit_cpp
> ===================================================================
> RCS file: patches/patch-src_arm_jit_cpp
> diff -N patches/patch-src_arm_jit_cpp
> --- patches/patch-src_arm_jit_cpp     13 Dec 2022 04:37:09 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,18 +0,0 @@
> -BSS is immutable so mark it as mutable so that mprotect RWX works
> -
> -see: mimmutable(1)
> -https://github.com/google/syzkaller/commit/bc009f82ea71c399f19eef28f115ff5cda7be4ba
> -
> -Index: src/arm_jit.cpp
> ---- src/arm_jit.cpp.orig
> -+++ src/arm_jit.cpp
> -@@ -198,7 +198,8 @@ static u8 recompile_counts[(1<<26)/16];
> - // Reduces memory needed for function pointers.
> - // FIXME win64 needs this too, x86_32 doesn't
> - 
> --DS_ALIGN(4096) static u8 scratchpad[1<<25];
> -+DS_ALIGN(4096) static u8 scratchpad[1<<25]
> -+    __attribute__((section(".openbsd.mutable")));
> - static u8 *scratchptr;
> - 
> - struct ASMJIT_API StaticCodeGenerator : public Context
> Index: patches/patch-src_ctrlssdl_cpp
> ===================================================================
> RCS file: patches/patch-src_ctrlssdl_cpp
> diff -N patches/patch-src_ctrlssdl_cpp
> --- patches/patch-src_ctrlssdl_cpp    11 Mar 2022 18:59:34 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,26 +0,0 @@
> -ports-gcc fix for:
> -error: invalid operands of types '__gnu_cxx::__enable_if<true, 
> double>::__type {aka double}' and 'int' to binary 'operator>>'
> -From:
> -https://sourceforge.net/p/desmume/bugs/1570/
> -
> -Index: src/ctrlssdl.cpp
> ---- src/ctrlssdl.cpp.orig
> -+++ src/ctrlssdl.cpp
> -@@ -200,7 +200,7 @@ u16 get_joy_key(int index) {
> -           break;
> -         case SDL_JOYAXISMOTION:
> -           /* Dead zone of 50% */
> --          if( (abs(event.jaxis.value) >> 14) != 0 )
> -+          if( ((u32)abs(event.jaxis.value) >> 14) != 0 )
> -             {
> -               key = ((event.jaxis.which & 15) << 12) | JOY_AXIS << 8 | 
> ((event.jaxis.axis & 127) << 1);
> -               if (event.jaxis.value > 0) {
> -@@ -370,7 +370,7 @@ do_process_joystick_events( u16 *keypad, SDL_Event *ev
> -          Note: button constants have a 1bit offset. */
> -     case SDL_JOYAXISMOTION:
> -       key_code = ((event->jaxis.which & 15) << 12) | JOY_AXIS << 8 | 
> ((event->jaxis.axis & 127) << 1);
> --      if( (abs(event->jaxis.value) >> 14) != 0 )
> -+      if( ((u32)abs(event->jaxis.value) >> 14) != 0 )
> -         {
> -           if (event->jaxis.value > 0)
> -             key_code |= 1;
> Index: patches/patch-src_gfx3d_cpp
> ===================================================================
> RCS file: patches/patch-src_gfx3d_cpp
> diff -N patches/patch-src_gfx3d_cpp
> --- patches/patch-src_gfx3d_cpp       11 Mar 2022 18:59:34 -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,53 +0,0 @@
> -Index: src/gfx3d.cpp
> ---- src/gfx3d.cpp.orig
> -+++ src/gfx3d.cpp
> -@@ -1215,24 +1215,24 @@ static void gfx3d_glNormal(s32 v)
> - 
> -     //apply lighting model
> -     u8 diffuse[3] = {
> --            (dsDiffuse)&0x1F,
> --            (dsDiffuse>>5)&0x1F,
> --            (dsDiffuse>>10)&0x1F };
> -+            (u8)( dsDiffuse        & 0x1F),
> -+            (u8)((dsDiffuse >>  5) & 0x1F),
> -+            (u8)((dsDiffuse >> 10) & 0x1F) };
> - 
> -     u8 ambient[3] = {
> --            (dsAmbient)&0x1F,
> --            (dsAmbient>>5)&0x1F,
> --            (dsAmbient>>10)&0x1F };
> -+            (u8)( dsAmbient        & 0x1F),
> -+            (u8)((dsAmbient >>  5) & 0x1F),
> -+            (u8)((dsAmbient >> 10) & 0x1F) };
> - 
> -     u8 emission[3] = {
> --            (dsEmission)&0x1F,
> --            (dsEmission>>5)&0x1F,
> --            (dsEmission>>10)&0x1F };
> -+            (u8)( dsEmission        & 0x1F),
> -+            (u8)((dsEmission >>  5) & 0x1F),
> -+            (u8)((dsEmission >> 10) & 0x1F) };
> - 
> -     u8 specular[3] = {
> --            (dsSpecular)&0x1F,
> --            (dsSpecular>>5)&0x1F,
> --            (dsSpecular>>10)&0x1F };
> -+            (u8)( dsSpecular        & 0x1F),
> -+            (u8)((dsSpecular >>  5) & 0x1F),
> -+            (u8)((dsSpecular >> 10) & 0x1F) };
> - 
> -     int vertexColor[3] = { emission[0], emission[1], emission[2] };
> - 
> -@@ -1241,9 +1241,9 @@ static void gfx3d_glNormal(s32 v)
> -             if(!((lightMask>>i)&1)) continue;
> - 
> -             u8 _lightColor[3] = {
> --                    (lightColor[i])&0x1F,
> --                    (lightColor[i]>>5)&0x1F,
> --                    (lightColor[i]>>10)&0x1F };
> -+                    (u8)( lightColor[i]        & 0x1F),
> -+                    (u8)((lightColor[i] >>  5) & 0x1F),
> -+                    (u8)((lightColor[i] >> 10) & 0x1F) };
> - 
> -             //This formula is the one used by the DS
> -             //Reference : 
> http://nocash.emubase.de/gbatek.htm#ds3dpolygonlightparameters
> Index: patches/patch-src_gtk_main_cpp
> ===================================================================
> RCS file: patches/patch-src_gtk_main_cpp
> diff -N patches/patch-src_gtk_main_cpp
> --- patches/patch-src_gtk_main_cpp    11 Mar 2022 18:59:34 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,17 +0,0 @@
> -https://forums.desmume.org/viewtopic.php?id=10415
> -
> -Index: src/gtk/main.cpp
> ---- src/gtk/main.cpp.orig
> -+++ src/gtk/main.cpp
> -@@ -3131,6 +3131,11 @@ common_gtk_main( class configured_features *my_config)
> -     pDrawingArea = gtk_drawing_area_new();
> -     gtk_container_add (GTK_CONTAINER (pVBox), pDrawingArea);
> - 
> -+    /* Set a black background color for a usable full-screen mode. */
> -+    GdkColor color;
> -+    memset(&color, 0, sizeof(color));
> -+    gtk_widget_modify_bg(pDrawingArea, GTK_STATE_NORMAL, &color);
> -+
> -     gtk_widget_set_events(pDrawingArea,
> -                           GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK |
> -                           GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
> Index: patches/patch-src_path_h
> ===================================================================
> RCS file: patches/patch-src_path_h
> diff -N patches/patch-src_path_h
> --- patches/patch-src_path_h  13 Dec 2022 04:37:10 -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,14 +0,0 @@
> -From upstream 8454c93fa37ce9f3c8becc7004a2edddba22f3a1.
> -
> -Index: src/path.h
> ---- src/path.h.orig
> -+++ src/path.h
> -@@ -375,7 +375,7 @@ class PathInfo (public)
> -                             else if (strchr(strftimeArgs, *p))
> -                             {
> -                                     char tmp[MAX_PATH];
> --                                    char format[] = { '%', *p, NULL };
> -+                                    char format[] = { '%', *p, '\0' };
> -                                     strftime(tmp, MAX_PATH, format, 
> time_struct);
> -                                     file.append(tmp);
> -             }
> Index: patches/patch-src_utils_AsmJit_core_stringbuilder_h
> ===================================================================
> RCS file: patches/patch-src_utils_AsmJit_core_stringbuilder_h
> diff -N patches/patch-src_utils_AsmJit_core_stringbuilder_h
> --- patches/patch-src_utils_AsmJit_core_stringbuilder_h       11 Mar 2022 
> 18:59:34 -0000      1.4
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,11 +0,0 @@
> ---- src/utils/AsmJit/core/stringbuilder.h.orig       Tue Apr 14 22:45:30 2015
> -+++ src/utils/AsmJit/core/stringbuilder.h    Tue Apr 14 22:45:45 2015
> -@@ -10,6 +10,8 @@
> - #ifndef _ASMJIT_CORE_STRINGBUILDER_H
> - #define _ASMJIT_CORE_STRINGBUILDER_H
> - 
> -+#include <cstdarg>
> -+
> - // [Dependencies - AsmJit]
> - #include "../core/assert.h"
> - #include "../core/defs.h"
> Index: patches/patch-src_utils_libfat_directory_cpp
> ===================================================================
> RCS file: patches/patch-src_utils_libfat_directory_cpp
> diff -N patches/patch-src_utils_libfat_directory_cpp
> --- patches/patch-src_utils_libfat_directory_cpp      11 Mar 2022 18:59:34 
> -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,12 +0,0 @@
> -Index: src/utils/libfat/directory.cpp
> ---- src/utils/libfat/directory.cpp.orig
> -+++ src/utils/libfat/directory.cpp
> -@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 (ucs2_t* dst, c
> -     int bytes;
> -     size_t count = 0;
> - 
> --    while (count < len-1 && src != '\0') {
> -+    while (count < len-1 && *src != '\0') {
> -             bytes = mbrtowc (&tempChar, src, MB_CUR_MAX, &ps);
> -             if (bytes > 0) {
> -                     *dst = (ucs2_t)tempChar;
> Index: patches/patch-src_utils_xstring_cpp
> ===================================================================
> RCS file: patches/patch-src_utils_xstring_cpp
> diff -N patches/patch-src_utils_xstring_cpp
> --- patches/patch-src_utils_xstring_cpp       11 Mar 2022 18:59:34 -0000      
> 1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,27 +0,0 @@
> -Index: src/utils/xstring.cpp
> ---- src/utils/xstring.cpp.orig
> -+++ src/utils/xstring.cpp
> -@@ -277,8 +277,8 @@ std::string BytesToString(const void* data, int len)
> -                     {
> -                             Base64Table[ input[0] >> 2 ],
> -                             Base64Table[ ((input[0] & 0x03) << 4) | 
> (input[1] >> 4) ],
> --                            n<2 ? '=' : Base64Table[ ((input[1] & 0x0F) << 
> 2) | (input[2] >> 6) ],
> --                            n<3 ? '=' : Base64Table[ input[2] & 0x3F ]
> -+                            (unsigned char)(n<2 ? '=' : Base64Table[ 
> ((input[1] & 0x0F) << 2) | (input[2] >> 6) ]),
> -+                            (unsigned char)(n<3 ? '=' : Base64Table[ 
> input[2] & 0x3F ])
> -                     };
> -                     ret.append(output, output+4);
> -             }
> -@@ -342,9 +342,9 @@ bool StringToBytes(const std::string& str, void* data,
> -                     }
> -                     unsigned char outpacket[3] =
> -                     {
> --                            (converted[0] << 2) | (converted[1] >> 4),
> --                            (converted[1] << 4) | (converted[2] >> 2),
> --                            (converted[2] << 6) | (converted[3])
> -+                            (unsigned char)((converted[0] << 2) | 
> (converted[1] >> 4)),
> -+                            (unsigned char)((converted[1] << 4) | 
> (converted[2] >> 2)),
> -+                            (unsigned char)((converted[2] << 6) | 
> (converted[3]))
> -                     };
> -                     int outlen = (input[2] == '=') ? 1 : (input[3] == '=' ? 
> 2 : 3);
> -                     if(outlen > len) outlen = len;
> Index: patches/patch-src_wifi_cpp
> ===================================================================
> RCS file: patches/patch-src_wifi_cpp
> diff -N patches/patch-src_wifi_cpp
> --- patches/patch-src_wifi_cpp        11 Mar 2022 18:59:34 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -Index: src/wifi.cpp
> ---- src/wifi.cpp.orig
> -+++ src/wifi.cpp
> -@@ -314,9 +314,9 @@ WifiComInterface* wifiCom;
> - 
> - #if (WIFI_LOGGING_LEVEL >= 1)
> -     #if WIFI_LOG_USE_LOGC
> --            #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) 
> LOGC(8, "WIFI: "__VA_ARGS__);
> -+            #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) 
> LOGC(8, "WIFI: " __VA_ARGS__);
> -     #else
> --            #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) 
> printf("WIFI: "__VA_ARGS__);
> -+            #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) 
> printf("WIFI: " __VA_ARGS__);
> -     #endif
> - #else
> - #define WIFI_LOG(level, ...) {}
> 

Reply via email to