diff options
| author | Karoly Lorentey | 2004-10-19 17:00:02 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-10-19 17:00:02 +0000 |
| commit | 90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f (patch) | |
| tree | b5cb05f7c5d0c27537362072badf76355d363319 /src | |
| parent | ec16044407f468aacda9eb031fb7267d5ee0f899 (diff) | |
| parent | d4c2c0eff81e7540cbb0a32ef10017285f68e1aa (diff) | |
| download | emacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.tar.gz emacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.zip | |
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-616
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-617
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-618
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-619
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-620
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-621
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-622
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-623
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-624
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-625
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-51
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-52
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-53
Merge from emacs--cvs-trunk--0
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-261
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 53 | ||||
| -rw-r--r-- | src/doc.c | 16 | ||||
| -rw-r--r-- | src/fontset.c | 29 | ||||
| -rw-r--r-- | src/gtkutil.c | 9 | ||||
| -rw-r--r-- | src/lisp.h | 1 | ||||
| -rw-r--r-- | src/m/ia64.h | 2 | ||||
| -rw-r--r-- | src/search.c | 21 | ||||
| -rw-r--r-- | src/w32fns.c | 12 | ||||
| -rw-r--r-- | src/w32term.c | 12 | ||||
| -rw-r--r-- | src/window.c | 11 | ||||
| -rw-r--r-- | src/xdisp.c | 29 | ||||
| -rw-r--r-- | src/xterm.h | 5 |
12 files changed, 130 insertions, 70 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9fedb52f42c..7b22f043009 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,7 +1,58 @@ | |||
| 1 | 2004-10-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * gtkutil.c (xg_update_scrollbar_pos): Change XClearWindow to | ||
| 4 | gdk_window_clear and move gdk_window_process_all_updates after | ||
| 5 | clear so events are sent to the X server in correct order. | ||
| 6 | |||
| 7 | 2004-10-18 Kenichi Handa <handa@m17n.org> | ||
| 8 | |||
| 9 | * fontset.c (fs_load_font): Use fast_string_match_ignore_case for | ||
| 10 | comparing font names. | ||
| 11 | (fs_query_fontset): Use fast_string_match for comparing fontset | ||
| 12 | names. | ||
| 13 | (list_fontsets): Likewise. | ||
| 14 | |||
| 15 | * search.c (fast_string_match_ignore_case): New function. | ||
| 16 | |||
| 17 | * lisp.h (fast_string_match_ignore_case): Extern it. | ||
| 18 | |||
| 19 | 2004-10-17 Kim F. Storm <storm@cua.dk> | ||
| 20 | |||
| 21 | * xdisp.c (overlay_arrow_at_row): Return overlay string rather | ||
| 22 | than bitmap if there is not left fringe. | ||
| 23 | (get_overlay_arrow_glyph_row): Also used on windows system. | ||
| 24 | (display_line): Display overlay string if no left fringe. | ||
| 25 | |||
| 26 | 2004-10-16 Jason Rumney <jasonr@gnu.org> | ||
| 27 | |||
| 28 | * w32fns.c (w32_font_match): Encode font name being matched. | ||
| 29 | |||
| 30 | 2004-10-16 Richard M. Stallman <rms@gnu.org> | ||
| 31 | |||
| 32 | * window.c (Fspecial_display_p): Doc fix. | ||
| 33 | |||
| 34 | 2004-10-15 Stefan <monnier@iro.umontreal.ca> | ||
| 35 | |||
| 36 | * doc.c (Fsubstitute_command_keys): Fix remap-handling. | ||
| 37 | Don't ignore menus, because where-is-internal already does it for us. | ||
| 38 | |||
| 39 | 2004-10-15 Kim F. Storm <storm@cua.dk> | ||
| 40 | |||
| 41 | * xdisp.c (redisplay_window): Only update fringes and vertical | ||
| 42 | border on window frames. | ||
| 43 | |||
| 44 | 2004-10-14 Andreas Schwab <schwab@suse.de> | ||
| 45 | |||
| 46 | * m/ia64.h (DATA_SEG_BITS): Don't define. | ||
| 47 | |||
| 1 | 2004-10-14 Kim F. Storm <storm@cua.dk> | 48 | 2004-10-14 Kim F. Storm <storm@cua.dk> |
| 2 | 49 | ||
| 3 | * xterm.h: Include Xutil.h after keysym.h to work around bug | 50 | * xterm.h: Include Xutil.h after keysym.h to work around bug |
| 4 | (incorrectly recognising AltGr key) in some X versions. | 51 | in some X versions. |
| 52 | |||
| 53 | 2004-10-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 54 | |||
| 55 | * fns.c (map_char_table): Add missing gcpros. | ||
| 5 | 56 | ||
| 6 | 2004-10-13 Stefan Monnier <monnier@iro.umontreal.ca> | 57 | 2004-10-13 Stefan Monnier <monnier@iro.umontreal.ca> |
| 7 | 58 | ||
| @@ -774,28 +774,18 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int | |||
| 774 | 774 | ||
| 775 | /* Save STRP in IDX. */ | 775 | /* Save STRP in IDX. */ |
| 776 | idx = strp - SDATA (string); | 776 | idx = strp - SDATA (string); |
| 777 | tem = Fintern (make_string (start, length_byte), Qnil); | 777 | name = Fintern (make_string (start, length_byte), Qnil); |
| 778 | 778 | ||
| 779 | /* Ignore remappings unless there are no ordinary bindings. */ | 779 | /* Ignore remappings unless there are no ordinary bindings. */ |
| 780 | tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qt); | 780 | tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qt); |
| 781 | if (NILP (tem)) | 781 | if (NILP (tem)) |
| 782 | tem = Fwhere_is_internal (tem, keymap, Qt, Qnil, Qnil); | 782 | tem = Fwhere_is_internal (name, keymap, Qt, Qnil, Qnil); |
| 783 | 783 | ||
| 784 | /* Note the Fwhere_is_internal can GC, so we have to take | 784 | /* Note the Fwhere_is_internal can GC, so we have to take |
| 785 | relocation of string contents into account. */ | 785 | relocation of string contents into account. */ |
| 786 | strp = SDATA (string) + idx; | 786 | strp = SDATA (string) + idx; |
| 787 | start = SDATA (string) + start_idx; | 787 | start = SDATA (string) + start_idx; |
| 788 | 788 | ||
| 789 | /* Disregard menu bar bindings; it is positively annoying to | ||
| 790 | mention them when there's no menu bar, and it isn't terribly | ||
| 791 | useful even when there is a menu bar. */ | ||
| 792 | if (!NILP (tem)) | ||
| 793 | { | ||
| 794 | firstkey = Faref (tem, make_number (0)); | ||
| 795 | if (EQ (firstkey, Qmenu_bar)) | ||
| 796 | tem = Qnil; | ||
| 797 | } | ||
| 798 | |||
| 799 | if (NILP (tem)) /* but not on any keys */ | 789 | if (NILP (tem)) /* but not on any keys */ |
| 800 | { | 790 | { |
| 801 | int offset = bufp - buf; | 791 | int offset = bufp - buf; |
diff --git a/src/fontset.c b/src/fontset.c index e99cc0ff6a3..7fbaee3c216 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -655,7 +655,7 @@ fs_load_font (f, c, fontname, id, face) | |||
| 655 | struct face *face; | 655 | struct face *face; |
| 656 | { | 656 | { |
| 657 | Lisp_Object fontset; | 657 | Lisp_Object fontset; |
| 658 | Lisp_Object list, elt; | 658 | Lisp_Object list, elt, fullname; |
| 659 | int size = 0; | 659 | int size = 0; |
| 660 | struct font_info *fontp; | 660 | struct font_info *fontp; |
| 661 | int charset = CHAR_CHARSET (c); | 661 | int charset = CHAR_CHARSET (c); |
| @@ -701,10 +701,11 @@ fs_load_font (f, c, fontname, id, face) | |||
| 701 | font_info structure that are not set by (*load_font_func). */ | 701 | font_info structure that are not set by (*load_font_func). */ |
| 702 | fontp->charset = charset; | 702 | fontp->charset = charset; |
| 703 | 703 | ||
| 704 | fullname = build_string (fontp->full_name); | ||
| 704 | fontp->vertical_centering | 705 | fontp->vertical_centering |
| 705 | = (STRINGP (Vvertical_centering_font_regexp) | 706 | = (STRINGP (Vvertical_centering_font_regexp) |
| 706 | && (fast_c_string_match_ignore_case | 707 | && (fast_string_match_ignore_case |
| 707 | (Vvertical_centering_font_regexp, fontp->full_name) >= 0)); | 708 | (Vvertical_centering_font_regexp, fullname) >= 0)); |
| 708 | 709 | ||
| 709 | if (fontp->encoding[1] != FONT_ENCODING_NOT_DECIDED) | 710 | if (fontp->encoding[1] != FONT_ENCODING_NOT_DECIDED) |
| 710 | { | 711 | { |
| @@ -721,7 +722,6 @@ fs_load_font (f, c, fontname, id, face) | |||
| 721 | /* The font itself doesn't have information about encoding. */ | 722 | /* The font itself doesn't have information about encoding. */ |
| 722 | int i; | 723 | int i; |
| 723 | 724 | ||
| 724 | fontname = fontp->full_name; | ||
| 725 | /* By default, encoding of ASCII chars is 0 (i.e. 0x00..0x7F), | 725 | /* By default, encoding of ASCII chars is 0 (i.e. 0x00..0x7F), |
| 726 | others is 1 (i.e. 0x80..0xFF). */ | 726 | others is 1 (i.e. 0x80..0xFF). */ |
| 727 | fontp->encoding[0] = 0; | 727 | fontp->encoding[0] = 0; |
| @@ -733,8 +733,7 @@ fs_load_font (f, c, fontname, id, face) | |||
| 733 | elt = XCAR (list); | 733 | elt = XCAR (list); |
| 734 | if (CONSP (elt) | 734 | if (CONSP (elt) |
| 735 | && STRINGP (XCAR (elt)) && CONSP (XCDR (elt)) | 735 | && STRINGP (XCAR (elt)) && CONSP (XCDR (elt)) |
| 736 | && (fast_c_string_match_ignore_case (XCAR (elt), fontname) | 736 | && (fast_string_match_ignore_case (XCAR (elt), fullname) >= 0)) |
| 737 | >= 0)) | ||
| 738 | { | 737 | { |
| 739 | Lisp_Object tmp; | 738 | Lisp_Object tmp; |
| 740 | 739 | ||
| @@ -848,18 +847,17 @@ fs_query_fontset (name, regexpp) | |||
| 848 | 847 | ||
| 849 | for (i = 0; i < ASIZE (Vfontset_table); i++) | 848 | for (i = 0; i < ASIZE (Vfontset_table); i++) |
| 850 | { | 849 | { |
| 851 | Lisp_Object fontset; | 850 | Lisp_Object fontset, this_name; |
| 852 | const unsigned char *this_name; | ||
| 853 | 851 | ||
| 854 | fontset = FONTSET_FROM_ID (i); | 852 | fontset = FONTSET_FROM_ID (i); |
| 855 | if (NILP (fontset) | 853 | if (NILP (fontset) |
| 856 | || !BASE_FONTSET_P (fontset)) | 854 | || !BASE_FONTSET_P (fontset)) |
| 857 | continue; | 855 | continue; |
| 858 | 856 | ||
| 859 | this_name = SDATA (FONTSET_NAME (fontset)); | 857 | this_name = FONTSET_NAME (fontset); |
| 860 | if (regexpp | 858 | if (regexpp |
| 861 | ? fast_c_string_match_ignore_case (name, this_name) >= 0 | 859 | ? fast_string_match (name, this_name) >= 0 |
| 862 | : !strcmp (SDATA (name), this_name)) | 860 | : !strcmp (SDATA (name), SDATA (this_name))) |
| 863 | return i; | 861 | return i; |
| 864 | } | 862 | } |
| 865 | return -1; | 863 | return -1; |
| @@ -913,19 +911,18 @@ list_fontsets (f, pattern, size) | |||
| 913 | 911 | ||
| 914 | for (id = 0; id < ASIZE (Vfontset_table); id++) | 912 | for (id = 0; id < ASIZE (Vfontset_table); id++) |
| 915 | { | 913 | { |
| 916 | Lisp_Object fontset; | 914 | Lisp_Object fontset, name; |
| 917 | const unsigned char *name; | ||
| 918 | 915 | ||
| 919 | fontset = FONTSET_FROM_ID (id); | 916 | fontset = FONTSET_FROM_ID (id); |
| 920 | if (NILP (fontset) | 917 | if (NILP (fontset) |
| 921 | || !BASE_FONTSET_P (fontset) | 918 | || !BASE_FONTSET_P (fontset) |
| 922 | || !EQ (frame, FONTSET_FRAME (fontset))) | 919 | || !EQ (frame, FONTSET_FRAME (fontset))) |
| 923 | continue; | 920 | continue; |
| 924 | name = SDATA (FONTSET_NAME (fontset)); | 921 | name = FONTSET_NAME (fontset); |
| 925 | 922 | ||
| 926 | if (!NILP (regexp) | 923 | if (!NILP (regexp) |
| 927 | ? (fast_c_string_match_ignore_case (regexp, name) < 0) | 924 | ? (fast_string_match (regexp, name) < 0) |
| 928 | : strcmp (SDATA (pattern), name)) | 925 | : strcmp (SDATA (pattern), SDATA (name))) |
| 929 | continue; | 926 | continue; |
| 930 | 927 | ||
| 931 | if (size) | 928 | if (size) |
diff --git a/src/gtkutil.c b/src/gtkutil.c index fabdae74dc6..4d166a4d01e 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -2888,9 +2888,6 @@ xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height, | |||
| 2888 | gtk_fixed_move (GTK_FIXED (wfixed), wscroll, left, top); | 2888 | gtk_fixed_move (GTK_FIXED (wfixed), wscroll, left, top); |
| 2889 | gtk_widget_set_size_request (wscroll, width, height); | 2889 | gtk_widget_set_size_request (wscroll, width, height); |
| 2890 | 2890 | ||
| 2891 | /* Must force out update so changed scroll bars gets redrawn. */ | ||
| 2892 | gdk_window_process_all_updates (); | ||
| 2893 | |||
| 2894 | /* Scroll bars in GTK has a fixed width, so if we say width 16, it | 2891 | /* Scroll bars in GTK has a fixed width, so if we say width 16, it |
| 2895 | will only be its fixed width (14 is default) anyway, the rest is | 2892 | will only be its fixed width (14 is default) anyway, the rest is |
| 2896 | blank. We are drawing the mode line across scroll bars when | 2893 | blank. We are drawing the mode line across scroll bars when |
| @@ -2917,9 +2914,11 @@ xg_update_scrollbar_pos (f, scrollbar_id, top, left, width, height, | |||
| 2917 | scroll bar so that there is some space (typically 1 pixel) between | 2914 | scroll bar so that there is some space (typically 1 pixel) between |
| 2918 | the scroll bar and the edge of the window and between the scroll | 2915 | the scroll bar and the edge of the window and between the scroll |
| 2919 | bar and the fringe. */ | 2916 | bar and the fringe. */ |
| 2917 | gdk_window_clear (wscroll->window); | ||
| 2920 | 2918 | ||
| 2921 | XClearWindow (FRAME_X_DISPLAY (f), GTK_WIDGET_TO_X_WIN (wscroll)); | 2919 | /* Must force out update so changed scroll bars gets redrawn. */ |
| 2922 | 2920 | gdk_window_process_all_updates (); | |
| 2921 | |||
| 2923 | SET_FRAME_GARBAGED (f); | 2922 | SET_FRAME_GARBAGED (f); |
| 2924 | cancel_mouse_face (f); | 2923 | cancel_mouse_face (f); |
| 2925 | } | 2924 | } |
diff --git a/src/lisp.h b/src/lisp.h index 133c5c07c56..ce0fdf96e43 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -2792,6 +2792,7 @@ EXFUN (Fmatch_end, 1); | |||
| 2792 | EXFUN (Flooking_at, 1); | 2792 | EXFUN (Flooking_at, 1); |
| 2793 | extern int fast_string_match P_ ((Lisp_Object, Lisp_Object)); | 2793 | extern int fast_string_match P_ ((Lisp_Object, Lisp_Object)); |
| 2794 | extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *)); | 2794 | extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *)); |
| 2795 | extern int fast_string_match_ignore_case P_ ((Lisp_Object, Lisp_Object)); | ||
| 2795 | extern int scan_buffer P_ ((int, int, int, int, int *, int)); | 2796 | extern int scan_buffer P_ ((int, int, int, int, int *, int)); |
| 2796 | extern int scan_newline P_ ((int, int, int, int, int, int)); | 2797 | extern int scan_newline P_ ((int, int, int, int, int, int)); |
| 2797 | extern int find_next_newline P_ ((int, int)); | 2798 | extern int find_next_newline P_ ((int, int)); |
diff --git a/src/m/ia64.h b/src/m/ia64.h index 7114382d513..947bb9d4562 100644 --- a/src/m/ia64.h +++ b/src/m/ia64.h | |||
| @@ -133,8 +133,6 @@ extern void r_alloc_free (); | |||
| 133 | 133 | ||
| 134 | #endif /* not NOT_C_CODE */ | 134 | #endif /* not NOT_C_CODE */ |
| 135 | 135 | ||
| 136 | #define DATA_SEG_BITS 0x6000000000000000 | ||
| 137 | |||
| 138 | #define HAVE_TEXT_START | 136 | #define HAVE_TEXT_START |
| 139 | 137 | ||
| 140 | /* arch-tag: 9b8e9fb2-2e49-4c22-b68f-11a488e77c66 | 138 | /* arch-tag: 9b8e9fb2-2e49-4c22-b68f-11a488e77c66 |
diff --git a/src/search.c b/src/search.c index 0375f353dd2..f7bee1b8683 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -493,6 +493,27 @@ fast_c_string_match_ignore_case (regexp, string) | |||
| 493 | immediate_quit = 0; | 493 | immediate_quit = 0; |
| 494 | return val; | 494 | return val; |
| 495 | } | 495 | } |
| 496 | |||
| 497 | /* Like fast_string_match but ignore case. */ | ||
| 498 | |||
| 499 | int | ||
| 500 | fast_string_match_ignore_case (regexp, string) | ||
| 501 | Lisp_Object regexp, string; | ||
| 502 | { | ||
| 503 | int val; | ||
| 504 | struct re_pattern_buffer *bufp; | ||
| 505 | |||
| 506 | bufp = compile_pattern (regexp, 0, Vascii_downcase_table, | ||
| 507 | 0, STRING_MULTIBYTE (string)); | ||
| 508 | immediate_quit = 1; | ||
| 509 | re_match_object = string; | ||
| 510 | |||
| 511 | val = re_search (bufp, (char *) SDATA (string), | ||
| 512 | SBYTES (string), 0, | ||
| 513 | SBYTES (string), 0); | ||
| 514 | immediate_quit = 0; | ||
| 515 | return val; | ||
| 516 | } | ||
| 496 | 517 | ||
| 497 | /* The newline cache: remembering which sections of text have no newlines. */ | 518 | /* The newline cache: remembering which sections of text have no newlines. */ |
| 498 | 519 | ||
diff --git a/src/w32fns.c b/src/w32fns.c index 5cfc4adb0af..1e52155ab3b 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -5370,7 +5370,7 @@ x_to_w32_font (lpxstr, lplogfont) | |||
| 5370 | setup_coding_system | 5370 | setup_coding_system |
| 5371 | (Fcheck_coding_system (Vlocale_coding_system), &coding); | 5371 | (Fcheck_coding_system (Vlocale_coding_system), &coding); |
| 5372 | coding.src_multibyte = 1; | 5372 | coding.src_multibyte = 1; |
| 5373 | coding.dst_multibyte = 1; | 5373 | coding.dst_multibyte = 0; |
| 5374 | /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in | 5374 | /* Need to set COMPOSITION_DISABLED, otherwise Emacs crashes in |
| 5375 | encode_coding_iso2022 trying to dereference a null pointer. */ | 5375 | encode_coding_iso2022 trying to dereference a null pointer. */ |
| 5376 | coding.composing = COMPOSITION_DISABLED; | 5376 | coding.composing = COMPOSITION_DISABLED; |
| @@ -5607,12 +5607,14 @@ w32_font_match (fontname, pattern) | |||
| 5607 | char * fontname; | 5607 | char * fontname; |
| 5608 | char * pattern; | 5608 | char * pattern; |
| 5609 | { | 5609 | { |
| 5610 | char *regex = alloca (strlen (pattern) * 2 + 3); | 5610 | char *font_name_copy; |
| 5611 | char *font_name_copy = alloca (strlen (fontname) + 1); | ||
| 5612 | char *ptr; | 5611 | char *ptr; |
| 5612 | Lisp_Object encoded_font_name; | ||
| 5613 | char *regex = alloca (strlen (pattern) * 2 + 3); | ||
| 5613 | 5614 | ||
| 5614 | /* Copy fontname so we can modify it during comparison. */ | 5615 | /* Convert fontname to unibyte for match. */ |
| 5615 | strcpy (font_name_copy, fontname); | 5616 | encoded_font_name = string_make_unibyte (build_string (fontname)); |
| 5617 | font_name_copy = SDATA (encoded_font_name); | ||
| 5616 | 5618 | ||
| 5617 | ptr = regex; | 5619 | ptr = regex; |
| 5618 | *ptr++ = '^'; | 5620 | *ptr++ = '^'; |
diff --git a/src/w32term.c b/src/w32term.c index 3d50e93b761..9238b7959d5 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -1209,7 +1209,6 @@ w32_text_out (s, x, y,chars,nchars) | |||
| 1209 | } | 1209 | } |
| 1210 | 1210 | ||
| 1211 | 1211 | ||
| 1212 | |||
| 1213 | static void x_set_glyph_string_clipping P_ ((struct glyph_string *)); | 1212 | static void x_set_glyph_string_clipping P_ ((struct glyph_string *)); |
| 1214 | static void x_set_glyph_string_gc P_ ((struct glyph_string *)); | 1213 | static void x_set_glyph_string_gc P_ ((struct glyph_string *)); |
| 1215 | static void x_draw_glyph_string_background P_ ((struct glyph_string *, | 1214 | static void x_draw_glyph_string_background P_ ((struct glyph_string *, |
| @@ -2061,7 +2060,6 @@ x_draw_image_foreground (s) | |||
| 2061 | } | 2060 | } |
| 2062 | 2061 | ||
| 2063 | 2062 | ||
| 2064 | |||
| 2065 | /* Draw a relief around the image glyph string S. */ | 2063 | /* Draw a relief around the image glyph string S. */ |
| 2066 | 2064 | ||
| 2067 | static void | 2065 | static void |
| @@ -2812,14 +2810,6 @@ x_new_focus_frame (dpyinfo, frame) | |||
| 2812 | if (old_focus && old_focus->auto_lower) | 2810 | if (old_focus && old_focus->auto_lower) |
| 2813 | x_lower_frame (old_focus); | 2811 | x_lower_frame (old_focus); |
| 2814 | 2812 | ||
| 2815 | |||
| 2816 | |||
| 2817 | |||
| 2818 | |||
| 2819 | |||
| 2820 | |||
| 2821 | |||
| 2822 | |||
| 2823 | if (dpyinfo->w32_focus_frame && dpyinfo->w32_focus_frame->auto_raise) | 2813 | if (dpyinfo->w32_focus_frame && dpyinfo->w32_focus_frame->auto_raise) |
| 2824 | pending_autoraise_frame = dpyinfo->w32_focus_frame; | 2814 | pending_autoraise_frame = dpyinfo->w32_focus_frame; |
| 2825 | else | 2815 | else |
| @@ -4688,7 +4678,6 @@ w32_read_socket (sd, expected, hold_quit) | |||
| 4688 | if (f) | 4678 | if (f) |
| 4689 | x_new_focus_frame (dpyinfo, f); | 4679 | x_new_focus_frame (dpyinfo, f); |
| 4690 | 4680 | ||
| 4691 | |||
| 4692 | dpyinfo->grabbed = 0; | 4681 | dpyinfo->grabbed = 0; |
| 4693 | check_visibility = 1; | 4682 | check_visibility = 1; |
| 4694 | break; | 4683 | break; |
| @@ -4906,7 +4895,6 @@ w32_read_socket (sd, expected, hold_quit) | |||
| 4906 | } | 4895 | } |
| 4907 | 4896 | ||
| 4908 | 4897 | ||
| 4909 | |||
| 4910 | 4898 | ||
| 4911 | /*********************************************************************** | 4899 | /*********************************************************************** |
| 4912 | Text Cursor | 4900 | Text Cursor |
diff --git a/src/window.c b/src/window.c index 22ca145b206..6b244ca5353 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -3216,10 +3216,13 @@ display_buffer_1 (window) | |||
| 3216 | } | 3216 | } |
| 3217 | 3217 | ||
| 3218 | DEFUN ("special-display-p", Fspecial_display_p, Sspecial_display_p, 1, 1, 0, | 3218 | DEFUN ("special-display-p", Fspecial_display_p, Sspecial_display_p, 1, 1, 0, |
| 3219 | doc: /* Returns non-nil if a buffer named BUFFER-NAME would be created specially. | 3219 | doc: /* Returns non-nil if a buffer named BUFFER-NAME gets a special frame. |
| 3220 | The value is actually t if the frame should be called with default frame | 3220 | If the value is t, a frame would be created for that buffer |
| 3221 | parameters, and a list of frame parameters if they were specified. | 3221 | using the default frame parameters. If the value is a list, |
| 3222 | See `special-display-buffer-names', and `special-display-regexps'. */) | 3222 | it is a list of frame parameters that would be used |
| 3223 | to make a frame for that buffer. | ||
| 3224 | The variables `special-display-buffer-names' | ||
| 3225 | and `special-display-regexps' control this. */) | ||
| 3223 | (buffer_name) | 3226 | (buffer_name) |
| 3224 | Lisp_Object buffer_name; | 3227 | Lisp_Object buffer_name; |
| 3225 | { | 3228 | { |
diff --git a/src/xdisp.c b/src/xdisp.c index 434128ea487..81a535f6b0e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -9521,11 +9521,13 @@ update_overlay_arrows (up_to_date) | |||
| 9521 | } | 9521 | } |
| 9522 | 9522 | ||
| 9523 | 9523 | ||
| 9524 | /* Return overlay arrow string at row, or nil. */ | 9524 | /* Return overlay arrow string to display at row. |
| 9525 | Return t if display as bitmap in left fringe. | ||
| 9526 | Return nil if no overlay arrow. */ | ||
| 9525 | 9527 | ||
| 9526 | static Lisp_Object | 9528 | static Lisp_Object |
| 9527 | overlay_arrow_at_row (f, row, pbitmap) | 9529 | overlay_arrow_at_row (it, row, pbitmap) |
| 9528 | struct frame *f; | 9530 | struct it *it; |
| 9529 | struct glyph_row *row; | 9531 | struct glyph_row *row; |
| 9530 | int *pbitmap; | 9532 | int *pbitmap; |
| 9531 | { | 9533 | { |
| @@ -9548,9 +9550,10 @@ overlay_arrow_at_row (f, row, pbitmap) | |||
| 9548 | && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) | 9550 | && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val))) |
| 9549 | { | 9551 | { |
| 9550 | val = overlay_arrow_string_or_property (var, pbitmap); | 9552 | val = overlay_arrow_string_or_property (var, pbitmap); |
| 9551 | if (FRAME_WINDOW_P (f)) | 9553 | if (FRAME_WINDOW_P (it->f) |
| 9554 | && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0) | ||
| 9552 | return Qt; | 9555 | return Qt; |
| 9553 | else if (STRINGP (val)) | 9556 | if (STRINGP (val)) |
| 9554 | return val; | 9557 | return val; |
| 9555 | break; | 9558 | break; |
| 9556 | } | 9559 | } |
| @@ -14077,8 +14080,8 @@ usage: (trace-to-stderr STRING &rest OBJECTS) */) | |||
| 14077 | Building Desired Matrix Rows | 14080 | Building Desired Matrix Rows |
| 14078 | ***********************************************************************/ | 14081 | ***********************************************************************/ |
| 14079 | 14082 | ||
| 14080 | /* Return a temporary glyph row holding the glyphs of an overlay | 14083 | /* Return a temporary glyph row holding the glyphs of an overlay arrow. |
| 14081 | arrow. Only used for non-window-redisplay windows. */ | 14084 | Used for non-window-redisplay windows, and for windows w/o left fringe. */ |
| 14082 | 14085 | ||
| 14083 | static struct glyph_row * | 14086 | static struct glyph_row * |
| 14084 | get_overlay_arrow_glyph_row (w, overlay_arrow_string) | 14087 | get_overlay_arrow_glyph_row (w, overlay_arrow_string) |
| @@ -14957,11 +14960,11 @@ display_line (it) | |||
| 14957 | better to let it be displayed like cursors under X. */ | 14960 | better to let it be displayed like cursors under X. */ |
| 14958 | if (! overlay_arrow_seen | 14961 | if (! overlay_arrow_seen |
| 14959 | && (overlay_arrow_string | 14962 | && (overlay_arrow_string |
| 14960 | = overlay_arrow_at_row (it->f, row, &overlay_arrow_bitmap), | 14963 | = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap), |
| 14961 | !NILP (overlay_arrow_string))) | 14964 | !NILP (overlay_arrow_string))) |
| 14962 | { | 14965 | { |
| 14963 | /* Overlay arrow in window redisplay is a fringe bitmap. */ | 14966 | /* Overlay arrow in window redisplay is a fringe bitmap. */ |
| 14964 | if (!FRAME_WINDOW_P (it->f)) | 14967 | if (STRINGP (overlay_arrow_string)) |
| 14965 | { | 14968 | { |
| 14966 | struct glyph_row *arrow_row | 14969 | struct glyph_row *arrow_row |
| 14967 | = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string); | 14970 | = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string); |
| @@ -14986,10 +14989,12 @@ display_line (it) | |||
| 14986 | row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA]; | 14989 | row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA]; |
| 14987 | } | 14990 | } |
| 14988 | } | 14991 | } |
| 14989 | 14992 | else | |
| 14993 | { | ||
| 14994 | it->w->overlay_arrow_bitmap = overlay_arrow_bitmap; | ||
| 14995 | row->overlay_arrow_p = 1; | ||
| 14996 | } | ||
| 14990 | overlay_arrow_seen = 1; | 14997 | overlay_arrow_seen = 1; |
| 14991 | it->w->overlay_arrow_bitmap = overlay_arrow_bitmap; | ||
| 14992 | row->overlay_arrow_p = 1; | ||
| 14993 | } | 14998 | } |
| 14994 | 14999 | ||
| 14995 | /* Compute pixel dimensions of this line. */ | 15000 | /* Compute pixel dimensions of this line. */ |
diff --git a/src/xterm.h b/src/xterm.h index 53f0081b215..bb1fe9ddc4c 100644 --- a/src/xterm.h +++ b/src/xterm.h | |||
| @@ -21,8 +21,13 @@ Boston, MA 02111-1307, USA. */ | |||
| 21 | 21 | ||
| 22 | #include <X11/Xlib.h> | 22 | #include <X11/Xlib.h> |
| 23 | #include <X11/cursorfont.h> | 23 | #include <X11/cursorfont.h> |
| 24 | |||
| 25 | /* Include Xutil.h after keysym.h to work around a bug that prevents | ||
| 26 | correct recognition of AltGr key in some X versions. */ | ||
| 27 | |||
| 24 | #include <X11/keysym.h> | 28 | #include <X11/keysym.h> |
| 25 | #include <X11/Xutil.h> | 29 | #include <X11/Xutil.h> |
| 30 | |||
| 26 | #include <X11/Xatom.h> | 31 | #include <X11/Xatom.h> |
| 27 | #include <X11/Xresource.h> | 32 | #include <X11/Xresource.h> |
| 28 | 33 | ||