Commit Graph

14591 Commits

Author SHA1 Message Date
Juanma Barranquero
09b911adf4 Merge from emacs-24; up to 2014-05-01T10:21:17Z!rgm@gnu.org 2014-04-30 21:54:52 +02:00
Paul Eggert
bc6cb3efd0 * term.c (tty_menu_activate): Don't assume row and col are initialized.
GCC 4.9.0 warned about this, and I couldn't easily prove to my own
satisfaction that they would always be initialized.
2014-04-30 10:54:27 -07:00
Eli Zaretskii
a55ea27f60 Place hardware TTY cursor at the active menu item when displaying a menu.
src/term.c (tty_menu_display): Move the cursor to the active menu
 item.
 (tty_menu_activate): Return the cursor to the active menu item
 after displaying the menu and after displaying help-echo.  See
 http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00402.html
 for the details of why this is needed by screen readers and
 Braille displays.
2014-04-29 18:33:37 +03:00
Stefan Monnier
4d89ee379a * src/window.c (struct saved_window): Remove mark.
(Fset_window_configuration, save_window_save)
(compare_window_configurations): Don't touch marks any more.
* doc/lispref/windows.texi (Window Configurations, Window Configurations):
Window configs don't store marks any more.
2014-04-29 11:16:07 -04:00
Glenn Morris
4a25c1cb1e * src/process.c (handle_child_signal): Handle systems without WCONTINUED
Fixes: debbugs:15110
2014-04-29 08:12:36 -07:00
Paul Eggert
9c23779a9d Use bits_word for gcmarkbits.
* alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
bits_word is typically a tad more efficient for mark bits than
unsigned is, so use bits_word.  All uses changed.
* lisp.h (BITS_PER_INT): Remove; no longer used.
2014-04-28 09:59:41 -07:00
Paul Eggert
6ab1b16c54 Avoid undefined behavior in signed left shift.
This ports to GCC 4.9.0 with -fsanitize=undefined.
* alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
* data.c (Fash):
* regex.c (extract_number):
* lisp.h (make_number, XINT):
Do not shift a 1 bit left into a sign bit.
* alloc.c (struct cons_block, struct float_block): Use unsigned,
not int, for gcmarkbits.  All uses changed.
2014-04-27 18:29:44 -07:00
Juanma Barranquero
dff4a9f6a4 Merge from emacs-24; up to 2014-04-25T10:35:01Z!michael.albinus@gmx.de 2014-04-25 18:11:07 +02:00
Stefan Monnier
8917710efd * src/window.c (Fset_window_configuration): Deactivate the mark before
unsetting the mark.
(set_window_buffer): Ignore window_initialized.
(window_initialized): Remove.
* src/keyboard.c (Qdeactivate_mark): Not static any more.
* src/buffer.c (buffer_local_value): Rename from buffer_local_value_1.
Update all callers.
2014-04-23 23:59:19 -04:00
Paul Eggert
417c9bcba1 * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
and to clang 3.4, which have fixed the bug.  This should let us
run a bit faster on these platforms when address sanitization is
in effect.
2014-04-23 11:23:28 -07:00
Eli Zaretskii
80d982d7ad Fix debugging code for checking the newline cache.
src/search.c (Fnewline_cache_check): Don't try to count newlines
 outside the buffer's restriction, as find_newline doesn't support
 that.
2014-04-23 18:21:25 +03:00
Paul Eggert
42e910349d Merge from emacs-24; up to 2014-04-22T20:19:17Z!eggert@cs.ucla.edu 2014-04-22 14:32:51 -07:00
Paul Eggert
34e856d5ac Port to GCC 4.9.0 with --enable-gcc-warnings.
* image.c (struct my_jpeg_error_mgr) [lint]: Remove member fp.
All uses removed.
(jpeg_load_body) [lint]: Add a 'volatile' to pacify a buggy GCC in
a way that also works with GCC 4.9.0.
2014-04-22 13:19:17 -07:00
Paul Eggert
0fae5004bc * search.c (Fnewline_cache_check): Remove unused locals. 2014-04-22 13:13:59 -07:00
Eli Zaretskii
2f999d5275 Add debugging facility for the newline cache.
See the discussion in
http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00295.html
for more detail.

 src/search.c (find_newline1): New subroutine.
 (Fnewline_cache_check): New function.
 (syms_of_search): Defsubr it.
