diff options
| author | Karoly Lorentey | 2005-12-10 21:18:28 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2005-12-10 21:18:28 +0000 |
| commit | 16986fcfcca94e88e620c38775e15f758aa44935 (patch) | |
| tree | 1006528b714927481dc4ef9e649efa10eee17433 /src | |
| parent | 9ef706664e98e37e9633712126bae99869904677 (diff) | |
| parent | e67f8828f5f9c4ba3697e048c6386c5e9c0c801e (diff) | |
| download | emacs-16986fcfcca94e88e620c38775e15f758aa44935.tar.gz emacs-16986fcfcca94e88e620c38775e15f758aa44935.zip | |
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-664
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-665
Update from CVS
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-666
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-447
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 67 | ||||
| -rw-r--r-- | src/buffer.c | 3 | ||||
| -rw-r--r-- | src/bytecode.c | 84 | ||||
| -rw-r--r-- | src/commands.h | 7 | ||||
| -rw-r--r-- | src/fileio.c | 14 | ||||
| -rw-r--r-- | src/keymap.c | 22 | ||||
| -rw-r--r-- | src/minibuf.c | 23 | ||||
| -rw-r--r-- | src/undo.c | 6 | ||||
| -rw-r--r-- | src/w32fns.c | 3 | ||||
| -rw-r--r-- | src/window.c | 118 | ||||
| -rw-r--r-- | src/xfns.c | 31 | ||||
| -rw-r--r-- | src/xterm.h | 1 |
12 files changed, 251 insertions, 128 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 256172630ef..4fa4093631f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,66 @@ | |||
| 1 | 2005-12-07 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> | ||
| 2 | |||
| 3 | * xfns.c (Fx_create_frame): Initialize Vdefault_minibuffer_frame, | ||
| 4 | when needed. | ||
| 5 | |||
| 6 | 2005-12-06 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * minibuf.c (keys_of_minibuf): Just unbind SPC in | ||
| 9 | Vminibuffer_local_filename_completion_map rather than forcing it | ||
| 10 | explicitly to the same binding as the global map. | ||
| 11 | |||
| 12 | 2005-12-06 Ken Raeburn <raeburn@gnu.org> | ||
| 13 | |||
| 14 | * buffer.c (Fkill_buffer): Avoid dangerous side effects in NILP | ||
| 15 | argument. | ||
| 16 | * bytecode.c (Fbyte_code): Likewise. | ||
| 17 | * fileio.c (internal_delete_file, Fread_file_name_internal): | ||
| 18 | Likewise. | ||
| 19 | * minibuf.c (Fminibuffer_complete_and_exit): Likewise. | ||
| 20 | * undo.c (truncate_undo_list): Likewise. | ||
| 21 | |||
| 22 | 2005-12-05 Richard M. Stallman <rms@gnu.org> | ||
| 23 | |||
| 24 | * window.c (enlarge_window): Eliminate arg preserve_before. | ||
| 25 | Assume it is 0. All callers changed. | ||
| 26 | (Fenlarge_window, Fshrink_window): Likewise. | ||
| 27 | |||
| 28 | 2005-12-02 Eli Zaretskii <eliz@gnu.org> | ||
| 29 | |||
| 30 | * w32fns.c (compute_tip_xy): Put tip above pointer if it doesn't | ||
| 31 | fit below. | ||
| 32 | |||
| 33 | 2005-12-02 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 34 | |||
| 35 | * xterm.h: Add prototype for xg_set_icon_from_xpm_data. | ||
| 36 | |||
| 37 | * xfns.c (x_real_positions): int ign => unsigned int. | ||
| 38 | (xg_set_icon_from_xpm_data): Remove unused variable err. | ||
| 39 | (x_set_name_internal, Fx_create_frame, xg_set_icon): Add cast | ||
| 40 | to remove compiler warning. | ||
| 41 | (compute_tip_xy): Put tip above pointer if it doesn't fit below. | ||
| 42 | |||
| 43 | 2005-12-02 David Reitter <david.reitter@gmail.com> | ||
| 44 | |||
| 45 | * minibuf.c (Fcompleting_read): If Vminibuffer_completing_file_name is | ||
| 46 | non-nil, use the new keymaps Vminibuffer_local_filename_completion_map | ||
| 47 | and Vminibuffer_local_must_match_filename_map keymaps. | ||
| 48 | (keys_of_minibuf): Bind SPC in the new file-name completion keymaps. | ||
| 49 | |||
| 50 | * keymap.c (Vminibuffer_local_filename_completion_map) | ||
| 51 | (Vminibuffer_local_must_match_filename_map): New variables. | ||
| 52 | (syms_of_keymap): DEFVAR_LISP them, initialize them, and set their | ||
| 53 | parent to be Vminibuffer_local_completion_map and | ||
| 54 | Vminibuffer_local_must_match_map, respectively. | ||
| 55 | |||
| 56 | * commands.h (Vminibuffer_local_filename_completion_map) | ||
| 57 | (Vminibuffer_local_must_match_filename_map): Declare the new keymaps. | ||
| 58 | |||
| 59 | 2005-12-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 60 | |||
| 61 | * window.c (Fset_window_configuration): Don't accidentally copy the | ||
| 62 | window-point of one window to another. | ||
| 63 | |||
| 1 | 2005-11-30 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> | 64 | 2005-11-30 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> |
| 2 | 65 | ||
| 3 | * buffer.c (Fpop_to_buffer): Remove superfluous call to record_buffer. | 66 | * buffer.c (Fpop_to_buffer): Remove superfluous call to record_buffer. |
| @@ -55,7 +118,7 @@ | |||
| 55 | * macterm.h (cfstring_to_lisp_nodecode) [TARGET_API_MAC_CARBON]: | 118 | * macterm.h (cfstring_to_lisp_nodecode) [TARGET_API_MAC_CARBON]: |
| 56 | Add prototype. | 119 | Add prototype. |
| 57 | 120 | ||
| 58 | 2005-11-21 Ken Raeburn <raeburn@mit.edu> | 121 | 2005-11-21 Ken Raeburn <raeburn@gnu.org> |
| 59 | 122 | ||
| 60 | * keymap.c (shadow_lookup): Use make_number to pass a number to | 123 | * keymap.c (shadow_lookup): Use make_number to pass a number to |
| 61 | Fsubstring. | 124 | Fsubstring. |
| @@ -16289,7 +16352,7 @@ | |||
| 16289 | * xdisp.c (forward_to_next_line_start): Return 0 when reaching the | 16352 | * xdisp.c (forward_to_next_line_start): Return 0 when reaching the |
| 16290 | end of the buffer. | 16353 | end of the buffer. |
| 16291 | 16354 | ||
| 16292 | 2002-08-08 Ken Raeburn <raeburn@mit.edu> | 16355 | 2002-08-08 Ken Raeburn <raeburn@gnu.org> |
| 16293 | 16356 | ||
| 16294 | * coding.c (Ffind_operation_coding_system): Fix Lisp_Object/int mixup. | 16357 | * coding.c (Ffind_operation_coding_system): Fix Lisp_Object/int mixup. |
| 16295 | 16358 | ||
diff --git a/src/buffer.c b/src/buffer.c index a20f6a2d683..d52a710573e 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1359,7 +1359,8 @@ with SIGHUP. */) | |||
| 1359 | /* First run the query functions; if any query is answered no, | 1359 | /* First run the query functions; if any query is answered no, |
| 1360 | don't kill the buffer. */ | 1360 | don't kill the buffer. */ |
| 1361 | arglist[0] = Qkill_buffer_query_functions; | 1361 | arglist[0] = Qkill_buffer_query_functions; |
| 1362 | if (NILP (Frun_hook_with_args_until_failure (1, arglist))) | 1362 | tem = Frun_hook_with_args_until_failure (1, arglist); |
| 1363 | if (NILP (tem)) | ||
| 1363 | return unbind_to (count, Qnil); | 1364 | return unbind_to (count, Qnil); |
| 1364 | 1365 | ||
| 1365 | /* Then run the hooks. */ | 1366 | /* Then run the hooks. */ |
diff --git a/src/bytecode.c b/src/bytecode.c index e23d835cf10..af09061dbc3 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -524,15 +524,19 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 524 | } | 524 | } |
| 525 | 525 | ||
| 526 | case Bgotoifnil: | 526 | case Bgotoifnil: |
| 527 | MAYBE_GC (); | 527 | { |
| 528 | op = FETCH2; | 528 | Lisp_Object v1; |
| 529 | if (NILP (POP)) | 529 | MAYBE_GC (); |
| 530 | { | 530 | op = FETCH2; |
| 531 | BYTE_CODE_QUIT; | 531 | v1 = POP; |
| 532 | CHECK_RANGE (op); | 532 | if (NILP (v1)) |
| 533 | stack.pc = stack.byte_string_start + op; | 533 | { |
| 534 | } | 534 | BYTE_CODE_QUIT; |
| 535 | break; | 535 | CHECK_RANGE (op); |
| 536 | stack.pc = stack.byte_string_start + op; | ||
| 537 | } | ||
| 538 | break; | ||
| 539 | } | ||
| 536 | 540 | ||
| 537 | case Bcar: | 541 | case Bcar: |
| 538 | { | 542 | { |
| @@ -730,15 +734,19 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 730 | break; | 734 | break; |
| 731 | 735 | ||
| 732 | case Bgotoifnonnil: | 736 | case Bgotoifnonnil: |
| 733 | MAYBE_GC (); | 737 | { |
| 734 | op = FETCH2; | 738 | Lisp_Object v1; |
| 735 | if (!NILP (POP)) | 739 | MAYBE_GC (); |
| 736 | { | 740 | op = FETCH2; |
| 737 | BYTE_CODE_QUIT; | 741 | v1 = POP; |
| 738 | CHECK_RANGE (op); | 742 | if (!NILP (v1)) |
| 739 | stack.pc = stack.byte_string_start + op; | 743 | { |
| 740 | } | 744 | BYTE_CODE_QUIT; |
| 741 | break; | 745 | CHECK_RANGE (op); |
| 746 | stack.pc = stack.byte_string_start + op; | ||
| 747 | } | ||
| 748 | break; | ||
| 749 | } | ||
| 742 | 750 | ||
| 743 | case Bgotoifnilelsepop: | 751 | case Bgotoifnilelsepop: |
| 744 | MAYBE_GC (); | 752 | MAYBE_GC (); |
| @@ -771,24 +779,32 @@ If the third argument is incorrect, Emacs may crash. */) | |||
| 771 | break; | 779 | break; |
| 772 | 780 | ||
| 773 | case BRgotoifnil: | 781 | case BRgotoifnil: |
| 774 | MAYBE_GC (); | 782 | { |
| 775 | if (NILP (POP)) | 783 | Lisp_Object v1; |
| 776 | { | 784 | MAYBE_GC (); |
| 777 | BYTE_CODE_QUIT; | 785 | v1 = POP; |
| 778 | stack.pc += (int) *stack.pc - 128; | 786 | if (NILP (v1)) |
| 779 | } | 787 | { |
| 780 | stack.pc++; | 788 | BYTE_CODE_QUIT; |
| 781 | break; | 789 | stack.pc += (int) *stack.pc - 128; |
| 790 | } | ||
| 791 | stack.pc++; | ||
| 792 | break; | ||
| 793 | } | ||
| 782 | 794 | ||
| 783 | case BRgotoifnonnil: | 795 | case BRgotoifnonnil: |
| 784 | MAYBE_GC (); | 796 | { |
| 785 | if (!NILP (POP)) | 797 | Lisp_Object v1; |
| 786 | { | 798 | MAYBE_GC (); |
| 787 | BYTE_CODE_QUIT; | 799 | v1 = POP; |
| 788 | stack.pc += (int) *stack.pc - 128; | 800 | if (!NILP (v1)) |
| 789 | } | 801 | { |
| 790 | stack.pc++; | 802 | BYTE_CODE_QUIT; |
| 791 | break; | 803 | stack.pc += (int) *stack.pc - 128; |
| 804 | } | ||
| 805 | stack.pc++; | ||
| 806 | break; | ||
| 807 | } | ||
| 792 | 808 | ||
| 793 | case BRgotoifnilelsepop: | 809 | case BRgotoifnilelsepop: |
| 794 | MAYBE_GC (); | 810 | MAYBE_GC (); |
diff --git a/src/commands.h b/src/commands.h index 7ad593577ad..c1330af273e 100644 --- a/src/commands.h +++ b/src/commands.h | |||
| @@ -37,9 +37,16 @@ extern Lisp_Object Vminibuffer_local_ns_map; | |||
| 37 | /* keymap used for minibuffers when doing completion */ | 37 | /* keymap used for minibuffers when doing completion */ |
| 38 | extern Lisp_Object Vminibuffer_local_completion_map; | 38 | extern Lisp_Object Vminibuffer_local_completion_map; |
| 39 | 39 | ||
| 40 | /* keymap used for minibuffers when doing completion in filenames*/ | ||
| 41 | extern Lisp_Object Vminibuffer_local_filename_completion_map; | ||
| 42 | |||
| 40 | /* keymap used for minibuffers when doing completion and require a match */ | 43 | /* keymap used for minibuffers when doing completion and require a match */ |
| 41 | extern Lisp_Object Vminibuffer_local_must_match_map; | 44 | extern Lisp_Object Vminibuffer_local_must_match_map; |
| 42 | 45 | ||
| 46 | /* keymap used for minibuffers when doing completion in filenames | ||
| 47 | and require a match */ | ||
| 48 | extern Lisp_Object Vminibuffer_local_must_match_filename_map; | ||
| 49 | |||
| 43 | /* Last character of last key sequence. */ | 50 | /* Last character of last key sequence. */ |
| 44 | extern Lisp_Object last_command_char; | 51 | extern Lisp_Object last_command_char; |
| 45 | 52 | ||
diff --git a/src/fileio.c b/src/fileio.c index b7262b6c58b..40e3a3c6e6c 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -2732,8 +2732,10 @@ int | |||
| 2732 | internal_delete_file (filename) | 2732 | internal_delete_file (filename) |
| 2733 | Lisp_Object filename; | 2733 | Lisp_Object filename; |
| 2734 | { | 2734 | { |
| 2735 | return NILP (internal_condition_case_1 (Fdelete_file, filename, | 2735 | Lisp_Object tem; |
| 2736 | Qt, internal_delete_file_1)); | 2736 | tem = internal_condition_case_1 (Fdelete_file, filename, |
| 2737 | Qt, internal_delete_file_1); | ||
| 2738 | return NILP (tem); | ||
| 2737 | } | 2739 | } |
| 2738 | 2740 | ||
| 2739 | DEFUN ("rename-file", Frename_file, Srename_file, 2, 3, | 2741 | DEFUN ("rename-file", Frename_file, Srename_file, 2, 3, |
| @@ -6236,13 +6238,17 @@ DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_inte | |||
| 6236 | #endif | 6238 | #endif |
| 6237 | { | 6239 | { |
| 6238 | /* Must do it the hard (and slow) way. */ | 6240 | /* Must do it the hard (and slow) way. */ |
| 6241 | Lisp_Object tem; | ||
| 6239 | GCPRO3 (all, comp, specdir); | 6242 | GCPRO3 (all, comp, specdir); |
| 6240 | count = SPECPDL_INDEX (); | 6243 | count = SPECPDL_INDEX (); |
| 6241 | record_unwind_protect (read_file_name_cleanup, current_buffer->directory); | 6244 | record_unwind_protect (read_file_name_cleanup, current_buffer->directory); |
| 6242 | current_buffer->directory = realdir; | 6245 | current_buffer->directory = realdir; |
| 6243 | for (comp = Qnil; CONSP (all); all = XCDR (all)) | 6246 | for (comp = Qnil; CONSP (all); all = XCDR (all)) |
| 6244 | if (!NILP (call1 (Vread_file_name_predicate, XCAR (all)))) | 6247 | { |
| 6245 | comp = Fcons (XCAR (all), comp); | 6248 | tem = call1 (Vread_file_name_predicate, XCAR (all)); |
| 6249 | if (!NILP (tem)) | ||
| 6250 | comp = Fcons (XCAR (all), comp); | ||
| 6251 | } | ||
| 6246 | unbind_to (count, Qnil); | 6252 | unbind_to (count, Qnil); |
| 6247 | UNGCPRO; | 6253 | UNGCPRO; |
| 6248 | } | 6254 | } |
diff --git a/src/keymap.c b/src/keymap.c index a6d5ccbbc2d..36517cf0794 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -66,6 +66,13 @@ Lisp_Object Vminibuffer_local_ns_map; | |||
| 66 | /* was MinibufLocalCompletionMap */ | 66 | /* was MinibufLocalCompletionMap */ |
| 67 | Lisp_Object Vminibuffer_local_completion_map; | 67 | Lisp_Object Vminibuffer_local_completion_map; |
| 68 | 68 | ||
| 69 | /* keymap used for minibuffers when doing completion in filenames */ | ||
| 70 | Lisp_Object Vminibuffer_local_filename_completion_map; | ||
| 71 | |||
| 72 | /* keymap used for minibuffers when doing completion in filenames | ||
| 73 | with require-match*/ | ||
| 74 | Lisp_Object Vminibuffer_local_must_match_filename_map; | ||
| 75 | |||
| 69 | /* keymap used for minibuffers when doing completion and require a match */ | 76 | /* keymap used for minibuffers when doing completion and require a match */ |
| 70 | /* was MinibufLocalMustMatchMap */ | 77 | /* was MinibufLocalMustMatchMap */ |
| 71 | Lisp_Object Vminibuffer_local_must_match_map; | 78 | Lisp_Object Vminibuffer_local_must_match_map; |
| @@ -3775,12 +3782,27 @@ don't alter it yourself. */); | |||
| 3775 | Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil); | 3782 | Vminibuffer_local_completion_map = Fmake_sparse_keymap (Qnil); |
| 3776 | Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map); | 3783 | Fset_keymap_parent (Vminibuffer_local_completion_map, Vminibuffer_local_map); |
| 3777 | 3784 | ||
| 3785 | DEFVAR_LISP ("minibuffer-local-filename-completion-map", | ||
| 3786 | &Vminibuffer_local_filename_completion_map, | ||
| 3787 | doc: /* Local keymap for minibuffer input with completion for filenames. */); | ||
| 3788 | Vminibuffer_local_filename_completion_map = Fmake_sparse_keymap (Qnil); | ||
| 3789 | Fset_keymap_parent (Vminibuffer_local_filename_completion_map, | ||
| 3790 | Vminibuffer_local_completion_map); | ||
| 3791 | |||
| 3792 | |||
| 3778 | DEFVAR_LISP ("minibuffer-local-must-match-map", &Vminibuffer_local_must_match_map, | 3793 | DEFVAR_LISP ("minibuffer-local-must-match-map", &Vminibuffer_local_must_match_map, |
| 3779 | doc: /* Local keymap for minibuffer input with completion, for exact match. */); | 3794 | doc: /* Local keymap for minibuffer input with completion, for exact match. */); |
| 3780 | Vminibuffer_local_must_match_map = Fmake_sparse_keymap (Qnil); | 3795 | Vminibuffer_local_must_match_map = Fmake_sparse_keymap (Qnil); |
| 3781 | Fset_keymap_parent (Vminibuffer_local_must_match_map, | 3796 | Fset_keymap_parent (Vminibuffer_local_must_match_map, |
| 3782 | Vminibuffer_local_completion_map); | 3797 | Vminibuffer_local_completion_map); |
| 3783 | 3798 | ||
| 3799 | DEFVAR_LISP ("minibuffer-local-must-match-filename-map", | ||
| 3800 | &Vminibuffer_local_must_match_filename_map, | ||
| 3801 | doc: /* Local keymap for minibuffer input with completion for filenames with exact match. */); | ||
| 3802 | Vminibuffer_local_must_match_filename_map = Fmake_sparse_keymap (Qnil); | ||
| 3803 | Fset_keymap_parent (Vminibuffer_local_must_match_filename_map, | ||
| 3804 | Vminibuffer_local_must_match_map); | ||
| 3805 | |||
| 3784 | DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist, | 3806 | DEFVAR_LISP ("minor-mode-map-alist", &Vminor_mode_map_alist, |
| 3785 | doc: /* Alist of keymaps to use for minor modes. | 3807 | doc: /* Alist of keymaps to use for minor modes. |
| 3786 | Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read | 3808 | Each element looks like (VARIABLE . KEYMAP); KEYMAP is used to read |
diff --git a/src/minibuf.c b/src/minibuf.c index 4aa6dde6cac..2efb3cf4817 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -1753,8 +1753,12 @@ Completion ignores case if the ambient value of | |||
| 1753 | XSETFASTINT (histpos, 0); | 1753 | XSETFASTINT (histpos, 0); |
| 1754 | 1754 | ||
| 1755 | val = read_minibuf (NILP (require_match) | 1755 | val = read_minibuf (NILP (require_match) |
| 1756 | ? Vminibuffer_local_completion_map | 1756 | ? (NILP (Vminibuffer_completing_file_name) |
| 1757 | : Vminibuffer_local_must_match_map, | 1757 | ? Vminibuffer_local_completion_map |
| 1758 | : Vminibuffer_local_filename_completion_map) | ||
| 1759 | : (NILP (Vminibuffer_completing_file_name) | ||
| 1760 | ? Vminibuffer_local_must_match_map | ||
| 1761 | : Vminibuffer_local_must_match_filename_map), | ||
| 1758 | init, prompt, make_number (pos), 0, | 1762 | init, prompt, make_number (pos), 0, |
| 1759 | histvar, histpos, def, 0, | 1763 | histvar, histpos, def, 0, |
| 1760 | !NILP (inherit_input_method), 0); | 1764 | !NILP (inherit_input_method), 0); |
| @@ -2118,16 +2122,17 @@ a repetition of this command will exit. */) | |||
| 2118 | () | 2122 | () |
| 2119 | { | 2123 | { |
| 2120 | register int i; | 2124 | register int i; |
| 2121 | Lisp_Object val; | 2125 | Lisp_Object val, tem; |
| 2122 | 2126 | ||
| 2123 | /* Allow user to specify null string */ | 2127 | /* Allow user to specify null string */ |
| 2124 | if (XINT (Fminibuffer_prompt_end ()) == ZV) | 2128 | if (XINT (Fminibuffer_prompt_end ()) == ZV) |
| 2125 | goto exit; | 2129 | goto exit; |
| 2126 | 2130 | ||
| 2127 | val = Fminibuffer_contents (); | 2131 | val = Fminibuffer_contents (); |
| 2128 | if (!NILP (Ftest_completion (val, | 2132 | tem = Ftest_completion (val, |
| 2129 | Vminibuffer_completion_table, | 2133 | Vminibuffer_completion_table, |
| 2130 | Vminibuffer_completion_predicate))) | 2134 | Vminibuffer_completion_predicate); |
| 2135 | if (!NILP (tem)) | ||
| 2131 | { | 2136 | { |
| 2132 | if (completion_ignore_case) | 2137 | if (completion_ignore_case) |
| 2133 | { /* Fixup case of the field, if necessary. */ | 2138 | { /* Fixup case of the field, if necessary. */ |
| @@ -2927,10 +2932,16 @@ keys_of_minibuf () | |||
| 2927 | initial_define_key (Vminibuffer_local_completion_map, '?', | 2932 | initial_define_key (Vminibuffer_local_completion_map, '?', |
| 2928 | "minibuffer-completion-help"); | 2933 | "minibuffer-completion-help"); |
| 2929 | 2934 | ||
| 2935 | Fdefine_key (Vminibuffer_local_filename_completion_map, | ||
| 2936 | build_string (" "), Qnil); | ||
| 2937 | |||
| 2930 | initial_define_key (Vminibuffer_local_must_match_map, Ctl ('m'), | 2938 | initial_define_key (Vminibuffer_local_must_match_map, Ctl ('m'), |
| 2931 | "minibuffer-complete-and-exit"); | 2939 | "minibuffer-complete-and-exit"); |
| 2932 | initial_define_key (Vminibuffer_local_must_match_map, Ctl ('j'), | 2940 | initial_define_key (Vminibuffer_local_must_match_map, Ctl ('j'), |
| 2933 | "minibuffer-complete-and-exit"); | 2941 | "minibuffer-complete-and-exit"); |
| 2942 | |||
| 2943 | initial_define_key (Vminibuffer_local_must_match_filename_map, ' ', | ||
| 2944 | "self-insert-command"); | ||
| 2934 | } | 2945 | } |
| 2935 | 2946 | ||
| 2936 | /* arch-tag: 8f69b601-fba3-484c-a6dd-ceaee54a7a73 | 2947 | /* arch-tag: 8f69b601-fba3-484c-a6dd-ceaee54a7a73 |
diff --git a/src/undo.c b/src/undo.c index 9839906ca7e..ecbb714fddd 100644 --- a/src/undo.c +++ b/src/undo.c | |||
| @@ -378,11 +378,11 @@ truncate_undo_list (b) | |||
| 378 | && size_so_far > XINT (Vundo_outer_limit) | 378 | && size_so_far > XINT (Vundo_outer_limit) |
| 379 | && !NILP (Vundo_outer_limit_function)) | 379 | && !NILP (Vundo_outer_limit_function)) |
| 380 | { | 380 | { |
| 381 | Lisp_Object temp = last_undo_buffer; | 381 | Lisp_Object temp = last_undo_buffer, tem; |
| 382 | 382 | ||
| 383 | /* Normally the function this calls is undo-outer-limit-truncate. */ | 383 | /* Normally the function this calls is undo-outer-limit-truncate. */ |
| 384 | if (! NILP (call1 (Vundo_outer_limit_function, | 384 | tem = call1 (Vundo_outer_limit_function, make_number (size_so_far)); |
| 385 | make_number (size_so_far)))) | 385 | if (! NILP (tem)) |
| 386 | { | 386 | { |
| 387 | /* The function is responsible for making | 387 | /* The function is responsible for making |
| 388 | any desired changes in buffer-undo-list. */ | 388 | any desired changes in buffer-undo-list. */ |
diff --git a/src/w32fns.c b/src/w32fns.c index e18ee3d43a9..6fc6c860808 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -7413,6 +7413,9 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y) | |||
| 7413 | *root_y = XINT (top); | 7413 | *root_y = XINT (top); |
| 7414 | else if (*root_y + XINT (dy) - height < 0) | 7414 | else if (*root_y + XINT (dy) - height < 0) |
| 7415 | *root_y -= XINT (dy); | 7415 | *root_y -= XINT (dy); |
| 7416 | /* If there's not enough place below the pointer, put tip above it. */ | ||
| 7417 | else if (*root_y + XINT (dy) >= FRAME_W32_DISPLAY_INFO (f)->height) | ||
| 7418 | *root_y -= XINT (dy); | ||
| 7416 | else | 7419 | else |
| 7417 | { | 7420 | { |
| 7418 | *root_y -= height; | 7421 | *root_y -= height; |
diff --git a/src/window.c b/src/window.c index 2d974b4647f..dd80f629e1e 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -67,7 +67,7 @@ static int window_min_size P_ ((struct window *, int, int, int *)); | |||
| 67 | static void size_window P_ ((Lisp_Object, int, int, int)); | 67 | static void size_window P_ ((Lisp_Object, int, int, int)); |
| 68 | static int freeze_window_start P_ ((struct window *, void *)); | 68 | static int freeze_window_start P_ ((struct window *, void *)); |
| 69 | static int window_fixed_size_p P_ ((struct window *, int, int)); | 69 | static int window_fixed_size_p P_ ((struct window *, int, int)); |
| 70 | static void enlarge_window P_ ((Lisp_Object, int, int, int)); | 70 | static void enlarge_window P_ ((Lisp_Object, int, int)); |
| 71 | static Lisp_Object window_list P_ ((void)); | 71 | static Lisp_Object window_list P_ ((void)); |
| 72 | static int add_window_to_list P_ ((struct window *, void *)); | 72 | static int add_window_to_list P_ ((struct window *, void *)); |
| 73 | static int candidate_window_p P_ ((Lisp_Object, Lisp_Object, Lisp_Object, | 73 | static int candidate_window_p P_ ((Lisp_Object, Lisp_Object, Lisp_Object, |
| @@ -1971,7 +1971,7 @@ window_loop (type, obj, mini, frames) | |||
| 1971 | GCPRO1 (windows); | 1971 | GCPRO1 (windows); |
| 1972 | best_window = Qnil; | 1972 | best_window = Qnil; |
| 1973 | 1973 | ||
| 1974 | for (; CONSP (windows); windows = CDR (windows)) | 1974 | for (; CONSP (windows); windows = XCDR (windows)) |
| 1975 | { | 1975 | { |
| 1976 | struct window *w; | 1976 | struct window *w; |
| 1977 | 1977 | ||
| @@ -3592,7 +3592,7 @@ displayed. */) | |||
| 3592 | + XFASTINT (XWINDOW (window)->total_lines)); | 3592 | + XFASTINT (XWINDOW (window)->total_lines)); |
| 3593 | enlarge_window (upper, | 3593 | enlarge_window (upper, |
| 3594 | total / 2 - XFASTINT (XWINDOW (upper)->total_lines), | 3594 | total / 2 - XFASTINT (XWINDOW (upper)->total_lines), |
| 3595 | 0, 0); | 3595 | 0); |
| 3596 | } | 3596 | } |
| 3597 | } | 3597 | } |
| 3598 | } | 3598 | } |
| @@ -3669,7 +3669,7 @@ temp_output_buffer_show (buf) | |||
| 3669 | #endif | 3669 | #endif |
| 3670 | set_buffer_internal (old); | 3670 | set_buffer_internal (old); |
| 3671 | 3671 | ||
| 3672 | if (!EQ (Vtemp_buffer_show_function, Qnil)) | 3672 | if (!NILP (Vtemp_buffer_show_function)) |
| 3673 | call1 (Vtemp_buffer_show_function, buf); | 3673 | call1 (Vtemp_buffer_show_function, buf); |
| 3674 | else | 3674 | else |
| 3675 | { | 3675 | { |
| @@ -3883,21 +3883,18 @@ See Info node `(elisp)Splitting Windows' for more details and examples.*/) | |||
| 3883 | return new; | 3883 | return new; |
| 3884 | } | 3884 | } |
| 3885 | 3885 | ||
| 3886 | DEFUN ("enlarge-window", Fenlarge_window, Senlarge_window, 1, 3, "p", | 3886 | DEFUN ("enlarge-window", Fenlarge_window, Senlarge_window, 1, 2, "p", |
| 3887 | doc: /* Make current window ARG lines bigger. | 3887 | doc: /* Make current window ARG lines bigger. |
| 3888 | From program, optional second arg non-nil means grow sideways ARG columns. | 3888 | From program, optional second arg non-nil means grow sideways ARG columns. |
| 3889 | Interactively, if an argument is not given, make the window one line bigger. | 3889 | Interactively, if an argument is not given, make the window one line bigger. |
| 3890 | If HORIZONTAL is non-nil, enlarge horizontally instead of vertically. | 3890 | If HORIZONTAL is non-nil, enlarge horizontally instead of vertically. |
| 3891 | 3891 | This function can delete windows, even the second window, if they get | |
| 3892 | Optional third arg PRESERVE-BEFORE, if non-nil, means do not change the size | 3892 | too small. */) |
| 3893 | of the siblings above or to the left of the selected window. Only | 3893 | (arg, horizontal) |
| 3894 | siblings to the right or below are changed. */) | 3894 | Lisp_Object arg, horizontal; |
| 3895 | (arg, horizontal, preserve_before) | ||
| 3896 | register Lisp_Object arg, horizontal, preserve_before; | ||
| 3897 | { | 3895 | { |
| 3898 | CHECK_NUMBER (arg); | 3896 | CHECK_NUMBER (arg); |
| 3899 | enlarge_window (selected_window, XINT (arg), !NILP (horizontal), | 3897 | enlarge_window (selected_window, XINT (arg), !NILP (horizontal)); |
| 3900 | !NILP (preserve_before)); | ||
| 3901 | 3898 | ||
| 3902 | if (! NILP (Vwindow_configuration_change_hook)) | 3899 | if (! NILP (Vwindow_configuration_change_hook)) |
| 3903 | call1 (Vrun_hooks, Qwindow_configuration_change_hook); | 3900 | call1 (Vrun_hooks, Qwindow_configuration_change_hook); |
| @@ -3905,20 +3902,16 @@ siblings to the right or below are changed. */) | |||
| 3905 | return Qnil; | 3902 | return Qnil; |
| 3906 | } | 3903 | } |
| 3907 | 3904 | ||
| 3908 | DEFUN ("shrink-window", Fshrink_window, Sshrink_window, 1, 3, "p", | 3905 | DEFUN ("shrink-window", Fshrink_window, Sshrink_window, 1, 2, "p", |
| 3909 | doc: /* Make current window ARG lines smaller. | 3906 | doc: /* Make current window ARG lines smaller. |
| 3910 | From program, optional second arg non-nil means shrink sideways arg columns. | 3907 | From program, optional second arg non-nil means shrink sideways arg columns. |
| 3911 | Interactively, if an argument is not given, make the window one line smaller. | 3908 | Interactively, if an argument is not given, make the window one line smaller. Only |
| 3912 | |||
| 3913 | Optional third arg PRESERVE-BEFORE, if non-nil, means do not change the size | ||
| 3914 | of the siblings above or to the left of the selected window. Only | ||
| 3915 | siblings to the right or below are changed. */) | 3909 | siblings to the right or below are changed. */) |
| 3916 | (arg, side, preserve_before) | 3910 | (arg, side) |
| 3917 | register Lisp_Object arg, side, preserve_before; | 3911 | Lisp_Object arg, side; |
| 3918 | { | 3912 | { |
| 3919 | CHECK_NUMBER (arg); | 3913 | CHECK_NUMBER (arg); |
| 3920 | enlarge_window (selected_window, -XINT (arg), !NILP (side), | 3914 | enlarge_window (selected_window, -XINT (arg), !NILP (side)); |
| 3921 | !NILP (preserve_before)); | ||
| 3922 | 3915 | ||
| 3923 | if (! NILP (Vwindow_configuration_change_hook)) | 3916 | if (! NILP (Vwindow_configuration_change_hook)) |
| 3924 | call1 (Vrun_hooks, Qwindow_configuration_change_hook); | 3917 | call1 (Vrun_hooks, Qwindow_configuration_change_hook); |
| @@ -3956,15 +3949,12 @@ window_width (window) | |||
| 3956 | 3949 | ||
| 3957 | Siblings of the selected window are resized to fulfill the size | 3950 | Siblings of the selected window are resized to fulfill the size |
| 3958 | request. If they become too small in the process, they will be | 3951 | request. If they become too small in the process, they will be |
| 3959 | deleted. | 3952 | deleted. */ |
| 3960 | |||
| 3961 | If PRESERVE_BEFORE is nonzero, that means don't alter | ||
| 3962 | the siblings to the left or above WINDOW. */ | ||
| 3963 | 3953 | ||
| 3964 | static void | 3954 | static void |
| 3965 | enlarge_window (window, delta, horiz_flag, preserve_before) | 3955 | enlarge_window (window, delta, horiz_flag) |
| 3966 | Lisp_Object window; | 3956 | Lisp_Object window; |
| 3967 | int delta, horiz_flag, preserve_before; | 3957 | int delta, horiz_flag; |
| 3968 | { | 3958 | { |
| 3969 | Lisp_Object parent, next, prev; | 3959 | Lisp_Object parent, next, prev; |
| 3970 | struct window *p; | 3960 | struct window *p; |
| @@ -4011,33 +4001,18 @@ enlarge_window (window, delta, horiz_flag, preserve_before) | |||
| 4011 | 4001 | ||
| 4012 | /* Compute the maximum size increment this window can have. */ | 4002 | /* Compute the maximum size increment this window can have. */ |
| 4013 | 4003 | ||
| 4014 | if (preserve_before) | 4004 | maxdelta = (!NILP (parent) ? (*sizefun) (parent) - XINT (*sizep) |
| 4015 | { | 4005 | /* This is a main window followed by a minibuffer. */ |
| 4016 | if (!NILP (parent)) | 4006 | : !NILP (p->next) ? ((*sizefun) (p->next) |
| 4017 | { | 4007 | - window_min_size (XWINDOW (p->next), |
| 4018 | maxdelta = (*sizefun) (parent) - XINT (*sizep); | 4008 | horiz_flag, 0, 0)) |
| 4019 | /* Subtract size of siblings before, since we can't take that. */ | 4009 | /* This is a minibuffer following a main window. */ |
| 4020 | maxdelta -= XINT (CURBEG (window)) - XINT (CURBEG (parent)); | 4010 | : !NILP (p->prev) ? ((*sizefun) (p->prev) |
| 4021 | } | 4011 | - window_min_size (XWINDOW (p->prev), |
| 4022 | else | 4012 | horiz_flag, 0, 0)) |
| 4023 | maxdelta = (!NILP (p->next) ? ((*sizefun) (p->next) | 4013 | /* This is a frame with only one window, a minibuffer-only |
| 4024 | - window_min_size (XWINDOW (p->next), | 4014 | or a minibufferless frame. */ |
| 4025 | horiz_flag, 0, 0)) | 4015 | : (delta = 0)); |
| 4026 | : (delta = 0)); | ||
| 4027 | } | ||
| 4028 | else | ||
| 4029 | maxdelta = (!NILP (parent) ? (*sizefun) (parent) - XINT (*sizep) | ||
| 4030 | /* This is a main window followed by a minibuffer. */ | ||
| 4031 | : !NILP (p->next) ? ((*sizefun) (p->next) | ||
| 4032 | - window_min_size (XWINDOW (p->next), | ||
| 4033 | horiz_flag, 0, 0)) | ||
| 4034 | /* This is a minibuffer following a main window. */ | ||
| 4035 | : !NILP (p->prev) ? ((*sizefun) (p->prev) | ||
| 4036 | - window_min_size (XWINDOW (p->prev), | ||
| 4037 | horiz_flag, 0, 0)) | ||
| 4038 | /* This is a frame with only one window, a minibuffer-only | ||
| 4039 | or a minibufferless frame. */ | ||
| 4040 | : (delta = 0)); | ||
| 4041 | 4016 | ||
| 4042 | if (delta > maxdelta) | 4017 | if (delta > maxdelta) |
| 4043 | /* This case traps trying to make the minibuffer | 4018 | /* This case traps trying to make the minibuffer |
| @@ -4060,10 +4035,9 @@ enlarge_window (window, delta, horiz_flag, preserve_before) | |||
| 4060 | for (next = p->next; ! NILP (next); next = XWINDOW (next)->next) | 4035 | for (next = p->next; ! NILP (next); next = XWINDOW (next)->next) |
| 4061 | maximum += (*sizefun) (next) - window_min_size (XWINDOW (next), | 4036 | maximum += (*sizefun) (next) - window_min_size (XWINDOW (next), |
| 4062 | horiz_flag, 0, 0); | 4037 | horiz_flag, 0, 0); |
| 4063 | if (! preserve_before) | 4038 | for (prev = p->prev; ! NILP (prev); prev = XWINDOW (prev)->prev) |
| 4064 | for (prev = p->prev; ! NILP (prev); prev = XWINDOW (prev)->prev) | 4039 | maximum += (*sizefun) (prev) - window_min_size (XWINDOW (prev), |
| 4065 | maximum += (*sizefun) (prev) - window_min_size (XWINDOW (prev), | 4040 | horiz_flag, 0, 0); |
| 4066 | horiz_flag, 0, 0); | ||
| 4067 | 4041 | ||
| 4068 | /* If we can get it all from them without deleting them, do so. */ | 4042 | /* If we can get it all from them without deleting them, do so. */ |
| 4069 | if (delta <= maximum) | 4043 | if (delta <= maximum) |
| @@ -4079,7 +4053,7 @@ enlarge_window (window, delta, horiz_flag, preserve_before) | |||
| 4079 | moving away from this window in both directions alternately, | 4053 | moving away from this window in both directions alternately, |
| 4080 | and take as much as we can get without deleting that sibling. */ | 4054 | and take as much as we can get without deleting that sibling. */ |
| 4081 | while (delta != 0 | 4055 | while (delta != 0 |
| 4082 | && (!NILP (next) || (!preserve_before && !NILP (prev)))) | 4056 | && (!NILP (next) || !NILP (prev))) |
| 4083 | { | 4057 | { |
| 4084 | if (! NILP (next)) | 4058 | if (! NILP (next)) |
| 4085 | { | 4059 | { |
| @@ -4103,7 +4077,7 @@ enlarge_window (window, delta, horiz_flag, preserve_before) | |||
| 4103 | if (delta == 0) | 4077 | if (delta == 0) |
| 4104 | break; | 4078 | break; |
| 4105 | 4079 | ||
| 4106 | if (!preserve_before && ! NILP (prev)) | 4080 | if (! NILP (prev)) |
| 4107 | { | 4081 | { |
| 4108 | int this_one = ((*sizefun) (prev) | 4082 | int this_one = ((*sizefun) (prev) |
| 4109 | - window_min_size (XWINDOW (prev), | 4083 | - window_min_size (XWINDOW (prev), |
| @@ -4352,7 +4326,7 @@ adjust_window_trailing_edge (window, delta, horiz_flag) | |||
| 4352 | DEFUN ("adjust-window-trailing-edge", Fadjust_window_trailing_edge, | 4326 | DEFUN ("adjust-window-trailing-edge", Fadjust_window_trailing_edge, |
| 4353 | Sadjust_window_trailing_edge, 3, 3, 0, | 4327 | Sadjust_window_trailing_edge, 3, 3, 0, |
| 4354 | doc: /* Adjust the bottom or right edge of WINDOW by DELTA. | 4328 | doc: /* Adjust the bottom or right edge of WINDOW by DELTA. |
| 4355 | If HORIZ_FLAG is t, that means adjust the width, moving the right edge. | 4329 | If HORIZONTAL is non-nil, that means adjust the width, moving the right edge. |
| 4356 | Otherwise, adjust the height, moving the bottom edge. | 4330 | Otherwise, adjust the height, moving the bottom edge. |
| 4357 | 4331 | ||
| 4358 | Following siblings of the selected window are resized to fulfill | 4332 | Following siblings of the selected window are resized to fulfill |
| @@ -4604,7 +4578,7 @@ shrink_mini_window (w) | |||
| 4604 | among the other windows. */ | 4578 | among the other windows. */ |
| 4605 | Lisp_Object window; | 4579 | Lisp_Object window; |
| 4606 | XSETWINDOW (window, w); | 4580 | XSETWINDOW (window, w); |
| 4607 | enlarge_window (window, 1 - XFASTINT (w->total_lines), 0, 0); | 4581 | enlarge_window (window, 1 - XFASTINT (w->total_lines), 0); |
| 4608 | } | 4582 | } |
| 4609 | } | 4583 | } |
| 4610 | 4584 | ||
| @@ -5833,7 +5807,23 @@ the return value is nil. Otherwise the value is t. */) | |||
| 5833 | else | 5807 | else |
| 5834 | { | 5808 | { |
| 5835 | if (XBUFFER (new_current_buffer) == current_buffer) | 5809 | if (XBUFFER (new_current_buffer) == current_buffer) |
| 5836 | old_point = PT; | 5810 | /* The code further down "preserves point" by saving here PT in |
| 5811 | old_point and then setting it later back into PT. When the | ||
| 5812 | current-selected-window and the final-selected-window both show | ||
| 5813 | the current buffer, this suffers from the problem that the | ||
| 5814 | current PT is the window-point of the current-selected-window, | ||
| 5815 | while the final PT is the point of the final-selected-window, so | ||
| 5816 | this copy from one PT to the other would end up moving the | ||
| 5817 | window-point of the final-selected-window to the window-point of | ||
| 5818 | the current-selected-window. So we have to be careful which | ||
| 5819 | point of the current-buffer we copy into old_point. */ | ||
| 5820 | if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer) | ||
| 5821 | && WINDOWP (selected_window) | ||
| 5822 | && EQ (XWINDOW (selected_window)->buffer, new_current_buffer) | ||
| 5823 | && !EQ (selected_window, data->current_window)) | ||
| 5824 | old_point = XMARKER (XWINDOW (data->current_window)->pointm)->charpos; | ||
| 5825 | else | ||
| 5826 | old_point = PT; | ||
| 5837 | else | 5827 | else |
| 5838 | /* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of | 5828 | /* BUF_PT (XBUFFER (new_current_buffer)) gives us the position of |
| 5839 | point in new_current_buffer as of the last time this buffer was | 5829 | point in new_current_buffer as of the last time this buffer was |
diff --git a/src/xfns.c b/src/xfns.c index 311bc5f1bd8..a03573f7bf3 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -619,7 +619,7 @@ x_real_positions (f, xptr, yptr) | |||
| 619 | 619 | ||
| 620 | if (! had_errors) | 620 | if (! had_errors) |
| 621 | { | 621 | { |
| 622 | int ign; | 622 | unsigned int ign; |
| 623 | Window child, rootw; | 623 | Window child, rootw; |
| 624 | 624 | ||
| 625 | /* Get the real coordinates for the WM window upper left corner */ | 625 | /* Get the real coordinates for the WM window upper left corner */ |
| @@ -805,9 +805,7 @@ xg_set_icon (f, file) | |||
| 805 | { | 805 | { |
| 806 | GdkPixbuf *pixbuf; | 806 | GdkPixbuf *pixbuf; |
| 807 | GError *err = NULL; | 807 | GError *err = NULL; |
| 808 | char *filename; | 808 | char *filename = (char *) SDATA (found); |
| 809 | |||
| 810 | filename = SDATA (found); | ||
| 811 | BLOCK_INPUT; | 809 | BLOCK_INPUT; |
| 812 | 810 | ||
| 813 | pixbuf = gdk_pixbuf_new_from_file (filename, &err); | 811 | pixbuf = gdk_pixbuf_new_from_file (filename, &err); |
| @@ -836,17 +834,12 @@ xg_set_icon_from_xpm_data (f, data) | |||
| 836 | char **data; | 834 | char **data; |
| 837 | { | 835 | { |
| 838 | int result = 0; | 836 | int result = 0; |
| 839 | GError *err = NULL; | 837 | GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) data); |
| 840 | GdkPixbuf *pixbuf = gdk_pixbuf_new_from_xpm_data (data); | ||
| 841 | 838 | ||
| 842 | if (!pixbuf) | 839 | if (!pixbuf) |
| 843 | { | 840 | return 0; |
| 844 | g_error_free (err); | ||
| 845 | return 0; | ||
| 846 | } | ||
| 847 | 841 | ||
| 848 | gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | 842 | gtk_window_set_icon (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), pixbuf); |
| 849 | pixbuf); | ||
| 850 | g_object_unref (pixbuf); | 843 | g_object_unref (pixbuf); |
| 851 | return 1; | 844 | return 1; |
| 852 | } | 845 | } |
| @@ -1658,7 +1651,7 @@ x_set_name_internal (f, name) | |||
| 1658 | 1651 | ||
| 1659 | #ifdef USE_GTK | 1652 | #ifdef USE_GTK |
| 1660 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | 1653 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
| 1661 | SDATA (ENCODE_UTF_8 (name))); | 1654 | (char *) SDATA (ENCODE_UTF_8 (name))); |
| 1662 | #else /* not USE_GTK */ | 1655 | #else /* not USE_GTK */ |
| 1663 | XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); | 1656 | XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); |
| 1664 | #endif /* not USE_GTK */ | 1657 | #endif /* not USE_GTK */ |
| @@ -3393,10 +3386,17 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 3393 | FRAME_OUTER_WINDOW (f), | 3386 | FRAME_OUTER_WINDOW (f), |
| 3394 | dpyinfo->Xatom_wm_client_leader, | 3387 | dpyinfo->Xatom_wm_client_leader, |
| 3395 | XA_WINDOW, 32, PropModeReplace, | 3388 | XA_WINDOW, 32, PropModeReplace, |
| 3396 | (char *) &dpyinfo->client_leader_window, 1); | 3389 | (unsigned char *) &dpyinfo->client_leader_window, 1); |
| 3397 | UNBLOCK_INPUT; | 3390 | UNBLOCK_INPUT; |
| 3398 | } | 3391 | } |
| 3399 | 3392 | ||
| 3393 | /* Initialize `default-minibuffer-frame' in case this is the first | ||
| 3394 | frame on this display device. */ | ||
| 3395 | if (FRAME_HAS_MINIBUF_P (f) | ||
| 3396 | && (!FRAMEP (kb->Vdefault_minibuffer_frame) | ||
| 3397 | || !FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame)))) | ||
| 3398 | kb->Vdefault_minibuffer_frame = frame; | ||
| 3399 | |||
| 3400 | UNGCPRO; | 3400 | UNGCPRO; |
| 3401 | 3401 | ||
| 3402 | /* Make sure windows on this frame appear in calls to next-window | 3402 | /* Make sure windows on this frame appear in calls to next-window |
| @@ -4944,6 +4944,9 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y) | |||
| 4944 | *root_y = XINT (top); | 4944 | *root_y = XINT (top); |
| 4945 | else if (*root_y + XINT (dy) - height < 0) | 4945 | else if (*root_y + XINT (dy) - height < 0) |
| 4946 | *root_y -= XINT (dy); | 4946 | *root_y -= XINT (dy); |
| 4947 | else if (*root_y + XINT (dy) >= FRAME_X_DISPLAY_INFO (f)->height) | ||
| 4948 | /* Put tip above the pointer. */ | ||
| 4949 | *root_y -= XINT (dy); | ||
| 4947 | else | 4950 | else |
| 4948 | { | 4951 | { |
| 4949 | *root_y -= height; | 4952 | *root_y -= height; |
diff --git a/src/xterm.h b/src/xterm.h index 3a8c3d79d61..c96d015be4a 100644 --- a/src/xterm.h +++ b/src/xterm.h | |||
| @@ -1036,6 +1036,7 @@ extern int have_menus_p P_ ((void)); | |||
| 1036 | 1036 | ||
| 1037 | #ifdef USE_GTK | 1037 | #ifdef USE_GTK |
| 1038 | extern int xg_set_icon P_ ((struct frame *, Lisp_Object)); | 1038 | extern int xg_set_icon P_ ((struct frame *, Lisp_Object)); |
| 1039 | extern int xg_set_icon_from_xpm_data P_ ((struct frame *, char**)); | ||
| 1039 | #endif /* USE_GTK */ | 1040 | #endif /* USE_GTK */ |
| 1040 | 1041 | ||
| 1041 | extern void x_real_positions P_ ((struct frame *, int *, int *)); | 1042 | extern void x_real_positions P_ ((struct frame *, int *, int *)); |