bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#5250: 23.1.90; src/xterm.c does not compile – like #3895 from 2009-0


From: Peter Dyballa
Subject: bug#5250: 23.1.90; src/xterm.c does not compile – like #3895 from 2009-07-27
Date: Sun, 20 Dec 2009 21:21:32 +0100

I tried again to compile with GCC 4.2.1 (Apple Inc. build 5577) and making use of some (modern, up-to-date) C header and library files from MacPorts. With GTK+2 as X toolkit. Now it compiles src/xterm.c! In the pre-processed output I see some differences (diff GTK+2- GCC4.2.1 GTK+2-GCC4.0.1) by which in the end the strange and faulty construct appears, although I have no idea why! (Many differences with just the use of different variants of the same C header file omitted.)

********4.2.1******* ********4.0.1*******
*** 300,320 ****
#define HAVE_WORKING_FORK 1 #define HAVE_WORKING_FORK 1 #define HAVE_WORKING_VFORK 1 #define HAVE_WORKING_VFORK 1 #define HAVE_X11 1 #define HAVE_X11 1
- #define HAVE_X11R6 1
#define HAVE_XFT 1 #define HAVE_XFT 1 #define HAVE_XIM 1 #define HAVE_XIM 1
- #define HAVE_XKBGETKEYBOARD 1
#define HAVE_XPM 1 #define HAVE_XPM 1
! #define HAVE_XRMSETDATABASE 1
! #define HAVE_XSCREENNUMBEROFSCREEN 1
! #define HAVE_XSCREENRESOURCESTRING 1
! #define HAVE_XSETWMPROTOCOLS 1

*** 664,671 ****
# 1169 "./config.h" 2 # 1169 "./config.h" 2 # 1 "/usr/include/strings.h" 1 3 4 # 1 "/usr/include/strings.h" 1 3 4
- # 62 "/usr/include/strings.h" 3 4
- # 1 "/usr/include/string.h" 1 3 4
- # 63 "/usr/include/strings.h" 2 3 4
# 1172 "./config.h" 2 # 1172 "./config.h" 2 # 1 "/usr/include/stdlib.h" 1 3 4 # 1 "/usr/include/stdlib.h" 1 3 4 # 59 "/usr/include/stdlib.h" 3 4 # 59 "/usr/include/stdlib.h" 3 4

*** 1531,1535 ****
#define _MACHTYPES_H_ #define _MACHTYPES_H_
! # 1 "/usr/include/ppc/_types.h" 1 3 4
! # 71 "/usr/include/ppc/types.h" 2 3 4 ! # 77 "/usr/include/ppc/types.h" 3 4 #define _INT8_T #define _INT8_T

*** 1607,1613 ****
# 1175 "./config.h" 2 # 1175 "./config.h" 2 ! # 1193 "./config.h" ! # 1195 "./config.h" #define HAVE_X_I18N #define HAVE_X_I18N
! #define HAVE_X11R6_XIM
! # 1206 "./config.h"

*** 4045,4052 ****
# 41 "xterm.c" 2 # 41 "xterm.c" 2 # 1 "xterm.h" 1 # 1 "xterm.h" 1 # 20 "xterm.h" # 20 "xterm.h" ! # 1 "/opt/local/include/X11/Xlib.h" 1 ! # 1 "/usr/X11/include/X11/Xlib.h" 1 ! # 37 "/opt/local/include/X11/Xlib.h" ! # 37 "/usr/X11/include/X11/Xlib.h" #define _XLIB_H_ #define _XLIB_H_ #define XlibSpecificationRelease 6 #define XlibSpecificationRelease 6 # 1 "/usr/include/sys/types.h" 1 3 4 # 1 "/usr/include/sys/types.h" 1 3 4


*** 5243,5255 ****
- typedef struct {
-     int type;
-     unsigned long serial;
-     int send_event;
-     Display *display;
-     int extension;
-     int evtype;
-     unsigned int cookie;
-     void *data;
- } XGenericEventCookie;

-  XGenericEvent xgeneric;
-  XGenericEventCookie xcookie;

