1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-15 04:11:53 -08:00
Commit graph

42533 commits

Author SHA1 Message Date
Glenn Morris
2e8c9ede15 Merge from origin/emacs-27
f31c6792ab Fix support for Zip64 zip files
ba635a19fb * lisp/hi-lock.el (hi-lock-auto-select-face): Doc fix.  (B...
cc8fef2bdd Avoid infinite recursion with 'relative' line numbers display
395f10cb98 ; Fix more trivial typos
bf4accb65e ; Fix some trivial typos

# Conflicts:
#	etc/NEWS
#	lisp/arc-mode.el
2020-09-27 09:37:10 -07:00
Pip Cet
a492013d07 Fix more single-byte accesses caused by bytepos/charpos confusion
* src/cmds.c (internal_self_insert): Use FETCH_BYTE, not
FETCH_CHAR, for a decremented byte position (bug#41520).

* src/xdisp.c (Fwindow_text_pixel_size, trailing_whitespace_p): Ditto.
2020-09-27 17:40:07 +02:00
Pip Cet
433b6fc53d Handle single-argument `apply' consistently (bug#40968)
* src/eval.c (Fapply): Handle (apply nil) without crashing.
Document single-argument form.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Don't attempt
to optimize single-argument apply.
* doc/lispref/functions.texi (Calling Functions): Document
single-argument apply.  Provide example (bug#40968).
2020-09-27 16:59:00 +02:00
Mattias Engdegård
8bd233a7eb Minor string-search optimisations (bug#43598)
* src/fns.c (Fstring_search): Perform cheap all-ASCII checks before more
expensive ones.  Use a faster loop when searching for non-ASCII
non-raw bytes.
* test/src/fns-tests.el (string-search): Add more test cases.
2020-09-27 14:28:07 +02:00
Eli Zaretskii
768676f74f Improve display of raw bytes in the echo-area
* src/print.c (print_object): When printing a unibyte string,
convert non-ASCII bytes to their character code, before sending
them to 'printchar'.  (Bug#43632)
2020-09-27 08:26:56 +03:00
Lars Ingebrigtsen
8c569683f2 Fix searching for multibyte needles in unibyte haystacks
* src/fns.c (Fstring_search): Make this work better when searching
unibyte haystacks for multibyte needles (bug#43598).
2020-09-27 02:01:03 +02:00
Lars Ingebrigtsen
104688feb4 Add tiny optimization for string-search
* src/fns.c (Fstring_search): Add tiny optimization for needles
that are longer than the haystack (bug#43598).
2020-09-27 00:35:11 +02:00
Michael Albinus
c540f3323d Add D-Bus monitor
* lisp/net/dbus.el (dbus-interface-monitoring): New defconst.
(dbus-call-method, dbus-call-method-asynchronously)
(dbus-send-signal, dbus-method-return-internal)
(dbus-method-error-internal, dbus-check-arguments): Accept also
:system-private and :session-private.
(dbus-check-event, dbus-event-path-name)
(dbus-event-interface-name)
(dbus-event-member-name, dbus-property-handler)
(dbus-handle-bus-disconnect): Adapt according to new structure.
(dbus-handle-event): Handle also monitor events.
(dbus-event-destination-name, dbus-event-handler)
(dbus-event-arguments, dbus-register-monitor, dbus-monitor-handler):
New defuns.

* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS, xd_remove_watch)
(Fdbus__init_bus): Accept also :system-private and :session-private.
(xd_read_message_1): Add destination and error_name to
dbus-event.  Handle monitor events.
(syms_of_dbusbind): Declare QCsystem_private, QCsession_private
and QCmonitor.
(dbus-registered-objects-table): Fix docstring.
2020-09-26 11:38:23 +02:00
Alan Third
3a3226716b Tidy up NS color handling
* src/nsimage.m (COLORSPACE_NAME): New macro to find the current
colorspace.
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]):
([EmacsImage initForXPMWithDepth:width:height:]): Use the current
colorspace.
* src/nsterm.h (NSAppKitVersionNumber10_7):
(NSAppKitVersionNumber10_10): Define for macOS version checks.
* src/nsterm.m ([NSColor colorForEmacsRed:green:blue:alpha:]): Tidy up
the version checking.
([NSColor colorUsingDefaultColorSpace]): Tidy the version checking and
use [NSColor colorUsingColorSpace:] with GNUstep.
2020-09-25 17:19:00 +01:00
Alan Third
dd6876d6e2 Remove obsolete macOS support for NS font backend
The ns font backend is has been disabled on macOS for a long time and
doesn't work correctly even if re-enabled.

* src/nsfont.m:
(ns_char_width):
(ns_ascii_average_width):
(ns_get_covering_families):
(nsfont_open):
(nsfont_close):
(nsfont_draw):
(ns_uni_to_glyphs):
(ns_glyph_metrics):
(EmacsGlyphStorage): Remove all Cocoa only code.
* src/nsterm.h (EmacsGlyphStorage): Remove.
(struct nsfont_info): Make GNUstep only.
* src/nsterm.m (ns_compute_glyph_string_overhangs): Remove GNUstep
only code from Cocoa builds.
2020-09-25 17:19:00 +01:00
Alan Third
c4c5db3de7 Implement internal border colors on NS (bug#41071)
* src/nsterm.m (ns_clear_under_internal_border): New function.
(ns_after_update_window_line): Use the correct background color.
(ns_redisplay_interface): Add ns_clear_under_internal_border.
2020-09-25 17:18:59 +01:00
Mattias Engdegård
497a1ed8bb string-search robustness and documentation improvement (bug#43598)
* src/fns.c (Fstring_search): Check START-POS argument range.
Simplify logic.  Improve doc string.
* test/src/fns-tests.el (string-search): Add test cases.
* doc/lispref/strings.texi (Text Comparison): Elaborate.
* lisp/emacs-lisp/byte-opt.el (pure-fns): Mark string-search as pure.
2020-09-25 17:08:00 +02:00
Lars Ingebrigtsen
d964375ad3 Tweak updating the process mark in set-process-buffer
* src/process.c (Fset_process_buffer): Only update the process
mark if we actually change the buffer.
2020-09-25 11:47:59 +02:00
Eli Zaretskii
cc8fef2bdd Avoid infinite recursion with 'relative' line numbers display
* src/xdisp.c (display_count_lines_visually): Bind
'display-line-numbers' to 'relative' around 'start_display' as
well, since that can invoke 'move_it_to' internally, thus
causing infinite recursion.  (Bug#43589)
2020-09-25 11:55:51 +03:00
Lars Ingebrigtsen
e51a98b0c2 Add a new function 'string-search'
* doc/lispref/strings.texi (Text Comparison): Document it.
* src/fns.c (Fstring_search): New function.
2020-09-25 01:53:16 +02:00
Lars Ingebrigtsen
7b3e94b664 Make set-process-buffer also update the process mark
* src/process.c (Fset_process_buffer): Update the process mark
(bug#43573).
2020-09-24 17:14:25 +02:00
Lars Ingebrigtsen
8463687b5d Refactor process mark setting
* src/process.c (update_process_mark): Make into its own function.
(Fmake_process, Fmake_pipe_process, Fmake_serial_process)
(connect_network_socket): Use it.
2020-09-24 17:08:30 +02:00
Eli Zaretskii
897ea41d39 Fix last change in resize_mini_window
* src/xdisp.c (resize_mini_window): Prevent recentering the
mini-window once its start position is computed.  (Bug#43572)
2020-09-24 17:13:43 +03:00
Alan Mackenzie
e4831151c2 Handle escaped comment enders correctly in syntax.c, fixing bug #43558
This fixes forward-comment, scan-lists, and parse-partial-sexp.

* src/syntax.c (forw_comment): Detect and skip an escaped comment ender
(e.g. \*/ in C) when comment-end-can-be-escaped is non-nil.
2020-09-23 08:52:34 +00:00
Eli Zaretskii
de6844b624 Fix cursor display in mini-window under icomplete-mode
* src/xdisp.c (resize_mini_window): When we show only part of the
mini-window's contents, make sure the window-start position is at
the beginning of a screen line.  (Bug#43519)
2020-09-22 16:52:18 +03:00
Stefan Kangas
462dbc1cb2 ; Fix typos 2020-09-21 14:26:42 +02:00
Michael Albinus
63f9d9af81 Add D-Bus tests
* doc/misc/dbus.texi (Type Conversion): Precise basic type values.

* lisp/net/dbus.el (dbus-register-property): Send signal directly.

* src/dbusbind.c (xd_signature): Accept non-nil objects for
DBUS_TYPE_BOOLEAN.

* test/lisp/net/dbus-tests.el (dbus-test01-basic-types)
(dbus-test01-compound-types): New tests.
2020-09-21 13:41:30 +02:00
Glenn Morris
7a5132954b Merge from origin/emacs-27
02a31c9632 (origin/emacs-27) Minor improvement in the ELisp manual's ...
f750def778 Mention in PROBLEMS the problems with fonts and Uniscribe
082d8a21b1 Minor copyedits in 'line-height' documentation
5b23393bcc ; * src/frame.c (syms_of_frame) <make-pointer-invisible>: ...
2020-09-20 17:18:16 -07:00
Glenn Morris
3675993d76 Merge from origin/emacs-27
df04f3e755 Fix a rare segfault in syntax.c
fd1fe1e1ec Add doc to syntax-propertize-function saying it must do a ...
fcd599bbea Minor copyedits of doc of 'with-silent-modifications'
759399cdb1 Improve documentation of 'max-mini-window-height'
3223302aa2 Use modern constant names for the NS pasteboard
985703d380 Fix doc string of 'toggle-menu-bar-mode-from-frame'
184a4977c7 Make vc-bzr tests work with brz 3.1 (bug#43314)

# Conflicts:
#	lisp/emacs-lisp/syntax.el
#	src/syntax.c
2020-09-20 17:18:16 -07:00
Glenn Morris
5a2125b854 Merge from origin/emacs-27
694acda5f2 Fix compilation on TERMINFO platforms with GCC 10
f3373901e5 Fix the font-lock-debug-fontify NEWS entry

# Conflicts:
#	etc/NEWS
2020-09-20 17:10:50 -07:00
Lars Ingebrigtsen
dc2168ebf2 Make (let ((:key 'foo)) :key) signal an error in lexical elisp, too
* src/lread.c (intern_sym): Mark keywords as special (bug#38872).
2020-09-20 21:30:54 +02:00
Michael Albinus
f8624fb834 Make D-Bus properties type safe
* doc/misc/dbus.texi (Properties and Annotations):
Precise dbus-get-property and dbus-set-property.
(Type Conversion): Explain :byte and :boolean type conversion.
(Errors and Events): dbus-ignore-errors returns nil when there is
a D-Bus error.  Remove dbus-show-dbus-errors.

* etc/NEWS: Some D-Bus relevant changes.

* lisp/net/dbus.el (dbus-show-dbus-errors): Remove.
(dbus-ignore-errors): Replay implamentation without that variable.
(dbus-check-arguments): New defun.
(dbus-list-activatable-names, dbus-list-names)
(dbus-list-queued-owners, dbus-get-name-owner, dbus-introspect)
(dbus-get-all-properties, dbus-get-all-managed-objects): Don't debug.
(dbus-get-property, dbus-set-property): Propagate errors.
(dbus-register-property): Check for valid VALUE.
(dbus-property-handler): Simplify.

* src/dbusbind.c (Fdbus_message_internal): Adapt docstring.
Handle DBUS_MESSAGE_TYPE_INVALID.

* test/lisp/net/dbus-tests.el (dbus-show-dbus-errors): Don't declare.
(dbus-test06-register-property)
(dbus-test06-register-property-emits-signal): Adapt tests.
2020-09-20 16:44:17 +02:00
Lars Ingebrigtsen
8da6eb3a70 Remove code checked in to lread.c by mistake
* src/lread.c (intern_sym): Remove code under development
inadvertently checked in.
2020-09-20 12:57:53 +02:00
dickmao
321bba0c99 Terminate `comint-password-function' tests
* test/lisp/comint-tests.el (comint-test-no-password-function)
(comint-test-password-function-with-value)
(comint-test-password-function-with-nil): refactor
(comint-tests/test-password-function): actually test
`comint-send-invisible' and inhibit inadvertent interactive query
(bug#38825).
2020-09-20 12:43:37 +02:00
Pip Cet
988f45a75b Fix printing of hash tables with removed elements
* src/print.c (print_vectorlike): Keep track of the actual number
of elements printed rather than attempting to use hash bucket
indices (bug#38892).
2020-09-20 12:24:16 +02:00
bug-gnu-emacs@gnu.org
091cb97a2a Honor make-pointer-invisible on macOS
* src/nsterm.m ([EmacsView keyDown:]): Call
[NSCursor setHiddenUntilMouseMoves:] with the correct argument, depending on
variable make-pointer-invisible.
2020-09-19 20:11:53 +01:00
Eli Zaretskii
5b23393bcc ; * src/frame.c (syms_of_frame) <make-pointer-invisible>: Doc fix. 2020-09-19 21:57:20 +03:00
Eli Zaretskii
df04f3e755 Fix a rare segfault in syntax.c
* src/syntax.c (Fforward_comment): Prevent the loop for COUNT < 0
from going outside the valid range of character/byte positions.
(Bug#43499)

* doc/lispref/syntax.texi (Syntax Class Table): Mention the
"comment-fence" and "string-fence" as alternative names of 2
syntax classes.
2020-09-19 19:54:01 +03:00
Eli Zaretskii
759399cdb1 Improve documentation of 'max-mini-window-height'
* src/xdisp.c (syms_of_xdisp):
* doc/lispref/minibuf.texi (Minibuffer Windows): More accurate
wording in the documentation of 'max-mini-window-height', to
clarify the meaning of an integer value.
2020-09-18 22:50:36 +03:00
Daniel Martín
3223302aa2 Use modern constant names for the NS pasteboard
Use the same pasteboard constant names defined in
ns_drag_types. (Bug#43470).

* src/nsterm.m: Rename NSURLPboardType to NSPasteboardTypeURL,
NSStringPboardType to NSPasteboardTypeString, and
NSTabularTextPboardType to NSPasteboardTypeTabularText
2020-09-18 20:06:36 +01:00
Eli Zaretskii
a22fdc9620 Minor cleanup of last change
* src/termchar.h (struct tty_display_info):
* src/term.c (turn_on_face, tty_capable_p): Reformat new code.
2020-09-18 11:43:12 +03:00
Mike Hamrick
e0e147e103 TTY Support for ECMA-48 strike-through graphic rendition
* term.c: Support strike-through in capable terminals.
(no_color_bit): Replace unused NC_INVIS with
NC_STRIKE_THROUGH.
(turn_on_face): Output via TS_enter_strike_through_mode
if available.
(turn_off_face): Handle strike-through case.
(tty_capable_p, init_tty): Support strike-through.
* termchar.h (struct tty_display_info): Add field for
strike-through.
* xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
Handle strike-through case.
* dispextern.h: Add TTY_CAP_STRIKE_THROUGH definition.
(struct face): Add field tty_strike_through_p.
2020-09-18 11:31:12 +03:00
Eli Zaretskii
ccd555f04b ; * src/keyboard (make_lispy_event): Fix a typo. 2020-09-17 21:41:58 +03:00
Eli Zaretskii
fa0859fda9 Fix documentation of a recent change
* src/keyboard.c (update_recent_keys): Fix commentary.
(Flossage_size): Fix doc string.

* etc/NEWS: Move and fix wording of the recently added entry.
2020-09-17 18:24:22 +03:00
Tino Calancha
23a3333b3e Give Lisp control on the lossage size
Add a command 'lossage-size' to set the maximum
number or recorded keystrokes (Bug#38796).

* src/keyboard.c (lossage_limit):
Static variable with the current lossage size limit.
(MIN_NUM_RECENT_KEYS): Renamed from NUM_RECENT_KEYS.
Set it as 100 and use it as the minimum value for lossage_limit.
Keep the same default for the vector size as before (300).
(lossage-size): New command.
(update_recent_keys): Helper function.
(command_loop_1)
(record_char)
(recent-keys)
(syms_of_keyboard): Use lossage_limit as the vector size.

* lisp/help.el (view-lossage): Mention the new command in the docstring.
* etc/NEWS (Changes in Emacs 28.1): Announce this change.
* doc/emacs/help.texi (Misc Help): Update manual.
* test/src/keyboard-tests.el (keyboard-lossage-size): Add test.
2020-09-17 16:32:18 +02:00
Michael Albinus
92f342f38d D-Bus: keep type information in D-Bus events
* doc/misc/dbus.texi (Errors and Events):
* etc/NEWS: D-Bus events keep the type information of their arguments.

* lisp/net/dbus.el (dbus-check-event): Fix docstring.
(dbus-delete-types, dbus-flatten-types): New defuns.
(dbus-handle-event, dbus-register-property, dbus-property-handler):
Handle type information.
(dbus-set-property): Fix thinko.

* src/dbusbind.c (XD_BASIC_DBUS_TYPE): Simplify.
(xd_dbus_type_to_symbol): New function.
(xd_retrieve_arg): Return type information for the arguments.
(xd_read_message_1):  Return type information for the error name.
(dbus-registered-objects-table): Fix docstring.
2020-09-16 14:32:57 +02:00
Masahiro Nakamura
f028a893a5 ; Minor fix for nsxwidget patch
* lisp/xwdget.el (xwidget-webkit-download-dir)
(xwidget-webkit-save-as-file): Set version to 28.1 because the patch
was introduced in Emacs 28.0.50.

* src/nsxwidget.m: Fix typo.
2020-09-16 00:51:04 +01:00
Eli Zaretskii
1b68d76dc1 ; * src/font.c (syms_of_font) <query-all-font-backends>: Doc fix. 2020-09-15 19:05:53 +03:00
Eli Zaretskii
f4b4166e00 Avoid aborts in display_mode_element
* src/xdisp.c (display_mode_element): Use parse_str_as_multibyte,
not multibyte_chars_in_text, to determine whether mode-line spec
shall be displayed as a multibyte or unibyte string.  We cannot
use multibyte_chars_in_text here because it aborts when it finds
raw bytes in the spec string.  (Bug#43409)
2020-09-15 18:44:01 +03:00
Robert Pluim
20d13e424f Stop querying for fonts as soon as a match is found
Scanning through fonts can be very slow, especially with the 'x' font
backend, and the result is almost always not used.  Stop looking for a
font as soon as one is found rather than scanning all the backends.

* src/font.c (font_list_entities): Stop scanning through the font
backends as soon as we find a match unless
'query-all-font-backends is set (Bug#43177).
(syms_of_font): New variable 'query-all-font-backends', default
false.
2020-09-15 17:39:24 +02:00
Pip Cet
312da48719 Don't retry reading after receiving EINVAL
* src/process.c (wait_reading_process_output): Don't retry reading
from an fd after an unknown error (bug#6074).
2020-09-14 15:18:52 +02:00
Glenn Morris
1c84b187ab Fix builds without modules
* src/data.c (Finteractive_form):
* src/eval.c (Fcommandp): Fix builds without modules.
2020-09-13 17:19:19 -07:00
Philipp Stephani
da0e75e741 Add facility to make module functions interactive (Bug#23486).
* src/module-env-28.h: Add field for 'make_interactive' function.

* src/emacs-module.c (Lisp_Module_Function): Add new field holding the
interactive form.
(allocate_module_function): Adapt to structure layout change.
(module_make_interactive, module_function_interactive_form): New
functions.
(initialize_environment): Use them.

* src/eval.c (Fcommandp):
* src/data.c (Finteractive_form): Also handle interactive module
functions.

* test/data/emacs-module/mod-test.c (Fmod_test_identity): New test
function.
(emacs_module_init): Create two interactive module test functions.

* test/src/emacs-module-tests.el (module/interactive/return-t)
(module/interactive/return-t-int, module/interactive/identity):
New unit tests.

* doc/lispref/internals.texi (Module Functions): Document new
function.  Rework paragraph about wrapping module functions, as the
example no longer applies.

* etc/NEWS: Document new facility.
2020-09-13 20:26:47 +02:00
Stefan Kangas
817dd54649 Improve frame-title-format and icon-title-format
* src/xdisp.c (syms_of_xdisp): Replace 'invocation-name' with the text
"%b - GNU Emacs" and replace "@" with " at ".  (Bug#41147)
* etc/NEWS: Announce the above change.
2020-09-13 18:24:31 +02:00
Lars Ingebrigtsen
e0f304413c Doc string clarification in file-directory-p
* src/fileio.c (Ffile_directory_p): Mention that "" is a special
case (bug#43375).
2020-09-13 15:33:58 +02:00