1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 23:31:55 -08:00
Commit graph

34616 commits

Author SHA1 Message Date
Paul Eggert
4ebbdd6712 Handle errno and exit status a bit more carefully.
* lib/ignore-value.h: Remove this gnulib-imported file.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Remove ignore-value.
* src/callproc.c (child_setup) [!DOS_NT]: Don't try to stuff an error
number into an exit status.  Instead, use EXIT_CANCELED.
(child_setup) [!MSDOS]: Avoid possible deadlock with vfork.
* src/callproc.c (relocate_fd):
* src/emacs.c (close_output_streams, main):
* src/process.c (create_process):
* src/sysdep.c (sys_subshell) [!DOS_NT || !WINDOWSNT]:
Use emacs_perror for simplicity.
* src/callproc.c (relocate_fd, main):
* src/sysdep.c (sys_subshell):
Exit with EXIT_CANCELED etc., not 1, when exec setup fails.
(shut_down_emacs): Use emacs_write, not write.
* src/emacs.c, src/sysdep.c: Don't include <ignore-value.h>.
* src/fileio.c (Fcopy_file, e_write):
* src/nsterm.m (ns_select):
* src/process.c (send_process):
* src/sound.c (vox_write):
Use emacs_write_sig, not emacs_write.
* src/lisp.h (emacs_write_sig, emacs_perror): New decls.
* src/process.h (EXIT_CANCELED), EXIT_CANNOT_INVOKE, EXIT_ENOENT):
New constants.
* src/sysdep.c (emacs_backtrace): Use emacs_write, not ignore_value
of write.
(emacs_full_write): New function.
(emacs_write): Rewrite to use it.
(emacswrite_sig, emacs_perror): New functions.
* src/xrdb.c (fatal): Don't invoke perror, since errno might be garbage.
2013-07-09 00:04:48 -07:00
Paul Eggert
1b6006a514 * filelock.c: Fix comment to match code. 2013-07-08 23:29:29 -07:00
Paul Eggert
cf7a0de6e7 Space between "defined" and "(". 2013-07-08 22:04:45 -07:00
Jan Djärv
e4b1e5afb4 configure.ac (HAVE_IMAGEMAGICK): Check on NS also.
image.c (imagemagick_load_image): Do not use MagickExportImagePixels
on NS even if it is present.  Pixmap on NS is a void*.

Fixes: debbugs:14798
2013-07-08 15:26:13 +02:00
Paul Eggert
9caab067d6 Port to Ubuntu 10.
Problem reported by T.V. Raman.
* configure.ac (accept4): New function to check for.
* src/process.c (close_on_exec, accept4, process_socket):
Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.

Fixes: debbugs:14803
2013-07-07 16:22:43 -07:00
Juanma Barranquero
5165d44a78 ChangeLog fixes. 2013-07-08 01:05:52 +02:00
Eli Zaretskii
1d44267275 MS-Windows followup for 2013-07-07T18:00:14Z!eggert@cs.ucla.edu.
nt/inc/sys/socket.h (F_SETFD, O_CLOEXEC, F_DUPFD_CLOEXEC)
 (FD_CLOEXEC): New macros.

 src/w32.c (sys_dup): Declare prototype.

 src/filelock.c:
 src/emacs.c:
 src/callproc.c [WINDOWSNT]: Include sys/socket.h.
