Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build on 32-bit architectures #124

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Jul 8, 2023

  1. Fix build on 32-bit architectures

    Commit eab3ebc changed all occurrences of unsigned long to uint64_t,
    which does not work when it is used in callback functions whose
    signatures are defined with unsigned long by libXt. On 64-bit machines,
    unsigned long and uint64_t are the same type, but on 32-bit machines,
    long has only 32 bits. This makes the callback function pointer
    incompatible with the callback function parameter type.
    
    The callback functions in question are the following (from
    X11/Intrinsic.h):
    
    typedef Boolean (*XtConvertSelectionProc)(
        Widget 		/* widget */,
        Atom*		/* selection */,
        Atom*		/* target */,
        Atom*		/* type_return */,
        XtPointer*		/* value_return */,
        unsigned long*	/* length_return */,
        int*		/* format_return */
    );
    typedef Boolean (*XtConvertSelectionProc)(
        Widget 		/* widget */,
        Atom*		/* selection */,
        Atom*		/* target */,
        Atom*		/* type_return */,
        XtPointer*		/* value_return */,
        unsigned long*	/* length_return */,
        int*		/* format_return */
    );
    
    Both functions use pointers to unsigned long as output parameters for
    data length, so the functions implementing these callbacks have to use
    unsigned long, too.
    flimberger committed Jul 8, 2023
    Configuration menu
    Copy the full SHA
    40f7b82 View commit details
    Browse the repository at this point in the history