Commit graph

36186 commits

Author SHA1 Message Date
Glenn Morris
6d26235315 Merge from emacs-24; up to 2014-07-02T00:57:53Z!juri@jurta.org 2014-08-27 18:59:29 -07:00
Paul Eggert
cbe070d114 * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults.
Fixes: debbugs:18051
2014-08-27 17:50:36 -07:00
Eli Zaretskii
9bac5fd91f Fix bug #18339 with segfault when $ is typed into empty LaTeX buffer.
src/syntax.c (scan_lists): Don't examine positions before BEGV.
2014-08-27 22:40:54 +03:00
Paul Eggert
110d87a1cc Improve robustness of new string-collation code.
* configure.ac (newlocale): Check for this, not for uselocale.
* src/sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
(newlocale, wcscoll_l): Define substitutes for platforms that
lack them, so as to simplify the mainline code.
(str_collate): Simplify the code by assuming the above definitions.
Use wcscoll_l, not uselocale, as uselocale is too fragile.  For
example, the old version left the Emacs in the wrong locale if
wcscoll reported an error.  Use 'int', not ptrdiff_t, for the int
result.  Report an error if newlocale fails.

Fixes: debbugs:18051
2014-08-27 11:56:47 -07:00
Michael Albinus
17d94f1ba4 * lisp.h (str_collate):
* sysdep.c (str_collate): Return int.
(str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll.
2014-08-27 13:22:37 +02:00
Dmitry Antipov
28e0124dd0 * src/keyboard.c (Vtop_level_message): Rename to
Vinternal__top_level_message, as suggested by Stefan Monnier in
http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html
All related users changed.
* lisp/startup.el (normal-top-level): Now use internal--top-level-message.
* doc/lispref/eval.texi (Eval): Mention possible recovery from stack overflow.
2014-08-27 14:51:21 +04:00
Dmitry Antipov
7fb78a081b Fix some glitches in previous change.
* sysdep.c (stack_direction): Replace stack_grows_down
to simplify calculation of stack boundaries.
(handle_sigsegv): Check whether we really crash somewhere near
to stack boundary, and handle fatal signal as usual if not.
(init_sigsegv): Adjust accordingly.
2014-08-27 08:15:20 +04:00
Glenn Morris
93d56561c8 ChangeLog fixes 2014-08-26 13:55:07 -04:00
Dmitry Antipov
ea2791432d * sysdep.c (init_sigsegv) [HAVE_STACK_OVERFLOW_HANDLING]: Add comment. 2014-08-26 12:01:48 +04:00
Dmitry Antipov
ebd31792b2 Handle C stack overflow caused by too nested Lisp evaluation.
* configure.ac: Check for sigaltstack and related sigaction
support.  Unconditionally check for sigsetjmp and siglongjmp.
(HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it.
* src/lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
siglongjmp point to transfer control from SIGSEGV handler.
* src/keyboard.c (return_to_command_loop, recover_top_level_message)
[HAVE_STACK_OVERFLOW_HANDLING]: New variables.
(regular_top_level_message): New variable.
(command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
exit from SIGSEGV handler and adjust message displayed by Vtop_level
if appropriate.
(syms_of_keyboard): DEFVAR Vtop_level_message and initialize
new variables described above.
* src/sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
(stack_grows_down, sigsegv_stack, handle_sigsegv)
[HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
(init_sigsegv): New function.
(init_signals): Use it.
* lisp/startup.el (normal-top-level): Use top-level-message.
2014-08-26 10:25:59 +04:00
Ken Brown
79404e16fb * configure.ac (G_SLICE_ALWAYS_MALLOC): Remove obsolete macro.
* src/emacs.c (main): Remove use of obsolete macro
G_SLICE_ALWAYS_MALLOC.
2014-08-25 16:49:52 -04:00
Eli Zaretskii
825ca47f5a Fix unoptimized build on MSDOS.
msdos/sedlibmk.inp (gl_LIBOBJS): Add execinfo.o.  Reported by Juan
 Manuel Guerrero <juan.guerrero@gmx.de>.

 src/conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
2014-08-25 20:44:27 +03:00
Eli Zaretskii
015ea0ffdb Implement locale-sensitive string collation for MS-Windows. (Bug#18051)
src/w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
 New functions.
 src/w32.h (w32_compare_strings): Add prototype.
 src/w32.c <g_b_init_compare_string_w>: New global flag.
 (globals_of_w32): Initialize it.
 src/sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
 src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
 [WINDOWSNT]: Call str_collate on MS-Windows.

 etc/NEWS: Mention that string-collate-* functions are supported on
 MS-Windows as well.
2014-08-25 18:55:46 +03:00
Dmitry Antipov
8661ebaa6c One more minor cleanup of font subsystem.
* font.h (struct font_driver): Convert text_extents to
return void because returned value is never actually used.
* macfont.c (macfont_text_extents):
* w32font.c (w32font_text_extents):
* xftfont.c (xftfont_text_extents): Adjust to return void
and assume that 'metrics' argument is always non-NULL.
* ftfont.c (ftfont_text_extents):
* xfont.c (xfont_text_extents): Likewise.  Avoid redundant memset.
2014-08-25 11:00:42 +04:00
Paul Eggert
90c5c87753 Minor cleanups of str_collate fix.
* fns.c (str_collate): Move decl from here ...
* lisp.h (str_collate): ... to here.
* sysdep.c (str_collate): Prune away some of the forest of ifdefs.
Remove unnecessary casts.  Use SAFE_NALLOCA to avoid
potential problems with integer overflow.  Don't assume
setlocale succeeds.  Remove unnecessary test before restoring
locale via setlocale, and free the copied setlocale string
when done with it.

Fixes: debbugs:18051
2014-08-24 22:44:57 -07:00
Michael Albinus
07b47905d3 Add string collation.
* configure.ac: Check also for the uselocale function. 

* src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.

* src/sysdep.c (str_collate): New function.  (Bug#18051)
2014-08-24 17:40:07 +02:00
Karol Ostrovsky
0d880e737b Fix bug #18302 with minor issues in the MSYS2/MinGW64 build.
configure.ac: Accept "*-mingw*", not just "*-mingw32", as
 canonical name of a MinGW build, because using MSYS2 'uname'
 produces "MINGW64".

 src/Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
 if the initial "rm -f" fails.  This is for MinGW builds, where
 MS-Windows will not allow deleting the executable file of a
 running program.
2014-08-23 11:48:30 +03:00
Eli Zaretskii
a558cd1cc4 Remove 16-bit limitations in scroll bar position reporting on MS-Windows.
src/w32term.c (w32_scroll_bar_handle_click)
 (w32_horizontal_scroll_bar_handle_click)
 (x_scroll_bar_report_motion)
 (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
 SB_THUMBTRACK, use the 32-bit position information returned by
 GetScrollInfo, not the 16-bit information returned in the Windows
 message sent to us.
2014-08-20 17:41:15 +03:00
Eli Zaretskii
d470a23c95 Fix horizontal scroll bar dragging in R2L paragraphs.
src/w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
 second coordinate ('y') reported for dragging the horizontal
 scroll bar thumb.
2014-08-19 18:08:02 +03:00
YAMAMOTO Mitsuharu
8de8f9b5cc * xdisp.c (erase_phys_cursor): Fix confusion between window-relative
and text area-relative x-coordinates.
2014-08-19 09:51:33 +09:00
Eli Zaretskii
73b7592be7 src/xdisp.c (handle_stop): Improve commentary. 2014-08-18 18:38:56 +03:00
Eli Zaretskii
82193f227e Fix bug #18276 with vertical motion through a display property.
src/indent.c (Fvertical_motion): Fix vertical motion up through a
 display property after a newline.
2014-08-18 18:34:49 +03:00
Eli Zaretskii
39125b2248 Avoid overwriting the reversed_p flags in the glyph matrices.
Avoid overwriting the reversed_p flags in the glyph matrices when
 init_iterator or start_display are called.

 src/xdisp.c (init_iterator): Don't initialize the reversed_p flag of
 the glyph row here.
 (tool_bar_height, redisplay_tool_bar, try_window)
 (try_window_reusing_current_matrix, try_window_id)
 (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
 reversed_p flag of the iterator's glyph row where the glyph row
 is going to be redrawn.
2014-08-17 17:58:04 +03:00
Eli Zaretskii
93e8e44e6f Avoid inflooping in redisplay caused by hscrolled R2L lines.
src/xdisp.c (display_line): Don't assume that the call to
 reseat_at_next_visible_line_start ends up at a character
 immediately following the newline on the previous line.  Avoids
 setting the ends_at_zv_p flag on screen lines that are not at or
 beyond ZV, which causes infloop in redisplay.  For the details, see
 http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
2014-08-17 17:48:50 +03:00
Eli Zaretskii
f7abe0af30 Fix bug #18277 with mouse clicks on R2L lines.
src/dispnew.c (buffer_posn_from_coords): Fix mirroring of X
 coordinate for hscrolled R2L screen lines.
2014-08-17 17:34:05 +03:00
Paul Eggert
2b4c15d829 * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local. 2014-08-16 09:10:50 -07:00
Martin Rudalics
266821b087 Preliminary attempt to fix horizontal scroll bar dragging with bidi text.
* w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
of emacs_event return length from si.nPage to si.nMax.
* xdisp.c (set_horizontal_scroll_bar): For right-to-left text
interchange start and end of thumb.
* scroll-bar.el (scroll-bar-horizontal-drag-1): Use cdr of
portion-whole for scrolling right-to-left text.
2014-08-16 17:47:38 +02:00
Glenn Morris
ed30c57cc9 Merge from emacs-24; up to 2014-06-29T18:32:35Z!michael.albinus@gmx.de 2014-08-14 21:34:06 -07:00
Martin Rudalics
bd4de70f13 In set_menu_bar_lines call change_frame_size instead of set_menu_bar_lines_1.
* frame.c (set_menu_bar_lines_1): Remove.
(set_menu_bar_lines): Call change_frame_size instead of
set_menu_bar_lines_1.
2014-08-12 11:47:27 +02:00
Ken Brown
2b0cb8b177 * src/gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use ERRORCHECK mutexes. (Bug#18222) 2014-08-11 11:25:08 -04:00
Jan Djärv
fe2f33e8da Fix default width not being 80, but 77.
* nsfns.m (Fx_create_frame): Call adjust_frame_size,
set f->official.
2014-08-11 15:16:31 +02:00
Glenn Morris
c7367d2de3 Merge from emacs-24; up to 2014-06-28T23:35:17Z!rgm@gnu.org 2014-08-10 17:59:34 -07:00
Glenn Morris
f314e84fce Revert 2013-01-31 change that decides coding system before backing up
It causes a more serious problem than the one it solves.
This closes bug#18141, and reopens bug#13522.

* lisp/files.el (basic-save-buffer-2): Revert 2013-01-31 change.

* src/fileio.c: Revert 2013-01-31 change.
(choose_write_coding_system): No longer callable from Lisp.
Move last piece back here from Fwrite_region.
(Fwrite_region, syms_of_fileio): Update for above changes.

* test/automated/data/files-bug18141.el.gz: New file.
* test/automated/files.el (files-test-bug-18141-file):
New variable and test.
2014-08-10 17:38:19 -07:00
Reuben Thomas
643a030396 Fix a couple of recent inadvertent breaks of the MSDOS port.
src/msdos.c: include required menu.h
src/term.c: set correct menu_show_hook on MSDOS.
2014-08-10 17:28:36 +01:00
Martin Rudalics
c29f96fa6b Fix handling of menu bar line on TTY frames (Bug#18136) (Bug#18196).
* dispnew.c (handle_window_change_signal):
* keyboard.c (Fsuspend_emacs): Call change_frame_size with
frame's menu bar lines subtracted from height.
* frame.c (frame_inhibit_resize): Inhibit resizing of TTY
frames.
(adjust_frame_size): Count in menu bar when setting FrameRows.
(make_terminal_frame): When setting up the frame's lines and
text height don't count in the menu bar.
(Fmake_terminal_frame): Call adjust_frame_size with menu bar
lines subtracted from height.
(do_switch_frame): Set tty's FrameRows to number of total lines
of frame.
(Fframe_pixel_height, Fframe_pixel_width): If no window system
is used, return total number of lines and columns.
* menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
of FRAME_LINES.
* term.c (OUTPUT, tty_set_terminal_modes)
(tty_set_terminal_window, tty_set_scroll_region)
(tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
(tty_ins_del_lines, tty_menu_display, tty_menu_activate): Use
FRAME_TOTAL_LINES instead of FRAME_LINES.
(Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
Call change_frame_size with frame's menu bar lines subtracted
from height.
* w32console.c (w32con_clear_to_end, w32con_clear_frame)
(w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
FRAME_LINES.
2014-08-10 10:26:28 +02:00
Reuben Thomas
ea2eccbb49 src/alloc.c: remove a stray brace 2014-08-09 22:50:14 +01:00
Reuben Thomas
7f3bb475bb Add changelog entry missing from previous commit 2014-08-09 17:59:43 +01:00
Reuben Thomas
8f481f6922 src/process.c: fix a comment typo 2014-08-09 17:20:29 +01:00
Reuben Thomas
dcf7e861ab Remove support for DJGPP < 2.02
This also removes some specially-licensed files and lots of accompanying
explanation.
2014-08-09 17:12:33 +01:00
Martin Rudalics
c70e7e185e Second attempt to fix some doc-strings in window.c.
* window.c (Fwindow_new_total, Fwindow_new_normal)
(Fwindow_new_pixel, Fset_window_new_pixel)
(Fset_window_new_total, Fset_window_new_normal): Second attempt
to fix the doc-strings of these functions.  See:
http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
2014-08-09 13:12:45 +02:00
Jan Djärv
5742859f27 * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
(resources, setup_frame_cursor_bits): Remove unused variables and
functions, esp. wrt. font.

* widgetprv.h (EmacsFramePart): Remove font.

Fixes: debbugs:18227
2014-08-09 11:06:25 +02:00
Martin Rudalics
8faa5ee738 Fix some doc-strings in window.c (Bug#18112) (Bug#18194).
* window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
(Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
(Fwindow_new_pixel, Fset_window_new_pixel)
(Fset_window_new_total, Fset_window_new_normal)
(Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
2014-08-08 11:52:59 +02:00
Eli Zaretskii
8db811eff1 Fix bug #18162 with assertion violations due to empty face cache.
src/fontset.c (Finternal_char_font): Recompute basic faces if the
 frame's face cache was cleared.
2014-08-07 18:18:10 +03:00
Paul Eggert
b110679002 * xterm.c (x_delete_terminal): Plug file descriptor leak.
Fixes: debbugs:17691
2014-08-07 07:17:03 -07:00
Reuben Thomas
6c5bbf8a00 Fix a few ``MS-DOG''s overlooked in the previous commit.
* README: ``MSDOG'' becomes ``MS-DOS''.
* lisp/arc-mode.el: Fix a couple of ``MS-DOG''s missed in the previous
commit.
* lisp/file-mode.el: ditto.
* src/editfns.c: Fix a couple of ``MS-DOG''s missed in the previous commit.
* src/xfaces.c: ditto.
2014-08-07 11:15:52 +01:00
Eli Zaretskii
518edaef88 src/coding.c: Fix typos in comments and doc strings. 2014-08-06 20:37:22 +03:00
Martin Rudalics
805318e130 Don't redeem scroll bars that have been turned off.
* w32term.c (w32_redeem_scroll_bar):
* xterm.c (XTredeem_scroll_bar): Revert part of last change by
not redeeming scroll bars that have been turned off.
2014-08-05 10:25:28 +02:00
Dmitry Antipov
1d58ab89ca Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
* buffer.c (Fmake_indirect_buffer): Initialize undo list with the
base buffer's undo list.
2014-08-05 10:04:38 +04:00
Dmitry Antipov
697c09e934 * keyboard.c (safe_run_hooks): Follow the convenient style to bind
inhibit-quit to t and pass 2 args to safe_run_hook_funcall.  See
<http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
(safe_run_hook_funcall): Adjust accordingly.
2014-08-05 09:43:35 +04:00
Martin Rudalics
4a75c94d14 Fix scroll bar handling for non-toolkit builds.
* frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Condition
correctly according to toolkit used.
* frame.c (make_initial_frame, make_terminal_frame)
(x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
(Vdefault_frame_horizontal_scroll_bars): Correctly condition
assignments according to presence of toolkit scrollbars.
* window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Condition
correctly according to toolkit used.
* window.c (set_window_scroll_bars): Set horizontal scroll bar
only if toolkit supports it.
* w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
present.
* xterm.c (x_scroll_bar_create): Initialize horizontal slot for
non-toolkit builds.
(XTredeem_scroll_bar): Always redeem scroll bar if present.
2014-08-04 18:47:27 +02:00