aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix renaming whole directories with MercurialHEADmasterSean Whitton3 hours2-3/+70
| | | | | | * 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-rename-file): Delete old FIXME.Sean Whitton3 hours1-9/+0
|
* vc-rename-file: New OK-IF-ALREADY-EXISTS parameterSean Whitton3 hours3-12/+54
| | | | | | | | * 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.
* ; vc-test--working-revision: Update for vc-hg changeSean Whitton3 hours1-1/+4
| | | | | | * test/lisp/vc/vc-tests/vc-tests.el (vc-test--working-revision): Recognize '0000000000000000000000000000000000000000' now that vc-hg-working-revision returns changeset hashes.
* New faces 'tab-line-active' and 'tab-line-inactive' (bug#80742)Juri Linkov24 hours7-22/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ; Improve documentation of map.el methodsEli Zaretskii24 hours1-15/+128
| | | | | | | * 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: Another tweak of conditionals for MinGW64.Eli Zaretskii26 hours1-16/+10
|
* ; * doc/emacs/fixit.texi (Transpose): Improve text and indexing.Eli Zaretskii26 hours1-1/+13
|
* ; And one more attempt to fix MinGW64 buildEli Zaretskii28 hours1-4/+4
| | | | | * src/conf_post.h [WINDOWSNT]: Use "#if !FOO" because HAVE_DECL_* are defined to zero.
* ; Another attempt to fix the MinGW64 buildEli Zaretskii28 hours1-3/+10
| | | | * src/conf_post.h [WINDOWSNT]: Add prototype for 'getline'.
* ; Fix MinGW64 build due to missing 'getdelim' prototypeEli Zaretskii30 hours1-0/+8
| | | | | * src/conf_post.h [WINDOWSNT]: Add prototype for 'getdelim'. Reported by Angelo Graziosi <angelo.g0@libero.it>.
* (loaddefs-generate--make-autoload): Avoid `%s` on compound valuesStefan Monnier44 hours1-1/+1
| | | | | * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): Avoid `%s` on compound values.
* SETUP_SYNTAX_TABLE: syntax-propertize more lazily (bug#80600)Stefan Monnier44 hours2-18/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ; Another fix for recent 'dired-readin-insert' changeStephen Berman47 hours1-8/+11
| | | | | * lisp/dired.el (dired-readin-insert): Restore point after searching for Dired buffer entry of 'ls' error file (bug#80499).
* lisp/international/mule.el (auto-coding-alist): Fix name (bug#80818)Stefan Monnier2 days1-1/+1
|
* Fix hangs on MS-Windows when deleting a pipe processEli Zaretskii2 days1-1/+11
| | | | | * src/w32.c (sys_close): Don't close a descriptor from which the reader thread is reading, to avoid hanging Emacs. (Bug#80770)
* Fix MinGW64 build broken by changes in emacsclient.cEli Zaretskii2 days1-2/+0
| | | | | | * 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)
* ; * lisp/vc/vc.el: Note about different file name kinds (bug#80722).Sean Whitton2 days1-0/+6
|
* Revert "; Fix node names in modus-themes.org"Eli Zaretskii2 days1-2/+2
| | | | | This reverts commit d4002877d3b4d7dcc3c7d5e6ecdef10aad06b8a6. It is no longer needed with the latest Org v9.8.2.
* Revert "; Fix last change."Eli Zaretskii2 days1-1/+1
| | | | | This reverts commit 670bb34d91179eef087b6964edb445244180e8f6. It is no longer needed with the latest Org 9.8.2.
* emacsclient receiving long-line fixesPaul Eggert2 days1-10/+26
| | | | | | | | | | | | | | 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.
* emacsclient send_buffer size--Paul Eggert2 days1-1/+1
| | | | | * lib-src/emacsclient.c (send_to_emacs_len): No need to add 1 to SEND_BUFFER_SIZE.
* emacsclient config+sending long-line fixesPaul Eggert2 days1-26/+44
| | | | | | | | | | | 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.
* Update to Org 9.8.2Kyle Meyer3 days5-12/+14
|
* hideshow: New function 'hs-add-cycle-binding' (Bug#80657)Elias Gabriel Perez3 days1-21/+31
| | | | | | | | | 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.
* * lisp/tab-bar.el (tab-bar-show): Support the 0 value (bug#80713).Juri Linkov3 days1-2/+5
| | | | | | | | 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.
* ; * src/xwidget.c (Fmake_xwidget): Fix commentary.Eli Zaretskii3 days1-4/+3
|
* xwidgets: re-enable with newer webkit2gtkDirk-Jan C. Binnema3 days2-3/+11
| | | | | | | | | | | | | 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
* Clean up 'Info-directory-list' after deleting packagePhilip Kaludercic3 days1-0/+3
| | | | | * lisp/emacs-lisp/package.el (package--delete-directory): Remove manual before physically deleting the package. (Bug#80776)
* Fix computation of package description filePhilip Kaludercic3 days1-1/+1
| | | | | | * lisp/subr.el (package--description-file): Do not expect non-numeric version components to be followed directly by a number. (Bug#80744)
* Add face for obsolete packages in package menuPhilip Kaludercic3 days1-1/+6
| | | | | | * 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.
* Add short documentation group for iCalendar libRichard Lawrence3 days8-23/+309
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Improve performance of icalendar-recur.el and its testsRichard Lawrence3 days4-328/+451
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ; * doc/lispintro/emacs-lisp-intro.texi (Files List): Fix typo (bug#80694).Eli Zaretskii3 days1-1/+1
|
* ; Fix last change to 'ls' error message testsStephen Berman4 days2-4/+10
| | | | | | | | | * 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".
* ; * lisp/dired.el (dired-readin-insert): Fix a recent change (bug#80499).Eli Zaretskii4 days1-12/+14
|
* Fix setting and restoring cursor shape on Windows TerminalEli Zaretskii4 days1-10/+31
| | | | | | | * 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.
* Fix display of ambiguous-width characters on MS-Windows terminalEli Zaretskii4 days2-5/+26
| | | | | | | | | | | | * 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)
* Improve tests involving 'ls' error messageStephen Berman4 days2-16/+30
| | | | | | | | * 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).
* Ensure Dired does not list deleted 'ls' error fileStephen Berman4 days2-1/+21
| | | | | | | | * 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.
* Fix face extension in 'visual-line-mode'Eli Zaretskii4 days1-5/+20
| | | | | | | | * 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)
* Handle 'dired' called with -Al switches (bug#80711)Stephen Berman4 days2-12/+8
| | | | | | | | | | | * 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).
* uni-script.el: Fix failure when loading the file directlyStefan Monnier5 days1-9/+10
| | | | | | * lisp/international/textsec.el (textsec--create-script-table): Autoload and don't define while compiling. (uni-script): Require only when loading, not when compiling.
* Don't continue FOR_EACH_FRAME loops after delete_frame (bug#80789)Pip Cet5 days1-3/+13
| | | | | * src/xterm.c (x_connection_closed, x_delete_terminal): Restart FOR_EACH_FRAME loops after deleting one (or potentially more) frames.
* Ensure selected_frame isn't the deleted frame (bug#80789)Pip Cet5 days1-4/+18
| | | | | | | | | | | 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.
* Don't accept dead selected_frame in x_connection_closed (bug#80789)Pip Cet5 days1-2/+3
| | | | | * src/xterm.c (x_connection_closed): Try to restore frame if the selected frame is dead. If that fails, abort.
* ; * etc/MH-E-NEWS: Document the fix for SF#473.Mike Kupfer5 days1-0/+13
|
* Improve previous change.Mike Kupfer5 days1-2/+6
| | | | | * lisp/mh-e/mh-thread.el: Require 'mh-folder. (mh-thread-refile): Update the docstring.
* MH-E: remember destination when refiling a thread (SF#473)Henrique Martins5 days1-1/+4
| | | | | | | | * 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
* src/eval.c (Fdefault_toplevel_value): Improve docstring (bug#80775)Stefan Monnier5 days1-2/+6
|