Sunview Programing Question/Problem
    Yuan Hsieh 
    ych at maps.cs.cmu.edu
       
    Sat Dec  2 06:33:00 AEST 1989
    
    
  
A questions on Sunview programming concerning use of window_read_event().
I have the following event handler for a canvas window:
canvas_handle_event(canvas,event,arg)
{
   ...
   switch(event_acton(event)) {
     ...
     case 'Z': z_proc(canvas); break;
     ...
   } 
   ...
}
When event 'Z' occurs, z_proc() is called and is defined as follows:
[z_proc() is suppose to wait for a 'down' event to occur.]
z_proc(canvas)
{
  ...
  while(1) {
    if ((winderr = window_read_event(canvas,event)) == 0) {
      if (event_is_down(event)) break;
    } else if (winderr == -1) {
      printf("errno:%d\n",errno);
    }
  }
  ...
}
Problem: 
if 'Z' event is the first thing I do, z_proc() executes with no fault.
But if there are any other event before 'Z', window_read_event() returns
-1 with errno of 14 which is, (according to man 2 intro):
     14  EFAULT  Bad address
          The system encountered a hardware fault in attempting
          to access the arguments of a system call.
I am pretty sure all other parts of my program does not affect this at
all.  Anyone know what this means?  Am I missing something?
Please reply to ych at maps.cs.cmu.edu.. Thanks.
    
    
More information about the Comp.sys.sun
mailing list