annotate src/extw-Xlib.c @ 5000:44d7bde26046

fix compile errors, fix revert-buffer bug on binary/Latin 1 files, Mule-ize some files -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-07 Ben Wing <ben@xemacs.org> * emacs.c (make_argc_argv): Cast to Wexttext * to fix compile error. * nt.c (init_user_info): Cast to CIbyte * to fix compile error. * nt.c (open_unc_volume): To fix compile error, store pathname into an Extbyte * variable then write into the dest, casting to LPTSTR. * emacs.c (debug_can_access_memory): * fileio.c (Fmake_temp_name): * fileio.c (a_write): * fns.c: * fns.c (check_losing_bytecode): * fns.c (plists_differ): * fns.c (internal_equal_trapping_problems): * fns.c (base64_value_to_char): * fns.c (base64_conversion_error): * fns.c (STORE_BYTE): * fns.c (vars_of_fns): * lisp.h: * nt.c (init_user_info): * nt.c (mswindows_readdir): * nt.c (mswindows_executable_type): Replace raw `char *' or `unsigned char *' with characterized type -- Rawbyte, Binbyte, Boolbyte, Ibyte or Ascbyte. This should fix at least one real bug -- in a_write(), the "speedy insert" code that checks for an unchanged region declared the file data read in as char[] but then compared the value to an Ichar. Hence, any chars in the range 128-255 would always appear changed -- in particular, this algorithm would fail completely with binary data.
author Ben Wing <ben@xemacs.org>
date Sun, 07 Feb 2010 05:21:40 -0600
parents 376386a54a3c
children 2aa9cd456ae7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 /* Common code between client and shell widgets; not Xt-specific.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 Copyright (C) 1993, 1994 Sun Microsystems, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 This library is free software; you can redistribute it and/or
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 modify it under the terms of the GNU Library General Public
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 License as published by the Free Software Foundation; either
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 version 2 of the License, or (at your option) any later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 This library is distributed in the hope that it will be useful,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 Library General Public License for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 You should have received a copy of the GNU Library General Public
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 License along with this library; if not, write to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 Boston, MA 02111-1307, USA. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 /* Synched up with: Not in FSF. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 /* Written by Ben Wing, September 1993. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 #ifdef emacs
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 #include <config.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 #ifndef EXTERNAL_WIDGET
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 ERROR! This ought not be getting compiled if EXTERNAL_WIDGET is undefined
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 #endif
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 #endif
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 #include <X11/Xlib.h>
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 #include "extw-Xlib.h"
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 int extw_which_side;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 static int atoms_initialized;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 Atom a_EXTW_QUERY_GEOMETRY, a_EXTW_GEOMETRY_MANAGER, a_EXTW_WIDGET_GEOMETRY,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 a_EXTW_NOTIFY;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 void
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 extw_initialize_atoms(Display *display)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 if (!atoms_initialized) {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 a_EXTW_QUERY_GEOMETRY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 XInternAtom(display, "EXTW_QUERY_GEOMETRY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 a_EXTW_GEOMETRY_MANAGER =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 XInternAtom(display, "EXTW_GEOMETRY_MANAGER", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 a_EXTW_WIDGET_GEOMETRY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 XInternAtom(display, "EXTW_WIDGET_GEOMETRY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 a_EXTW_NOTIFY =
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 XInternAtom(display, "EXTW_NOTIFY", False);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 atoms_initialized = 1;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 }
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 /* send a notification to the other-side widget. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 void
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 extw_send_notify_3(Display *display, Window win, en_extw_notify type,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 long data0, long data1, long data2)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 {
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 XClientMessageEvent xev;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 xev.type = ClientMessage;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68 xev.message_type = a_EXTW_NOTIFY;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 xev.format = 32;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 xev.display = display;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 xev.window = win;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72 xev.data.l[0] = extw_which_side;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 xev.data.l[1] = type;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 xev.data.l[2] = data0;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 xev.data.l[3] = data1;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 xev.data.l[4] = data2;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 /* UGGGHHHH! All I want to do is ensure that the ClientMessage gets
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 received. Unfortunately X doesn't provide any simple way to do
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 that but instead has this event_mask bogosity in XSendEvent. */
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 XSendEvent(display, win, False,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 extw_which_side == extw_shell_send ? 0 : StructureNotifyMask,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 (XEvent *) &xev);
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 }