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

164845 commits

Author SHA1 Message Date
Po Lu
46e8ab23ea Merge remote-tracking branch 'origin/master' into feature/android 2023-01-30 21:19:55 +08:00
Po Lu
f69583941c Update Android port
* cross/ndk-build/ndk-build-shared-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1)))):
* cross/ndk-build/ndk-build-static-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1)))): Revert broken typo
fixes.
* src/sfnt.c (TEST_STATIC): Define ARRAYELTS.
(sfnt_table_names): New CVT and FPGM tables.
(sfnt_decompose_compound_glyph, sfnt_decompose_glyph)
(struct sfnt_large_integer, sfnt_multiply_divide_1)
(sfnt_count_leading_zero_bits, sfnt_multiply_divide_2)
(sfnt_multiply_divide, sfnt_mul_fixed, sfnt_div_fixed)
(sfnt_ceil_fixed, sfnt_build_glyph_outline): Fix fixed point
multiplication routines on systems without 64 bit long long
type.
(SFNT_ENABLE_HINTING, struct sfnt_test_dcontext, sfnt_test_move_to)
(sfnt_test_line_to, sfnt_test_curve_to, sfnt_test_get_glyph)
(sfnt_test_free_glyph, sfnt_test_span, sfnt_test_edge_ignore)
(sfnt_read_cvt_table, sfnt_test_edge, sfnt_test_raster)
(sfnt_read_fpgm_table, struct sfnt_unit_vector)
(struct sfnt_interpreter_definition)
(struct sfnt_interpreter_graphics_state, struct sfnt_interpreter)
(sfnt_div_f26dot6, sfnt_mul_f26dot6, sfnt_floor_f26dot6)
(sfnt_ceil_f26dot6, sfnt_round_f26dot6, sfnt_init_graphics_state)
(sfnt_make_interpreter, enum sfnt_interpreter_run_context)
(sfnt_interpret_trap, STACKSIZE, sfnt_set_srounding_state)
(sfnt_skip_code, sfnt_interpret_unimplemented, sfnt_interpret_fdef)
(sfnt_interpret_idef, sfnt_interpret_if, sfnt_interpret_else)
(sfnt_round_none, sfnt_round_to_grid, sfnt_round_to_double_grid)
(sfnt_round_down_to_grid, sfnt_round_up_to_grid)
(sfnt_round_to_half_grid, sfnt_round_super, sfnt_validate_gs)
(sfnt_interpret_run, sfnt_interpret_font_program)
(test_interpreter_profile, test_cvt_values, test_interpreter_cvt)
(test_interpreter_head, sfnt_make_test_interpreter)
(struct sfnt_interpreter_test, sfnt_run_interpreter_test)
(struct sfnt_generic_test_args, sfnt_generic_check)
(sfnt_check_srp0, sfnt_check_szp0, sfnt_check_sloop)
(struct sfnt_rounding_test_args, sfnt_check_rounding)
(sfnt_check_smd, sfnt_check_scvtci, sfnt_check_sswci)
(sfnt_check_ssw, sfnt_check_flipon, sfnt_check_flipoff)
(npushb_test_args, npushw_test_args, pushb_test_args)
(pushw_test_args, stack_overflow_test_args)
(stack_underflow_test_args, rtg_test_args, rtg_symmetric_test_args)
(rtg_1_test_args, rtg_1_symmetric_test_args, rthg_test_args)
(rthg_1_test_args, rtdg_test_args, rtdg_1_test_args)
(rtdg_2_test_args, rtdg_3_test_args, else_test_args)
(jmpr_test_args, dup_test_args, pop_test_args, clear_test_args)
(swap_test_args, depth_test_args, cindex_test_args)
(mindex_test_args, raw_test_args, loopcall_test_args)
(call_test_args, fdef_test_args, fdef_1_test_args, endf_test_args)
(ws_test_args, rs_test_args, wcvtp_test_args, rcvt_test_args)
(mppem_test_args, mps_test_args, debug_test_args, lt_test_args)
(all_tests, main): Check in WIP hinting code.

