Mercurial > hg > xemacs-beta
diff src/events.c @ 173:8eaf7971accc r20-3b13
Import from CVS: tag r20-3b13
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:49:09 +0200 |
parents | 0132846995bd |
children | e121b013d1f0 |
line wrap: on
line diff
--- a/src/events.c Mon Aug 13 09:47:55 2007 +0200 +++ b/src/events.c Mon Aug 13 09:49:09 2007 +0200 @@ -161,7 +161,7 @@ if (print_readably) error ("printing unreadable object #<event>"); - switch (XEVENT (obj)->event_type) + switch (XEVENT (obj)->event_type) { case key_press_event: print_event_1 ("#<keypress-event ", obj, printcharfun); @@ -217,7 +217,7 @@ } write_c_string (">", printcharfun); } - + static int event_equal (Lisp_Object o1, Lisp_Object o2, int depth) { @@ -231,13 +231,13 @@ { case process_event: return EQ (e1->event.process.process, e2->event.process.process); - + case timeout_event: return (!NILP (Fequal (e1->event.timeout.function, e2->event.timeout.function)) && !NILP (Fequal (e1->event.timeout.object, e2->event.timeout.object))); - + case key_press_event: return (EQ (e1->event.key.keysym, e2->event.key.keysym) && (e1->event.key.modifiers == e2->event.key.modifiers)); @@ -306,11 +306,11 @@ { case process_event: return HASH2 (hash, LISP_HASH (e->event.process.process)); - + case timeout_event: return HASH3 (hash, internal_hash (e->event.timeout.function, depth + 1), internal_hash (e->event.timeout.object, depth + 1)); - + case key_press_event: return HASH3 (hash, LISP_HASH (e->event.key.keysym), e->event.key.modifiers); @@ -406,25 +406,26 @@ assert (XEVENT_TYPE (event) <= last_event_type); #if 0 - { - int i; + { + int i, len; extern Lisp_Object Vlast_command_event; extern Lisp_Object Vlast_input_event, Vunread_command_event; extern Lisp_Object Vthis_command_keys, Vrecent_keys_ring; - if (EQ (event, Vlast_command_event)) - abort (); - if (EQ (event, Vlast_input_event)) + if (EQ (event, Vlast_command_event) || + EQ (event, Vlast_input_event) || + EQ (event, Vunread_command_event)) abort (); - if (EQ (event, Vunread_command_event)) - abort (); - for (i = 0; i < XVECTOR (Vthis_command_keys)->size; i++) - if (EQ (event, vector_data (XVECTOR (Vthis_command_keys)) [i])) + + len = XVECTOR_LENGTH (Vthis_command_keys); + for (i = 0; i < len; i++) + if (EQ (event, XVECTOR_DATA (Vthis_command_keys) [i])) abort (); if (!NILP (Vrecent_keys_ring)) { - for (i = 0; i < XVECTOR (Vrecent_keys_ring)->size; i++) - if (EQ (event, vector_data (XVECTOR (Vrecent_keys_ring)) [i])) + int recent_ring_len = XVECTOR_LENGTH (Vrecent_keys_ring); + for (i = 0; i < recent_ring_len; i++) + if (EQ (event, XVECTOR_DATA (Vrecent_keys_ring) [i])) abort (); } } @@ -464,7 +465,7 @@ *XEVENT (event2) = *XEVENT (event1); XSET_EVENT_NEXT (event2, save_next); - return (event2); + return event2; } } @@ -520,7 +521,7 @@ /* Remove an event off the head of a chain of events and return it. HEAD points to the first event in the chain, TAIL to the last event. */ - + Lisp_Object dequeue_event (Lisp_Object *head, Lisp_Object *tail) { @@ -635,9 +636,9 @@ case button_press_event: case button_release_event: case misc_user_event: - return (1); + return 1; default: - return (0); + return 0; } } @@ -692,7 +693,7 @@ k = QKdelete; else if (c == ' ') k = QKspace; - + event->event_type = key_press_event; event->timestamp = 0; /* #### */ event->channel = make_console (con); @@ -751,7 +752,7 @@ /* reject Control-Shift- keys */ if (c >= 'A' && c <= 'Z' && !allow_extra_modifiers) return -1; - + if (c >= '@' && c <= '_') c -= '@'; else if (c == ' ') /* C-space and C-@ are the same. */ @@ -799,7 +800,7 @@ !NILP (allow_extra_modifiers), !NILP (allow_meta), !NILP (allow_non_ascii)); - return (c < 0 ? Qnil : make_char (c)); + return c < 0 ? Qnil : make_char (c); } DEFUN ("character-to-event", Fcharacter_to_event, 1, 4, 0, /* @@ -861,7 +862,7 @@ } else { - Lisp_Object keystroke = vector_data (XVECTOR (seq))[n]; + Lisp_Object keystroke = XVECTOR_DATA (seq)[n]; if (EVENTP (keystroke)) Fcopy_event (keystroke, event); else @@ -1042,7 +1043,7 @@ if (NILP (next_event)) { XSET_EVENT_NEXT (event, Qnil); - return (Qnil); + return Qnil; } CHECK_LIVE_EVENT (next_event); @@ -1051,9 +1052,9 @@ { QUIT; if (EQ (ev, event)) - signal_error (Qerror, + signal_error (Qerror, list3 (build_string ("Cyclic event-next"), - event, + event, next_event)); } XSET_EVENT_NEXT (event, next_event); @@ -1328,7 +1329,7 @@ OBJ_X, OBJ_Y, OBJ1, and OBJ2 are as in pixel_to_glyph_translation(). */ - + static int event_pixel_translation (Lisp_Object event, int *char_x, int *char_y, int *obj_x, int *obj_y, @@ -1339,30 +1340,30 @@ int pix_x = 0; int pix_y = 0; int result; - Lisp_Object frame; + Lisp_Object frame = Qnil; int ret_x, ret_y, ret_obj_x, ret_obj_y; struct window *ret_w; Bufpos ret_bufp, ret_closest; Charcount ret_modeline_closest; Lisp_Object ret_obj1, ret_obj2; - + CHECK_LIVE_EVENT (event); - if (XEVENT (event)->event_type == pointer_motion_event) + frame = XEVENT (event)->channel; + switch (XEVENT (event)->event_type) { + case pointer_motion_event : pix_x = XEVENT (event)->event.motion.x; pix_y = XEVENT (event)->event.motion.y; - frame = XEVENT (event)->channel; - } - else if (XEVENT (event)->event_type == button_press_event || - XEVENT (event)->event_type == button_release_event) - { + break; + case button_press_event : + case button_release_event : pix_x = XEVENT (event)->event.button.x; pix_y = XEVENT (event)->event.button.y; - frame = XEVENT (event)->channel; + break; + default: + dead_wrong_type_argument (Qmouse_event_p, event); } - else - wrong_type_argument (Qmouse_event_p, event); result = pixel_to_glyph_translation (XFRAME (frame), pix_x, pix_y, &ret_x, &ret_y, &ret_obj_x, &ret_obj_y, @@ -1388,8 +1389,7 @@ #endif )) abort (); - if (!NILP (ret_obj2) && !(EXTENTP (ret_obj2) - || CONSP (ret_obj2))) + if (!NILP (ret_obj2) && !(EXTENTP (ret_obj2) || CONSP (ret_obj2))) abort (); if (char_x) @@ -1678,10 +1678,10 @@ switch (XEVENT (event)->event_type) { case timeout_event: - return (XEVENT (event)->event.timeout.function); + return XEVENT (event)->event.timeout.function; case misc_user_event: case eval_event: - return (XEVENT (event)->event.eval.function); + return XEVENT (event)->event.eval.function; default: return wrong_type_argument (intern ("timeout-or-eval-event-p"), event); } @@ -1698,10 +1698,10 @@ switch (XEVENT (event)->event_type) { case timeout_event: - return (XEVENT (event)->event.timeout.object); + return XEVENT (event)->event.timeout.object; case misc_user_event: case eval_event: - return (XEVENT (event)->event.eval.object); + return XEVENT (event)->event.eval.object; default: event = wrong_type_argument (intern ("timeout-or-eval-event-p"), event); goto again; @@ -1729,7 +1729,7 @@ case process_event: props = Fcons (Qprocess, Fcons (e->event.process.process, props)); break; - + case timeout_event: props = Fcons (Qobject, Fcons (Fevent_object (event), props)); props = Fcons (Qfunction, Fcons (Fevent_function (event), props));