summaryrefslogtreecommitdiff
path: root/x11/xview-lib/patches/patch-ai
blob: e7531c67ca1202743ee0334ecea8e82c815de379 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
$NetBSD: patch-ai,v 1.2 2001/12/20 09:19:55 tron Exp $

--- lib/libxview/canvas/cnvs_input.c.orig	Tue Jun 29 07:14:46 1993
+++ lib/libxview/canvas/cnvs_input.c	Thu Dec 20 10:10:42 2001
@@ -415,20 +415,25 @@
     register Event *event;
 {
     Xv_Window       paint_window;
-    Event           tmp_event;
+    Event           *tmp_event;
     int             x, y;
 
+    if ( (tmp_event = (Event *) malloc(sizeof(Event))) == NULL){
+	fprintf(stderr,"canvas_window_event: malloc failed\n");
+	exit(1);
+    }
     paint_window = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0);
     if (paint_window == NULL) {
 	/* call xv_error */
 	return (event);
     }
-    tmp_event = *event;
+
+    memcpy(tmp_event,event,sizeof(Event));
     win_translate_xy(paint_window, canvas_public,
 		     event_x(event), event_y(event), &x, &y);
-    event_set_x(&tmp_event, x);
-    event_set_y(&tmp_event, y);
-    return (&tmp_event);
+    event_set_x(tmp_event, x);
+    event_set_y(tmp_event, y);
+    return (tmp_event);
 }
 
 /*
@@ -440,20 +445,24 @@
     register Event *event;
 {
     Xv_Window       paint_window;
-    Event           tmp_event;
+    Event           *tmp_event;
     int             x, y;
 
+    if ( (tmp_event = (Event *) malloc(sizeof(Event))) == NULL){
+	fprintf(stderr,"canvas_window_event: malloc failed\n");
+	exit(1);
+    }
     paint_window = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0);
     if (paint_window == NULL) {
 	/* call xv_error */
 	return (event);
     }
-    tmp_event = *event;
+    memcpy(tmp_event,event,sizeof(Event));
     win_translate_xy(paint_window, canvas_public,
 		     event_x(event), event_y(event), &x, &y);
-    event_set_x(&tmp_event, x);
-    event_set_y(&tmp_event, y);
-    return (&tmp_event);
+    event_set_x(tmp_event, x);
+    event_set_y(tmp_event, y);
+    return (tmp_event);
 }