1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 11:21:04 -08:00
Commit graph

112089 commits

Author SHA1 Message Date
Glenn Morris
d828e5f942 image-dired.el: use with-current-buffer
* lisp/image-dired.el (image-dired-track-original-file):
Use with-current-buffer.
(image-dired-track-thumbnail): Use with-current-buffer.
Avoid changing point of wrong window.
2013-07-20 12:29:02 -07:00
Glenn Morris
c4074c9f63 Tweak some message calls in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-delete-handler, gdb-stopped):
Let `message' do the formatting.
(def-gdb-preempt-display-buffer): Add explicit format.
2013-07-20 12:25:05 -07:00
Glenn Morris
f0398ec17f Merge from emacs-24; up to 2012-12-31T11:35:13Z!rudalics@gmx.at 2013-07-20 12:20:33 -07:00
Glenn Morris
862f1c9c3a * lisp/image-dired.el (image-dired-track-original-file):
Avoid changing point of wrong window.

Fixes: debbugs:14909
2013-07-20 12:17:32 -07:00
Andreas Schwab
1451928fff * international/mule.el (coding-system-iso-2022-flags): Fix last
change.
2013-07-20 17:41:38 +02:00
Paul Eggert
6496aec9e9 Fix array bounds violation when pty allocation fails.
* configure.ac (PTY_TTY_NAME_SPRINTF): Use PTY_NAME_SIZE,
not sizeof pty_name, since pty_name is now a pointer to the array.
* src/process.c (PTY_NAME_SIZE): New constant.
(pty_name): Remove static variable; it's now auto.
(allocate_pty): Define even if !HAVE_PTYS; that's simpler.
Take pty_name as an arg rather than using a static variable.
All callers changed.
(create_process): Recover pty_flag from process, not from volatile local.
(create_pty): Stay inside array even when pty allocation fails.
(Fmake_serial_process): Omit unnecessary initializaiton of pty_flag.
2013-07-20 08:33:00 -07:00
Paul Eggert
b2a069c2f8 * lread.c (Fload): Avoid initialization only when lint checking.
Mention that it's needed only for older GCCs.
2013-07-20 07:21:25 -07:00
Kenichi Handa
7e67809332 merge trunk 2013-07-20 20:51:53 +09:00
Kenichi Handa
0efe47a860 coding.c (decode_coding_iso_2022): Fix previous change. 2013-07-20 20:45:50 +09:00
Kenichi Handa
1145cc5221 mule.el (coding-system-iso-2022-flags): Change 8-bit-level-4' 2013-07-20 20:22:56 +09:00
Andreas Schwab
6b1b199dc0 * lread.c (Fload): Avoid uninitialized warning. 2013-07-20 10:25:46 +02:00
Kenichi Handa
99107004b1 * coding.c (CODING_ISO_FLAG_LEVEL_4): New macro.
(decode_coding_iso_2022): Check the single-shift area.  (Bug#8522)
2013-07-20 13:19:05 +09:00
Kenichi Handa
eaaa8f3ea1 * mule.el (coding-system-iso-2022-flags): Add `level-4'. (Bug#8522) 2013-07-20 13:15:37 +09:00
Paul Eggert
3f5bef16fa Fix some minor file descriptor leaks and related glitches.
* filelock.c (create_lock_file) [!O_CLOEXEC]: Use fcntl with FD_CLOEXEC.
(create_lock_file): Use write, not emacs_write.
* image.c (slurp_file, png_load_body):
* process.c (Fnetwork_interface_list, Fnetwork_interface_info)
(server_accept_connection):
Don't leak an fd on memory allocation failure.
* image.c (slurp_file): Add a cheap heuristic for growing files.
* xfaces.c (Fx_load_color_file): Block input around the fopen too,
as that's what the other routines do.  Maybe input need not be
blocked at all, but it's better to be consistent.
Avoid undefined behavior when strlen is zero.
2013-07-19 11:09:23 -07:00
Paul Eggert
4195afc389 * alloc.c (staticpro): Avoid buffer overrun on repeated calls.
(NSTATICS): Now a constant; doesn't need to be a macro.
2013-07-19 10:54:26 -07:00
Richard M. Stallman
a1aeeffedd (decode_coding_utf_8): Add simple loop for fast processing of ASCII characters. 2013-07-19 12:15:51 -04:00
Lars Magne Ingebrigtsen
8ba8eec59b * net/shr.el (shr-mouse-browse-url): New command and keystroke.
Fixes: debbugs:14815
2013-07-19 16:57:28 +02:00
Gnus developers
47cc115603 Merge Changes made in Gnus master
2013-07-19 Geoff Kuenning <geoff@cs.hmc.edu> (tiny change)
 * gnus.texi (Customizing Articles): Document function predicates.

