kkim@uiucdcsb.cs.uiuc.edu (08/19/87)
i tried to e-mail him the following only to fail. could you (jwhitnel)
please post/send your e-mail address? my system could not recognize 'csib'.
0. thanks for your helpful comments.
1. what c compiler are you using here? (lightspeec, mpw, aztec, etc).
also, are "pascal Boolean myGetNextEvent" and "CallPascalW" available in some
specific C compiler only OR are they available in most C compilers in
general?
2. you did not use any assembly language. do you think that you can patch
a trap without any assembly language? somebody said that we need it a
little in general to patch a trap?
3. you did not mention how to put the patch on the application heap.
could you pleae explain it a little more? it seems that we need to
create a CODE resource, isn't it?
4. some procedure/variable names used are defined externally:
myGetNextEvent in the initialization code, and
oldGetNextEvent in the patch itself.
i want to know how to make externally defined procedure names available
in a procedure/function.
5. i can understand where initialization/termination codes should be
placed within a Desk Acc. However, i cannot imagine how / where to put
the patch itself ?
OpenRoutine of Desk Acc: /* initlization code */
> oldGetNextEvent = NGetTrapAddr( GNE_TRAP );
> NSetTrapAddr( myGetNextEvent );
>
CloseRoutine of Desk Acc: /* termination code. */
> SetTrapAddr( GNE_TRAP, oldGetNextEvent );
???????? how / where to put the following code??????
> /* This is the patch itself, parameters must match GetNextEvent */
> pascal Boolean myGetNextEvent( event, mask )
> EventRecord *event;
> int mask; {
> Boolean retCode;
>
> /* First call real GetNextEvent to get the event. CallPascalW calls
> ** indirectly a pascal function from C. Your glue may differ here
> */
> retCode = CallPascalW( event, mask, oldGetNextEvent );
> if ( retCode )
> {
> /* We have an event, so preprocess it */
> }
>
> return( retCode );
> }
>
> Jerry Whitnell
> Communication Solutions, Inc.
Kyongsok KIM
Dept. of Computer Science; Univ. of Illinois at Urbana-Champaign
arpanet/csnet: kkim@b.cs.uiuc.edu
usenet/uucp : {seismo, pur-ee, ihnp4}!uiucdcs!kkimkkim@uiucdcsb.cs.uiuc.edu (08/21/87)
everybody is welcome to make any comments about my previous response (actually questions). thanks in advance. k kim