* src/sfnt.h (enum sfnt_table): Add `cvt ' and `fpgm' tables.
2023-01-30 21:19:33 +08:00
Michael Albinus
3f069bd796 Fix password prompt in Tramp
* lisp/net/tramp.el (tramp-password-prompt-regexp):
Allow alternative trailing colons.  (Bug#61168)
2023-01-30 11:55:23 +01:00
Stefan Kangas
207a0d9408 Merge from origin/emacs-29
8360e12f0e Update to Org 9.6.1-23-gc45a05
9058601308 ; * doc/emacs/misc.texi (Document View): Remove @footnote...
197f994384 Document tree-sitter features in the user manual
b73539832d ; Remove treesit--font-lock-fast-mode-grace-count
64fee21d5f Fix dockerfile-ts-mode line continuation indentation (bug...
1970726e26 Use treesit-subtree-stat to determine treesit--font-lock-...
382e018856 Add treesit-subtree-stat
a3003492ac Move c-ts-mode--statement-offset to c-ts-common.el
4b1714571c ; Fix byte-compile warnings in c-ts-mode.el
f50cb7d7c4 ; Improve docstring of c-ts-mode--indent-style-setter
1c3ca3bb64 Fix <> syntax in rust-ts-mode
56e8607dc9 Fix spurious errors on Windows when deleting temporary *....
2bd0b94753 Fix java class member without access modifier (bug#61115)
1de6ebf287 Make treesit-font-lock-level a defcustom
6e50ee8bbb Add c-ts-mode-set-style and :set for c-ts-mode-indent-style
450db0587a Minor documentation improvements for outline-minor-mode (...
578e892671 ; * doc/lispref/variables.texi (File Local Variables): Im...
bc5ee2b7bf ; * src/comp.c: Remove Local Variables section to avoid w...
362678d90e python.el: Use correct regexp when enabling python-ts-mode
76bb46db9d ; * doc/emacs/frames.texi (Mouse References): Improve ind...

# Conflicts:
#	doc/emacs/programs.texi
#	etc/NEWS
#	lisp/progmodes/c-ts-mode.el
2023-01-30 07:19:43 +01:00
Kyle Meyer
8360e12f0e Update to Org 9.6.1-23-gc45a05 2023-01-29 21:42:17 -05:00
Eli Zaretskii
9058601308 ; * doc/emacs/misc.texi (Document View): Remove @footnote (bug#61152). 2023-01-29 19:00:59 +02:00
Eli Zaretskii
197f994384 Document tree-sitter features in the user manual
* lisp/progmodes/c-ts-mode.el (c-ts-mode-map): Bind "C-c .", for
consistency with CC mode.
* lisp/treesit.el (treesit-font-lock-level): Doc fix.

* doc/emacs/programs.texi (C Indent, Custom C Indent): Document
the indentation features of 'c-ts-mode'.
(Moving by Defuns): Document 'treesit-defun-tactic'.
* doc/emacs/files.texi (Visiting): Document
'treesit-max-buffer-size'.
* doc/emacs/display.texi (Traditional Font Lock)
(Parser-based Font Lock): New subsections.
* doc/emacs/emacs.texi (Top): Update top-level menu.
2023-01-29 15:22:20 +02:00
Mattias Engdegård
254c75fc29 Better commutative binary numerical op codegen
* lisp/emacs-lisp/bytecomp.el (byte-compile-variadic-numeric):
Put a constant argument last for better LAP code opportunities.
This applies to commutative binary operations (+ and *).
`min` and `max` are not included being not quite commutative.
2023-01-29 13:48:23 +01:00
Mattias Engdegård
e55855c5a1 Better compilation of n-ary comparisons
Transform n-ary comparisons to a chain of binary comparisons in the
Lisp optimiser instead of in codegen, to allow for subsequent
optimisations.  This generalises the transform, so that

   (< 1 X 10)  ->  (let ((x X)) (and (< 1 x) (< x 10)))

where (< 1 x) is then flipped to (> x 1) in codegen since it's
slightly more efficient to have the constant argument last.  Arguments
that are neither constants nor variables are given temporary bindings.

This results in about 2× speedup for 3-ary comparisons of fixnums with
nontrivial arguments, and also improves the code slightly for binary
comparisons with a constant first argument.

* lisp/emacs-lisp/byte-opt.el (byte-opt--nary-comparison): New,
set as the `byte-optimizer` property for =, <, <=, >, and >=.
* lisp/emacs-lisp/bytecomp.el (byte-compile-and-folded):
Rename to...
(byte-compile-cmp): ...and rewrite.
2023-01-29 12:02:57 +01:00
Po Lu
d272df1817 Merge remote-tracking branch 'origin/master' into feature/android 2023-01-29 19:02:37 +08:00
Michael Albinus
e2b37f901d Fix host name completion for Tramp "podman" method
* lisp/net/tramp-container.el (tramp-container--completion-function):
Rename from `tramp-docker--completion-function'.  Add argument
PROGRAM.  Use it for "docker" and "podman" host name completion.

* lisp/net/tramp.el (tramp-set-completion-function): Check, that
cdr of FUNCTION-LIST entries is a string.
2023-01-29 10:33:43 +01:00
Yuan Fu
b73539832d
; Remove treesit--font-lock-fast-mode-grace-count
* lisp/treesit.el:
(treesit--font-lock-fast-mode-grace-count): Remove. Should've been
removed in the last change.
2023-01-29 00:30:53 -08:00
Randy Taylor
64fee21d5f
Fix dockerfile-ts-mode line continuation indentation (bug#61131)
Without this rule, line continuations are only indented after entering
the contents for the line and hitting TAB or RET.

For example:
```
EXPOSE 1 \
```

After hitting RET to go to the next line, point would end up at BOL
instead of lining up with the previous entry, like so:
```
EXPOSE 1 \
2
```

The new rule will indent it as so:
```
EXPOSE 1 \
       2
```

* lisp/progmodes/dockerfile-ts-mode.el:
(dockerfile-ts-mode--indent-rules): New rule.
(dockerfile-ts-mode--line-continuation-p)
(dockerfile-ts-mode--line-continuation-anchor): New functions.
2023-01-29 00:28:48 -08:00
Yuan Fu
1970726e26
Use treesit-subtree-stat to determine treesit--font-lock-fast-mode
* lisp/treesit.el:
(treesit--children-covering-range-recurse): Return nil if LIMIT is
exceeded.
(treesit--font-lock-fast-mode): Change to a ternary value.
(treesit-font-lock-fontify-region): Enable fast mode based on the
result of treesit-subtree-stat.
2023-01-29 00:12:57 -08:00
Yuan Fu
382e018856
Add treesit-subtree-stat
* src/treesit.c (Ftreesit_subtree_stat): New function.
* lisp/treesit.el (treesit): Add to shortdoc.
2023-01-29 00:12:57 -08:00
Yuan Fu
a3003492ac
Move c-ts-mode--statement-offset to c-ts-common.el
Now it can be used by other C-like languages.

* lisp/progmodes/c-ts-common.el (c-ts-common-indent-offset):
(c-ts-common-indent-block-type-regexp):
(c-ts-common-indent-bracketless-type-regexp): New variables.
(c-ts-common-statement-offset):
(c-ts-mode--fix-bracketless-indent):
(c-ts-mode--close-bracket-offset): New functions.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change
c-ts-mode--statement-offset to c-ts-common-statement-offset.
The (parent-is "if_statement") rules are now handled by (node-is
"compound_statement").

(c-ts-mode--statement-offset-post-processr):
(c-ts-mode--statement-offset):
(c-ts-mode--fix-bracketless-indent): Move to c-ts-common.el.

(c-ts-base-mode): Setup c-ts-common stuff.

* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Make the test
more challenging.
2023-01-29 00:12:56 -08:00
Yuan Fu
4b1714571c
; Fix byte-compile warnings in c-ts-mode.el
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--get-indent-style): Move down.
(c-ts-mode-set-style): Add docstring.
2023-01-29 00:12:56 -08:00
Yuan Fu
f50cb7d7c4
; Improve docstring of c-ts-mode--indent-style-setter
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-style-setter): Improve docstring.
2023-01-29 00:12:56 -08:00
Yuan Fu
1c3ca3bb64
Fix <> syntax in rust-ts-mode
Similar to bug#60351, the angle brackets in rust-ts-mode are not
recognized as pairs when they should be.  This change copies the
function used by c++-ts-mode and adapts it to rust-ts-mode.

* lisp/progmodes/rust-ts-mode.el:
(rust-ts-mode--syntax-propertize): New function.
(rust-ts-mode): Set up syntax-propertize-function.
2023-01-29 00:12:56 -08:00
Eli Zaretskii
56e8607dc9 Fix spurious errors on Windows when deleting temporary *.eln files
* lisp/emacs-lisp/comp.el (comp--native-compile): On MS-Windows,
ignore errors when deleting a temporary .eln file.  (Bug#60996)
2023-01-29 09:44:53 +02:00
Eli Zaretskii
840f8bfdc9 * src/comp.c (F_RELOC_MAX_SIZE): Bump to 1600 (bug#60996). 2023-01-29 09:28:31 +02:00
Po Lu
ad90fe7db7 Check in missing files
* .gitignore:
* cross/lib/_Noreturn.h (_Noreturn): Add missing gnulib files.
2023-01-29 12:48:54 +08:00
Po Lu
492aa74b13 Update Android port
* INSTALL.android (module_target): Clarify documentation.
* cross/ndk-build/ndk-build-shared-library.mk:
* cross/ndk-build/ndk-build-static-library.mk: Fix building Neon objects.
* java/AndroidManifest.xml.in: Add a version code.
2023-01-29 11:21:07 +08:00
Theodor Thornhill
2bd0b94753 Fix java class member without access modifier (bug#61115)
This

```
public class T {
    @Autowired
        String a;
}
```

Should be indented as:

```
public class T {
    @Autowired
    String a;
}
````

* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
rule to match edge case of field_declaration indentation.
2023-01-28 19:51:08 +01:00
Theodor Thornhill
1de6ebf287 Make treesit-font-lock-level a defcustom
* lisp/treesit.el (treesit--font-lock-level-setter): Setter for the
new defcustom.
(treesit-font-lock-level): Turn it into a defcustom.
2023-01-28 19:40:04 +01:00
Theodor Thornhill
6e50ee8bbb Add c-ts-mode-set-style and :set for c-ts-mode-indent-style
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-style-setter): New
setter for the indent style defcustom.
(c-ts-mode-indent-style): Don't quote the values and refer to the
setter.
(c-ts-mode-set-style): New command to interactively set the indent
style.
(c-ts-mode--get-indent-style): New function renamed from
'c-ts-mode--set-indent-style'.
2023-01-28 19:39:23 +01:00
Juri Linkov
450db0587a Minor documentation improvements for outline-minor-mode (bug#61062)
* doc/emacs/text.texi (Outline Minor Mode, Outline Minor Mode):
Add pxrefs to "Icons" and "Outline Visibility".

* etc/NEWS: Mention outline-minor-mode for two modes.
2023-01-28 19:59:22 +02:00
Michael Heerdegen
835d2b6acb ; * lisp/emacs-lisp/range.el: Fix some typos
In some places, range elements are still called "article" (as in the
original Gnus code).
Replace these occurrences with the word "number" as used in the rest
of the file.
2023-01-28 17:30:42 +01:00
Eli Zaretskii
578e892671 ; * doc/lispref/variables.texi (File Local Variables): Improve indexing. 2023-01-28 16:59:17 +02:00
Eli Zaretskii
bc5ee2b7bf ; * src/comp.c: Remove Local Variables section to avoid warnings. 2023-01-28 16:52:44 +02:00
Eli Zaretskii
4de1171d14 ; * lisp/progmodes/go-ts-mode.el (treesit-node-end): Avoid warning. 2023-01-28 15:42:57 +02:00
Po Lu
f9e32ce157 Implement `restart-emacs' on Android
* java/org/gnu/emacs/EmacsService.java (restartEmacs): New
function.
* src/android.c (struct android_emacs_service)
(android_init_emacs_service): Add new method.
(android_restart_emacs): New function.
* src/android.h: Update prototypes.
* src/emacs.c (Fkill_emacs): Call android_restart_emacs whenever
appropriate.
2023-01-28 21:21:45 +08:00
Po Lu
22749d69e5 Add libtiff support to Android port
* INSTALL.android: Document how to build with libtiff.

* build-aux/ndk-build-helper-1.mk (NDK_SO_NAME):
* build-aux/ndk-build-helper-2.mk (NDK_A_NAME):
* build-aux/ndk-build-helper-4.mk: Decrease number of duplicate
dependencies found.
* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE, PNG_CFLAGS)
(HAVE_TIFF): Allow using libtiff on Android.
* cross/ndk-build/ndk-clear-vars.mk: Undefine additional
variables.
* cross/ndk-build/ndk-resolve.mk: Split CFLAGS resolution from
a-name resolution, and do not recursively add archive or shared
object names for dependencies of shared libraries.

* src/Makefile.in (TIFF_CFLAGS): New variable.
(EMACS_CFLAGS): Use it.
2023-01-28 20:47:26 +08:00
Brian Leung
362678d90e python.el: Use correct regexp when enabling python-ts-mode
* lisp/progmodes/python.el: Use "python[0-9.]*" regexp for
'interpreter-mode-alist', and not 'auto-mode-alist'.  (Bug#61090)
2023-01-28 13:26:53 +02:00
Michael Albinus
0820a81ec7 Tramp cleanup from recent test campaign
* lisp/net/tramp.el (tramp-barf-if-file-missing): Fix docstring.
(tramp-handle-file-directory-p): Don't suppress errors.
(tramp-handle-shell-command):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
Make insertion of a stderr file more robust.

* lisp/net/tramp-archive.el (tramp-archive-handle-directory-files):
Use `tramp-barf-if-file-missing'.

* lisp/net/tramp-sudoedit.el
(tramp-sudoedit-handle-file-name-all-completions): Protect against
errors from `file-directory-p'.

* lisp/net/tramp.el (tramp-wrong-passwd-regexp):
* lisp/net/tramp-adb.el (tramp-adb-prompt):
* lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Unify regexps.

* test/lisp/net/tramp-tests.el (tramp-test48-auto-load)
(tramp-test48-delay-load): Unify regexps.
2023-01-28 10:26:44 +01:00
Po Lu
1ba1f277b6 ; * src/image.c (syms_of_image): Fix typo. 2023-01-28 16:33:50 +08:00
Po Lu
198b8160cf Update Android port
* doc/emacs/android.texi (Android File System): Describe an
easier way to disable scoped storage.
* java/AndroidManifest.xml.in: Add new permission to allow that.
* java/README: Add more text describing Java.
* java/org/gnu/emacs/EmacsContextMenu.java (Item): New fields
`isCheckable' and `isChecked'.
(EmacsContextMenu, addItem): New arguments.
(inflateMenuItems): Set checked status as appropriate.

* java/org/gnu/emacs/EmacsCopyArea.java (perform): Disallow
operations where width and height are less than or equal to
zero.
* lisp/menu-bar.el (menu-bar-edit-menu): Make
execute-extended-command available as a menu item.
* src/androidmenu.c (android_init_emacs_context_menu)
(android_menu_show):
* src/menu.c (have_boxes): Implement menu check boxes.
2023-01-28 16:29:22 +08:00
Eli Zaretskii
76bb46db9d ; * doc/emacs/frames.texi (Mouse References): Improve indexing. 2023-01-28 09:49:53 +02:00
Po Lu
5bd38905ac Set up fontset stuff on Android
* lisp/term/android-win.el (window-system-initialization):
Create default fontset.
2023-01-28 15:25:50 +08:00
Po Lu
32910a0ef0 Fix file descriptor leaks
* src/sfntfont.c (sfntfont_read_cmap):
(sfntfont_open): Fix leaks of file descriptors.
2023-01-28 15:25:29 +08:00
Po Lu
6f2a518f27 Update from gnulib
* cross/lib/stdalign.in.h (_GL_STDALIGN_H):
(_):
(__alignof_is_defined):
* cross/lib/vasnprintf.c:
* lib/gnulib.mk.in (ANDROID_MIN_SDK):
(HAVE_SPAWN_H):
(LIBGCCJIT_LIBS):
(NATIVE_COMPILATION_AOT):
(NEXT_AS_FIRST_DIRECTIVE_LIMITS_H):
(NEXT_LIMITS_H):
(SIZEOF_LONG):
(stdalign.h):
* ../../../../dev/null:
* lib/stdalign.in.h (_GL_STDALIGN_H):
(_):
(__alignof_is_defined):
* lib/vasnprintf.c:
* m4/gnulib-common.m4 (gl_COMMON_BODY):
* m4/stdalign.m4 (gl_ALIGNASOF):
* m4/stddef_h.m4: Update from gnulib.
2023-01-28 14:33:58 +08:00
Po Lu
8732a5bd78 Merge remote-tracking branch 'origin/master' into feature/android 2023-01-28 14:30:27 +08:00
Po Lu
e3b50ec8ec Update Android port
* INSTALL.android: Document support for gnutls and libgmp.
* build-aux/ndk-build-helper-1.mk (NDK_SO_NAMES, NDK_INCLUDES)
(SYSTEM_LIBRARIES):
* build-aux/ndk-build-helper-2.mk: Recursively resolve and add
shared library dependencies; even those of static libraries.
* build-aux/ndk-module-extract.awk: Fix makefile_imports code.
* configure.ac (ANDROID_SDK_18_OR_EARLIER, XCONFIGURE)
(LIBGMP_CFLAGS): Enable GMP and gnutls on Android.

* cross/ndk-build/Makefile.in (LOCAL_EXPORT_C_INCLUDES):
* cross/ndk-build/ndk-build-shared-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix)::($(LOCAL_MODULE_FILENAME)):
* cross/ndk-build/ndk-build-static-library.mk: ($(call
objname,$(LOCAL_MODULE),$(basename $(1))))::($$(error
Unsupported suffix):
* cross/ndk-build/ndk-clear-vars.mk:
* cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
(NDK_LOCAL_EXPORT_C_INCLUDES_$(LOCAL_MODULE)):
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
Implement ``LOCAL_ASM_RULE'' and ``LOCAL_C_ADDITIONAL_FLAGS''
extensions for libgmp.

* doc/emacs/input.texi (Touchscreens): Document how to
horizontally scroll.
* java/org/gnu/emacs/EmacsActivity.java (attachWindow): Give the
view focus again if necessary.
(onPause): Call right super function.
* java/org/gnu/emacs/EmacsPreferencesActivity.java (onClick):
Clear dumpFileName lest Emacs try to load a nonexistent dump
file.
* java/org/gnu/emacs/EmacsView.java (onDetachedFromWindow)
(onAttachedToWindow): Call super functions.
(onCreateInputConnection): Make sure the IME never obscures
Emacs.
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
(onKeyUp): Improve tracking of quit keys.

* lisp/isearch.el (isearch-mode): Bring up the onscreen
keyboard.
* lisp/touch-screen.el (touch-screen-current-tool): Add three
fields.
(touch-screen-handle-scroll): Allow hscrolling as well.
(touch-screen-handle-touch): Add additional fields to
`touch-screen-current-tool'.
* src/Makefile.in (LIBGMP_CFLAGS, EMACS_CFLAGS): Add new
variable.
* src/android.c (android_run_select_thread):
(android_write_event): Use pthread_cond_broadcast because
pthread_cond_signal does nothing on some Android
versions/devices?
2023-01-28 14:29:51 +08:00
Stefan Kangas
cd42244fca Merge from origin/emacs-29
128a999bfe Make project-current not error out inside non-existent dirs
194bc97879 Improve documentation of 'shell-command-dont-erase-buffer'
00629c0396 Fix errors in fontification of JavaScript import-statemen...
fd145499bb Fix fontification TypeScript of import-statements (bug#61...
752c526585 ; Fix typos
2023-01-28 06:30:25 +01:00
Jim Porter
5642bf0b97 Make 'eshell-number-regexp' into a regular defvar
This isn't a very useful thing to customize, since it needs to detect
numbers that can successfully be parsed by 'string-to-number'.
Changes to this variable would therefore likely requiring adjusting
'eshell-convert-to-number' as well.

* lisp/eshell/esh-util.el (eshell-number-regexp): Make into a defvar
and improve the regexp to support more numbers (including infinity and
NaN).

* test/lisp/eshell/esh-util-tests.el
(esh-util-test/eshell-convert-to-number/floating-point)
(esh-util-test/eshell-convert-to-number/floating-point-exponent)
(esh-util-test/eshell-convert-to-number/non-numeric)
(esh-util-test/eshell-convert-to-number/no-convert): New tests.
2023-01-27 18:03:10 -08:00
Jim Porter
dabe0b7d40 Add support for negative indices and index ranges in Eshell
* lisp/eshell/esh-util.el (eshell-integer-regexp): New defvar.

* lisp/eshell/esh-var.el (eshell-parse-indices): Expand docstring.
(eshell-parse-index): New function.
(eshell-apply-indices): Use 'eshell-parse-index' to determine whether
to treat the first index as a regexp.  Simplify the implementation a
bit.
(eshell-index-range): New pcase macro...
(eshell-index-value): ... use it, and restructure the implementation.

* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices):
New function...
(esh-var-test/interp-var-indices/list)
(esh-var-test/interp-var-indices/vector)
(esh-var-test/interp-var-indices/ring)
(esh-var-test/interp-var-indices/split): ... use it.
(esh-var-test/interp-var-string-split-indices)
(esh-var-test/interp-var-regexp-split-indices)
(esh-var-test/interp-var-assoc): Expand tests to cover things that
look like numbers or ranges, but aren't.

* doc/misc/eshell.texi (Variables): Describe how to get all arguments
of the last command.
(Dollars Expansion): Explain negative indices and index ranges.
(Bugs and ideas): Remove now-implemented ideas.

* etc/NEWS: Announce this change.
2023-01-27 18:03:10 -08:00
Dmitry Gutov
128a999bfe Make project-current not error out inside non-existent dirs
* lisp/progmodes/project.el (project-try-vc):
Use condition-case to catch 'file-missing' (bug#61107).

* test/lisp/progmodes/project-tests.el
(project-vc-nonexistent-directory-no-error): New test.
2023-01-28 03:20:29 +02:00
Eli Zaretskii
194bc97879 Improve documentation of 'shell-command-dont-erase-buffer'
* doc/emacs/misc.texi (Single Shell):
* lisp/simple.el (shell-command, shell-command-on-region):
Document that non-nil value of 'shell-command-dont-erase-buffer'
affects what is displayed in the echo area after the command.
(Bug#61100)
2023-01-27 19:01:49 +02:00
Mattias Engdegård
4287d56bad Repair hideif regexp problems
* lisp/progmodes/hideif.el (hif-white-regexp, hif-tokenize):
Avoid superlinear backtracking behaviour by rewriting regexps
to avoid nested repetitions and make positive progress each time.
Use lazy matching of the innards of /*...*/ comments to avoid
matching too much.
2023-01-27 17:27:15 +01:00
Mattias Engdegård
627ac228b2 Don't inhibit LAP-level DCE when switch ops are present
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Allow removal of unreachable basic blocks in the LAP peephole
optimiser even when switch ops are present.  The origins of
this apparently unnecessary condition are unclear.
2023-01-27 17:27:15 +01:00