1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 19:10:37 -08:00
Commit graph

127836 commits

Author SHA1 Message Date
Reuben Thomas
6e88249cdc Remove XEmacs-specific horizontal scrollbar handling in ispell.el
* lisp/textmodes/ispell.el (ispell-command-loop): Remove
XEmacs-specific code.
2016-12-13 19:43:49 +00:00
Reuben Thomas
8245e5b9b0 Remove XEmacs-specific code dealing with enable-multibyte-characters
* lisp/textmodes/ispell.el (ispell-decode-string):
(ispell-init-process):  Remove XEmacs-specific guard.
2016-12-13 19:43:49 +00:00
Reuben Thomas
ff5deddc83 Remove XEmacs-specific code from ispell.el
* lisp/textmodes/ispell.el (ispell-menu-xemacs): Remove
(ispell-menu-map-needed): Remove XEmacs-specific check.
(ispell-word): Remove XEmacs-specific extent code.
(ispell-init-process): Remove XEmacs workaround for local add-hook.
Assume we have set-process-query-on-exit-flag.
(ispell-kill-ispell, ispell-change-dictionary): Remove XEmacs
workaround for called-interactively-p.
2016-12-13 19:43:49 +00:00
Reuben Thomas
ada717efc4 Remove some commented-out code
lisp/textmodes/ispell.el (ispell-process)
ispell-valid-dictionary-list): Remove commented-out code.
2016-12-13 19:43:49 +00:00
Reuben Thomas
c89dc9d8f3 Remove XEmacs and old Emacs highlighting code
* lisp/textmodes/ispell.el
(ispell-highlight-spelling-error-xemacs): Remove.
(ispell-highlight-spelling-error): Assume display-color-p exists.
2016-12-13 19:43:48 +00:00
Reuben Thomas
854ed8a6d5 Assume Emacs supports [:alpha:] in regexps
* lisp/textmodes/ispell.el (ispell-emacs-alpha-regexp): Remove.
(ispell-set-spellchecker-params): Remove tests of
ispell-emacs-alpha-regexp.
2016-12-13 19:43:48 +00:00
Reuben Thomas
3ac94b992c Remove some XEmacs-specific code from ispell.el
* lisp/textmodes/ispell.el: Remove XEmacs menubar setup.
(ispell-int-char): Remove.
2016-12-13 19:43:48 +00:00
Reuben Thomas
028249ebcd Generalise over-specific documentation
* lisp/textmodes/ispell.el (ispell-personal-dictionary): Rather than
document precise personal wordlist filenames for only two supported
spelling checkers, simply say that the default personal dictionary
depends on the chosen spelling checker.  The user can check the
spelling checker’s documentation if necessary.  This is simpler, and
works for other supported (and future, or unknown) spelling checkers.
2016-12-13 19:43:48 +00:00
Reuben Thomas
51d011d6bb Remove tests for built-in functions
* lisp/textmodes/ispell.el (buffer-substring-no-properties): Remove
back-up definition.
(ispell-add-per-file-word-list): Remove tests for comment-padright and
comment-normalize-vars.
2016-12-13 19:43:48 +00:00
Reuben Thomas
a3ca97e727 Remove unused ispell-looking-back
* lisp/textmodes/ispell.el (ispell-looking-back): Remove unused alias.
2016-12-13 19:43:48 +00:00
Reuben Thomas
8edf0eb4d3 Assume we have version<= for checking ispell version
* lisp/textmodes/ispell.el (ispell-check-minver): Remove.
(ispell-check-version): Use version<= directly.
2016-12-13 19:43:48 +00:00
Reuben Thomas
f25c8b34c7 Remove ispell.el pre-GNU Emacs comments
* lisp/textmodes/ispell.el (Commentary): Remove original maintainer
  details, as Emacs version, bug report address and so forth should be
  used instead for this version.  Remove in-line change history; use
  git instead.