2013-07-07 21:48:16 +03:00
Paul Eggert
067428c171 Make file descriptors close-on-exec when possible.
This simplifies Emacs a bit, since it no longer needs to worry
about closing file descriptors by hand in some cases.
It also fixes some unlikely races.  Not all such races, as
libraries often open files internally without setting
close-on-exec, but it's an improvement.
* admin/merge-gnulib (GNULIB_MODULES): Add fcntl, pipe2.
(GNULIB_TOOL_FLAGS): Avoid binary-io, close.  Do not avoid fcntl.
* configure.ac (mkostemp): New function to check for.
(PTY_OPEN): Pass O_CLOEXEC to posix_openpt.
* lib/fcntl.c, lib/getdtablesize.c, lib/pipe2.c, m4/fcntl.m4:
* m4/getdtablesize.m4, m4/pipe2.m4: New files, taken from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* nt/gnulib.mk: Remove empty gl_GNULIB_ENABLED_verify section;
otherwise, gnulib-tool complains given close-on-exec changes.
* nt/inc/ms-w32.h (pipe): Remove.
* nt/mingw-cfg.site (ac_cv_func_fcntl, gl_cv_func_fcntl_f_dupfd_cloexec)
(gl_cv_func_fcntl_f_dupfd_works, ac_cv_func_pipe2): New vars.
* src/alloc.c (valid_pointer_p) [!WINDOWSNT]:
* src/callproc.c (Fcall_process) [!MSDOS]:
* src/emacs.c (main) [!DOS_NT]:
* src/nsterm.m (ns_term_init):
* src/process.c (create_process):
Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
* src/emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
* src/filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
Prefer mkostemp with O_CLOEXEC to mkstemp.
* src/callproc.c (relocate_fd) [!WINDOWSNT]:
* src/emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
now using pipe2.
* src/filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
Make the resulting file descriptor close-on-exec.
* src/lisp.h, src/lread.c, src/process.c (close_load_descs, close_process_descs):
* src/lread.c (load_descriptor_list, load_descriptor_unwind):
Remove; no longer needed.  All uses removed.
* src/process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
(close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
New functions.
(socket) [!SOCK_CLOEXEC]: Supply a substitute.
(Fmake_network_process, Fnetwork_interface_list):
(Fnetwork_interface_info, server_accept_connection):
Make newly-created socket close-on-exec.
* src/sysdep.c (emacs_open, emacs_fopen):
Make new-created descriptor close-on-exec.
* src/w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
* src/w32.c, src/w32.h (pipe2): Rename from 'pipe', with new flags arg.

Fixes: debbugs:14803
2013-07-07 11:00:14 -07:00
Jan Djärv
0da857ddac *** empty log message *** 2013-07-07 10:41:09 +02:00
Paul Eggert
5f86adcd2c Fix openp errno handling.
* callproc.c (Fcall_process): Preserve openp errno around close.
* lread.c (openp): Set errno when returning -1, as some callers
expect this.
2013-07-07 00:28:29 -07:00
Jan Djärv
1afb1d0715 * lisp/files.el (write-file): Do not display confirm dialog for NS,
it does its own dialog, which can't be cancelled.

* src/nsfns.m: Remove panelOK.
(ns_fd_data): New.
(ns_run_file_dialog): New function.
(Fns_read_file_name): Fill in ns_fd_data, post an event and start the
event loop, so file dialog is popped up by ns_run_file_dialog, called
by sendEvent (Bug#14578).
(EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.

* src/nsterm.h (NSSavePanel): Update comment.
(NSAPP_DATA2_RUNFILEDIALOG): Define.
(ns_run_file_dialog): Declare.

* src/nsterm.m (sendEvent:): Handle NSAPP_DATA2_RUNFILEDIALOG.
2013-07-06 19:58:41 +02:00
Eli Zaretskii
fdda022055 Fix bug #14771 with scroll-step = 1 and non-nil line-spacing.
src/xdisp.c (default_line_pixel_height): New function.
 (pos_visible_p, move_it_vertically_backward, try_scrolling)
 (try_cursor_movement, redisplay_window, try_window)
 (try_window_id): Use it instead of FRAME_LINE_HEIGHT.  (Bug#14771)
 src/window.c (window_scroll_pixel_based): use
 default_line_pixel_height.
 src/dispextern.h (default_line_pixel_height): Add prototype.
 src/frame.c (x_set_line_spacing): Accept a float value for
 line-spacing parameter, per the documentation.
2013-07-06 13:41:38 +03:00
Eli Zaretskii
3323c263c7 Clarify documentation of multibyte-string-p.
src/data.c (Fmultibyte_string_p): Doc fix.

 doc/lispref/nonascii.texi (Text Representations): Document that
 multibyte-string-p returns nil for non-string objects.
2013-07-06 11:05:21 +03:00
Paul Eggert
406af475be Use emacs_open more consistently when opening files.
This handles EINTR more consistently now, and makes it easier
to introduce other uniform changes to file descriptor handling.
* src/systdio.h: New file.
* src/buffer.c (mmap_init):
* cygw32.c (chdir_to_default_directory):
* dispnew.c (Fopen_termscript):
* emacs.c (Fdaemon_initialized):
* fileio.c (Fdo_auto_save):
* image.c (slurp_file, png_load_body, jpeg_load_body):
* keyboard.c (Fopen_dribble_file):
* lread.c (Fload):
* print.c (Fredirect_debugging_output):
* sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
* termcap.c (tgetent):
* unexaix.c, unexcoff.c (unexec, adjust_lnnoptrs):
* unexcw.c, unexelf.c, unexhp9k800.c, unexmacosx.c (unexec):
* w32term.c (w32_initialize) [CYGWIN]:
* xfaces.c (Fx_load_color_file):
Use emacs_open instead of plain open, and emacs_fopen instead of
plain fopen.
* dispnew.c, fileio.c, image.c, keyboard.c, lread.c, print.c, sysdep.c:
* xfaces.c: Include sysstdio.h rather than stdio.h, for emacs_fopen.
* callproc.c (default_output_mode): New constant.
(Fcall_process): Use it to call emacs_open instead of plain creat.
* dispnew.c (Fopen_termscript): Fix minor race in opening termscript.
* sysdep.c (emacs_open): Add commentary and don't call file name "path".
(emacs_fopen): New function.
* unexaix.c, unexcoff.c, unexelf.c, unexhp9k800.c, unexmacosx.c:
Include <lisp.h>, for emacs_open.
* unexelf.c (fatal): Remove decl; not needed with <lisp.h> included.
2013-07-05 19:40:50 -07:00
Stefan Monnier
321e1a9c42 * lisp/subr.el (read-quoted-char): Use read-key.
(sit-for): Let read-event decode tty input.

Fixes: debbugs:14782
2013-07-05 20:10:54 -04:00
Paul Eggert
47ba6d4383 Remove duplicate #include directives.
* alloc.c [GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES]:
* xfaces.c:
Don't include stdio.h twice.
* buffer.c [USE_MMAP_FOR_BUFFERS]:
Don't include sys/types.h or stdio.h twice.
* fileio.c [WINDOWSNT | MSDOS]: Don't include fcntl.h twice.
* lread.c: Don't include coding.h twice.
* nsfont.m: Don't include frame.h twice.
* process.c [HAVE_RES_INIT]: Don't include <netinet/in.h> twice.
* ralloc.c: Don't include <unistd.h> twice.
* xdisp.c: Don't include font.h twice.
* xterm.c: Don't include fontset.h twice.
* xterm.h [USE_X_TOOLKIT]: Don't include X11/StringDefs.h twice.
2013-07-05 09:58:01 -07:00
Paul Eggert
b9ed53d535 Scale ImageMagick images more carefully.
* image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
(compute_image_size): Use it.  Define only if HAVE_IMAGEMAGICK.
Be more careful about avoiding undefined behavior after
integer overflow and division by zero.
2013-07-04 08:25:54 -07:00
YAMAMOTO Mitsuharu
cf13177e99 Add multi-monitor support on W32. 2013-07-04 19:25:54 +09:00
Michael Albinus
86dfb7a815 * fileio.c (Qfile_notify_error): New error symbol.
* gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
* inotify.c (inotify_callback, symbol_to_inotifymask)
(Finotify_add_watch, Finotify_rm_watch): Use it.
(inotifyevent_to_event): Exchange order of cookie and file name.
(Finotify_add_watch): Adapt docstring.

* lisp.h (Qfile_notify_error): Declare.
2013-07-04 11:29:28 +02:00
Paul Eggert
2c1c974b06 Try again to fix FreeBSD bug re multithreaded memory alloc.
* emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
Do not clear _malloc_thread_enabled_p, undoing the previous change,
which did not work (see <http://bugs.gnu.org/14569#307>).
(main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
&& (!noninteractive || initialized)).  This attempts to thread
the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
2013-07-03 23:20:55 -07:00
Juanma Barranquero
7a35b20f3b src/image: Remove unused variables.
(x_to_xcolors) [HAVE_NTGUI]: Remove unused var `hdc'.
(x_build_heuristic_mask) [HAVE_NTGUI]: Remove unused var `frame_dc'.
2013-07-04 04:08:56 +02:00
Paul Eggert
1ce5cd04df Try to fix FreeBSD bug re multithreaded memory allocation.
* src/emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
Clear _malloc_thread_enabled_p at startup.  Reported by Ashish SHUKLA in
<http://lists.gnu.org/archive/html/emacs-devel/2013-07/msg00088.html>.

Fixes: debbugs:14569
2013-07-03 17:53:13 -07:00
Paul Eggert
9bd3668269 * src/sysdep.c (sys_siglist): Fix typo in previous commit. 2013-07-02 15:14:42 -07:00
Paul Eggert
57f8c49045 Remove some unused macros from 'configure'.
* configure.ac (HAVE_SOUNDCARD_H, HAVE_LINUX_VERSION_H, HAVE_SPEED_T)
(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY)
(HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION, HAVE_UTIMES)
(HAVE_LIBHESIOD, HAVE_LIBRESOLV, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
(HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
(HAVE_LIBKRB4, HAVE_LIBKRB, HAVE_DES_H, HAVE_KERBEROSIV_DES_H)
(HAVE_DEV_PTMX, DEVICE_SEP, USG5):
Remove these macros, as they are not used.
(sys_siglist): Remove macro; src/sysdep.c now does this.
* src/sysdep.c (sys_siglist) [HAVE_DECL___SYS_SIGLIST]:
Define to __sys_siglist.
2013-07-02 09:56:29 -07:00
Eli Zaretskii
9f899da0a1 Improve commentary for glyph.charpos and glyph.object. 2013-07-02 19:45:28 +03:00
Eli Zaretskii
102ae68de4 Update commentary in w32notify.c. 2013-07-02 19:32:03 +03:00
Eli Zaretskii
bcffb5caf8 Fix bug #2749 with overflow-newline-into-fringe in visual-line-mode.
src/xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
 word-wrap, so that overflow-newline-into-fringe would work in
 visual-line-mode.
 (move_it_in_display_line_to): When the last scanned display
 element fits exactly on the display line, and
 overflow-newline-into-fringe is non-nil, but wrap_it is valid,
 don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
 wrap point and return MOVE_LINE_CONTINUED.  Fixes problems with
 finding buffer position that corresponds to pixel coordinates,
 e.g. in buffer_posn_from_coords.
2013-07-02 18:52:07 +03:00
Jan Djärv
2c41e78194 * process.c (handle_child_signal): Call catch_child_signal if NS_IMPL_GNUSTEP. 2013-07-02 14:46:43 +02:00
Paul Eggert
52a9bcae40 Don't convert function pointers to void * and back.
It isn't portable C, and it's easy enough to avoid.
* alloc.c: Verify SAVE_FUNCPOINTER bits, too.
(make_save_value): Add support for SAVE_FUNCPOINTER.
* keymap.c (map_keymap_char_table_item, map_keymap_internal):
* print.c (print_object):
Distinguish function from object pointers.
* lisp.h (SAVE_FUNCPOINTER): New constant.
(SAVE_SLOT_BITS): Adjust to it.
(SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
SAVE_TYPE_PTR_PTR_OBJ.  Change the only use.
(voidfuncptr): New typedef.
(struct Lisp_Save_Value): New member data[0].funcpointer.
(XSAVE_FUNCPOINTER): New function.
2013-07-01 20:41:16 -07:00
Paul Eggert
c2418359b3 Simplify buildobj processing.
* Makefile.in (buildobj.h): Make it a sequence of strings each
followed by comma, rather than a single string.  Put it into a
.tmp file in case there's an error while generating it.
(gl-stamp): Use .tmp for temp files.
(mostlyclean): Clean .tmp files.
* doc.c (buildobj): Move to just the routine that needs it.
It's now an array of strings, so processing is simpler.
2013-07-01 17:57:46 -07:00
Paul Eggert
ab71f1741c Remove duplicate ChangeLog entry, again. 2013-07-01 14:44:44 -07:00
Paul Eggert
8f43ce497c Fix bug re noninteractive multithreaded memory allocation.
* emacs.c (malloc_enable_thread): Hoist extern decl to top level.
(main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
Invoke malloc_enable_thread even when not interactive.
Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
* process.c (init_process_emacs) [CYGWIN]: Tickle glib even
in this case, since the underlying bug has now been fixed.
2013-07-01 14:06:12 -07:00
Juanma Barranquero
24827db9c4 src/emacs.c (Fkill_emacs): Expand Vauto_save_list_file_name before unlinking it.
Fixes: debbugs:14691
2013-07-01 18:54:37 +02:00
Michal Nazarewicz
ef099a941f Add `remember-notes' function to store random notes across Emacs
restarts.
* remember.el (remember-data-file): Add :set callback to affect
notes buffer (if any).
(remember-notes): New command.
(remember-notes-buffer-name, bury-remember-notes-on-kill):
New defcustoms for the `remember-notes' function.
(remember-notes-save-and-bury-buffer): New command.
(remember-notes-mode-map): New variable.
(remember-mode): New minor mode.
(remember-notes--kill-buffer-query): New function.
* lisp/startup.el (initial-buffer-choice): Add notes to custom type.
* src/buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
before checking whether buffer is modified.  This lets
`kill-buffer-query-functions' cancel killing of the buffer or save
its content before `kill-buffer' asks user the "Buffer %s
modified; kill anyway?" question.

* remember.el (remember-append-to-file):
Don't mix `find-buffer-visiting' and `get-file-buffer'.

* lisp/files.el (find-file-noselect): Simplify conditional expression.
2013-06-30 18:29:23 -04:00
Jan Djärv
9d3f2fc286 * nsfns.m (handlePanelKeys): Don't process Command+Function keys.
Let the super performKeyEquivalent deal with them.

Fixes: debbugs:14747
2013-06-30 18:38:26 +02:00
Paul Eggert
1d71c1d9de Fix minor problems found by static checking.
* lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
* lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
* lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
Now const.
* src/widget.c (resize_cb): Remove unused local.
2013-06-30 09:14:22 -07:00
Paul Eggert
16b6e7f29b Remove duplicate ChangeLog entry. 2013-06-30 08:33:01 -07:00
Paul Eggert
8f5f35ccca Do not use GTK 3 if it exists but cannot be compiled.
* configure.ac: Leave GTK_OBJ and term_header alone if GTK 3
exists but cannot be compiled.
* src/xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
* src/xterm.c (x_error_handler) [!USE_GTK]:
Do not use GTK 3.
2013-06-30 08:24:14 -07:00
Paul Eggert
e6c6c8c774 * intervals.c (get_local_map): Actually clip POSITION
Fixes: debbugs:14753
2013-06-30 08:14:45 -07:00
Paul Eggert
adc5dbceb0 Spelling fixes. 2013-06-30 08:10:33 -07:00
Eli Zaretskii
5d1c328614 A possible fix for bug #14753 with aborts in get_local_map.
src/intervals.c (get_local_map): Instead of aborting, clip POSITION
 to the valid range of values.
2013-06-30 18:03:31 +03:00
Eli Zaretskii
0ba54312c9 Don't call sit-for in right-char and left-char for visual cursor motion.
src/xdisp.c (Fmove_point_visually): Invalidate the cursor position
 when moving point by using the current glyph matrix.  This avoids
 the need to force redisplay when this function is called in a
 loop.

 lisp/bindings.el (right-char, left-char): Don't call sit-for, this is
 no longer needed.  Use arithmetic comparison only for numerical
 arguments.
2013-06-30 17:49:33 +03:00
Juanma Barranquero
c1ea3abfde Fix typos in ChangeLogs. 2013-06-29 22:19:29 +02:00
Eli Zaretskii
671796d3e0 Fix typo in src/ChangeLog. 2013-06-29 23:10:30 +03:00
Paul Eggert
9c90cc06dd Fix minor problems found by static checking.
* coding.c (encode_inhibit_flag, inhibit_flag): New functions.
Redo the latter's body to sidestep GCC parenthesization warnings.
(setup_coding_system, detect_coding, detect_coding_system): Use them.
* coding.c (detect_coding, detect_coding_system):
* coding.h (struct undecided_spec):
Use bool for boolean.
* image.c (QCmax_width, QCmax_height): Now static.
* xdisp.c (Fmove_point_visually): Remove unused local.
2013-06-29 08:52:20 -07:00
Eli Zaretskii
4c672a0fec Implement visual-order cursor motion.
src/xdisp.c (Fmove_point_visually): New function.

 lisp/bindings.el (visual-order-cursor-movement): New defcustom.
 (right-char, left-char): Provide visual-order cursor motion by
 calling move-point-visually.  Update the doc strings.

 doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
 and its effect on right-char and left-char.

 doc/lispref/display.texi (Bidirectional Display): Document move-point-visually.

 etc/NEWS: Document the new feature.
2013-06-29 16:36:19 +03:00
Kenichi Handa
73b1b3ad61 merge trunk 2013-06-29 12:44:38 +09:00
Kenichi Handa
2ed909207e merge trunk 2013-06-29 12:31:15 +09:00
YAMAMOTO Mitsuharu
df03dc8a4c * image.c (image_unget_x_image): Fix formatting. 2013-06-29 08:36:14 +09:00
Kenichi Handa
c3a7b3f45f coding.c (setup_coding_system): Handle CODING->spec.undecided.
(detect_coding): Likewise.
(detect_coding_system): Likewise.
(Fdefine_coding_system_internal): New coding system properties
:inhibit-null-byte-detection, :inhibit-iso-escape-detection, and
:prefer-utf-8.
(syms_of_coding): Adjusted for coding_arg_undecided_max.
2013-06-29 00:00:17 +09:00