Fix regression in using window message names (#2925)

FreeRDP defines macros WM_LBUTTONUP, WM_LBUTTONDOWN, WM_RBUTTONUP
and WM_RBUTTONDOWN. These conflict with the definitions we have in
xrdp_constants.h. Because the FreeRDP system includes followed the local
includes however, the compiler did not emit a diagnostic for this -
see gcc bug #16358.

This PR rearranges the includes for NeutrinoRDP so the macro
redefinitions are flagged by the compiler.
This commit is contained in:
matt335672
2024-02-01 00:06:59 +00:00
committed by GitHub
parent 17ba2e01e8
commit 8af430e197
3 changed files with 22 additions and 14 deletions
+4
View File
@@ -22,6 +22,10 @@
#endif #endif
#include "xrdp-neutrinordp.h" #include "xrdp-neutrinordp.h"
#include "defines.h"
#include "log.h"
#include "os_calls.h"
#include "string_calls.h"
char * char *
convert_bitmap(int in_bpp, int out_bpp, char *bmpdata, convert_bitmap(int in_bpp, int out_bpp, char *bmpdata,
+12 -1
View File
@@ -17,6 +17,17 @@
* limitations under the License. * limitations under the License.
*/ */
#include <freerdp/freerdp.h>
#include <freerdp/codec/bitmap.h>
// FreeRDP defines some macros that we have different values for.
// To catch this we need to include the freerdp includes before our
// local ones (see gcc bug #16358)
#undef WM_LBUTTONUP
#undef WM_LBUTTONDOWN
#undef WM_RBUTTONUP
#undef WM_RBUTTONDOWN
#if defined(HAVE_CONFIG_H) #if defined(HAVE_CONFIG_H)
#include <config_ac.h> #include <config_ac.h>
#endif #endif
@@ -26,8 +37,8 @@
#include "xrdp_rail.h" #include "xrdp_rail.h"
#include "trans.h" #include "trans.h"
#include "log.h" #include "log.h"
#include "os_calls.h"
#include "string_calls.h" #include "string_calls.h"
#include <freerdp/settings.h>
#if defined(VERSION_STRUCT_RDP_FREERDP) #if defined(VERSION_STRUCT_RDP_FREERDP)
#if VERSION_STRUCT_RDP_FREERDP > 1 #if VERSION_STRUCT_RDP_FREERDP > 1
+6 -13
View File
@@ -20,22 +20,15 @@
#ifndef XRDP_NEUTRINORDP_H #ifndef XRDP_NEUTRINORDP_H
#define XRDP_NEUTRINORDP_H #define XRDP_NEUTRINORDP_H
/* include other h files */
#include "arch.h" #include "arch.h"
#include "parse.h"
#include "os_calls.h"
#include "defines.h"
#include "xrdp_rail.h"
#include "xrdp_client_info.h"
#include "xrdp_constants.h" #include "xrdp_constants.h"
#include "xrdp_client_info.h"
/* this is the freerdp main header */ /* Incomplete type definitions, referenced below */
#include <freerdp/freerdp.h> struct rail_window_state_order;
#include <freerdp/rail.h> struct rail_notify_state_order;
#include <freerdp/rail/rail.h> struct rail_monitored_desktop_order;
#include <freerdp/codec/bitmap.h> struct rail_icon_info;
//#include <freerdp/utils/memory.h>
//#include "/home/jay/git/jsorg71/staging/include/freerdp/freerdp.h"
struct bitmap_item struct bitmap_item
{ {