2016-12-13 19:43:48 +00:00
Mark Oteiza
aacb20c0b7 More small fixes for image-dired
* lisp/image-dired.el: Fix commentary to refer to correct Emacs manual
node.
(image-dired--with-db-file): Add declare forms.
(image-dired-hidden-p): Rewrite with cl-loop.  It's not necessary to
run through the whole list.
2016-12-13 11:47:21 -05:00
Mark Oteiza
86762eb174 Remove image-dired-kill-buffer-and-window
This breaks window layout, especially when quitting a
image-dired-display-image-mode buffer.
* lisp/image-dired.el (image-dired-thumbnail-mode-map):
(image-dired-display-image-mode-map): Replace in keymap and menu items
bindings to image-dired-kill-buffer-and-window with quit-window.
(image-dired-kill-buffer-and-window): Remove.
2016-12-13 11:41:45 -05:00
Mark Oteiza
bed0373855 Replace image-dired-setup-dired-keybindings with a minor mode
* lisp/image-dired.el (image-dired-thumbnail-mode): Fix docstring to
remove mention of nonexistent image-dired-dired and to refer to the
new minor mode.
(image-dired-minor-mode-map): New keymap assimilated from
image-dired-setup-dired-keybindings.  In the future, the keymap parent
should be removed, and perhaps also the duplicate bindings that
already exist in dired-mode-map.
(image-dired-setup-dired-keybindings): Remove.  Replace with an
obsolete function alias.
(image-dired-minor-mode): New minor mode, assuming the role of
image-dired-setup-dired-keybindings.
2016-12-13 11:32:04 -05:00
Paul Eggert
dc83303917 * test/src/regex-resources/PTESTS: Convert to UTF-8. 2016-12-12 23:17:19 -08:00
Noam Postavsky
c78f872a56 Clarify thread-signal semantics
* doc/lispref/threads.texi (Basic Thread Functions): Explain that the
thread will be signaled as soon as possible.
2016-12-12 21:21:14 -05:00
Noam Postavsky
f66174a1b7 Clean up var watcher disabling on thread switching
* src/data.c (Fset_default): Move code into new C level function,
`set_default_internal'.
(set_default_internal): New function, like `Fset_default' but also takes
additional bindflag parameter.
(set_internal): Only call `notify_variable_watchers' if bindflag is not
SET_INTERNAL_THREAD_SWITCH.
* src/eval.c (do_specbind, do_one_unbind): Add bindflag parameter,
passed on to set_internal and set_default_internal.  Adjust callers.
(rebind_for_thread_switch, unbind_for_thread_switch): Pass
SET_INTERNAL_THREAD_SWITCH to do_specbind, do_one_unbind instead of
temporarily adjusting symbol's trapped_write field.
2016-12-12 21:20:33 -05:00
Glenn Morris
8db7b65d66 Minor fix for define-derived-mode
* lisp/emacs-lisp/derived.el (define-derived-mode):
Do not let eg eval-defun reset the values of syntax or abbrev tables,
since they might have been defined externally.  (Bug#16160)
2016-12-12 20:03:20 -05:00
Paul Eggert
3e651e3c6b * build-aux/git-hooks/pre-commit: Add whitespace comment. 2016-12-12 14:55:59 -08:00
Clément Pit--Claudel
27cada035a Move backtrace to ELisp using a new mapbacktrace primitive
* src/eval.c (get_backtrace_starting_at, backtrace_frame_apply)
(Fmapbacktrace, Fbacktrace_frame_internal): New functions.
(get_backtrace_frame, Fbacktrace_debug): Use `get_backtrace_starting_at'.