*** 7824,7837 ****
- extern int XGetEventData(
-     Display* ,
-     XGenericEventCookie*
- );
- extern void XFreeEventData(
-     Display* ,
-     XGenericEventCookie*
- );
# 21 "xterm.h" 2 # 21 "xterm.h" 2 ! # 1 "/opt/local/include/X11/cursorfont.h" 1 ! # 1 "/usr/X11/include/X11/cursorfont.h" 1 ! # 31 "/opt/local/include/X11/cursorfont.h" ! # 31 "/usr/X11/include/X11/cursorfont.h"

! # 1 "/opt/local/include/X11/keysym.h" 1 ! # 1 "/usr/X11/include/X11/keysym.h" 1


*** 12537,12544 ****
  # 1 "/usr/include/ppc/limits.h" 1 3 4
  # 37 "/usr/include/ppc/limits.h" 3 4
  #define _PPC_LIMITS_H_
- # 1 "/usr/include/ppc/_limits.h" 1 3 4
- # 41 "/usr/include/ppc/limits.h" 2 3 4

*** 47599,47607 ****
! # 93 "xterm.h" ! # 103 "xterm.h"
! struct xim_inst_t
! {
!   struct x_display_info *dpyinfo;
!   char *resource_name;
! };
struct x_bitmap_record struct x_bitmap_record
  {                                                               {
Pixmap pixmap; Pixmap pixmap;

*** 57646,57675 ****
      }                                                               }
return font_object; return font_object;
  }                                                               }
! # 8121 "xterm.c" ! # 8159 "xterm.c"
! static void
! xim_destroy_callback (xim, client_data, call_data)
!      XIM xim;
!      XPointer client_data;
!      XPointer call_data;
! {
! struct x_display_info *dpyinfo = (struct x_display_info *) client_data;
!   Lisp_Object frame, tail;
!   (interrupt_input_blocked++);
! for ((tail) = Vframe_list; ((((enum Lisp_Type) (((unsigned int) ((tail))) & ((((int) 1) << 3) - 1))) == Lisp_Cons) && (frame = (0+ ((((void) 0,(struct Lisp_Cons *) ((int) (((tail)) & ~((((int) 1) << 3) - 1))))->car))), 1)); tail = (0+((((void) 0,(struct Lisp_Cons *) ((int) (((tail)) & ~((((int) 1) << 3) - 1))))->u.cdr))))
!     {
! struct frame *f = ((void) 0,(struct frame *) ((int) ((frame) & ~((((int) 1) << 3) - 1)))); ! if (((f)->output_method == output_x_window) && ((f)- >output_data.x->display_info) == dpyinfo)
!  {
!    ((f)->output_data.x->xic) = ((void *)0);
!           xic_free_xfontset (f);
!  }
!     }
!   dpyinfo->xim = ((void *)0);
!   XFree (dpyinfo->xim_styles);
! do { --interrupt_input_blocked; if (interrupt_input_blocked == 0) { if (interrupt_input_pending) reinvoke_input_signal (); if (pending_atimers) do_pending_atimers (); } else if (interrupt_input_blocked < 0) abort (); } while (0);
! }
! extern char *XSetIMValues (XIM, ...);
static void static void xim_open_dpy (dpyinfo, resource_name) xim_open_dpy (dpyinfo, resource_name) struct x_display_info *dpyinfo; struct x_display_info *dpyinfo;

*** 57685,57736 ****
        dpyinfo->xim = xim;
        if (xim)
   {
-    XIMCallback destroy;
XGetIMValues (xim, "queryInputStyle", &dpyinfo->xim_styles, ((void *)0));
-    destroy.callback = xim_destroy_callback;
-    destroy.client_data = (XPointer)dpyinfo;
-    XSetIMValues (xim, "destroyCallback", &destroy, ((void *)0));
   }
      }
    else
      dpyinfo->xim = ((void *)0);
  }
