1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 21:20:45 -08:00
Commit graph

129260 commits

Author SHA1 Message Date
Noam Postavsky
ee54d2f4e4 ; Set transient-mark-mode to let mark-defun tests pass
The tests fail when transient-mark-mode is not set since 2017-05-12
"Fix Bug#21072 and rework `mark-defun'".
* test/lisp/progmodes/python-tests.el (python-mark-defun-1)
(python-mark-defun-2): Bind 'transient-mark-mode' to t.
2017-05-20 18:28:23 -04:00
Andreas Politz
f151eb0141 Don't save unrelated buffers before recompiling directory (Bug#25964)
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Only save
buffers visiting lisp files under the directory being compiled.
2017-05-20 18:28:23 -04:00
Paul Eggert
848c90e3d4 Minor fixes for arity ranges in emacs modules
* src/emacs-module.c (module_make_function):
Check that arities fit into fixnums, for func-arity’s benefit.
(funcall_module): Avoid unnecessary conversion to EMACS_INT.
(module_function_arity): Allow arities greater than SHRT_MAX.
2017-05-20 13:43:56 -07:00
Philipp Stephani
31fded0370 Reimplement module functions
Instead of a lambda, create a new type containing all data required to
call the function, and support it in the evaluator.  Because this type
now also needs to store the function documentation, it is too big for
Lisp_Misc; use a pseudovector instead.  That also has the nice benefit
that we don't have to add special support to the garbage collector.

Since the new type is user-visible, give it a predicate.

Now we can easily support 'help-function-args' and 'func-arity'; add
unit tests for these.

* src/lisp.h (allocate_module_function, MODULE_FUNCTIONP)
(XMODULE_FUNCTION): New pseudovector type 'module function'.

* src/eval.c (FUNCTIONP): Also treat module functions as functions.
(funcall_lambda, Ffuncall, eval_sub): Add support for calling module
functions.
(Ffunc_arity): Add support for detecting the arity of module
functions.

* src/emacs-module.c (module_make_function): Adapt to new structure.
Return module function object directly instead of wrapping it in a
lambda; remove FIXME.
(funcall_module): New function to call module functions.  Replaces
`internal--module-call' and is called directly from eval.c.
(syms_of_module): Remove internal helper function, which is no longer
needed.
(module_function_arity): New helper function.

* src/data.c (Ftype_of): Adapt to new implementation.
(Fmodule_function_p, syms_of_data): New user-visible function.  Now
that module functions are first-class objects, they deserve a
predicate.  Define it even if not compiled with --enable-modules so
that Lisp code doesn't have to check for the function's existence.

* src/doc.c (Fdocumentation): Support module functions.

* src/print.c (print_object): Adapt to new implementation.

* src/alloc.c (mark_object): Specialized garbage collector support is
no longer needed.

* lisp/help.el (help-function-arglist): Support module functions.
While there, simplify the arity calculation by using `func-arity',
which does the right thing for all kinds of functions.

* test/data/emacs-module/mod-test.c: Amend docstring so we can test
the argument list.

