diff options
| author | Dave Love | 2002-10-31 17:59:30 +0000 |
|---|---|---|
| committer | Dave Love | 2002-10-31 17:59:30 +0000 |
| commit | 560d7ceb94923d12a2863a7f1ba1a953d49049ec (patch) | |
| tree | 072931437775e74fea8ad56a6bde7e6e311797e6 /src | |
| parent | 296b92467f24d14d61dfadbc0e193ff6c35beee8 (diff) | |
| download | emacs-560d7ceb94923d12a2863a7f1ba1a953d49049ec.tar.gz emacs-560d7ceb94923d12a2863a7f1ba1a953d49049ec.zip | |
(XTread_socket): Fix last change.
(xaw_scroll_callback): Cast call_data to long to avoid warning.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 158 |
1 files changed, 88 insertions, 70 deletions
diff --git a/src/xterm.c b/src/xterm.c index ebc9fb734fc..1b16ba85055 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -8788,7 +8788,8 @@ xaw_scroll_callback (widget, client_data, call_data) | |||
| 8788 | XtPointer client_data, call_data; | 8788 | XtPointer client_data, call_data; |
| 8789 | { | 8789 | { |
| 8790 | struct scroll_bar *bar = (struct scroll_bar *) client_data; | 8790 | struct scroll_bar *bar = (struct scroll_bar *) client_data; |
| 8791 | int position = (int) call_data; | 8791 | /* The position really is stored cast to a pointer. */ |
| 8792 | int position = (long) call_data; | ||
| 8792 | Dimension height; | 8793 | Dimension height; |
| 8793 | int part; | 8794 | int part; |
| 8794 | 8795 | ||
| @@ -10737,117 +10738,134 @@ XTread_socket (sd, bufp, numchars, expected) | |||
| 10737 | 10738 | ||
| 10738 | if (numchars > 1) | 10739 | if (numchars > 1) |
| 10739 | { | 10740 | { |
| 10740 | if (((keysym >= XK_BackSpace && keysym <= XK_Escape) | 10741 | Lisp_Object c; |
| 10741 | || keysym == XK_Delete | 10742 | |
| 10743 | /* First deal with keysyms which have defined | ||
| 10744 | translations to characters. */ | ||
| 10745 | if (keysym >= 32 && keysym < 128) | ||
| 10746 | /* Avoid explicitly decoding each ASCII character. */ | ||
| 10747 | { | ||
| 10748 | bufp->kind = ASCII_KEYSTROKE_EVENT; | ||
| 10749 | bufp->code = keysym; | ||
| 10750 | XSETFRAME (bufp->frame_or_window, f); | ||
| 10751 | bufp->arg = Qnil; | ||
| 10752 | bufp->modifiers | ||
| 10753 | = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), | ||
| 10754 | modifiers); | ||
| 10755 | bufp->timestamp = event.xkey.time; | ||
| 10756 | bufp++; | ||
| 10757 | count++; | ||
| 10758 | numchars--; | ||
| 10759 | } | ||
| 10760 | /* Now non-ASCII. */ | ||
| 10761 | else if (! EQ ((c = Fgethash (make_number (keysym), | ||
| 10762 | Vx_keysym_table, Qnil)), | ||
| 10763 | Qnil)) | ||
| 10764 | { | ||
| 10765 | bufp->kind = (SINGLE_BYTE_CHAR_P (c) | ||
| 10766 | ? ASCII_KEYSTROKE_EVENT | ||
| 10767 | : MULTIBYTE_CHAR_KEYSTROKE_EVENT); | ||
| 10768 | bufp->code = c; | ||
| 10769 | XSETFRAME (bufp->frame_or_window, f); | ||
| 10770 | bufp->arg = Qnil; | ||
| 10771 | bufp->modifiers | ||
| 10772 | = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), | ||
| 10773 | modifiers); | ||
| 10774 | bufp->timestamp = event.xkey.time; | ||
| 10775 | bufp++; | ||
| 10776 | count++; | ||
| 10777 | numchars--; | ||
| 10778 | } | ||
| 10779 | /* Random non-modifier sorts of keysyms. */ | ||
| 10780 | else if (((keysym >= XK_BackSpace && keysym <= XK_Escape) | ||
| 10781 | || keysym == XK_Delete | ||
| 10742 | #ifdef XK_ISO_Left_Tab | 10782 | #ifdef XK_ISO_Left_Tab |
| 10743 | || (keysym >= XK_ISO_Left_Tab && keysym <= XK_ISO_Enter) | 10783 | || (keysym >= XK_ISO_Left_Tab |
| 10784 | && keysym <= XK_ISO_Enter) | ||
| 10744 | #endif | 10785 | #endif |
| 10745 | || (keysym >= XK_Kanji && keysym <= XK_Eisu_toggle) | 10786 | || IsCursorKey (keysym) /* 0xff50 <= x < 0xff60 */ |
| 10746 | || IsCursorKey (keysym) /* 0xff50 <= x < 0xff60 */ | 10787 | || IsMiscFunctionKey (keysym) /* 0xff60 <= x < VARIES */ |
| 10747 | || IsMiscFunctionKey (keysym) /* 0xff60 <= x < VARIES */ | ||
| 10748 | #ifdef HPUX | 10788 | #ifdef HPUX |
| 10749 | /* This recognizes the "extended function keys". | 10789 | /* This recognizes the "extended function |
| 10750 | It seems there's no cleaner way. | 10790 | keys". It seems there's no cleaner way. |
| 10751 | Test IsModifierKey to avoid handling mode_switch | 10791 | Test IsModifierKey to avoid handling |
| 10752 | incorrectly. */ | 10792 | mode_switch incorrectly. */ |
| 10753 | || ((unsigned) (keysym) >= XK_Select | 10793 | || ((unsigned) (keysym) >= XK_Select |
| 10754 | && (unsigned)(keysym) < XK_KP_Space) | 10794 | && (unsigned)(keysym) < XK_KP_Space) |
| 10755 | #endif | 10795 | #endif |
| 10756 | #ifdef XK_dead_circumflex | 10796 | #ifdef XK_dead_circumflex |
| 10757 | || orig_keysym == XK_dead_circumflex | 10797 | || orig_keysym == XK_dead_circumflex |
| 10758 | #endif | 10798 | #endif |
| 10759 | #ifdef XK_dead_grave | 10799 | #ifdef XK_dead_grave |
| 10760 | || orig_keysym == XK_dead_grave | 10800 | || orig_keysym == XK_dead_grave |
| 10761 | #endif | 10801 | #endif |
| 10762 | #ifdef XK_dead_tilde | 10802 | #ifdef XK_dead_tilde |
| 10763 | || orig_keysym == XK_dead_tilde | 10803 | || orig_keysym == XK_dead_tilde |
| 10764 | #endif | 10804 | #endif |
| 10765 | #ifdef XK_dead_diaeresis | 10805 | #ifdef XK_dead_diaeresis |
| 10766 | || orig_keysym == XK_dead_diaeresis | 10806 | || orig_keysym == XK_dead_diaeresis |
| 10767 | #endif | 10807 | #endif |
| 10768 | #ifdef XK_dead_macron | 10808 | #ifdef XK_dead_macron |
| 10769 | || orig_keysym == XK_dead_macron | 10809 | || orig_keysym == XK_dead_macron |
| 10770 | #endif | 10810 | #endif |
| 10771 | #ifdef XK_dead_degree | 10811 | #ifdef XK_dead_degree |
| 10772 | || orig_keysym == XK_dead_degree | 10812 | || orig_keysym == XK_dead_degree |
| 10773 | #endif | 10813 | #endif |
| 10774 | #ifdef XK_dead_acute | 10814 | #ifdef XK_dead_acute |
| 10775 | || orig_keysym == XK_dead_acute | 10815 | || orig_keysym == XK_dead_acute |
| 10776 | #endif | 10816 | #endif |
| 10777 | #ifdef XK_dead_cedilla | 10817 | #ifdef XK_dead_cedilla |
| 10778 | || orig_keysym == XK_dead_cedilla | 10818 | || orig_keysym == XK_dead_cedilla |
| 10779 | #endif | 10819 | #endif |
| 10780 | #ifdef XK_dead_breve | 10820 | #ifdef XK_dead_breve |
| 10781 | || orig_keysym == XK_dead_breve | 10821 | || orig_keysym == XK_dead_breve |
| 10782 | #endif | 10822 | #endif |
| 10783 | #ifdef XK_dead_ogonek | 10823 | #ifdef XK_dead_ogonek |
| 10784 | || orig_keysym == XK_dead_ogonek | 10824 | || orig_keysym == XK_dead_ogonek |
| 10785 | #endif | 10825 | #endif |
| 10786 | #ifdef XK_dead_caron | 10826 | #ifdef XK_dead_caron |
| 10787 | || orig_keysym == XK_dead_caron | 10827 | || orig_keysym == XK_dead_caron |
| 10788 | #endif | 10828 | #endif |
| 10789 | #ifdef XK_dead_doubleacute | 10829 | #ifdef XK_dead_doubleacute |
| 10790 | || orig_keysym == XK_dead_doubleacute | 10830 | || orig_keysym == XK_dead_doubleacute |
| 10791 | #endif | 10831 | #endif |
| 10792 | #ifdef XK_dead_abovedot | 10832 | #ifdef XK_dead_abovedot |
| 10793 | || orig_keysym == XK_dead_abovedot | 10833 | || orig_keysym == XK_dead_abovedot |
| 10794 | #endif | 10834 | #endif |
| 10795 | || IsKeypadKey (keysym) /* 0xff80 <= x < 0xffbe */ | 10835 | || IsKeypadKey (keysym) /* 0xff80 <= x < 0xffbe */ |
| 10796 | || IsFunctionKey (keysym) /* 0xffbe <= x < 0xffe1 */ | 10836 | || IsFunctionKey (keysym) /* 0xffbe <= x < 0xffe1 */ |
| 10797 | /* Any "vendor-specific" key is ok. */ | 10837 | /* Any "vendor-specific" key is ok. */ |
| 10798 | || (orig_keysym & (1 << 28)) | 10838 | || (orig_keysym & (1 << 28)) |
| 10799 | || (keysym != NoSymbol && nbytes == 0)) | 10839 | || (keysym != NoSymbol && nbytes == 0)) |
| 10800 | && ! (IsModifierKey (orig_keysym) | 10840 | && ! (IsModifierKey (orig_keysym) |
| 10801 | #ifndef HAVE_X11R5 | 10841 | #ifndef HAVE_X11R5 |
| 10802 | #ifdef XK_Mode_switch | 10842 | #ifdef XK_Mode_switch |
| 10803 | || ((unsigned)(orig_keysym) == XK_Mode_switch) | 10843 | || ((unsigned)(orig_keysym) == XK_Mode_switch) |
| 10804 | #endif | 10844 | #endif |
| 10805 | #ifdef XK_Num_Lock | 10845 | #ifdef XK_Num_Lock |
| 10806 | || ((unsigned)(orig_keysym) == XK_Num_Lock) | 10846 | || ((unsigned)(orig_keysym) == XK_Num_Lock) |
| 10807 | #endif | 10847 | #endif |
| 10808 | #endif /* not HAVE_X11R5 */ | 10848 | #endif /* not HAVE_X11R5 */ |
| 10809 | /* The symbols from XK_ISO_Lock to | 10849 | /* The symbols from XK_ISO_Lock |
| 10810 | XK_ISO_Last_Group_Lock doesn't have real | 10850 | to XK_ISO_Last_Group_Lock |
| 10811 | modifiers but should be treated similarly | 10851 | don't have real modifiers but |
| 10812 | to Mode_switch by Emacs. */ | 10852 | should be treated similarly to |
| 10853 | Mode_switch by Emacs. */ | ||
| 10813 | #if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock | 10854 | #if defined XK_ISO_Lock && defined XK_ISO_Last_Group_Lock |
| 10814 | || ((unsigned)(orig_keysym) >= XK_ISO_Lock | 10855 | || ((unsigned)(orig_keysym) |
| 10815 | && (unsigned)(orig_keysym) <= XK_ISO_Last_Group_Lock) | 10856 | >= XK_ISO_Lock |
| 10857 | && (unsigned)(orig_keysym) | ||
| 10858 | <= XK_ISO_Last_Group_Lock) | ||
| 10816 | #endif | 10859 | #endif |
| 10817 | )) | 10860 | )) |
| 10818 | { | 10861 | { |
| 10819 | Lisp_Object c; | ||
| 10820 | |||
| 10821 | if (temp_index == sizeof temp_buffer / sizeof (short)) | 10862 | if (temp_index == sizeof temp_buffer / sizeof (short)) |
| 10822 | temp_index = 0; | 10863 | temp_index = 0; |
| 10823 | temp_buffer[temp_index++] = keysym; | 10864 | temp_buffer[temp_index++] = keysym; |
| 10824 | /* First deal with keysyms which have | 10865 | /* make_lispy_event will convert this to a symbolic |
| 10825 | defined translations to characters. */ | 10866 | key. */ |
| 10826 | if (keysym >= 32 && keysym < 128) | 10867 | bufp->kind = NON_ASCII_KEYSTROKE_EVENT; |
| 10827 | /* Avoid explicitly decoding each ASCII | 10868 | bufp->code = keysym; |
| 10828 | character. */ | ||
| 10829 | { | ||
| 10830 | bufp->kind = ASCII_KEYSTROKE_EVENT; | ||
| 10831 | bufp->code = c; | ||
| 10832 | } | ||
| 10833 | else if (! EQ ((c = Fgethash (make_number (keysym), | ||
| 10834 | Vx_keysym_table, | ||
| 10835 | Qnil)), | ||
| 10836 | Qnil)) | ||
| 10837 | { | ||
| 10838 | bufp->kind = (SINGLE_BYTE_CHAR_P (c) | ||
| 10839 | ? ASCII_KEYSTROKE_EVENT | ||
| 10840 | : MULTIBYTE_CHAR_KEYSTROKE_EVENT); | ||
| 10841 | bufp->code = c; | ||
| 10842 | } | ||
| 10843 | else | ||
| 10844 | { | ||
| 10845 | /* Not a character keysym. | ||
| 10846 | make_lispy_event will convert it to a | ||
| 10847 | symbolic key. */ | ||
| 10848 | bufp->kind = NON_ASCII_KEYSTROKE_EVENT; | ||
| 10849 | bufp->code = keysym; | ||
| 10850 | } | ||
| 10851 | XSETFRAME (bufp->frame_or_window, f); | 10869 | XSETFRAME (bufp->frame_or_window, f); |
| 10852 | bufp->arg = Qnil; | 10870 | bufp->arg = Qnil; |
| 10853 | bufp->modifiers | 10871 | bufp->modifiers |