2014-04-22 20:37:35 +03:00
Daniel Colascione
12b1389c90 Correctly macroexpand top-level forms during eager macroexpand
* lisp/emacs-lisp/byte-run.el (eval-when-compile, eval-and-compile):
Improve docstrings.

* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Add
`full-p' parameter; when nil, call `macroexpand' instead of
`macroexpand-all'.

* src/lread.c (readevalloop_eager_expand_eval): New function
that can recurse into toplevel forms.
(readevalloop): Call it.
* src/lisp.h: Declare Qprogn.
* src/callint.c (Qprogn): No longer static.

* test/automated/bytecomp-tests.el (test-byte-comp-compile-and-load):
Add compile flag.
(test-byte-comp-macro-expansion)
(test-byte-comp-macro-expansion-eval-and-compile)
(test-byte-comp-macro-expansion-eval-when-compile)
(test-byte-comp-macro-expand-lexical-override): Use it.
(test-eager-load-macro-expansion)
(test-eager-load-macro-expansion-eval-and-compile)
(test-eager-load-macro-expansion-eval-when-compile)
(test-eager-load-macro-expand-lexical-override): New tests.
2014-04-22 00:04:34 -07:00
Jarek Czekalski
6709d4dab9 Fix freezing with scroll bars of GTK3 Toolkit.
* src/keyboard.c (unblock_input): Add comment.
* src/xgselect.c (xg_select): Prevent Glib main loop recursion.

Fixes: debbugs:15801
2014-04-21 11:55:28 -04:00
Daniel Colascione
6dfa19c50f Merge from emacs-24; up to 2014-04-17T02:05:48Z!eggert@cs.ucla.edu 2014-04-19 13:32:05 -07:00
Stefan Monnier
d7b659bb06 * src/intervals.c (rotate_right, rotate_left): Fix up length computation.
Also change identifiers to match the comments, and add more assertions.

Fixes: debbugs:16234
2014-04-19 14:13:26 -04:00
Juanma Barranquero
bba633792b Merge from emacs-24; up to 2014-04-16T15:28:06Z!eggert@cs.ucla.edu 2014-04-19 01:36:51 +02:00
Eli Zaretskii
ea0ca0f458 Fix bug #17288 with inserting left truncation glyph under linum-mode.
src/xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
 glyph is written to TEXT_AREA of the temporary glyph_row.
2014-04-18 11:35:09 +03:00
Eli Zaretskii
ad62a11591 src/ChangeLog: Add header line to recent MSDOS-related entries. 2014-04-18 10:52:18 +03:00
Paul Eggert
3155951737 * emacs.c (close_output_streams): Don't clear and restore errno. 2014-04-17 23:40:15 -07:00
Paul Eggert
f0496348d1 * term.c (tty_send_additional_strings): No need to fflush here,
as callers fflush.
(tty_set_terminal_modes): fflush after sending additional strings,
not before.
2014-04-17 07:59:22 -07:00
Jan Djärv
53e46f3ad6 Prevent endless loop in x_make_frame_visible.
* xterm.c (x_make_frame_visible): Prevent endless loop when frame
never becomes visible, i.e. using XMonad .

Fixes: debbugs:17237
2014-04-17 11:07:58 +02:00
Eli Zaretskii
8915b84286 Fix bug #17281 with infloop in line-pixel-height.
src/xdisp.c (Fline_pixel_height): Don't assume that the current
 buffer and the selected window's buffer are one and the same.
2014-04-17 11:58:59 +03:00
Daniel Colascione
bfc3079068 2014-04-17 Daniel Colascione <dancol@dancol.org>
Add support for bracketed paste mode; add infrastructure for
	managing terminal mode enabling and disabling automatically.

	* xt-mouse.el:
	(xterm-mouse-mode): Simplify.
	(xterm-mouse-tracking-enable-sequence)
	(xterm-mouse-tracking-disable-sequence): New constants.
	(turn-on-xterm-mouse-tracking-on-terminal)
	(turn-off-xterm-mouse-tracking-on-terminal): Use
	tty-mode-set-strings and tty-mode-reset-strings terminal
	parameters instead of random hooks.
	(turn-on-xterm-mouse-tracking)
	(turn-off-xterm-mouse-tracking): Delete.

	* term/xterm.el (xterm-extra-capabilities): Fix bitrotted comment.
	(xterm-paste-ending-sequence): New constant.
	(xterm-paste): New command used for bracketed paste support.

	(xterm-modify-other-keys-terminal-list): Delete obsolete variable.
	(terminal-init-xterm-bracketed-paste-mode): New function.
	(terminal-init-xterm): Call it.
	(terminal-init-xterm-modify-other-keys): Use tty-mode-set-strings
	and tty-mode-reset-strings instead of random hooks.
	(xterm-turn-on-modify-other-keys)
	(xterm-turn-off-modify-other-keys)
	(xterm-remove-modify-other-keys): Delete obsolete functions.

	* term/screen.el: Rewrite to just use the xterm code.  Add
	copyright notice.  Mention tmux.
2014-04-17 00:54:23 -07:00
Eli Zaretskii
f76da67d40 Fix bug #17269 with corruption of the newline cache.
src/insdel.c (invalidate_buffer_caches): Invalidate the bidi
 paragraph-start cache before the newline cache.
2014-04-17 10:24:40 +03:00
Paul Eggert
290d7ac277 Merge from emacs-24; up to 2014-04-16T15:28:26Z!monnier@iro.umontreal.ca 2014-04-16 12:43:46 -07:00
Paul Eggert
5403b2d3aa Remove DATA_SEG_BITS.
The DATA_SEG_BITS hack was needed for older 32 bit platforms.
As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
cc, but that platform is so old that SGI itself stopped supporting
it in December 2013.  If you still need Emacs on IRIX, please
either compile with GCC and port the undumping code, or run
'./configure --with-wide-int'.
* configure.ac (DATA_SEG_BITS): Remove.  All uses removed.
* src/alloc.c (gdb_make_enums_visible): Update to match lisp.h.
* src/lisp.h (GCTYPEBITS): Move definition up, and switch to the
DEFINE_GDB_SYMBOL_START way to define it.
(NONPOINTER_BITS): New macro.
(EMACS_INT): Use it.
[!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
the problem and/or configuring --with-wide-int.
(USE_LSB_TAG): Simplify, based on above changes.
(gdb_DATA_SEG_BITS): Remove.  All uses removed.
* src/vm-limit.c (exceeds_lisp_ptr): Remove.  All uses removed.
2014-04-16 08:16:35 -07:00
Stefan Monnier
63032a0eb9 * src/window.c (save_window_save): Lookup window_point_insertion_type in
the right buffer.
(Qwindow_point_insertion_type): New var.
(syms_of_window): Initialize it.

Fixes: debbugs:15457
2014-04-16 10:00:39 -04:00
Eli Zaretskii
bf6b4923f7 Fix the MSDOS build.
src/unexcoff.c [MSDOS]: Include libc/atexit.h.
 (copy_text_and_data): Zero out the atexit chain pointer before
 dumping Emacs.
 src/termhooks.h (encode_terminal_code): Update prototype.
 src/term.c (encode_terminal_code) [DOS_NT]: Make it externally
 visible for all DOS_NT ports, not just WINDOWSNT.
 (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
 src/sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
 unless it is defined.
 (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
 src/process.c (close_on_exec, accept4, process_socket): Move into
 the "ifdef subprocesses" part.
 (catch_child_signal): Condition by "ifdef subprocesses".
 (syms_of_process) <Qinternal_default_process_sentinel>
 <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
 src/msdos.h: Add prototypes for new functions.
 (EINPROGRESS): Define.
 (O_CLOEXEC): Define to zero.
 src/msdos.c (check_window_system): Remove unnecessary an
 incompatible duplicate function.
 (sys_opendir, readlinkat, faccessat, fstatat, unsetenv): New
 functions in support of new functionality.
 src/menu.c (single_menu_item): Add visual indication  of submenu
 also for menus on MSDOS frames.
 (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
 src/lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
 when async subprocesses aren't supported.
 src/font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
 src/emacs.c (close_output_streams): Zero out errno before calling
 close_stream.
 src/dired.c [MSDOS]: Include msdos.h.
 src/conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
 (DATA_START) [MSDOS]: Define.
 (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
 src/callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
 Ifdef away for MSDOS.
 (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
 (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
 for MSDOS.
 (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
 Use temporary file template that is compatible with mkostemp.
 Move vfork-related portions under #ifndef MSDOS.
 (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.

 lisp/term/pc-win.el (x-list-fonts, x-get-selection-value): Provide
 doc strings, as required by snarf-documentation.

 msdos/sedlisp.inp:
 msdos/sedlibmk.inp:
 msdos/sedleim.inp:
 msdos/sed3v2.inp:
 msdos/sed2v2.inp:
 msdos/sed1v2.inp: Update Sed scripts for Emacs 24.4.
 msdos/inttypes.h: Add PRIdMAX.
 msdos/INSTALL: Update for Emacs 24.4.
 msdos/sedadmin.inp: New file.
2014-04-16 16:27:28 +03:00
Paul Eggert
3a31cae467 Revert previous change. 2014-04-15 13:05:02 -07:00
Eli Zaretskii
ad0dfd98e3 Resurrect 2 entries in src/ChangeLog nuked by the previous commit. 2014-04-15 18:56:23 +03:00
Paul Eggert
f5a312939f Fix some xgselect-vs-pselect bugs.
This may not fix Bug#17172, but it fixes some bugs discovering
while auditing xgselect.c for that bug.
when one of glib's file descriptors is greater than FDS_LIM.
Treat rfds, wfds, efds consistently, and test G_IO_PRI too.
Clear input masks when pselect returns zero.
2014-04-15 08:43:41 -07:00
Stefan Monnier
20fa59a004 * src/buffer.c (Foverlays_at): Add argument `sorted'.
* doc/lispref/display.texi (Overlay Properties): Reword the doc of `priority'.
(Finding Overlays): Document new arg of `overlays-at'.
* lisp/obsolete/lucid.el (extent-at):
* lisp/htmlfontify.el (hfy-overlay-props-at): Use the new `sorted' arg of
overlays-at.
(hfy-fontify-buffer): Remove unused var `orig-ovls'.
* lisp/ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'
arg of overlays-at.  Use `invisible-p'.
2014-04-15 09:21:18 -04:00
Eli Zaretskii
ac6ec89c15 Fix bidirectional redisplay when deletion creates a paragraph start.
src/insdel.c (invalidate_buffer_caches): When deleting or replacing
 text, invalidate the bidi_paragraph_cache upto and including the
 preceding newline.
2014-04-14 18:32:27 +03:00
Paul Eggert
13a5993b31 Port to IRIX 6.5.
This port requires IRIX cc, as I did not have time to get
undump working with the old GCC on the system I had access to,
but that's better than nothing.
* configure.ac (gl_GCC_VERSION_IFELSE): Remove unused macro
that wouldn't have worked anyway, with IRIX cc.
(emacs_cv_clang, emacs_cv_sanitize_address)
(ns_osx_have_104, ns_osx_have_105):
Don't assume '#error' makes the compiler fail,
as this doesn't work with IRIX cc.
(CFLAGS, LIBS): Don't let the GnuTLS results infect later 'configure'
checks.  This runs afoul of an IRIX configuration where GnuTLS is
in an optional library that also contains getdelim, and causes
a later 'configure' to incorrectly think getdelim is supported.
* src/alloc.c (TAGGABLE_NULL): New constant,
for porting to hosts with nontrivial DATA_SEG_BITS settings.
(next_vector, set_next_vector): Use it.
* src/conf_post.h (INET6) [IRIX6_5]: Define.
(HAVE_GETADDRINFO) [IRIX6_5]: Undef.
* src/data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
* src/lisp.h (lisp_h_XPNTR): Don't OR in bits that aren't masked out,
for consistency with how TAGGABLE_NULL is computed.

Fixes: debbugs:9684
2014-04-13 15:51:08 -07:00
Eli Zaretskii
ced78c5a65 Fix open-dribble-file's treatment of non-ASCII file names.
src/keyboard.c (Fopen_dribble_file): Encode the dribble file-name
 before passing it to system APIs.
2014-04-13 13:45:46 +03:00
Eli Zaretskii
ff252be0a8 Fix bug #17255 with insufficient pure space on 32-bit Posix builds.
src/puresize.h (BASE_PURESIZE): Bump by 1K.
2014-04-13 10:33:15 +03:00
Stefan Monnier
285d6d5d0f * src/bytecode.c (exec_byte_code): Rework the volatiles. Most importantly,
make sure stack.byte_string_start is not de-adjusted by pushhandler.
2014-04-12 22:51:11 -04:00
Paul Eggert
a9108bf189 * keyboard.c (Fopen_dribble_file): Avoid some races.
Fixes: debbugs:17187
2014-04-12 14:54:27 -07:00
Glenn Morris
e0af409500 Merge from emacs-24; up to 2014-04-07T20:54:16Z!dancol@dancol.org 2014-04-12 12:24:17 -07:00
Eli Zaretskii
180c8ce0c6 Fix bug #17244 with line-move-visual when display string covers a lot of text.
src/xdisp.c (move_it_by_lines): If a large portion of buffer text is
 covered by a display string that ends in a newline, and that cases
 going back by DVPOS lines to hit the search limit, lift the limit
 and go back until DVPOS is reached.
 src/indent.c (Fvertical_motion): Handle correctly the case when the
 display string is preceded by an empty line.
2014-04-12 14:21:47 +03:00
Eli Zaretskii
95765a6ac3 src/w32.c (sys_umask) <WRITE_USER>: Remove redundant constant.
src/w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
 use S_IWRITE instead.
2014-04-11 11:11:57 +03:00
Glenn Morris
536aa46681 Merge from emacs-24; up to 2014-04-04T23:31:02Z!joaotavora@gmail.com 2014-04-10 23:43:20 -07:00
Glenn Morris
34e083e360 * src/keyboard.c (Fopen_dribble_file): Make file private.
Fixes: debbugs:17187
2014-04-10 22:47:32 -07:00
Daniel Colascione
fb2dcc3567 Increase BASE_PURESIZE 2014-04-09 17:05:34 -07:00
Ken Brown
0cccc183d7 Revert most of the recent change involving manifests on Cygwin. (Bug#17176)
* configure.ac (EMACS_MANIFEST): Revert last change (but leave
UPDATE_MANIFEST empty).
* nt/emacs.rc: Revert last change.
* src/Makefile.in (EMACS_MANIFEST): Revert last change.
2014-04-09 17:16:37 -04:00
Stefan Monnier
5f6378eed5 * src/keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local. 2014-04-09 09:21:30 -04:00