aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiles Bader2005-01-29 00:06:24 +0000
committerMiles Bader2005-01-29 00:06:24 +0000
commit5f85994ad17fbe952504bfafb49fbef4ded186af (patch)
tree33522e4a7a8ddc7c7efa704bd6264f9722ad4ce8 /src
parent87795686a9e8ea51ec492d01d7dce4698b14f3af (diff)
parentaba1948af5107ad44c467e4f97792af5ce75a7d7 (diff)
downloademacs-5f85994ad17fbe952504bfafb49fbef4ded186af.tar.gz
emacs-5f85994ad17fbe952504bfafb49fbef4ded186af.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-7
Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-52 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-53 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-54 Update from CVS: lisp/cus-start.el (all): Add `undo-outer-limit'. * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-55 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-57 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-58 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-7 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-8 - miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-11 Update from CVS
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog164
-rw-r--r--src/dispextern.h2
-rw-r--r--src/keymap.c6
-rw-r--r--src/macterm.c25
-rw-r--r--src/w32term.c30
-rw-r--r--src/xdisp.c85
-rw-r--r--src/xterm.c67
7 files changed, 218 insertions, 161 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e9a38a7d64c..3bb83dc10e2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,38 @@
12005-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * keymap.c (access_keymap): YAILOM.
4
52005-01-27 Kim F. Storm <storm@cua.dk>
6
7 * xdisp.c (get_phys_cursor_geometry): New function to calculate
8 phys cursor position and size for hollow cursor. Position is
9 aligned with get_glyph_string_clip_rect and ensures that a hollow
10 cursor is shown, even when the actual glyph is not visible.
11
12 * dispextern.h (get_phys_cursor_geometry): Add prototype.
13
14 * xterm.c (x_clip_to_row): Ensure y >= 0.
15 (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
16
17 * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
18
19 * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
20
212005-01-27 Stefan Monnier <monnier@iro.umontreal.ca>
22
23 * xterm.c (x_error_quitter): Add a prototype. Make it static again.
24
252005-01-27 Kim F. Storm <storm@cua.dk>
26
27 * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
28 glyph, even when row is only partially visible and actual cursor
29 position is not visible.
30
312005-01-24 Richard M. Stallman <rms@gnu.org>
32
33 * xterm.c (x_error_quitter): No longer static, and moved after
34 x_error_handler.
35
12005-01-24 Kim F. Storm <storm@cua.dk> 362005-01-24 Kim F. Storm <storm@cua.dk>
2 37
3 * xdisp.c (move_it_by_lines): If we move forward after going too 38 * xdisp.c (move_it_by_lines): If we move forward after going too
@@ -51,7 +86,7 @@
512005-01-22 Steven Tamm <steventamm@mac.com> 862005-01-22 Steven Tamm <steventamm@mac.com>
52 87
53 * s/darwin.h: Removed PTY_ITERATION from here. 88 * s/darwin.h: Removed PTY_ITERATION from here.
54 (DARWIN): Defined. 89 (DARWIN): Define.
55 * process.c (init_process): Default process-connection-type to 90 * process.c (init_process): Default process-connection-type to
56 nil on darwin 6 or less, t if it is 7 or higher. This way the 91 nil on darwin 6 or less, t if it is 7 or higher. This way the
57 broken pty behavior is still allowed on darwin 6 for interactive 92 broken pty behavior is still allowed on darwin 6 for interactive
@@ -94,17 +129,16 @@
94 129
952005-01-20 Steven Tamm <steventamm@mac.com> 1302005-01-20 Steven Tamm <steventamm@mac.com>
96 131
97 * editfns.c (Voperating_system_release): Added. 132 * editfns.c (Voperating_system_release): Add.
98 (init_editfns): Assign new variable operating-system-release 133 (init_editfns): Assign new variable operating-system-release
99 based on call to uname if available. 134 based on call to uname if available.
100 (get_operating_system_release): Added function to 135 (get_operating_system_release): Add function to
101 allow c-level access to operating system release. 136 allow c-level access to operating system release.
102 137
103 * config.h: Regenerated. 138 * config.h: Regenerated.
104 139
105 * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or 140 * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or less.
106 less. 141 (MIN_PTY_KERNEL_VERSION): Define minimum kernel version for
107 (MIN_PTY_KERNEL_VERSION): Defined minimum kernel version for
108 using ptys as '7'. 142 using ptys as '7'.
109 143
1102005-01-20 Kim F. Storm <storm@cua.dk> 1442005-01-20 Kim F. Storm <storm@cua.dk>
@@ -146,8 +180,8 @@
146 180
1472005-01-17 Kim F. Storm <storm@cua.dk> 1812005-01-17 Kim F. Storm <storm@cua.dk>
148 182
149 * dispnew.c (mode_line_string, marginal_area_string): Fix 183 * dispnew.c (mode_line_string, marginal_area_string):
150 off-by-one error in search for glyph. 184 Fix off-by-one error in search for glyph.
151 185
1522005-01-16 Kim F. Storm <storm@cua.dk> 1862005-01-16 Kim F. Storm <storm@cua.dk>
153 187
@@ -155,7 +189,7 @@
155 189
1562005-01-16 Steven Tamm <steventamm@mac.com> 1902005-01-16 Steven Tamm <steventamm@mac.com>
157 191
158 * macterm.c (mac_to_x_fontname): Removed spurious argument. 192 * macterm.c (mac_to_x_fontname): Remove spurious argument.
159 193
1602005-01-16 Andreas Schwab <schwab@suse.de> 1942005-01-16 Andreas Schwab <schwab@suse.de>
161 195
@@ -171,7 +205,7 @@
171 * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW) 205 * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW)
172 (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES): 206 (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES):
173 New flags for readable_events. 207 New flags for readable_events.
174 (get_filtered_input_pending, readable_filtered_events): Removed. 208 (get_filtered_input_pending, readable_filtered_events): Remove.
175 (tracking_off): Call readable_events and get_input_pending with 209 (tracking_off): Call readable_events and get_input_pending with
176 flag READABLE_EVENTS_DO_TIMERS_NOW. 210 flag READABLE_EVENTS_DO_TIMERS_NOW.
177 (readable_events): Move code from old readable_filtered_events here, 211 (readable_events): Move code from old readable_filtered_events here,
@@ -211,8 +245,8 @@
211 245
2122005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 2462005-01-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
213 247
214 * macfns.c (x_set_foreground_color, x_set_background_color): Sync 248 * macfns.c (x_set_foreground_color, x_set_background_color):
215 with xfns.c. 249 Sync with xfns.c.
216 (mac_window, x_create_tip_frame): Use XSetWindowBackground. 250 (mac_window, x_create_tip_frame): Use XSetWindowBackground.
217 * macterm.c (XSetBackground, XSetWindowBackground): New functions. 251 * macterm.c (XSetBackground, XSetWindowBackground): New functions.
218 * macterm.h (XSetBackground, XSetWindowBackground): Add externs. 252 * macterm.h (XSetBackground, XSetWindowBackground): Add externs.
@@ -269,8 +303,8 @@
269 (get_next_display_element): Test Vshow_nonbreak_escape. 303 (get_next_display_element): Test Vshow_nonbreak_escape.
270 Do not setup escape_glyph_face. 304 Do not setup escape_glyph_face.
271 Properly merge escape-glyph face or face from display table with 305 Properly merge escape-glyph face or face from display table with
272 current face for escape and control characters. Set 306 current face for escape and control characters.
273 it->dpvec_face_id to relevant face id instead of adding it to each 307 Set it->dpvec_face_id to relevant face id instead of adding it to each
274 element of display vector. 308 element of display vector.
275 (next_element_from_display_vector): If it->dpvec_face_id is set, 309 (next_element_from_display_vector): If it->dpvec_face_id is set,
276 use that instead of lface_id from glyph itself. 310 use that instead of lface_id from glyph itself.
@@ -294,8 +328,7 @@
294 328
295 * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar) 329 * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar)
296 (xg_tool_bar_callback, xg_tool_bar_help_callback) 330 (xg_tool_bar_callback, xg_tool_bar_help_callback)
297 (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler 331 (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler warning.
298 warning.
299 332
300 * xselect.c (x_get_foreign_selection, x_fill_property_data) 333 * xselect.c (x_get_foreign_selection, x_fill_property_data)
301 (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with 334 (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with
@@ -353,8 +386,8 @@
353 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise. 386 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
354 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a 387 [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
355 file dialog is in action. 388 file dialog is in action.
356 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise. Reject 389 [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
357 only when there are no filename items. Set background color 390 Reject only when there are no filename items. Set background color
358 before (un)highlighting the window below the dragged items. 391 before (un)highlighting the window below the dragged items.
359 (XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update. 392 (XTread_socket) [!USE_CARBON_EVENTS]: Don't call do_window_update.
360 393
@@ -438,8 +471,7 @@
438 471
439 * fileio.c (Finsert_file_contents): Don't use 472 * fileio.c (Finsert_file_contents): Don't use
440 current_buffer->buffer_file_coding_system even if REPLACE is 473 current_buffer->buffer_file_coding_system even if REPLACE is
441 non-nil. Call Qafter_insert_file_set_coding with the second arg 474 non-nil. Call Qafter_insert_file_set_coding with the second arg VISIT.
442 VISIT.
443 475
444 * fontset.h (struct font_info): New members space_width and 476 * fontset.h (struct font_info): New members space_width and
445 average_width. 477 average_width.
@@ -452,8 +484,7 @@
452 * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to 484 * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to
453 fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to 485 fontp->average_width, not FONT_WIDTH. Set FRAME_SPACE_WIDTH to
454 fontp->space_width. 486 fontp->space_width.
455 (x_load_font): Calculate fontp->space_width and 487 (x_load_font): Calculate fontp->space_width and fontp->average_width.
456 fontp->average_width.
457 (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH. 488 (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH.
458 489
459 * xdisp.c (x_produce_glyphs): Calculate tab width by 490 * xdisp.c (x_produce_glyphs): Calculate tab width by
@@ -462,8 +493,7 @@
4622004-12-29 Sanghyuk Suh <han9kin@mac.com> 4932004-12-29 Sanghyuk Suh <han9kin@mac.com>
463 494
464 * macterm.c (SelectionRange): Add Xcode position apple event struct. 495 * macterm.c (SelectionRange): Add Xcode position apple event struct.
465 (do_ae_open_documents): Handle Xcode-style file position open 496 (do_ae_open_documents): Handle Xcode-style file position open events.
466 events.
467 497
4682004-12-29 Luc Teirlinck <teirllm@auburn.edu> 4982004-12-29 Luc Teirlinck <teirllm@auburn.edu>
469 499
@@ -489,11 +519,16 @@
489 init_mac_drag_n_drop. 519 init_mac_drag_n_drop.
490 (mac_do_track_drag): New function and declaration. 520 (mac_do_track_drag): New function and declaration.
491 (install_window_handler): Return OSErr value. 521 (install_window_handler): Return OSErr value.
492 (install_window_handler) [TARGET_API_MAC_CARBON]: Register 522 (install_window_handler) [TARGET_API_MAC_CARBON]:
493 handlers for tracking/receiving drag-and-drop items. 523 Register handlers for tracking/receiving drag-and-drop items.
494 (do_ae_open_documents): Generate unibyte strings for filenames. 524 (do_ae_open_documents): Generate unibyte strings for filenames.
495 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise. Reject 525<<<<<<< ChangeLog
496 only non-filename items. Set event modifiers. Set return value. 526 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
527 Reject only non-filename items. Set event modifiers and return value.
528=======
529 (mac_do_receive_drag) [TARGET_API_MAC_CARBON] : Likewise.
530 Reject only non-filename items. Set event modifiers, and return value.
531>>>>>>> 1.4187
497 532
4982004-12-28 Dan Nicolaescu <dann@ics.uci.edu> 5332004-12-28 Dan Nicolaescu <dann@ics.uci.edu>
499 534
@@ -517,8 +552,8 @@
517 * xmenu.c (popup_get_selection): Only pop down dialogs 552 * xmenu.c (popup_get_selection): Only pop down dialogs
518 on C-g and Escape. 553 on C-g and Escape.
519 (popup_get_selection): Remove parameter down_on_keypress. 554 (popup_get_selection): Remove parameter down_on_keypress.
520 (create_and_show_popup_menu, create_and_show_dialog): Remove 555 (create_and_show_popup_menu, create_and_show_dialog):
521 parameter down_on_keypress to popup_get_selection. 556 Remove parameter down_on_keypress to popup_get_selection.
522 557
5232004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 5582004-12-27 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
524 559
@@ -535,8 +570,8 @@
535 570
536 * frame.c (x_set_frame_parameters, x_report_frame_params) 571 * frame.c (x_set_frame_parameters, x_report_frame_params)
537 (x_set_fullscreen): Remove #ifndef HAVE_CARBON. 572 (x_set_fullscreen): Remove #ifndef HAVE_CARBON.
538 (x_set_border_width, Vdefault_frame_scroll_bars): Change 573 (x_set_border_width, Vdefault_frame_scroll_bars):
539 HAVE_CARBON to MAC_OS. 574 Change HAVE_CARBON to MAC_OS.
540 575
541 * image.c [MAC_OS]: Include sys/stat.h. 576 * image.c [MAC_OS]: Include sys/stat.h.
542 [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and 577 [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and
@@ -544,8 +579,7 @@
544 579
545 * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern. 580 * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern.
546 [!MAC_OSX] (select): Use mac_wait_next_event. 581 [!MAC_OSX] (select): Use mac_wait_next_event.
547 [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to 582 [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to Vexec_suffixes.
548 Vexec_suffixes.
549 [!MAC_OSX] (select, run_mac_command): Change `#ifdef 583 [!MAC_OSX] (select, run_mac_command): Change `#ifdef
550 TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'. 584 TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
551 (mac_clear_font_name_table): Add extern. 585 (mac_clear_font_name_table): Add extern.
@@ -564,21 +598,19 @@
564 * macfns.c (mac_initialized): Remove extern. 598 * macfns.c (mac_initialized): Remove extern.
565 (stricmp): Put in #if 0. All callers changed to use xstricmp in 599 (stricmp): Put in #if 0. All callers changed to use xstricmp in
566 xfaces.c. 600 xfaces.c.
567 (strnicmp): Decrement `n' at the end of each loop, not the 601 (strnicmp): Decrement `n' at the end of each loop, not the beginning.
568 beginning. 602 (check_mac): Use the term "Mac native windows" instead of "Mac OS".
569 (check_mac): Use the term "Mac native windows" instead of "Mac
570 OS".
571 (check_x_display_info, x_display_info_for_name): Sync with xfns.c. 603 (check_x_display_info, x_display_info_for_name): Sync with xfns.c.
572 (mac_get_rdb_resource): New function (from w32reg.c). 604 (mac_get_rdb_resource): New function (from w32reg.c).
573 (x_get_string_resource): Use it. 605 (x_get_string_resource): Use it.
574 (install_window_handler): Add extern. 606 (install_window_handler): Add extern.
575 (mac_window): New function. 607 (mac_window): New function.
576 (Fx_create_frame): Use it instead of make_mac_frame. Set 608 (Fx_create_frame): Use it instead of make_mac_frame.
577 parameter for Qfullscreen. Call x_wm_set_size_hint. 609 Set parameter for Qfullscreen. Call x_wm_set_size_hint.
578 (Fx_open_connection, Fx_close_connection): New defuns. 610 (Fx_open_connection, Fx_close_connection): New defuns.
579 (syms_of_macfns): Defsubr them. 611 (syms_of_macfns): Defsubr them.
580 (x_create_tip_frame) [TARGET_API_MAC_CARBON]: Add 612 (x_create_tip_frame) [TARGET_API_MAC_CARBON]:
581 kWindowNoUpdatesAttribute to the window attribute. 613 Add kWindowNoUpdatesAttribute to the window attribute.
582 (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow. 614 (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow.
583 (x_create_tip_frame): Don't call ShowWindow. 615 (x_create_tip_frame): Don't call ShowWindow.
584 (Fx_show_tip): Call ShowWindow. 616 (Fx_show_tip): Call ShowWindow.
@@ -587,8 +619,7 @@
587 (mac_frame_parm_handlers): Set handlers for Qfullscreen. 619 (mac_frame_parm_handlers): Set handlers for Qfullscreen.
588 (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0. 620 (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0.
589 621
590 * macgui.h [!MAC_OSX]: Don't include Controls.h. Include 622 * macgui.h [!MAC_OSX]: Don't include Controls.h. Include Windows.h.
591 Windows.h.
592 (Window): Typedef to WindowPtr and move outside `#if 623 (Window): Typedef to WindowPtr and move outside `#if
593 TARGET_API_MAC_CARBON'. 624 TARGET_API_MAC_CARBON'.
594 (XSizeHints): New struct. 625 (XSizeHints): New struct.
@@ -607,8 +638,12 @@
607 (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window 638 (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window
608 if the position is neither user-specified nor program-specified. 639 if the position is neither user-specified nor program-specified.
609 (x_free_frame_resources): Free size_hints. 640 (x_free_frame_resources): Free size_hints.
610 (x_wm_set_size_hint): Allocate size_hints if needed. Set 641<<<<<<< ChangeLog
611 size_hints. 642 (x_wm_set_size_hint): Allocate size_hints if needed.
643 Set size_hints.
644=======
645 (x_wm_set_size_hint): Allocate size_hints if needed. Set size_hints.
646>>>>>>> 1.4187
612 (mac_clear_font_name_table): New function. 647 (mac_clear_font_name_table): New function.
613 (mac_do_list_fonts): Initialize font_name_table if needed. 648 (mac_do_list_fonts): Initialize font_name_table if needed.
614 (x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT 649 (x_list_fonts): Don't initialize font_name_table. Add BLOCK_INPUT
@@ -622,8 +657,7 @@
622 (do_window_update): Add BeginUpdate/EndUpdate for the tooltip 657 (do_window_update): Add BeginUpdate/EndUpdate for the tooltip
623 window. Use UpdateControls. Get the rectangle that should be 658 window. Use UpdateControls. Get the rectangle that should be
624 updated and restrict the target of expose_frame to it. 659 updated and restrict the target of expose_frame to it.
625 (do_grow_window): Set minimum height/width according to 660 (do_grow_window): Set minimum height/width according to size_hints.
626 size_hints.
627 (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow. 661 (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow.
628 (do_zoom_window): Don't use x_set_window_size. 662 (do_zoom_window): Don't use x_set_window_size.
629 [USE_CARBON_EVENTS] (mac_handle_window_event): New function. 663 [USE_CARBON_EVENTS] (mac_handle_window_event): New function.
@@ -635,10 +669,10 @@
635 (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event. 669 (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event.
636 Update mouse_region when mouse is moved. 670 Update mouse_region when mouse is moved.
637 (make_mac_frame): Remove. 671 (make_mac_frame): Remove.
638 (make_mac_terminal_frame): Put in #ifdef MAC_OS8. Initialize 672 (make_mac_terminal_frame): Put in #ifdef MAC_OS8.
639 mouse pointer shapes. Change values of f->left_pos and 673 Initialize mouse pointer shapes. Change values of f->left_pos and
640 f->top_pos. Don't use make_mac_frame. Use NewCWindow. Don't 674 f->top_pos. Don't use make_mac_frame. Use NewCWindow.
641 call ShowWindow. 675 Don't call ShowWindow.
642 (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from 676 (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from
643 Vinvocation_name and Vsystem_name. 677 Vinvocation_name and Vsystem_name.
644 (mac_make_rdb): New function (from w32term.c). 678 (mac_make_rdb): New function (from w32term.c).
@@ -661,17 +695,21 @@
661 695
6622004-12-27 Richard M. Stallman <rms@gnu.org> 6962004-12-27 Richard M. Stallman <rms@gnu.org>
663 697
664 * buffer.c (Fbuffer_disable_undo): Deleted (moved to simple.el). 698<<<<<<< ChangeLog
699 * buffer.c (Fbuffer_disable_undo): Delete (moved to simple.el).
700=======
701 * buffer.c (Fbuffer_disable_undo): Delete (move to simple.el).
702>>>>>>> 1.4187
665 (syms_of_buffer): Don't defsubr it. 703 (syms_of_buffer): Don't defsubr it.
666 704
667 * process.c (list_processes_1): Set undo_list instead 705 * process.c (list_processes_1): Set undo_list instead
668 of calling Fbuffer_disable_undo. 706 of calling Fbuffer_disable_undo.
669 707
670 * xdisp.c (single_display_spec_string_p): Renamed from 708 * xdisp.c (single_display_spec_string_p): Rename from
671 single_display_prop_string_p. 709 single_display_prop_string_p.
672 (single_display_spec_intangible_p): Renamed from 710 (single_display_spec_intangible_p): Rename from
673 single_display_prop_intangible_p. 711 single_display_prop_intangible_p.
674 (handle_single_display_spec): Renamed from handle_single_display_prop. 712 (handle_single_display_spec): Rename from handle_single_display_prop.
675 Rewritten to be easier to understand. 713 Rewritten to be easier to understand.
676 714
677 Change in load-history format. Functions now get (defun . NAME), 715 Change in load-history format. Functions now get (defun . NAME),
@@ -755,7 +793,7 @@
755 793
756 * alloc.c (Fgarbage_collect): Update call to truncate_undo_list. 794 * alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
757 Call that at the very start. 795 Call that at the very start.
758 (undo_limit, undo_strong_limit, undo_outer_limit): Moved to undo.c. 796 (undo_limit, undo_strong_limit, undo_outer_limit): Move to undo.c.
759 (syms_of_alloc): Don't define undo-limit, 797 (syms_of_alloc): Don't define undo-limit,
760 undo-strong-limit and undo-outer-limit here. 798 undo-strong-limit and undo-outer-limit here.
761 799
@@ -790,8 +828,8 @@
790 828
7912004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 8292004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
792 830
793 * macterm.c (endif, x_font_name_to_mac_font_name): Use 831 * macterm.c (endif, x_font_name_to_mac_font_name):
794 maccentraleurroman instead of maccentraleuropean 832 Use maccentraleurroman instead of maccentraleuropean
795 (mac_c_string_match, mac_do_list_fonts): Speed up font search by 833 (mac_c_string_match, mac_do_list_fonts): Speed up font search by
796 quickly finding a specific font without needing regexps. 834 quickly finding a specific font without needing regexps.
797 835
@@ -817,8 +855,8 @@
817 855
818 * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK. 856 * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
819 857
820 * process.c (send_process_trap, sigchld_handler): Call 858 * process.c (send_process_trap, sigchld_handler):
821 SIGNAL_THREAD_CHECK. 859 Call SIGNAL_THREAD_CHECK.
822 860
823 * data.c (arith_error): Call SIGNAL_THREAD_CHECK. 861 * data.c (arith_error): Call SIGNAL_THREAD_CHECK.
824 862
@@ -908,7 +946,7 @@
908 946
909 * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC. 947 * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
910 948
9112004-12-07 Stefan <monnier@iro.umontreal.ca> 9492004-12-07 Stefan Monnier <monnier@iro.umontreal.ca>
912 950
913 * eval.c (init_eval_once): Increase max_specpdl_size to 1000. 951 * eval.c (init_eval_once): Increase max_specpdl_size to 1000.
914 952
@@ -2056,7 +2094,7 @@
2056 2094
2057 * window.c (Fspecial_display_p): Doc fix. 2095 * window.c (Fspecial_display_p): Doc fix.
2058 2096
20592004-10-15 Stefan <monnier@iro.umontreal.ca> 20972004-10-15 Stefan Monnier <monnier@iro.umontreal.ca>
2060 2098
2061 * doc.c (Fsubstitute_command_keys): Fix remap-handling. 2099 * doc.c (Fsubstitute_command_keys): Fix remap-handling.
2062 Don't ignore menus, because where-is-internal already does it for us. 2100 Don't ignore menus, because where-is-internal already does it for us.
diff --git a/src/dispextern.h b/src/dispextern.h
index ac56cdd31f2..5edc213fba1 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -2640,6 +2640,8 @@ extern void x_fix_overlapping_area P_ ((struct window *, struct glyph_row *,
2640extern void draw_phys_cursor_glyph P_ ((struct window *, 2640extern void draw_phys_cursor_glyph P_ ((struct window *,
2641 struct glyph_row *, 2641 struct glyph_row *,
2642 enum draw_glyphs_face)); 2642 enum draw_glyphs_face));
2643extern int get_phys_cursor_geometry P_ ((struct window *, struct glyph_row *,
2644 struct glyph *, int *));
2643extern void erase_phys_cursor P_ ((struct window *)); 2645extern void erase_phys_cursor P_ ((struct window *));
2644extern void display_and_set_cursor P_ ((struct window *, 2646extern void display_and_set_cursor P_ ((struct window *,
2645 int, int, int, int, int)); 2647 int, int, int, int, int));
diff --git a/src/keymap.c b/src/keymap.c
index 074cc1706bf..2977b4dec09 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1,6 +1,6 @@
1/* Manipulation of keymaps 1/* Manipulation of keymaps
2 Copyright (C) 1985, 86,87,88,93,94,95,98,99, 2000, 01, 2004 2 Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1998, 1999, 2000,
3 Free Software Foundation, Inc. 3 2001, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -527,7 +527,7 @@ access_keymap (map, idx, t_ok, noinherit, autoload)
527 GCPRO1 (map); 527 GCPRO1 (map);
528 /* A strange value in which Meta is set would cause 528 /* A strange value in which Meta is set would cause
529 infinite recursion. Protect against that. */ 529 infinite recursion. Protect against that. */
530 if (meta_prefix_char & CHAR_META) 530 if (XINT (meta_prefix_char) & CHAR_META)
531 meta_prefix_char = make_number (27); 531 meta_prefix_char = make_number (27);
532 meta_map = get_keymap (access_keymap (map, meta_prefix_char, 532 meta_map = get_keymap (access_keymap (map, meta_prefix_char,
533 t_ok, noinherit, autoload), 533 t_ok, noinherit, autoload),
diff --git a/src/macterm.c b/src/macterm.c
index 9a1ee834ce5..aeed88013e5 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -4737,29 +4737,10 @@ x_draw_hollow_cursor (w, row)
4737 if (cursor_glyph == NULL) 4737 if (cursor_glyph == NULL)
4738 return; 4738 return;
4739 4739
4740 /* Compute the width of the rectangle to draw. If on a stretch 4740 /* Compute frame-relative coordinates for phys cursor. */
4741 glyph, and `x-stretch-block-cursor' is nil, don't draw a
4742 rectangle as wide as the glyph, but use a canonical character
4743 width instead. */
4744 wd = cursor_glyph->pixel_width - 1;
4745 if (cursor_glyph->type == STRETCH_GLYPH
4746 && !x_stretch_cursor_p)
4747 wd = min (FRAME_COLUMN_WIDTH (f), wd);
4748 w->phys_cursor_width = wd;
4749
4750 /* Compute frame-relative coordinates from window-relative
4751 coordinates. */
4752 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 4741 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
4753 y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y); 4742 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
4754 4743 wd = w->phys_cursor_width;
4755 /* Compute the proper height and ascent of the rectangle, based
4756 on the actual glyph. Using the full height of the row looks
4757 bad when there are tall images on that row. */
4758 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
4759 cursor_glyph->ascent + cursor_glyph->descent);
4760 if (h < row->height)
4761 y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
4762 h--;
4763 4744
4764 /* The foreground of cursor_gc is typically the same as the normal 4745 /* The foreground of cursor_gc is typically the same as the normal
4765 background color, which can cause the cursor box to be invisible. */ 4746 background color, which can cause the cursor box to be invisible. */
diff --git a/src/w32term.c b/src/w32term.c
index bffdd8f2565..151afb7e841 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -5088,7 +5088,7 @@ x_draw_hollow_cursor (w, row)
5088 struct frame *f = XFRAME (WINDOW_FRAME (w)); 5088 struct frame *f = XFRAME (WINDOW_FRAME (w));
5089 HDC hdc; 5089 HDC hdc;
5090 RECT rect; 5090 RECT rect;
5091 int wd, h; 5091 int h;
5092 struct glyph *cursor_glyph; 5092 struct glyph *cursor_glyph;
5093 HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel); 5093 HBRUSH hb = CreateSolidBrush (f->output_data.w32->cursor_pixel);
5094 5094
@@ -5098,34 +5098,12 @@ x_draw_hollow_cursor (w, row)
5098 if (cursor_glyph == NULL) 5098 if (cursor_glyph == NULL)
5099 return; 5099 return;
5100 5100
5101 /* Compute frame-relative coordinates from window-relative 5101 /* Compute frame-relative coordinates for phys cursor. */
5102 coordinates. */
5103 rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 5102 rect.left = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
5104 rect.top = (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y) 5103 rect.top = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
5105 + row->ascent - w->phys_cursor_ascent);
5106
5107 /* Compute the proper height and ascent of the rectangle, based
5108 on the actual glyph. Using the full height of the row looks
5109 bad when there are tall images on that row. */
5110 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
5111 cursor_glyph->ascent + cursor_glyph->descent);
5112 if (h < row->height)
5113 rect.top += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
5114 h--;
5115
5116 rect.bottom = rect.top + h; 5104 rect.bottom = rect.top + h;
5105 rect.right = rect.left + w->phys_cursor_width;
5117 5106
5118 /* Compute the width of the rectangle to draw. If on a stretch
5119 glyph, and `x-stretch-block-cursor' is nil, don't draw a
5120 rectangle as wide as the glyph, but use a canonical character
5121 width instead. */
5122 wd = cursor_glyph->pixel_width; /* TODO: Why off by one compared with X? */
5123 if (cursor_glyph->type == STRETCH_GLYPH
5124 && !x_stretch_cursor_p)
5125 wd = min (FRAME_COLUMN_WIDTH (f), wd);
5126 w->phys_cursor_width = wd;
5127
5128 rect.right = rect.left + wd;
5129 hdc = get_frame_dc (f); 5107 hdc = get_frame_dc (f);
5130 /* Set clipping, draw the rectangle, and reset clipping again. */ 5108 /* Set clipping, draw the rectangle, and reset clipping again. */
5131 w32_clip_to_row (w, row, TEXT_AREA, hdc); 5109 w32_clip_to_row (w, row, TEXT_AREA, hdc);
diff --git a/src/xdisp.c b/src/xdisp.c
index a8f36e04e38..7d7e510892b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1840,7 +1840,7 @@ get_glyph_string_clip_rect (s, nr)
1840 if (s->hl == DRAW_CURSOR) 1840 if (s->hl == DRAW_CURSOR)
1841 { 1841 {
1842 struct glyph *glyph = s->first_glyph; 1842 struct glyph *glyph = s->first_glyph;
1843 int height; 1843 int height, max_y;
1844 1844
1845 if (s->x > r.x) 1845 if (s->x > r.x)
1846 { 1846 {
@@ -1849,13 +1849,26 @@ get_glyph_string_clip_rect (s, nr)
1849 } 1849 }
1850 r.width = min (r.width, glyph->pixel_width); 1850 r.width = min (r.width, glyph->pixel_width);
1851 1851
1852 /* Don't draw cursor glyph taller than our actual glyph. */ 1852 /* If r.y is below window bottom, ensure that we still see a cursor. */
1853 height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent); 1853 height = min (glyph->ascent + glyph->descent,
1854 if (height < r.height) 1854 min (FRAME_LINE_HEIGHT (s->f), s->row->visible_height));
1855 max_y = window_text_bottom_y (s->w) - height;
1856 max_y = WINDOW_TO_FRAME_PIXEL_Y (s->w, max_y);
1857 if (s->ybase - glyph->ascent > max_y)
1855 { 1858 {
1856 int max_y = r.y + r.height; 1859 r.y = max_y;
1857 r.y = min (max_y, s->ybase + glyph->descent - height); 1860 r.height = height;
1858 r.height = min (max_y - r.y, height); 1861 }
1862 else
1863 {
1864 /* Don't draw cursor glyph taller than our actual glyph. */
1865 height = max (FRAME_LINE_HEIGHT (s->f), glyph->ascent + glyph->descent);
1866 if (height < r.height)
1867 {
1868 max_y = r.y + r.height;
1869 r.y = min (max_y, max (r.y, s->ybase + glyph->descent - height));
1870 r.height = min (max_y - r.y, height);
1871 }
1859 } 1872 }
1860 } 1873 }
1861 1874
@@ -1866,6 +1879,64 @@ get_glyph_string_clip_rect (s, nr)
1866#endif 1879#endif
1867} 1880}
1868 1881
1882
1883/* EXPORT:
1884 Return the position and height of the phys cursor in window W.
1885 Set w->phys_cursor_width to width of phys cursor.
1886*/
1887
1888int
1889get_phys_cursor_geometry (w, row, glyph, heightp)
1890 struct window *w;
1891 struct glyph_row *row;
1892 struct glyph *glyph;
1893 int *heightp;
1894{
1895 struct frame *f = XFRAME (WINDOW_FRAME (w));
1896 int x, y, wd, h, h0, y0;
1897
1898 /* Compute the width of the rectangle to draw. If on a stretch
1899 glyph, and `x-stretch-block-cursor' is nil, don't draw a
1900 rectangle as wide as the glyph, but use a canonical character
1901 width instead. */
1902 wd = glyph->pixel_width - 1;
1903#ifdef HAVE_NTGUI
1904 wd++; /* Why? */
1905#endif
1906 if (glyph->type == STRETCH_GLYPH
1907 && !x_stretch_cursor_p)
1908 wd = min (FRAME_COLUMN_WIDTH (f), wd);
1909 w->phys_cursor_width = wd;
1910
1911 y = w->phys_cursor.y + row->ascent - glyph->ascent;
1912
1913 /* If y is below window bottom, ensure that we still see a cursor. */
1914 h0 = min (FRAME_LINE_HEIGHT (f), row->visible_height);
1915
1916 h = max (h0, glyph->ascent + glyph->descent);
1917 h0 = min (h0, glyph->ascent + glyph->descent);
1918
1919 y0 = WINDOW_HEADER_LINE_HEIGHT (w);
1920 if (y < y0)
1921 {
1922 h = max (h - (y0 - y) + 1, h0);
1923 y = y0 - 1;
1924 }
1925 else
1926 {
1927 y0 = window_text_bottom_y (w) - h0;
1928 if (y > y0)
1929 {
1930 h += y - y0;
1931 y = y0;
1932 }
1933 }
1934
1935 *heightp = h - 1;
1936 return WINDOW_TO_FRAME_PIXEL_Y (w, y);
1937}
1938
1939
1869#endif /* HAVE_WINDOW_SYSTEM */ 1940#endif /* HAVE_WINDOW_SYSTEM */
1870 1941
1871 1942
diff --git a/src/xterm.c b/src/xterm.c
index a68725a463c..c54b96a19b7 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1,6 +1,6 @@
1/* X Communication module for terminals which understand the X protocol. 1/* X Communication module for terminals which understand the X protocol.
2 Copyright (C) 1989, 93, 94, 95, 96, 97, 98, 1999, 2000,01,02,03,04 2 Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
3 Free Software Foundation, Inc. 3 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -7157,7 +7157,7 @@ x_clip_to_row (w, row, area, gc)
7157 window_box (w, area, &window_x, &window_y, &window_width, 0); 7157 window_box (w, area, &window_x, &window_y, &window_width, 0);
7158 7158
7159 clip_rect.x = window_x; 7159 clip_rect.x = window_x;
7160 clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); 7160 clip_rect.y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, row->y));
7161 clip_rect.y = max (clip_rect.y, window_y); 7161 clip_rect.y = max (clip_rect.y, window_y);
7162 clip_rect.width = window_width; 7162 clip_rect.width = window_width;
7163 clip_rect.height = row->visible_height; 7163 clip_rect.height = row->visible_height;
@@ -7187,29 +7187,10 @@ x_draw_hollow_cursor (w, row)
7187 if (cursor_glyph == NULL) 7187 if (cursor_glyph == NULL)
7188 return; 7188 return;
7189 7189
7190 /* Compute the width of the rectangle to draw. If on a stretch 7190 /* Compute frame-relative coordinates for phys cursor. */
7191 glyph, and `x-stretch-block-cursor' is nil, don't draw a
7192 rectangle as wide as the glyph, but use a canonical character
7193 width instead. */
7194 wd = cursor_glyph->pixel_width - 1;
7195 if (cursor_glyph->type == STRETCH_GLYPH
7196 && !x_stretch_cursor_p)
7197 wd = min (FRAME_COLUMN_WIDTH (f), wd);
7198 w->phys_cursor_width = wd;
7199
7200 /* Compute frame-relative coordinates from window-relative
7201 coordinates. */
7202 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); 7191 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
7203 y = WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y); 7192 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
7204 7193 wd = w->phys_cursor_width;
7205 /* Compute the proper height and ascent of the rectangle, based
7206 on the actual glyph. Using the full height of the row looks
7207 bad when there are tall images on that row. */
7208 h = max (min (FRAME_LINE_HEIGHT (f), row->height),
7209 cursor_glyph->ascent + cursor_glyph->descent);
7210 if (h < row->height)
7211 y += row->ascent /* - w->phys_cursor_ascent */ + cursor_glyph->descent - h;
7212 h--;
7213 7194
7214 /* The foreground of cursor_gc is typically the same as the normal 7195 /* The foreground of cursor_gc is typically the same as the normal
7215 background color, which can cause the cursor box to be invisible. */ 7196 background color, which can cause the cursor box to be invisible. */
@@ -7773,11 +7754,32 @@ x_connection_closed (dpy, error_message)
7773 error ("%s", error_msg); 7754 error ("%s", error_msg);
7774} 7755}
7775 7756
7757/* We specifically use it before defining it, so that gcc doesn't inline it,
7758 otherwise gdb doesn't know how to properly put a breakpoint on it. */
7759static void x_error_quitter (Display *display, XErrorEvent *error);
7760
7761/* This is the first-level handler for X protocol errors.
7762 It calls x_error_quitter or x_error_catcher. */
7763
7764static int
7765x_error_handler (display, error)
7766 Display *display;
7767 XErrorEvent *error;
7768{
7769 if (! NILP (x_error_message_string))
7770 x_error_catcher (display, error);
7771 else
7772 x_error_quitter (display, error);
7773 return 0;
7774}
7776 7775
7777/* This is the usual handler for X protocol errors. 7776/* This is the usual handler for X protocol errors.
7778 It kills all frames on the display that we got the error for. 7777 It kills all frames on the display that we got the error for.
7779 If that was the only one, it prints an error message and kills Emacs. */ 7778 If that was the only one, it prints an error message and kills Emacs. */
7780 7779
7780/* It is after x_error_handler so that it won't get inlined in
7781 x_error_handler. */
7782
7781static void 7783static void
7782x_error_quitter (display, error) 7784x_error_quitter (display, error)
7783 Display *display; 7785 Display *display;
@@ -7795,21 +7797,6 @@ x_error_quitter (display, error)
7795} 7797}
7796 7798
7797 7799
7798/* This is the first-level handler for X protocol errors.
7799 It calls x_error_quitter or x_error_catcher. */
7800
7801static int
7802x_error_handler (display, error)
7803 Display *display;
7804 XErrorEvent *error;
7805{
7806 if (! NILP (x_error_message_string))
7807 x_error_catcher (display, error);
7808 else
7809 x_error_quitter (display, error);
7810 return 0;
7811}
7812
7813/* This is the handler for X IO errors, always. 7800/* This is the handler for X IO errors, always.
7814 It kills all frames on the display that we lost touch with. 7801 It kills all frames on the display that we lost touch with.
7815 If that was the only one, it prints an error message and kills Emacs. */ 7802 If that was the only one, it prints an error message and kills Emacs. */