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.3 2009/12/10 20:35:56 abs Exp $
--- lib/libxview/canvas/cnvs_input.c.orig 1993-06-29 05:14:46.000000000 +0000
+++ lib/libxview/canvas/cnvs_input.c
@@ -415,20 +415,25 @@ canvas_window_event(canvas_public, event
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 @@ canvas_event(canvas_public, event)
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);
}
|