* lisp/subr.el (backtrace--print-frame): New function.
(backtrace): Reimplement using `backtrace--print-frame' and `mapbacktrace'.
(backtrace-frame): Reimplement using `backtrace-frame--internal'.

* lisp/emacs-lisp/debug.el (debugger-setup-buffer): Pass a base to
`mapbacktrace' instead of searching for "(debug" in the output of
`backtrace'.

* test/lisp/subr-tests.el (subr-test-backtrace-simple-tests)
(subr-test-backtrace-integration-test): New tests.

* doc/lispref/debugging.texi (Internals of Debugger): Document
`mapbacktrace' and missing argument BASE of `backtrace-frame'.
2016-12-12 17:41:27 -05:00
Paul Eggert
a41ded87b3 Use C99 syntax for font drivers
Problem reported by Daniel Colascione in:
http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00515.html
* src/ftcrfont.c (ftcrfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/macfont.m (macfont_driver):
* src/nsfont.m (nsfont_driver):
* src/xfont.c (xfont_driver):
* src/xftfont.c (xftfont_driver):
Use C99 syntax, not the old GNU C syntax.
2016-12-12 14:27:35 -08:00
Glenn Morris
3c655230d2 Obsolete gs.el
* lisp/gs.el: Move to lisp/obsolete.  (Bug#1524)
* doc/lispref/display.texi (Image Formats): Remove postscript.
(PostScript Images): Remove section.
* doc/lispref/elisp.texi: Update menu.
2016-12-12 17:17:34 -05:00
Glenn Morris
ffb1302123 Un-revert recent Ffset change
* src/data.c (Ffset): Reinstate the check for "nil".
2016-12-12 15:21:48 -05:00
Glenn Morris
61f8c2386c Minor advice.el fix
* lisp/emacs-lisp/advice.el (ad-preactivate-advice):
Avoid setting the function definition of nil.
This was happening during bootstrap of org-compat.el,
apparently due to eager macro expansion of code behind
a (featurep 'xemacs) test.
2016-12-12 15:20:39 -05:00
Eli Zaretskii
940df47741 Make etags-tests work in out-of-tree builds
* test/lisp/progmodes/etags-tests.el (etags-bug-158)
(etags-bug-23164): Make them work in an out-of-tree build.
Reported by Ken Brown <kbrown@cornell.edu>.
2016-12-12 19:56:03 +02:00
Eli Zaretskii
825f4dd42f Avoid crashing if a new thread is signaled right away
* src/thread.c (post_acquire_global_lock): Don't raise the pending
signal if the thread's handlers were not yet set up, as that will
cause Emacs to exit with a fatal error.  This can happen if a
thread is signaled as soon as make-thread returns, before the new
thread had an opportunity to acquire the global lock, set up the
handlers, and call the thread function.

* test/src/thread-tests.el (thread-signal-early): New test.
2016-12-12 19:08:21 +02:00
Eli Zaretskii
a416e1d6c1 Fix point motion in cloned buffers
* src/thread.c (post_acquire_global_lock): Call
set_buffer_internal_2 instead of tricking set_buffer_internal_1
into resetting the current buffer even if it didn't change.  This
avoids bug#25165, caused by failing to record the modified values
of point and mark, because current_buffer was set to NULL.  Also,
don't bother re-setting the buffer if there was no thread switch,
as that just wastes cycles.
* src/buffer.c (set_buffer_internal_2): New function, with most of
the body of set_buffer_internal_1, but without the test for B
being identical to the current buffer.
(set_buffer_internal_1): Call set_buffer_internal_2 if B is not
identical to the current buffer.
* src/buffer.h (set_buffer_internal_2): Add prototype.

* test/src/thread-tests.el (thread-sticky-point): New test.
2016-12-12 18:03:40 +02:00
Michael Albinus
00d4ba2794 Further improvements in Tramp's file name unquoting
* lisp/net/tramp-adb.el (tramp-adb-handle-file-local-copy)
(tramp-adb-handle-write-region): Unquote localname.
(tramp-adb-handle-copy-file): Implement direct copy on remote device.
(tramp-adb-handle-rename-file): Quote arguments, add "-f" to force.

* lisp/net/tramp.el (tramp-file-name-unquote-localname): New defun.
(tramp-handle-file-name-case-insensitive-p):
* lisp/net/tramp-gvfs.el (tramp-gvfs-get-file-attributes)
(tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec)
(tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-make-copy-program-file-name):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname): Use it.

* test/lisp/net/tramp-tests.el (tramp--test-docker-p): New defun.
(tramp--test-special-characters, tramp-test34-utf8)
(tramp-test34-utf8-with-stat, tramp-test34-utf8-with-perl)
(tramp-test34-utf8-with-ls): Use it.
2016-12-12 11:12:34 +01:00
Martin Rudalics
184ed36136 Strengthen conditions for resizing sibling windows (Bug#25169)
* lisp/window.el (window-resize, delete-window): Resize other siblings
only if `window-combination-resize' equals t (Bug#25169).
2016-12-12 10:16:23 +01:00
Noam Postavsky
a92a027d58 Quote filenames containing '~' in prompts
When in a directory named '~', the default value given by
`read-file-name' should be quoted by prepending '/:', in order to
prevent it from being interpreted as referring to the $HOME
directory (Bug#16984).

* lisp/minibuffer.el (minibuffer-maybe-quote-filename): New function.
(completion--sifn-requote, read-file-name-default): Use it instead of
`minibuffer--double-dollars'.
* test/lisp/files-tests.el (files-test-read-file-in-~): Test it.
2016-12-11 21:36:08 -05:00
Eli Zaretskii
2783e0e389 Undo part of last change
* src/thread.h:
* src/keyboard.c:
* src/keyboard.h: Undo part of last change:
input_available_clear_time is again a global variable.
2016-12-11 19:19:10 +02:00
Eli Zaretskii
997081634a Avoid aborts when a thread signals an error
* src/thread.h (struct thread_state): Add members
m_waiting_for_input and m_input_available_clear_time.
(waiting_for_input, input_available_clear_time): New macros.
* src/keyboard.c (waiting_for_input, input_available_clear_time):
Remove; they are now macros that reference the current thread.
(Bug#25171)
* src/w32select.c: Don't include keyboard.h.

* test/src/thread-tests.el (thread-errors): New test.
2016-12-11 17:59:55 +02:00
Philipp Stephani
c0cfe9bc14 Clean up compile-tests.el
Switch to lexical binding.  Make checkdoc happy.

* test/lisp/progmodes/compile-tests.el (compile--test-error-line)
(compile-test-error-regexps): Instead of checking a single Boolean
value, use `should' for each attribute of the message to be compared.
(compile-tests--test-regexps-data): Document sixth list element
TYPE.
2016-12-11 16:34:32 +01:00
Glenn Morris
595a4d6bfd ; Change maintainer comment
Ref http://debbugs.gnu.org/10934#23
2016-12-10 19:40:34 -08:00
Glenn Morris
4aa6d4b188 Improve previous cperl-mode change
* lisp/progmodes/cperl-mode.el (cperl-mode-abbrev-table):
Improve previous change.
2016-12-10 19:37:59 -08:00
Glenn Morris
3aa3f73b96 Mark default cperl abbrevs as system ones
* lisp/progmodes/cperl-mode.el (cperl-mode):
Mark our abbrevs as system ones.  (Bug#10934)
2016-12-10 19:26:25 -08:00
Glenn Morris
3fd44333e9 Revert earlier Ffset change
* src/data.c (Ffset): Allow nil again, since it caused
eager macro-expansion failures.
2016-12-10 19:18:24 -08:00
Glenn Morris
f37f93f364 Tweaks for message bogus address detection
* lisp/gnus/message.el (message-bogus-recipient-p):
Do not require "@", since some mailers deliver to local addresses
without one.  (Bug#23054)
Move "@.*@" from here...
(message-bogus-addresses): ...to here, so it can be customized.
2016-12-10 19:03:28 -08:00
Glenn Morris
ba8e883fa3 Do not allow nil to be defined as a function
* lisp/emacs-lisp/byte-run.el (defun):
* src/data.c (Ffset): Do not allow "nil".  (Bug#25110)
2016-12-10 18:58:24 -08:00
Nicolas Richard
0107336165 Add some sanity checking of defun arglist
* lisp/emacs-lisp/byte-run.el (defun):
Check for malformed argument lists.  (Bug#15715)
2016-12-10 17:48:10 -08:00
Matt Armstrong
8d1b753d52 Minor shell-mode fix for zsh
* lisp/shell.el (shell-mode): Prevent shell-dirstack-query
becoming confused by zsh abbreviations.  (Bug#24632)

Copyright-paperwork-exempt: yes
2016-12-10 17:29:51 -08:00
Andreas Schwab
2335b9100b * Makefile.in (install-etc): Don't prepend $(DESTDIR) to commands in
system unit file.
2016-12-10 21:14:18 +01:00
Glenn Morris
25a52ca6b2 ; Fix copyright years in new files 2016-12-10 10:19:06 -08:00
Philipp Stephani
759415df2e ; Update file name in comment 2016-12-10 18:23:55 +01:00
Eli Zaretskii
2412a1fc05 Support concurrency in Emacs Lisp
Merge branch 'test-concurrency'

* src/thread.c:
* src/thread.h:
* src/systhread.c:
* src/systhread.h: New files.
* src/xgselect.c (xg_select): Avoid using SAFE_NALLOCA and use
xnmalloc unconditionally.
* src/window.c (struct save_window_data): Rename current_buffer to
f_current_buffer.
* src/w32proc.c (sys_select): Change the function signature to
closer fit 'pselect' on Posix hosts.
* src/search.c:
* src/regex.h: Convert some globals to macros that reference
thread-specific values.
* src/process.c (pset_thread, add_non_keyboard_read_fd)
(add_process_read_fd, add_non_blocking_write_fd)
(recompute_input_desc, compute_input_wait_mask)
(compute_non_process_wait_mask, compute_non_keyboard_wait_mask)
(compute_write_mask, clear_waiting_thread_info)
(update_processes_for_thread_death, Fset_process_thread)
(Fprocess_thread): New functions.
(enum fd_bits): New enumeration.
(fd_callback_data): Add 'thread' and 'waiting_thread', rename
'condition' to 'flags'.
(set_process_filter_masks, create_process, create_pty)
(Fmake_serial_process, finish_after_tls_connection)
(connect_network_socket, deactivate_process)
(server_accept_connection, wait_reading_process_output)
(Fcontinue_process, Fstop_process, keyboard_bit_set)
(add_timer_wait_descriptor, add_keyboard_wait_descriptor)
(delete_keyboard_wait_descriptor): Use the new functions instead
of manipulating fd flags and masks directly.
(syms_of_process): Defsubr the new primitives.
* src/print.c (print_object): Print threads, mutexes, and
conditional variables.
* src/lisp.h (enum pvec_type): New values PVEC_THREAD, PVEC_MUTEX,
and PVEC_CONDVAR.
(XTHREAD, XMUTEX, XCONDVAR, THREADP, MUTEXP, CONDVARP)
(CHECK_THREAD, CHECK_MUTEX, CHECK_CONDVAR): New inline functions.
(XSETTHREAD, XSETMUTEX, XSETCONDVAR): New macros.
(struct handler): Add back byte_stack.  Rename lisp_eval_depth to
f_lisp_eval_depth.
* src/eval.c (specpdl_kind, specpdl_arg, do_specbind)
(rebind_for_thread_switch, do_one_unbind)
(unbind_for_thread_switch): New functions.
(init_eval): 'handlerlist' is not malloc'ed.
(specbind): Call do_specbind.
(unbind_to): Call do_one_unbind.
(mark_specpdl): Accept 2 arguments.
(mark_specpdl): Mark the saved value in a let-binding.
* src/emacs.c (main): Call init_threads_once, init_threads, and
syms_of_threads.
* src/data.c (Ftype_of): Support thread, mutex, and condvar
objects.
(Fthreadp, Fmutexp, Fcondition_variable_p): New functions.
(syms_of_data): DEFSYM and defsubr new symbols and primitives.
* src/bytecode.c (struct byte_stack, FETCH, CHECK_RANGE)
(BYTE_CODE_QUIT): Add back.
(exec_byte_code): Add back byte stack manipulation.
* src/alloc.c (cleanup_vector): Handle threads, mutexes, and
conditional variables.
(mark_stack): Now extern; accept additional argument 'bottom'.
(flush_stack_call_func): New function.
(garbage_collect_1): Call mark_threads and unmark_threads.  Don't
mark handlers.
* src/.gdbinit (xbytecode): Add back.

* test/src/thread-tests.el: New tests.
* test/src/data-tests.el (binding-test-manual)
(binding-test-setq-default, binding-test-makunbound)
(binding-test-defvar-bool, binding-test-defvar-int)
(binding-test-set-constant-t, binding-test-set-constant-nil)
(binding-test-set-constant-keyword)
(binding-test-set-constant-nil): New tests.

* doc/lispref/processes.texi (Processes and Threads): New
subsection.
* doc/lispref/threads.texi: New file
* doc/lispref/elisp.texi (Top): Include it.
* doc/lispref/objects.texi (Thread Type, Mutex Type)
(Condition Variable Type): New subsections.
(Type Predicates): Add thread-related predicates.
* doc/lispref/objects.texi (Editing Types):
* doc/lispref/elisp.texi (Top): Update higher-level menus.

* etc/NEWS: Mention concurrency features.
2016-12-10 18:54:43 +02:00
Eli Zaretskii
828b4560cd Fix error messages in thread.c
* src/thread.c (lisp_mutex_unlock, Fcondition_wait)
(Fcondition_notify, Fthread_join): Fix error messages.
2016-12-10 11:42:48 +02:00
Eli Zaretskii
c364d62f89 Improve doc strings in thread.c
* src/thread.c (Fmake_condition_variable, Fcondition_wait)
(Fcondition_notify, Fcondition_mutex, Fcondition_name, Fmake_thread)
(Fthread_join, Fall_threads): Doc fixes.
2016-12-10 11:31:11 +02:00
Eli Zaretskii
e4df093e60 Fix building with check-lisp-object-type
* src/thread.c (mark_one_thread): Use NILP to compare with
m_saved_last_thing_searched, which is a Lisp object.  Reported by
Andreas Politz <politza@hochschule-trier.de>.
2016-12-10 11:06:23 +02:00
Eli Zaretskii
19bc43020d Documentation and commentary improvements
* src/lisp.h:
* src/regex.c:
* src/xgselect.c (xg_select): Improve commentary and formatting.

* doc/lispref/objects.texi (Thread Type, Mutex Type)
(Condition Variable Type): New subsections.
(Type Predicates): Add thread-related predicates.
* doc/lispref/objects.texi (Editing Types):
* doc/lispref/elisp.texi (Top): Update higher-level menus.
2016-12-10 10:49:39 +02:00