#define BUF_SZ 32
+#ifdef WANT_VARIADIC_VOIDP_CAST
+#define VOIDP(__x__) ((void *)(__x__))
+#else
+#define VOIDP(__x__) (__x__)
+#endif
+
static dcpu16_hw_signal_t keyboard_reset_;
static dcpu16_hw_signal_t keyboard_cycle_;
static dcpu16_hw_signal_t keyboard_hwi_;
keysym_rfbtodcpu(key, &dcpu_key);
- fprintf(stderr, "%s: down:%u key:0x%04x dcpu_key:0x%04x\n", __func__,
- down, key, dcpu_key);
+ fprintf(stderr, "%s: down:%u key:0x%04x dcpu_key:0x%04x\n",
+ __func__,
+ down,
+ key,
+ dcpu_key);
- fprintf(stderr, "%s: hw:%p name:%s vm:%p\n", __func__, hw, hw->name_, hw->vm);
+ fprintf(stderr, "%s: hw:%p name:%s vm:%p\n",
+ __func__,
+ VOIDP(hw),
+ hw->name_,
+ VOIDP(hw->vm));
keyboard->keys_pressed[dcpu_key] = (down ? 1 : 0);
if (down) {
void keyboard_del(struct dcpu16_hw **hw) {
if (hw) {
- free(((struct keyboard_ *)((*hw)->data))->buf);
- ((struct keyboard_ *)((*hw)->data))->buf = NULL;
-
- free((*hw)->data);
- (*hw)->data = NULL;
-
- free(*hw);
- *hw = NULL;
+ if (*hw) {
+ if ((*hw)->data) {
+ free(((struct keyboard_ *)((*hw)->data))->buf);
+ ((struct keyboard_ *)((*hw)->data))->buf = NULL;
+
+ free((*hw)->data);
+ (*hw)->data = NULL;
+ }
+ free(*hw);
+ *hw = NULL;
+ }
}
}