2013-07-19 Geoff Kuenning <geoff@cs.hmc.edu> (tiny change)
 * gnus-art.el (gnus-treat-predicate): Allow functions as predicates (bug#13384).

2013-07-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
 * gnus-start.el (gnus-clean-old-newsrc): Remove the newsrc cleanups
 that were only relevant in a development version a long time ago.
2013-07-19 14:50:21 +00:00
Lars Magne Ingebrigtsen
dfbc66e3e4 eww textarea input fixup
* net/eww.el (eww-process-text-input): Allow inputting when the
point is at the start of the line, as the properties aren't
front-sticky.
2013-07-19 16:44:16 +02:00
Paul Eggert
63b34baae6 * conf_post.h (RE_TRANSLATE_P) [emacs]: Remove obsolete optimization. 2013-07-19 07:34:56 -07:00
Lars Magne Ingebrigtsen
48494e063a (shr-make-table-1): Ensure that we don't infloop on degenerate widths. 2013-07-19 16:07:43 +02:00
Richard M. Stallman
aec7da77ec * epa.el (epa-popup-info-window): Doc fix. 2013-07-19 09:30:58 -04:00
Richard M. Stallman
a10b2d0377 Add a comment. 2013-07-19 09:09:03 -04:00
Richard M. Stallman
77c92cb94d split-string takes a new arg TRIM that's a regexp
saying what to trim from the start and end of each substring.

* subr.el (split-string): New arg TRIM.
2013-07-19 08:18:16 -04:00
Eli Zaretskii
621dd9ac0c Fix the fix for bug #14901.
src/keyboard.c (kbd_buffer_get_event): Use Display_Info instead of
 unportable 'struct x_display_info'.
 (DISPLAY_LIST_INFO): Delete macro: not needed, since Display_Info
 is a portable type.
2013-07-19 13:55:36 +03:00
Xue Fuqiao
ac446ed806 * doc/lispref/windows.texi (Display Action Functions): Mention next-window. 2013-07-19 14:31:17 +08:00
Paul Eggert
ab9980cd3b * sysdep.c [GNU_LINUX]: Fix fd and memory leaks and similar issues.
(procfs_ttyname): Don't use uninitialized storage if emacs_fopen
or fscanf fails.
(system_process_attributes): Prefer plain char to unsigned char
when either will do.  Clean up properly if interrupted or if
memory allocations fail.  Don't assume sscanf succeeds.  Remove
no-longer-needed workaround to stop GCC from whining.  Read
command-line once, instead of multiple times.  Check read status a
bit more carefully.
2013-07-18 22:36:50 -07:00
Paul Eggert
1396ac86de Fix obscure porting bug with varargs functions.
The code assumed that int is treated like ptrdiff_t in a vararg
function, which is not a portable assumption.  There was a similar
-- though these days less likely -- porting problem with various
assumptions that pointers of different types all smell the same as
far as vararg functions is conserved.  To make this problem less
likely in the future, redo the API to use varargs functions.
* alloc.c (make_save_value): Remove this vararg function.
All uses changed to ...
(make_save_int_int_int, make_save_obj_obj_obj_obj)
(make_save_ptr_int, make_save_funcptr_ptr_obj, make_save_memory):
New functions.
(make_save_ptr): Rename from make_save_pointer, for consistency with
the above.  Define only on platforms that need it.  All uses changed.
2013-07-18 18:24:35 -07:00
Juanma Barranquero
c7064f05d3 lisp/ChangeLog, src/ChangeLog: Fix typos. 2013-07-19 02:38:19 +02:00
Paul Eggert
4d19d19407 * keyboard.c: Try to fix typos in previous change.
(DISPLAY_LIST_INFO): New macro.
(kbd_buffer_get_event): Do not access members that are not present
in X11.  Revert nadvertent change of "!=" to "=".
2013-07-18 14:16:33 -07:00
Richard Copley
188c1ae603 * gdb-mi.el (gdb-done-or-error): Guard against "%" in gdb output (tiny change)
Fixes: debbugs:14127
2013-07-18 12:56:08 -04:00
Juanma Barranquero
945c5bb194 Followup to 2013-07-16T11:41:06Z!jan.h.d@swipnet.se.
* lisp/frame.el (blink-cursor-timer-function, blink-cursor-suspend):
  Add check for W32.
* src/keyboard.c (kbd_buffer_get_event):
* src/w32term.c (x_focus_changed): Port FOCUS_(IN|OUT)_EVENT changes to W32.
2013-07-18 18:50:05 +02:00
Katsumi Yamaoka
abd2f2a44e gnus-art.el (gnus-shr-put-image): Make it work as well for shr.el's that the old Emacs 24s bundle 2013-07-18 11:26:04 +00:00
Paul Eggert
5e679a2cfd * filelock.c: Fix unlikely file descriptor leaks.
(get_boot_time_1): Rework to avoid using emacs_open.
This doesn't actually fix a leak, but is better anyway.
(read_lock_data): Use read, not emacs_read.
2013-07-18 03:24:26 -07:00
Michael Albinus
e06ec67f56 * filenotify.el (file-notify--library): Renamed from
`file-notify-support'.  Do not autoload.  Adapt all uses.
(file-notify-supported-p): New defun.

* autorevert.el (auto-revert-use-notify): Use
`file-notify-supported-p' instead of `file-notify-support'.  Adapt
docstring.
(auto-revert-notify-add-watch): Use `file-notify-supported-p'.

* net/tramp.el (tramp-file-name-for-operation):
Add `file-notify-supported-p'.

* net/tramp-sh.el (tramp-sh-handle-file-notify-supported-p):
New defun.
(tramp-sh-file-name-handler-alist): Add it as handler for
`file-notify-supported-p '.

* net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Add `ignore' as handler for `file-notify-*' functions.
2013-07-18 12:03:49 +02:00
Paul Eggert
a8cd483645 * doc.c: Fix minor memory and file descriptor leaks.
* doc.c (get_doc_string): Fix memory leak when doc file absent.
(get_doc_string, Fsnarf_documentation):
Fix file descriptor leak on error.
2013-07-18 02:55:00 -07:00
Paul Eggert
ef30e6382a * term.c: Fix minor fdopen-related file descriptor leaks.
* term.c (Fresume_tty) [!MSDOS]: Close fd if fdopen (fd) fails.
(init_tty) [!DOS_NT]: Likewise.  Also close fd if isatty (fd) fails.
2013-07-18 01:35:27 -07:00
Paul Eggert
f4b1eb3618 * charset.c: Fix file descriptor leaks and errno issues.
Include <errno.h>.
(load_charset_map_from_file): Don't leak file descriptor on error.
Use plain record_xmalloc since the allocation is larger than
MAX_ALLOCA; that's simpler here.  Simplify test for exhaustion
of entries.
* eval.c (record_unwind_protect_nothing):
* fileio.c (fclose_unwind):
New functions.
* lread.c (load_unwind): Remove.  All uses replaced by fclose_unwind.
The replacement doesn't block input, but that no longer seems
necessary.
2013-07-17 19:12:59 -07:00
Paul Eggert
a0931322f6 * lread.c: Fix file descriptor leaks and errno issues.
(Fload): Close some races that leaked fds or streams when 'load'
was interrupted.
(Fload, openp): Report error number of last nontrivial failure to open.
ENOENT counts as trivial.
* eval.c (do_nothing, clear_unwind_protect, set_unwind_protect_ptr):
New functions.
* fileio.c (close_file_unwind): No need to test whether FD is nonnegative,
now that the function is always called with a nonnegative arg.
* lisp.h (set_unwind_protect_ptr, set_unwind_protect_int): Remove.
All uses replaced with ...
(clear_unwind_protect, set_unwind_protect_ptr): New decls.
2013-07-17 10:24:54 -07:00
Eli Zaretskii
5dc8a62987 Fix bug #14881 with scrolling images smaller than the window height.
lisp/simple.el (line-move-partial, line-move): Don't start vscroll or
 scroll-up if the current line is not taller than the window.
2013-07-17 19:47:49 +03:00
Paul Eggert
b648c16370 A few more minor file errno-reporting bugs.
* callproc.c (Fcall_process):
* doc.c (Fsnarf_documentation):
* fileio.c (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
* process.c (set_socket_option):
Don't let a constructor trash errno.
* doc.c: Include <errno.h>.
2013-07-16 21:37:27 -07:00
Juanma Barranquero
b1dc408426 src/w32fns.c (unwind_create_tip_frame): Fix declaration. 2013-07-17 01:29:05 +02:00
Paul Eggert
50a30ccec8 Fix w32 bug with call-process-region.
* callproc.c (Fcall_process_region): Pass nil, not "/dev/null",
to Fcall_process when the input is empty.  This simplifies the
code a bit.  It makes no difference on POSIXish platforms but
apparently it fixes a bug on w32.

Fixes: debbugs:14885
2013-07-16 15:40:17 -07:00
Paul Eggert
41d48a42df Fix bug where insert-file-contents closes a file twice.
* fileio.c (close_file_unwind): Don't close if FD is negative;
this can happen when unwinding a zapped file descriptor.
(Finsert_file_contents): Unwind-protect the fd before the point marker,
in case Emacs runs out of memory between the two unwind-protects.
Don't trash errno when closing FD.
Zap the FD in the specpdl when closing it, instead of deferring
the removal of the unwind-protect; this fixes a bug where a child
function unwinds the stack past us.

Fixes: debbugs:14839
2013-07-16 14:49:32 -07:00
Paul Eggert
27e498e6e5 New unwind-protect flavors to better type-check C callbacks.
This also lessens the need to write wrappers for callbacks,
and the need for make_save_pointer.
* alloca.c (free_save_value):
* atimer.c (run_all_atimers):
Now extern.
* alloc.c (safe_alloca_unwind):
* atimer.c (unwind_stop_other_atimers):
* keyboard.c (cancel_hourglass_unwind) [HAVE_WINDOW_SYSTEM]:
* menu.c (cleanup_popup_menu) [HAVE_NS]:
* minibuf.c (choose_minibuf_frame_1):
* process.c (make_serial_process_unwind):
* xdisp.h (pop_message_unwind):
* xselect.c (queue_selection_requests_unwind):
Remove no-longer-needed wrapper.  All uses replaced by the wrappee.
* alloca.c (record_xmalloc):
Prefer record_unwind_protect_ptr to record_unwind_protect with
make_save_pointer.
* alloca.c (Fgarbage_collect):
Prefer record_unwind_protect_void to passing a dummy.
* buffer.c (restore_buffer):
* window.c (restore_window_configuration):
* xfns.c, w32fns.c (do_unwind_create_frame)
New wrapper.  All record-unwind uses of wrappee changed.
* buffer.c (set_buffer_if_live):
* callproc.c (call_process_cleanup, delete_temp_file):
* coding.c (code_conversion_restore):
* dired.c (directory_files_internal_w32_unwind) [WINDOWSNT]:
* editfns.c (save_excursion_restore)
(subst_char_in_region_unwind, subst_char_in_region_unwind_1)
(save_restriction_restore):
* eval.c (restore_stack_limits, un_autoload):
* fns.c (require_unwind):
* keyboard.c (recursive_edit_unwind, tracking_off):
* lread.c (record_load_unwind, load_warn_old_style_backquotes):
* macros.c (pop_kbd_macro, restore_menu_items):
* nsfns.m (unwind_create_frame):
* print.c (print_unwind):
* process.c (start_process_unwind):
* search.c (unwind_set_match_data):
* window.c (select_window_norecord, select_frame_norecord):
* xdisp.c (unwind_with_echo_area_buffer, unwind_format_mode_line)
(fast_set_selected_frame):
* xfns.c, w32fns.c (unwind_create_tip_frame):
Return void, not a dummy Lisp_Object.  All uses changed.
* buffer.h (set_buffer_if_live): Move decl here from lisp.h.
* callproc.c (call_process_kill):
* fileio.c (restore_point_unwind, decide_coding_unwind)
(build_annotations_unwind):
* insdel.c (Fcombine_after_change_execute_1):
* keyboard.c (read_char_help_form_unwind):
* menu.c (unuse_menu_items):
* minibuf.c (run_exit_minibuf_hook, read_minibuf_unwind):
* sound.c (sound_cleanup):
* xdisp.c (unwind_redisplay):
* xfns.c (clean_up_dialog):
* xselect.c (x_selection_request_lisp_error, x_catch_errors_unwind):
Accept no args and return void, instead of accepting and returning
a dummy Lisp_Object.  All uses changed.
* cygw32.c (fchdir_unwind):
* fileio.c (close_file_unwind):
* keyboard.c (restore_kboard_configuration):
* lread.c (readevalllop_1):
* process.c (wait_reading_process_output_unwind):
Accept int and return void, rather than accepting an Emacs integer
and returning a dummy object.  In some cases this fixes an
unlikely bug when the corresponding int is outside Emacs integer
range.  All uses changed.
* dired.c (directory_files_internal_unwind):
* fileio.c (do_auto_save_unwind):
* gtkutil.c (pop_down_dialog):
* insdel.c (reset_var_on_error):
* lread.c (load_unwind):
* xfns.c (clean_up_file_dialog):
* xmenu.c, nsmenu.m (pop_down_menu):
* xmenu.c (cleanup_widget_value_tree):
* xselect.c (wait_for_property_change_unwind):
Accept pointer and return void, rather than accepting an Emacs
save value encapsulating the pointer and returning a dummy object.
All uses changed.
* editfns.c (Fformat): Update the saved pointer directly via
set_unwind_protect_ptr rather than indirectly via make_save_pointer.
* eval.c (specpdl_func): Remove.  All uses replaced by definiens.
(unwind_body): New function.
(record_unwind_protect): First arg is now a function returning void,
not a dummy Lisp_Object.
(record_unwind_protect_ptr, record_unwind_protect_int)
(record_unwind_protect_void): New functions.
(unbind_to): Support SPECPDL_UNWIND_PTR etc.
* fileio.c (struct auto_save_unwind): New type.
(do_auto_save_unwind): Use it.
(do_auto_save_unwind_1): Remove; subsumed by new do_auto_save_unwind.
* insdel.c (struct rvoe_arg): New type.
(reset_var_on_error): Use it.
* lisp.h (SPECPDL_UNWIND_PTR, SPECPDL_UNWIND_INT, SPECPDL_UNWIND_VOID):
New constants.
(specbinding_func): Remove; there are now several such functions.
(union specbinding): New members unwind_ptr, unwind_int, unwind_void.
(set_unwind_protect_ptr): New function.
* xselect.c: Remove unnecessary forward decls, to simplify maintenance.
2013-07-16 14:35:45 -07:00
Dmitry Gutov
ac72c08d12 * lisp/progmodes/ruby-mode.el (ruby-block-beg-keywords): Inline.
(ruby-font-lock-keyword-beg-re): Extract from
`ruby-font-lock-keywords'.
2013-07-16 23:16:51 +04:00
Paul Eggert
4e604a5d70 Be simpler and more consistent about reporting I/O errors.
* fileio.c (Fcopy_file, Finsert_file_contents, Fwrite_region):
Say "Read error" and "Write error", rather than "I/O error", or
"IO error reading", or "IO error writing", when a read or write
error occurs.
* process.c (Fmake_network_process, wait_reading_process_output)
(send_process, Fprocess_send_eof, wait_reading_process_output):
Capitalize diagnostics consistently.  Put "failed foo" at the
start of the diagnostic, so that we don't capitalize the
function name "foo".  Consistently say "failed" for such
diagnostics.
* sysdep.c, w32.c (serial_open): Now accepts Lisp string, not C string.
All callers changed.  This is so it can use report_file_error.
* sysdep.c (serial_open, serial_configure): Capitalize I/O
diagnostics consistently as above.
2013-07-16 11:30:52 -07:00
Paul Eggert
a9757f6a03 * fileio.c (report_file_errno): Fix errno reporting bug.
If the file name is neither null nor a pair, package it up as a
singleton list.  All callers changed, both to this function and to
report_file_error.  This fixes a bug where the memory allocator
invoked by list1 set errno so that the immediately following
report_file_error reported the wrong errno value.
2013-07-16 09:39:42 -07:00
Paul Eggert
c43843aa1a Fix minor problems found by --enable-gcc-warnings.
* frame.c (Fhandle_focus_in, Fhandle_focus_out): Return a value.
* keyboard.c (kbd_buffer_get_event): Remove unused local.
2013-07-16 07:52:22 -07:00
Dmitry Gutov
77aea2fbb3 * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Do not
highlight question marks in the method names as strings.
2013-07-16 18:47:23 +04:00