diff options
| author | Joakim Verona | 2011-11-22 15:46:22 +0100 |
|---|---|---|
| committer | Joakim Verona | 2011-11-22 15:46:22 +0100 |
| commit | a9c1e05adddf6011c61c0df582c5f2ed423f35c8 (patch) | |
| tree | 489fac119296416ba2f3530fd3bcb70efbbbdaa6 /src | |
| parent | 40bb789236e486a3f36eefb2840c293369ce2af3 (diff) | |
| parent | b5afc20930c91159a1cbf629bcaa7e251653dc74 (diff) | |
| download | emacs-a9c1e05adddf6011c61c0df582c5f2ed423f35c8.tar.gz emacs-a9c1e05adddf6011c61c0df582c5f2ed423f35c8.zip | |
upstream
Diffstat (limited to 'src')
70 files changed, 523 insertions, 374 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e1854d7ffcd..a0f83560603 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,115 @@ | |||
| 1 | 2011-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * process.c (wait_reading_process_output): Fix asynchrounous | ||
| 4 | GnuTLS socket handling on some versions of the GnuTLS library. | ||
| 5 | (wait_reading_process_output): Add comment and URL. | ||
| 6 | |||
| 7 | 2011-11-21 Jan Djärv <jan.h.d@swipnet.se> | ||
| 8 | |||
| 9 | * xterm.c (x_clear_frame): Reinstate the XClearWindow call. | ||
| 10 | |||
| 11 | 2011-11-21 Chong Yidong <cyd@gnu.org> | ||
| 12 | |||
| 13 | * window.c (Fnext_window, Fprevious_window): Doc fix. | ||
| 14 | |||
| 15 | 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 16 | |||
| 17 | * window.c (get_phys_cursor_glyph): Fix Lisp_Object/int mixup. | ||
| 18 | |||
| 19 | 2011-11-20 Juanma Barranquero <lekktu@gmail.com> | ||
| 20 | |||
| 21 | * nsfont.m (syms_of_nsfont) <ns-reg-to-script>: Fix typo. | ||
| 22 | |||
| 23 | 2011-11-20 Martin Rudalics <rudalics@gmx.at> | ||
| 24 | |||
| 25 | * window.c (Fset_window_combination_limit): Rename argument | ||
| 26 | STATUS to LIMIT. | ||
| 27 | (Vwindow_combination_limit): Remove "status" from doc-string. | ||
| 28 | |||
| 29 | 2011-11-20 Andreas Schwab <schwab@linux-m68k.org> | ||
| 30 | |||
| 31 | * m/ibms390.h: Remove. | ||
| 32 | * m/ibms390x.h: Don't include "ibms390.h". | ||
| 33 | |||
| 34 | 2011-11-20 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 35 | |||
| 36 | * fileio.c (Finsert_file_contents): Add missing gcpro1 variable. | ||
| 37 | Suggested by Dmitry Antipov <dmantipov@yandex.ru>. | ||
| 38 | |||
| 39 | 2011-11-20 Juanma Barranquero <lekktu@gmail.com> | ||
| 40 | |||
| 41 | * casetab.c (Fset_case_table): | ||
| 42 | * charset.c (Fcharset_after): Fix typos. | ||
| 43 | |||
| 44 | 2011-11-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 45 | |||
| 46 | Standardize on VIRT_ADDR_VARIES behavior (Bug#10042). | ||
| 47 | Otherwise, valgrind does not work on some platforms. | ||
| 48 | Problem reported by Andreas Schwab in | ||
| 49 | <http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00081.html>. | ||
| 50 | * puresize.h (pure, PURE_P): Always behave as if VIRT_ADDR_VARIES | ||
| 51 | is set, removing the need for VIRT_ADDRESS_VARIES. | ||
| 52 | (PURE_P): Use a more-efficient implementation that needs just one | ||
| 53 | comparison, not two: on x86-64 with GCC 4.6.2, this cut down the | ||
| 54 | number of instructions from 6 (xorl, cmpq, jge, xorl, cmpq, setge) | ||
| 55 | to 4 (xorl, subq, cmpq, setbe). | ||
| 56 | * alloc.c (pure): Always extern now, since that's the | ||
| 57 | VIRT_ADDR_VARIES behavior. | ||
| 58 | (PURE_POINTER_P): Use a single comparison, not two, for | ||
| 59 | consistency with the new puresize.h. | ||
| 60 | * lisp.h (PNTR_COMPARISON_TYPE): Remove; no longer needed. | ||
| 61 | * m/ibms390.h, m/intel386.h, m/template.h, s/cygwin.h, s/hpux10-20.h: | ||
| 62 | Remove VIRT_ADDR_VARIES no longer needed. | ||
| 63 | |||
| 64 | 2011-11-19 Eli Zaretskii <eliz@gnu.org> | ||
| 65 | |||
| 66 | * xdisp.c (x_write_glyphs, draw_phys_cursor_glyph) | ||
| 67 | (erase_phys_cursor, update_window_cursor, show_mouse_face) | ||
| 68 | (cursor_in_mouse_face_p): If the cursor position is out of bounds, | ||
| 69 | behave as if the cursor position were at the window margin. | ||
| 70 | |||
| 71 | * window.c (get_phys_cursor_glyph): If the window is hscrolled, | ||
| 72 | and the cursor position is out of bounds, behave as if the cursor | ||
| 73 | position were at the window margin. (Bug#10075) | ||
| 74 | |||
| 75 | 2011-11-18 Chong Yidong <cyd@gnu.org> | ||
| 76 | |||
| 77 | * window.c (Fwindow_combination_limit): Make first argument | ||
| 78 | non-optional, since it is meaningless for live windows like the | ||
| 79 | selected window. | ||
| 80 | |||
| 81 | 2011-11-18 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 82 | |||
| 83 | * keymap.c (Fwhere_is_internal): Add missing RETURN_UNGCPROs. | ||
| 84 | |||
| 85 | 2011-11-18 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 86 | |||
| 87 | * intervals.c: Fix grafting over the whole buffer (bug#10071). | ||
| 88 | (graft_intervals_into_buffer): Simplify. | ||
| 89 | |||
| 90 | 2011-11-18 Eli Zaretskii <eliz@gnu.org> | ||
| 91 | |||
| 92 | * dispnew.c (swap_glyph_pointers): Swap the used[] arrays and the | ||
| 93 | hash values of the two rows. | ||
| 94 | (copy_row_except_pointers): Preserve the used[] arrays and the | ||
| 95 | hash values of the two rows. (Bug#10035) | ||
| 96 | (add_row_entry): Add xassert to verify that ROW's hash code is valid. | ||
| 97 | |||
| 98 | * xdisp.c (row_hash): New function, body extracted from | ||
| 99 | compute_line_metrics. | ||
| 100 | (compute_line_metrics): Call row_hash, instead of computing the | ||
| 101 | hash code inline. | ||
| 102 | |||
| 103 | * dispnew.c (verify_row_hash): Call row_hash for computing the | ||
| 104 | hash code of a row, instead of duplicating code from xdisp.c. | ||
| 105 | |||
| 106 | * dispextern.h (row_hash): Add prototype. | ||
| 107 | |||
| 108 | 2011-11-18 Tassilo Horn <tassilo@member.fsf.org> | ||
| 109 | |||
| 110 | * frame.c (delete_frame): Don't delete the terminal when the last | ||
| 111 | X frame is closed if emacs is built with GTK toolkit. | ||
| 112 | |||
| 1 | 2011-11-17 Juanma Barranquero <lekktu@gmail.com> | 113 | 2011-11-17 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 114 | ||
| 3 | * window.c (syms_of_window) <window-combination-resize>: Fix typo. | 115 | * window.c (syms_of_window) <window-combination-resize>: Fix typo. |
| @@ -371,7 +483,7 @@ | |||
| 371 | 483 | ||
| 372 | Fix the `xbytecode' command. | 484 | Fix the `xbytecode' command. |
| 373 | * .gdbinit (xprintbytestr): New command. | 485 | * .gdbinit (xprintbytestr): New command. |
| 374 | (xwhichsymbols): Renamed from `which'; all callers changed. | 486 | (xwhichsymbols): Rename from `which'; all callers changed. |
| 375 | (xbytecode): Print the byte-code string as well. | 487 | (xbytecode): Print the byte-code string as well. |
| 376 | 488 | ||
| 377 | 2011-10-29 Kim Storm <storm@cua.dk> | 489 | 2011-10-29 Kim Storm <storm@cua.dk> |
diff --git a/src/ChangeLog.1 b/src/ChangeLog.1 index efe77648458..7fef45f36da 100644 --- a/src/ChangeLog.1 +++ b/src/ChangeLog.1 | |||
| @@ -2237,7 +2237,7 @@ | |||
| 2237 | 2237 | ||
| 2238 | * data.c (Fset): | 2238 | * data.c (Fset): |
| 2239 | If Vautoload_queue non-nil, record function and old definition | 2239 | If Vautoload_queue non-nil, record function and old definition |
| 2240 | by consing onto Vautoload_qeueue. | 2240 | by consing onto Vautoload_queue. |
| 2241 | 2241 | ||
| 2242 | * fns.c (Fprovide): | 2242 | * fns.c (Fprovide): |
| 2243 | If Vautoload_queue is non-nil, record old value of Vfeatures. | 2243 | If Vautoload_queue is non-nil, record old value of Vfeatures. |
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10 index 181b11b5a2b..99ab02577d5 100644 --- a/src/ChangeLog.10 +++ b/src/ChangeLog.10 | |||
| @@ -6387,7 +6387,7 @@ | |||
| 6387 | 2005-11-20 Nick Roberts <nickrob@snap.net.nz> | 6387 | 2005-11-20 Nick Roberts <nickrob@snap.net.nz> |
| 6388 | 6388 | ||
| 6389 | * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that | 6389 | * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that |
| 6390 | this type is recognised when debugging. | 6390 | this type is recognized when debugging. |
| 6391 | 6391 | ||
| 6392 | 2005-11-19 Andreas Schwab <schwab@suse.de> | 6392 | 2005-11-19 Andreas Schwab <schwab@suse.de> |
| 6393 | 6393 | ||
| @@ -13398,7 +13398,7 @@ | |||
| 13398 | 2004-07-04 John Paul Wallington <jpw@gnu.org> | 13398 | 2004-07-04 John Paul Wallington <jpw@gnu.org> |
| 13399 | 13399 | ||
| 13400 | * fileio.c (read_file_name_completion_ignore_case): New variable. | 13400 | * fileio.c (read_file_name_completion_ignore_case): New variable. |
| 13401 | (syms_of_fileio): Declare and initialise it. | 13401 | (syms_of_fileio): Declare and initialize it. |
| 13402 | (Fread_file_name): Bind `completion-ignore-case' to respect it. | 13402 | (Fread_file_name): Bind `completion-ignore-case' to respect it. |
| 13403 | 13403 | ||
| 13404 | 2004-07-03 Eli Zaretskii <eliz@gnu.org> | 13404 | 2004-07-03 Eli Zaretskii <eliz@gnu.org> |
| @@ -18755,7 +18755,7 @@ | |||
| 18755 | 18755 | ||
| 18756 | 2003-05-21 Dave Love <fx@gnu.org> | 18756 | 2003-05-21 Dave Love <fx@gnu.org> |
| 18757 | 18757 | ||
| 18758 | [Merged from unicode branch.] | 18758 | [Merged from Unicode branch.] |
| 18759 | 18759 | ||
| 18760 | * xfns.c (x_window, x_window): Use use_xim. | 18760 | * xfns.c (x_window, x_window): Use use_xim. |
| 18761 | 18761 | ||
diff --git a/src/ChangeLog.11 b/src/ChangeLog.11 index 73ac5fd4e00..07d4f4ec116 100644 --- a/src/ChangeLog.11 +++ b/src/ChangeLog.11 | |||
| @@ -4839,7 +4839,7 @@ | |||
| 4839 | 4839 | ||
| 4840 | 2010-08-13 Jason Rumney <jasonr@gnu.org> | 4840 | 2010-08-13 Jason Rumney <jasonr@gnu.org> |
| 4841 | 4841 | ||
| 4842 | * w32menu.c (simple_dialog_show): Use unicode message box if available. | 4842 | * w32menu.c (simple_dialog_show): Use Unicode message box if available. |
| 4843 | (MessageBoxW_Proc): New function typedef. | 4843 | (MessageBoxW_Proc): New function typedef. |
| 4844 | (unicode-message-box): New function pointer. | 4844 | (unicode-message-box): New function pointer. |
| 4845 | (globals_of_w32menu): Import it from user32.dll. (Bug#5629) | 4845 | (globals_of_w32menu): Import it from user32.dll. (Bug#5629) |
| @@ -5896,7 +5896,7 @@ | |||
| 5896 | * eval.c (Feval, Ffuncall): Use the new names. | 5896 | * eval.c (Feval, Ffuncall): Use the new names. |
| 5897 | 5897 | ||
| 5898 | * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED. | 5898 | * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED. |
| 5899 | (DEFUN): Add braces around the union initialisation and use ## to | 5899 | (DEFUN): Add braces around the union initialization and use ## to |
| 5900 | specify the right union alternative and avoid a cast. | 5900 | specify the right union alternative and avoid a cast. |
| 5901 | 5901 | ||
| 5902 | 2010-07-18 Juanma Barranquero <lekktu@gmail.com> | 5902 | 2010-07-18 Juanma Barranquero <lekktu@gmail.com> |
| @@ -6604,9 +6604,9 @@ | |||
| 6604 | * keyboard.c (input_available_signal): Declare. | 6604 | * keyboard.c (input_available_signal): Declare. |
| 6605 | (kbd_buffer_nr_stored): New function. | 6605 | (kbd_buffer_nr_stored): New function. |
| 6606 | (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns | 6606 | (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns |
| 6607 | more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571). | 6607 | more than KBD_BUFFER_SIZE/2, stop reading input (Bug#6571). |
| 6608 | (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored | 6608 | (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored |
| 6609 | returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571). | 6609 | returns less than KBD_BUFFER_SIZE/4, resume reading input (Bug#6571). |
| 6610 | (tty_read_avail_input): If input is on hold, return. | 6610 | (tty_read_avail_input): If input is on hold, return. |
| 6611 | Don't read more that free slots in kbd_buffer (Bug#6571). | 6611 | Don't read more that free slots in kbd_buffer (Bug#6571). |
| 6612 | 6612 | ||
| @@ -7199,7 +7199,7 @@ | |||
| 7199 | 7199 | ||
| 7200 | 2010-06-27 Chong Yidong <cyd@stupidchicken.com> | 7200 | 2010-06-27 Chong Yidong <cyd@stupidchicken.com> |
| 7201 | 7201 | ||
| 7202 | * xfns.c (Fx_create_frame): Don't consult X resouces when setting | 7202 | * xfns.c (Fx_create_frame): Don't consult X resources when setting |
| 7203 | menu-bar-lines and tool-bar-lines. Use menu-bar-mode and | 7203 | menu-bar-lines and tool-bar-lines. Use menu-bar-mode and |
| 7204 | tool-bar-mode, which are now set using these X resources at | 7204 | tool-bar-mode, which are now set using these X resources at |
| 7205 | startup, to determine the defaults (Bug#2249). | 7205 | startup, to determine the defaults (Bug#2249). |
| @@ -7683,7 +7683,7 @@ | |||
| 7683 | 7683 | ||
| 7684 | 2010-05-20 Juri Linkov <juri@jurta.org> | 7684 | 2010-05-20 Juri Linkov <juri@jurta.org> |
| 7685 | 7685 | ||
| 7686 | * fileio.c (Fdelete_file): Change interative spec to use | 7686 | * fileio.c (Fdelete_file): Change interactive spec to use |
| 7687 | `read-file-name' like in `find-file-read-args' where the default | 7687 | `read-file-name' like in `find-file-read-args' where the default |
| 7688 | value is `default-directory' instead of `buffer-file-name'. | 7688 | value is `default-directory' instead of `buffer-file-name'. |
| 7689 | http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00533.html | 7689 | http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00533.html |
| @@ -8991,8 +8991,8 @@ | |||
| 8991 | 2010-04-13 Jan Djärv <jan.h.d@swipnet.se> | 8991 | 2010-04-13 Jan Djärv <jan.h.d@swipnet.se> |
| 8992 | 8992 | ||
| 8993 | * gtkutil.c (xg_set_geometry): Set geometry for PPosition also. | 8993 | * gtkutil.c (xg_set_geometry): Set geometry for PPosition also. |
| 8994 | (x_wm_set_size_hint): Dont set position flags, gtk_window_parse_geometry | 8994 | (x_wm_set_size_hint): Don't set position flags, |
| 8995 | does that. | 8995 | gtk_window_parse_geometry does that. |
| 8996 | 8996 | ||
| 8997 | * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width | 8997 | * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width |
| 8998 | to zero. | 8998 | to zero. |
| @@ -9266,7 +9266,7 @@ | |||
| 9266 | 9266 | ||
| 9267 | Get rid of the direct_output optimizations. | 9267 | Get rid of the direct_output optimizations. |
| 9268 | * keyboard.c (nonundocount): Remove extern declaration. | 9268 | * keyboard.c (nonundocount): Remove extern declaration. |
| 9269 | (command_loop_1): Remove brittle optimisation for cheap and | 9269 | (command_loop_1): Remove brittle optimization for cheap and |
| 9270 | common operations. | 9270 | common operations. |
| 9271 | * xdisp.c (redisplay_internal): Don't bother checking | 9271 | * xdisp.c (redisplay_internal): Don't bother checking |
| 9272 | redisplay_performed_directly_p any more. | 9272 | redisplay_performed_directly_p any more. |
| @@ -9864,8 +9864,8 @@ | |||
| 9864 | 9864 | ||
| 9865 | 2010-01-27 Jason Rumney <jasonr@gnu.org> | 9865 | 2010-01-27 Jason Rumney <jasonr@gnu.org> |
| 9866 | 9866 | ||
| 9867 | * w32inevt.c (w32_kbd_patch_key): Save the unicode character. | 9867 | * w32inevt.c (w32_kbd_patch_key): Save the Unicode character. |
| 9868 | (key_event): Use unicode for characters 128 and higher (Bug#4567). | 9868 | (key_event): Use Unicode for characters 128 and higher (Bug#4567). |
| 9869 | 9869 | ||
| 9870 | 2010-01-27 Kenichi Handa <handa@m17n.org> | 9870 | 2010-01-27 Kenichi Handa <handa@m17n.org> |
| 9871 | 9871 | ||
| @@ -11541,7 +11541,7 @@ | |||
| 11541 | (syms_of_nsfont): Declare it. | 11541 | (syms_of_nsfont): Declare it. |
| 11542 | (ns_registry_to_script): New function. | 11542 | (ns_registry_to_script): New function. |
| 11543 | (ns_get_req_script): Call it. | 11543 | (ns_get_req_script): Call it. |
| 11544 | (ns_findfonts): Don't give up on non-unicode registry. | 11544 | (ns_findfonts): Don't give up on non-Unicode registry. |
| 11545 | 11545 | ||
| 11546 | * font.c (DEFAULT_ENCODING) [HAVE_NS]: Remove special case. | 11546 | * font.c (DEFAULT_ENCODING) [HAVE_NS]: Remove special case. |
| 11547 | 11547 | ||
| @@ -11923,7 +11923,7 @@ | |||
| 11923 | 11923 | ||
| 11924 | * process.c (status_notify): Don't perform redisplay. | 11924 | * process.c (status_notify): Don't perform redisplay. |
| 11925 | (Fdelete_process, list_processes_1, process_send_signal): | 11925 | (Fdelete_process, list_processes_1, process_send_signal): |
| 11926 | Expliticly perform redisplay. | 11926 | Explicitly perform redisplay. |
| 11927 | (wait_reading_process_output): Always check process status, but | 11927 | (wait_reading_process_output): Always check process status, but |
| 11928 | don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930). | 11928 | don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930). |
| 11929 | 11929 | ||
| @@ -12481,7 +12481,7 @@ | |||
| 12481 | 12481 | ||
| 12482 | * dbusbind.c (XD_SYMBOL_TO_DBUS_TYPE): Convert macro into function | 12482 | * dbusbind.c (XD_SYMBOL_TO_DBUS_TYPE): Convert macro into function |
| 12483 | xd_symbol_to_dbus_type. With Solaris 2.11, it was said to compile | 12483 | xd_symbol_to_dbus_type. With Solaris 2.11, it was said to compile |
| 12484 | for hours, when optimzation is enabled. | 12484 | for hours, when optimization is enabled. |
| 12485 | (xd_signature, xd_append_arg, xd_retrieve_arg, xd_initialize) | 12485 | (xd_signature, xd_append_arg, xd_retrieve_arg, xd_initialize) |
| 12486 | (xd_read_message): Make them static. | 12486 | (xd_read_message): Make them static. |
| 12487 | 12487 | ||
| @@ -13149,7 +13149,7 @@ | |||
| 13149 | (ftfont_has_char): Special handling of `ja' and `ko' adstyle. | 13149 | (ftfont_has_char): Special handling of `ja' and `ko' adstyle. |
| 13150 | 13150 | ||
| 13151 | * font.c (font_sort_entites): Change the meaning of the arg | 13151 | * font.c (font_sort_entites): Change the meaning of the arg |
| 13152 | BEST-ONLY. Don't optimize for VEC of lenght 1. | 13152 | BEST-ONLY. Don't optimize for VEC of length 1. |
| 13153 | (font_select_entity): Just return the value of font_sort_entites. | 13153 | (font_select_entity): Just return the value of font_sort_entites. |
| 13154 | 13154 | ||
| 13155 | * xfaces.c (merge_face_vectors): Reflect font properties in | 13155 | * xfaces.c (merge_face_vectors): Reflect font properties in |
| @@ -16072,7 +16072,7 @@ | |||
| 16072 | 2008-09-07 Andreas Schwab <schwab@suse.de> | 16072 | 2008-09-07 Andreas Schwab <schwab@suse.de> |
| 16073 | 16073 | ||
| 16074 | * callproc.c (Fcall_process): Don't hold references to string data | 16074 | * callproc.c (Fcall_process): Don't hold references to string data |
| 16075 | across garbage collection. Move initialisation of new_argv down | 16075 | across garbage collection. Move initialization of new_argv down |
| 16076 | to avoid compiler bug. | 16076 | to avoid compiler bug. |
| 16077 | 16077 | ||
| 16078 | 2008-09-07 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> | 16078 | 2008-09-07 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de> |
| @@ -17147,10 +17147,10 @@ | |||
| 17147 | 17147 | ||
| 17148 | 2008-07-30 Jason Rumney <jasonr@gnu.org> | 17148 | 2008-07-30 Jason Rumney <jasonr@gnu.org> |
| 17149 | 17149 | ||
| 17150 | * w32font.h (struct w32font_info): Use unicode version of textmetrics. | 17150 | * w32font.h (struct w32font_info): Use Unicode version of textmetrics. |
| 17151 | 17151 | ||
| 17152 | * w32font.c (w32font_encode_char): Leave as unicode if in range. | 17152 | * w32font.c (w32font_encode_char): Leave as Unicode if in range. |
| 17153 | (w32font_open_internal): Get unicode version of textmetrics. | 17153 | (w32font_open_internal): Get Unicode version of textmetrics. |
| 17154 | Don't enable or disable glyph indices here. | 17154 | Don't enable or disable glyph indices here. |
| 17155 | (w32font_open): Disable use of glyph indices. | 17155 | (w32font_open): Disable use of glyph indices. |
| 17156 | 17156 | ||
| @@ -19178,7 +19178,7 @@ | |||
| 19178 | 2008-06-10 Jason Rumney <jasonr@gnu.org> | 19178 | 2008-06-10 Jason Rumney <jasonr@gnu.org> |
| 19179 | 19179 | ||
| 19180 | * w32uniscribe.c (add_opentype_font_name_to_list): | 19180 | * w32uniscribe.c (add_opentype_font_name_to_list): |
| 19181 | Skip non unicode fonts. | 19181 | Skip non Unicode fonts. |
| 19182 | 19182 | ||
| 19183 | 2008-06-10 Chong Yidong <cyd@stupidchicken.com> | 19183 | 2008-06-10 Chong Yidong <cyd@stupidchicken.com> |
| 19184 | 19184 | ||
| @@ -19248,7 +19248,7 @@ | |||
| 19248 | * w32menu.c (Fx_popup_menu): Unwind protect while building menu. | 19248 | * w32menu.c (Fx_popup_menu): Unwind protect while building menu. |
| 19249 | (parse_single_submenu): Remove. | 19249 | (parse_single_submenu): Remove. |
| 19250 | (digest_single_submenu): Remove. | 19250 | (digest_single_submenu): Remove. |
| 19251 | (syms_of_w32menu): Don't initialise variables that have moved | 19251 | (syms_of_w32menu): Don't initialize variables that have moved |
| 19252 | to menu.c. | 19252 | to menu.c. |
| 19253 | (set_frame_menubar): Sync with version in xmenu.c. | 19253 | (set_frame_menubar): Sync with version in xmenu.c. |
| 19254 | (w32_menu_show): Sync with xmenu_show in xmenu.c. | 19254 | (w32_menu_show): Sync with xmenu_show in xmenu.c. |
| @@ -19647,7 +19647,7 @@ | |||
| 19647 | `raster' specified. | 19647 | `raster' specified. |
| 19648 | (add_font_entity_to_list): Allow non-opentype truetype fonts back | 19648 | (add_font_entity_to_list): Allow non-opentype truetype fonts back |
| 19649 | in the uniscribe backend, but disallow any font that has no | 19649 | in the uniscribe backend, but disallow any font that has no |
| 19650 | unicode subrange support. | 19650 | Unicode subrange support. |
| 19651 | 19651 | ||
| 19652 | 2008-05-29 Juanma Barranquero <lekktu@gmail.com> | 19652 | 2008-05-29 Juanma Barranquero <lekktu@gmail.com> |
| 19653 | 19653 | ||
| @@ -21290,7 +21290,7 @@ | |||
| 21290 | (CACHE_BLOCKSIZE): New constants. | 21290 | (CACHE_BLOCKSIZE): New constants. |
| 21291 | 21291 | ||
| 21292 | * w32font.c (Qja, Qko, Qzh): New symbols. | 21292 | * w32font.c (Qja, Qko, Qzh): New symbols. |
| 21293 | (syms_of_w32font): Initialise them. | 21293 | (syms_of_w32font): Initialize them. |
| 21294 | (font_matches_spec): Use them to filter by language. | 21294 | (font_matches_spec): Use them to filter by language. |
| 21295 | (recompute_cached_metrics): Remove function. | 21295 | (recompute_cached_metrics): Remove function. |
| 21296 | (compute_metrics, clear_cached_metrics): New functions. | 21296 | (compute_metrics, clear_cached_metrics): New functions. |
| @@ -21813,8 +21813,8 @@ | |||
| 21813 | 2008-03-06 Jason Rumney <jasonr@gnu.org> | 21813 | 2008-03-06 Jason Rumney <jasonr@gnu.org> |
| 21814 | 21814 | ||
| 21815 | * w32font.c (w32_registry): Take font_type argument. Use ANSI | 21815 | * w32font.c (w32_registry): Take font_type argument. Use ANSI |
| 21816 | when charset not specified. Only translate ANSI to unicode when | 21816 | when charset not specified. Only translate ANSI to Unicode when |
| 21817 | font_type is truetype. | 21817 | font_type is TrueType. |
| 21818 | (w32font_coverage_ok): New function. | 21818 | (w32font_coverage_ok): New function. |
| 21819 | (add_font_entity_to_list): Use it to filter unsuitable fonts. | 21819 | (add_font_entity_to_list): Use it to filter unsuitable fonts. |
| 21820 | 21820 | ||
| @@ -23463,10 +23463,10 @@ | |||
| 23463 | (w32font_list, w32font_match): Use it. | 23463 | (w32font_list, w32font_match): Use it. |
| 23464 | (w32font_open): Don't populate subranges. | 23464 | (w32font_open): Don't populate subranges. |
| 23465 | (w32font_has_char): Use script Lisp symbols, not subrange bitmask. | 23465 | (w32font_has_char): Use script Lisp symbols, not subrange bitmask. |
| 23466 | (w32font_encode_char): Always return unicode code-point as-is. | 23466 | (w32font_encode_char): Always return Unicode code-point as-is. |
| 23467 | (w32font_text_extents): Supply a transformation matrix to | 23467 | (w32font_text_extents): Supply a transformation matrix to |
| 23468 | GetGlyphOutline. Never look up by glyph index. Avoid looping | 23468 | GetGlyphOutline. Never look up by glyph index. Avoid looping |
| 23469 | twice. Use unicode version of GetTexExtentPoint32 instead of | 23469 | twice. Use Unicode version of GetTexExtentPoint32 instead of |
| 23470 | glyph index version. | 23470 | glyph index version. |
| 23471 | (set_fonts_frame): Remove. | 23471 | (set_fonts_frame): Remove. |
| 23472 | (w32_enumfont_pattern_entity): Add frame parameter, use it to | 23472 | (w32_enumfont_pattern_entity): Add frame parameter, use it to |
| @@ -25081,7 +25081,7 @@ | |||
| 25081 | * keymap.c (describe_vector): Handle default value of a char table. | 25081 | * keymap.c (describe_vector): Handle default value of a char table. |
| 25082 | 25082 | ||
| 25083 | * fontset.c (fontset_face): Handle fallback fonts correctly. | 25083 | * fontset.c (fontset_face): Handle fallback fonts correctly. |
| 25084 | (Ffontset_info): Return infomation about fallback fonts. | 25084 | (Ffontset_info): Return information about fallback fonts. |
| 25085 | 25085 | ||
| 25086 | 2008-02-01 Kenichi Handa <handa@m17n.org> | 25086 | 2008-02-01 Kenichi Handa <handa@m17n.org> |
| 25087 | 25087 | ||
| @@ -25425,16 +25425,16 @@ | |||
| 25425 | (pfnGetFontUnicodeRanges): New dynamically loaded function. | 25425 | (pfnGetFontUnicodeRanges): New dynamically loaded function. |
| 25426 | (w32_initialize): Try to load it. | 25426 | (w32_initialize): Try to load it. |
| 25427 | (x_get_font_repertory): Use it if available. | 25427 | (x_get_font_repertory): Use it if available. |
| 25428 | (w32_encode_char): Add shortcut for unicode output. | 25428 | (w32_encode_char): Add shortcut for Unicode output. |
| 25429 | 25429 | ||
| 25430 | * w32fns.c (w32_load_system_font): Default charset to -1. | 25430 | * w32fns.c (w32_load_system_font): Default charset to -1. |
| 25431 | (x_to_w32_charset): Match all fonts for unicode. | 25431 | (x_to_w32_charset): Match all fonts for Unicode. |
| 25432 | (w32_to_x_charset): New parameter matching. Don't return partial | 25432 | (w32_to_x_charset): New parameter matching. Don't return partial |
| 25433 | or wildcard charsets. | 25433 | or wildcard charsets. |
| 25434 | (w32_to_all_x_charsets): Don't return partial or wildcard charsets. | 25434 | (w32_to_all_x_charsets): Don't return partial or wildcard charsets. |
| 25435 | (w32_codepage_for_font): Return CP_UNICODE for unicode. | 25435 | (w32_codepage_for_font): Return CP_UNICODE for Unicode. |
| 25436 | (w32_to_x_font): Match charset to real charset. | 25436 | (w32_to_x_font): Match charset to real charset. |
| 25437 | (enum_font_cb2): Always list unicode versions. | 25437 | (enum_font_cb2): Always list Unicode versions. |
| 25438 | 25438 | ||
| 25439 | * makefile.w32-in (temacs): Increase EMHEAP. | 25439 | * makefile.w32-in (temacs): Increase EMHEAP. |
| 25440 | 25440 | ||
| @@ -25458,7 +25458,7 @@ | |||
| 25458 | 25458 | ||
| 25459 | * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version | 25459 | * w32fns.c (Fx_create_frame, x_create_tip_frame): Use new version |
| 25460 | of x_new_fontset. | 25460 | of x_new_fontset. |
| 25461 | (w32_load_system_font): Initialize charset as unicode. | 25461 | (w32_load_system_font): Initialize charset as Unicode. |
| 25462 | font_info.encoding becomes encoding_type. | 25462 | font_info.encoding becomes encoding_type. |
| 25463 | (w32_to_x_font): Use decode_coding_c_string in place of decode_coding. | 25463 | (w32_to_x_font): Use decode_coding_c_string in place of decode_coding. |
| 25464 | (x_to_w32_font): Use encode_coding_object in place of encode_coding. | 25464 | (x_to_w32_font): Use encode_coding_object in place of encode_coding. |
| @@ -27685,7 +27685,7 @@ | |||
| 27685 | * xterm.c (handle_one_xevent): Revert to counting chars not bytes. | 27685 | * xterm.c (handle_one_xevent): Revert to counting chars not bytes. |
| 27686 | 27686 | ||
| 27687 | * w32term.c (w32_read_socket) <WM_CHAR>: Decode characters outside | 27687 | * w32term.c (w32_read_socket) <WM_CHAR>: Decode characters outside |
| 27688 | the unicode range available in MULE by locale-coding-system. | 27688 | the Unicode range available in MULE by locale-coding-system. |
| 27689 | Improve dbcs lead byte detection. Set event timestamp and modifiers | 27689 | Improve dbcs lead byte detection. Set event timestamp and modifiers |
| 27690 | earlier. | 27690 | earlier. |
| 27691 | 27691 | ||
| @@ -29136,7 +29136,7 @@ | |||
| 29136 | 29136 | ||
| 29137 | * lisp.h (defvar_per_buffer, DEFVAR_PER_BUFFER): | 29137 | * lisp.h (defvar_per_buffer, DEFVAR_PER_BUFFER): |
| 29138 | * lread.c (defvar_per_buffer): | 29138 | * lread.c (defvar_per_buffer): |
| 29139 | * abbrev.c (syms_of_abbrev) <local-abbrev-tabl>: Move to buffer.c. | 29139 | * abbrev.c (syms_of_abbrev) <local-abbrev-table>: Move to buffer.c. |
| 29140 | 29140 | ||
| 29141 | * window.c (candidate_window_p): Only consider as visible frames that | 29141 | * window.c (candidate_window_p): Only consider as visible frames that |
| 29142 | are on the same terminal. | 29142 | are on the same terminal. |
| @@ -29651,7 +29651,7 @@ | |||
| 29651 | 29651 | ||
| 29652 | * callproc.c (child_setup, getenv_internal): Use the | 29652 | * callproc.c (child_setup, getenv_internal): Use the |
| 29653 | display-environment-variable and term-environment-variable frame params. | 29653 | display-environment-variable and term-environment-variable frame params. |
| 29654 | (set_initial_environment): Initialise Vprocess_environment. | 29654 | (set_initial_environment): Initialize Vprocess_environment. |
| 29655 | 29655 | ||
| 29656 | * config.in: Disable multi-keyboard support on a mac. | 29656 | * config.in: Disable multi-keyboard support on a mac. |
| 29657 | 29657 | ||
| @@ -30873,7 +30873,7 @@ | |||
| 30873 | 2007-06-17 Jason Rumney <jasonr@gnu.org> | 30873 | 2007-06-17 Jason Rumney <jasonr@gnu.org> |
| 30874 | 30874 | ||
| 30875 | * w32menu.c (add_menu_item): Don't use multibyte string functions on | 30875 | * w32menu.c (add_menu_item): Don't use multibyte string functions on |
| 30876 | unicode strings. | 30876 | Unicode strings. |
| 30877 | 30877 | ||
| 30878 | 2007-06-16 Juanma Barranquero <lekktu@gmail.com> | 30878 | 2007-06-16 Juanma Barranquero <lekktu@gmail.com> |
| 30879 | 30879 | ||
| @@ -30892,7 +30892,7 @@ | |||
| 30892 | 2007-06-14 Jason Rumney <jasonr@gnu.org> | 30892 | 2007-06-14 Jason Rumney <jasonr@gnu.org> |
| 30893 | 30893 | ||
| 30894 | * w32.c (get_process_times_fn): New function pointer. | 30894 | * w32.c (get_process_times_fn): New function pointer. |
| 30895 | (globals_of_w32): Intialize it if present in kernel32.dll. | 30895 | (globals_of_w32): Initialize it if present in kernel32.dll. |
| 30896 | (w32_get_internal_run_time): New function. | 30896 | (w32_get_internal_run_time): New function. |
| 30897 | 30897 | ||
| 30898 | * editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it. | 30898 | * editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it. |
| @@ -31298,7 +31298,7 @@ | |||
| 31298 | (term_mouse_highlight, term_mouse_movement, term_mouse_position) | 31298 | (term_mouse_highlight, term_mouse_movement, term_mouse_position) |
| 31299 | (term_mouse_click, handle_one_term_event, Fterm_open_connection) | 31299 | (term_mouse_click, handle_one_term_event, Fterm_open_connection) |
| 31300 | (Fterm_close_connection): New functions. | 31300 | (Fterm_close_connection): New functions. |
| 31301 | (term_init): Initialise mouse_face_window. | 31301 | (term_init): Initialize mouse_face_window. |
| 31302 | 31302 | ||
| 31303 | 2007-05-19 Chong Yidong <cyd@stupidchicken.com> | 31303 | 2007-05-19 Chong Yidong <cyd@stupidchicken.com> |
| 31304 | 31304 | ||
diff --git a/src/ChangeLog.2 b/src/ChangeLog.2 index 05e448c043c..62e3de22b09 100644 --- a/src/ChangeLog.2 +++ b/src/ChangeLog.2 | |||
| @@ -1152,7 +1152,7 @@ | |||
| 1152 | 1152 | ||
| 1153 | 1987-07-29 Richard Mlynarik (mly@prep) | 1153 | 1987-07-29 Richard Mlynarik (mly@prep) |
| 1154 | 1154 | ||
| 1155 | * lread.c (init_read): Initialise load_in_progress. | 1155 | * lread.c (init_read): Initialize load_in_progress. |
| 1156 | 1156 | ||
| 1157 | 1987-07-28 Richard M. Stallman (rms@prep) | 1157 | 1987-07-28 Richard M. Stallman (rms@prep) |
| 1158 | 1158 | ||
| @@ -2251,7 +2251,7 @@ | |||
| 2251 | 1987-01-16 Richard Mlynarik (mly@prep) | 2251 | 1987-01-16 Richard Mlynarik (mly@prep) |
| 2252 | 2252 | ||
| 2253 | * xfns.c (Fx_set_{background,cursor,mouse}_color): | 2253 | * xfns.c (Fx_set_{background,cursor,mouse}_color): |
| 2254 | Initialise save_color. | 2254 | Initialize save_color. |
| 2255 | 2255 | ||
| 2256 | * fileio.c, search.c, sysdep.c, filelock.c, editfns.c, process.c: | 2256 | * fileio.c, search.c, sysdep.c, filelock.c, editfns.c, process.c: |
| 2257 | Delete/replace unused/conditionalised variables | 2257 | Delete/replace unused/conditionalised variables |
| @@ -3002,7 +3002,7 @@ | |||
| 3002 | 1986-11-18 Richard Mlynarik (mly@prep) | 3002 | 1986-11-18 Richard Mlynarik (mly@prep) |
| 3003 | 3003 | ||
| 3004 | * emacs.c (main): | 3004 | * emacs.c (main): |
| 3005 | Giving `inhibit_x_windows' an initialisation loses; | 3005 | Giving `inhibit_x_windows' an initialization loses; |
| 3006 | do it explicitly. | 3006 | do it explicitly. |
| 3007 | 3007 | ||
| 3008 | * xfns.c (Fx_rubber_band): | 3008 | * xfns.c (Fx_rubber_band): |
| @@ -3291,7 +3291,7 @@ | |||
| 3291 | 1986-11-03 Richard Mlynarik (mly@prep) | 3291 | 1986-11-03 Richard Mlynarik (mly@prep) |
| 3292 | 3292 | ||
| 3293 | * xterm.c (stufflines): | 3293 | * xterm.c (stufflines): |
| 3294 | Initialise signal mask. | 3294 | Initialize signal mask. |
| 3295 | 3295 | ||
| 3296 | * xterm.h: | 3296 | * xterm.h: |
| 3297 | Add definition of sigmask | 3297 | Add definition of sigmask |
| @@ -3346,7 +3346,7 @@ | |||
| 3346 | New function. | 3346 | New function. |
| 3347 | 3347 | ||
| 3348 | * window.c (Fset_window_hscroll): | 3348 | * window.c (Fset_window_hscroll): |
| 3349 | Don't inhibit redisplay optimisations if hscroll is same. | 3349 | Don't inhibit redisplay optimizations if hscroll is same. |
| 3350 | 3350 | ||
| 3351 | * ymakefile: | 3351 | * ymakefile: |
| 3352 | rm ../etc/DOC to avoid make-docfile overwriting any files which | 3352 | rm ../etc/DOC to avoid make-docfile overwriting any files which |
| @@ -3358,7 +3358,7 @@ | |||
| 3358 | VMS changes from Sasaki | 3358 | VMS changes from Sasaki |
| 3359 | 3359 | ||
| 3360 | * termcap.c (tgetent): | 3360 | * termcap.c (tgetent): |
| 3361 | Make sure `indirect' initialised. | 3361 | Make sure `indirect' initialized. |
| 3362 | 3362 | ||
| 3363 | * xfns.c (grey_p and callers): | 3363 | * xfns.c (grey_p and callers): |
| 3364 | New function to compensate for ugly chauvinistic American | 3364 | New function to compensate for ugly chauvinistic American |
| @@ -3496,7 +3496,7 @@ | |||
| 3496 | core-dump) | 3496 | core-dump) |
| 3497 | 3497 | ||
| 3498 | Dike out global-minor-modes. This wasn't actually being used by | 3498 | Dike out global-minor-modes. This wasn't actually being used by |
| 3499 | anything (due to a bug) and wasn't even being initialised! | 3499 | anything (due to a bug) and wasn't even being initialized! |
| 3500 | minor-mode-alist does what this thought it was doing. | 3500 | minor-mode-alist does what this thought it was doing. |
| 3501 | 3501 | ||
| 3502 | 1986-10-11 Richard Mlynarik (mly@prep) | 3502 | 1986-10-11 Richard Mlynarik (mly@prep) |
diff --git a/src/ChangeLog.3 b/src/ChangeLog.3 index cdfe63fc59c..cbf867829c7 100644 --- a/src/ChangeLog.3 +++ b/src/ChangeLog.3 | |||
| @@ -6089,7 +6089,7 @@ | |||
| 6089 | shrink below the minimum, this code would only try to delete it if | 6089 | shrink below the minimum, this code would only try to delete it if |
| 6090 | it had a parent. Well, even if the window doesn't have a parent, | 6090 | it had a parent. Well, even if the window doesn't have a parent, |
| 6091 | you want Fdelete_window to signal an error, since you're trying to | 6091 | you want Fdelete_window to signal an error, since you're trying to |
| 6092 | resize one of the undeleteable windows into nothingness. So call | 6092 | resize one of the undeletable windows into nothingness. So call |
| 6093 | Fdelete_window even if the window doesn't have a parent. | 6093 | Fdelete_window even if the window doesn't have a parent. |
| 6094 | 6094 | ||
| 6095 | * window.c (MINSIZE): Add kludge so that the minibuffer is always | 6095 | * window.c (MINSIZE): Add kludge so that the minibuffer is always |
| @@ -9010,7 +9010,7 @@ | |||
| 9010 | * keyboard.c (cmd_error): If an error occurs before somebody has | 9010 | * keyboard.c (cmd_error): If an error occurs before somebody has |
| 9011 | provided a screen to print it on, print it to stderr and exit | 9011 | provided a screen to print it on, print it to stderr and exit |
| 9012 | Emacs. Handle batch-mode errors with the same code. | 9012 | Emacs. Handle batch-mode errors with the same code. |
| 9013 | * lisp.h (Qexternal_debugging_ouput): New extern declaration, for | 9013 | * lisp.h (Qexternal_debugging_output): New extern declaration, for |
| 9014 | use in cmd_error. | 9014 | use in cmd_error. |
| 9015 | 9015 | ||
| 9016 | * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix. | 9016 | * screen.c (Fscreen_pixel_size, Fset_screen_position): Doc fix. |
| @@ -13137,7 +13137,7 @@ | |||
| 13137 | * print.c: Include dispextern.h. | 13137 | * print.c: Include dispextern.h. |
| 13138 | (printchar, strout): Use message_buf. | 13138 | (printchar, strout): Use message_buf. |
| 13139 | 13139 | ||
| 13140 | * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLenght. | 13140 | * sysdep.c (get_screen_size): Don't use MscreenWidth, MscreenLength. |
| 13141 | * term.c: Likewise. | 13141 | * term.c: Likewise. |
| 13142 | 13142 | ||
| 13143 | * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a | 13143 | * scroll.c (CalcIDCosts, CalcIDCosts1, CalcLID): These now take a |
| @@ -13147,7 +13147,7 @@ | |||
| 13147 | (do_scrolling): Use alloca for queue. | 13147 | (do_scrolling): Use alloca for queue. |
| 13148 | 13148 | ||
| 13149 | * dispnew.c (remake_screen_structures): Allocate message_buf. | 13149 | * dispnew.c (remake_screen_structures): Allocate message_buf. |
| 13150 | Don't use MscreenWidth, MscreenLenght. | 13150 | Don't use MscreenWidth, MscreenLength. |
| 13151 | 13151 | ||
| 13152 | * xdisp.c: bf_cur replaced with current_buffer. | 13152 | * xdisp.c: bf_cur replaced with current_buffer. |
| 13153 | Calls to SetBfx deleted. | 13153 | Calls to SetBfx deleted. |
diff --git a/src/ChangeLog.4 b/src/ChangeLog.4 index 208d9c2cdb0..88c9e3dbf71 100644 --- a/src/ChangeLog.4 +++ b/src/ChangeLog.4 | |||
| @@ -3656,7 +3656,7 @@ | |||
| 3656 | 3656 | ||
| 3657 | * m/delta.h (BROKEN_CLOSEDIR): Added because closedir is interruptible. | 3657 | * m/delta.h (BROKEN_CLOSEDIR): Added because closedir is interruptible. |
| 3658 | (HAVE_UNISTD_H): Deleted because configure takes care of it. | 3658 | (HAVE_UNISTD_H): Deleted because configure takes care of it. |
| 3659 | (C_SWITCH_MACHINE): Added optimisation options for gnu cc. | 3659 | (C_SWITCH_MACHINE): Added optimization options for gnu cc. |
| 3660 | 3660 | ||
| 3661 | 1993-12-17 Mike Long (mike.long@analog.com) | 3661 | 1993-12-17 Mike Long (mike.long@analog.com) |
| 3662 | 3662 | ||
| @@ -5007,7 +5007,7 @@ | |||
| 5007 | Change display code to handle the `invisible' text property. | 5007 | Change display code to handle the `invisible' text property. |
| 5008 | * dispnew.c (direct_output_for_insert): Fail if character | 5008 | * dispnew.c (direct_output_for_insert): Fail if character |
| 5009 | just inserted has text properties. | 5009 | just inserted has text properties. |
| 5010 | (direct_ouput_forward_char): Fail if moving near invisible chars. | 5010 | (direct_output_forward_char): Fail if moving near invisible chars. |
| 5011 | * indent.c (compute_motion): Compute correctly for invisible text. | 5011 | * indent.c (compute_motion): Compute correctly for invisible text. |
| 5012 | (vmotion): Take care of invisible newlines. | 5012 | (vmotion): Take care of invisible newlines. |
| 5013 | * intervals.c (set_point): Ignore `invisible' property | 5013 | * intervals.c (set_point): Ignore `invisible' property |
diff --git a/src/ChangeLog.5 b/src/ChangeLog.5 index 1f21e9fb99c..ee79917a34d 100644 --- a/src/ChangeLog.5 +++ b/src/ChangeLog.5 | |||
| @@ -3463,7 +3463,7 @@ | |||
| 3463 | 3463 | ||
| 3464 | * lisp.h (running_asynch_code): New global flag. | 3464 | * lisp.h (running_asynch_code): New global flag. |
| 3465 | * emacs.c (running_asynch_code): New global flag. | 3465 | * emacs.c (running_asynch_code): New global flag. |
| 3466 | (main): Initialise it. | 3466 | (main): Initialize it. |
| 3467 | * process.c (read_process_output, exec_sentinel): Set and | 3467 | * process.c (read_process_output, exec_sentinel): Set and |
| 3468 | reset the running_asynch_code global flag and restore match data. | 3468 | reset the running_asynch_code global flag and restore match data. |
| 3469 | 3469 | ||
diff --git a/src/ChangeLog.6 b/src/ChangeLog.6 index 141a570040c..af97d0de7b4 100644 --- a/src/ChangeLog.6 +++ b/src/ChangeLog.6 | |||
| @@ -1182,7 +1182,7 @@ | |||
| 1182 | support in sys_select. | 1182 | support in sys_select. |
| 1183 | 1183 | ||
| 1184 | (term_ntproc): New function. | 1184 | (term_ntproc): New function. |
| 1185 | (init_ntproc): New function to initialise socket support and make | 1185 | (init_ntproc): New function to initialize socket support and make |
| 1186 | initial std handles non-inheritable. Also ensure stdin, stdout | 1186 | initial std handles non-inheritable. Also ensure stdin, stdout |
| 1187 | and stderr have valid handles so that pipes and sockets can't | 1187 | and stderr have valid handles so that pipes and sockets can't |
| 1188 | inadvertently use fd 0, 1, or 2. | 1188 | inadvertently use fd 0, 1, or 2. |
| @@ -1440,7 +1440,7 @@ | |||
| 1440 | Correctly detect when default_directory is absolute. | 1440 | Correctly detect when default_directory is absolute. |
| 1441 | Be strict when looking for MSDOS drive specifier; defer calling | 1441 | Be strict when looking for MSDOS drive specifier; defer calling |
| 1442 | getdefdir. Ignore drive specifier if name now has UNC prefix. | 1442 | getdefdir. Ignore drive specifier if name now has UNC prefix. |
| 1443 | Correctly recognise if name is not absolute when trying simple | 1443 | Correctly recognize if name is not absolute when trying simple |
| 1444 | method to expand; return original string if possible. | 1444 | method to expand; return original string if possible. |
| 1445 | Skip dir sep after ~ or ~user. | 1445 | Skip dir sep after ~ or ~user. |
| 1446 | Use getpwnam instead of HOME for ~user on NT. | 1446 | Use getpwnam instead of HOME for ~user on NT. |
diff --git a/src/ChangeLog.7 b/src/ChangeLog.7 index 73d0d45e9c1..fc97acdeb1e 100644 --- a/src/ChangeLog.7 +++ b/src/ChangeLog.7 | |||
| @@ -5774,7 +5774,7 @@ | |||
| 5774 | 5774 | ||
| 5775 | (w32_initialize): Set input mode. Use w32_msg_worker instead | 5775 | (w32_initialize): Set input mode. Use w32_msg_worker instead |
| 5776 | of windows_msg_worker. Dynamically link proportional scroll bar | 5776 | of windows_msg_worker. Dynamically link proportional scroll bar |
| 5777 | functions and intialize proportional scroll bar variables. | 5777 | functions and initialize proportional scroll bar variables. |
| 5778 | (syms_of_w32term): DEFVAR new variables. | 5778 | (syms_of_w32term): DEFVAR new variables. |
| 5779 | 5779 | ||
| 5780 | * w32term.h (w32_output): New fields menubar_widget, menubar_active, | 5780 | * w32term.h (w32_output): New fields menubar_widget, menubar_active, |
| @@ -10963,7 +10963,7 @@ | |||
| 10963 | 1996-08-28 Morten Welinder <terra@diku.dk> | 10963 | 1996-08-28 Morten Welinder <terra@diku.dk> |
| 10964 | 10964 | ||
| 10965 | * minibuf.c (Vhistory_length, Qhistory_length): New variables. | 10965 | * minibuf.c (Vhistory_length, Qhistory_length): New variables. |
| 10966 | (syms_of_minibuf): Register and initialise these. | 10966 | (syms_of_minibuf): Register and initialize these. |
| 10967 | (read_minibuf): Truncate history list if needed. | 10967 | (read_minibuf): Truncate history list if needed. |
| 10968 | 10968 | ||
| 10969 | 1996-08-28 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> | 10969 | 1996-08-28 Richard Stallman <rms@psilocin.gnu.ai.mit.edu> |
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8 index 00e4a1f62c8..e21af17657f 100644 --- a/src/ChangeLog.8 +++ b/src/ChangeLog.8 | |||
| @@ -2723,7 +2723,7 @@ | |||
| 2723 | (CURSOR_FACE_ID, MOUSE_FACE_ID): New. | 2723 | (CURSOR_FACE_ID, MOUSE_FACE_ID): New. |
| 2724 | 2724 | ||
| 2725 | * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New. | 2725 | * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New. |
| 2726 | (syms_of_xfaces): Intialize new symbols. | 2726 | (syms_of_xfaces): Initialize new symbols. |
| 2727 | 2727 | ||
| 2728 | * fns.c (Fmakehash): Take one argument, test, make all the | 2728 | * fns.c (Fmakehash): Take one argument, test, make all the |
| 2729 | rest keyword arguments. | 2729 | rest keyword arguments. |
| @@ -9227,7 +9227,7 @@ | |||
| 9227 | * xdisp.c (store_frame_title_char): New function to store a | 9227 | * xdisp.c (store_frame_title_char): New function to store a |
| 9228 | single character for the frame title with re-allocation of | 9228 | single character for the frame title with re-allocation of |
| 9229 | frame_title_buf. | 9229 | frame_title_buf. |
| 9230 | (init_xdisp): Intialize frame_title_.* variables to null. | 9230 | (init_xdisp): Initialize frame_title_.* variables to null. |
| 9231 | 9231 | ||
| 9232 | * dispnew.c (quit_error_check): Removed. | 9232 | * dispnew.c (quit_error_check): Removed. |
| 9233 | 9233 | ||
| @@ -12321,7 +12321,7 @@ | |||
| 12321 | (enumfont_t): Remove unused head pointer. | 12321 | (enumfont_t): Remove unused head pointer. |
| 12322 | (enum_font_cb2): Dereference elfLogFont. | 12322 | (enum_font_cb2): Dereference elfLogFont. |
| 12323 | (w32_list_bdf_fonts): New function. | 12323 | (w32_list_bdf_fonts): New function. |
| 12324 | (w32_list_fonts): Use one_w32_dispay_info instead of insisting on | 12324 | (w32_list_fonts): Use one_w32_display_info instead of insisting on |
| 12325 | valid frame. Remove MessageBox. Support BDF fonts. | 12325 | valid frame. Remove MessageBox. Support BDF fonts. |
| 12326 | (Fw32_find_bdf_fonts): New function. | 12326 | (Fw32_find_bdf_fonts): New function. |
| 12327 | (syms_of_w32fns): Add Vw32_bdf_filename_alist and | 12327 | (syms_of_w32fns): Add Vw32_bdf_filename_alist and |
| @@ -13266,7 +13266,7 @@ | |||
| 13266 | 13266 | ||
| 13267 | * charset.c (Fchar_bytes): Doc fix. | 13267 | * charset.c (Fchar_bytes): Doc fix. |
| 13268 | (char_bytes): Fix returned value to match returned type. | 13268 | (char_bytes): Fix returned value to match returned type. |
| 13269 | (syms_of_charset): Fix type clash in initialisation of | 13269 | (syms_of_charset): Fix type clash in initialization of |
| 13270 | Vauto_fill_chars. | 13270 | Vauto_fill_chars. |
| 13271 | 13271 | ||
| 13272 | 1998-10-29 Geoff Voelker <voelker@cs.washington.edu> | 13272 | 1998-10-29 Geoff Voelker <voelker@cs.washington.edu> |
| @@ -13429,7 +13429,7 @@ | |||
| 13429 | `x-list-fonts.c'. | 13429 | `x-list-fonts.c'. |
| 13430 | (w32_get_font_info, w32_query_font, w32_find_ccl_program): New | 13430 | (w32_get_font_info, w32_query_font, w32_find_ccl_program): New |
| 13431 | functions for fontset support - adapted from x_ equivalents. | 13431 | functions for fontset support - adapted from x_ equivalents. |
| 13432 | (syms_of_w32fns): New lisp variables initialised. Function | 13432 | (syms_of_w32fns): New lisp variables initialized. Function |
| 13433 | pointers for fontset.c set up. | 13433 | pointers for fontset.c set up. |
| 13434 | 13434 | ||
| 13435 | * w32term.c: Include fontset.h. Define codepage macros. | 13435 | * w32term.c: Include fontset.h. Define codepage macros. |
diff --git a/src/ChangeLog.9 b/src/ChangeLog.9 index 9e7bd24f792..6f007992bef 100644 --- a/src/ChangeLog.9 +++ b/src/ChangeLog.9 | |||
| @@ -5150,7 +5150,7 @@ | |||
| 5150 | 2000-11-27 Jason Rumney <jasonr@gnu.org> | 5150 | 2000-11-27 Jason Rumney <jasonr@gnu.org> |
| 5151 | 5151 | ||
| 5152 | * w32fns.c (w32_load_system_font): Always mark font as double byte | 5152 | * w32fns.c (w32_load_system_font): Always mark font as double byte |
| 5153 | if codepage is unicode. | 5153 | if codepage is Unicode. |
| 5154 | 5154 | ||
| 5155 | 2000-11-27 Gerd Moellmann <gerd@gnu.org> | 5155 | 2000-11-27 Gerd Moellmann <gerd@gnu.org> |
| 5156 | 5156 | ||
diff --git a/src/alloc.c b/src/alloc.c index 5d04bd77872..96d63f53cf9 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -203,9 +203,6 @@ static int malloc_hysteresis; | |||
| 203 | remapping on more recent systems because this is less important | 203 | remapping on more recent systems because this is less important |
| 204 | nowadays than in the days of small memories and timesharing. */ | 204 | nowadays than in the days of small memories and timesharing. */ |
| 205 | 205 | ||
| 206 | #ifndef VIRT_ADDR_VARIES | ||
| 207 | static | ||
| 208 | #endif | ||
| 209 | EMACS_INT pure[(PURESIZE + sizeof (EMACS_INT) - 1) / sizeof (EMACS_INT)] = {1,}; | 206 | EMACS_INT pure[(PURESIZE + sizeof (EMACS_INT) - 1) / sizeof (EMACS_INT)] = {1,}; |
| 210 | #define PUREBEG (char *) pure | 207 | #define PUREBEG (char *) pure |
| 211 | 208 | ||
| @@ -222,10 +219,7 @@ static ptrdiff_t pure_bytes_used_before_overflow; | |||
| 222 | /* Value is non-zero if P points into pure space. */ | 219 | /* Value is non-zero if P points into pure space. */ |
| 223 | 220 | ||
| 224 | #define PURE_POINTER_P(P) \ | 221 | #define PURE_POINTER_P(P) \ |
| 225 | (((PNTR_COMPARISON_TYPE) (P) \ | 222 | ((uintptr_t) (P) - (uintptr_t) purebeg <= pure_size) |
| 226 | < (PNTR_COMPARISON_TYPE) ((char *) purebeg + pure_size)) \ | ||
| 227 | && ((PNTR_COMPARISON_TYPE) (P) \ | ||
| 228 | >= (PNTR_COMPARISON_TYPE) purebeg)) | ||
| 229 | 223 | ||
| 230 | /* Index in pure at which next pure Lisp object will be allocated.. */ | 224 | /* Index in pure at which next pure Lisp object will be allocated.. */ |
| 231 | 225 | ||
diff --git a/src/bidi.c b/src/bidi.c index e688637a408..e0337927ec5 100644 --- a/src/bidi.c +++ b/src/bidi.c | |||
| @@ -51,7 +51,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 51 | 51 | ||
| 52 | A note about references to UAX#9 rules: if the reference says | 52 | A note about references to UAX#9 rules: if the reference says |
| 53 | something like "X9/Retaining", it means that you need to refer to | 53 | something like "X9/Retaining", it means that you need to refer to |
| 54 | rule X9 and to its modifications decribed in the "Implementation | 54 | rule X9 and to its modifications described in the "Implementation |
| 55 | Notes" section of UAX#9, under "Retaining Format Codes". */ | 55 | Notes" section of UAX#9, under "Retaining Format Codes". */ |
| 56 | 56 | ||
| 57 | #include <config.h> | 57 | #include <config.h> |
diff --git a/src/buffer.c b/src/buffer.c index 90b43d29fc8..a327a1650f1 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -4400,7 +4400,7 @@ static int mmap_fd_1; | |||
| 4400 | 4400 | ||
| 4401 | static int mmap_page_size; | 4401 | static int mmap_page_size; |
| 4402 | 4402 | ||
| 4403 | /* 1 means mmap has been intialized. */ | 4403 | /* 1 means mmap has been initialized. */ |
| 4404 | 4404 | ||
| 4405 | static int mmap_initialized_p; | 4405 | static int mmap_initialized_p; |
| 4406 | 4406 | ||
| @@ -4439,7 +4439,7 @@ static int mmap_initialized_p; | |||
| 4439 | #define MMAP_ALLOCATED_P(start, end) 1 | 4439 | #define MMAP_ALLOCATED_P(start, end) 1 |
| 4440 | #endif | 4440 | #endif |
| 4441 | 4441 | ||
| 4442 | /* Perform necessary intializations for the use of mmap. */ | 4442 | /* Perform necessary initializations for the use of mmap. */ |
| 4443 | 4443 | ||
| 4444 | static void | 4444 | static void |
| 4445 | mmap_init (void) | 4445 | mmap_init (void) |
diff --git a/src/buffer.h b/src/buffer.h index a6b82abf053..fa65a4b81fd 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -978,7 +978,7 @@ extern int last_per_buffer_idx; | |||
| 978 | variable has an index > 0 associated with it, except when it always | 978 | variable has an index > 0 associated with it, except when it always |
| 979 | has buffer-local values, in which case the index is -1. If this is | 979 | has buffer-local values, in which case the index is -1. If this is |
| 980 | 0, this is a bug and means that the slot of VAR in | 980 | 0, this is a bug and means that the slot of VAR in |
| 981 | buffer_local_flags wasn't intiialized. */ | 981 | buffer_local_flags wasn't initialized. */ |
| 982 | 982 | ||
| 983 | #define PER_BUFFER_VAR_IDX(VAR) \ | 983 | #define PER_BUFFER_VAR_IDX(VAR) \ |
| 984 | PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR)) | 984 | PER_BUFFER_IDX (PER_BUFFER_VAR_OFFSET (VAR)) |
diff --git a/src/casetab.c b/src/casetab.c index 3433b313c03..575a48ed146 100644 --- a/src/casetab.c +++ b/src/casetab.c | |||
| @@ -95,7 +95,7 @@ CANONICALIZE maps each character to a canonical equivalent; | |||
| 95 | any two characters that are related by case-conversion have the same | 95 | any two characters that are related by case-conversion have the same |
| 96 | canonical equivalent character; it may be nil, in which case it is | 96 | canonical equivalent character; it may be nil, in which case it is |
| 97 | deduced from DOWNCASE and UPCASE. | 97 | deduced from DOWNCASE and UPCASE. |
| 98 | EQUIVALENCES is a map that cyclicly permutes each equivalence class | 98 | EQUIVALENCES is a map that cyclically permutes each equivalence class |
| 99 | (of characters with the same canonical equivalent); it may be nil, | 99 | (of characters with the same canonical equivalent); it may be nil, |
| 100 | in which case it is deduced from CANONICALIZE. */) | 100 | in which case it is deduced from CANONICALIZE. */) |
| 101 | (Lisp_Object table) | 101 | (Lisp_Object table) |
| @@ -47,7 +47,7 @@ static Lisp_Object Qcode_conversion_map; | |||
| 47 | static Lisp_Object Qcode_conversion_map_id; | 47 | static Lisp_Object Qcode_conversion_map_id; |
| 48 | 48 | ||
| 49 | /* Symbols of ccl program have this property, a value of the property | 49 | /* Symbols of ccl program have this property, a value of the property |
| 50 | is an index for Vccl_protram_table. */ | 50 | is an index for Vccl_program_table. */ |
| 51 | static Lisp_Object Qccl_program_idx; | 51 | static Lisp_Object Qccl_program_idx; |
| 52 | 52 | ||
| 53 | /* Table of registered CCL programs. Each element is a vector of | 53 | /* Table of registered CCL programs. Each element is a vector of |
| @@ -826,7 +826,7 @@ while (0) | |||
| 826 | : (charset = CHARSET_FROM_ID ((id)), DECODE_CHAR (charset, (code)))) | 826 | : (charset = CHARSET_FROM_ID ((id)), DECODE_CHAR (charset, (code)))) |
| 827 | 827 | ||
| 828 | /* Encode character C by some of charsets in CHARSET_LIST. Set ID to | 828 | /* Encode character C by some of charsets in CHARSET_LIST. Set ID to |
| 829 | the id of the used charset, ENCODED to the resulf of encoding. | 829 | the id of the used charset, ENCODED to the result of encoding. |
| 830 | Assume that we can use the variable `charset'. */ | 830 | Assume that we can use the variable `charset'. */ |
| 831 | 831 | ||
| 832 | #define CCL_ENCODE_CHAR(c, charset_list, id, encoded) \ | 832 | #define CCL_ENCODE_CHAR(c, charset_list, id, encoded) \ |
diff --git a/src/character.c b/src/character.c index a21760c8ab2..88b1f11b96b 100644 --- a/src/character.c +++ b/src/character.c | |||
| @@ -669,7 +669,7 @@ str_as_multibyte (unsigned char *str, EMACS_INT len, EMACS_INT nbytes, | |||
| 669 | } | 669 | } |
| 670 | 670 | ||
| 671 | /* Parse unibyte string at STR of LEN bytes, and return the number of | 671 | /* Parse unibyte string at STR of LEN bytes, and return the number of |
| 672 | bytes it may ocupy when converted to multibyte string by | 672 | bytes it may occupy when converted to multibyte string by |
| 673 | `str_to_multibyte'. */ | 673 | `str_to_multibyte'. */ |
| 674 | 674 | ||
| 675 | EMACS_INT | 675 | EMACS_INT |
diff --git a/src/character.h b/src/character.h index 09bcf17ab96..5ae6cb8c49c 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -596,7 +596,7 @@ sanitize_char_width (EMACS_INT width) | |||
| 596 | ? ASCII_CHAR_WIDTH (c) \ | 596 | ? ASCII_CHAR_WIDTH (c) \ |
| 597 | : sanitize_char_width (XINT (CHAR_TABLE_REF (Vchar_width_table, c)))) | 597 | : sanitize_char_width (XINT (CHAR_TABLE_REF (Vchar_width_table, c)))) |
| 598 | 598 | ||
| 599 | /* If C is a variation selector, return the index numnber of the | 599 | /* If C is a variation selector, return the index of the |
| 600 | variation selector (1..256). Otherwise, return 0. */ | 600 | variation selector (1..256). Otherwise, return 0. */ |
| 601 | 601 | ||
| 602 | #define CHAR_VARIATION_SELECTOR_P(c) \ | 602 | #define CHAR_VARIATION_SELECTOR_P(c) \ |
diff --git a/src/charset.c b/src/charset.c index 266753f9d05..b6921a762b6 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -2082,7 +2082,7 @@ that case, find the charset from what supported by that coding system. */) | |||
| 2082 | DEFUN ("charset-after", Fcharset_after, Scharset_after, 0, 1, 0, | 2082 | DEFUN ("charset-after", Fcharset_after, Scharset_after, 0, 1, 0, |
| 2083 | doc: /* | 2083 | doc: /* |
| 2084 | Return charset of a character in the current buffer at position POS. | 2084 | Return charset of a character in the current buffer at position POS. |
| 2085 | If POS is nil, it defauls to the current point. | 2085 | If POS is nil, it defaults to the current point. |
| 2086 | If POS is out of range, the value is nil. */) | 2086 | If POS is out of range, the value is nil. */) |
| 2087 | (Lisp_Object pos) | 2087 | (Lisp_Object pos) |
| 2088 | { | 2088 | { |
diff --git a/src/chartab.c b/src/chartab.c index 724b3076a11..8d903749284 100644 --- a/src/chartab.c +++ b/src/chartab.c | |||
| @@ -747,7 +747,7 @@ equivalent and can be merged. It defaults to `equal'. */) | |||
| 747 | ARG is passed to C_FUNCTION when that is called. | 747 | ARG is passed to C_FUNCTION when that is called. |
| 748 | 748 | ||
| 749 | It returns the value of last character covered by TABLE (not the | 749 | It returns the value of last character covered by TABLE (not the |
| 750 | value inheritted from the parent), and by side-effect, the car part | 750 | value inherited from the parent), and by side-effect, the car part |
| 751 | of RANGE is updated to the minimum character C where C and all the | 751 | of RANGE is updated to the minimum character C where C and all the |
| 752 | following characters in TABLE have the same value. */ | 752 | following characters in TABLE have the same value. */ |
| 753 | 753 | ||
diff --git a/src/dbusbind.c b/src/dbusbind.c index 52e08d8ee2a..7984be3564b 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c | |||
| @@ -184,7 +184,7 @@ static int xd_in_read_queued_messages = 0; | |||
| 184 | #endif | 184 | #endif |
| 185 | 185 | ||
| 186 | /* This was a macro. On Solaris 2.11 it was said to compile for | 186 | /* This was a macro. On Solaris 2.11 it was said to compile for |
| 187 | hours, when optimzation is enabled. So we have transferred it into | 187 | hours, when optimization is enabled. So we have transferred it into |
| 188 | a function. */ | 188 | a function. */ |
| 189 | /* Determine the DBusType of a given Lisp symbol. OBJECT must be one | 189 | /* Determine the DBusType of a given Lisp symbol. OBJECT must be one |
| 190 | of the predefined D-Bus type symbols. */ | 190 | of the predefined D-Bus type symbols. */ |
diff --git a/src/dispextern.h b/src/dispextern.h index 006ceb31a5a..a45c5cc138f 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -2677,11 +2677,11 @@ struct redisplay_interface | |||
| 2677 | void (*flush_display) (struct frame *f); | 2677 | void (*flush_display) (struct frame *f); |
| 2678 | 2678 | ||
| 2679 | /* Flush the display of frame F if non-NULL. This is called | 2679 | /* Flush the display of frame F if non-NULL. This is called |
| 2680 | during redisplay, and should be NULL on systems which flushes | 2680 | during redisplay, and should be NULL on systems which flush |
| 2681 | automatically before reading input. */ | 2681 | automatically before reading input. */ |
| 2682 | void (*flush_display_optional) (struct frame *f); | 2682 | void (*flush_display_optional) (struct frame *f); |
| 2683 | 2683 | ||
| 2684 | /* Clear the mouse hightlight in window W, if there is any. */ | 2684 | /* Clear the mouse highlight in window W, if there is any. */ |
| 2685 | void (*clear_window_mouse_face) (struct window *w); | 2685 | void (*clear_window_mouse_face) (struct window *w); |
| 2686 | 2686 | ||
| 2687 | /* Set *LEFT and *RIGHT to the left and right overhang of GLYPH on | 2687 | /* Set *LEFT and *RIGHT to the left and right overhang of GLYPH on |
| @@ -3154,6 +3154,9 @@ void compute_fringe_widths (struct frame *, int); | |||
| 3154 | void w32_init_fringe (struct redisplay_interface *); | 3154 | void w32_init_fringe (struct redisplay_interface *); |
| 3155 | void w32_reset_fringes (void); | 3155 | void w32_reset_fringes (void); |
| 3156 | #endif | 3156 | #endif |
| 3157 | |||
| 3158 | extern unsigned row_hash (struct glyph_row *); | ||
| 3159 | |||
| 3157 | /* Defined in image.c */ | 3160 | /* Defined in image.c */ |
| 3158 | 3161 | ||
| 3159 | #ifdef HAVE_WINDOW_SYSTEM | 3162 | #ifdef HAVE_WINDOW_SYSTEM |
diff --git a/src/dispnew.c b/src/dispnew.c index 700952f6ae3..b920693688c 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -438,18 +438,7 @@ margin_glyphs_to_reserve (struct window *w, int total_glyphs, Lisp_Object margin | |||
| 438 | int | 438 | int |
| 439 | verify_row_hash (struct glyph_row *row) | 439 | verify_row_hash (struct glyph_row *row) |
| 440 | { | 440 | { |
| 441 | int area, k; | 441 | return row->hash == row_hash (row); |
| 442 | unsigned row_hash = 0; | ||
| 443 | |||
| 444 | for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) | ||
| 445 | for (k = 0; k < row->used[area]; ++k) | ||
| 446 | row_hash = ((((row_hash << 4) + (row_hash >> 24)) & 0x0fffffff) | ||
| 447 | + row->glyphs[area][k].u.val | ||
| 448 | + row->glyphs[area][k].face_id | ||
| 449 | + row->glyphs[area][k].padding_p | ||
| 450 | + (row->glyphs[area][k].type << 2)); | ||
| 451 | |||
| 452 | return row_hash == row->hash; | ||
| 453 | } | 442 | } |
| 454 | #endif | 443 | #endif |
| 455 | 444 | ||
| @@ -1087,37 +1076,55 @@ swap_glyphs_in_rows (struct glyph_row *a, struct glyph_row *b) | |||
| 1087 | 1076 | ||
| 1088 | #endif /* 0 */ | 1077 | #endif /* 0 */ |
| 1089 | 1078 | ||
| 1090 | /* Exchange pointers to glyph memory between glyph rows A and B. */ | 1079 | /* Exchange pointers to glyph memory between glyph rows A and B. Also |
| 1080 | exchange the used[] array and the hash values of the rows, because | ||
| 1081 | these should all go together for the row's hash value to be | ||
| 1082 | correct. */ | ||
| 1091 | 1083 | ||
| 1092 | static inline void | 1084 | static inline void |
| 1093 | swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) | 1085 | swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b) |
| 1094 | { | 1086 | { |
| 1095 | int i; | 1087 | int i; |
| 1088 | unsigned hash_tem = a->hash; | ||
| 1089 | |||
| 1096 | for (i = 0; i < LAST_AREA + 1; ++i) | 1090 | for (i = 0; i < LAST_AREA + 1; ++i) |
| 1097 | { | 1091 | { |
| 1098 | struct glyph *temp = a->glyphs[i]; | 1092 | struct glyph *temp = a->glyphs[i]; |
| 1093 | short used_tem = a->used[i]; | ||
| 1094 | |||
| 1099 | a->glyphs[i] = b->glyphs[i]; | 1095 | a->glyphs[i] = b->glyphs[i]; |
| 1100 | b->glyphs[i] = temp; | 1096 | b->glyphs[i] = temp; |
| 1097 | a->used[i] = b->used[i]; | ||
| 1098 | b->used[i] = used_tem; | ||
| 1101 | } | 1099 | } |
| 1100 | a->hash = b->hash; | ||
| 1101 | b->hash = hash_tem; | ||
| 1102 | } | 1102 | } |
| 1103 | 1103 | ||
| 1104 | 1104 | ||
| 1105 | /* Copy glyph row structure FROM to glyph row structure TO, except | 1105 | /* Copy glyph row structure FROM to glyph row structure TO, except |
| 1106 | that glyph pointers in the structures are left unchanged. */ | 1106 | that glyph pointers, the `used' counts, and the hash values in the |
| 1107 | structures are left unchanged. */ | ||
| 1107 | 1108 | ||
| 1108 | static inline void | 1109 | static inline void |
| 1109 | copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) | 1110 | copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) |
| 1110 | { | 1111 | { |
| 1111 | struct glyph *pointers[1 + LAST_AREA]; | 1112 | struct glyph *pointers[1 + LAST_AREA]; |
| 1113 | short used[1 + LAST_AREA]; | ||
| 1114 | unsigned hashval; | ||
| 1112 | 1115 | ||
| 1113 | /* Save glyph pointers of TO. */ | 1116 | /* Save glyph pointers of TO. */ |
| 1114 | memcpy (pointers, to->glyphs, sizeof to->glyphs); | 1117 | memcpy (pointers, to->glyphs, sizeof to->glyphs); |
| 1118 | memcpy (used, to->used, sizeof to->used); | ||
| 1119 | hashval = to->hash; | ||
| 1115 | 1120 | ||
| 1116 | /* Do a structure assignment. */ | 1121 | /* Do a structure assignment. */ |
| 1117 | *to = *from; | 1122 | *to = *from; |
| 1118 | 1123 | ||
| 1119 | /* Restore original pointers of TO. */ | 1124 | /* Restore original pointers of TO. */ |
| 1120 | memcpy (to->glyphs, pointers, sizeof to->glyphs); | 1125 | memcpy (to->glyphs, pointers, sizeof to->glyphs); |
| 1126 | memcpy (to->used, used, sizeof to->used); | ||
| 1127 | to->hash = hashval; | ||
| 1121 | } | 1128 | } |
| 1122 | 1129 | ||
| 1123 | 1130 | ||
| @@ -4240,6 +4247,7 @@ add_row_entry (struct glyph_row *row) | |||
| 4240 | ptrdiff_t i = row->hash % row_table_size; | 4247 | ptrdiff_t i = row->hash % row_table_size; |
| 4241 | 4248 | ||
| 4242 | entry = row_table[i]; | 4249 | entry = row_table[i]; |
| 4250 | xassert (entry || verify_row_hash (row)); | ||
| 4243 | while (entry && !row_equal_p (entry->row, row, 1)) | 4251 | while (entry && !row_equal_p (entry->row, row, 1)) |
| 4244 | entry = entry->next; | 4252 | entry = entry->next; |
| 4245 | 4253 | ||
diff --git a/src/fileio.c b/src/fileio.c index 44a85ab1977..7e75e6285f0 100644 --- a/src/fileio.c +++ b/src/fileio.c | |||
| @@ -62,7 +62,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 62 | 62 | ||
| 63 | #ifdef DOS_NT | 63 | #ifdef DOS_NT |
| 64 | /* On Windows, drive letters must be alphabetic - on DOS, the Netware | 64 | /* On Windows, drive letters must be alphabetic - on DOS, the Netware |
| 65 | redirector allows the six letters between 'Z' and 'a' as well. */ | 65 | redirector allows the six letters between 'Z' and 'a' as well. */ |
| 66 | #ifdef MSDOS | 66 | #ifdef MSDOS |
| 67 | #define IS_DRIVE(x) ((x) >= 'A' && (x) <= 'z') | 67 | #define IS_DRIVE(x) ((x) >= 'A' && (x) <= 'z') |
| 68 | #endif | 68 | #endif |
| @@ -70,7 +70,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 70 | #define IS_DRIVE(x) isalpha ((unsigned char) (x)) | 70 | #define IS_DRIVE(x) isalpha ((unsigned char) (x)) |
| 71 | #endif | 71 | #endif |
| 72 | /* Need to lower-case the drive letter, or else expanded | 72 | /* Need to lower-case the drive letter, or else expanded |
| 73 | filenames will sometimes compare inequal, because | 73 | filenames will sometimes compare unequal, because |
| 74 | `expand-file-name' doesn't always down-case the drive letter. */ | 74 | `expand-file-name' doesn't always down-case the drive letter. */ |
| 75 | #define DRIVE_LETTER(x) (tolower ((unsigned char) (x))) | 75 | #define DRIVE_LETTER(x) (tolower ((unsigned char) (x))) |
| 76 | #endif | 76 | #endif |
| @@ -338,7 +338,7 @@ Given a Unix syntax file name, returns a string ending in slash. */) | |||
| 338 | 338 | ||
| 339 | while (p != beg && !IS_DIRECTORY_SEP (p[-1]) | 339 | while (p != beg && !IS_DIRECTORY_SEP (p[-1]) |
| 340 | #ifdef DOS_NT | 340 | #ifdef DOS_NT |
| 341 | /* only recognise drive specifier at the beginning */ | 341 | /* only recognize drive specifier at the beginning */ |
| 342 | && !(p[-1] == ':' | 342 | && !(p[-1] == ':' |
| 343 | /* handle the "/:d:foo" and "/:foo" cases correctly */ | 343 | /* handle the "/:d:foo" and "/:foo" cases correctly */ |
| 344 | && ((p == beg + 2 && !IS_DIRECTORY_SEP (*beg)) | 344 | && ((p == beg + 2 && !IS_DIRECTORY_SEP (*beg)) |
| @@ -401,7 +401,7 @@ or the entire name if it contains no slash. */) | |||
| 401 | 401 | ||
| 402 | while (p != beg && !IS_DIRECTORY_SEP (p[-1]) | 402 | while (p != beg && !IS_DIRECTORY_SEP (p[-1]) |
| 403 | #ifdef DOS_NT | 403 | #ifdef DOS_NT |
| 404 | /* only recognise drive specifier at beginning */ | 404 | /* only recognize drive specifier at beginning */ |
| 405 | && !(p[-1] == ':' | 405 | && !(p[-1] == ':' |
| 406 | /* handle the "/:d:foo" case correctly */ | 406 | /* handle the "/:d:foo" case correctly */ |
| 407 | && (p == beg + 2 || (p == beg + 4 && IS_DIRECTORY_SEP (*beg)))) | 407 | && (p == beg + 2 || (p == beg + 4 && IS_DIRECTORY_SEP (*beg)))) |
| @@ -3686,6 +3686,7 @@ variable `last-coding-system-used' to the coding system actually used. */) | |||
| 3686 | int this_count = SPECPDL_INDEX (); | 3686 | int this_count = SPECPDL_INDEX (); |
| 3687 | int multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); | 3687 | int multibyte = ! NILP (BVAR (current_buffer, enable_multibyte_characters)); |
| 3688 | Lisp_Object conversion_buffer; | 3688 | Lisp_Object conversion_buffer; |
| 3689 | struct gcpro gcpro1; | ||
| 3689 | 3690 | ||
| 3690 | conversion_buffer = code_conversion_save (1, multibyte); | 3691 | conversion_buffer = code_conversion_save (1, multibyte); |
| 3691 | 3692 | ||
| @@ -3706,7 +3707,7 @@ variable `last-coding-system-used' to the coding system actually used. */) | |||
| 3706 | { | 3707 | { |
| 3707 | /* We read one bunch by one (READ_BUF_SIZE bytes) to allow | 3708 | /* We read one bunch by one (READ_BUF_SIZE bytes) to allow |
| 3708 | quitting while reading a huge while. */ | 3709 | quitting while reading a huge while. */ |
| 3709 | /* try is reserved in some compilers (Microsoft C) */ | 3710 | /* `try'' is reserved in some compilers (Microsoft C). */ |
| 3710 | EMACS_INT trytry = min (total - how_much, | 3711 | EMACS_INT trytry = min (total - how_much, |
| 3711 | READ_BUF_SIZE - unprocessed); | 3712 | READ_BUF_SIZE - unprocessed); |
| 3712 | 3713 | ||
| @@ -3252,7 +3252,7 @@ DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string, | |||
| 3252 | return decoded_string; | 3252 | return decoded_string; |
| 3253 | } | 3253 | } |
| 3254 | 3254 | ||
| 3255 | /* Base64-decode the data at FROM of LENGHT bytes into TO. If | 3255 | /* Base64-decode the data at FROM of LENGTH bytes into TO. If |
| 3256 | MULTIBYTE is nonzero, the decoded result should be in multibyte | 3256 | MULTIBYTE is nonzero, the decoded result should be in multibyte |
| 3257 | form. If NCHARS_RETRUN is not NULL, store the number of produced | 3257 | form. If NCHARS_RETRUN is not NULL, store the number of produced |
| 3258 | characters in *NCHARS_RETURN. */ | 3258 | characters in *NCHARS_RETURN. */ |
diff --git a/src/fontset.c b/src/fontset.c index 34b2131832f..9697f62ea72 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -905,7 +905,7 @@ face_suitable_for_char_p (struct face *face, int c) | |||
| 905 | 905 | ||
| 906 | 906 | ||
| 907 | /* Return ID of face suitable for displaying character C on frame F. | 907 | /* Return ID of face suitable for displaying character C on frame F. |
| 908 | FACE must be reazlied for ASCII characters in advance. Called from | 908 | FACE must be realized for ASCII characters in advance. Called from |
| 909 | the macro FACE_FOR_CHAR. */ | 909 | the macro FACE_FOR_CHAR. */ |
| 910 | 910 | ||
| 911 | int | 911 | int |
| @@ -1346,7 +1346,7 @@ accumulate_script_ranges (Lisp_Object arg, Lisp_Object range, Lisp_Object val) | |||
| 1346 | 1346 | ||
| 1347 | In FONTSET, set FONT_DEF in a fashion specified by ADD for | 1347 | In FONTSET, set FONT_DEF in a fashion specified by ADD for |
| 1348 | characters in RANGE and ranges in SCRIPT_RANGE_LIST before RANGE. | 1348 | characters in RANGE and ranges in SCRIPT_RANGE_LIST before RANGE. |
| 1349 | The consumed ranges are poped up from SCRIPT_RANGE_LIST, and the | 1349 | The consumed ranges are popped up from SCRIPT_RANGE_LIST, and the |
| 1350 | new SCRIPT_RANGE_LIST is stored in ARG. | 1350 | new SCRIPT_RANGE_LIST is stored in ARG. |
| 1351 | 1351 | ||
| 1352 | If ASCII is nil, don't set FONT_DEF for ASCII characters. It is | 1352 | If ASCII is nil, don't set FONT_DEF for ASCII characters. It is |
diff --git a/src/frame.c b/src/frame.c index c14f4db91da..039ed6543cb 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -374,7 +374,7 @@ make_frame (int mini_p) | |||
| 374 | 374 | ||
| 375 | /* Use set_window_buffer, not Fset_window_buffer, and don't let | 375 | /* Use set_window_buffer, not Fset_window_buffer, and don't let |
| 376 | hooks be run by it. The reason is that the whole frame/window | 376 | hooks be run by it. The reason is that the whole frame/window |
| 377 | arrangement is not yet fully intialized at this point. Windows | 377 | arrangement is not yet fully initialized at this point. Windows |
| 378 | don't have the right size, glyph matrices aren't initialized | 378 | don't have the right size, glyph matrices aren't initialized |
| 379 | etc. Running Lisp functions at this point surely ends in a | 379 | etc. Running Lisp functions at this point surely ends in a |
| 380 | SEGV. */ | 380 | SEGV. */ |
| @@ -1359,6 +1359,13 @@ delete_frame (Lisp_Object frame, Lisp_Object force) | |||
| 1359 | /* If needed, delete the terminal that this frame was on. | 1359 | /* If needed, delete the terminal that this frame was on. |
| 1360 | (This must be done after the frame is killed.) */ | 1360 | (This must be done after the frame is killed.) */ |
| 1361 | terminal->reference_count--; | 1361 | terminal->reference_count--; |
| 1362 | #ifdef USE_GTK | ||
| 1363 | /* FIXME: Deleting the terminal crashes emacs because of a GTK | ||
| 1364 | bug. | ||
| 1365 | http://lists.gnu.org/archive/html/emacs-devel/2011-10/msg00363.html */ | ||
| 1366 | if (terminal->reference_count == 0 && terminal->type == output_x_window) | ||
| 1367 | terminal->reference_count = 1; | ||
| 1368 | #endif /* USE_GTK */ | ||
| 1362 | if (terminal->reference_count == 0) | 1369 | if (terminal->reference_count == 0) |
| 1363 | { | 1370 | { |
| 1364 | Lisp_Object tmp; | 1371 | Lisp_Object tmp; |
| @@ -1705,7 +1712,7 @@ If omitted, FRAME defaults to the currently selected frame. */) | |||
| 1705 | } | 1712 | } |
| 1706 | 1713 | ||
| 1707 | /* Update the display_time slot of the buffers shown in WINDOW | 1714 | /* Update the display_time slot of the buffers shown in WINDOW |
| 1708 | and all its descendents. */ | 1715 | and all its descendants. */ |
| 1709 | 1716 | ||
| 1710 | static void | 1717 | static void |
| 1711 | make_frame_visible_1 (Lisp_Object window) | 1718 | make_frame_visible_1 (Lisp_Object window) |
diff --git a/src/ftfont.c b/src/ftfont.c index 7858a31be21..5c540f9bf82 100644 --- a/src/ftfont.c +++ b/src/ftfont.c | |||
| @@ -272,7 +272,7 @@ ftfont_pattern_entity (FcPattern *p, Lisp_Object extra) | |||
| 272 | } | 272 | } |
| 273 | else | 273 | else |
| 274 | { | 274 | { |
| 275 | /* As this font is not scalable, parhaps this is a BDF or PCF | 275 | /* As this font is not scalable, perhaps this is a BDF or PCF |
| 276 | font. */ | 276 | font. */ |
| 277 | FT_Face ft_face; | 277 | FT_Face ft_face; |
| 278 | 278 | ||
| @@ -730,7 +730,7 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots | |||
| 730 | 730 | ||
| 731 | if ((n = FONT_SLANT_NUMERIC (spec)) >= 0 | 731 | if ((n = FONT_SLANT_NUMERIC (spec)) >= 0 |
| 732 | && n < 100) | 732 | && n < 100) |
| 733 | /* Fontconfig doesn't support reverse-italic/obligue. */ | 733 | /* Fontconfig doesn't support reverse-italic/oblique. */ |
| 734 | return NULL; | 734 | return NULL; |
| 735 | 735 | ||
| 736 | if (INTEGERP (AREF (spec, FONT_DPI_INDEX))) | 736 | if (INTEGERP (AREF (spec, FONT_DPI_INDEX))) |
diff --git a/src/ftxfont.c b/src/ftxfont.c index bbba3ca8163..608cfd8d44d 100644 --- a/src/ftxfont.c +++ b/src/ftxfont.c | |||
| @@ -55,7 +55,7 @@ struct ftxfont_frame_data | |||
| 55 | { | 55 | { |
| 56 | /* Background and foreground colors. */ | 56 | /* Background and foreground colors. */ |
| 57 | XColor colors[2]; | 57 | XColor colors[2]; |
| 58 | /* GCs interporationg the above colors. gcs[0] is for a color | 58 | /* GCs interpolating the above colors. gcs[0] is for a color |
| 59 | closest to BACKGROUND, and gcs[5] is for a color closest to | 59 | closest to BACKGROUND, and gcs[5] is for a color closest to |
| 60 | FOREGROUND. */ | 60 | FOREGROUND. */ |
| 61 | GC gcs[6]; | 61 | GC gcs[6]; |
diff --git a/src/gtkutil.c b/src/gtkutil.c index 0b7fd41f5f6..7e6f5c3164d 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -127,7 +127,7 @@ xg_set_screen (GtkWidget *w, FRAME_PTR f) | |||
| 127 | 127 | ||
| 128 | Returns non-zero if display could be opened, zero if display could not | 128 | Returns non-zero if display could be opened, zero if display could not |
| 129 | be opened, and less than zero if the GTK version doesn't support | 129 | be opened, and less than zero if the GTK version doesn't support |
| 130 | multipe displays. */ | 130 | multiple displays. */ |
| 131 | 131 | ||
| 132 | void | 132 | void |
| 133 | xg_display_open (char *display_name, Display **dpy) | 133 | xg_display_open (char *display_name, Display **dpy) |
| @@ -348,7 +348,7 @@ file_for_image (Lisp_Object image) | |||
| 348 | 348 | ||
| 349 | /* For the image defined in IMG, make and return a GtkImage. For displays with | 349 | /* For the image defined in IMG, make and return a GtkImage. For displays with |
| 350 | 8 planes or less we must make a GdkPixbuf and apply the mask manually. | 350 | 8 planes or less we must make a GdkPixbuf and apply the mask manually. |
| 351 | Otherwise the highlightning and dimming the tool bar code in GTK does | 351 | Otherwise the highlighting and dimming the tool bar code in GTK does |
| 352 | will look bad. For display with more than 8 planes we just use the | 352 | will look bad. For display with more than 8 planes we just use the |
| 353 | pixmap and mask directly. For monochrome displays, GTK doesn't seem | 353 | pixmap and mask directly. For monochrome displays, GTK doesn't seem |
| 354 | able to use external pixmaps, it looks bad whatever we do. | 354 | able to use external pixmaps, it looks bad whatever we do. |
| @@ -2363,7 +2363,7 @@ xg_create_one_menuitem (widget_value *item, | |||
| 2363 | HIGHLIGHT_CB is the callback to call when entering/leaving menu items. | 2363 | HIGHLIGHT_CB is the callback to call when entering/leaving menu items. |
| 2364 | POP_UP_P is non-zero if we shall create a popup menu. | 2364 | POP_UP_P is non-zero if we shall create a popup menu. |
| 2365 | MENU_BAR_P is non-zero if we shall create a menu bar. | 2365 | MENU_BAR_P is non-zero if we shall create a menu bar. |
| 2366 | ADD_TEAROFF_P is non-zero if we shall add a teroff menu item. Ignored | 2366 | ADD_TEAROFF_P is non-zero if we shall add a tearoff menu item. Ignored |
| 2367 | if MENU_BAR_P is non-zero. | 2367 | if MENU_BAR_P is non-zero. |
| 2368 | TOPMENU is the topmost GtkWidget that others shall be placed under. | 2368 | TOPMENU is the topmost GtkWidget that others shall be placed under. |
| 2369 | It may be NULL, in that case we create the appropriate widget | 2369 | It may be NULL, in that case we create the appropriate widget |
| @@ -4262,7 +4262,7 @@ xg_make_tool_item (FRAME_PTR f, | |||
| 4262 | #endif | 4262 | #endif |
| 4263 | gtk_tool_item_set_homogeneous (ti, FALSE); | 4263 | gtk_tool_item_set_homogeneous (ti, FALSE); |
| 4264 | 4264 | ||
| 4265 | /* Callback to save modifyer mask (Shift/Control, etc). GTK makes | 4265 | /* Callback to save modifier mask (Shift/Control, etc). GTK makes |
| 4266 | no distinction based on modifiers in the activate callback, | 4266 | no distinction based on modifiers in the activate callback, |
| 4267 | so we have to do it ourselves. */ | 4267 | so we have to do it ourselves. */ |
| 4268 | g_signal_connect (wb, "button-release-event", | 4268 | g_signal_connect (wb, "button-release-event", |
diff --git a/src/image.c b/src/image.c index e80f2b72102..8b61c7eefbc 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -7754,7 +7754,7 @@ imagemagick_load_image (struct frame *f, struct image *img, | |||
| 7754 | } | 7754 | } |
| 7755 | 7755 | ||
| 7756 | /* Finally we are done manipulating the image. Figure out the | 7756 | /* Finally we are done manipulating the image. Figure out the |
| 7757 | resulting width/height and transfer ownerwship to Emacs. */ | 7757 | resulting width/height and transfer ownership to Emacs. */ |
| 7758 | height = MagickGetImageHeight (image_wand); | 7758 | height = MagickGetImageHeight (image_wand); |
| 7759 | width = MagickGetImageWidth (image_wand); | 7759 | width = MagickGetImageWidth (image_wand); |
| 7760 | 7760 | ||
| @@ -7786,7 +7786,7 @@ imagemagick_load_image (struct frame *f, struct image *img, | |||
| 7786 | goto imagemagick_error; | 7786 | goto imagemagick_error; |
| 7787 | } | 7787 | } |
| 7788 | 7788 | ||
| 7789 | /* Copy imagegmagick image to x with primitive yet robust pixel | 7789 | /* Copy imagemagick image to x with primitive yet robust pixel |
| 7790 | pusher loop. This has been tested a lot with many different | 7790 | pusher loop. This has been tested a lot with many different |
| 7791 | images. */ | 7791 | images. */ |
| 7792 | 7792 | ||
diff --git a/src/insdel.c b/src/insdel.c index 01e5c57b2b0..e39a362eac7 100644 --- a/src/insdel.c +++ b/src/insdel.c | |||
| @@ -1316,7 +1316,7 @@ replace_range (EMACS_INT from, EMACS_INT to, Lisp_Object new, | |||
| 1316 | 1316 | ||
| 1317 | UNGCPRO; | 1317 | UNGCPRO; |
| 1318 | 1318 | ||
| 1319 | /* Make args be valid */ | 1319 | /* Make args be valid. */ |
| 1320 | if (from < BEGV) | 1320 | if (from < BEGV) |
| 1321 | from = BEGV; | 1321 | from = BEGV; |
| 1322 | if (to > ZV) | 1322 | if (to > ZV) |
diff --git a/src/intervals.c b/src/intervals.c index a78c7f07f6c..05b7175ac3f 100644 --- a/src/intervals.c +++ b/src/intervals.c | |||
| @@ -1317,7 +1317,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, | |||
| 1317 | if (NULL_INTERVAL_P (tree)) | 1317 | if (NULL_INTERVAL_P (tree)) |
| 1318 | return 0; | 1318 | return 0; |
| 1319 | 1319 | ||
| 1320 | /* Left branch */ | 1320 | /* Left branch. */ |
| 1321 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) | 1321 | if (relative_position < LEFT_TOTAL_LENGTH (tree)) |
| 1322 | { | 1322 | { |
| 1323 | EMACS_INT subtract = interval_deletion_adjustment (tree->left, | 1323 | EMACS_INT subtract = interval_deletion_adjustment (tree->left, |
| @@ -1327,7 +1327,7 @@ interval_deletion_adjustment (register INTERVAL tree, register EMACS_INT from, | |||
| 1327 | CHECK_TOTAL_LENGTH (tree); | 1327 | CHECK_TOTAL_LENGTH (tree); |
| 1328 | return subtract; | 1328 | return subtract; |
| 1329 | } | 1329 | } |
| 1330 | /* Right branch */ | 1330 | /* Right branch. */ |
| 1331 | else if (relative_position >= (TOTAL_LENGTH (tree) | 1331 | else if (relative_position >= (TOTAL_LENGTH (tree) |
| 1332 | - RIGHT_TOTAL_LENGTH (tree))) | 1332 | - RIGHT_TOTAL_LENGTH (tree))) |
| 1333 | { | 1333 | { |
| @@ -1699,54 +1699,37 @@ graft_intervals_into_buffer (INTERVAL source, EMACS_INT position, | |||
| 1699 | Qnil, buf, 0); | 1699 | Qnil, buf, 0); |
| 1700 | } | 1700 | } |
| 1701 | if (! NULL_INTERVAL_P (BUF_INTERVALS (buffer))) | 1701 | if (! NULL_INTERVAL_P (BUF_INTERVALS (buffer))) |
| 1702 | /* Shouldn't be necessary. -stef */ | 1702 | /* Shouldn't be necessary. --Stef */ |
| 1703 | BUF_INTERVALS (buffer) = balance_an_interval (BUF_INTERVALS (buffer)); | 1703 | BUF_INTERVALS (buffer) = balance_an_interval (BUF_INTERVALS (buffer)); |
| 1704 | return; | 1704 | return; |
| 1705 | } | 1705 | } |
| 1706 | 1706 | ||
| 1707 | if (NULL_INTERVAL_P (tree)) | 1707 | eassert (length == TOTAL_LENGTH (source)); |
| 1708 | { | 1708 | |
| 1709 | /* The inserted text constitutes the whole buffer, so | 1709 | if ((BUF_Z (buffer) - BUF_BEG (buffer)) == length) |
| 1710 | { /* The inserted text constitutes the whole buffer, so | ||
| 1710 | simply copy over the interval structure. */ | 1711 | simply copy over the interval structure. */ |
| 1711 | if ((BUF_Z (buffer) - BUF_BEG (buffer)) == TOTAL_LENGTH (source)) | ||
| 1712 | { | ||
| 1713 | Lisp_Object buf; | 1712 | Lisp_Object buf; |
| 1714 | XSETBUFFER (buf, buffer); | 1713 | XSETBUFFER (buf, buffer); |
| 1715 | BUF_INTERVALS (buffer) = reproduce_tree_obj (source, buf); | 1714 | BUF_INTERVALS (buffer) = reproduce_tree_obj (source, buf); |
| 1716 | BUF_INTERVALS (buffer)->position = BEG; | 1715 | BUF_INTERVALS (buffer)->position = BUF_BEG (buffer); |
| 1717 | BUF_INTERVALS (buffer)->up_obj = 1; | 1716 | eassert (BUF_INTERVALS (buffer)->up_obj == 1); |
| 1718 | |||
| 1719 | return; | 1717 | return; |
| 1720 | } | 1718 | } |
| 1721 | 1719 | else if (NULL_INTERVAL_P (tree)) | |
| 1722 | /* Create an interval tree in which to place a copy | 1720 | { /* Create an interval tree in which to place a copy |
| 1723 | of the intervals of the inserted string. */ | 1721 | of the intervals of the inserted string. */ |
| 1724 | { | ||
| 1725 | Lisp_Object buf; | 1722 | Lisp_Object buf; |
| 1726 | XSETBUFFER (buf, buffer); | 1723 | XSETBUFFER (buf, buffer); |
| 1727 | tree = create_root_interval (buf); | 1724 | tree = create_root_interval (buf); |
| 1728 | } | 1725 | } |
| 1729 | } | ||
| 1730 | else if (TOTAL_LENGTH (tree) == TOTAL_LENGTH (source)) | ||
| 1731 | /* If the buffer contains only the new string, but | ||
| 1732 | there was already some interval tree there, then it may be | ||
| 1733 | some zero length intervals. Eventually, do something clever | ||
| 1734 | about inserting properly. For now, just waste the old intervals. */ | ||
| 1735 | { | ||
| 1736 | BUF_INTERVALS (buffer) = reproduce_tree (source, INTERVAL_PARENT (tree)); | ||
| 1737 | BUF_INTERVALS (buffer)->position = BEG; | ||
| 1738 | BUF_INTERVALS (buffer)->up_obj = 1; | ||
| 1739 | /* Explicitly free the old tree here. */ | ||
| 1740 | |||
| 1741 | return; | ||
| 1742 | } | ||
| 1743 | /* Paranoia -- the text has already been added, so this buffer | 1726 | /* Paranoia -- the text has already been added, so this buffer |
| 1744 | should be of non-zero length. */ | 1727 | should be of non-zero length. */ |
| 1745 | else if (TOTAL_LENGTH (tree) == 0) | 1728 | else if (TOTAL_LENGTH (tree) == 0) |
| 1746 | abort (); | 1729 | abort (); |
| 1747 | 1730 | ||
| 1748 | this = under = find_interval (tree, position); | 1731 | this = under = find_interval (tree, position); |
| 1749 | if (NULL_INTERVAL_P (under)) /* Paranoia */ | 1732 | if (NULL_INTERVAL_P (under)) /* Paranoia. */ |
| 1750 | abort (); | 1733 | abort (); |
| 1751 | over = find_interval (source, interval_start_pos (source)); | 1734 | over = find_interval (source, interval_start_pos (source)); |
| 1752 | 1735 | ||
| @@ -1917,7 +1900,7 @@ set_point (EMACS_INT charpos) | |||
| 1917 | current buffer, and the invisible property has a `stickiness' such that | 1900 | current buffer, and the invisible property has a `stickiness' such that |
| 1918 | inserting a character at position POS would inherit the property it, | 1901 | inserting a character at position POS would inherit the property it, |
| 1919 | return POS + ADJ, otherwise return POS. If TEST_INTANG is non-zero, | 1902 | return POS + ADJ, otherwise return POS. If TEST_INTANG is non-zero, |
| 1920 | then intangibility is required as well as invisibleness. | 1903 | then intangibility is required as well as invisibility. |
| 1921 | 1904 | ||
| 1922 | TEST_OFFS should be either 0 or -1, and ADJ should be either 1 or -1. | 1905 | TEST_OFFS should be either 0 or -1, and ADJ should be either 1 or -1. |
| 1923 | 1906 | ||
diff --git a/src/intervals.h b/src/intervals.h index 720598fe7a6..977f3d965a4 100644 --- a/src/intervals.h +++ b/src/intervals.h | |||
| @@ -64,71 +64,71 @@ struct interval | |||
| 64 | Lisp_Object plist; | 64 | Lisp_Object plist; |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | /* These are macros for dealing with the interval tree. */ | 67 | /* These are macros for dealing with the interval tree. */ |
| 68 | 68 | ||
| 69 | /* Size of the structure used to represent an interval */ | 69 | /* Size of the structure used to represent an interval. */ |
| 70 | #define INTERVAL_SIZE (sizeof (struct interval)) | 70 | #define INTERVAL_SIZE (sizeof (struct interval)) |
| 71 | 71 | ||
| 72 | /* Size of a pointer to an interval structure */ | 72 | /* Size of a pointer to an interval structure. */ |
| 73 | #define INTERVAL_PTR_SIZE (sizeof (struct interval *)) | 73 | #define INTERVAL_PTR_SIZE (sizeof (struct interval *)) |
| 74 | 74 | ||
| 75 | #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL) | 75 | #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL) |
| 76 | 76 | ||
| 77 | /* True if this interval has no right child. */ | 77 | /* True if this interval has no right child. */ |
| 78 | #define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL) | 78 | #define NULL_RIGHT_CHILD(i) ((i)->right == NULL_INTERVAL) |
| 79 | 79 | ||
| 80 | /* True if this interval has no left child. */ | 80 | /* True if this interval has no left child. */ |
| 81 | #define NULL_LEFT_CHILD(i) ((i)->left == NULL_INTERVAL) | 81 | #define NULL_LEFT_CHILD(i) ((i)->left == NULL_INTERVAL) |
| 82 | 82 | ||
| 83 | /* True if this interval has no parent. */ | 83 | /* True if this interval has no parent. */ |
| 84 | #define NULL_PARENT(i) ((i)->up_obj || (i)->up.interval == 0) | 84 | #define NULL_PARENT(i) ((i)->up_obj || (i)->up.interval == 0) |
| 85 | 85 | ||
| 86 | /* True if this interval is the left child of some other interval. */ | 86 | /* True if this interval is the left child of some other interval. */ |
| 87 | #define AM_LEFT_CHILD(i) (! NULL_PARENT (i) \ | 87 | #define AM_LEFT_CHILD(i) (! NULL_PARENT (i) \ |
| 88 | && INTERVAL_PARENT (i)->left == (i)) | 88 | && INTERVAL_PARENT (i)->left == (i)) |
| 89 | 89 | ||
| 90 | /* True if this interval is the right child of some other interval. */ | 90 | /* True if this interval is the right child of some other interval. */ |
| 91 | #define AM_RIGHT_CHILD(i) (! NULL_PARENT (i) \ | 91 | #define AM_RIGHT_CHILD(i) (! NULL_PARENT (i) \ |
| 92 | && INTERVAL_PARENT (i)->right == (i)) | 92 | && INTERVAL_PARENT (i)->right == (i)) |
| 93 | 93 | ||
| 94 | /* True if this interval has no children. */ | 94 | /* True if this interval has no children. */ |
| 95 | #define LEAF_INTERVAL_P(i) ((i)->left == NULL_INTERVAL \ | 95 | #define LEAF_INTERVAL_P(i) ((i)->left == NULL_INTERVAL \ |
| 96 | && (i)->right == NULL_INTERVAL) | 96 | && (i)->right == NULL_INTERVAL) |
| 97 | 97 | ||
| 98 | /* True if this interval has no parent and is therefore the root. */ | 98 | /* True if this interval has no parent and is therefore the root. */ |
| 99 | #define ROOT_INTERVAL_P(i) (NULL_PARENT (i)) | 99 | #define ROOT_INTERVAL_P(i) (NULL_PARENT (i)) |
| 100 | 100 | ||
| 101 | /* True if this interval is the only interval in the interval tree. */ | 101 | /* True if this interval is the only interval in the interval tree. */ |
| 102 | #define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P ((i)) && LEAF_INTERVAL_P ((i))) | 102 | #define ONLY_INTERVAL_P(i) (ROOT_INTERVAL_P ((i)) && LEAF_INTERVAL_P ((i))) |
| 103 | 103 | ||
| 104 | /* True if this interval has both left and right children. */ | 104 | /* True if this interval has both left and right children. */ |
| 105 | #define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \ | 105 | #define BOTH_KIDS_P(i) ((i)->left != NULL_INTERVAL \ |
| 106 | && (i)->right != NULL_INTERVAL) | 106 | && (i)->right != NULL_INTERVAL) |
| 107 | 107 | ||
| 108 | /* The total size of all text represented by this interval and all its | 108 | /* The total size of all text represented by this interval and all its |
| 109 | children in the tree. This is zero if the interval is null. */ | 109 | children in the tree. This is zero if the interval is null. */ |
| 110 | #define TOTAL_LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (i)->total_length) | 110 | #define TOTAL_LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (i)->total_length) |
| 111 | 111 | ||
| 112 | /* The size of text represented by this interval alone. */ | 112 | /* The size of text represented by this interval alone. */ |
| 113 | #define LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (TOTAL_LENGTH ((i)) \ | 113 | #define LENGTH(i) ((i) == NULL_INTERVAL ? 0 : (TOTAL_LENGTH ((i)) \ |
| 114 | - TOTAL_LENGTH ((i)->right) \ | 114 | - TOTAL_LENGTH ((i)->right) \ |
| 115 | - TOTAL_LENGTH ((i)->left))) | 115 | - TOTAL_LENGTH ((i)->left))) |
| 116 | 116 | ||
| 117 | /* The position of the character just past the end of I. Note that | 117 | /* The position of the character just past the end of I. Note that |
| 118 | the position cache i->position must be valid for this to work. */ | 118 | the position cache i->position must be valid for this to work. */ |
| 119 | #define INTERVAL_LAST_POS(i) ((i)->position + LENGTH ((i))) | 119 | #define INTERVAL_LAST_POS(i) ((i)->position + LENGTH ((i))) |
| 120 | 120 | ||
| 121 | /* The total size of the left subtree of this interval. */ | 121 | /* The total size of the left subtree of this interval. */ |
| 122 | #define LEFT_TOTAL_LENGTH(i) ((i)->left ? (i)->left->total_length : 0) | 122 | #define LEFT_TOTAL_LENGTH(i) ((i)->left ? (i)->left->total_length : 0) |
| 123 | 123 | ||
| 124 | /* The total size of the right subtree of this interval. */ | 124 | /* The total size of the right subtree of this interval. */ |
| 125 | #define RIGHT_TOTAL_LENGTH(i) ((i)->right ? (i)->right->total_length : 0) | 125 | #define RIGHT_TOTAL_LENGTH(i) ((i)->right ? (i)->right->total_length : 0) |
| 126 | 126 | ||
| 127 | 127 | ||
| 128 | /* These macros are for dealing with the interval properties. */ | 128 | /* These macros are for dealing with the interval properties. */ |
| 129 | 129 | ||
| 130 | /* True if this is a default interval, which is the same as being null | 130 | /* True if this is a default interval, which is the same as being null |
| 131 | or having no properties. */ | 131 | or having no properties. */ |
| 132 | #define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil)) | 132 | #define DEFAULT_INTERVAL_P(i) (NULL_INTERVAL_P (i) || EQ ((i)->plist, Qnil)) |
| 133 | 133 | ||
| 134 | /* Test what type of parent we have. Three possibilities: another | 134 | /* Test what type of parent we have. Three possibilities: another |
| @@ -169,7 +169,7 @@ struct interval | |||
| 169 | } \ | 169 | } \ |
| 170 | while (0) | 170 | while (0) |
| 171 | 171 | ||
| 172 | /* Reset this interval to its vanilla, or no-property state. */ | 172 | /* Reset this interval to its vanilla, or no-property state. */ |
| 173 | #define RESET_INTERVAL(i) \ | 173 | #define RESET_INTERVAL(i) \ |
| 174 | { \ | 174 | { \ |
| 175 | (i)->total_length = (i)->position = 0; \ | 175 | (i)->total_length = (i)->position = 0; \ |
| @@ -181,7 +181,7 @@ struct interval | |||
| 181 | (i)->plist = Qnil; \ | 181 | (i)->plist = Qnil; \ |
| 182 | } | 182 | } |
| 183 | 183 | ||
| 184 | /* Copy the cached property values of interval FROM to interval TO. */ | 184 | /* Copy the cached property values of interval FROM to interval TO. */ |
| 185 | #define COPY_INTERVAL_CACHE(from,to) \ | 185 | #define COPY_INTERVAL_CACHE(from,to) \ |
| 186 | { \ | 186 | { \ |
| 187 | (to)->write_protect = (from)->write_protect; \ | 187 | (to)->write_protect = (from)->write_protect; \ |
| @@ -190,7 +190,7 @@ struct interval | |||
| 190 | (to)->rear_sticky = (from)->rear_sticky; \ | 190 | (to)->rear_sticky = (from)->rear_sticky; \ |
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | /* Copy only the set bits of FROM's cache. */ | 193 | /* Copy only the set bits of FROM's cache. */ |
| 194 | #define MERGE_INTERVAL_CACHE(from,to) \ | 194 | #define MERGE_INTERVAL_CACHE(from,to) \ |
| 195 | { \ | 195 | { \ |
| 196 | if ((from)->write_protect) (to)->write_protect = 1; \ | 196 | if ((from)->write_protect) (to)->write_protect = 1; \ |
| @@ -201,18 +201,18 @@ struct interval | |||
| 201 | 201 | ||
| 202 | /* Macro determining whether the properties of an interval being | 202 | /* Macro determining whether the properties of an interval being |
| 203 | inserted should be merged with the properties of the text where | 203 | inserted should be merged with the properties of the text where |
| 204 | they are being inserted. */ | 204 | they are being inserted. */ |
| 205 | #define MERGE_INSERTIONS(i) 1 | 205 | #define MERGE_INSERTIONS(i) 1 |
| 206 | 206 | ||
| 207 | /* Macro determining if an invisible interval should be displayed | 207 | /* Macro determining if an invisible interval should be displayed |
| 208 | as a special glyph, or not at all. */ | 208 | as a special glyph, or not at all. */ |
| 209 | #define DISPLAY_INVISIBLE_GLYPH(i) 0 | 209 | #define DISPLAY_INVISIBLE_GLYPH(i) 0 |
| 210 | 210 | ||
| 211 | /* Is this interval visible? Replace later with cache access */ | 211 | /* Is this interval visible? Replace later with cache access. */ |
| 212 | #define INTERVAL_VISIBLE_P(i) \ | 212 | #define INTERVAL_VISIBLE_P(i) \ |
| 213 | (! NULL_INTERVAL_P (i) && NILP (textget ((i)->plist, Qinvisible))) | 213 | (! NULL_INTERVAL_P (i) && NILP (textget ((i)->plist, Qinvisible))) |
| 214 | 214 | ||
| 215 | /* Is this interval writable? Replace later with cache access */ | 215 | /* Is this interval writable? Replace later with cache access. */ |
| 216 | #define INTERVAL_WRITABLE_P(i) \ | 216 | #define INTERVAL_WRITABLE_P(i) \ |
| 217 | (! NULL_INTERVAL_P (i) \ | 217 | (! NULL_INTERVAL_P (i) \ |
| 218 | && (NILP (textget ((i)->plist, Qread_only)) \ | 218 | && (NILP (textget ((i)->plist, Qread_only)) \ |
| @@ -222,7 +222,7 @@ struct interval | |||
| 222 | : !NILP (Vinhibit_read_only))))) \ | 222 | : !NILP (Vinhibit_read_only))))) \ |
| 223 | 223 | ||
| 224 | /* Macros to tell whether insertions before or after this interval | 224 | /* Macros to tell whether insertions before or after this interval |
| 225 | should stick to it. */ | 225 | should stick to it. */ |
| 226 | /* Replace later with cache access */ | 226 | /* Replace later with cache access */ |
| 227 | /*#define FRONT_STICKY_P(i) ((i)->front_sticky != 0) | 227 | /*#define FRONT_STICKY_P(i) ((i)->front_sticky != 0) |
| 228 | #define END_STICKY_P(i) ((i)->rear_sticky != 0)*/ | 228 | #define END_STICKY_P(i) ((i)->rear_sticky != 0)*/ |
| @@ -245,11 +245,11 @@ struct interval | |||
| 245 | ? !NILP (prop) \ | 245 | ? !NILP (prop) \ |
| 246 | : invisible_p (prop, BVAR (current_buffer, invisibility_spec))) | 246 | : invisible_p (prop, BVAR (current_buffer, invisibility_spec))) |
| 247 | 247 | ||
| 248 | /* Declared in alloc.c */ | 248 | /* Declared in alloc.c. */ |
| 249 | 249 | ||
| 250 | extern INTERVAL make_interval (void); | 250 | extern INTERVAL make_interval (void); |
| 251 | 251 | ||
| 252 | /* Declared in intervals.c */ | 252 | /* Declared in intervals.c. */ |
| 253 | 253 | ||
| 254 | extern INTERVAL create_root_interval (Lisp_Object); | 254 | extern INTERVAL create_root_interval (Lisp_Object); |
| 255 | extern void copy_properties (INTERVAL, INTERVAL); | 255 | extern void copy_properties (INTERVAL, INTERVAL); |
| @@ -288,12 +288,12 @@ extern INTERVAL validate_interval_range (Lisp_Object, Lisp_Object *, | |||
| 288 | Lisp_Object *, int); | 288 | Lisp_Object *, int); |
| 289 | extern INTERVAL interval_of (EMACS_INT, Lisp_Object); | 289 | extern INTERVAL interval_of (EMACS_INT, Lisp_Object); |
| 290 | 290 | ||
| 291 | /* Defined in xdisp.c */ | 291 | /* Defined in xdisp.c. */ |
| 292 | extern int invisible_p (Lisp_Object, Lisp_Object); | 292 | extern int invisible_p (Lisp_Object, Lisp_Object); |
| 293 | 293 | ||
| 294 | /* Declared in textprop.c */ | 294 | /* Declared in textprop.c. */ |
| 295 | 295 | ||
| 296 | /* Types of hooks. */ | 296 | /* Types of hooks. */ |
| 297 | extern Lisp_Object Qpoint_left; | 297 | extern Lisp_Object Qpoint_left; |
| 298 | extern Lisp_Object Qpoint_entered; | 298 | extern Lisp_Object Qpoint_entered; |
| 299 | extern Lisp_Object Qmodification_hooks; | 299 | extern Lisp_Object Qmodification_hooks; |
| @@ -301,11 +301,11 @@ extern Lisp_Object Qcategory; | |||
| 301 | extern Lisp_Object Qlocal_map; | 301 | extern Lisp_Object Qlocal_map; |
| 302 | extern Lisp_Object Qkeymap; | 302 | extern Lisp_Object Qkeymap; |
| 303 | 303 | ||
| 304 | /* Visual properties text (including strings) may have. */ | 304 | /* Visual properties text (including strings) may have. */ |
| 305 | extern Lisp_Object Qfont; | 305 | extern Lisp_Object Qfont; |
| 306 | extern Lisp_Object Qinvisible, Qintangible; | 306 | extern Lisp_Object Qinvisible, Qintangible; |
| 307 | 307 | ||
| 308 | /* Sticky properties */ | 308 | /* Sticky properties. */ |
| 309 | extern Lisp_Object Qfront_sticky, Qrear_nonsticky; | 309 | extern Lisp_Object Qfront_sticky, Qrear_nonsticky; |
| 310 | 310 | ||
| 311 | EXFUN (Fget_char_property, 3); | 311 | EXFUN (Fget_char_property, 3); |
diff --git a/src/keyboard.c b/src/keyboard.c index 8b94ee6b5d1..bee91c6b5cf 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -4823,7 +4823,7 @@ const char *const lispy_function_keys[] = | |||
| 4823 | "ico-00", /* VK_ICO_00 0xE4 */ | 4823 | "ico-00", /* VK_ICO_00 0xE4 */ |
| 4824 | 0, /* VK_PROCESSKEY 0xE5 - used by IME */ | 4824 | 0, /* VK_PROCESSKEY 0xE5 - used by IME */ |
| 4825 | "ico-clear", /* VK_ICO_CLEAR 0xE6 */ | 4825 | "ico-clear", /* VK_ICO_CLEAR 0xE6 */ |
| 4826 | 0, /* VK_PACKET 0xE7 - used to pass unicode chars */ | 4826 | 0, /* VK_PACKET 0xE7 - used to pass Unicode chars */ |
| 4827 | 0, /* 0xE8 */ | 4827 | 0, /* 0xE8 */ |
| 4828 | "reset", /* VK_OEM_RESET 0xE9 */ | 4828 | "reset", /* VK_OEM_RESET 0xE9 */ |
| 4829 | "jump", /* VK_OEM_JUMP 0xEA */ | 4829 | "jump", /* VK_OEM_JUMP 0xEA */ |
| @@ -10153,7 +10153,7 @@ will read just one key sequence. */) | |||
| 10153 | ! NILP (can_return_switch_frame), 0); | 10153 | ! NILP (can_return_switch_frame), 0); |
| 10154 | 10154 | ||
| 10155 | #if 0 /* The following is fine for code reading a key sequence and | 10155 | #if 0 /* The following is fine for code reading a key sequence and |
| 10156 | then proceeding with a lenghty computation, but it's not good | 10156 | then proceeding with a lengthy computation, but it's not good |
| 10157 | for code reading keys in a loop, like an input method. */ | 10157 | for code reading keys in a loop, like an input method. */ |
| 10158 | #ifdef HAVE_WINDOW_SYSTEM | 10158 | #ifdef HAVE_WINDOW_SYSTEM |
| 10159 | if (display_hourglass_p) | 10159 | if (display_hourglass_p) |
| @@ -12120,7 +12120,7 @@ This variable is keyboard-local. */); | |||
| 12120 | Function key definitions that apply to all terminal devices should go | 12120 | Function key definitions that apply to all terminal devices should go |
| 12121 | here. If a mapping is defined in both the current | 12121 | here. If a mapping is defined in both the current |
| 12122 | `local-function-key-map' binding and this variable, then the local | 12122 | `local-function-key-map' binding and this variable, then the local |
| 12123 | definition will take precendence. */); | 12123 | definition will take precedence. */); |
| 12124 | Vfunction_key_map = Fmake_sparse_keymap (Qnil); | 12124 | Vfunction_key_map = Fmake_sparse_keymap (Qnil); |
| 12125 | 12125 | ||
| 12126 | DEFVAR_LISP ("key-translation-map", Vkey_translation_map, | 12126 | DEFVAR_LISP ("key-translation-map", Vkey_translation_map, |
diff --git a/src/keymap.c b/src/keymap.c index 6f9cf288f6d..b429ca968d7 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -2624,11 +2624,11 @@ remapped command in the returned list. */) | |||
| 2624 | /* We have a list of advertised bindings. */ | 2624 | /* We have a list of advertised bindings. */ |
| 2625 | while (CONSP (tem)) | 2625 | while (CONSP (tem)) |
| 2626 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) | 2626 | if (EQ (shadow_lookup (keymaps, XCAR (tem), Qnil, 0), definition)) |
| 2627 | return XCAR (tem); | 2627 | RETURN_UNGCPRO (XCAR (tem)); |
| 2628 | else | 2628 | else |
| 2629 | tem = XCDR (tem); | 2629 | tem = XCDR (tem); |
| 2630 | if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition)) | 2630 | if (EQ (shadow_lookup (keymaps, tem, Qnil, 0), definition)) |
| 2631 | return tem; | 2631 | RETURN_UNGCPRO (tem); |
| 2632 | } | 2632 | } |
| 2633 | 2633 | ||
| 2634 | sequences = Freverse (where_is_internal (definition, keymaps, | 2634 | sequences = Freverse (where_is_internal (definition, keymaps, |
diff --git a/src/lisp.h b/src/lisp.h index 5407956c202..2056b7caff8 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -947,7 +947,7 @@ struct Lisp_Vector | |||
| 947 | 947 | ||
| 948 | /* Compute A OP B, using the unsigned comparison operator OP. A and B | 948 | /* Compute A OP B, using the unsigned comparison operator OP. A and B |
| 949 | should be integer expressions. This is not the same as | 949 | should be integer expressions. This is not the same as |
| 950 | mathemeatical comparison; for example, UNSIGNED_CMP (0, <, -1) | 950 | mathematical comparison; for example, UNSIGNED_CMP (0, <, -1) |
| 951 | returns 1. For efficiency, prefer plain unsigned comparison if A | 951 | returns 1. For efficiency, prefer plain unsigned comparison if A |
| 952 | and B's sizes both fit (after integer promotion). */ | 952 | and B's sizes both fit (after integer promotion). */ |
| 953 | #define UNSIGNED_CMP(a, op, b) \ | 953 | #define UNSIGNED_CMP(a, op, b) \ |
| @@ -1881,9 +1881,6 @@ typedef struct { | |||
| 1881 | CHECK_NATNUM (tmp); \ | 1881 | CHECK_NATNUM (tmp); \ |
| 1882 | XSETCDR ((x), tmp); \ | 1882 | XSETCDR ((x), tmp); \ |
| 1883 | } while (0) | 1883 | } while (0) |
| 1884 | |||
| 1885 | /* Cast pointers to this type to compare them. */ | ||
| 1886 | #define PNTR_COMPARISON_TYPE uintptr_t | ||
| 1887 | 1884 | ||
| 1888 | /* Define a built-in function for calling from Lisp. | 1885 | /* Define a built-in function for calling from Lisp. |
| 1889 | `lname' should be the name to give the function in Lisp, | 1886 | `lname' should be the name to give the function in Lisp, |
diff --git a/src/lread.c b/src/lread.c index 110f3e62f71..f1f6f0cbd78 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -3984,7 +3984,7 @@ init_obarray (void) | |||
| 3984 | Qnil = intern_c_string ("nil"); | 3984 | Qnil = intern_c_string ("nil"); |
| 3985 | 3985 | ||
| 3986 | /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil, | 3986 | /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil, |
| 3987 | so those two need to be fixed manally. */ | 3987 | so those two need to be fixed manually. */ |
| 3988 | SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound); | 3988 | SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound); |
| 3989 | XSYMBOL (Qunbound)->function = Qunbound; | 3989 | XSYMBOL (Qunbound)->function = Qunbound; |
| 3990 | XSYMBOL (Qunbound)->plist = Qnil; | 3990 | XSYMBOL (Qunbound)->plist = Qnil; |
diff --git a/src/m/ibms390.h b/src/m/ibms390.h deleted file mode 100644 index c309035dc5c..00000000000 --- a/src/m/ibms390.h +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | /* Machine description file for IBM S390 in 32-bit mode | ||
| 2 | |||
| 3 | Copyright (C) 1985-1986, 2001-2011 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 8 | it under the terms of the GNU General Public License as published by | ||
| 9 | the Free Software Foundation, either version 3 of the License, or | ||
| 10 | (at your option) any later version. | ||
| 11 | |||
| 12 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | GNU General Public License for more details. | ||
| 16 | |||
| 17 | You should have received a copy of the GNU General Public License | ||
| 18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | ||
| 19 | |||
| 20 | |||
| 21 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 22 | pure and impure space as loaded can vary, and even their | ||
| 23 | relative order cannot be relied on. | ||
| 24 | |||
| 25 | Otherwise Emacs assumes that text space precedes data space, | ||
| 26 | numerically. */ | ||
| 27 | #define VIRT_ADDR_VARIES | ||
diff --git a/src/m/ibms390x.h b/src/m/ibms390x.h index 04092d6e1ac..5ea7974b052 100644 --- a/src/m/ibms390x.h +++ b/src/m/ibms390x.h | |||
| @@ -17,8 +17,6 @@ GNU General Public License for more details. | |||
| 17 | You should have received a copy of the GNU General Public License | 17 | You should have received a copy of the GNU General Public License |
| 18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | 18 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
| 19 | 19 | ||
| 20 | #include "ibms390.h" | ||
| 21 | |||
| 22 | #define BITS_PER_LONG 64 | 20 | #define BITS_PER_LONG 64 |
| 23 | #define BITS_PER_EMACS_INT 64 | 21 | #define BITS_PER_EMACS_INT 64 |
| 24 | 22 | ||
diff --git a/src/m/intel386.h b/src/m/intel386.h index 16f0645715c..114b7fef963 100644 --- a/src/m/intel386.h +++ b/src/m/intel386.h | |||
| @@ -19,7 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 19 | 19 | ||
| 20 | 20 | ||
| 21 | #ifdef WINDOWSNT | 21 | #ifdef WINDOWSNT |
| 22 | #define VIRT_ADDR_VARIES | ||
| 23 | #define DATA_START get_data_start () | 22 | #define DATA_START get_data_start () |
| 24 | #endif | 23 | #endif |
| 25 | 24 | ||
| @@ -28,4 +27,3 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 28 | /* we cannot get the maximum address for brk */ | 27 | /* we cannot get the maximum address for brk */ |
| 29 | #define ULIMIT_BREAK_VALUE (32*1024*1024) | 28 | #define ULIMIT_BREAK_VALUE (32*1024*1024) |
| 30 | #endif | 29 | #endif |
| 31 | |||
diff --git a/src/m/template.h b/src/m/template.h index 54fb0da9521..38649e8ac6d 100644 --- a/src/m/template.h +++ b/src/m/template.h | |||
| @@ -21,14 +21,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 21 | does not define it automatically. | 21 | does not define it automatically. |
| 22 | Ones defined so far include m68k and many others */ | 22 | Ones defined so far include m68k and many others */ |
| 23 | 23 | ||
| 24 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 25 | pure and impure space as loaded can vary, and even their | ||
| 26 | relative order cannot be relied on. | ||
| 27 | |||
| 28 | Otherwise Emacs assumes that text space precedes data space, | ||
| 29 | numerically. */ | ||
| 30 | #define VIRT_ADDR_VARIES | ||
| 31 | |||
| 32 | /* After adding support for a new machine, modify the large case | 24 | /* After adding support for a new machine, modify the large case |
| 33 | statement in configure.in to recognize reasonable | 25 | statement in configure.in to recognize reasonable |
| 34 | configuration names, and add a description of the system to | 26 | configuration names, and add a description of the system to |
diff --git a/src/msdos.c b/src/msdos.c index 6b6e365a165..4c08c5b29e0 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -1342,7 +1342,7 @@ static void | |||
| 1342 | IT_copy_glyphs (int xfrom, int xto, size_t len, int ypos) | 1342 | IT_copy_glyphs (int xfrom, int xto, size_t len, int ypos) |
| 1343 | { | 1343 | { |
| 1344 | /* The offsets of source and destination relative to the | 1344 | /* The offsets of source and destination relative to the |
| 1345 | conventional memorty selector. */ | 1345 | conventional memory selector. */ |
| 1346 | int from = 2 * (xfrom + screen_size_X * ypos) + ScreenPrimary; | 1346 | int from = 2 * (xfrom + screen_size_X * ypos) + ScreenPrimary; |
| 1347 | int to = 2 * (xto + screen_size_X * ypos) + ScreenPrimary; | 1347 | int to = 2 * (xto + screen_size_X * ypos) + ScreenPrimary; |
| 1348 | 1348 | ||
diff --git a/src/nsfont.m b/src/nsfont.m index c4d9123faef..7d691ced6e1 100644 --- a/src/nsfont.m +++ b/src/nsfont.m | |||
| @@ -256,7 +256,7 @@ ns_char_width (NSFont *sfont, int c) | |||
| 256 | 256 | ||
| 257 | 257 | ||
| 258 | /* Return whether set1 covers set2 to a reasonable extent given by pct. | 258 | /* Return whether set1 covers set2 to a reasonable extent given by pct. |
| 259 | We check, out of each 16 unicode char range containing chars in set2, | 259 | We check, out of each 16 Unicode char range containing chars in set2, |
| 260 | whether at least one character is present in set1. | 260 | whether at least one character is present in set1. |
| 261 | This must be true for pct of the pairs to consider it covering. */ | 261 | This must be true for pct of the pairs to consider it covering. */ |
| 262 | static BOOL | 262 | static BOOL |
| @@ -297,7 +297,7 @@ static NSString | |||
| 297 | 297 | ||
| 298 | 298 | ||
| 299 | /* Convert OTF 4-letter script code to emacs script name. (Why can't | 299 | /* Convert OTF 4-letter script code to emacs script name. (Why can't |
| 300 | everyone just use some standard unicode names for these?) */ | 300 | everyone just use some standard Unicode names for these?) */ |
| 301 | static NSString | 301 | static NSString |
| 302 | *ns_otf_to_script (Lisp_Object otf) | 302 | *ns_otf_to_script (Lisp_Object otf) |
| 303 | { | 303 | { |
| @@ -329,7 +329,7 @@ static NSString | |||
| 329 | 329 | ||
| 330 | /* Searches the :script, :lang, and :otf extra-bundle properties of the spec, | 330 | /* Searches the :script, :lang, and :otf extra-bundle properties of the spec, |
| 331 | plus registry regular property, for something that can be mapped to a | 331 | plus registry regular property, for something that can be mapped to a |
| 332 | unicode script. Empty string returned if no script spec found. */ | 332 | Unicode script. Empty string returned if no script spec found. */ |
| 333 | static NSString | 333 | static NSString |
| 334 | *ns_get_req_script (Lisp_Object font_spec) | 334 | *ns_get_req_script (Lisp_Object font_spec) |
| 335 | { | 335 | { |
| @@ -385,7 +385,7 @@ accumulate_script_ranges (Lisp_Object arg, Lisp_Object range, Lisp_Object val) | |||
| 385 | } | 385 | } |
| 386 | 386 | ||
| 387 | 387 | ||
| 388 | /* Use the unicode range information in Vchar_script_table to convert a script | 388 | /* Use the Unicode range information in Vchar_script_table to convert a script |
| 389 | name into an NSCharacterSet. */ | 389 | name into an NSCharacterSet. */ |
| 390 | static NSCharacterSet | 390 | static NSCharacterSet |
| 391 | *ns_script_to_charset (NSString *scriptName) | 391 | *ns_script_to_charset (NSString *scriptName) |
| @@ -426,7 +426,7 @@ static NSCharacterSet | |||
| 426 | If none are found, we reduce the percentage and try again, until 5%. | 426 | If none are found, we reduce the percentage and try again, until 5%. |
| 427 | This provides a font with at least some characters if such can be found. | 427 | This provides a font with at least some characters if such can be found. |
| 428 | We don't use isSupersetOfSet: because (a) it doesn't work on Tiger, and | 428 | We don't use isSupersetOfSet: because (a) it doesn't work on Tiger, and |
| 429 | (b) need approximate match as fonts covering full unicode ranges are rare. */ | 429 | (b) need approximate match as fonts covering full Unicode ranges are rare. */ |
| 430 | static NSSet | 430 | static NSSet |
| 431 | *ns_get_covering_families (NSString *script, float pct) | 431 | *ns_get_covering_families (NSString *script, float pct) |
| 432 | { | 432 | { |
| @@ -1292,7 +1292,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block) | |||
| 1292 | if (!unichars || !(font_info->glyphs[block])) | 1292 | if (!unichars || !(font_info->glyphs[block])) |
| 1293 | abort (); | 1293 | abort (); |
| 1294 | 1294 | ||
| 1295 | /* create a string containing all unicode characters in this block */ | 1295 | /* create a string containing all Unicode characters in this block */ |
| 1296 | for (idx = block<<8, i =0; i<0x100; idx++, i++) | 1296 | for (idx = block<<8, i =0; i<0x100; idx++, i++) |
| 1297 | if (idx < 0xD800 || idx > 0xDFFF) | 1297 | if (idx < 0xD800 || idx > 0xDFFF) |
| 1298 | unichars[i] = idx; | 1298 | unichars[i] = idx; |
| @@ -1487,5 +1487,5 @@ syms_of_nsfont (void) | |||
| 1487 | DEFSYM (Qroman, "roman"); | 1487 | DEFSYM (Qroman, "roman"); |
| 1488 | DEFSYM (Qmedium, "medium"); | 1488 | DEFSYM (Qmedium, "medium"); |
| 1489 | DEFVAR_LISP ("ns-reg-to-script", Vns_reg_to_script, | 1489 | DEFVAR_LISP ("ns-reg-to-script", Vns_reg_to_script, |
| 1490 | doc: /* Internal use: maps font registry to unicode script. */); | 1490 | doc: /* Internal use: maps font registry to Unicode script. */); |
| 1491 | } | 1491 | } |
diff --git a/src/nsterm.h b/src/nsterm.h index 574d31c962a..52246caac84 100644 --- a/src/nsterm.h +++ b/src/nsterm.h | |||
| @@ -470,7 +470,7 @@ struct nsfont_info | |||
| 470 | XCharStruct max_bounds; | 470 | XCharStruct max_bounds; |
| 471 | /* we compute glyph codes and metrics on-demand in blocks of 256 indexed | 471 | /* we compute glyph codes and metrics on-demand in blocks of 256 indexed |
| 472 | by hibyte, lobyte */ | 472 | by hibyte, lobyte */ |
| 473 | unsigned short **glyphs; /* map unicode index to glyph */ | 473 | unsigned short **glyphs; /* map Unicode index to glyph */ |
| 474 | struct font_metrics **metrics; | 474 | struct font_metrics **metrics; |
| 475 | }; | 475 | }; |
| 476 | 476 | ||
diff --git a/src/print.c b/src/print.c index 1d6998d8f1a..0fdb750f370 100644 --- a/src/print.c +++ b/src/print.c | |||
| @@ -1637,7 +1637,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag | |||
| 1637 | /* Detect circular list. */ | 1637 | /* Detect circular list. */ |
| 1638 | if (NILP (Vprint_circle)) | 1638 | if (NILP (Vprint_circle)) |
| 1639 | { | 1639 | { |
| 1640 | /* Simple but imcomplete way. */ | 1640 | /* Simple but incomplete way. */ |
| 1641 | if (i != 0 && EQ (obj, halftail)) | 1641 | if (i != 0 && EQ (obj, halftail)) |
| 1642 | { | 1642 | { |
| 1643 | sprintf (buf, " . #%"pMd, i / 2); | 1643 | sprintf (buf, " . #%"pMd, i / 2); |
diff --git a/src/process.c b/src/process.c index 53382d804f2..a02ba44ae71 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -1414,7 +1414,7 @@ usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) | |||
| 1414 | val = XCDR (Vdefault_process_coding_system); | 1414 | val = XCDR (Vdefault_process_coding_system); |
| 1415 | } | 1415 | } |
| 1416 | XPROCESS (proc)->encode_coding_system = val; | 1416 | XPROCESS (proc)->encode_coding_system = val; |
| 1417 | /* Note: At this momemnt, the above coding system may leave | 1417 | /* Note: At this moment, the above coding system may leave |
| 1418 | text-conversion or eol-conversion unspecified. They will be | 1418 | text-conversion or eol-conversion unspecified. They will be |
| 1419 | decided after we read output from the process and decode it by | 1419 | decided after we read output from the process and decode it by |
| 1420 | some coding system, or just before we actually send a text to | 1420 | some coding system, or just before we actually send a text to |
| @@ -4620,15 +4620,43 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, | |||
| 4620 | some data in the TCP buffers so that select works, but | 4620 | some data in the TCP buffers so that select works, but |
| 4621 | with custom pull/push functions we need to check if some | 4621 | with custom pull/push functions we need to check if some |
| 4622 | data is available in the buffers manually. */ | 4622 | data is available in the buffers manually. */ |
| 4623 | if (nfds == 0 && | 4623 | if (nfds == 0) |
| 4624 | wait_proc && wait_proc->gnutls_p /* Check for valid process. */ | 4624 | { |
| 4625 | /* Do we have pending data? */ | 4625 | if (! wait_proc) |
| 4626 | && emacs_gnutls_record_check_pending (wait_proc->gnutls_state) > 0) | 4626 | { |
| 4627 | { | 4627 | /* We're not waiting on a specific process, so loop |
| 4628 | nfds = 1; | 4628 | through all the channels and check for data. |
| 4629 | /* Set to Available. */ | 4629 | This is a workaround needed for some versions of |
| 4630 | FD_SET (wait_proc->infd, &Available); | 4630 | the gnutls library -- 2.12.14 has been confirmed |
| 4631 | } | 4631 | to need it. See |
| 4632 | http://comments.gmane.org/gmane.emacs.devel/145074 */ | ||
| 4633 | struct Lisp_Process *proc; | ||
| 4634 | for (channel = 0; channel < MAXDESC; ++channel) | ||
| 4635 | { | ||
| 4636 | if (! NILP (chan_process[channel]) && | ||
| 4637 | (proc = XPROCESS (chan_process[channel])) != NULL && | ||
| 4638 | proc->gnutls_p && | ||
| 4639 | proc->infd && | ||
| 4640 | emacs_gnutls_record_check_pending (proc->gnutls_state) > 0) | ||
| 4641 | { | ||
| 4642 | nfds++; | ||
| 4643 | FD_SET (proc->infd, &Available); | ||
| 4644 | } | ||
| 4645 | } | ||
| 4646 | } | ||
| 4647 | else | ||
| 4648 | { | ||
| 4649 | /* Check this specific channel. */ | ||
| 4650 | if (wait_proc->gnutls_p && /* Check for valid process. */ | ||
| 4651 | /* Do we have pending data? */ | ||
| 4652 | emacs_gnutls_record_check_pending (wait_proc->gnutls_state) > 0) | ||
| 4653 | { | ||
| 4654 | nfds = 1; | ||
| 4655 | /* Set to Available. */ | ||
| 4656 | FD_SET (wait_proc->infd, &Available); | ||
| 4657 | } | ||
| 4658 | } | ||
| 4659 | } | ||
| 4632 | #endif | 4660 | #endif |
| 4633 | } | 4661 | } |
| 4634 | 4662 | ||
diff --git a/src/puresize.h b/src/puresize.h index c26c496a757..4290c30c68d 100644 --- a/src/puresize.h +++ b/src/puresize.h | |||
| @@ -75,21 +75,7 @@ extern void pure_write_error (void) NO_RETURN; | |||
| 75 | 75 | ||
| 76 | /* Define PURE_P. */ | 76 | /* Define PURE_P. */ |
| 77 | 77 | ||
| 78 | #ifdef VIRT_ADDR_VARIES | ||
| 79 | /* For machines where text and data can go anywhere | ||
| 80 | in virtual memory. */ | ||
| 81 | |||
| 82 | extern EMACS_INT pure[]; | 78 | extern EMACS_INT pure[]; |
| 83 | 79 | ||
| 84 | #define PURE_P(obj) \ | 80 | #define PURE_P(obj) \ |
| 85 | ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) ((char *) pure + PURESIZE) \ | 81 | ((uintptr_t) XPNTR (obj) - (uintptr_t) pure <= PURESIZE) |
| 86 | && (PNTR_COMPARISON_TYPE) XPNTR (obj) >= (PNTR_COMPARISON_TYPE) pure) | ||
| 87 | |||
| 88 | #else /* not VIRT_ADDR_VARIES */ | ||
| 89 | |||
| 90 | extern char my_edata[]; | ||
| 91 | |||
| 92 | #define PURE_P(obj) \ | ||
| 93 | ((PNTR_COMPARISON_TYPE) XPNTR (obj) < (PNTR_COMPARISON_TYPE) my_edata) | ||
| 94 | |||
| 95 | #endif /* VIRT_ADDRESS_VARIES */ | ||
diff --git a/src/s/cygwin.h b/src/s/cygwin.h index af5308ff7bb..8f5a0ab1fc7 100644 --- a/src/s/cygwin.h +++ b/src/s/cygwin.h | |||
| @@ -91,9 +91,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 91 | why it needed to be changed. */ | 91 | why it needed to be changed. */ |
| 92 | #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS | 92 | #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS |
| 93 | 93 | ||
| 94 | /* Virtual addresses of pure and impure space can vary, as on Windows. */ | ||
| 95 | #define VIRT_ADDR_VARIES | ||
| 96 | |||
| 97 | /* Emacs supplies its own malloc, but glib (part of Gtk+) calls | 94 | /* Emacs supplies its own malloc, but glib (part of Gtk+) calls |
| 98 | memalign and on Cygwin, that becomes the Cygwin-supplied memalign. | 95 | memalign and on Cygwin, that becomes the Cygwin-supplied memalign. |
| 99 | As malloc is not the Cygwin malloc, the Cygwin memalign always | 96 | As malloc is not the Cygwin malloc, the Cygwin memalign always |
diff --git a/src/s/hpux10-20.h b/src/s/hpux10-20.h index 37199bcc29b..be457498add 100644 --- a/src/s/hpux10-20.h +++ b/src/s/hpux10-20.h | |||
| @@ -100,14 +100,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 100 | header sections which lose when `static' is defined away, as it is | 100 | header sections which lose when `static' is defined away, as it is |
| 101 | on HP-UX. (You get duplicate symbol errors on linking). */ | 101 | on HP-UX. (You get duplicate symbol errors on linking). */ |
| 102 | #undef _FILE_OFFSET_BITS | 102 | #undef _FILE_OFFSET_BITS |
| 103 | |||
| 104 | /* Define VIRT_ADDR_VARIES if the virtual addresses of | ||
| 105 | pure and impure space as loaded can vary, and even their | ||
| 106 | relative order cannot be relied on. | ||
| 107 | |||
| 108 | Otherwise Emacs assumes that text space precedes data space, | ||
| 109 | numerically. */ | ||
| 110 | #define VIRT_ADDR_VARIES | ||
| 111 | 103 | ||
| 112 | /* The data segment on this machine always starts at address 0x40000000. */ | 104 | /* The data segment on this machine always starts at address 0x40000000. */ |
| 113 | #define DATA_SEG_BITS 0x40000000 | 105 | #define DATA_SEG_BITS 0x40000000 |
diff --git a/src/search.c b/src/search.c index a3b4e1dcbce..a6a0fddb137 100644 --- a/src/search.c +++ b/src/search.c | |||
| @@ -1892,7 +1892,7 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, | |||
| 1892 | || CHAR_HEAD_P (cursor[1])) | 1892 | || CHAR_HEAD_P (cursor[1])) |
| 1893 | && (CHAR_HEAD_P (cursor[0]) | 1893 | && (CHAR_HEAD_P (cursor[0]) |
| 1894 | /* Check if this is the last byte of | 1894 | /* Check if this is the last byte of |
| 1895 | a translable character. */ | 1895 | a translatable character. */ |
| 1896 | || (translate_prev_byte1 == cursor[-1] | 1896 | || (translate_prev_byte1 == cursor[-1] |
| 1897 | && (CHAR_HEAD_P (translate_prev_byte1) | 1897 | && (CHAR_HEAD_P (translate_prev_byte1) |
| 1898 | || (translate_prev_byte2 == cursor[-2] | 1898 | || (translate_prev_byte2 == cursor[-2] |
| @@ -1991,7 +1991,7 @@ boyer_moore (EMACS_INT n, unsigned char *base_pat, | |||
| 1991 | || CHAR_HEAD_P (ptr[1])) | 1991 | || CHAR_HEAD_P (ptr[1])) |
| 1992 | && (CHAR_HEAD_P (ptr[0]) | 1992 | && (CHAR_HEAD_P (ptr[0]) |
| 1993 | /* Check if this is the last byte of a | 1993 | /* Check if this is the last byte of a |
| 1994 | translable character. */ | 1994 | translatable character. */ |
| 1995 | || (translate_prev_byte1 == ptr[-1] | 1995 | || (translate_prev_byte1 == ptr[-1] |
| 1996 | && (CHAR_HEAD_P (translate_prev_byte1) | 1996 | && (CHAR_HEAD_P (translate_prev_byte1) |
| 1997 | || (translate_prev_byte2 == ptr[-2] | 1997 | || (translate_prev_byte2 == ptr[-2] |
diff --git a/src/sound.c b/src/sound.c index 39007574afc..4e9758d27df 100644 --- a/src/sound.c +++ b/src/sound.c | |||
| @@ -267,7 +267,7 @@ struct sound | |||
| 267 | read from the start of a sound file. */ | 267 | read from the start of a sound file. */ |
| 268 | char *header; | 268 | char *header; |
| 269 | 269 | ||
| 270 | /* Number of bytes raed from sound file. This is always <= | 270 | /* Number of bytes read from sound file. This is always <= |
| 271 | MAX_SOUND_HEADER_BYTES. */ | 271 | MAX_SOUND_HEADER_BYTES. */ |
| 272 | int header_size; | 272 | int header_size; |
| 273 | 273 | ||
diff --git a/src/sysdep.c b/src/sysdep.c index d666f8dbb79..ae200308bf3 100644 --- a/src/sysdep.c +++ b/src/sysdep.c | |||
| @@ -1663,7 +1663,7 @@ init_signals (void) | |||
| 1663 | sys_siglist[SIGQUIT] = "Quit"; | 1663 | sys_siglist[SIGQUIT] = "Quit"; |
| 1664 | # endif | 1664 | # endif |
| 1665 | # ifdef SIGRETRACT | 1665 | # ifdef SIGRETRACT |
| 1666 | sys_siglist[SIGRETRACT] = "Need to relinguish monitor mode"; | 1666 | sys_siglist[SIGRETRACT] = "Need to relinquish monitor mode"; |
| 1667 | # endif | 1667 | # endif |
| 1668 | # ifdef SIGSAK | 1668 | # ifdef SIGSAK |
| 1669 | sys_siglist[SIGSAK] = "Secure attention"; | 1669 | sys_siglist[SIGSAK] = "Secure attention"; |
| @@ -3057,7 +3057,7 @@ generate_inode_val (const char * name) | |||
| 3057 | unsigned hash; | 3057 | unsigned hash; |
| 3058 | 3058 | ||
| 3059 | /* Get the truly canonical filename, if it exists. (Note: this | 3059 | /* Get the truly canonical filename, if it exists. (Note: this |
| 3060 | doesn't resolve aliasing due to subst commands, or recognise hard | 3060 | doesn't resolve aliasing due to subst commands, or recognize hard |
| 3061 | links. */ | 3061 | links. */ |
| 3062 | if (!w32_get_long_filename ((char *)name, fullname, MAX_PATH)) | 3062 | if (!w32_get_long_filename ((char *)name, fullname, MAX_PATH)) |
| 3063 | abort (); | 3063 | abort (); |
| @@ -3403,7 +3403,7 @@ stat (const char * path, struct stat * buf) | |||
| 3403 | FILE_FLAG_BACKUP_SEMANTICS, NULL)) | 3403 | FILE_FLAG_BACKUP_SEMANTICS, NULL)) |
| 3404 | != INVALID_HANDLE_VALUE) | 3404 | != INVALID_HANDLE_VALUE) |
| 3405 | { | 3405 | { |
| 3406 | /* This is more accurate in terms of gettting the correct number | 3406 | /* This is more accurate in terms of getting the correct number |
| 3407 | of links, but is quite slow (it is noticeable when Emacs is | 3407 | of links, but is quite slow (it is noticeable when Emacs is |
| 3408 | making a list of file name completions). */ | 3408 | making a list of file name completions). */ |
| 3409 | BY_HANDLE_FILE_INFORMATION info; | 3409 | BY_HANDLE_FILE_INFORMATION info; |
| @@ -5845,7 +5845,7 @@ term_ntproc (void) | |||
| 5845 | void | 5845 | void |
| 5846 | init_ntproc (void) | 5846 | init_ntproc (void) |
| 5847 | { | 5847 | { |
| 5848 | /* Initialise the socket interface now if available and requested by | 5848 | /* Initialize the socket interface now if available and requested by |
| 5849 | the user by defining PRELOAD_WINSOCK; otherwise loading will be | 5849 | the user by defining PRELOAD_WINSOCK; otherwise loading will be |
| 5850 | delayed until open-network-stream is called (w32-has-winsock can | 5850 | delayed until open-network-stream is called (w32-has-winsock can |
| 5851 | also be used to dynamically load or reload winsock). | 5851 | also be used to dynamically load or reload winsock). |
diff --git a/src/w32console.c b/src/w32console.c index 49bf56ddee9..30c71f1c276 100644 --- a/src/w32console.c +++ b/src/w32console.c | |||
| @@ -748,7 +748,7 @@ syms_of_ntterm (void) | |||
| 748 | doc: /* Non-nil means make terminal frames use the full screen buffer dimensions. | 748 | doc: /* Non-nil means make terminal frames use the full screen buffer dimensions. |
| 749 | This is desirable when running Emacs over telnet. | 749 | This is desirable when running Emacs over telnet. |
| 750 | A value of nil means use the current console window dimensions; this | 750 | A value of nil means use the current console window dimensions; this |
| 751 | may be preferrable when working directly at the console with a large | 751 | may be preferable when working directly at the console with a large |
| 752 | scroll-back buffer. */); | 752 | scroll-back buffer. */); |
| 753 | w32_use_full_screen_buffer = 0; | 753 | w32_use_full_screen_buffer = 0; |
| 754 | 754 | ||
| @@ -757,4 +757,3 @@ scroll-back buffer. */); | |||
| 757 | defsubr (&Sset_cursor_size); | 757 | defsubr (&Sset_cursor_size); |
| 758 | defsubr (&Sset_message_beep); | 758 | defsubr (&Sset_message_beep); |
| 759 | } | 759 | } |
| 760 | |||
diff --git a/src/w32fns.c b/src/w32fns.c index 4a6da46141c..434861320a5 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -2262,7 +2262,7 @@ w32_msg_pump (deferred_msg * msg_buf) | |||
| 2262 | some third party shell extensions can cause it to be used in | 2262 | some third party shell extensions can cause it to be used in |
| 2263 | system dialogs, which causes a crash if it is not initialized. | 2263 | system dialogs, which causes a crash if it is not initialized. |
| 2264 | This is a known bug in Windows, which was fixed long ago, but | 2264 | This is a known bug in Windows, which was fixed long ago, but |
| 2265 | the patch for XP is not publically available until XP SP3, | 2265 | the patch for XP is not publicly available until XP SP3, |
| 2266 | and older versions will never be patched. */ | 2266 | and older versions will never be patched. */ |
| 2267 | CoInitialize (NULL); | 2267 | CoInitialize (NULL); |
| 2268 | w32_createwindow ((struct frame *) msg.wParam); | 2268 | w32_createwindow ((struct frame *) msg.wParam); |
| @@ -2880,7 +2880,7 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 2880 | key.dwControlKeyState = modifiers; | 2880 | key.dwControlKeyState = modifiers; |
| 2881 | 2881 | ||
| 2882 | add = w32_kbd_patch_key (&key); | 2882 | add = w32_kbd_patch_key (&key); |
| 2883 | /* 0 means an unrecognised keycode, negative means | 2883 | /* 0 means an unrecognized keycode, negative means |
| 2884 | dead key. Ignore both. */ | 2884 | dead key. Ignore both. */ |
| 2885 | while (--add >= 0) | 2885 | while (--add >= 0) |
| 2886 | { | 2886 | { |
| @@ -2943,7 +2943,7 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 2943 | break; | 2943 | break; |
| 2944 | 2944 | ||
| 2945 | case WM_IME_CHAR: | 2945 | case WM_IME_CHAR: |
| 2946 | /* If we can't get the IME result as unicode, use default processing, | 2946 | /* If we can't get the IME result as Unicode, use default processing, |
| 2947 | which will at least allow characters decodable in the system locale | 2947 | which will at least allow characters decodable in the system locale |
| 2948 | get through. */ | 2948 | get through. */ |
| 2949 | if (!get_composition_string_fn) | 2949 | if (!get_composition_string_fn) |
diff --git a/src/w32font.c b/src/w32font.c index bd58e7e757b..5cc37c0e74f 100644 --- a/src/w32font.c +++ b/src/w32font.c | |||
| @@ -462,7 +462,7 @@ w32font_has_char (Lisp_Object entity, int c) | |||
| 462 | Return a glyph code of FONT for character C (Unicode code point). | 462 | Return a glyph code of FONT for character C (Unicode code point). |
| 463 | If FONT doesn't have such a glyph, return FONT_INVALID_CODE. | 463 | If FONT doesn't have such a glyph, return FONT_INVALID_CODE. |
| 464 | 464 | ||
| 465 | For speed, the gdi backend uses unicode (Emacs calls encode_char | 465 | For speed, the gdi backend uses Unicode (Emacs calls encode_char |
| 466 | far too often for it to be efficient). But we still need to detect | 466 | far too often for it to be efficient). But we still need to detect |
| 467 | which characters are not supported by the font. | 467 | which characters are not supported by the font. |
| 468 | */ | 468 | */ |
| @@ -620,7 +620,7 @@ w32font_text_extents (struct font *font, unsigned *code, | |||
| 620 | total_width = size.cx; | 620 | total_width = size.cx; |
| 621 | } | 621 | } |
| 622 | 622 | ||
| 623 | /* On 95/98/ME, only some unicode functions are available, so fallback | 623 | /* On 95/98/ME, only some Unicode functions are available, so fallback |
| 624 | on doing a dummy draw to find the total width. */ | 624 | on doing a dummy draw to find the total width. */ |
| 625 | if (!total_width) | 625 | if (!total_width) |
| 626 | { | 626 | { |
| @@ -1153,7 +1153,7 @@ w32_enumfont_pattern_entity (Lisp_Object frame, | |||
| 1153 | else | 1153 | else |
| 1154 | ASET (entity, FONT_SIZE_INDEX, make_number (0)); | 1154 | ASET (entity, FONT_SIZE_INDEX, make_number (0)); |
| 1155 | 1155 | ||
| 1156 | /* Cache unicode codepoints covered by this font, as there is no other way | 1156 | /* Cache Unicode codepoints covered by this font, as there is no other way |
| 1157 | of getting this information easily. */ | 1157 | of getting this information easily. */ |
| 1158 | if (font_type & TRUETYPE_FONTTYPE) | 1158 | if (font_type & TRUETYPE_FONTTYPE) |
| 1159 | { | 1159 | { |
| @@ -1514,7 +1514,7 @@ add_font_entity_to_list (ENUMLOGFONTEX *logical_font, | |||
| 1514 | /* Skip non matching fonts. */ | 1514 | /* Skip non matching fonts. */ |
| 1515 | 1515 | ||
| 1516 | /* For uniscribe backend, consider only truetype or opentype fonts | 1516 | /* For uniscribe backend, consider only truetype or opentype fonts |
| 1517 | that have some unicode coverage. */ | 1517 | that have some Unicode coverage. */ |
| 1518 | if (match_data->opentype_only | 1518 | if (match_data->opentype_only |
| 1519 | && ((!(physical_font->ntmTm.ntmFlags & NTMFLAGS_OPENTYPE) | 1519 | && ((!(physical_font->ntmTm.ntmFlags & NTMFLAGS_OPENTYPE) |
| 1520 | && !(font_type & TRUETYPE_FONTTYPE)) | 1520 | && !(font_type & TRUETYPE_FONTTYPE)) |
| @@ -1557,7 +1557,7 @@ add_font_entity_to_list (ENUMLOGFONTEX *logical_font, | |||
| 1557 | Lisp_Object spec_charset = AREF (match_data->orig_font_spec, | 1557 | Lisp_Object spec_charset = AREF (match_data->orig_font_spec, |
| 1558 | FONT_REGISTRY_INDEX); | 1558 | FONT_REGISTRY_INDEX); |
| 1559 | 1559 | ||
| 1560 | /* iso10646-1 fonts must contain unicode mapping tables. */ | 1560 | /* iso10646-1 fonts must contain Unicode mapping tables. */ |
| 1561 | if (EQ (spec_charset, Qiso10646_1)) | 1561 | if (EQ (spec_charset, Qiso10646_1)) |
| 1562 | { | 1562 | { |
| 1563 | if (!is_unicode) | 1563 | if (!is_unicode) |
| @@ -1572,7 +1572,7 @@ add_font_entity_to_list (ENUMLOGFONTEX *logical_font, | |||
| 1572 | && !(physical_font->ntmFontSig.fsUsb[0] & 0x007F001F)) | 1572 | && !(physical_font->ntmFontSig.fsUsb[0] & 0x007F001F)) |
| 1573 | return 1; | 1573 | return 1; |
| 1574 | } | 1574 | } |
| 1575 | /* unicode-sip fonts must contain characters in unicode plane 2. | 1575 | /* unicode-sip fonts must contain characters in Unicode plane 2. |
| 1576 | so look for bit 57 (surrogates) in the Unicode subranges, plus | 1576 | so look for bit 57 (surrogates) in the Unicode subranges, plus |
| 1577 | the bits for CJK ranges that include those characters. */ | 1577 | the bits for CJK ranges that include those characters. */ |
| 1578 | else if (EQ (spec_charset, Qunicode_sip)) | 1578 | else if (EQ (spec_charset, Qunicode_sip)) |
| @@ -1597,7 +1597,7 @@ add_font_entity_to_list (ENUMLOGFONTEX *logical_font, | |||
| 1597 | ASET (entity, FONT_REGISTRY_INDEX, spec_charset); | 1597 | ASET (entity, FONT_REGISTRY_INDEX, spec_charset); |
| 1598 | } | 1598 | } |
| 1599 | /* Otherwise if using the uniscribe backend, report ANSI and DEFAULT | 1599 | /* Otherwise if using the uniscribe backend, report ANSI and DEFAULT |
| 1600 | fonts as unicode and skip other charsets. */ | 1600 | fonts as Unicode and skip other charsets. */ |
| 1601 | else if (match_data->opentype_only) | 1601 | else if (match_data->opentype_only) |
| 1602 | { | 1602 | { |
| 1603 | if (logical_font->elfLogFont.lfCharSet == ANSI_CHARSET | 1603 | if (logical_font->elfLogFont.lfCharSet == ANSI_CHARSET |
| @@ -1640,7 +1640,7 @@ x_to_w32_charset (char * lpcs) | |||
| 1640 | if (strncmp (lpcs, "*-#", 3) == 0) | 1640 | if (strncmp (lpcs, "*-#", 3) == 0) |
| 1641 | return atoi (lpcs + 3); | 1641 | return atoi (lpcs + 3); |
| 1642 | 1642 | ||
| 1643 | /* All Windows fonts qualify as unicode. */ | 1643 | /* All Windows fonts qualify as Unicode. */ |
| 1644 | if (!strncmp (lpcs, "iso10646", 8)) | 1644 | if (!strncmp (lpcs, "iso10646", 8)) |
| 1645 | return DEFAULT_CHARSET; | 1645 | return DEFAULT_CHARSET; |
| 1646 | 1646 | ||
| @@ -1925,7 +1925,7 @@ w32_registry (LONG w32_charset, DWORD font_type) | |||
| 1925 | { | 1925 | { |
| 1926 | char *charset; | 1926 | char *charset; |
| 1927 | 1927 | ||
| 1928 | /* If charset is defaulted, charset is unicode or unknown, depending on | 1928 | /* If charset is defaulted, charset is Unicode or unknown, depending on |
| 1929 | font type. */ | 1929 | font type. */ |
| 1930 | if (w32_charset == DEFAULT_CHARSET) | 1930 | if (w32_charset == DEFAULT_CHARSET) |
| 1931 | return font_type == TRUETYPE_FONTTYPE ? Qiso10646_1 : Qunknown; | 1931 | return font_type == TRUETYPE_FONTTYPE ? Qiso10646_1 : Qunknown; |
| @@ -2080,7 +2080,7 @@ fill_in_logfont (FRAME_PTR f, LOGFONT *logfont, Lisp_Object font_spec) | |||
| 2080 | { | 2080 | { |
| 2081 | Lisp_Object key, val; | 2081 | Lisp_Object key, val; |
| 2082 | key = XCAR (tmp), val = XCDR (tmp); | 2082 | key = XCAR (tmp), val = XCDR (tmp); |
| 2083 | /* Only use QCscript if charset is not provided, or is unicode | 2083 | /* Only use QCscript if charset is not provided, or is Unicode |
| 2084 | and a single script is specified. This is rather crude, | 2084 | and a single script is specified. This is rather crude, |
| 2085 | and is only used to narrow down the fonts returned where | 2085 | and is only used to narrow down the fonts returned where |
| 2086 | there is a definite match. Some scripts, such as latin, han, | 2086 | there is a definite match. Some scripts, such as latin, han, |
diff --git a/src/w32menu.c b/src/w32menu.c index 39d101e7bd5..9b2d014cd58 100644 --- a/src/w32menu.c +++ b/src/w32menu.c | |||
| @@ -1219,7 +1219,7 @@ simple_dialog_show (FRAME_PTR f, Lisp_Object contents, Lisp_Object header) | |||
| 1219 | is_simple_dialog, we don't need to worry about checking contents | 1219 | is_simple_dialog, we don't need to worry about checking contents |
| 1220 | to see what type of dialog to use. */ | 1220 | to see what type of dialog to use. */ |
| 1221 | 1221 | ||
| 1222 | /* Use unicode if possible, so any language can be displayed. */ | 1222 | /* Use Unicode if possible, so any language can be displayed. */ |
| 1223 | if (unicode_message_box) | 1223 | if (unicode_message_box) |
| 1224 | { | 1224 | { |
| 1225 | WCHAR *text, *title; | 1225 | WCHAR *text, *title; |
| @@ -1476,7 +1476,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) | |||
| 1476 | utf16_string); | 1476 | utf16_string); |
| 1477 | if (!return_value) | 1477 | if (!return_value) |
| 1478 | { | 1478 | { |
| 1479 | /* On W9x/ME, unicode menus are not supported, though AppendMenuW | 1479 | /* On W9x/ME, Unicode menus are not supported, though AppendMenuW |
| 1480 | apparently does exist at least in some cases and appears to be | 1480 | apparently does exist at least in some cases and appears to be |
| 1481 | stubbed out to do nothing. out_string is UTF-8, but since | 1481 | stubbed out to do nothing. out_string is UTF-8, but since |
| 1482 | our standard menus are in English and this is only going to | 1482 | our standard menus are in English and this is only going to |
| @@ -1486,7 +1486,7 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) | |||
| 1486 | AppendMenu (menu, fuFlags, | 1486 | AppendMenu (menu, fuFlags, |
| 1487 | item != NULL ? (UINT) item: (UINT) wv->call_data, | 1487 | item != NULL ? (UINT) item: (UINT) wv->call_data, |
| 1488 | out_string); | 1488 | out_string); |
| 1489 | /* Don't use unicode menus in future. */ | 1489 | /* Don't use Unicode menus in future. */ |
| 1490 | unicode_append_menu = NULL; | 1490 | unicode_append_menu = NULL; |
| 1491 | } | 1491 | } |
| 1492 | 1492 | ||
diff --git a/src/w32proc.c b/src/w32proc.c index 279816bcc3e..254a32503c4 100644 --- a/src/w32proc.c +++ b/src/w32proc.c | |||
| @@ -122,12 +122,12 @@ new_child (void) | |||
| 122 | 122 | ||
| 123 | for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--) | 123 | for (cp = child_procs + (child_proc_count-1); cp >= child_procs; cp--) |
| 124 | if (!CHILD_ACTIVE (cp)) | 124 | if (!CHILD_ACTIVE (cp)) |
| 125 | goto Initialise; | 125 | goto Initialize; |
| 126 | if (child_proc_count == MAX_CHILDREN) | 126 | if (child_proc_count == MAX_CHILDREN) |
| 127 | return NULL; | 127 | return NULL; |
| 128 | cp = &child_procs[child_proc_count++]; | 128 | cp = &child_procs[child_proc_count++]; |
| 129 | 129 | ||
| 130 | Initialise: | 130 | Initialize: |
| 131 | memset (cp, 0, sizeof (*cp)); | 131 | memset (cp, 0, sizeof (*cp)); |
| 132 | cp->fd = -1; | 132 | cp->fd = -1; |
| 133 | cp->pid = -1; | 133 | cp->pid = -1; |
| @@ -821,7 +821,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) | |||
| 821 | 821 | ||
| 822 | The w32 GNU-based library from Cygnus doubles quotes to escape | 822 | The w32 GNU-based library from Cygnus doubles quotes to escape |
| 823 | them, while MSVC uses backslash for escaping. (Actually the MSVC | 823 | them, while MSVC uses backslash for escaping. (Actually the MSVC |
| 824 | startup code does attempt to recognise doubled quotes and accept | 824 | startup code does attempt to recognize doubled quotes and accept |
| 825 | them, but gets it wrong and ends up requiring three quotes to get a | 825 | them, but gets it wrong and ends up requiring three quotes to get a |
| 826 | single embedded quote!) So by default we decide whether to use | 826 | single embedded quote!) So by default we decide whether to use |
| 827 | quote or backslash as the escape character based on whether the | 827 | quote or backslash as the escape character based on whether the |
diff --git a/src/w32term.c b/src/w32term.c index e9fa16ba325..a2ccdd21f7d 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -4506,7 +4506,7 @@ w32_read_socket (struct terminal *terminal, int expected, | |||
| 4506 | } | 4506 | } |
| 4507 | 4507 | ||
| 4508 | /* If window has been obscured or exposed by another window | 4508 | /* If window has been obscured or exposed by another window |
| 4509 | being maximised or minimised/restored, then recheck | 4509 | being maximized or minimized/restored, then recheck |
| 4510 | visibility of all frames. Direct changes to our own | 4510 | visibility of all frames. Direct changes to our own |
| 4511 | windows get handled by WM_SIZE. */ | 4511 | windows get handled by WM_SIZE. */ |
| 4512 | #if 0 | 4512 | #if 0 |
| @@ -5576,7 +5576,7 @@ x_raise_frame (struct frame *f) | |||
| 5576 | input focus anyway (so the window with focus will never be | 5576 | input focus anyway (so the window with focus will never be |
| 5577 | completely obscured) - if not, then just moving the mouse over it | 5577 | completely obscured) - if not, then just moving the mouse over it |
| 5578 | is sufficient to give it focus. On Windows, the user must actually | 5578 | is sufficient to give it focus. On Windows, the user must actually |
| 5579 | click on the frame (preferrably the title bar so as not to move | 5579 | click on the frame (preferably the title bar so as not to move |
| 5580 | point), which is more awkward. Also, no other Windows program | 5580 | point), which is more awkward. Also, no other Windows program |
| 5581 | raises a window to the top but leaves another window (possibly now | 5581 | raises a window to the top but leaves another window (possibly now |
| 5582 | completely obscured) with input focus. | 5582 | completely obscured) with input focus. |
| @@ -5692,10 +5692,10 @@ x_make_frame_visible (struct frame *f) | |||
| 5692 | 5692 | ||
| 5693 | /* According to a report in emacs-devel 2008-06-03, SW_SHOWNORMAL | 5693 | /* According to a report in emacs-devel 2008-06-03, SW_SHOWNORMAL |
| 5694 | causes unexpected behavior when unminimizing frames that were | 5694 | causes unexpected behavior when unminimizing frames that were |
| 5695 | previously maximised. But only SW_SHOWNORMAL works properly for | 5695 | previously maximized. But only SW_SHOWNORMAL works properly for |
| 5696 | frames that were truely hidden (using make-frame-invisible), so | 5696 | frames that were truely hidden (using make-frame-invisible), so |
| 5697 | we need it to avoid Bug#5482. It seems that async_iconified | 5697 | we need it to avoid Bug#5482. It seems that async_iconified |
| 5698 | is only set for minimised windows that are still visible, so | 5698 | is only set for minimized windows that are still visible, so |
| 5699 | use that to determine the appropriate flag to pass ShowWindow. */ | 5699 | use that to determine the appropriate flag to pass ShowWindow. */ |
| 5700 | my_show_window (f, FRAME_W32_WINDOW (f), | 5700 | my_show_window (f, FRAME_W32_WINDOW (f), |
| 5701 | f->async_iconified ? SW_RESTORE : SW_SHOWNORMAL); | 5701 | f->async_iconified ? SW_RESTORE : SW_SHOWNORMAL); |
| @@ -6164,7 +6164,7 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) | |||
| 6164 | dpyinfo->has_palette = GetDeviceCaps (hdc, RASTERCAPS) & RC_PALETTE; | 6164 | dpyinfo->has_palette = GetDeviceCaps (hdc, RASTERCAPS) & RC_PALETTE; |
| 6165 | ReleaseDC (NULL, hdc); | 6165 | ReleaseDC (NULL, hdc); |
| 6166 | 6166 | ||
| 6167 | /* initialise palette with white and black */ | 6167 | /* initialize palette with white and black */ |
| 6168 | { | 6168 | { |
| 6169 | XColor color; | 6169 | XColor color; |
| 6170 | w32_defined_color (0, "white", &color, 1); | 6170 | w32_defined_color (0, "white", &color, 1); |
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c index 36197b3b28a..63da3b9e962 100644 --- a/src/w32uniscribe.c +++ b/src/w32uniscribe.c | |||
| @@ -469,7 +469,7 @@ uniscribe_encode_char (struct font *font, int c) | |||
| 469 | 469 | ||
| 470 | /* Non BMP characters must be handled by the uniscribe shaping | 470 | /* Non BMP characters must be handled by the uniscribe shaping |
| 471 | engine as GDI functions (except blindly displaying lines of | 471 | engine as GDI functions (except blindly displaying lines of |
| 472 | unicode text) and the promising looking ScriptGetCMap do not | 472 | Unicode text) and the promising looking ScriptGetCMap do not |
| 473 | convert surrogate pairs to glyph indexes correctly. */ | 473 | convert surrogate pairs to glyph indexes correctly. */ |
| 474 | { | 474 | { |
| 475 | items = (SCRIPT_ITEM *) alloca (sizeof (SCRIPT_ITEM) * 2 + 1); | 475 | items = (SCRIPT_ITEM *) alloca (sizeof (SCRIPT_ITEM) * 2 + 1); |
| @@ -581,7 +581,7 @@ add_opentype_font_name_to_list (ENUMLOGFONTEX *logical_font, | |||
| 581 | && font_type != TRUETYPE_FONTTYPE) | 581 | && font_type != TRUETYPE_FONTTYPE) |
| 582 | return 1; | 582 | return 1; |
| 583 | 583 | ||
| 584 | /* Skip fonts that have no unicode coverage. */ | 584 | /* Skip fonts that have no Unicode coverage. */ |
| 585 | if (!physical_font->ntmFontSig.fsUsb[3] | 585 | if (!physical_font->ntmFontSig.fsUsb[3] |
| 586 | && !physical_font->ntmFontSig.fsUsb[2] | 586 | && !physical_font->ntmFontSig.fsUsb[2] |
| 587 | && !physical_font->ntmFontSig.fsUsb[1] | 587 | && !physical_font->ntmFontSig.fsUsb[1] |
diff --git a/src/w32xfns.c b/src/w32xfns.c index fbbf11bd65c..fc2d5904d67 100644 --- a/src/w32xfns.c +++ b/src/w32xfns.c | |||
| @@ -188,7 +188,7 @@ get_next_msg (W32Msg * lpmsg, BOOL bWait) | |||
| 188 | } | 188 | } |
| 189 | 189 | ||
| 190 | nQueue--; | 190 | nQueue--; |
| 191 | /* Consolidate WM_PAINT messages to optimise redrawing. */ | 191 | /* Consolidate WM_PAINT messages to optimize redrawing. */ |
| 192 | if (lpmsg->msg.message == WM_PAINT && nQueue) | 192 | if (lpmsg->msg.message == WM_PAINT && nQueue) |
| 193 | { | 193 | { |
| 194 | int_msg * lpCur = lpHead; | 194 | int_msg * lpCur = lpHead; |
| @@ -441,4 +441,3 @@ void | |||
| 441 | x_sync (void *f) | 441 | x_sync (void *f) |
| 442 | { | 442 | { |
| 443 | } | 443 | } |
| 444 | |||
diff --git a/src/window.c b/src/window.c index a7daa1353bd..728e811f304 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -467,10 +467,8 @@ Return nil if WINDOW has no previous sibling. */) | |||
| 467 | return decode_any_window (window)->prev; | 467 | return decode_any_window (window)->prev; |
| 468 | } | 468 | } |
| 469 | 469 | ||
| 470 | DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 0, 1, 0, | 470 | DEFUN ("window-combination-limit", Fwindow_combination_limit, Swindow_combination_limit, 1, 1, 0, |
| 471 | doc: /* Return combination limit of window WINDOW. | 471 | doc: /* Return combination limit of window WINDOW. |
| 472 | If WINDOW is omitted or nil, it defaults to the selected window. | ||
| 473 | |||
| 474 | If the return value is nil, child windows of WINDOW can be recombined with | 472 | If the return value is nil, child windows of WINDOW can be recombined with |
| 475 | WINDOW's siblings. A return value of t means that child windows of | 473 | WINDOW's siblings. A return value of t means that child windows of |
| 476 | WINDOW are never \(re-)combined with WINDOW's siblings. */) | 474 | WINDOW are never \(re-)combined with WINDOW's siblings. */) |
| @@ -480,18 +478,16 @@ WINDOW are never \(re-)combined with WINDOW's siblings. */) | |||
| 480 | } | 478 | } |
| 481 | 479 | ||
| 482 | DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0, | 480 | DEFUN ("set-window-combination-limit", Fset_window_combination_limit, Sset_window_combination_limit, 2, 2, 0, |
| 483 | doc: /* Set combination limit of window WINDOW to STATUS; return STATUS. | 481 | doc: /* Set combination limit of window WINDOW to LIMIT; return LIMIT. |
| 484 | If WINDOW is omitted or nil, it defaults to the selected window. | 482 | If LIMIT is nil, child windows of WINDOW can be recombined with |
| 485 | 483 | WINDOW's siblings. LIMIT t means that child windows of WINDOW are | |
| 486 | If STATUS is nil, child windows of WINDOW can be recombined with | ||
| 487 | WINDOW's siblings. STATUS t means that child windows of WINDOW are | ||
| 488 | never \(re-)combined with WINDOW's siblings. Other values are reserved | 484 | never \(re-)combined with WINDOW's siblings. Other values are reserved |
| 489 | for future use. */) | 485 | for future use. */) |
| 490 | (Lisp_Object window, Lisp_Object status) | 486 | (Lisp_Object window, Lisp_Object limit) |
| 491 | { | 487 | { |
| 492 | register struct window *w = decode_any_window (window); | 488 | register struct window *w = decode_any_window (window); |
| 493 | 489 | ||
| 494 | w->combination_limit = status; | 490 | w->combination_limit = limit; |
| 495 | 491 | ||
| 496 | return w->combination_limit; | 492 | return w->combination_limit; |
| 497 | } | 493 | } |
| @@ -2187,7 +2183,7 @@ next_window (Lisp_Object window, Lisp_Object minibuf, Lisp_Object all_frames, in | |||
| 2187 | 2183 | ||
| 2188 | 2184 | ||
| 2189 | DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0, | 2185 | DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0, |
| 2190 | doc: /* Return window following WINDOW in cyclic ordering of windows. | 2186 | doc: /* Return live window after WINDOW in the cyclic ordering of windows. |
| 2191 | WINDOW must be a live window and defaults to the selected one. The | 2187 | WINDOW must be a live window and defaults to the selected one. The |
| 2192 | optional arguments MINIBUF and ALL-FRAMES specify the set of windows to | 2188 | optional arguments MINIBUF and ALL-FRAMES specify the set of windows to |
| 2193 | consider. | 2189 | consider. |
| @@ -2226,7 +2222,7 @@ windows, eventually ending up back at the window you started with. | |||
| 2226 | 2222 | ||
| 2227 | 2223 | ||
| 2228 | DEFUN ("previous-window", Fprevious_window, Sprevious_window, 0, 3, 0, | 2224 | DEFUN ("previous-window", Fprevious_window, Sprevious_window, 0, 3, 0, |
| 2229 | doc: /* Return window preceding WINDOW in cyclic ordering of windows. | 2225 | doc: /* Return live window before WINDOW in the cyclic ordering of windows. |
| 2230 | WINDOW must be a live window and defaults to the selected one. The | 2226 | WINDOW must be a live window and defaults to the selected one. The |
| 2231 | optional arguments MINIBUF and ALL-FRAMES specify the set of windows to | 2227 | optional arguments MINIBUF and ALL-FRAMES specify the set of windows to |
| 2232 | consider. | 2228 | consider. |
| @@ -5782,13 +5778,30 @@ get_phys_cursor_glyph (struct window *w) | |||
| 5782 | { | 5778 | { |
| 5783 | struct glyph_row *row; | 5779 | struct glyph_row *row; |
| 5784 | struct glyph *glyph; | 5780 | struct glyph *glyph; |
| 5781 | int hpos = w->phys_cursor.hpos; | ||
| 5782 | |||
| 5783 | if (!(w->phys_cursor.vpos >= 0 | ||
| 5784 | && w->phys_cursor.vpos < w->current_matrix->nrows)) | ||
| 5785 | return NULL; | ||
| 5786 | |||
| 5787 | row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos); | ||
| 5788 | if (!row->enabled_p) | ||
| 5789 | return NULL; | ||
| 5790 | |||
| 5791 | if (XINT (w->hscroll)) | ||
| 5792 | { | ||
| 5793 | /* When the window is hscrolled, cursor hpos can legitimately be | ||
| 5794 | out of bounds, but we draw the cursor at the corresponding | ||
| 5795 | window margin in that case. */ | ||
| 5796 | if (!row->reversed_p && hpos < 0) | ||
| 5797 | hpos = 0; | ||
| 5798 | if (row->reversed_p && hpos >= row->used[TEXT_AREA]) | ||
| 5799 | hpos = row->used[TEXT_AREA] - 1; | ||
| 5800 | } | ||
| 5785 | 5801 | ||
| 5786 | if (w->phys_cursor.vpos >= 0 | 5802 | if (row->used[TEXT_AREA] > hpos |
| 5787 | && w->phys_cursor.vpos < w->current_matrix->nrows | 5803 | && 0 <= hpos) |
| 5788 | && (row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos), | 5804 | glyph = row->glyphs[TEXT_AREA] + hpos; |
| 5789 | row->enabled_p) | ||
| 5790 | && row->used[TEXT_AREA] > w->phys_cursor.hpos) | ||
| 5791 | glyph = row->glyphs[TEXT_AREA] + w->phys_cursor.hpos; | ||
| 5792 | else | 5805 | else |
| 5793 | glyph = NULL; | 5806 | glyph = NULL; |
| 5794 | 5807 | ||
| @@ -6524,10 +6537,10 @@ sibling. | |||
| 6524 | 6537 | ||
| 6525 | Other values are reserved for future use. | 6538 | Other values are reserved for future use. |
| 6526 | 6539 | ||
| 6527 | The value of this variable is also assigned to the combination-limit | 6540 | The value of this variable is also assigned to the combination limit of |
| 6528 | status of the new parent window. The combination-limit status of a | 6541 | the new parent window. The combination limit of a window can be |
| 6529 | window can be retrieved via the function `window-combination-limit' and | 6542 | retrieved via the function `window-combination-limit' and altered by the |
| 6530 | altered by the function `set-window-combination-limit'. */); | 6543 | function `set-window-combination-limit'. */); |
| 6531 | Vwindow_combination_limit = Qnil; | 6544 | Vwindow_combination_limit = Qnil; |
| 6532 | 6545 | ||
| 6533 | defsubr (&Sselected_window); | 6546 | defsubr (&Sselected_window); |
diff --git a/src/window.h b/src/window.h index de0f7307a51..df29ca1368f 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -268,7 +268,7 @@ struct window | |||
| 268 | /* List of buffers re-shown in this window. */ | 268 | /* List of buffers re-shown in this window. */ |
| 269 | Lisp_Object next_buffers; | 269 | Lisp_Object next_buffers; |
| 270 | 270 | ||
| 271 | /* An alist with parameteres. */ | 271 | /* An alist with parameters. */ |
| 272 | Lisp_Object window_parameters; | 272 | Lisp_Object window_parameters; |
| 273 | 273 | ||
| 274 | /* No Lisp data may follow below this point without changing | 274 | /* No Lisp data may follow below this point without changing |
diff --git a/src/xdisp.c b/src/xdisp.c index 747b91fa4ab..7c415e485b5 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1450,7 +1450,7 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y, | |||
| 1450 | position is CHARPOS. For the contingency that we | 1450 | position is CHARPOS. For the contingency that we |
| 1451 | didn't, and stopped at the first newline from the | 1451 | didn't, and stopped at the first newline from the |
| 1452 | display string, move back over the glyphs | 1452 | display string, move back over the glyphs |
| 1453 | prfoduced from the string, until we find the | 1453 | produced from the string, until we find the |
| 1454 | rightmost glyph not from the string. */ | 1454 | rightmost glyph not from the string. */ |
| 1455 | if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string)) | 1455 | if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string)) |
| 1456 | { | 1456 | { |
| @@ -14170,7 +14170,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, | |||
| 14170 | || (STRINGP (g1->object) | 14170 | || (STRINGP (g1->object) |
| 14171 | && (!NILP (Fget_char_property (make_number (g1->charpos), | 14171 | && (!NILP (Fget_char_property (make_number (g1->charpos), |
| 14172 | Qcursor, g1->object)) | 14172 | Qcursor, g1->object)) |
| 14173 | /* pevious candidate is from the same display | 14173 | /* previous candidate is from the same display |
| 14174 | string as this one, and the display string | 14174 | string as this one, and the display string |
| 14175 | came from a text property */ | 14175 | came from a text property */ |
| 14176 | || (EQ (g1->object, glyph->object) | 14176 | || (EQ (g1->object, glyph->object) |
| @@ -15092,7 +15092,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p) | |||
| 15092 | int current_matrix_up_to_date_p = 0; | 15092 | int current_matrix_up_to_date_p = 0; |
| 15093 | int used_current_matrix_p = 0; | 15093 | int used_current_matrix_p = 0; |
| 15094 | /* This is less strict than current_matrix_up_to_date_p. | 15094 | /* This is less strict than current_matrix_up_to_date_p. |
| 15095 | It indictes that the buffer contents and narrowing are unchanged. */ | 15095 | It indicates that the buffer contents and narrowing are unchanged. */ |
| 15096 | int buffer_unchanged_p = 0; | 15096 | int buffer_unchanged_p = 0; |
| 15097 | int temp_scroll_step = 0; | 15097 | int temp_scroll_step = 0; |
| 15098 | int count = SPECPDL_INDEX (); | 15098 | int count = SPECPDL_INDEX (); |
| @@ -17102,7 +17102,7 @@ try_window_id (struct window *w) | |||
| 17102 | last_unchanged_at_beg_row = find_last_unchanged_at_beg_row (w); | 17102 | last_unchanged_at_beg_row = find_last_unchanged_at_beg_row (w); |
| 17103 | if (last_unchanged_at_beg_row) | 17103 | if (last_unchanged_at_beg_row) |
| 17104 | { | 17104 | { |
| 17105 | /* Avoid starting to display in the moddle of a character, a TAB | 17105 | /* Avoid starting to display in the middle of a character, a TAB |
| 17106 | for instance. This is easier than to set up the iterator | 17106 | for instance. This is easier than to set up the iterator |
| 17107 | exactly, and it's not a frequent case, so the additional | 17107 | exactly, and it's not a frequent case, so the additional |
| 17108 | effort wouldn't really pay off. */ | 17108 | effort wouldn't really pay off. */ |
| @@ -18054,6 +18054,23 @@ insert_left_trunc_glyphs (struct it *it) | |||
| 18054 | } | 18054 | } |
| 18055 | } | 18055 | } |
| 18056 | 18056 | ||
| 18057 | /* Compute the hash code for ROW. */ | ||
| 18058 | unsigned | ||
| 18059 | row_hash (struct glyph_row *row) | ||
| 18060 | { | ||
| 18061 | int area, k; | ||
| 18062 | unsigned hashval = 0; | ||
| 18063 | |||
| 18064 | for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) | ||
| 18065 | for (k = 0; k < row->used[area]; ++k) | ||
| 18066 | hashval = ((((hashval << 4) + (hashval >> 24)) & 0x0fffffff) | ||
| 18067 | + row->glyphs[area][k].u.val | ||
| 18068 | + row->glyphs[area][k].face_id | ||
| 18069 | + row->glyphs[area][k].padding_p | ||
| 18070 | + (row->glyphs[area][k].type << 2)); | ||
| 18071 | |||
| 18072 | return hashval; | ||
| 18073 | } | ||
| 18057 | 18074 | ||
| 18058 | /* Compute the pixel height and width of IT->glyph_row. | 18075 | /* Compute the pixel height and width of IT->glyph_row. |
| 18059 | 18076 | ||
| @@ -18140,17 +18157,7 @@ compute_line_metrics (struct it *it) | |||
| 18140 | } | 18157 | } |
| 18141 | 18158 | ||
| 18142 | /* Compute a hash code for this row. */ | 18159 | /* Compute a hash code for this row. */ |
| 18143 | { | 18160 | row->hash = row_hash (row); |
| 18144 | int area, i; | ||
| 18145 | row->hash = 0; | ||
| 18146 | for (area = LEFT_MARGIN_AREA; area < LAST_AREA; ++area) | ||
| 18147 | for (i = 0; i < row->used[area]; ++i) | ||
| 18148 | row->hash = ((((row->hash << 4) + (row->hash >> 24)) & 0x0fffffff) | ||
| 18149 | + row->glyphs[area][i].u.val | ||
| 18150 | + row->glyphs[area][i].face_id | ||
| 18151 | + row->glyphs[area][i].padding_p | ||
| 18152 | + (row->glyphs[area][i].type << 2)); | ||
| 18153 | } | ||
| 18154 | 18161 | ||
| 18155 | it->max_ascent = it->max_descent = 0; | 18162 | it->max_ascent = it->max_descent = 0; |
| 18156 | it->max_phys_ascent = it->max_phys_descent = 0; | 18163 | it->max_phys_ascent = it->max_phys_descent = 0; |
| @@ -24895,9 +24902,17 @@ x_produce_glyphs (struct it *it) | |||
| 24895 | void | 24902 | void |
| 24896 | x_write_glyphs (struct glyph *start, int len) | 24903 | x_write_glyphs (struct glyph *start, int len) |
| 24897 | { | 24904 | { |
| 24898 | int x, hpos; | 24905 | int x, hpos, chpos = updated_window->phys_cursor.hpos; |
| 24899 | 24906 | ||
| 24900 | xassert (updated_window && updated_row); | 24907 | xassert (updated_window && updated_row); |
| 24908 | /* When the window is hscrolled, cursor hpos can legitimately be out | ||
| 24909 | of bounds, but we draw the cursor at the corresponding window | ||
| 24910 | margin in that case. */ | ||
| 24911 | if (!updated_row->reversed_p && chpos < 0) | ||
| 24912 | chpos = 0; | ||
| 24913 | if (updated_row->reversed_p && chpos >= updated_row->used[TEXT_AREA]) | ||
| 24914 | chpos = updated_row->used[TEXT_AREA] - 1; | ||
| 24915 | |||
| 24901 | BLOCK_INPUT; | 24916 | BLOCK_INPUT; |
| 24902 | 24917 | ||
| 24903 | /* Write glyphs. */ | 24918 | /* Write glyphs. */ |
| @@ -24912,8 +24927,8 @@ x_write_glyphs (struct glyph *start, int len) | |||
| 24912 | if (updated_area == TEXT_AREA | 24927 | if (updated_area == TEXT_AREA |
| 24913 | && updated_window->phys_cursor_on_p | 24928 | && updated_window->phys_cursor_on_p |
| 24914 | && updated_window->phys_cursor.vpos == output_cursor.vpos | 24929 | && updated_window->phys_cursor.vpos == output_cursor.vpos |
| 24915 | && updated_window->phys_cursor.hpos >= hpos | 24930 | && chpos >= hpos |
| 24916 | && updated_window->phys_cursor.hpos < hpos + len) | 24931 | && chpos < hpos + len) |
| 24917 | updated_window->phys_cursor_on_p = 0; | 24932 | updated_window->phys_cursor_on_p = 0; |
| 24918 | 24933 | ||
| 24919 | UNBLOCK_INPUT; | 24934 | UNBLOCK_INPUT; |
| @@ -25430,8 +25445,17 @@ draw_phys_cursor_glyph (struct window *w, struct glyph_row *row, | |||
| 25430 | { | 25445 | { |
| 25431 | int on_p = w->phys_cursor_on_p; | 25446 | int on_p = w->phys_cursor_on_p; |
| 25432 | int x1; | 25447 | int x1; |
| 25433 | x1 = draw_glyphs (w, w->phys_cursor.x, row, TEXT_AREA, | 25448 | int hpos = w->phys_cursor.hpos; |
| 25434 | w->phys_cursor.hpos, w->phys_cursor.hpos + 1, | 25449 | |
| 25450 | /* When the window is hscrolled, cursor hpos can legitimately be | ||
| 25451 | out of bounds, but we draw the cursor at the corresponding | ||
| 25452 | window margin in that case. */ | ||
| 25453 | if (!row->reversed_p && hpos < 0) | ||
| 25454 | hpos = 0; | ||
| 25455 | if (row->reversed_p && hpos >= row->used[TEXT_AREA]) | ||
| 25456 | hpos = row->used[TEXT_AREA] - 1; | ||
| 25457 | |||
| 25458 | x1 = draw_glyphs (w, w->phys_cursor.x, row, TEXT_AREA, hpos, hpos + 1, | ||
| 25435 | hl, 0); | 25459 | hl, 0); |
| 25436 | w->phys_cursor_on_p = on_p; | 25460 | w->phys_cursor_on_p = on_p; |
| 25437 | 25461 | ||
| @@ -25519,6 +25543,14 @@ erase_phys_cursor (struct window *w) | |||
| 25519 | : (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA]))) | 25543 | : (w->phys_cursor.hpos >= cursor_row->used[TEXT_AREA]))) |
| 25520 | goto mark_cursor_off; | 25544 | goto mark_cursor_off; |
| 25521 | 25545 | ||
| 25546 | /* When the window is hscrolled, cursor hpos can legitimately be out | ||
| 25547 | of bounds, but we draw the cursor at the corresponding window | ||
| 25548 | margin in that case. */ | ||
| 25549 | if (!cursor_row->reversed_p && hpos < 0) | ||
| 25550 | hpos = 0; | ||
| 25551 | if (cursor_row->reversed_p && hpos >= cursor_row->used[TEXT_AREA]) | ||
| 25552 | hpos = cursor_row->used[TEXT_AREA] - 1; | ||
| 25553 | |||
| 25522 | /* If the cursor is in the mouse face area, redisplay that when | 25554 | /* If the cursor is in the mouse face area, redisplay that when |
| 25523 | we clear the cursor. */ | 25555 | we clear the cursor. */ |
| 25524 | if (! NILP (hlinfo->mouse_face_window) | 25556 | if (! NILP (hlinfo->mouse_face_window) |
| @@ -25662,8 +25694,26 @@ update_window_cursor (struct window *w, int on) | |||
| 25662 | of being deleted. */ | 25694 | of being deleted. */ |
| 25663 | if (w->current_matrix) | 25695 | if (w->current_matrix) |
| 25664 | { | 25696 | { |
| 25697 | int hpos = w->phys_cursor.hpos; | ||
| 25698 | int vpos = w->phys_cursor.vpos; | ||
| 25699 | struct glyph_row *row; | ||
| 25700 | |||
| 25701 | if (vpos >= w->current_matrix->nrows | ||
| 25702 | || hpos >= w->current_matrix->matrix_w) | ||
| 25703 | return; | ||
| 25704 | |||
| 25705 | row = MATRIX_ROW (w->current_matrix, vpos); | ||
| 25706 | |||
| 25707 | /* When the window is hscrolled, cursor hpos can legitimately be | ||
| 25708 | out of bounds, but we draw the cursor at the corresponding | ||
| 25709 | window margin in that case. */ | ||
| 25710 | if (!row->reversed_p && hpos < 0) | ||
| 25711 | hpos = 0; | ||
| 25712 | if (row->reversed_p && hpos >= row->used[TEXT_AREA]) | ||
| 25713 | hpos = row->used[TEXT_AREA] - 1; | ||
| 25714 | |||
| 25665 | BLOCK_INPUT; | 25715 | BLOCK_INPUT; |
| 25666 | display_and_set_cursor (w, on, w->phys_cursor.hpos, w->phys_cursor.vpos, | 25716 | display_and_set_cursor (w, on, hpos, vpos, |
| 25667 | w->phys_cursor.x, w->phys_cursor.y); | 25717 | w->phys_cursor.x, w->phys_cursor.y); |
| 25668 | UNBLOCK_INPUT; | 25718 | UNBLOCK_INPUT; |
| 25669 | } | 25719 | } |
| @@ -25833,9 +25883,18 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) | |||
| 25833 | if (FRAME_WINDOW_P (f) | 25883 | if (FRAME_WINDOW_P (f) |
| 25834 | && phys_cursor_on_p && !w->phys_cursor_on_p) | 25884 | && phys_cursor_on_p && !w->phys_cursor_on_p) |
| 25835 | { | 25885 | { |
| 25886 | int hpos = w->phys_cursor.hpos; | ||
| 25887 | |||
| 25888 | /* When the window is hscrolled, cursor hpos can legitimately be | ||
| 25889 | out of bounds, but we draw the cursor at the corresponding | ||
| 25890 | window margin in that case. */ | ||
| 25891 | if (!row->reversed_p && hpos < 0) | ||
| 25892 | hpos = 0; | ||
| 25893 | if (row->reversed_p && hpos >= row->used[TEXT_AREA]) | ||
| 25894 | hpos = row->used[TEXT_AREA] - 1; | ||
| 25895 | |||
| 25836 | BLOCK_INPUT; | 25896 | BLOCK_INPUT; |
| 25837 | display_and_set_cursor (w, 1, | 25897 | display_and_set_cursor (w, 1, hpos, w->phys_cursor.vpos, |
| 25838 | w->phys_cursor.hpos, w->phys_cursor.vpos, | ||
| 25839 | w->phys_cursor.x, w->phys_cursor.y); | 25898 | w->phys_cursor.x, w->phys_cursor.y); |
| 25840 | UNBLOCK_INPUT; | 25899 | UNBLOCK_INPUT; |
| 25841 | } | 25900 | } |
| @@ -25934,7 +25993,19 @@ coords_in_mouse_face_p (struct window *w, int hpos, int vpos) | |||
| 25934 | int | 25993 | int |
| 25935 | cursor_in_mouse_face_p (struct window *w) | 25994 | cursor_in_mouse_face_p (struct window *w) |
| 25936 | { | 25995 | { |
| 25937 | return coords_in_mouse_face_p (w, w->phys_cursor.hpos, w->phys_cursor.vpos); | 25996 | int hpos = w->phys_cursor.hpos; |
| 25997 | int vpos = w->phys_cursor.vpos; | ||
| 25998 | struct glyph_row *row = MATRIX_ROW (w->current_matrix, vpos); | ||
| 25999 | |||
| 26000 | /* When the window is hscrolled, cursor hpos can legitimately be out | ||
| 26001 | of bounds, but we draw the cursor at the corresponding window | ||
| 26002 | margin in that case. */ | ||
| 26003 | if (!row->reversed_p && hpos < 0) | ||
| 26004 | hpos = 0; | ||
| 26005 | if (row->reversed_p && hpos >= row->used[TEXT_AREA]) | ||
| 26006 | hpos = row->used[TEXT_AREA] - 1; | ||
| 26007 | |||
| 26008 | return coords_in_mouse_face_p (w, hpos, vpos); | ||
| 25938 | } | 26009 | } |
| 25939 | 26010 | ||
| 25940 | 26011 | ||
diff --git a/src/xfns.c b/src/xfns.c index 6de412c4e68..c68149cce11 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -2962,7 +2962,7 @@ x_default_font_parameter (struct frame *f, Lisp_Object parms) | |||
| 2962 | 2962 | ||
| 2963 | if (NILP (font_param)) | 2963 | if (NILP (font_param)) |
| 2964 | { | 2964 | { |
| 2965 | /* System font should take precedendce over X resources. We suggest this | 2965 | /* System font should take precedence over X resources. We suggest this |
| 2966 | regardless of font-use-system-font because .emacs may not have been | 2966 | regardless of font-use-system-font because .emacs may not have been |
| 2967 | read yet. */ | 2967 | read yet. */ |
| 2968 | const char *system_font = xsettings_get_system_font (); | 2968 | const char *system_font = xsettings_get_system_font (); |
| @@ -5914,7 +5914,7 @@ the tool bar buttons. */); | |||
| 5914 | x_gtk_whole_detached_tool_bar = 0; | 5914 | x_gtk_whole_detached_tool_bar = 0; |
| 5915 | 5915 | ||
| 5916 | DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips, | 5916 | DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips, |
| 5917 | doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ toolip is used. | 5917 | doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is used. |
| 5918 | Otherwise use Emacs own tooltip implementation. | 5918 | Otherwise use Emacs own tooltip implementation. |
| 5919 | When using Gtk+ tooltips, the tooltip face is not used. */); | 5919 | When using Gtk+ tooltips, the tooltip face is not used. */); |
| 5920 | x_gtk_use_system_tooltips = 1; | 5920 | x_gtk_use_system_tooltips = 1; |
diff --git a/src/xmenu.c b/src/xmenu.c index 0dd652b566d..4b7bbfd73dc 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -1304,7 +1304,7 @@ free_frame_menubar (FRAME_PTR f) | |||
| 1304 | #ifdef USE_MOTIF | 1304 | #ifdef USE_MOTIF |
| 1305 | /* Removing the menu bar magically changes the shell widget's x | 1305 | /* Removing the menu bar magically changes the shell widget's x |
| 1306 | and y position of (0, 0) which, when the menu bar is turned | 1306 | and y position of (0, 0) which, when the menu bar is turned |
| 1307 | on again, leads to pull-down menuss appearing in strange | 1307 | on again, leads to pull-down menus appearing in strange |
| 1308 | positions near the upper-left corner of the display. This | 1308 | positions near the upper-left corner of the display. This |
| 1309 | happens only with some window managers like twm and ctwm, | 1309 | happens only with some window managers like twm and ctwm, |
| 1310 | but not with other like Motif's mwm or kwm, because the | 1310 | but not with other like Motif's mwm or kwm, because the |
diff --git a/src/xterm.c b/src/xterm.c index f8af8ae3df0..f750c00cea0 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -2972,9 +2972,7 @@ x_clear_frame (struct frame *f) | |||
| 2972 | follow an explicit cursor_to. */ | 2972 | follow an explicit cursor_to. */ |
| 2973 | BLOCK_INPUT; | 2973 | BLOCK_INPUT; |
| 2974 | 2974 | ||
| 2975 | /* The following call is commented out because it does not seem to accomplish | 2975 | XClearWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); |
| 2976 | anything, apart from causing flickering during window resize. */ | ||
| 2977 | /* XClearWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f)); */ | ||
| 2978 | 2976 | ||
| 2979 | /* We have to clear the scroll bars. If we have changed colors or | 2977 | /* We have to clear the scroll bars. If we have changed colors or |
| 2980 | something like that, then they should be notified. */ | 2978 | something like that, then they should be notified. */ |
| @@ -4193,7 +4191,7 @@ static Boolean xaw3d_arrow_scroll; | |||
| 4193 | 4191 | ||
| 4194 | /* Whether the drag scrolling maintains the mouse at the top of the | 4192 | /* Whether the drag scrolling maintains the mouse at the top of the |
| 4195 | thumb. If not, resizing the thumb needs to be done more carefully | 4193 | thumb. If not, resizing the thumb needs to be done more carefully |
| 4196 | to avoid jerkyness. */ | 4194 | to avoid jerkiness. */ |
| 4197 | 4195 | ||
| 4198 | static Boolean xaw3d_pick_top; | 4196 | static Boolean xaw3d_pick_top; |
| 4199 | 4197 | ||
| @@ -8779,7 +8777,7 @@ x_wait_for_event (struct frame *f, int eventtype) | |||
| 8779 | pending_event_wait.f = f; | 8777 | pending_event_wait.f = f; |
| 8780 | pending_event_wait.eventtype = eventtype; | 8778 | pending_event_wait.eventtype = eventtype; |
| 8781 | 8779 | ||
| 8782 | /* Set timeout to 0.1 second. Hopefully not noticable. | 8780 | /* Set timeout to 0.1 second. Hopefully not noticeable. |
| 8783 | Maybe it should be configurable. */ | 8781 | Maybe it should be configurable. */ |
| 8784 | EMACS_SET_SECS_USECS (tmo, 0, 100000); | 8782 | EMACS_SET_SECS_USECS (tmo, 0, 100000); |
| 8785 | EMACS_GET_TIME (tmo_at); | 8783 | EMACS_GET_TIME (tmo_at); |