Skip to content

Commit

Permalink
Fix regression in using window message names (#2925)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
matt335672 authored Feb 1, 2024
1 parent 17ba2e0 commit 8af430e
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 14 deletions.
4 changes: 4 additions & 0 deletions neutrinordp/xrdp-color.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
#endif

#include "xrdp-neutrinordp.h"
#include "defines.h"
#include "log.h"
#include "os_calls.h"
#include "string_calls.h"

char *
convert_bitmap(int in_bpp, int out_bpp, char *bmpdata,
Expand Down
13 changes: 12 additions & 1 deletion neutrinordp/xrdp-neutrinordp.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,17 @@
* 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)
#include <config_ac.h>
#endif
Expand All @@ -26,8 +37,8 @@
#include "xrdp_rail.h"
#include "trans.h"
#include "log.h"
#include "os_calls.h"
#include "string_calls.h"
#include <freerdp/settings.h>

#if defined(VERSION_STRUCT_RDP_FREERDP)
#if VERSION_STRUCT_RDP_FREERDP > 1
Expand Down
19 changes: 6 additions & 13 deletions neutrinordp/xrdp-neutrinordp.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,15 @@
#ifndef XRDP_NEUTRINORDP_H
#define XRDP_NEUTRINORDP_H

/* include other h files */
#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_client_info.h"

/* this is the freerdp main header */
#include <freerdp/freerdp.h>
#include <freerdp/rail.h>
#include <freerdp/rail/rail.h>
#include <freerdp/codec/bitmap.h>
//#include <freerdp/utils/memory.h>
//#include "/home/jay/git/jsorg71/staging/include/freerdp/freerdp.h"
/* Incomplete type definitions, referenced below */
struct rail_window_state_order;
struct rail_notify_state_order;
struct rail_monitored_desktop_order;
struct rail_icon_info;

struct bitmap_item
{
Expand Down

0 comments on commit 8af430e

Please sign in to comment.