summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add support for more EBCDIC code pages IBM2XXTimo Myyrä2020-12-254-0/+206
| | | | | | | | | | | | | There was already charset file present in etc/charsets for IBM2XX character sets but there wasn't definitions for them in Emacs. Add character set and coding system definitions for them. * lisp/language/japanese.el (ibm281, ibm290): * lisp/language/european.el (ibm256, ibm273, ibm274, ibm277) (ibm278, ibm280, ibm284, ibm285, ibm297): * lisp/language/english.el (ibm275): New coding systems. * lisp/international/mule-conf.el (ibm256, ibm273, ibm274) (ibm275, ibm277, ibm278, ibm280, ibm281, ibm284, ibm285, ibm290) (ibm297): New charsets.
* Don't compile Gnulib's 'free' on MinGWEli Zaretskii2020-12-251-0/+4
| | | | | * nt/mingw-cfg.site (gl_cv_func_free_preserves_errno): Set to "yes" to avoid compiling Gnulib's free.c in the MinGW build.
* Revert "Import posix_spawn from Gnulib."Eli Zaretskii2020-12-2527-3612/+1
| | | | | | This reverts commit 3ba34141da77a24c251ee6530f3f72a366fe556e. It breaks the MinGW build and should be first tested on a branch.
* Revert "Use posix_spawn if possible."Eli Zaretskii2020-12-252-150/+2
| | | | | | This reverts commit 2c79a8f9210db01c86b0e5f236adeb0509519d30. It breaks the MinGW build in too many ways, and should be first tested on a branch.
* Use posix_spawn if possible.Philipp Stephani2020-12-252-2/+150
| | | | | | | | | | | | posix_spawn is less error-prone than vfork + execve, and can make better use of system-specific enhancements like 'clone' on Linux. Use it if we don't need to configure a pseudoterminal. * src/Makefile.in (LIB_POSIX_SPAWN): New variable. (LIBES): Use it. * src/callproc.c (emacs_spawn): Use posix_spawn on Unix-like system if we don't need to set up a pseudoterminal.
* Import posix_spawn from Gnulib.Philipp Stephani2020-12-2527-1/+3612
| | | | | | | | | | | | | | posix_spawn is less error-prone than vfork + exec, and can make use of system-specific optimizations like `clone' on Linux. Import Gnulib replacement so that we can use recent additions like `posix_spawn_file_actions_addchdir'. The only manual change are to admin/merge-gnulib and .gitignore. All other changes are due to rerunning merge-gnulib. * admin/merge-gnulib (GNULIB_MODULES): Add posix_spawn-related modules. * .gitignore: Add new generated files.
* Update Gnulib.Paul Eggert2020-12-2513-121/+369
| | | | | All changes in this commit are autogenerated by running admin/merge-gnulib.
* Adjust test_module to recent Gnulib changesPaul Eggert2020-12-251-0/+1
| | | | | * test/Makefile.in ($(test_module)): Also compile lib/free.c if it is needed to define rpl_free.
* Adjust to recent Gnulib changesPaul Eggert2020-12-257-67/+31
| | | | | | | | | | | | | | | | | | | | | | The latest Gnulib merge brought in free-posix, which causes 'free' to preserve errno. This lets us simplify some Emacs code that calls 'free'. * admin/merge-gnulib (GNULIB_MODULES): Add free-posix. This module is pulled in by canonicalize-lgpl anyway, so we might as well rely on it. * lib-src/emacsclient.c (get_current_dir_name): Sync better with src/sysdep.c. * lib-src/etags.c (process_file_name, etags_mktmp): * lib-src/update-game-score.c (unlock_file): * src/fileio.c (file_accessible_directory_p): * src/sysdep.c (get_current_dir_name_or_unreachable): Simplify by assuming that 'free' preserves errno. * src/alloc.c (malloc_unblock_input): Preserve errno, so that xfree preserves errno. * src/sysdep.c (get_current_dir_name_or_unreachable): Simplify by using strdup instead of malloc+memcpy. No need for realloc (and the old code leaked memory anyway on failure); just use free+malloc.
* Pacify gcc 10.2 -Wanalyzer-null-argument in gtkutil.cPaul Eggert2020-12-251-5/+2
| | | | | | | * src/gtkutil.c (xg_item_label_same_p): Simplify. Without this simplification, GCC (Ubuntu 10.2.0-13ubuntu1) -Wanalyzer-null-argument complains about use of NULL where non-null expected as argument of strcmp.
* cperl-mode: Correctly syntax highlight index/value array slicesE. Choroba2020-12-251-1/+1
| | | | | | | * lisp/progmodes/cperl-mode.el (cperl-init-faces): %array[0, 1] should use the array face, not the hash one (bug#45373). Copyright-paperwork-exempt: yes
* Make `remove-hook' interactiveThibault Polge2020-12-252-1/+29
| | | | | * lisp/subr.el (remove-hook): Make `remove-hook' interactive (bug#45393).
* Allow `string-limit' to work on encoded stringsLars Ingebrigtsen2020-12-254-7/+59
| | | | | | | * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/subr-x.el (string-limit): Allow limiting on encoded strings.
* Remove `string-slice' -- it's not very well definedLars Ingebrigtsen2020-12-255-36/+1
| | | | | | * doc/lispref/strings.texi (Creating Strings): Ditto. * lisp/emacs-lisp/subr-x.el (string-slice): Remove.
* Unbreak the build on *BSD and Macos after previous gnulib mergeLars Ingebrigtsen2020-12-241-1/+1
| | | | | | * lib/Makefile.in (DEPFLAGS): Unbreak build on BSD derivatives by writing all deps files into a single directory (instead of deps/malloc/*.c).
* ; * src/callproc.c (emacs_spawn) [!WINDOWSNT]: Fix last change.Eli Zaretskii2020-12-241-2/+2
|
* Fix the MinGW build broken by Gnulib updateEli Zaretskii2020-12-241-0/+2
| | | | | | * nt/mingw-cfg.site (gl_cv_func_readlink_trailing_slash) (gl_cv_func_readlink_truncate): Define to "yes" to avoid compiling readlink.c.
* Unbreak the MinGW build broken by recent changes in callproc.cEli Zaretskii2020-12-245-48/+37
| | | | | | | | | | | | | | | * src/w32.h (set_process_dir): * src/w32proc.c (set_process_dir): Change the argument to 'const char *'. * src/lisp.h (make_environment_block): * src/callproc.c (make_environment_block): Now returns 'char **'. (exec_failed) [DOS_NT]: Remove unused function. * src/callproc.c (child_setup): NEW_ARGV and ENV are now 'char **'. Making them 'const' breaks the MinGW build and is not needed for other platforms. * src/callproc.c (emacs_spawn): ARGV and ENVP arguments are now 'char *', for the same reason. * src/process.c (create_process): Adapt to above changes.
* Update Gnulib.Philipp Stephani2020-12-2462-855/+2547
| | | | | All changes in this commit are autogenerated by running admin/merge-gnulib.
* Ensure that Gnulib objects in subdirectories are built correctly.Philipp Stephani2020-12-241-1/+1
| | | | * lib/Makefile.in (.c.o): Add missing -o option.
* Centralize subprocess creation in a single function.Philipp Stephani2020-12-243-223/+202
| | | | | | | | | | | | | | | | | | | | Getting the vfork + execve combination right isn't easy, and the code was partially duplicated between callproc.c and process.c. Centralize the spawn operation in a single function that deals with the nasty details. Going forward, we should be able to use posix_spawn from either libc or Gnulib (or CreateProcessW on Windows) in the non-pty case. * src/callproc.c (emacs_spawn): New function to start an asynchronous subprocess. Merge code from 'call_process' and 'create_process' into this function. (call_process): Use new 'emacs_spawn' function. (child_setup): Make static, since there are no users outside this compilation unit left. (CHILD_SETUP_TYPE): Move from header file, since there are no users outside this compilation unit left. * src/process.c (create_process): Use new 'emacs_spawn' function.
* CC Mode: introduce a new cache for brace structures. This fixes bug #45248Alan Mackenzie2020-12-242-100/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | | Also fix three infinite loops. The new cache accelerates backward searches for struct beginnings in c-looking-at-or-maybe-in-bracelist. * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): In the final loop over unary operators, add a check (> (point) lim) to avoid certain infinite loops. (c-beginning-of-decl-1): In the first loop add a similar check on point and lim. (c-laomib-loop): New function extracted from c-looking-at-or-maybe-in-bracelist. (c-laomib-cache): New buffer local variable. (c-laomib-get-cache, c-laomib-put-cache, c-laomib-fix-elt) (c-laomib-invalidate-cache): New functions which implement the cache. (c-looking-at-or-maybe-in-bracelist): Replace two invocations of c-go-up-list-backwards with calls to c-parse-state. Extract the new function c-laomib-loop. Insert code which calls c-laomib-loop minimally, with the help of the new cache. * lisp/progmodes/cc-mode.el (c-basic-common-init): Initialise the new cach (at mode start). (c-before-change): Invalidate the new cache. (c-fl-decl-start): Add an extra check (> (point) bod-lim) to prevent looping. Determine the enclosing brace to pass as arguments to c-looking-at-or-maybe-in-bracelist.
* * src/dispnew.c (sit_for): Fix bug#45292Stefan Monnier2020-12-231-0/+9
| | | | | When reading, prefer staying in the selected-window over preserving the current-buffer.
* * lisp/emacs-lisp/lisp-mnt.el (lm-section-end): Stop at the right headingStefan Monnier2020-12-231-0/+2
| | | | | `lisp-outline-level` assumes the match-data is that set by `outline-regexp`.
* authinfo-mode: add option to not hide any elements (and add font-lock)TEC2020-12-232-8/+41
| | | | | | | | | * lisp/auth-source.el (authinfo-hide-elements): New user option. (authinfo--keywords): New variable. (authinfo-mode): Use it. (authinfo--hide-passwords): Use doc-face instead of warning for the passwords. (authinfo--toggle-display): Ditto.
* * lisp/tab-line.el: New options, faces, and functionsAdam Porter2020-12-232-6/+71
| | | | | | | | | | | | | | * lisp/tab-line.el: (tab-line-tab-face-functions): New option. (tab-line-tab-inactive-alternate): New face. (tab-line-tab-special): New face. (tab-line-tab-face-inactive-alternating): New function. (tab-line-tab-face-special): New function. (tab-line-format-template): Use them. * etc/NEWS: Update. With thanks to Juri Linkov and Eli Zaretskii for their guidance.
* Declare argument vector as char *const *.Philipp Stephani2020-12-232-4/+4
| | | | | | This matches the signature of execve. * src/callproc.c (child_setup): Declare NEW_ARGV as char *const *.
* * .clang-format (ColumnLimit): Fix line length.Philipp Stephani2020-12-231-1/+1
|
* Pass C string pointer to current directory to 'child_setup'.Philipp Stephani2020-12-233-10/+14
| | | | | | | | | | | This avoids the impression that 'child_setup' could do anything Lisp-related. * src/callproc.c (child_setup): Pass C pointer to current directory name. (call_process): Adapt callers. * src/process.c (create_process): Adapt callers.
* Allocate environment block before forking.Philipp Stephani2020-12-233-118/+138
| | | | | | | | | | | | | | | | While 'child_setup' carefully avoids calls to async-signal-unsafe functions like 'malloc', it seems simpler and less brittle to use normal allocation outside the critical section between 'fork' and 'exec'. * src/callproc.c (make_environment_block): New function to create the environment block for subprocesses. Code largely extracted from 'child_setup' and adapted to use 'xmalloc' instead of 'alloca'. (child_setup): Remove environment block allocation in favor of passing the environment block as command-line argument. (call_process): Adapt to new calling convention. * src/process.c (create_process): Adapt to new calling convention.
* Reject filenames containing NUL bytes.Philipp Stephani2020-12-233-2/+26
| | | | | | | | | | | | | | | Such filenames are dangerous, as Emacs would silently only use the part up to the first NUL byte. Reject them explicitly instead. * src/coding.c (encode_file_name_1): New helper function. (encode_file_name): Check that encoded filename doesn't contain a NUL byte. (syms_of_coding): Define 'filenamep' symbol. * test/src/fileio-tests.el (fileio-tests/null-character): New unit test. * etc/NEWS: Document change.
* Remove an unused parameter from 'child_setup' function.Philipp Stephani2020-12-233-9/+7
| | | | | | | * src/callproc.c (child_setup): Remove unused SET_PGRP parameter. * src/callproc.c (call_process): * src/process.c (create_process): Fix all callers.
* Show image as text when trying to search/replace in image buffer (bug#25905)Juri Linkov2020-12-231-0/+11
| | | | | | * lisp/image-mode.el (image-mode-isearch-filter): New function. (image-mode--setup-mode): Use it to add it as :before-while to isearch-filter-predicate.
* Improve the string-limit doc stringLars Ingebrigtsen2020-12-232-1/+8
| | | | | * lisp/emacs-lisp/subr-x.el (string-limit): Mention truncate-string-to-width in the doc string.
* Allow string-slice to take zero-length matchesLars Ingebrigtsen2020-12-232-14/+13
| | | | | * lisp/emacs-lisp/subr-x.el (string-slice): Allow zero-length matches. Code adapted from s.el by Magnar Sveen.
* Revert recent server.el frame-focus changesLars Ingebrigtsen2020-12-231-3/+3
| | | | | | | * lisp/server.el (server-switch-buffer, server-execute): Revert 9cef8fc8cdb5e6e18c9cf617eed3808d67ca340e and c5f2eb56c0164e87abc881955552e0b718921186. This change led to regressions in non-new-frame circumstances.
* Handle gracefully href="" in base tags in shrŁukasz Stelmach2020-12-231-2/+3
| | | | | | * net/shr.el (shr-tag-base): shr-parse-base can't handle empty strings gracefully. Don't call it unless href is a non-empty string (bug#45355).
* Fix use of obsolete 'emergency' warning levelStefan Kangas2020-12-231-1/+1
| | | | | * src/alloc.c (display_malloc_warning): Use new style ':emergency' warning level instead of obsolete 'emergency'.
* Fix use of obsolete 'error' warning levelZajcev Evgeny2020-12-231-1/+1
| | | | | * src/fileio.c (auto_save_error): Use new style ':error' warning level instead of obsolete 'error'.
* Use new NSString lisp methodsAlan Third2020-12-226-36/+16
| | | | | | | | | | | | | | | | | | * src/nsfont.m (ns_otf_to_script): (ns_registry_to_script): (ns_get_req_script): Use NSString conversion methods. * src/nsimage.m ([EmacsImage allocInitFromFile:]): Use NSString conversion methods. * src/nsmenu.m (ns_menu_show): Use NSString conversion methods. * src/nsselect.m (symbol_to_nsstring): (ns_string_to_pasteboard_internal): Use NSString conversion methods. * src/nsterm.m (ns_term_init): ([EmacsView initFrameFromEmacs:]): Use NSString conversion methods. * src/nsxwidget.m (nsxwidget_webkit_uri): (nsxwidget_webkit_title): (js_to_lisp): Use NSString conversion methods. (build_string_with_nsstr): Functionality replaced by NSString extensions.
* Align the word "Function" in profiler's headers over the actual functionsAlan Mackenzie2020-12-221-2/+2
| | | | | * lisp/profiler.el (profiler-report-render-calltree-1): Replace two occurrences of "Function" with " Function".
* Ensure that Gnus servers are open(able) before searching themEric Abrahamsen2020-12-221-2/+3
| | | | | | | | | | * lisp/gnus/gnus-search.el (gnus-search-run-search): Imap servers need to be opened (made into the "current server") before we manipulate the nnimap-buffer. (gnus-search-run-search): Sneakily fix regexp. (gnus-search-indexed-parse-output): We need to pass the server name in here, otherwise nnmaildir won't know how to make this the "current server".
* Align profiler's header-line-format to column 0, to work correctly on tty'sAlan Mackenzie2020-12-221-2/+6
| | | | | * lisp/profiler.el (profiler-report-header-line-format): Propertize the first space with 'display '(space :align-to 0).
* Re-order the items in `profiler-report' output.Alan Mackenzie2020-12-223-17/+32
| | | | | | | | | | | | | | | | | | | Putting the usage figures first on the line will eliminate the truncation of function names. lisp/profiler.el (profiler-version): Change to "28.1". (profiler-format): Enhance, so that a width of zero means print the string without padding or truncation. (profiler-report-cpu-line-format, profiler-report-memory-line-format): Amend for the new layout. The number of places for the cpu samples has been reduced from 19 to 12 (enough for ~30 years at 1,000 samples per second). (profiler-report-line-format, profiler-report-describe-entry): Amend for the new order of arguments to profiler-format. etc/NEWS (Specialized Modes): Add an entry documenting this change. doc/lispref/debugging.texi (Profiling): Describe the new ordering of the items in place of the old ordering.
* Reorganize Tramp header linesMichael Albinus2020-12-222-8/+8
| | | | | | * lisp/net/tramp.el: Move header lines Version, Package-Requires, Package-Type and URL ... * lisp/net/trampver.el: ... here.
* ; Fix docstrings in last change to subr-x.elBasil L. Contovounesios2020-12-221-3/+3
|
* Fix wdired-get-filename when ls -F marks symlinksDaniel Martín2020-12-221-1/+4
| | | | | | | | * lisp/wdired.el (wdired-get-filename): In some systems like BSD or macOS, "ls -F" marks symlinks with a trailing "@". Add logic accounting for this so that wdired-get-filename returns the correct filename. This change also fixes test "wdired-test-bug34915" on macOS and BSD systems (bug#34915).
* Make string-pad take an optional START parameterLars Ingebrigtsen2020-12-224-12/+14
| | | | | * lisp/emacs-lisp/subr-x.el (string-pad): Alter the calling convention.
* Change the string-limit parameter semanticsLars Ingebrigtsen2020-12-224-19/+22
| | | | | * lisp/emacs-lisp/subr-x.el (string-limit): Alter the calling convention.
* Further string-clean-whitespace tweaksLars Ingebrigtsen2020-12-222-2/+2
| | | | | * lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Put \r back, which was mistakenly removed.