| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
* lisp/vc/vc-hg.el (vc-hg-rename-file): Use 'hg mv --after'.
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory):
New test.
|
| | |
|
| |
|
|
|
|
|
|
| |
* lisp/vc/vc.el (vc-delete-file): New NOCONFIRM parameter.
(vc-rename-file): New OK-IF-ALREADY-EXISTS parameter.
* lisp/dired-aux.el (dired-rename-file): Pass it.
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test
it. Also test moving files into an existing directory.
|
| |
|
|
|
|
| |
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--working-revision):
Recognize '0000000000000000000000000000000000000000' now that
vc-hg-working-revision returns changeset hashes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is intended to parallel the 'mode-line-active/inactive'
and 'header-line-active/inactive' distinction.
* doc/emacs/display.texi (Standard Faces): Document the new faces.
* lisp/faces.el (tab-line-active, tab-line-inactive): Add new faces.
* lisp/tab-line.el (tab-line-faces): Add new faces
to MEMBERS arg of 'defgroup'.
(tab-line-auto-hscroll): Use one of the faces
depending on 'mode-line-window-selected-p'.
* src/dispextern.h (CURRENT_TAB_LINE_ACTIVE_FACE_ID_3)
(CURRENT_TAB_LINE_ACTIVE_FACE_ID): New macros
based on header-line equivalents.
(CURRENT_TAB_LINE_HEIGHT): Use CURRENT_TAB_LINE_ACTIVE_FACE_ID.
(face_id): Use TAB_LINE_ACTIVE_FACE_ID and
TAB_LINE_INACTIVE_FACE_ID instead of TAB_LINE_FACE_ID.
* src/xdisp.c (window_box_height, pos_visible_p, init_iterator)
(window_text_pixel_size, display_mode_lines, display_mode_line)
(format-mode-line): Replace all uses of TAB_LINE_FACE_ID with
either a new macro or the new face IDs.
* src/xfaces.c (lookup_basic_face, realize_basic_faces):
Map new face IDs to their lisp symbols.
(syms_of_xfaces): New lisp symbols.
|
| |
|
|
|
|
|
| |
* lisp/emacs-lisp/map.el (map-elt, map-delete, map-values)
(map-length, map-copy, map-do, map-values-apply, map-empty-p)
(map-contains-key, map-into, map-insert, map-apply): Doc fixes.
(Bug#80804)
|
| | |
|
| | |
|
| |
|
|
|
| |
* src/conf_post.h [WINDOWSNT]: Use "#if !FOO" because HAVE_DECL_*
are defined to zero.
|
| |
|
|
| |
* src/conf_post.h [WINDOWSNT]: Add prototype for 'getline'.
|
| |
|
|
|
| |
* src/conf_post.h [WINDOWSNT]: Add prototype for 'getdelim'.
Reported by Angelo Graziosi <angelo.g0@libero.it>.
|
| |
|
|
|
| |
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Avoid `%s` on compound values.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many regexps do not pay attention to syntax tables at all
because they don't use things like \s, \b, \<, or \_<.
So delay the actual initialization of the machinery for
`syntax-table` properties (especially the call to `syntax-propertize`)
until the first time we actually need to consult the syntax of
a character.
* src/syntax.c (uninitialized_interval): New constant.
(RE_SETUP_SYNTAX_TABLE_FOR_OBJECT, SETUP_SYNTAX_TABLE):
Set `forw/backward_i` to that new constant to indicate they haven't
actually be initialized yet.
Set `start` and `stop` fields right away, instead of delegating it to
`update_syntax_table`, so that `e_property` and `b_property`
can be set independently.
(update_syntax_table): Remove the `init` argument. Instead, discover
the need for initialization based on the fact that `forw/backward_i`
are uninitialized. Presume `start` and `stop` fields have been
set already.
(parse_sexp_propertize): Update call accordingly.
(update_syntax_table_forward): Remove the `init` argument.
* src/syntax.h (update_syntax_table, update_syntax_table_forward):
Remove the `init` argument.
(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD):
Update calls accordingly.
|
| |
|
|
|
| |
* lisp/dired.el (dired-readin-insert): Restore point after
searching for Dired buffer entry of 'ls' error file (bug#80499).
|
| | |
|
| |
|
|
|
| |
* src/w32.c (sys_close): Don't close a descriptor from which the
reader thread is reading, to avoid hanging Emacs. (Bug#80770)
|
| |
|
|
|
|
| |
* nt/gnulib-cfg.mk (getdelim, getline): Do not omit. It is now
needed for 'emacsclient', but MinGW64 doesn't have it in its runtime
libraries (mingw.org's MinGW does have it). (Bug#80770)
|
| | |
|
| |
|
|
|
| |
This reverts commit d4002877d3b4d7dcc3c7d5e6ecdef10aad06b8a6.
It is no longer needed with the latest Org v9.8.2.
|
| |
|
|
|
| |
This reverts commit 670bb34d91179eef087b6964edb445244180e8f6.
It is no longer needed with the latest Org 9.8.2.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not mishandle long lines, or lines containing NUL,
when receiving data.
* lib-src/emacsclient.c (check_socket_timeout, main):
Use ssize_t for return values from recv,
since in theory the value could exceed INT_MAX now.
(main): Do not use a fixed-size buffer for receiving data;
instead, grow the buffer as needed (admittedly unlikely).
When a partial line is received via recv, do not discard its data;
instead, keep reading, possibly with a grown buffer.
Do not ignore received data after a null byte is received.
Add a comment about when received data is ignored due to a goto.
|
| |
|
|
|
| |
* lib-src/emacsclient.c (send_to_emacs_len):
No need to add 1 to SEND_BUFFER_SIZE.
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not mishandle long lines, or lines containing NUL,
when getting configuration or sending data.
* lib-src/emacsclient.c (send_to_emacs_len, quote_argument_len):
New functions, generalizing the old send_to_emacs and quote_argument.
Rewrite the old functions to use the new ones.
(get_server_config): Do not mishandle long lines in the config file.
(set_tcp_socket): No longer a need to null-terminate auth string.
(main): Do not mishandle long lines from stdin, or lines with NUL.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
https://lists.gnu.org/archive/html/emacs-devel/2026-02/msg00153.html
* lisp/progmodes/hideshow.el (hs-cycle-filter)
(hs-minor-mode-map): Update.
(hs--filter-function, hs-add-cycle-binding): New functions.
(hs-cycle): Minor rework.
|
| |
|
|
|
|
|
|
| |
Add explicit choice for the 0 value to always show the tab bar.
Also add a choice for other non-negative numbers.
In the setter enable 'tab-bar-mode' only for numbers,
but not for the t value that should not enable the tab bar
after customization, only after creating a new tab.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
By disabling hw-acceleration we can re-enable xwidgets with newer
webkit2gtk versions (Bug#80728).
Newer versions were disallowed (Bug#66068) since they abort when a
webkit view is created; however, they work fine as long as we disable
hw-acceleration, since the off-screen windows that xwidgets uses do not
support that.
* configure.ac: Remove upper-bound for webkit2gtk version check.
* src/xwidget.c (Fmake_xwidget): Turn off hardware-acceleration.
Copyright-paperwork-exempt: yes
|
| |
|
|
|
| |
* lisp/emacs-lisp/package.el (package--delete-directory): Remove
manual before physically deleting the package. (Bug#80776)
|
| |
|
|
|
|
| |
* lisp/subr.el (package--description-file): Do not expect
non-numeric version components to be followed directly by a
number. (Bug#80744)
|
| |
|
|
|
|
| |
* lisp/emacs-lisp/package.el (package-status-obsolete): New face.
(package-menu-status-faces): Use new face instead of hard-coding
a font-lock face.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Define a short documentation group and document the major functions:
* lisp/calendar/icalendar-shortdoc.el: New file.
* lisp/calendar/diary-icalendar.el:
* lisp/calendar/icalendar-ast.el:
* lisp/calendar/icalendar-parser.el:
* lisp/calendar/icalendar-recur.el:
* lisp/calendar/icalendar-utils.el: Refer to icalendar-shortdoc.el in
file commentary.
* lisp/calendar/icalendar-macs.el: Ditto, and also mention the macros
for binding values.
* lisp/calendar/icalendar.el: Ditto, and also remove some obsolete
commentary.
Also make some improvements to documentation strings that the above
changes revealed would be helpful:
* lisp/calendar/icalendar-recur.el
(icalendar-recur-recurrences-in-window-w/end-times): Fix broken ref.
(icalendar-recur-current-tz-to-vtimezone): Clarify docstring.
* lisp/calendar/icalendar-parser.el (icalendar-parse): Clarify
docstring.
(Bug#80727)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As discussed in Bug#80520.
* test/lisp/calendar/icalendar-recur-tests.el
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/3)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/29)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/30)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/31)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/33)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/34)
(icalendar-test-rrule-test-rfc5545-sec3.8.5.3/38): Mark tests expensive.
Abstract the implementation of intervals in icalendar-recur.el. Don't
store interval NEXT-LOW when it's the same as HIGH. This reduces
allocations, and shaves about ~20% off the full test suite.
* lisp/calendar/icalendar-recur.el
(icalendar-recur-make-interval)
(icalendar-recur-interval-low)
(icalendar-recur-interval-high)
(icalendar-recur-interval-next): Implement intervals and subintervals as
vectors. Only store NEXT-LOW when it's non-nil.
(icalendar-recur-find-absolute-interval)
(icalendar-recur-find-daily-interval)
(icalendar-recur-find-weekly-interval)
(icalendar-recur-find-monthly-interval)
(icalendar-recur-find-yearly-interval)
(icalendar-recur-next-interval)
(icalendar-recur-previous-interval)
(icalendar-recur-refine-byyearday)
(icalendar-recur-refine-byweekno)
(icalendar-recur-refine-bymonth)
(icalendar-recur-refine-bymonthday)
(icalendar-recur-refine-byday)
(icalendar-recur-refine-byhour)
(icalendar-recur-refine-byminute)
(icalendar-recur-refine-bysecond)
(icalendar-recur-subintervals-to-date-times)
(icalendar-recur-subintervals-to-dates)
(icalendar-recur-recurrences-in-interval)
(icalendar-recur-recurrences-in-window)
(icalendar-recur--key-from-interval): Use new interval constructor and
accessors. Don't generate NEXT-LOW when it's the same as HIGH.
* lisp/calendar/icalendar-utils.el (icalendar-dates-until): Use new
interval constructor and accessors.
* test/lisp/calendar/icalendar-recur-tests.el
(icalendar-test-recur-find-secondly-interval)
(icalendar-test-recur-find-minutely-interval)
(icalendar-test-recur-find-hourly-interval)
(icalendar-test-recur-find-daily-interval-w/date)
(icalendar-test-recur-find-daily-interval-w/date-time)
(icalendar-test-recur-find-weekly-interval-w/date)
(icalendar-test-recur-find-weekly-interval-w/date-time)
(icalendar-test-recur-find-monthly-interval)
(icalendar-test-recur-find-yearly-interval)
(icalendar-test-recur-refine-byyearday)
(icalendar-test-recur-refine-bymonth)
(icalendar-test-recur-refine-bymonthday)
(icalendar-test-recur-refine-byday)
(icalendar-test-recur-refine-byhour)
(icalendar-test-recur-refine-byminute)
(icalendar-test-recur-refine-bysecond)
(icalendar-test-recur-subintervals-to-dates)
(icalendar-test-recur-subintervals-to-date-times)
(icalendar-test-rrule-test): Use new interval constructor and accessors.
Rearrange loops when refining subintervals, so that the loop always runs
once but doesn't run a second no-op iteration. Astonishingly this cuts
the running time of the full test suite by almost 50%.
* lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byyearday)
(icalendar-recur-refine-byweekno)
(icalendar-recur-refine-bymonth)
(icalendar-recur-refine-bymonthday)
(icalendar-recur-refine-byday)
(icalendar-recur-refine-byhour)
(icalendar-recur-refine-byminute)
(icalendar-recur-refine-bysecond): Tighten up loop bounds when refining
subintervals.
Improve performance of `icalendar-recur-tz-observance-on'. This also
brings about a ~20% performance gain.
* lisp/calendar/icalendar-recur.el
(icalendar-recur-tz-observance-on): Eliminate calculation of previous
interval recurrences when it's unnecessary. Add a cheap upper bound check to
prevent fully computing recurrences for irrelevant observances.
(icalendar-recur--w/in-locally-p):
(icalendar-recur--w/in-abs-p): New helper functions for the upper bound check.
Other more minor changes:
Improve performance in `icalendar-recur-refine-byday'
* lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byday): Avoid
calculating Gregorian from absolute date unless it's necessary.
Improve performance of BYSETPOS filtering in icalendar-recur.el:
η-reduce `icalendar-recur-make-bysetpos-filter'.
Thanks to Mattias Engdegård for the suggestion and implementation.
* lisp/calendar/icalendar-recur.el
(icalendar-recur-make-bysetpos-filter): Rename to
`icalendar-recur-bysetpos-filter' and avoid `seq-map-indexed'.
(icalendar-recur-recurrences-in-interval): Use new function.
* test/lisp/calendar/icalendar-recur-tests.el
(icalendar-test-recur-bysetpos-filter): Use new function.
Improve sorting performance:
Thanks to Mattias Engdegård for the suggestion and implementation.
* lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byyearday):
(icalendar-recur-refine-byweekno):
(icalendar-recur-refine-bymonthday):
(icalendar-recur-refine-byday): Use :key instead of :lessp in `sort'
calls.
Eliminate `apply-partially' and `seq-take':
Thanks to Mattias Engdegård for the suggestion and implementation.
* lisp/calendar/icalendar-recur.el
(icalendar-recur-recurrences-in-window): Eliminate `apply-partially'.
(icalendar-recur-recurrences-in-interval): Eliminate
`apply-partially' and replace `seq-take' with `take'.
Reduce consing:
* lisp/calendar/icalendar-recur.el
(icalendar-recur-subintervals-to-dates):
(icalendar-recur-recurrences-in-window):
(icalendar-recur-recurrences-in-window-w/end-times):
(icalendar-recur-recurrences-to-count): Replace `append' with `nconc'.
Avoid a few uses of `seq-filter' in common functions in icalendar-ast.el:
* lisp/calendar/icalendar-ast.el (icalendar-ast-node-children-of):
Reimplement filter imperatively.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* test/lisp/dired-tests.el (dired-test-ls-error-message):
* test/lisp/files-tests.el
(files-tests-file-name-non-special-insert-directory): Use
`string-match-p' instead of `equal' because the error message may
report e.g. "/bin/ls" even though the value of
`insert-directory-program' is "ls".
|
| | |
|
| |
|
|
|
|
|
| |
* src/w32console.c (w32con_set_cursor_size): New function.
(w32con_reset_terminal_modes, w32con_set_terminal_modes)
(Fset_cursor_size): Use it to change cursor shape on Windows
Terminal.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* src/w32console.c (syms_of_ntterm) <w32--terminal-is-conhost>:
New variable.
(initialize_w32_display): Set 'w32--terminal-is-conhost' non-nil
when running on ConHost.
* lisp/international/characters.el (use-cjk-char-width-table):
When Emacs runs on MS-Windows Terminal, behave as if
'cjk-ambiguous-chars-are-wide' were nil even in CJK locales.
(Bug#79298)
|
| |
|
|
|
|
|
|
| |
* test/lisp/dired-tests.el (dired-test-ls-error-message):
* test/lisp/files-tests.el
(files-tests-file-name-non-special-insert-directory): Make test
comparing the expected 'ls' error message with the string in the
'ls' error buffer more robust (bug#80499).
|
| |
|
|
|
|
|
|
| |
* lisp/dired.el (dired--ls-error-file): New variable.
(dired-readin-insert): Use it to find and remove entry in Dired
buffer of already deleted temporary 'ls' error file (bug#80499).
* lisp/files.el (insert-directory): Set it to temporary 'ls' error file.
|
| |
|
|
|
|
|
|
| |
* src/xdisp.c (display_line): Under WORD_WRAP, save and restore
the iterator _before_ the wrap point. This fixes face extension
under 'visual-line-mode', because otherwise 'extend_face_to_end_of_line'
is called with the value of 'it' that corresponds to the first display
element on the next screen line. (Bug#80673)
|
| |
|
|
|
|
|
|
|
|
|
| |
* lisp/dired.el (dired-internal-noselect): After reading in
directory, check whether there was an 'ls' error instead of
checking for file entries, since there may be none is the -Al
switches (or just -l) were used.
(dired--display-ls-error): Ensure the 'ls' error buffer is a live buffer.
* lisp/files.el (insert-directory-clean): Ensure deletion of
"//DIRED-OPTIONS//" line when using -Al switches (or just -l).
|
| |
|
|
|
|
| |
* lisp/international/textsec.el (textsec--create-script-table): Autoload
and don't define while compiling.
(uni-script): Require only when loading, not when compiling.
|
| |
|
|
|
| |
* src/xterm.c (x_connection_closed, x_delete_terminal): Restart
FOR_EACH_FRAME loops after deleting one (or potentially more) frames.
|
| |
|
|
|
|
|
|
|
|
|
| |
The previous code would sometimes exit the loop with frame1 set to the
last considered frame, even if that wasn't a suitable frame to switch
to.
* src/frame.c (delete_frame): Reset 'frame1' in the loops if we don't
match the break condition, so we don't think we've found a suitable
replacement frame if we haven't. Error if, for some reason, that
fails.
|
| |
|
|
|
| |
* src/xterm.c (x_connection_closed): Try to restore frame if the
selected frame is dead. If that fails, abort.
|
| | |
|
| |
|
|
|
| |
* lisp/mh-e/mh-thread.el: Require 'mh-folder.
(mh-thread-refile): Update the docstring.
|
| |
|
|
|
|
|
|
| |
* lisp/mh-e/mh-thread.el (mh-thread-refile): Add an optional argument
'dont-update-last-destination-flag'. If it is nil, update
'mh-last-destination' and 'mh-last-destination-folder'.
Copyright-paperwork-exempt: yes
|
| | |
|