Commit graph

40790 commits

Author SHA1 Message Date
Glenn Morris
bb7b75d711 Merge from origin/emacs-26
070e82b ; * src/window.c (window_scroll): Improve commentary.
60457d7 Improve documentation of the window tree
ea1a014 Fix window scrolling on TTY frames when there's no mode line
df7ed10 Fix decoding XML files encoded in ISO-8859
7851ae8 (tag: emacs-26.1.90) ; ChangeLog.3 update
1958808 * etc/AUTHORS: Update.
7252507 Fix description of some window hooks
88762b4 Run 'window--adjust-process-windows' when frame size changes ...
d6542ea Avoid errors in zone.el when there's overlay at EOB
2018-11-20 09:38:42 -08:00
Eli Zaretskii
070e82b96b ; * src/window.c (window_scroll): Improve commentary. 2018-11-19 20:35:28 +02:00
Eli Zaretskii
60457d7ae0 Improve documentation of the window tree
* doc/lispref/windows.texi (Windows and Frames): More accurate
wording regarding the relation of a mini-window to its frame's
window tree.

* src/window.h (struct window): Improve commentary to some
fields.
2018-11-19 20:31:49 +02:00
Eli Zaretskii
ea1a014982 Fix window scrolling on TTY frames when there's no mode line
* src/window.c (window_internal_height): Remove tests for
next, prev, and parent pointers, as they are unrelated to
whether a window has a mode line.  (Bug#33363)
2018-11-19 20:12:04 +02:00
Stefan Monnier
81f0e05a02 * src/cmds.c (Fself_insert_command): Get last-command-event via (new) arg. 2018-11-17 10:47:48 -05:00
Glenn Morris
166f1400b4 Merge from origin/emacs-26
edcd6b7 Small documentation correction.
168a8c2 * src/coding.c (Fcheck_coding_systems_region): Doc fix.  (Bug...
3287a7c Fix Bug#33364
acee0a8 ; Cosmetic changes in etc/NEWS
a6ef167 * test/README: Explain $REMOTE_TEMPORARY_FILE_DIRECTORY.

# Conflicts:
#	etc/NEWS
2018-11-16 08:30:19 -08:00
Eli Zaretskii
168a8c258c * src/coding.c (Fcheck_coding_systems_region): Doc fix. (Bug#33372) 2018-11-14 17:59:05 +02:00
Eli Zaretskii
fb2514f3e2 Fix a thinko in fileio.c
* src/fileio.c (get_homedir): Fix last change.  Suggested by
Paul Eggert <eggert@cs.ucla.edu>.
2018-11-14 17:28:13 +02:00
Eli Zaretskii
4a5a17507f Fix recent change in fileio.c
* src/fileio.c (get_homedir) [WINDOWSNT]: Convert $HOME to UTF-8.
(Fexpand_file_name): Don't convert it here.
2018-11-13 22:01:57 +02:00
Paul Eggert
900276502f Act like POSIX sh if $HOME is relative
POSIX says sh ~/foo should act like $HOME/foo even if $HOME is
relative, so be consistent with that (Bug#33255).
* admin/merge-gnulib (GNULIB_MODULES): Add dosname.
* src/buffer.c (init_buffer): Use emacs_wd to get
initial working directory with slash appended if needed.
(default-directory): Say it must be absolute.
* src/emacs.c (emacs_wd): New global variable.
(init_cmdargs): Dir arg is now char const *.
(main): Set emacs_wd.
* src/emacs.c (main) [NS_IMPL_COCOA]:
* src/fileio.c (Fexpand_file_name):
Use get_homedir instead of egetenv ("HOME").
* src/fileio.c: Include dosname.h, for IS_ABSOLUTE_FILE_NAME.
(splice_dir_file, get_homedir): New functions.
* src/xrdb.c (gethomedir): Remove.  All callers changed
to use get_homedir and splice_dir_file.
* test/src/fileio-tests.el (fileio-tests--relative-HOME): New test.
2018-11-13 09:32:50 -08:00
Glenn Morris
b8bbbe54dd Avoid kill-emacs-hook errors hanging batch mode
* src/emacs.c (Fkill_emacs): Prevent errors from kill-emacs-hook
hanging Emacs in batch mode.  (Bug#29955)

(cherry picked from commit 109da684c5)
2018-11-12 14:03:18 -05:00
Glenn Morris
23209e2c19 Merge from origin/emacs-26
913c001 * lisp/files.el (write-file): Clarify the doc string.  (Bug#3...
d614b84 Fix typos in midnight.el
8c2778a Improve documentation of 'move-file-to-trash'
c7b8a51 ; * doc/lispref/functions.texi (Anonymous Functions): Fix typo.
92296de * src/data.c (Ftype_of): xwidget objects are possible! (bug#3...
a3242cc Improve documentation of Diff mode
39e85a0 Note that lex bound lambda forms are not self-quoting (Bug#33...
fa605f2 Rewrite buffer display related doc-strings and doc
aa55659 Fix call to GlobalMemoryStatusEx in w32.c

# Conflicts:
#	doc/emacs/files.texi
#	src/data.c
2018-11-12 09:38:27 -08:00
Sam Steingold
db711687c3 maybe_disable_address_randomization always returns "int argc"
maybe_disable_address_randomization needs a consistent signature
regardless of HAVE_PERSONALITY_ADDR_NO_RANDOMIZE.
2018-11-12 09:10:11 -05:00
Paul Eggert
1d79c2ebd9 Work around dumping bug on GNU/Linux ppc64le
Problem reported by Thomas Fitzsimmons (Bug#33174).
Do not merge to master, as we have a better fix there.
* src/Makefile.in (emacs$(EXEEXT)):
(bootstrap-emacs$(EXEEXT)):
Unset EMACS_HEAP_EXEC before invoking temacs.
2018-11-11 22:35:10 -08:00
Paul Eggert
c14eab222c Fix dumping on GNU/Linux ppc64le
Problem reported by Thomas Fitzsimmons (Bug#33174).
* src/emacs.c (main): Adjust to sysdep.c changes.
* src/sysdep.c (exec_personality): New static var.
(disable_address_randomization): Remove, replacing with ...
(maybe_disable_address_randomization): ... this new function.
Do not set or use an environment variable; use a command-line
argument instead, and set the new static var.  Migrate the emacs.c
personality-change code to here, where it belongs.
(emacs_exec_file): Simplify by using new static var.
2018-11-11 22:20:39 -08:00
Paul Eggert
b87c874aa1 Pacify gcc -Wmaybe-uninitialized without X11-XCB
I ran into this problem on Ubuntu 18.04.1 LTS.
* src/xterm.c (get_current_wm_state) [!USE_XCB]:
Mark reply_data as UNINIT here too.
2018-11-11 10:03:32 -08:00
Paul Eggert
2917238758 Pacify gcc -Wunused-macros in older GnuTLS
I ran into this problem on Ubuntu 18.04.1 LTS.
* src/gnutls.c (HAVE_GNUTLS_CIPHER_GET_IV_SIZE)
(HAVE_GNUTLS_CIPHER_GET_TAG_SIZE, HAVE_GNUTLS_DIGEST_LIST):
New macros.  This uses the same style as the other
macros that depend on GnuTLS version, as opposed to trying
to do things a bit more cleverly.
(gnutls_cipher_get_iv_size, gnutls_cipher_get_tag_size)
(gnutls_digest_list, gnutls_digest_get_name):
Define these macros only if they will be used.
2018-11-11 10:03:32 -08:00
Paul Eggert
9cd23a2914 Dissociate controlling tty better on Darwin
* src/process.c (dissociate_controlling_tty): New function.
(create_process): Use it to dissociate controlling tty if setsid
fails, which happens on Darwin after a vfork (Bug#33154).
Do this on all platforms, not just on Darwin, as a similar
problem is plausible elsewhere.
* src/callproc.c (call_process): Use the new function here, too,
for consistency and to avoid duplicate code.
2018-11-10 09:04:42 -08:00
Eli Zaretskii
d6b7b60cd0 Fix last change
* src/editfns.c (Fgroup_name): Fix the doc string.  Move
closer to the "group" functions.
* src/w32.c (getgrgid): Return NULL if GID is not the group ID
of the user of this Emacs session

* test/src/editfns-tests.el (test-group-name): Rename from
'group-name'.  Add tests for non-Posix hosts.  Test error when
the argument to group-name is invalid.

* etc/NEWS: Fix wording of last added entry.
2018-11-10 11:16:17 +02:00
Jules Tamagnan
ffb4c76d99 src/editfns.c (group-name): New function. 2018-11-10 10:06:50 +02:00
Stefan Monnier
92296de42b * src/data.c (Ftype_of): xwidget objects are possible! (bug#33294)
(syms_of_data): Define Qwidget here.
* src/xwidget.c (syms_of_xwidget): Instead of here.
2018-11-09 09:51:54 -05:00
Eli Zaretskii
aa556596fa Fix call to GlobalMemoryStatusEx in w32.c
* src/w32.c (system_process_attributes): Initialize the size
of the data structure passed to GlobalMemoryStatusEx,
otherwise it fails.
2018-11-06 17:49:58 +02:00
Glenn Morris
294a5246b2 * src/xfaces.c (face_at_buffer_position): Adapt lookup_basic_face call. 2018-11-04 09:45:59 -08:00
Glenn Morris
a9140091dd Merge from origin/emacs-26
bd1d617 Avoid race in rcirc process filter (bug#33145)
88ef31a Avoid file-name errors when viewing PDF from Gnus
c939042 Avoid crashes with remapped default face in Org mode
97660fa Doc fix for checkdoc-continue
96f055b Fix a typo in autoload.el
2018-11-04 09:37:03 -08:00
Eli Zaretskii
19d2ba0059 A further fix for locally remapped fringe face
* src/xdisp.c (expose_window): Temporarily switch to the
window's buffer, in case the fringe face was remapped locally
in that buffer.  (Bug#33244)
2018-11-04 16:01:09 +02:00
Paul Eggert
b4eb908f85 Improve time error reporting
* src/timefns.c (emacs_mktime_z): Remove; no longer needed.
(time_error): New function, replacing invalid_time.
All callers changed.
(decode_float_time, decode_ticks_hz, decode_time_components):
Return an error number instead of merely a boolean.
All callers changed.
(decode_lisp_time): Signal an error based on the error number,
instead of merely returning a boolean to the caller.
All callers changed.
(format_time_string, Fdecode_time, Fencode_time)
(Fcurrent_time_string):
Do not assume that a failure of a system time function
must be due to time overflow.
(Fencode_time): Don't report an error merely because mktime
returned ((time_t) -1), as that may be a valid time_t value.
Use a simpler error check.  See:
https://www.sourceware.org/ml/libc-alpha/2018-11/msg00062.html
2018-11-03 21:36:46 -07:00
Eli Zaretskii
07048183a8 Allow the fringe face to be remapped locally in a buffer
* src/fringe.c (draw_window_fringes): Switch to window's
buffer to get the local value of face-remapping-alist, if
necessary.  (Bug#33244)
* src/xfaces.c (syms_of_xfaces) <Qface_remapping_alist>: New
DEFSYM.
2018-11-03 12:39:59 +02:00
Stefan Monnier
ef183b996c * src/data.c (Ffset): Don't signal gratuitous errors 2018-11-02 15:00:34 -04:00
Eli Zaretskii
c9390423d6 Avoid crashes with remapped default face in Org mode
* src/xfaces.c (face_at_buffer_position): Look up BASE_FACE_ID
anew if it is not in the frame's face cache.  This avoids
crashes when Org mode sets up for a new major mode in embedded
code fragment, and the default face is remapped.  (Bug#33222)
2018-11-02 12:07:47 +02:00
Glenn Morris
3a739236d0 Merge from origin/emacs-26
eb903d8 * lisp/emacs-lisp/pcase.el: Improve docstrings.
86abbb3 * lisp/emacs-lisp/rx.el (rx): Fix typo in doc string.  (Bug#3...
ced58d3 Improve doc string of 'call-process'
38f88a7 Document that generic functions cannot be commands
5aeddfa * lisp/mail/rmailsum.el (rmail-summary-output): Add lost word...
10e0fd8 Add index entries for more isearch commands/bindings (Bug#32990)
de28184 * lisp/simple.el (filter-buffer-substring): Clarify doc (Bug#...
d192c16 Fix recent change in lispref/processes.texi.
2018-10-31 07:50:57 -07:00
Paul Eggert
1ad2903a48 Refer to bytecode constant vectors (Bug#33014)
Backport from master.
* src/bytecode.c (exec_byte_code): Save VECTOR into stack slot
so that it survives GC.  The stack slot was otherwise unused,
so this doesn’t cost us memory, only a store insn.
2018-10-30 21:17:33 -07:00
Paul Eggert
cf486a7a92 Improve fix for Bug#33014
Although the previously-applied fix worked for its platform,
it doesn’t suffice in general.
* src/bytecode.c (exec_byte_code): Save VECTOR into stack slot
so that it survives GC.  The stack slot was otherwise unused,
so this doesn’t cost us memory, only a store insn.
* src/eval.c (Ffuncall): Do not make FUN volatile, reverting
2018-10-14T19:12:04Z!gazally@runbox.com.  Adding ‘volatile’
does not suffice, since storage for a volatile local can be
reclaimed after its last access (e.g., by tail recursion
elimination), which would make VECTOR invisible to GC.
2018-10-30 20:58:48 -07:00
Eli Zaretskii
ced58d3e15 Improve doc string of 'call-process'
* src/callproc.c (Fcall_process): Clarify DESTINATION in the
doc string.
2018-10-30 13:08:28 +02:00
Gemini Lasswell
0e484c66fd Keep a stack reference to bytecode objects being executed (Bug#33014)
* src/eval.c (Ffuncall): Make local variable 'fun' volatile.
* test/src/eval-tests.el
(eval-tests-byte-code-being-evaluated-is-protected-from-gc):
Add regression test for Bug#33014.
(eval-tests-33014-var): New variable.
(eval-tests-33014-func, eval-tests-33014-redefine): New functions.
2018-10-29 11:05:00 -07:00
Glenn Morris
2df74ce79b Merge from origin/emacs-26
df64da8 (origin/emacs-26) * lisp/simple.el (region-extract-function):...
520c486 * lisp/simple.el (region-bounds): Doc fix.  (Bug#33168)
9193db0 Improve documentation of 'process-connection-type'
106b9e1 Unify prompt for gnupg passphrase between GNU/Linux and MS-Wi...
2a41616 Doc fix of 'gnus-fetch-old-headers'
29a7644 Deactivate incorrect hyperlinking in gnus-build-sparse-thread...
53ae90f Minor copyedits in cmdargs.texi
fc2e65a Improve documentation of X resource loading
13132b3 * lisp/net/tramp-sh.el (tramp-inline-compress-commands):
8361292 ; Fix sorting in admin/MAINTAINERS
92de44f Don't error when indenting malformed Lisp (Bug#30891)
c3adbc8 Improve 'isearch-delete-char' documentation (Bug#32990)
6ca71ce ; * lisp/help.el (with-help-window): Remove extra space in doc.
f5f9583 Improve XPM load failure message (bug#33126)
f3d01d4 Avoid infloop in CPerl mode fontification
71a2d50 Fix minibuffer-help-form for lexical binding
7e8eee6 Fix some NS drawing issues (bug#32932)
d72975a * lisp/gnus/mm-util.el (mm-decompress-buffer): Fix split-stri...
c97a5f1 * doc/misc/calc.texi (Summary): The +/- key is 'p', not 'P'.

# Conflicts:
#	lisp/gnus/mm-util.el
2018-10-27 09:15:32 -07:00
Alan Third
f5f95838bd Improve XPM load failure message (bug#33126)
* src/image.c (xpm_load_image): Only XPM3 is supported, so make that
explicit.
2018-10-25 16:01:15 +01:00
Alan Third
7e8eee60a9 Fix some NS drawing issues (bug#32932)
* src/nsterm.m (ns_clip_to_rect):
(ns_reset_clipping): Remove gsaved variable and associated code.
(ns_flush_display): Remove function.
(ns_copy_bits): use translateRectsNeedingDisplayInRect:by: to copy any
pending drawing actions along with the image.
([EmacsView windowWillResize:toSize:]): Remove unneeded call.
([EmacsView drawRect:]): Remove redundant call to ns_clear_frame_area,
and optimize the exposed rectangles.
(ns_draw_window_cursor): Remove unneeded disabling of screen updates.
2018-10-24 11:32:23 +01:00
Stefan Monnier
7d5919e5e7 * src/minibuf.c (read_minibuf_noninteractive): Remove unused args. 2018-10-22 09:50:08 -04:00
Alan Mackenzie
7cfe2dc415 In edebug in GUIs, move focus to the selected frame.
Thus when entering edebug, the focus will be moved to the frame with the
source being debugged, and when its finished, the focus will move back.
Commands edebug-visit-eval-list (`E') and edebug-bounce-point (`p') have been
likewise amended.

* src/keyboard.c (readable_events): Handle FOCUS_OUT_EVENT as an invisible
event.  This prevents input-pending-p returning t when one of these events
arrives, and thus obviates an instant termination of sit-for when there's no
"real" event waiting.

* lisp/emacs-lisp/edebug.el (edebug-focus-frame): New function.
(edebug-default-enter, edebug--display-1, edbug-where, edebug-bounce-point)
(edebug-visit-eval-list): Call edebug-focus-frame to move focus into the
window newly selected by edebug-pop-to-buffer.
2018-10-19 17:44:31 +00:00
Paul Eggert
d2a07b9a82 Fix struct thread alignment on FreeBSD x86
Problem reported by Joseph Mingrone in:
https://lists.gnu.org/r/emacs-devel/2018-10/msg00238.html
While we’re at it, apply a similar fix to struct Lisp_Subr; this
removes the need for GCALIGNED_STRUCT_MEMBER and thus can shrink
struct Lisp_Subr a bit.
* configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Bring back this macro.
Although used only for performance (not to actually align
structures), we might as well take advantage of it.
* src/lisp.h (GCALIGNED_STRUCT_MEMBER): Remove; all uses removed.
(union Aligned_Lisp_Subr): New type, like struct Lisp_Subr but aligned.
* src/lisp.h (XSUBR, DEFUN):
* src/lread.c (defsubr): Use it.  All callers changed.
* src/thread.c (union aligned_thread_state): New type.
(main_thread): Now of this type, so it’s aligned.
All uses changed.
* src/xmenu.c (syms_of_xmenu) [USE_GTK || USE_X_TOOLKIT]:
Adjust to union Aligned_Lisp_Subr change.
2018-10-19 09:26:50 -07:00
Eli Zaretskii
7356743232 Avoid assertion violation when comparing with main-thread
* src/thread.c (unmark_main_thread): New function.
* src/lisp.h (unmark_main_thread): Prototype it.
* src/alloc.c (garbage_collect_1): Call it after sweeping.
(Bug#33073)

* test/src/thread-tests.el (threads-test-bug33073): New test.
2018-10-17 18:19:47 +03:00
Glenn Morris
722833d30e Merge from origin/emacs-26
73babba (origin/emacs-26) Clarify documentation of fractional vertica...
b20c51d * lisp/isearch.el (isearch-cmds): Recall absent isearch--stat...
700acbd doc/lispref/edebug.texi (Specification List) Remove obstrusiv...
1902450 Fix wording in module API documentation
e724a8f Fix redisplay of glyphless characters
8fc892d Update --without-toolkit-scroll-bars doc
80e0bfa Call GTK functions only on GTK scrollbars
91c4c46 Update the description of startup in ELisp manual
18b42c6 Use the 'line-number' face for line-number fields past EOB
a6ab8db Ensure NS frame is redrawn correctly  after scroll

Conflicts:
	lisp/isearch.el
2018-10-16 08:08:04 -07:00
Alan Mackenzie
73babba26a Clarify documentation of fractional vertical scrolling and some doc strings
* doc/lispref/windows.texi (vertical scrolling): Clarify the meaning of
vertical scrolling by referring to tall screen lines, images, and the display
action.  Clarify an ambiguous English tense.

* src/window.c (window-vscroll, set-window-vscroll): Amend doc strings to
refer to display.
2018-10-15 19:04:05 +00:00
Stefan Monnier
8c68e4afa8 * src/buffer.c (Fmove_overlay): Don't call Fdelete_overlay
... because the data structure is not in a consistent state.

* test/src/buffer-tests.el (overlay-evaporation-after-killed-buffer):
New test.
2018-10-14 16:44:21 -04:00
Paul Eggert
f1ea2b9e6b Fix lisp_eval_depth in unwind-protect cleanup
Problem reported by Paul Pogonyshev (Bug#33034).
* src/lisp.h (union specbinding): New member unwind.eval_depth.
* src/eval.c (record_unwind_protect, set_unwind_protect): Set it.
(do_one_unbind): Use it.
2018-10-14 09:54:58 -07:00
Eli Zaretskii
e724a8f669 Fix redisplay of glyphless characters
* src/conf_post.h (bool_bf): Use 'unsigned int' in the MinGW
builds.  Suggested by Tom Tromey <tom@tromey.com>.  (Bug#33017)
* src/dispnew.c (scrolling_window): Update commentary
regarding xwidget builds.
2018-10-13 19:47:01 +03:00
Robert Pluim
80e0bfa96d Call GTK functions only on GTK scrollbars
* src/gtkutil.c (xg_set_background_color) [USE_TOOLKIT_SCROLL_BARS]:
Don't call GTK functions on non-GTK scrollbars (Bug#32975).
2018-10-13 10:44:37 +02:00
Eli Zaretskii
95f69e7db2 Improve 'json-insert' so it doesn't cons a string from JSON
* src/json.c (struct json_buffer_and_size): New member
inserted_bytes.
(json_insert): Instead of creating a string and inserting it
into the current buffer, copy the unibyte text into the gap.
(struct json_insert_data): New member inserted_bytes.
(json_insert_callback): Update commentary.  Pass the
inserted_bytes value to json_insert and on its return copy the
updated value back into DATA.
(Fjson_insert): Decode the unibyte text inserted into the gap.
Call before-change-functions and after-change-functions only
once, before and after processing the insertion of the entire
JSON representation.

* test/src/json-tests.el (json-insert/throw): Adapt to the
modified implementation of json-insert: it no longer calls the
modification hooks once for each inserted chunk of JSON
representation.
2018-10-13 10:13:10 +03:00
Eli Zaretskii
18b42c6b4b Use the 'line-number' face for line-number fields past EOB
* src/xdisp.c (get_phys_cursor_geometry): Treat rows at and
beyond ZV specially.  Don't let the cursor exceed the
vertical dimensions of the row.
(maybe_produce_line_number): Use the 'line-number' face
instead of 'default' for blank fields beyond ZV.  Don't update
the IT metrics when displaying blank line-number fields beyond
ZV.  (Bug#32337)
2018-10-13 09:44:09 +03:00
Alan Third
a6ab8db3a3 Ensure NS frame is redrawn correctly after scroll
* src/nsterm.m (ns_copy_bits): Set needsDisplay so the previous cursor
position is redrawn.
2018-10-12 21:46:53 +01:00