// ReadEvent reads the next event from the window's event file.

ReadEvent reads the next event from the window's event file.
// ReadEvent reads the next event from the window ' s event file .
func (w *Win) ReadEvent() (e *Event, err error) {
	defer func() {
		if v := recover(); v != nil {
			e = nil
			err = errors.New("malformed acme event: " + v.(string))
		}
	}()
	if _, err = w.fid("event"); err != nil {
		return nil, err
	}
	e = new(Event)
	w.gete(e)
	e.OrigQ0 = e.Q0
	e.OrigQ1 = e.Q1
	if e.Flag&2 != 0 {
		e2 := new(Event)
		w.gete(e2)
		if e.Q0 == e.Q1 {
			e2.OrigQ0 = e.Q0
			e2.OrigQ1 = e.Q1
			e2.Flag = e.Flag
			e = e2
		}
	}
	if e.Flag&8 != 0 {
		e3 := new(Event)
		e4 := new(Event)
		w.gete(e3)
		w.gete(e4)
		e.Arg = e3.Text
		e.Loc = e4.Text
	}
	return e, nil
}
func ( w * Win ) ReadEvent ( ) ( e * Event , err error ) { defer func ( ) { if v := recover ( ) ; v != nil { e = nil err = errors . New ( " " + v . ( string ) ) } } ( ) if _ , err = w . fid ( " " ) ; err != nil { return nil , err } e = new ( Event ) w . gete ( e ) e . OrigQ0 = e . Q0 e . OrigQ1 = e . Q1 if e . Flag & 2 != 0 { e2 := new ( Event ) w . gete ( e2 ) if e . Q0 == e . Q1 { e2 . OrigQ0 = e . Q0 e2 . OrigQ1 = e . Q1 e2 . Flag = e . Flag e = e2 } } if e . Flag & 8 != 0 { e3 := new ( Event ) e4 := new ( Event ) w . gete ( e3 ) w . gete ( e4 ) e . Arg = e3 . Text e . Loc = e4 . Text } return e , nil }
ReadEvent reads the next event from the window's event file.
ReadEvent reads the next event from the window ' s event file .
// expansion
 // chorded argument