- # 8205 "xterm.c"
- static void
- xim_instantiate_callback (display, client_data, call_data)
-      Display *display;
-      XPointer client_data;
-      XPointer call_data;
- {
-   struct xim_inst_t *xim_inst = (struct xim_inst_t *) client_data;
-   struct x_display_info *dpyinfo = xim_inst->dpyinfo;
-   if (dpyinfo->xim)
-     return;
-   xim_open_dpy (dpyinfo, xim_inst->resource_name);
-   if (dpyinfo->xim && dpyinfo->reference_count > 0)
-     {
-       Lisp_Object tail, frame;
-       (interrupt_input_blocked++);
- for ((tail) = Vframe_list; ((((enum Lisp_Type) (((unsigned int) ((tail))) & ((((int) 1) << 3) - 1))) == Lisp_Cons) && (frame = (0+ ((((void) 0,(struct Lisp_Cons *) ((int) (((tail)) & ~((((int) 1) << 3) - 1))))->car))), 1)); tail = (0+((((void) 0,(struct Lisp_Cons *) ((int) (((tail)) & ~((((int) 1) << 3) - 1))))->u.cdr))))
-  {
- struct frame *f = ((void) 0,(struct frame *) ((int) ((frame) & ~((((int) 1) << 3) - 1))));
-    if (((f)->output_method == output_x_window)
- && ((f)->output_data.x->display_info) == xim_inst- >dpyinfo)
-      if (((f)->output_data.x->xic) == ((void *)0))
-        {
-   create_frame_xic (f);
-   if (((f)->output_data.x->xic_style) & 0x0100L)
-     xic_set_statusarea (f);
-   if (((f)->output_data.x->xic_style) & 0x0004L)
-     {
- struct window *w = ((void) 0,(struct window *) ((int) ((f- >selected_window) & ~((((int) 1) << 3) - 1))));
-       xic_set_preeditarea (w, w->cursor.x, w->cursor.y);
-     }
-        }
-  }
- do { --interrupt_input_blocked; if (interrupt_input_blocked == 0) { if (interrupt_input_pending) reinvoke_input_signal (); if (pending_atimers) do_pending_atimers (); } else if (interrupt_input_blocked < 0) abort (); } while (0);
-     }
- }
  # 8258 "xterm.c"
  static void
  xim_initialize (dpyinfo, resource_name)
--- 57693,57704 ----
***************
*** 57740,57757 ****
dpyinfo->xim = ((void *)0); dpyinfo->xim = ((void *)0); if (use_xim) if (use_xim)
      {                                                               {
! # 8285 "xterm.c" ! xim_open_dpy (dpyinfo, resource_name);
!       struct xim_inst_t *xim_inst;
!       int len;
! xim_inst = (struct xim_inst_t *) xmalloc (sizeof (struct xim_inst_t));
!       dpyinfo->xim_callback_data = xim_inst;
!       xim_inst->dpyinfo = dpyinfo;
!       len = strlen (resource_name);
!       xim_inst->resource_name = (char *) xmalloc (len + 1);
!       bcopy (resource_name, xim_inst->resource_name, len + 1);
!       XRegisterIMInstantiateCallback (dpyinfo->display, dpyinfo->xrdb,
!           resource_name, "Emacs",
!           xim_instantiate_callback,
!           (XPointer) xim_inst);
      }                                                               }
  }                                                               }
static void static void

***************
*** 57760,57771 ****
{ { if (use_xim) if (use_xim) { { if (dpyinfo- >display) if (dpyinfo->display)
!  XUnregisterIMInstantiateCallback (dpyinfo->display, dpyinfo->xrdb,
!        ((void *)0), "Emacs",
!        xim_instantiate_callback, ((void *)0));
!       xfree (dpyinfo->xim_callback_data->resource_name);
!       xfree (dpyinfo->xim_callback_data);
        if (dpyinfo->display)
XCloseIM (dpyinfo- >xim); XCloseIM (dpyinfo->xim);

***************
*** 58841,58847 ****
= XCreateFontCursor (dpyinfo->display, 116); = XCreateFontCursor (dpyinfo->display, 116); xrdb = x_load_resources (dpyinfo->display, xrm_option, xrdb = x_load_resources (dpyinfo->display, xrm_option, resource_name, "Emacs"); resource_name, "Emacs"); ! XrmSetDatabase (dpyinfo->display, xrdb); ! dpyinfo->display->db = xrdb; dpyinfo->xrdb = xrdb; dpyinfo->xrdb = xrdb;


--
Greetings

  Pete

There is no worse tyranny than to force a man to pay for what he does not want merely because you think it would be good for him.
                                – Robert Heinlein







reply via email to

[Prev in Thread] Current Thread [Next in Thread]