aboutsummaryrefslogtreecommitdiffstats
path: root/test/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add facility to make module functions interactive (Bug#23486).Philipp Stephani2020-09-131-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Adapt some tests for Emacs's excitingly variable quoting formatGlenn Morris2020-09-122-2/+4
| | | | | | | | * test/lisp/subr-tests.el (subr-test-version-parsing): * test/lisp/emacs-lisp/gv-tests.el (gv-dont-define-expander-other-file): * test/src/callint-tests.el (call-interactively/incomplete-multibyte-sequence): * test/src/emacs-module-tests.el (module/describe-function-1): Don't fail if curly quotes are in use, as they can be if LC_ALL != C.
* Fix 'expand-file-name' for remote filesEli Zaretskii2020-09-031-37/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts most of commit 14fb657ba82da346d36f05f88da26f1c5498b798 and its followup fixes, and instead fixes the original bugs in a different manner that doesn't affect any unrelated use cases. As part of this, the code which caused 'expand-file-name' to enforce a trailing slash on expanded directories is removed, as this kind of semantic processing is outside of 'expand-file-name's scope. * src/fileio.c (Fexpand_file_name): If expanding default_directory yields a remote file name, call its handlers. (Bug#26911) (Bug#34834) * doc/lispref/files.texi (File Name Expansion): Remove the requirement that expanding a directory name yields a directory name, i.e. that the expansion must end in a slash. * etc/NEWS: Remove the announcement of the changed behavior of 'expand-file-name' wrt trailing slashes. * test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash) (fileio-tests--expand-file-name-trailing-slash): Remove tests. * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name): No need to expect different results in Emacs 28 and later.
* Use lexical-binding in more testsStefan Kangas2020-08-292-6/+6
| | | | | | | | | | | | | | | | | * test/lib-src/emacsclient-tests.el: * test/lisp/emacs-lisp/hierarchy-tests.el: * test/lisp/eshell/eshell-tests.el: * test/lisp/gnus/gnus-util-tests.el: * test/lisp/progmodes/js-tests.el: * test/lisp/textmodes/bibtex-tests.el: * test/src/editfns-tests.el: * test/src/fns-tests.el: Use lexical-binding. * test/lisp/emacs-lisp/hierarchy-tests.el (hierarchy-leafs-includes-lonely-roots): * test/src/editfns-tests.el (transpose-test-get-byte-positions): * test/src/fns-tests.el (fns-tests-func-arity): Adjust for lexical-binding.
* Mark failing fileio test on MS-WindowsPaul Eggert2020-08-291-0/+3
| | | | | * test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash): Expect failure on MS-Windows.
* * test/src/fileio-tests.el: Preserve HOME when a test failsMattias Engdegård2020-08-281-6/+4
|
* Fix most of fileio-tests on MS-WindowsEli Zaretskii2020-08-281-7/+23
| | | | | | * test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash) (fileio-tests--expand-file-name-trailing-slash): Account for drive letters in MS-Windows/MS-DOS file names. (Bug#26911)
* Fix recently-introduced expand-file-name bugPaul Eggert2020-08-271-0/+8
| | | | | | | | | | | | | | The bug was that (expand-file-name "~") returned something like "/home/eggert/" instead of "/home/eggert". Problem reported by Mattias Engdegård (Bug#26911#27). * src/fileio.c (Fexpand_file_name): When concatenating NEWDIR to NM, instead of stripping trailing slashes from NEWDIR (which can turn non-symlinks into symlinks), strip leading slashes from NM. This also simplifies the code by removing no-longer-needed DOS_NT special-casing. Also, remove an unnecessary ‘target[length] = 0;’ as that byte will be overwritten by the next memcpy anyway. * test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash): New test.
* ; Fix license statements.Stefan Kangas2020-08-279-27/+39
|
* Fix expand-file-name symlink-to-dir bugPaul Eggert2020-08-261-0/+11
| | | | | | | | | | | | | | | Problem reported by Yegor Timoshenko (Bug#26911), and I ran into it myself recently in normal-top-level. * doc/lispref/files.texi (File Name Expansion), etc/NEWS: Mention this. * src/fileio.c (Fexpand_file_name): Expand "/a/b/." to "/a/b/" not "/a/b", to avoid misinterpreting a symlink "/a/b". Similarly, expand "/a/b/c/.." to "/a/b/" not "/a/b". * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name): Adjust to match new behavior. (tramp-test05-expand-file-name-relative): This test now succeeds, at least on Fedora 31. * test/src/fileio-tests.el: (fileio-tests--expand-file-name-trailing-slash) New test.
* Fix recently-introduced Fdelete bugPaul Eggert2020-08-151-0/+1
| | | | | | | | | Problem reported by Pip Cet in: https://lists.gnu.org/r/emacs-devel/2020-08/msg00444.html * src/fns.c (Fdelete): Fix correctness bug via a simpler (though more memory-intensive) approach. It’s probably not worth optimizing the memory usage yere. * test/src/fns-tests.el (test-vector-delete): Add test for the bug.
* Minimize ‘equal’ calls in (delete x vector)Paul Eggert2020-08-151-0/+5
| | | | | | | | | * src/fns.c (Fdelete): When deleting from a vector, call Fequal only once per vector element. This is faster when Fequal is slow, and avoids the need to preinitialize the vector result. Finish when the result is exhausted, not when the input is exhausted; the two are equivalent but the former may be faster. * test/src/fns-tests.el (test-vector-delete): New test.
* * test/src/emacs-module-tests.el: Use proper outline headings.Jonas Bernoulli2020-08-131-15/+6
| | | | | | This library already used section headings but it used just two instead of three semicolons, making them indistinguishable from plain comments.
* Merge from origin/emacs-27Glenn Morris2020-07-291-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | 1fc742b63e ; Update ChangeLog.3 4c7f6217da * etc/AUTHORS: Update. 24391f517a Update authors.el 56f958807c * etc/NEWS: Remove temporary markup. 73a2f51043 Add another test for global module references # Conflicts: # etc/AUTHORS # etc/NEWS
| * Add another test for global module referencesPhilipp Stephani2020-07-261-0/+3
| | | | | | | | | | | | | | | | | | * test/src/emacs-module-tests.el (mod-test-globref-reordered): New unit test. * test/data/emacs-module/mod-test.c (Fmod_test_globref_reordered): New test module function. (emacs_module_init): Export it.
| * Backport: add another test case for module assertions.Philipp Stephani2020-07-261-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | This backports commit 9f01ce6327 from master. Since the bug isn’t present on emacs-27, just backport the new test case. * test/data/emacs-module/mod-test.c (Fmod_test_globref_invalid_free): New test module function. (emacs_module_init): Export it. * test/src/emacs-module-tests.el (module--test-assertions--globref-invalid-free): New unit test.
| * Backport: Add module test for edge case.Philipp Stephani2020-07-261-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | This backports commit 6355a3ec62 from master. Since the bug isn’t present in emacs-27, just backport the test case. * test/data/emacs-module/mod-test.c (Fmod_test_invalid_store_copy): New test module function. (emacs_module_init): Export it. * test/src/emacs-module-tests.el (module--test-assertions--load-non-live-object-with-global-copy): New unit test.
* | Make checking for liveness of global values more precise.Philipp Stephani2020-07-251-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't just use a hash lookup because a global and a local reference might refer to the same Lisp object. * src/emacs-module.c (module_free_global_ref): More precise check for global liveness. * test/data/emacs-module/mod-test.c (Fmod_test_globref_invalid_free): New test module function. (emacs_module_init): Export it. * test/src/emacs-module-tests.el (module--test-assertions--globref-invalid-free): New unit test.
* | Fix subtle bug when checking liveness of module values.Philipp Stephani2020-07-251-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't simply look up the Lisp object in the global reference table because an invalid local and a valid global reference might refer to the same object. Instead, we have to test the address of the global reference against the stored references. * src/emacs-module.c (module_global_reference_p): New helper function. (value_to_lisp): Use it. * test/data/emacs-module/mod-test.c (Fmod_test_invalid_store_copy): New test module function. (emacs_module_init): Export it. * test/src/emacs-module-tests.el (module--test-assertions--load-non-live-object-with-global-copy): New unit test.
* | Fix out-of-source ‘make check’ emacs-module-testsPaul Eggert2020-07-091-0/+3
| | | | | | | | | | | | | | | | | | Problem reported by Koki Fukuda in: https://lists.gnu.org/r/emacs-devel/2020-07/msg00169.html * test/Makefile.in (MODULE_CFLAGS): Include from the same directories included from in ../src. * test/src/emacs-module-tests.el (module/describe-function-1): Strip path to source directory.
* | Merge from origin/emacs-27Glenn Morris2020-07-071-0/+12
|\ \ | |/ | | | | | | | | | | | | 59e768d64a Fix undefined behavior in json.c (Bug#42113) cce00bef03 Fix ACTION argument of 'display-buffer' call in gud.el 0121db2702 * src/keyboard.c (Fclear_this_command_keys): Doc fix. b9abf5ceb2 Improve do string of 'man' b87fc938a0 ; * src/xdisp.c (pos_visible_p): Yet another minor fix for...
| * Fix undefined behavior in json.c (Bug#42113)Philipp Stephani2020-06-291-0/+12
| | | | | | | | | | | | | | | | * src/json.c (lisp_to_json_toplevel_1, Fjson_parse_string): Check whether input strings are actually strings. * test/src/json-tests.el (json-parse-string/wrong-type) (json-serialize/wrong-hash-key-type): New regression tests.
* | * test/src/fns-tests.el (test-secure-hash): Test getrandom format.Paul Eggert2020-06-291-3/+5
| |
* | Minor improvements as followup to recent RGB string-parsing changeEli Zaretskii2020-06-221-13/+13
| | | | | | | | | | | | | | | | | | | | | | * src/xfaces.c (Finternal_color_values_from_color_spec): Rename to... (Fcolor_values_from_color_spec): ...this. Callers changed. Rename the argument to SPEC and improve the doc string. (parse_color_spec, parse_float_color_comp, parse_hex_color_comp): Improve commentary. (parse_color_spec): Rename the argument S to SPEC. * etc/NEWS: Mention 'color-values-from-color-spec'.
* | Consolidate #RGB string parsersMattias Engdegård2020-06-211-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a single parser of color strings in the #RGB, rgb:R/G/B and rgbi:R/G/B formats, replacing four existing ones. Previously, error-checking was spotty, handling of the rgbi: format not always present, and normalization of the result was sometimes incorrect. * src/dispextern.h: New prototype. * src/xfaces.c (parse_hex_color_comp, parse_float_color_comp) (parse_color_spec, Finternal-color_values_from_color_spec): New functions. * test/src/xfaces-tests.el (xfaces-internal-color-values-from-color-spec): New test. * lisp/term/tty-colors.el (tty-color-standard-values): Use internal-color-values-from-color-spec, replacing old parser. * src/nsterm.m (ns_get_color): * src/w32fns.c (x_to_w32_color): * src/xterm.c (x_parse_color): Use parse_color_spec, replacing old parsers. (HEX_COLOR_NAME_LENGTH): Remove #define.
* | Silence some warnings in testsBasil L. Contovounesios2020-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/package-tests.el (package-test-suffix-matches): Evaluate lambda. (package-test-list-filter-marked): * test/lisp/vc/vc-tests.el (vc-test--run-maybe-unsupported-function): * test/src/undo-tests.el (undo-test-skip-invalidated-markers): Silence "unused local variable" warnings. * test/lisp/imenu-tests.el (imenu-simple-scan-deftest): Fix docstring. Don't shadow global major-mode.
* | Merge from origin/emacs-27Glenn Morris2020-06-072-3/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 35661ef943 (origin/emacs-27) Fix typo in "(elisp) Type Keywords" 1af0e95fec Gnus nnir-summary-line-format has no effect dd366b5d3b Improve documentation of 'window-text-pixel-size' fbd49f969e * src/xdisp.c (Fwindow_text_pixel_size): Doc fix. (Bug#41... d8593fd19f Minor improvements to EDE and EIEIO manuals 3916e63f9e Have Fido mode also imitate Ido mode in ignore-case options cc35b197c7 Update package-menu-quick-help bf09106256 Improve documentation of 'sort-subr' 73749efa13 Update Ukrainian transliteration 30a7ee505a Fix Arabic shaping when eww/shr fill the text to be rendered 7d323f07c0 Silence some byte-compiler warnings in tests cf473e742f * test/lisp/battery-tests.el: New file. b07e3b1d97 Improve format-spec documentation (bug#41571) # Conflicts: # test/lisp/emacs-lisp/package-tests.el
| * Silence some byte-compiler warnings in testsBasil L. Contovounesios2020-06-032-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/cl-generic-tests.el: * test/lisp/progmodes/elisp-mode-tests.el: Declare functions referred to within macroexpansions. (xref-elisp-overloadable-no-default) (xref-elisp-overloadable-co-located-default) (xref-elisp-overloadable-separate-default): Prefix unused arguments with underscore. * test/lisp/international/ccl-tests.el: * test/lisp/wdired-tests.el: * test/lisp/emacs-lisp/package-tests.el: Declare functions used. (package-test-update-archives, package-test-signed): Use revert-buffer in place of its obsolete alias package-menu-refresh. * test/lisp/eshell/eshell-tests.el: * test/lisp/mail/footnote-tests.el: * test/src/buffer-tests.el: Require dependencies used. * test/lisp/image/exif-tests.el: Remove unneeded (require 'seq). (test-exit-direct-ascii-value): Actually perform the test. * test/lisp/progmodes/sql-tests.el (sql-test-add-existing-product): Fix typo. * test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer): * test/src/data-tests.el (test-bool-vector-bv-from-hex-string) (test-bool-vector-apply-mock-op): Remove unused local variables.
* | ; * test/src/xfaces-tests.el (xfaces-color-distance): Fix bug idMattias Engdegård2020-06-041-1/+1
| |
* | Make color-distance symmetric and more accurateMattias Engdegård2020-06-031-0/+27
| | | | | | | | | | | | | | * src/xfaces.c (color_distance): Don't throw away the low 8 bits of the colours, and make the function symmetric (bug41544) (Fcolor_distance): Add caution about this not being a true metric. * test/src/xfaces-tests.el: New file.
* | Add test for recent buffer-local-variables changeGlenn Morris2020-05-181-0/+6
| | | | | | | | | | * test/src/buffer-tests.el (buffer-tests-buffer-local-variables-undo): New.
* | Don’t attempt to modify constant consesPaul Eggert2020-05-161-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From a patch privately suggested by Mattias Engdegård on 2020-05-11 in a followup to Bug#40671. * admin/charsets/cp51932.awk: * admin/charsets/eucjp-ms.awk: Generate code that does not modify constant conses. * doc/misc/emacs-mime.texi (Encoding Customization): * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-free-ops): * lisp/frameset.el (frameset-persistent-filter-alist): * lisp/gnus/gnus-sum.el (gnus-article-mode-line-format-alist): Use append instead of nconc. * lisp/language/japanese.el (japanese-ucs-cp932-to-jis-map) (jisx0213-to-unicode): Use mapcar instead of mapc. * lisp/language/lao-util.el (lao-transcription-consonant-alist) (lao-transcription-vowel-alist): * lisp/language/tibetan.el (tibetan-subjoined-transcription-alist): Use copy-sequence. * test/src/fns-tests.el (fns-tests-nreverse): (fns-tests-sort, fns-tests-collate-sort) (fns-tests-string-version-lessp, fns-tests-mapcan): Use copy-sequence, vector, and list.
* | Use lexical-binding in most src testsStefan Kangas2020-04-2415-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/src/charset-tests.el: * test/src/chartab-tests.el: * test/src/cmds-tests.el: * test/src/coding-tests.el (top-level) (generate-ascii-file, generate-mostly-nonascii-file): * test/src/doc-tests.el: * test/src/floatfns-tests.el: * test/src/font-tests.el: * test/src/keymap-tests.el: * test/src/process-tests.el (top-level) (process-test-sentinel-wait-function-working-p) (process-test-stderr-buffer, process-test-stderr-filter): * test/src/textprop-tests.el: * test/src/thread-tests.el: * test/src/timefns-tests.el: * test/src/undo-tests.el: * test/src/xml-tests.el: Use lexical-binding.
* | Fix string-to-multibyte overlong sequence bugPaul Eggert2020-04-201-0/+14
| | | | | | | | | | | | | | | | | | * src/character.h (MULTIBYTE_LENGTH, MULTIBYTE_LENGTH_NO_CHECK): Remove, replacing with ... (multibyte_length): ... this new function. All callers changed. The new function rejects overlong multibyte forms. * test/src/buffer-tests.el (buffer-multibyte-overlong-sequences): New test.
* | Merge from origin/emacs-27Glenn Morris2020-04-201-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 05089a4d65 (origin/emacs-27) Tweak wording re constant variables a1040861f1 Tweak setcar-related wording 751510f865 * lisp/image-mode.el: Add prefix key 's' and reduce depend... 9261a219ec * doc/emacs/windows.texi (Window Convenience): Decribe mor... e1d42da0d6 Fix mutability glitches reported by Drew Adams 5805df74f5 Improve mutability doc dca35b31d0 Improve mutability documentation 81e7d7f111 Document that quoting yields constants 5734339f40 * doc/lispref/keymaps.texi (Extended Menu Items, Easy Menu... 14a570afae Remove #' and function quoting from lambda forms in manual d5ec18c66b * src/regex-emacs.c (re_match_2_internal): Rework comment ... 4df8a61117 Add new node "Image Mode" to Emacs Manual. d7d5ee6c57 ; Fix a typo in cmdargs.texi (bug#40701) 5e9db48fbe * doc/lispref/display.texi (Customizing Bitmaps): Fix typo. eebfb72c90 Document constant vs mutable objects better 6c187ed6b0 Improve documentation of 'sort-lines' 52288f4b66 Mention 'spam-stat-process-directory-age' in the documenta... 067b070598 ; Fix some typos and doc issues (bug#40695) # Conflicts: # etc/NEWS
| * ; Fix some typos and doc issues (bug#40695)Štěpán Němec2020-04-181-1/+1
| |
* | Fix error in 'call-process-region' when START is nil (Bug#40576)Philipp Stephani2020-04-121-0/+10
| | | | | | | | | | | | | | | | * src/callproc.c (Fcall_process_region): Fix behavior when START is nil and DELETE is non-nil. * test/src/callproc-tests.el (call-process-region-entire-buffer-with-delete): New unit test.
* | ; * test/src/callproc-tests.el: Fix checkdoc errors.Philipp Stephani2020-04-121-0/+7
| |
* | Set last-coding-system-used upon ASCII conversion bypass (bug#40407)Mattias Engdegård2020-04-091-1/+2
| | | | | | | | | | | | | | | | Spotted by Kazuhiro Ito. * src/coding.c (code_convert_string): Set Vlast_coding_system if appropriate. * test/src/coding-tests.el (coding-nocopy-ascii): Add test.
* | Fix ASCII-only conversion logic (bug#40407)Mattias Engdegård2020-04-091-12/+21
| | | | | | | | | | | | | | | | | | | | | | To sidestep conversion altogether when EOL conversion applies, we must either be encoding a string without NL, or decoding without CR. * src/coding.c (string_ascii_p): Revert to a pure predicate. (code_convert_string): Fix logic. Don't use uninitialised ascii_p (removed). Use memchr to detect CR or LF in string when needed. * test/src/coding-tests.el (coding-nocopy-ascii): Update tests to include encodings with explicit EOL conversions.
* | Don't crash with invalid argument in check-coding-systems-regionMattias Engdegård2020-04-091-0/+8
| | | | | | | | | | | | | | * src/coding.c (Fcheck_coding_systems_region): Don't crash if the third arg contains something that isn't a coding system. * test/src/coding-tests.el (coding-check-coding-systems-region): New test.
* | Fix decoding ASCII strings with embedded CR charactersEli Zaretskii2020-04-091-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | * src/coding.c (string_ascii_p): Return a negative value if an all-ASCII string STR includes the CR character, otherwise a positive value. (code_convert_string): If the string is ASCII, but includes CR characters, use the fast path only if EOL doesn't need to be decoded. (Bug#40519) * test/src/coding-tests.el (coding-nocopy-ascii): Add tests for bug#40519.
* | Avoid expensive recoding for ASCII identity cases (bug#40407)Mattias Engdegård2020-04-051-0/+11
| | | | | | | | | | | | | | | | | | | | Optimise for the common case of encoding or decoding an ASCII-only string using an ASCII-compatible coding, for file names in particular. * src/coding.c (string_ascii_p): New function. (code_convert_string): Return the input string for ASCII-only inputs and ASCII-compatible codings. * test/src/coding-tests.el (coding-nocopy-ascii): New test.
* | Fix inverted NOCOPY encode/decode parameter (bug#40407)Mattias Engdegård2020-04-051-0/+8
| | | | | | | | | | | | | | | | | | | | In {encode,decode}-coding-string, the NOCOPY parameter had the opposite effect to what was intended and documented. This 18 year old bug (introduced in 4031e2bf0a) only affected calls with CODING-SYSTEM being nil. * src/coding.c (code_convert_string): Correct use of NOCOPY. * test/src/coding-tests.el (coding-nocopy-trivial): New test.
* | Port the 'module/async-pipe' test to MS-WindowsEli Zaretskii2020-03-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These changes let the code compile and produce a valid DLL, but the test hangs. It looks like the hang is in Fdelete_process, when it closes one of the descriptors of the pipe process. In addition, this use of the pipe process cannot currently work on MS-Windows, since make-pipe-process doesn't set up the reader thread to read from the Emacs's side of the pipe, so the select emulation doesn't know there's stuff to read from that pipe. * test/data/emacs-module/mod-test.c [WINDOWSNT]: Include windows.h. (ALIGN_STACK) [!__x86_64__]: Define for 32-bit builds. (sleep_for_half_second): New function. (write_to_pipe): Declare return type differently for WINDOWSNT. Call sleep_for_half_second. (Fmod_test_async_pipe) [WINDOWSNT]: Use _beginthread as substitute for pthread_create. (invalid_finalizer): Replace non_ASCII character in a comment. * test/src/emacs-module-tests.el (module/async-pipe): Skip on MS-Windows, as the test fails and then hangs.
* | Add a module function to open a file descriptor connected to a pipe.Philipp Stephani2020-03-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common complaint about the module API is that modules can't communicate asynchronously with Emacs. While it isn't possible to call arbitrary Emacs functions asynchronously, writing to a pipe should always be fine and is a pretty low-hanging fruit. This patch implements a function that adapts an existing pipe process. That way, users can use familiar tools like process filters or 'accept-process-output'. * src/module-env-28.h: Add 'open_channel' module function. * src/emacs-module.c (module_open_channel): Provide definition for 'open_channel'. (initialize_environment): Use it. * src/process.c (open_channel_for_module): New helper function. (syms_of_process): Define necessary symbol. * test/src/emacs-module-tests.el (module/async-pipe): New unit test. * test/data/emacs-module/mod-test.c (signal_system_error): New helper function. (signal_errno): Use it. (write_to_pipe): New function running in the background. (Fmod_test_async_pipe): New test module function. (emacs_module_init): Export it. * doc/lispref/internals.texi (Module Misc): Document new module function. * doc/lispref/processes.texi (Asynchronous Processes): New anchor for pipe processes. * etc/NEWS: Document 'open_channel' function.
* | Fix rounding errors in time conversionPaul Eggert2020-03-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | * src/timefns.c (frac_to_double): Pass FLT_RADIX to mpz_sizeinbase instead of doing the radix calculation ourselves, not always correctly. Fix off-by-one error in scale, which caused double-rounding. (decode_time_components): Use frac_to_double (via decode_ticks_hz) to fix double-rounding error that can occur even though intermediate results are long double. * test/src/timefns-tests.el (float-time-precision): Test the above fixes.
* | Port timestamp tests to odd timezones, (TICKS . HZ)Paul Eggert2020-02-271-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | * test/src/timefns-tests.el: (format-time-string-padding-minimal-deletes-unneeded-zeros) (format-time-string-padding-minimal-retains-needed-zeros) (format-time-string-padding-spaces) (format-time-string-padding-zeros-adds-on-insignificant-side): Don't assume local time can represent 2000-02-15 00:00:00, as there might be a DST jump over midnight. Work even when timestamps are of (TICKS . HZ) form. Simplify by avoiding need to call time-add.
* | Revert "Signal an error for the regexp "[:alnum:]""Mattias Engdegård2020-02-271-5/+0
| | | | | | | | This reverts commit 8d5e8cddab732ac90e9ae930c63f7830f9dab24f.
* | Revert "Don't complain about the regexp "[:-:]""Mattias Engdegård2020-02-271-2/+1
| | | | | | | | This reverts commit 3766bf728a43933083f4525970bcf9fdace3838d.