* test/src/emacs-module-tests.el (mod-test-sum-docstring): Adapt to
new docstring.
(mod-test-non-local-exit-signal-test): Because `internal--module-call'
is gone, the backtrace has changed and no longer leaks the
implementation.
(module--func-arity): New test for `func-arity'.
(module--help-function-arglist): New test for `help-function-arglist'.
2017-05-20 15:32:52 +02:00
Eli Zaretskii
6c7bf039e9 Avoid crashes in GC due to unescaped characters warning
* src/lread.c (load_warn_unescaped_character_literals): Don't cons
Lisp objects from stack-based variables.  (Bug#26961)
2017-05-20 14:53:06 +03:00
Charles A. Roelli
021430f4b4 New commands: find-library-other-window, find-library-other-frame
* lisp/emacs-lisp/find-func.el (find-library-other-window)
(find-library-other-frame): New commands to complement the
existing 'find-library' command.  (Bug#26712)
(read-library-name): New function to read a library name.
* etc/NEWS: Mention 'find-library-other-window' and
'find-library-other-frame'.
2017-05-20 14:41:53 +03:00
Eli Zaretskii
1cbbecee66 Fix automatic hscrolling of only the current line
* src/xdisp.c (display_line): When hscrolling only the current
line, increment iterator's first_visible_x and last_visible_x
values to account for the hscroll.  This propagates the hscroll
effect on the iterator geometry all the way down to the
subroutines called by display_line, and avoids scrolling bugs
under large hscroll values.  (Bug#26994)
2017-05-20 10:32:58 +03:00
Paul Eggert
7d00410af6 Add handlerlist assertion to module code
* src/emacs-module.c (module_reset_handlerlist):
Check handlerlist.  Suggested by Philipp Stephani in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00521.html
2017-05-19 16:15:21 -07:00
Paul Eggert
a5acb3701a Port --enable-gcc-warnings to clang 3.9.1
* configure.ac (WERROR_CFLAGS): Omit -Wmissing-braces for Clang,
to shut off a false alarm.  Problem reportd by Philipp Stephani in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00521.html
2017-05-19 16:05:54 -07:00
Noam Postavsky
acd58c9198 Limit integers printed as characters (Bug#16828)
* lisp/simple.el (eval-expression-print-maximum-character): New
variable.
(eval-expression-print-format): Only display value as character if
it's less than or equal to `eval-expression-print-maximum-character'.
(eval-expression-get-print-arguments): Check
eval-expression-print-maximum-character, allow negative arg to
override it.
(eval-expression):
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp):
(elisp--eval-last-sexp-print-value): Handle new variable.
* doc/emacs/building.texi (Lisp Eval): Document new variable and
behavior.
* etc/NEWS: Announce it.
* test/lisp/progmodes/elisp-mode-tests.el
(eval-last-sexp-print-format-small-int)
(eval-last-sexp-print-format-small-int-echo)
(eval-last-sexp-print-format-large-int)
(eval-last-sexp-print-format-large-int-echo):
* test/lisp/simple-tests.el (eval-expression-print-format-small-int)
(eval-expression-print-format-small-int-echo)
(eval-expression-print-format-large-int)
(eval-expression-print-format-large-int-echo): New tests.
2017-05-19 18:16:38 -04:00
Noam Postavsky
267be4bdc2 Refactor lisp eval result printing
* lisp/simple.el (eval-expression-print-format): Don't check
`standard-output' or `current-prefix-arg'.
(eval-expression-get-print-arguments): New function, centralizes
decision about how to print results of `eval-expression' and
`eval-last-sexp'.
(eval-expression):
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp-print-value):
Use it.
2017-05-19 18:16:15 -04:00
Paul Eggert
c1c8b67246 Check that signed right shift is arithmetic
* src/data.c (ash_lsh_impl): Verify that signed right shift is
arithmetic; if we run across a compiler that uses a logical shift
we’ll need to complicate the code before removing this
compile-time check.  Help the compiler do common subexpression
elimination better.
2017-05-19 13:43:37 -07:00
Paul Eggert
7ff8c5cae0 Minor .gitignore fixes
* .gitignore: modules/mod-test/Makefile was renamed to
test/data/emacs-module/Makefile.
Omit [0-9]*.core, subsumed by *.core.
test/indent/*.new was renamed to test/manual/indent/*.new.
Add *.swp, for Vim.
2017-05-19 10:43:58 -07:00
Eli Zaretskii
c7391db7db ; * doc/emacs/files.texi (Auto Save Files): Fix a cross-reference. 2017-05-19 18:18:04 +03:00
Stefan Monnier
b372e565e4 * lisp/emacs-lisp/package.el: Quote `package-desc' in docstrings 2017-05-19 09:42:57 -04:00
Nick Helm
c1c6f167b2 Fix turning off whitespace-mode
* lisp/whitespace.el (whitespace-display-char-on): Correct the way
the original buffer-display-table is saved and restored when
global-whitespace-mode is active.  (Bug#26892)

* test/lisp/whitespace-tests.el
(whitespace-tests-whitespace-mode-on): New function.
(whitespace-tests-display-tables): New test.

Copyright-paperwork-exempt: yes
2017-05-19 15:20:59 +03:00
Michael Albinus
1b0ec9f1b5 Minor tweaks in tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp--test-afp-or-smb-p): New defun.
(tramp-test05-expand-file-name-relative): Use it.
(tramp-test38-unload): Run only in batch mode.
2017-05-19 13:57:36 +02:00
Michael Albinus
6de77cfa9d Fix a problem with OpenSSH 7 in Tramp
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Set also
"ConnectTimeout" during test.  Otherwise, OpenSSH 7 will hang.
2017-05-19 13:57:04 +02:00
Jean-Christophe Helary
d35da215cd Improve documentation of 'split-string'
* doc/lispref/strings.texi (Creating Strings): Rearrange text to
make it more readable.  (Bug#26925)
2017-05-19 14:44:33 +03:00
Eli Zaretskii
4b04d8a7d5 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2017-05-19 14:36:43 +03:00
Ruslan Bekenev
b43c4616cc Fix typos in doc strings
* lisp/mail/rfc2231.el (rfc2231-encode-string):
* lisp/mail/rfc2047.el (rfc2047-encode-parameter):
* lisp/mail/rfc2045.el (rfc2045-encode-string): Fix typos in doc
strings.  (Bug#26103)
2017-05-19 14:35:47 +03:00
Philipp Stephani
45944e0183 Fix module tests on some systems
If dladdr(3) isn't available or didn't work, the printed
representation of a module function will not include the file name,
but only the address.  Make the tests pass in that case.

* test/src/emacs-module-tests.el (module-function-object): Fix match for
module function printed representation
2017-05-19 13:30:25 +02:00
Jean-Christophe Helary
c189986b24 Add an optional arguments to string-trim
* lisp/emacs-lisp/subr-x.el (string-trim-left, string-trim-right)
(string-trim): Add optional args that serve as defaults per the
original behavior.  (Bug#26908)
2017-05-19 14:27:10 +03:00
Stephen Berman
cecd99d826 Fix typo in last change to auto-hscroll-mode
* lisp/cus-start.el (standard): Fix typo in value of auto-hscroll-mode.
2017-05-19 11:36:01 +02:00
Eli Zaretskii
7430617d3d Support remote editing in emacsclient via Tramp
* lib-src/emacsclient.c (main, decode_options)
(print_help_and_exit, longopts): New option '--tramp' / '-T' which
specifies how emacs should use tramp to find remote files.

* doc/emacs/misc.texi (TCP Emacs server): New subsection describing
the various knobs to tune server.el for TCP opereation.
(emacsclient Options): Reference "TCP Emacs server" from description of
--server-file.  Document the new '--tramp' / '-T' options.
* doc/emacs/emacs.texi (Top): Update the top-level menu.

* etc/NEWS: Mention the new option.
2017-05-19 11:51:16 +03:00
Eli Zaretskii
bb5c6614eb * lisp/replace.el (query-replace-regexp-eval): Doc fix. 2017-05-19 11:12:51 +03:00
Paul Eggert
7c951fd518 Attempt to work around macOS vfork bug
Problem reported by YAMAMOTO Mitsuharu in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00342.html
This is related to the fix for Bug#26397.
* src/callproc.c (call_process_cleanup, call_process) [!MSDOS]:
Report internal error if wait_for_termination fails.
* src/sysdep.c (get_child_status): Return -1 if waitpid is
buggy, instead of aborting.
(wait_for_termination): Return bool success value.
All callers changed.
2017-05-19 00:13:27 -07:00
Eli Zaretskii
df9bec3b39 Adjust defcustom form for 'auto-hscroll-mode'
* lisp/cus-start.el (standard) <auto-hscroll-mode>: Adjust the
defcustom form.  Suggested by Stephen Berman <stephen.berman@gmx.net>.
2017-05-19 10:01:23 +03:00
Paul Eggert
7e3e51f4e2 Fix DARWIN_OS_CASE_SENSITIVE_FIXME==2 false alarm
* src/fileio.c (file_name_case_insensitive_p):
Don’t compile the (DARWIN_OS_CASE_SENSITIVE_FIXME == 2)
code unless DARWIN_OS_CASE_SENSITIVE_FIXME is 2.
Problem reported by Philipp Stephani in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00495.html
2017-05-18 20:42:35 -07:00
Paul Eggert
af4ac3dc85 Port --enable-gcc-warnings to clang 3.9.1
* configure.ac (WERROR_CFLAGS): Omit -Wdouble-promotion if clang.
Problem reported by Philipp Stephani in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00495.html
2017-05-18 20:42:34 -07:00
Paul Eggert
9647430ae8 Clean up compiler warning in emacs-module.c
* src/emacs-module.c (MODULE_SETJMP_1): Use the local var
instead of leaving it unused, to pacify picky compilers.
(module_reset_handlerlist): Now takes a dummy pointer to a struct
handler *, instead of a dummy pointer to an int.  All uses changed.
2017-05-18 20:03:03 -07:00
Philipp Stephani
e41030971f Clean up some compiler warnings
* src/sysdep.c (system_process_attributes) [DARWIN_OS]:
Remove unused locals.
2017-05-18 19:15:49 -07:00
Eli Zaretskii
064b92d6e5 Support hscrolling only the current line
* src/xdisp.c (hscrolling_current_line_p): New function.
(init_iterator): If auto-hscrolling just the current line, don't
increment the iterator's first_visible_x and last_visible_x
variables.
(hscroll_window_tree): Recompute window's hscroll when moving
vertically to another screen line.
(redisplay_window): If we are hscrolling only the current line,
disable the optimizations that rely on the current matrix being
up-to-date.
(display_line): Accept an additional argument CURSOR_VPOS, the
vertical position of the current screen line which might need
hscrolling; all callers changed.  Compute first_visible_x and
last_visible_x specially when auto-hscrolling current line, by
repeating the calculation that is done in init_iterator in other
modes.
(syms_of_xdisp) <auto-hscroll-mode>: No longer boolean, it can now
accept a 3rd value 'current-line, to turn on the mode where
only the current line is hscrolled.

* etc/NEWS: Mention the new auto-hscroll-mode value.
2017-05-18 23:18:29 +03:00
Eli Zaretskii
f6816a659c Fix last change in line-move-finish
* lisp/simple.el (line-move-finish): Fix last change.  This corrects a
regression in C-n and C-p when lines are truncated, introduced by the
change in 2017-05-10.
2017-05-18 22:54:35 +03:00
Simen Heggestøyl
8deef1d6a7 Expand docstring for CSS mode
* lisp/textmodes/css-mode.el (css-completion-at-point, css-mode):
Expand docstrings.
2017-05-18 17:59:56 +02:00
Tino Calancha
c48e539226 Use the expression angle units while simplifying it
Don't use the angle mode, use the angle units included
in the expression instead (Bug#23889).
* lisp/calc/calc-alg.el (calc-input-angle-units): New defun.
(math-simplify): Use it.
* lisp/calc/calc-forms.el (math-to-hms, math-from-hms):
Don't use calc-angle-mode if math-simplifying-units is non-nil.
* lisp/calc/calc-math.el (calcFunc-nroot, math-from-radians)
(math-to-radians-2, math-from-radians-2): Don't convert angle
to radians if math-simplifying-units is non-nil.
* test/lisp/calc/calc-tests.el (test-calc-23889): Add test.
2017-05-18 14:47:06 +09:00
Tino Calancha
eab1a6307b Revert "Ignore angle mode while simplifying units"
This reverts commit 713e922243.
This commit causes Bug#25652.
2017-05-18 13:15:50 +09:00
Paul Eggert
d4cac417d6 ; Spelling fix 2017-05-17 14:59:13 -07:00
Paul Eggert
e54a3b4fde Avoid undefined behavior in struct sockaddr
Problem noted by Philipp Stephani in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00391.html
* src/conf_post.h (ATTRIBUTE_MAY_ALIAS, DECLARE_POINTER_ALIAS):
New macros.
* src/process.c (conv_sockaddr_to_lisp, conv_lisp_to_sockaddr)
(connect_network_socket, network_interface_info)
(server_accept_connection): Use it when aliasing non-char objects.
2017-05-17 13:36:56 -07:00
Stefan Monnier
184d74ce00 * lisp/vc/smerge-mode.el (smerge-refine-regions): Work in multi-bufs
Rename from smerge-refine-subst.  Allow the `beg's to be markers.
Add autoload cookie.
(smerge--refine-forward): Rename from smerge-refine-forward.
(smerge--refine-chopup-region): Rename from smerge-refine-chopup-region.
Assume that its `beg` arg is a marker.
(smerge--refine-highlight-change): Rename from
smerge-refine-highlight-change.  Remove `buf` arg.
(smerge-refine-subst): Redefine as an obsolete alias.
2017-05-17 15:44:36 -04:00
Paul Eggert
709259dcc5 Work around AddressSanitizer bug with vfork
Problem reported by Jim Meyering in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00246.html
* src/conf_post.h (vfork) [ADDRESS_SANITIZER]: Define to fork.
Unfortunately with the AddressSanitizer in Fedora 25 x86-64, the
vforked child messes up the parent’s shadow memory.  This is too
bad, as we’d rather have AddressSanitizer catch memory-access bugs
related to vfork.
2017-05-17 10:59:02 -07:00
Paul Eggert
937ff1a0af Catch IPv4/IPv6 issues at compile time
* src/process.c (connect_network_socket): Use verify,
not eassert, so that any problems are caught at compile-time.
Avoid dodgy cast by using a local var of the correct type.
2017-05-17 10:59:02 -07:00
Paul Eggert
2b93b754c1 Pacify --enable-gcc-warnings --with-x-toolkit=no
* src/composite.c (autocmp_chars) [!HAVE_WINDOW_SYSTEM]:
Avoid unused local.
2017-05-17 10:59:02 -07:00
Glenn Morris
1b598d32aa * admin/update_autogen (commit): Pull before push. 2017-05-17 12:44:29 -04:00
Glenn Morris
df4e105910 autoload-rubric no longer provides a feature by default
* lisp/emacs-lisp/autoload.el (autoload-rubric):
Stop providing a feature unless explicitly requested.
(autoload-find-generated-file): Update autoload-rubric call.
2017-05-17 12:43:23 -04:00
Eli Zaretskii
f861353b68 Remove redundant code in connect_network_socket
* src/process.c (connect_network_socket) [HAVE_GETSOCKNAME]:
Remove redundant type-casting and variables.  Don't call
'getsockname' to find the port for AF_LOCAL sockets.
[AF_INET6]: Add an assertion to verify that the ports in the IPv4
and IPv6 structures are at the same offset and have the same size.
2017-05-17 18:12:58 +03:00
Paul Eggert
f7c07930b5 Fix minor timezone memory leak
* src/editfns.c (wall_clock_tz): Remove; unused.
2017-05-16 14:36:40 -07:00
Paul Eggert
69d0a8500c Do not discard AddressSanitizer stderr
* src/emacs.c (close_output_streams) [ADDRESS_SANITIZER]:
Do not close stderr.
2017-05-16 14:31:49 -07:00
Paul Eggert
be9e60fc3c Simplify procname code to avoid GCC bug
* src/process.c (server_accept_connection): Simplify and avoid
multiple calls and struct literals in the last case of a switch.
The old code ran afoul of GCC bug 80659, which caused an internal
compiler error.  Problem reported by Jim Meyering in:
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00182.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80659
2017-05-16 14:31:49 -07:00
Paul Eggert
c4ac34f227 Pacify GCC 7 with --enable-gcc-warnings
* src/regex.c (regex_compile): Swap labels, so that the
FALLTHROUGH immediately precedes the case label.
2017-05-16 13:24:52 -07:00