Commit graph

129537 commits

Author SHA1 Message Date
Alan Third
1d1f30104c Note how fullscreen differs on the NS port
doc/lispref/frames.texi (Size Parameters):
doc/emacs/frames.texi (Tool Bars): Add a description of how macOS
hides the tool-bar and menu-bar in fullscreen.
2017-06-12 18:51:57 +01:00
Alan Third
0f24ad7b81 Add no-focus-on-map to NS build (bug#25408)
* src/nsfns.m (ns_frame_parm_handlers): Add x_set_no_focus_on_map.
(x-create-frame): Check for no-focus-on-map.
* src/nsterm.h (x_set_no_focus_on_map): New function.
* src/nsterm.m (x_set_no_focus_on_map): New function.
(ns_raise_frame): Add parameter for specifying whether to focus the
frame.
(ns_frame_raise_lower):
(x_make_frame_visible): Handle new parameter for ns_raise_frame.
2017-06-12 18:51:57 +01:00
Paul Eggert
6b9618e813 _Noreturn not noreturn
_Noreturn is more portable to non-C11 platforms.  See:
https://www.gnu.org/software/gnulib/manual/html_node/stdnoreturn_002eh.html
* src/emacs-module.c: Use _Noreturn, not noreturn.  No need to
include <stdnoreturn.h>.  Reindent to fit in 80 columns.
2017-06-12 10:39:15 -07:00
Glenn Morris
d92599d3a9 Update make-dist for recent test/ changes
* make-dist: No longer distribute test/data/emacs-module/Makefile.
2017-06-12 12:33:37 -04:00
Michael Albinus
e32d99593b ; Instrument `tramp-handle-file-name-case-insensitive-p' for debugging 2017-06-12 17:54:53 +02:00
Michael Albinus
7dfc8353ce Handle port and domain in Tramp's password cache
* doc/misc/tramp.texi (Password handling): Explain port and
domain handling in authinfo.

* lisp/net/tramp.el (tramp-process-actions, tramp-clear-passwd):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askpassword):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
(tramp-smb-maybe-open-connection): Handle also domain and port.
2017-06-12 17:52:42 +02:00
Eli Zaretskii
e6f47a9d6c Avoid compilation warnings with pre-C99 libc
* src/emacs-module.c (module_free_global_ref)
(module_assert_runtime, module_assert_env, value_to_lisp): Use 'pD'
instead of C99 't' format descriptor.
2017-06-12 18:04:04 +03:00
Philipp Stephani
d29a9dae71 Flush all output streams before aborting
Maybe the stdout buffer still contains something interesting that
should be flushed.

* src/emacs-module.c (module_abort): Flush all output streams before
aborting.
2017-06-12 16:39:15 +02:00
Philipp Stephani
655439b71e Remove an assertion that doesn't test Emacs invariants
* src/emacs-module.c (module_copy_string_contents): Remove an
assertion that doesn't test Emacs invariants.
2017-06-12 16:37:45 +02:00
Philipp Stephani
272235c1d5 Test module: add necessary version checks
* test/data/emacs-module/mod-test.c (emacs_module_init): Add necessary
version checks.
2017-06-12 16:28:16 +02:00
Philipp Stephani
d7f6477c01 Use additional CFLAGS from configure 2017-06-12 16:18:01 +02:00
Philipp Stephani
c90a97adc4 Use Autoconf to generate the test module Makefile
This makes it easier to pass compilation flags around.

* configure.ac: Also build test module Makefile.

* test/data/emacs-module/Makefile.in: New makefile template.

* test/Makefile.in ($(test_module)): No longer necessary to pass
@MODULES_SUFFIX@ around.

* .gitignore: Test module Makefile can now be ignored.
2017-06-12 16:09:37 +02:00
Philipp Stephani
909dfaf325 Also compile test module as C11
* test/data/emacs-module/Makefile (CFLAGS): Compile test module as C11
2017-06-12 15:27:18 +02:00
Philipp Stephani
cf97132764 Implement module assertions for users
Add a new command-line option '-module-assertions' that users can
enable developing or debugging a module.  If this option is present,
Emacs performs additional checks to verify that modules fulfill their
requirements.  These checks are expensive and crash Emacs if modules
are invalid, so disable them by default.

This is a command-line option instead of an ordinary variable because
changing it while Emacs is running would cause data structure
imbalances.

* src/emacs.c (main): New command line option '-module-assertions'.

* src/emacs-module.c (module_assert_main_thread)
(module_assert_runtime, module_assert_env, module_assert_value):
New functions to assert module requirements.
(syms_of_module): New uninterned variable 'module-runtimes'.
(init_module_assertions, in_main_thread, module_abort): New helper
functions.
(initialize_environment): Initialize value list.  If assertions are
enabled, use a heap-allocated environment object.
(finalize_environment): Add assertion that environment list is never
empty.
(finalize_runtime_unwind): Pop module runtime object stack.
(value_to_lisp): Assert that the value is valid.
(lisp_to_value): Record new value if assertions are enabled.
(mark_modules): Mark allocated object list.
(MODULE_FUNCTION_BEGIN_NO_CATCH)
(module_non_local_exit_check, module_non_local_exit_clear)
(module_non_local_exit_get, module_non_local_exit_signal)
(module_non_local_exit_throw): Assert thread and environment.
(module_get_environment): Assert thread and runtime.
(module_make_function, module_funcall, module_intern)
(module_funcall, module_make_integer, module_make_float)
(module_make_string, module_make_user_ptr, module_vec_get)
(funcall_module, Fmodule_load): Adapt callers.
(module_make_global_ref): If assertions are enabled, use the global
environment to store global values.
(module_free_global_ref): Remove value from global value list.

* test/Makefile.in (EMACSOPT): Enable module assertions when testing
modules.

* test/data/emacs-module/mod-test.c (Fmod_test_invalid_store)
(Fmod_test_invalid_load): New functions to test module assertions.
(emacs_module_init): Bind the new functions.

* test/src/emacs-module-tests.el (mod-test-emacs): New constant for
the Emacs binary file.
(mod-test-file): New constant for the test module file name.
(module--test-assertions): New unit test.
2017-06-12 15:22:27 +02:00
Philipp Stephani
b49dd3b047 emacs-module: Use __attribute__((nonnull))
Annotate all parameters with __attribute__((nonnull)) that may not be
NULL.
2017-06-12 10:57:39 +02:00
Philipp Stephani
9dc6e93b77 Explicitly require C11 or C++11 in emacs-module.h
We already implicitly require them by including stdbool.h.  Just make
the error message a bit clearer, and remove an unnecessary version
comparison.
2017-06-12 10:54:29 +02:00
Philipp Stephani
3f89df5c3b Add missing 'require' forms to prevent compiler warnings.
* lisp/eshell/esh-ext.el (esh-arg, esh-proc): Add missing
requirements.
2017-06-12 10:01:25 +02:00
Paul Eggert
07ab837491 Merge from gnulib
This incorporates:
2017-06-11 getopt-posix: port to glibc 2.25.90
2017-06-04 same-inode: port better to VMS 8.2 and later
* doc/misc/texinfo.tex, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h:
* m4/sys_types_h.m4: Copy from gnulib.
2017-06-11 17:30:06 -07:00
Paul Eggert
bb534f6afe Remove Lisp_Misc_Float
* src/data.c (Ftype_of): Do not worry about Lisp_Misc_Float.
* src/lisp.h (Lisp_Misc_Float): Remove.  This placeholder has been
unused for two decades; if we ever want to change floats to be a
misc type we can bring it back then.
2017-06-11 17:05:29 -07:00
Paul Eggert
d0ff364fe8 Make two symbols private to emacs-module.c
* src/lisp.h (allocate_module_function, XSET_MODULE_FUNCTION):
Move from here ...
* src/emacs-module.c: ... to here.
2017-06-11 17:05:28 -07:00
Glenn Morris
3a63d80843 Merge from origin/emacs-25
da62c1532e (origin/emacs-25) Improve the documentation of filesets
2017-06-11 16:20:41 -07:00
Glenn Morris
933f91a36f ; Merge from origin/emacs-25
The following commits were skipped:

16ef7539cb Don't advertise s_client in tls.el docs
94a6c964a4 Remove s_client usage from tls.el
2017-06-11 16:20:41 -07:00
Glenn Morris
030df01c7c Merge from origin/emacs-25
e80f6a210b Describe problems with Microsoft Intellipoint
a73ec1edb0 More accurate documentation of the ':box' face attribute
2017-06-11 16:20:41 -07:00
Glenn Morris
30963b4ef9 ; Merge from origin/emacs-25
The following commit was skipped:

50b4f85720 ; Bump Emacs version past 25.2
2017-06-11 16:20:40 -07:00
Glenn Morris
f5ea4efbe7 Merge from origin/emacs-25
eaa00584ce Improve documentation of 'gnutls-verify-error'
908498cc01 ; etc/PROBLEMS: Describe GTK-related crashes on elementar...
741daec617 ; Describe the problem with ksh when resizing shell window
2017-06-11 16:20:40 -07:00
Michael Albinus
87958db425 Some further improvements for tramp-gvfs.el
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
(tramp-gvfs-get-file-attributes)
(tramp-gvfs-maybe-open-connection): Handle davs? properly.
(tramp-gvfs-handler-askquestion): Improve `yes-or-no-p' prompt.
Show question also in batch mode.  Cache result.

* test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
Support completion for host names and ports.
2017-06-11 23:16:13 +02:00
Simen Heggestøyl
ee051688c1 Fix highlighting of CSS selectors with double hyphens
* lisp/textmodes/css-mode.el (css--font-lock-keywords): Fix
highlighting of selectors that contain double hyphens.  They would be
mistaken for a variable.
2017-06-11 19:32:17 +02:00
Philipp Stephani
8160c7d914 Support threads in modules
Rather than checking for the main thread, check for the current
thread.

* emacs-module.c (check_thread): New function.
(MODULE_FUNCTION_BEGIN_NO_CATCH, module_get_environment)
(module_non_local_exit_check, module_non_local_exit_clear)
(module_non_local_exit_get, module_non_local_exit_signal)
(module_non_local_exit_throw, module_is_not_nil, module_eq): Use it.
2017-06-11 15:24:05 +02:00
Philipp Stephani
9a86966edb Allow non-local exits in module initializers
Previously signals, throws, and quits from module initialization
functions were ignored.  These function aren't special, and better
errors can be reported using signals than with the initialization
return code, so allow non-local exits.

* src/emacs-module.c (module_signal_or_throw): New helper function.
(Fmodule_load, funcall_module): Use it.
(Fmodule_load): Also allow quitting.
2017-06-11 14:54:05 +02:00
Noam Postavsky
cf557fa9c5 Let eshell/sudo handle absolute command names (Bug#27167)
* lisp/eshell/esh-ext.el (eshell-find-interpreter): Don't change
absolute paths into relative ones.
2017-06-11 07:39:40 -04:00
Alan Third
517a0394d2 Don't wait for toolbar in NS native fullscreen
* src/nsterm.m (EmacsView:updateFrameSize): Don't short-circuit the
function when in fullscreen.
2017-06-10 22:49:45 +01:00
Paul Eggert
b94472f188 ; Spelling fixes 2017-06-10 11:44:49 -07:00
Alexander Gramiak
bdf41152af Fix the placement of GTK menus on multi-monitor systems
menu_position_func did not properly use the current monitor's
resolution.  Also see commit '2016-02-06 22:12:53 +0100'.

* lisp/frame.el (frame-monitor-attribute, frame-monitor-geometry)
(frame-monitor-workarea): New functions.

* src/xmenu.c (menu_position_func): Take into account the workarea of
the monitor that contains the mouse.  (Bug#23568)
2017-06-10 12:28:03 +03:00
Eli Zaretskii
187a71df59 Clarify documentation of 'face-spec-set'
* lisp/faces.el (face-spec-set): Clarify the description of
SPEC-TYPE in the doc string.

* doc/lispref/display.texi (Defining Faces): Clarify the
description of 'face-spec-set's SPEC-TYPE argument.  (Bug#27246)
2017-06-10 12:08:45 +03:00
Michael Albinus
f361c54e6a Fix domain port and handling in tramp-gvfs.el
* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-byte-array-to-string):
Return nil if BYTE-ARRAY is nil.
(tramp-gvfs-url-file-name, tramp-gvfs-handler-mounted-unmounted)
(tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec):
Fix domain and port handling.

* lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
Ignore errors.
2017-06-10 10:57:19 +02:00
Eli Zaretskii
1a3feb8ead Improve documentation of 'face-spec-set-2'
* lisp/faces.el (face-spec-recalc, face-spec-set-2): Rename 'spec'
to 'face-attrs'.
(face-spec-choose, face-spec-set-2): Doc fix.  (Bug#27238)
2017-06-10 11:39:59 +03:00
Eli Zaretskii
30c0f81f9f Fix handling of Python/Guile commands with arguments in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-python-guile-commands-regexp): New
variable.
(gdb-control-commands-regexp): Use it.
(gdb-send): Don't increment gdb-control-level if the command
matches gdb-python-guile-commands-regexp and has non-empty
arguments.  Reported by David Boles <boles@ieee.org> in
http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00009.html.
2017-06-10 11:29:58 +03:00
Eli Zaretskii
6b4b13eb38 Preserve point in Dired windows under 'dired-auto-revert-buffer'
* lisp/dired.el (dired-find-file): When dired-auto-revert-buffer
is non-nil, bind switch-to-buffer-preserve-window-point to nil
while calling find-file.  (Bug#27243)
2017-06-10 11:22:50 +03:00
Philipp Stephani
39121649be Give test files a -tests.el suffix
Rename a couple of test files that have the same name as the library
they test.  This harmonizes the naming pattern and makes it possible
to have the tests directories in the load path.
2017-06-09 15:56:49 +02:00
Philipp Stephani
517c704a63 Fix another compiler warning on macOS
* src/image.c (x_query_frame_background_color): Don't define if we
have NextStep but no image support.
2017-06-09 01:27:39 +02:00
Philipp Stephani
6e00ffe317 Add garbage collection support for module environments
* src/emacs-module.c (mark_modules): New function.
(initialize_environment): Properly initialize Lisp objects.
* src/alloc.c (garbage_collect_1): Call it.
2017-06-09 01:25:47 +02:00
Glenn Morris
a62d15763d Make autogen.sh report relevant environment variables
* autogen.sh (check_version):
Indicate if using an environment variable.
2017-06-08 12:48:59 -04:00
Noam Postavsky
0648edf3e0 Split variable macro env from function env
* lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove.
(cl-symbol-macrolet): Instead of adding each binding directly into the
main environment with a special key format, put all symbol macro
bindings into a single entry in the main environment under
`:cl-symbol-macros'.
(cl--sm-macroexpand): Look up symbol bindings in the
`:cl-symbol-macros' entry of the environment.
2017-06-07 20:03:31 -04:00
Glenn Morris
b52e40d756 ; ChangeLog fixes 2017-06-07 15:55:33 -04:00
Glenn Morris
622306b3fd * make-dist: Directory modules/mod-test no longer exists. 2017-06-07 14:39:59 -04:00
Glenn Morris
9d63c87e91 More authors.el updates
* admin/authors.el (authors-ignored-files, authors-valid-file-names)
(authors-renamed-files-alist): Additions.

; ChangeLog fixes
2017-06-07 14:27:21 -04:00
Glenn Morris
b1103a2c4f * make-dist: Check a release has a ChangeLog with a release notice. 2017-06-07 13:41:46 -04:00
Glenn Morris
ed226a5b34 * make-dist: Use existing ChangeLog if present. 2017-06-07 13:26:25 -04:00
Michael Albinus
a9327a0afc * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Fix port handling. 2017-06-07 16:24:31 +02:00
Lars Ingebrigtsen
6252386378 (url-cookie-host-can-set-p): Protect against zero-length domains
* lisp/url/url-cookie.el (url-cookie-host-can-set-p): Protect
against zero-length domains.

Backtrace of a real-world site that triggers a bug:

Debugger entered--Lisp error: (args-out-of-range "" 0)
  url-cookie-host-can-set-p("www.washingtonpost.com" "")
  url-cookie-handle-set-cookie("utm_term=0;Expires=Thursday,
  01-January-1970 00:00:00 GMT; path=/; domain=")
  url-http-handle-cookies()
2017-06-07 16:17:47 +02:00