In plan9port there is a libacme and <acme.h>
which makes some of this easier.  It is basically
a wrapping of the routines from acme Mail.
Using libacme, your event waiter can do
something like this to send the events back:

        while(winreadevent(w, e) > 0) {
                switch(e->c1){
                default:
                Unknown:
                        print("unknown message %c%c\n", e->c1, e->c2);
                        break;

                case 'E':       /* write to body; can't affect us */
                case 'F':       /* generated by our actions; ignore */
                case 'K':       /* type away; we don't care */
                        break;

                case 'M':
                        switch(e->c2){
                        case 'x':
                        case 'X':
                        case 'l':
                        case 'L':
                                /* send it back */
                                winwriteevent(w, e);
                                break;

                        case 'I':       /* modify away; we don't care */
                        case 'D':
                        case 'd':
                        case 'i':
                                break;

                        default:
                                goto Unknown;
                        }
                }
        }

Russ

Reply via email to