0
|
1 /*
|
|
2 * $Id: byte_swap.c,v 1.2 2001/06/14 18:16:14 ura Exp $
|
|
3 */
|
|
4
|
|
5 /*
|
|
6 * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
|
|
7 * This file is part of FreeWnn.
|
|
8 *
|
|
9 * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
|
|
10 * Copyright 1991, 1992 by Massachusetts Institute of Technology
|
|
11 *
|
|
12 * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp>
|
|
13 *
|
|
14 * This program is free software; you can redistribute it and/or modify
|
|
15 * it under the terms of the GNU General Public License as published by
|
|
16 * the Free Software Foundation; either version 2, or (at your option)
|
|
17 * any later version.
|
|
18 *
|
|
19 * This program is distributed in the hope that it will be useful,
|
|
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
22 * GNU General Public License for more details.
|
|
23 *
|
|
24 * You should have received a copy of the GNU General Public License
|
|
25 * along with GNU Emacs; see the file COPYING. If not, write to the
|
|
26 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
27 *
|
|
28 * Commentary:
|
|
29 *
|
|
30 * Change log:
|
|
31 *
|
|
32 * Last modified date: 8,Feb.1999
|
|
33 *
|
|
34 * Code:
|
|
35 *
|
|
36 */
|
|
37
|
|
38 #include "commonhd.h"
|
|
39 #include "sdefine.h"
|
|
40 #include "xim.h"
|
|
41 #include "sheader.h"
|
|
42 #include "proto.h"
|
|
43 #include "ext.h"
|
|
44
|
|
45 unsigned long
|
|
46 byteswap_l (l)
|
|
47 unsigned long l;
|
|
48 {
|
|
49 return (((l & 0xff) << 24) | ((l & 0xff00) << 8) | ((l & 0xff0000) >> 8) | ((l >> 24) & 0xff));
|
|
50 }
|
|
51
|
|
52 unsigned short
|
|
53 byteswap_s (s)
|
|
54 unsigned short s;
|
|
55 {
|
|
56 return (((s & 0xff) << 8) | ((s >> 8) & 0xff));
|
|
57 }
|
|
58
|
|
59 void
|
|
60 byteswap_xevent (ev)
|
|
61 register XKeyEvent *ev;
|
|
62 {
|
|
63 ev->type = byteswap_l (ev->type);
|
|
64 ev->serial = byteswap_l (ev->serial);
|
|
65 ev->window = byteswap_l (ev->window);
|
|
66 ev->root = byteswap_l (ev->root);
|
|
67 ev->subwindow = byteswap_l (ev->subwindow);
|
|
68 ev->time = byteswap_l (ev->time);
|
|
69 ev->x_root = byteswap_l (ev->x_root);
|
|
70 ev->y_root = byteswap_l (ev->y_root);
|
|
71 ev->x = byteswap_l (ev->x);
|
|
72 ev->y = byteswap_l (ev->y);
|
|
73 ev->state = byteswap_l (ev->state);
|
|
74 ev->keycode = byteswap_l (ev->keycode);
|
|
75 }
|
|
76
|
|
77 void
|
|
78 byteswap_GetIMReply (p)
|
|
79 register ximGetIMReply *p;
|
|
80 {
|
|
81 p->state = byteswap_s (p->state);
|
|
82 p->num_styles = byteswap_s (p->num_styles);
|
|
83 p->nbytes = byteswap_s (p->nbytes);
|
|
84 }
|
|
85
|
|
86 void
|
|
87 byteswap_CreateICReply (p)
|
|
88 register ximCreateICReply *p;
|
|
89 {
|
|
90 p->state = byteswap_s (p->state);
|
|
91 p->detail = byteswap_s (p->detail);
|
|
92 p->xic = byteswap_l (p->xic);
|
|
93 }
|
|
94
|
|
95 void
|
|
96 byteswap_NormalReply (p)
|
|
97 register ximNormalReply *p;
|
|
98 {
|
|
99 p->state = byteswap_s (p->state);
|
|
100 p->detail = byteswap_s (p->detail);
|
|
101 }
|
|
102
|
|
103 void
|
|
104 byteswap_GetICReply (p)
|
|
105 register ximGetICReply *p;
|
|
106 {
|
|
107 p->state = byteswap_s (p->state);
|
|
108 p->detail = byteswap_s (p->detail);
|
|
109 }
|
|
110
|
|
111 void
|
|
112 byteswap_ICValuesReq (p)
|
|
113 register ximICValuesReq *p;
|
|
114 {
|
|
115 p->mask = byteswap_l (p->mask);
|
|
116 p->input_style = byteswap_l (p->input_style);
|
|
117 p->c_window = byteswap_l (p->c_window);
|
|
118 p->focus_window = byteswap_l (p->focus_window);
|
|
119 p->filter_events = byteswap_l (p->filter_events);
|
|
120 p->max_keycode = byteswap_l (p->max_keycode);
|
|
121 p->nbytes = byteswap_s (p->nbytes);
|
|
122 p->nbytes2 = byteswap_s (p->nbytes2);
|
|
123 }
|
|
124
|
|
125 void
|
|
126 byteswap_ICAttributesReq (p)
|
|
127 register ximICAttributesReq *p;
|
|
128 {
|
|
129 p->area_x = byteswap_s (p->area_x);
|
|
130 p->area_y = byteswap_s (p->area_y);
|
|
131 p->area_width = byteswap_s (p->area_width);
|
|
132 p->area_height = byteswap_s (p->area_height);
|
|
133 p->areaneeded_width = byteswap_s (p->areaneeded_width);
|
|
134 p->areaneeded_height = byteswap_s (p->areaneeded_height);
|
|
135 p->spot_x = byteswap_s (p->spot_x);
|
|
136 p->spot_y = byteswap_s (p->spot_y);
|
|
137 p->colormap = byteswap_l (p->colormap);
|
|
138 p->std_colormap = byteswap_l (p->std_colormap);
|
|
139 p->foreground = byteswap_l (p->foreground);
|
|
140 p->background = byteswap_l (p->background);
|
|
141 p->pixmap = byteswap_l (p->pixmap);
|
|
142 p->line_space = byteswap_s (p->line_space);
|
|
143 p->cursor = byteswap_l (p->cursor);
|
|
144 p->nfonts = byteswap_s (p->nfonts);
|
|
145 p->nbytes = byteswap_s (p->nbytes);
|
|
146 }
|
|
147
|
|
148 void
|
|
149 byteswap_EventReply (p)
|
|
150 register ximEventReply *p;
|
|
151 {
|
|
152 p->state = byteswap_s (p->state);
|
|
153 p->detail = byteswap_s (p->detail);
|
|
154 p->number = byteswap_s (p->number);
|
|
155 }
|
|
156
|
|
157 void
|
|
158 byteswap_ReturnReply (p)
|
|
159 register ximReturnReply *p;
|
|
160 {
|
|
161 p->type = byteswap_s (p->type);
|
|
162 p->length = byteswap_s (p->length);
|
|
163 p->keysym = byteswap_l (p->keysym);
|
|
164 }
|
|
165
|
|
166 #ifdef CALLBACKS
|
|
167 void
|
|
168 byteswap_StatusDrawReply (p)
|
|
169 register ximStatusDrawReply *p;
|
|
170 {
|
|
171 p->type = byteswap_s (p->type);
|
|
172 p->encoding_is_wchar = byteswap_s (p->encoding_is_wchar);
|
|
173 p->length = byteswap_s (p->length);
|
|
174 p->feedback = byteswap_s (p->feedback);
|
|
175 p->bitmap = byteswap_l (p->bitmap);
|
|
176 }
|
|
177
|
|
178 void
|
|
179 byteswap_PreDrawReply (p)
|
|
180 register ximPreDrawReply *p;
|
|
181 {
|
|
182 p->caret = byteswap_s (p->caret);
|
|
183 p->chg_first = byteswap_s (p->chg_first);
|
|
184 p->chg_length = byteswap_s (p->chg_length);
|
|
185 p->encoding_is_wchar = byteswap_s (p->encoding_is_wchar);
|
|
186 p->length = byteswap_s (p->length);
|
|
187 p->feedback = byteswap_l (p->feedback);
|
|
188 }
|
|
189
|
|
190 void
|
|
191 byteswap_PreCaretReply (p)
|
|
192 register ximPreCaretReply *p;
|
|
193 {
|
|
194 p->position = byteswap_s (p->position);
|
|
195 p->direction = byteswap_s (p->direction);
|
|
196 p->style = byteswap_s (p->style);
|
|
197 }
|
|
198 #endif /* CALLBACKS */
|