diff Xwnmo/xwnmo/byte_swap.c @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Xwnmo/xwnmo/byte_swap.c	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,198 @@
+/*
+ * $Id: byte_swap.c,v 1.2 2001/06/14 18:16:14 ura Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ * Copyright 1991, 1992 by Massachusetts Institute of Technology
+ *
+ * Author: OMRON SOFTWARE Co., Ltd. <freewnn@rd.kyoto.omronsoft.co.jp>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Emacs; see the file COPYING.  If not, write to the
+ * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Commentary:
+ *
+ * Change log:
+ *
+ * Last modified date: 8,Feb.1999
+ *
+ * Code:
+ *
+ */
+
+#include "commonhd.h"
+#include "sdefine.h"
+#include "xim.h"
+#include "sheader.h"
+#include "proto.h"
+#include "ext.h"
+
+unsigned long
+byteswap_l (l)
+     unsigned long l;
+{
+  return (((l & 0xff) << 24) | ((l & 0xff00) << 8) | ((l & 0xff0000) >> 8) | ((l >> 24) & 0xff));
+}
+
+unsigned short
+byteswap_s (s)
+     unsigned short s;
+{
+  return (((s & 0xff) << 8) | ((s >> 8) & 0xff));
+}
+
+void
+byteswap_xevent (ev)
+     register XKeyEvent *ev;
+{
+  ev->type = byteswap_l (ev->type);
+  ev->serial = byteswap_l (ev->serial);
+  ev->window = byteswap_l (ev->window);
+  ev->root = byteswap_l (ev->root);
+  ev->subwindow = byteswap_l (ev->subwindow);
+  ev->time = byteswap_l (ev->time);
+  ev->x_root = byteswap_l (ev->x_root);
+  ev->y_root = byteswap_l (ev->y_root);
+  ev->x = byteswap_l (ev->x);
+  ev->y = byteswap_l (ev->y);
+  ev->state = byteswap_l (ev->state);
+  ev->keycode = byteswap_l (ev->keycode);
+}
+
+void
+byteswap_GetIMReply (p)
+     register ximGetIMReply *p;
+{
+  p->state = byteswap_s (p->state);
+  p->num_styles = byteswap_s (p->num_styles);
+  p->nbytes = byteswap_s (p->nbytes);
+}
+
+void
+byteswap_CreateICReply (p)
+     register ximCreateICReply *p;
+{
+  p->state = byteswap_s (p->state);
+  p->detail = byteswap_s (p->detail);
+  p->xic = byteswap_l (p->xic);
+}
+
+void
+byteswap_NormalReply (p)
+     register ximNormalReply *p;
+{
+  p->state = byteswap_s (p->state);
+  p->detail = byteswap_s (p->detail);
+}
+
+void
+byteswap_GetICReply (p)
+     register ximGetICReply *p;
+{
+  p->state = byteswap_s (p->state);
+  p->detail = byteswap_s (p->detail);
+}
+
+void
+byteswap_ICValuesReq (p)
+     register ximICValuesReq *p;
+{
+  p->mask = byteswap_l (p->mask);
+  p->input_style = byteswap_l (p->input_style);
+  p->c_window = byteswap_l (p->c_window);
+  p->focus_window = byteswap_l (p->focus_window);
+  p->filter_events = byteswap_l (p->filter_events);
+  p->max_keycode = byteswap_l (p->max_keycode);
+  p->nbytes = byteswap_s (p->nbytes);
+  p->nbytes2 = byteswap_s (p->nbytes2);
+}
+
+void
+byteswap_ICAttributesReq (p)
+     register ximICAttributesReq *p;
+{
+  p->area_x = byteswap_s (p->area_x);
+  p->area_y = byteswap_s (p->area_y);
+  p->area_width = byteswap_s (p->area_width);
+  p->area_height = byteswap_s (p->area_height);
+  p->areaneeded_width = byteswap_s (p->areaneeded_width);
+  p->areaneeded_height = byteswap_s (p->areaneeded_height);
+  p->spot_x = byteswap_s (p->spot_x);
+  p->spot_y = byteswap_s (p->spot_y);
+  p->colormap = byteswap_l (p->colormap);
+  p->std_colormap = byteswap_l (p->std_colormap);
+  p->foreground = byteswap_l (p->foreground);
+  p->background = byteswap_l (p->background);
+  p->pixmap = byteswap_l (p->pixmap);
+  p->line_space = byteswap_s (p->line_space);
+  p->cursor = byteswap_l (p->cursor);
+  p->nfonts = byteswap_s (p->nfonts);
+  p->nbytes = byteswap_s (p->nbytes);
+}
+
+void
+byteswap_EventReply (p)
+     register ximEventReply *p;
+{
+  p->state = byteswap_s (p->state);
+  p->detail = byteswap_s (p->detail);
+  p->number = byteswap_s (p->number);
+}
+
+void
+byteswap_ReturnReply (p)
+     register ximReturnReply *p;
+{
+  p->type = byteswap_s (p->type);
+  p->length = byteswap_s (p->length);
+  p->keysym = byteswap_l (p->keysym);
+}
+
+#ifdef  CALLBACKS
+void
+byteswap_StatusDrawReply (p)
+     register ximStatusDrawReply *p;
+{
+  p->type = byteswap_s (p->type);
+  p->encoding_is_wchar = byteswap_s (p->encoding_is_wchar);
+  p->length = byteswap_s (p->length);
+  p->feedback = byteswap_s (p->feedback);
+  p->bitmap = byteswap_l (p->bitmap);
+}
+
+void
+byteswap_PreDrawReply (p)
+     register ximPreDrawReply *p;
+{
+  p->caret = byteswap_s (p->caret);
+  p->chg_first = byteswap_s (p->chg_first);
+  p->chg_length = byteswap_s (p->chg_length);
+  p->encoding_is_wchar = byteswap_s (p->encoding_is_wchar);
+  p->length = byteswap_s (p->length);
+  p->feedback = byteswap_l (p->feedback);
+}
+
+void
+byteswap_PreCaretReply (p)
+     register ximPreCaretReply *p;
+{
+  p->position = byteswap_s (p->position);
+  p->direction = byteswap_s (p->direction);
+  p->style = byteswap_s (p->style);
+}
+#endif /* CALLBACKS */