diff --git a/doc/geos.sgml b/doc/geos.sgml index 0539e490b..14acb7d48 100644 --- a/doc/geos.sgml +++ b/doc/geos.sgml @@ -1607,7 +1607,7 @@ void example = {

It is possible to intercept and hook in the GEOS Kernal using vectors. Here is a little example: -void (*oldVector)(void); +void_func oldVector; void NewVectorHandler(void) { // do something and at the end call the old vector routine diff --git a/samples/geos/vector-demo.c b/samples/geos/vector-demo.c index a558e1f2a..cddb943d2 100644 --- a/samples/geos/vector-demo.c +++ b/samples/geos/vector-demo.c @@ -5,8 +5,7 @@ unsigned char x,y; -void (*oldMouseVector)(); -void (*oldKeyVector)(); +void_func oldMouseVector, oldKeyVector; void foo1 (void) { // do something on mouse press/release @@ -28,15 +27,15 @@ void foo2 (void) { void hook_into_system(void) { // hook into system vectors - preserve old value - oldMouseVector = (void (*)())mouseVector; - mouseVector = (int)foo1; - oldKeyVector = (void (*)())keyVector; - keyVector = (int)foo2; + oldMouseVector = mouseVector; + mouseVector = foo1; + oldKeyVector = keyVector; + keyVector = foo2; } void remove_hooks(void) { - mouseVector = (int)oldMouseVector; - keyVector = (int)oldKeyVector; + mouseVector = oldMouseVector; + keyVector = oldKeyVector; } int main(void) {