aboutsummaryrefslogtreecommitdiffstats
path: root/test (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix trig simplification crash (bug#33052)Mattias Engdegård2019-07-101-0/+30
| | | | | | | | | | | | | | | | | | | | | * lisp/calc/calc-alg.el (calcFunc-sec, calcFunc-csc, calcFunc-cot): Check that `math-known-sin' and `math-known-tan' succeeded before using their value in arithmetic. * test/lisp/calc/calc-tests.el (calc-test-trig): Add regression tests.
* | | Fix warnings in todo-mode-tests.el (Bug#36569)Stefan Kangas2019-07-101-1/+1
| | | | | | | | | | | | | | | * test/lisp/calendar/todo-mode-tests.el (todo-test--insert-item): Fix "Unused lexical argument" warnings.
* | | Fix warning in electric-tests.el (Bug#36570)Stefan Kangas2019-07-101-9/+0
| | | | | | | | | | | | | | | * test/lisp/electric-tests.el (plainer-c-mode): Remove duplicate definition.
* | | * src/fileio.c: Fix bug#36431Stefan Monnier2019-07-091-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (decide_coding_unwind): Re-introduce. Move text back to the gap. Return the new `inserted` via the unwind_data. (Finsert_file_contents): Use it. Make sure `inserted` is always 0 when we jump straight to `notfound`. Don't insert the text in the buffer until we know it's properly decoded for the byteness of the buffer. * test/src/fileio-tests.el (fileio-tests--insert-file-interrupt): Allow insert-file-contents to return an empty buffer in case of non-local exit in set-auto-coding-function.
* | | Port image-type-from-file-header-test to non-SVG EmacsPaul Eggert2019-07-091-1/+1
| | | | | | | | | | | | | | | | | | Problem reported privately by Michael Albinus. * test/lisp/image-tests.el (image-type-from-file-header-test): Don’t assume svg is a supported image type.
* | | Conditionalize result of a bytecomp testGlenn Morris2019-07-091-0/+1
| | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test--switch-duplicates): Apparently the result depends on byte-compile-cond-use-jump-table.
* | | Ensure that expand-file-name returns an absolute file nameKen Brown2019-07-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | * src/fileio.c (Fexpand_file_name): Don't directly use the current buffer's default-directory if it is relative. Instead replace it by its expansion relative to invocation-directory. (Bug#36502) * test/src/fileio-tests.el (fileio-tests--relative-default-directory): New test.
* | | Merge from origin/emacs-26Glenn Morris2019-07-061-0/+12
|\ \ \ | |/ / | | | | | | | | | | | | | | | e97c043 Fix python.el docstring (Bug#36458) e660801 ; Add thing-at-point-looking-at test (Bug#35708) f5b4846 ; Fix typo, insure -> ensure in ChangeLogs cb8fb59 * lisp/hi-lock.el (hi-lock-line-face-buffer): Doc fix. (Bug3...
| * | ; Add thing-at-point-looking-at test (Bug#35708)Noam Postavsky2019-07-051-0/+12
| | | | | | | | | | | | * test/lisp/thingatpt-tests.el (thing-at-point-looking-at): New test.
* | | Merge from origin/emacs-26Glenn Morris2019-07-061-2/+3
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | 316f5a3 Fix typo in doc string of file-exists-p (bug#36408) bfc7c6e * test/lisp/url/url-file-tests.el (url-file): Fix for POSIX f... 13b95e1 Fix typo in windows.texi 8b775c3 Clarify & update (elisp) Writing Emacs Primitives 7648c12 Clarify a subtle issue in the Internals chapter of lispref
| * | * test/lisp/url/url-file-tests.el (url-file): Fix for POSIX filenames.Juanma Barranquero2019-06-281-2/+3
| | |
* | | Add tests for text-property-search to check prop-match-valueStefan Kangas2019-07-061-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/text-property-search-tests.el (with-match-test): New macro. (text-property-search-forward-prop-match-match-face-nil-nil) (text-property-search-forward-prop-match-match-face-bold-t) (text-property-search-forward-prop-match-match-face-bold-nil) (text-property-search-backward-prop-match-match-face-nil-nil) (text-property-search-backward-prop-match-match-face-italic-t) (text-property-search-backward-prop-match-match-face-italic-nil): Add test cases to also verify the value of prop-match-value (bug#36486).
* | | Replace manually crafted hex regexes with [:xdigit:]Konstantin Kharlamov2019-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/charsets/mapconv: * build-aux/gitlog-to-changelog (parse_amend_file, git_dir_option): * lisp/progmodes/verilog-mode.el (verilog-delay-re): (verilog-type-font-keywords, verilog-read-always-signals-recurse): (verilog-is-number): * lisp/progmodes/vera-mode.el (vera-font-lock-keywords): * test/src/emacs-module-tests.el (mod-test-sum-test): * lisp/xml.el: (xml--entity-replacement-text): * lisp/version.el (emacs-repository-version-git): * lisp/textmodes/sgml-mode.el (sgml-quote): * lisp/textmodes/css-mode.el (css-escapes-re) (css--colors-regexp): * lisp/progmodes/prolog.el (prolog-syntax-propertize-function): * lisp/progmodes/hideif.el (hif-token-regexp, hif-tokenize): * lisp/progmodes/ebnf-dtd.el: (ebnf-dtd-attlistdecl) (ebnf-dtd-entitydecl, ebnf-dtd-lex): * lisp/progmodes/ebnf-ebx.el (ebnf-ebx-hex-character): * lisp/progmodes/ebnf-abn.el (ebnf-abn-character): * lisp/progmodes/cperl-mode.el (cperl-highlight-charclass) (cperl-find-pods-heres): * lisp/progmodes/cc-mode.el (c-maybe-quoted-number-head) (c-maybe-quoted-number, c-parse-quotes-before-change) (c-parse-quotes-after-change, c-quoted-number-head-before-point) (c-quoted-number-straddling-point): * lisp/progmodes/ada-mode.el (featurep, ada-in-numeric-literal-p) (ada-font-lock-keywords): * lisp/org/org-mobile.el (org-mobile-copy-agenda-files) * lisp/org/org-table.el (org-table-number-regexp): (org-mobile-update-checksum-for-capture-file): * lisp/nxml/xsd-regexp.el (xsdre-gen-categories): * lisp/nxml/xmltok.el (let*): * lisp/nxml/rng-xsd.el (rng-xsd-convert-hex-binary) (rng-xsd-convert-any-uri): * lisp/nxml/rng-uri.el (rng-uri-file-name-1) (rng-uri-unescape-multibyte, rng-uri-unescape-unibyte) (rng-uri-unescape-unibyte-match) (rng-uri-unescape-unibyte-replace): * lisp/nxml/rng-cmpct.el (rng-c-process-escapes): * lisp/nxml/nxml-maint.el (nxml-insert-target-repertoire-glyph-set): * lisp/net/shr-color.el (shr-color->hexadecimal): * lisp/mail/rfc2231.el (rfc2231-decode-encoded-string): * lisp/international/mule-cmds.el (read-char-by-name): * lisp/htmlfontify.el (hfy-hex-regex): * lisp/gnus/nneething.el (nneething-decode-file-name): * lisp/gnus/mml-sec.el (mml-secure-find-usable-keys): * lisp/gnus/gnus-art.el (gnus-button-mid-or-mail-heuristic-alist): * lisp/faces.el (read-color): * lisp/epg.el (epg--status-ERRSIG, epg--status-VALIDSIG) (epg--status-SIG_CREATED, epg--decode-percent-escape) (epg--decode-hexstring, epg--decode-quotedstring) (epg-dn-from-string): * lisp/emulation/cua-rect.el (cua-incr-rectangle): * lisp/dnd.el (dnd-unescape-uri): * lisp/cedet/semantic/lex.el (semantic-lex-number-expression): * lisp/cedet/semantic/java.el (semantic-java-number-regexp): * lisp/calc/calc-lang.el (pascal): * lisp/calc/calc-ext.el (math-read-number-fancy): * lisp/calc/calc-aent.el (math-read-token): Replace various combinations of [0-9a-fA-F] with [[:xdigit:]]. (Bug#36167)
* | | * lisp/char-fold.el (char-fold-to-regexp): Implement arg LAX (bug#36398).Juri Linkov2019-07-041-0/+8
| | | | | | | | | | | | * test/lisp/char-fold-tests.el (char-fold--test-multi-lax): New test.
* | | Optimise more inputs to `regexp-opt' (bug#36444)Mattias Engdegård2019-07-041-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a more precise test to determine whether the input to `regexp-opt' is safe to optimise when KEEP-ORDER is non-nil, permitting more inputs to be optimised than before. For example, ("good" "goal" "go") is now accepted. * lisp/emacs-lisp/regexp-opt.el (regexp-opt): More precise test for whether the list is safe w.r.t. KEEP-ORDER. (regexp-opt--contains-prefix): Remove. * test/lisp/emacs-lisp/regexp-opt-tests.el: Use lexical-binding. (regexp-opt-test--permutation, regexp-opt-test--factorial) (regexp-opt-test--permutations, regexp-opt-test--match-all) (regexp-opt-test--check-perm, regexp-opt-test--explain-perm) (regexp-opt-keep-order): Test KEEP-ORDER.
* | | Add tests for bookmark.el (Bug#36452)Stefan Kangas2019-07-033-0/+332
| | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/bookmark-resources/example.txt: * test/lisp/bookmark-resources/test.bmk: * test/lisp/bookmark-tests.el: New files. * lisp/bookmark.el: Minor cleanups. (bookmark-insert-annotation): Signal error on invalid bookmark. (bookmark-write-file): Add newline at end of file.
* | | Change expected result of a flymake test on embaMichael Albinus2019-07-031-1/+0
| | | | | | | | | | | | | | | * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types): Test is now passing on emba.gnu.org, too.
* | | Change expected result of a flymake test on hydraGlenn Morris2019-07-021-3/+1
| | | | | | | | | | | | | | | * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types): Test is now passing on hydra.nixos.org, since today.
* | | (Finsert_file_contents): Keep buffer consistent in non-local exitStefan Monnier2019-07-021-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | * src/fileio.c (decide_coding_unwind): Delete function. (Finsert_file_contents): Don't let invalid multibyte byte sequences escape when we exit non-locally. * test/src/fileio-tests.el (fileio-tests--insert-file-interrupt): New test.
* | | * test/src/editfns-tests.el (test-group-name): Accept nil group-name.Stefan Monnier2019-07-021-8/+8
| | |
* | | Correctly reindent previous line in electric-indent-modeJoão Távora2019-07-021-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: bug#35254 Do this even when electric-indent-inhibit is t, except when the newline insertion is being performed by electric-layout-mode. * lisp/electric.el (electric-indent-post-self-insert-function): Reindent previous line unless operating under electric-layout-mode. (electric-layout-post-self-insert-function-1): Bind electric-indent-inhibit to 'electric-layout-mode. * test/lisp/electric-tests.el (electric-layout-control-reindentation): New test.
* | | Release Tramp 2.4.2Michael Albinus2019-06-301-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/net/tramp.el: Bump version. * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case): Add `add-name-to-file' error message. (tramp--test-ignore-add-name-to-file-error): Make error handler more explicit about the error.
* | | Support native image transforms on MS-WindowsEli Zaretskii2019-06-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changeset also rearranges native image transform code for other platforms to make it cleaner, and also removes the support for native cropping. For the discussions, see https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00242.html * src/w32term.c (w32_image_rotations_p, transform): New functions. (w32_draw_image_foreground): If image rotation is requested and supported, call PlgBlt to transform the image. (w32_initialize): Populate the PlgBlt function pointer if it is supported. * src/w32term.h (w32_image_rotations_p): Add prototype. * src/dispextern.h (struct image) [HAVE_NTGUI]: New member xform. * src/image.c (compute_image_rotation): Renamed from image_set_rotation. Only compute and returns the rotation angle; leave the matrix calculation for later. Log an error message if the :rotation parameter is not a number. (image_set_crop): Function deleted. We no longer support native cropping, as one can display an image slice instead. (image_set_transform): Compute the transform matrix in its entirety here, in two variants: one for XRender and Cairo, the other for NS and MS-Windows. call compute_image_size and compute_image_rotation internally. (lookup_image) [HAVE_NATIVE_TRANSFORMS]: Call only image_set_transform. No need to pass the transform matrix to image_set_transform. (Fimage_transforms_p): Return a list of transform capabilities rather than a simple boolean. Support TTY frames as well. * src/nsimage.m (setTransform:): Don't invert the matrix, as it is already inverted in image.c. * test/manual/image-transforms-tests.el (test-cropping): State in the text that only ImageMagick supports cropping. * doc/lispref/display.texi (Image Descriptors): Update the documentation of native image transforms. (ImageMagick Images): Move the description of ':crop' here. * etc/NEWS: Minor copyedits of the feature announcement.
* | | Allow empty argument to `regexp-opt-charset'Mattias Engdegård2019-06-291-5/+24
| | | | | | | | | | | | | | | | | | * test/lisp/emacs-lisp/regexp-opt-tests.el (regexp-opt-charset): Handle nil argument, and use regexp-quote for singletons. * lisp/emacs-lisp/regexp-opt.el (regexp-opt-charset): Expand tests.
* | | * test/src/json-tests.el (json-serialize/object): Fix spacing.Andreas Schwab2019-06-291-2/+2
| | |
* | | Fix json-serialize/object test failurePip Cet2019-06-281-1/+2
| | | | | | | | | | | | | | | * test/src/json-tests.el (json-serialize/object): Accept failure with different code.
* | | Correct regexp matching of raw bytesMattias Engdegård2019-06-281-0/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make regexp matching of raw bytes work in all combination of unibyte and multibyte patterns and targets, as exact strings and in character alternatives (bug#3687). * src/regex-emacs.c (analyze_first): Include raw byte in fastmap when pattern is a multibyte exact string. Include leading byte in fastmap for raw bytes in character alternatives. (re_match_2_internal): Decrement the byte count by the number of bytes in the pattern character, not 1. * test/src/regex-emacs-tests.el (regexp-unibyte-unibyte) (regexp-multibyte-unibyte, regexp-unibyte-mutibyte) (regexp-multibyte-multibyte): New tests.
* | | Tramp requires Emacs 24.4Michael Albinus2019-06-281-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Frequently Asked Questions): Use `with-eval-after-load'. in example. * doc/misc/trampver.texi: Set variable emacsver. * lisp/net/tramp.el (tramp-send-string, tramp-call-process) (tramp-call-process-region, tramp-process-lines): * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename) (tramp-adb-sh-fix-ls-output, tramp-adb-maybe-open-connection): * lisp/net/tramp-gvfs.el (tramp-gvfs-get-directory-attributes) (tramp-gvfs-handle-file-notify-add-watch) * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename) (tramp-do-copy-or-rename-file-out-of-band) (tramp-sh-handle-file-notify-add-watch, tramp-find-executable) (tramp-set-remote-path) (tramp-open-connection-setup-interactive-shell) (tramp-maybe-open-connection, tramp-send-command): * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) (tramp-smb-handle-file-acl, tramp-smb-handle-process-file) (tramp-smb-handle-set-file-acl) (tramp-smb-handle-start-file-process) (tramp-smb-maybe-open-connection): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-acl): (tramp-sudoedit-send-command): Use `string-join' and `string-empty-p'. * lisp/net/tramp-adb.el: * lisp/net/tramp-archive.el: * lisp/net/tramp-integration.el: * lisp/net/tramp-ftp.el: Use `with-eval-after-load'. * lisp/net/tramp-cmds.el (tramp-cleanup-connection) (tramp-cleanup-all-connections): Cancel timer. * lisp/net/tramp-compat.el (subr-x): Require. (default-toplevel-value): Don't make it a defalias. * lisp/net/tramp-gvfs.el: Use `dbus-event-error-functions'. Do not special handle `split-string'. * lisp/net/tramp.el: Require Emacs 24.4. (tramp-password-prompt-regexp): Use `password-word-equivalents'. (tramp-user-error): Use `user-error'. (tramp-replace-environment-variables): Use `substitute-env-vars'. (tramp-wait-for-regexp): Rearrange `with-current-buffer' call. (tramp-get-local-gid): Use `group-gid'. * lisp/net/trampver.el: Check for Emacs 24.4. * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect) (tramp-test02-file-name-dissect-simplified) (tramp-test02-file-name-dissect-separate) (tramp-test03-file-name-host-rules) (tramp-test03-file-name-method-rules): Don't check for `user-error'.
* | | Revert "* lisp/calc/calc-ext.el (math-scalarp): Fix typo"Stefan Monnier2019-06-263-2/+11
| | | | | | | | | | | | This reverts commit 698ff554ac2699ec48fefc85a1307cbc4a183b0d.
* | | * test/lisp/calc/calc-tests.el (test-math-bignum, test-calc-23889): DisableStefan Monnier2019-06-261-6/+6
| | | | | | | | | | | | Not applicable any more with native bignums.
* | | * lisp/calc/calc-ext.el (math-scalarp): Fix typoStefan Monnier2019-06-263-11/+2
| | |
* | | Fix (rx-to-string (and (literal STR) (regexp STR)) regressionNoam Postavsky2019-06-261-0/+4
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rx.el (rx-regexp, rx-literal): Check the cadr of the form for stringness, not the form itself. * test/lisp/emacs-lisp/rx-tests.el (rx-to-string-lisp-forms): New test.
* | | Merge from emacs-26Noam Postavsky2019-06-253-6/+22
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e62ad04963 Fix sgml-mode handling of quotes within parens (Bug#36347) 06b35b2f92 ; * lisp/frame.el: Enhance add-variable-watcher commentary. 572e34bb6f Rename 'make-symbolic-link' argument NEWNAME to LINKNAME 04477adedc Check that length of data returned by sysctl is non-zero 81535eeadb * test/lisp/progmodes/python-tests.el (python-virt-bin): D... 9d48979ca8 Fix Python tests depending on system-type fcf6cc3177 Fix problem with wdired test when symlinks cannot be created. 4701e0663e Improve wording of documentation of click events # Conflicts: # lisp/textmodes/sgml-mode.el # test/lisp/textmodes/sgml-mode-tests.el
| * | Fix sgml-mode handling of quotes within parens (Bug#36347)Noam Postavsky2019-06-251-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize): Use syntax-ppss-table if set. This is only needed on the release branch, on master the caller (syntax-propertize) already does this. (sgml-mode): Set syntax-ppss-table to sgml-tag-syntax-table. This correctly classifies parens as punctuation, so they won't confuse the parser. * test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax): New test copied from master, with two cases added for this bug.
| * | * test/lisp/progmodes/python-tests.el (python-virt-bin): Doc fix.Juanma Barranquero2019-06-171-1/+1
| | |
| * | Fix Python tests depending on system-typeJuanma Barranquero2019-06-171-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/progmodes/python-tests.el (python-virt-bin): New function. (python-shell-calculate-exec-path-2) (python-shell-calculate-exec-path-3) (python-shell-calculate-exec-path-4) (python-shell-with-environment-1, python-shell-with-environment-2): Use it.
| * | Fix problem with wdired test when symlinks cannot be created.Juanma Barranquero2019-06-161-1/+5
| | | | | | | | | | | | | | | | | | * test/lisp/wdired-tests.el (wdired-test-symlink-name): Skip test if 'make-symbolic-link' fails for whatever reason; that's not what's being tested.
| * | Fix accidential change in tramp-tests; do not merge with masterMichael Albinus2019-06-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/net/trampver.el: Change version to "2.3.5.26.3". (customize-package-emacs-version-alist): Add Tramp version integrated in Emacs 26.3. * test/lisp/net/tramp-tests.el (tramp-test42-auto-load): Add skip for w32.
| * | tramp-test42-auto-load: Add expected-result.Juanma Barranquero2019-06-151-0/+1
| | | | | | | | | | | | | | | | | | * test/lisp/net/tramp-tests.el (tramp-test42-auto-load): Expect a failed result if remote file access is not enabled, as it happens while doing the test on Windows.
* | | Don't bind search-spaces-regexp around possible autoload (Bug#35802)Noam Postavsky2019-06-251-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/isearch.el (isearch-search-fun-default): Move possible autoload trigger outside let-binding of search-spaces-regexp. * lisp/char-fold.el (char-fold-make-table): Remove no longer needed workaround. * lisp/info.el (Info-search-whitespace-regexp): * lisp/isearch.el (search-whitespace-regexp): * src/search.c (syms_of_search) <search-spaces-regexp>: Add warning about adding capturing groups to the value. * test/lisp/char-fold-tests.el: Remove, binding search-spaces-regexp to a different should be considered a bug.
* | | Support (rx (and (regexp EXPR) (literal EXPR))) (Bug#36237)Noam Postavsky2019-06-251-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/rx.el (rx-regexp): Allow non-string forms. (rx-constituents): Add literal constituent, which is like a plain STRING form, but allows arbitrary lisp expressions. (rx-literal): New function. (rx-compile-to-lisp): New variable. (rx--subforms): New helper function for handling subforms, including non-constant case. (rx-group-if, rx-and, rx-or, rx-=, rx->=, rx-repeat, rx-submatch) (rx-submatch-n, rx-kleene, rx-atomic-p): Use it to handle non-constant subforms. (rx): Document new form, wrap non-constant forms with concat call. * test/lisp/emacs-lisp/rx-tests.el (rx-tests--match): New macro. (rx-nonstring-expr, rx-nonstring-expr-non-greedy): New tests. * etc/NEWS: Announce changes.
* | | * test/lisp/progmodes/flymake-tests.el (ruby-backend): Skip on hydra.Glenn Morris2019-06-251-0/+1
| | | | | | | | | | | | Another unstable test.
* | | * lisp/textmodes/tex-mode.el (latex-noindent-commands): New custom varStefan Monnier2019-06-241-0/+4
| | | | | | | | | | | | | | | (latex-find-indent): Obey it. (latex-noindent-environments): Make it into a defcustom as well.
* | | Improve error handling in TrampMichael Albinus2019-06-241-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/net/tramp-compat.el (ls-lisp): Require. * lisp/net/tramp.el (ls-lisp-use-insert-directory-program): Don't declare. (tramp-current-connection): Adapt docstring. (tramp-debug-message): Adapt function names. (tramp-error, tramp-run-real-handler): Let-bind `signal-hook-function'. (tramp-signal-hook-function): New defun. (tramp-debug-on-error, tramp-condition-case-unless-debug): Remove. (tramp-file-name-handler): Handle `tramp-current-connection'. Let-bind `signal-hook-function'. Use `unwind-protect' instead of `tramp-condition-case-unless-debug'. (tramp-handle-insert-directory): Don't require ls-lisp. (tramp-process-actions): Check, that `tramp-password-save-function' is non-nil. (tramp-equal-remote): Handle the case both files are local. * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case): Do not bind `tramp-debug-on-error'. (tramp--test-ignore-make-symbolic-link-error): Make error handler more explicit about the error.
* | | Refactoring of auth-source-passDamien Cassou2019-06-241-178/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/auth-source-pass.el (auth-source-pass--find-match): Refactor by moving some code to auth-source-pass--disambiguate. (auth-source-pass--disambiguate) (auth-source-pass--entries-matching-suffix): New function. (auth-source-pass--find-match-unambiguous) (auth-source-pass--select-from-entries) (auth-source-pass--entry-reducer): Refactor to simplify and improve logging. (auth-source-pass--matching-entries) (auth-source-pass--accumulate-matches): Remove. * test/lisp/auth-source-pass-tests.el: Complete rewrite to facilitate maintenance. (auth-source-pass--have-message-containing): Remove. (auth-source-pass--have-message-matching) (auth-source-pass--explain--have-message-matching) (auth-source-pass--explain-match-entry-p) (auth-source-pass--includes-sorted-entries) (auth-source-pass--explain-includes-sorted-entries) (auth-source-pass--explain-match-any-entry-p) (auth-source-pass--matching-entries) (auth-source-pass-match-entry-p) (auth-source-pass-match-any-entry-p): New function.
* | | Minimize entry parsing in auth-source-passKeith Amidon2019-06-241-104/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit, while searching for the most applicable entry password-store entries were decrypted and parsed to ensure they were valid. The entries were parsed in the order they were found on the filesystem and all applicable entries would be decrypted and parsed, which varied based on the contents of the password-store and the entry to be found. This is fine when the GPG key is cached and each entry can be decrypted without user interaction. However, for security some people have their GPG on a hardware token like a Yubikey setup so that they have to touch a sensor on the toke for every cryptographic operation, in which case it becomes inconvenient as each attempt to find an entry requires a variable number of touches of the hardware token. The implementation already assumes that names which contain more of the information in the search key should be preferred so there is an ordering of preference of applicable entries. If the decrypt and parsing is removed from the initial identification of applicable entries in the store then in most cases a single decrypt and parse of the most preferred entry will suffice, improving the experience for hardware token users that require interaction with the token. This commit implements that strategy. It is in spirit a refactor of the existing code. * lisp/auth-source-pass.el (auth-source-pass--matching-entries): New function, generate an ordered list of regular expression matchers for all possible names that could be in the password-store for the entry to be found and then makes a pass over the password-store entry names accumulating the matching entries in a list after the regexp that matched. This implementation ensures the password-store entry list still only has to be scanned once. (auth-source-pass--find-match-unambiguous): Use it to obtain candidate entries and then parse them one by one until an entry containing the desired information is located. When complete, return the parsed data of the entry instead of the entry name so that the information can be used directly to construct the auth-source response. (auth-source-pass--build-result): Update accordingly. (auth-source-pass--find-match): Update docstring accordingly. (auth-source-pass--select-one-entry) (auth-source-pass--entry-valid-p) (auth-source-pass--find-all-by-entry-name) (auth-source-pass--find-one-by-entry-name): Remove. (auth-source-pass--select-from-entries) (auth-source-pass--accumulate-matches) (auth-source-pass--entry-reducer) (auth-source-pass--generate-entry-suffixes) (auth-source-pass--domains) (auth-source-pass--name-port-user-suffixes): New functions. * test/lisp/auth-source-pass-tests.el: One test case was added to the test suite to verify that only the minimal number of entries are parsed in common cases. The auth-source-pass-only-return-entries-that-can-be-open test case had to be re-implemented because the function it was used eliminated as the functionality is provided elsewhere. All the other fairly substantial changes to the test suite are the result of mechanical changes that were required to adapt to auth-source-pass--find-match returning the data from a parsed password-store entry instead of the entry name.
* | | Fix auth-source-pass to search for hostname:port/usernameKeith Amidon2019-06-241-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | auth-source-pass supports entries with username either prefixed to the hostname with an @ as separator or in a subdirectory under the hostname. This was true when there was no port or service included in the name, but got broken with the introduction of auth-source-pass-port-separator. * lisp/auth-source-pass.el (auth-source-pass--find-match-unambiguous): Fix to match hostname:port/username. * test/lisp/auth-source-pass-tests.el: Add corresponding tests.
* | | Add auth-source-pass-port-separator optionIku Iwasa2019-06-241-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/auth-source-pass.el (auth-source-pass-port-separator): New option to specify separator between host and port, default to colon (":"). (auth-source-pass--find-match-unambiguous): Adapt to make use of the new variable. * test/lisp/auth-source-pass-tests.el: Add corresponding tests.
* | | Fix auth-source-pass to return nil if no entry foundMagnus Henoch2019-06-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/auth-source-pass.el (auth-source-pass-search): If there is no matching entry, auth-source-pass-search should return nil, not (nil). This lets auth-source fall back to other backends in the auth-sources list. * test/lisp/auth-source-pass-tests.el: Add corresponding test. Copyright-paperwork-exempt: yes
* | | Optional space and unit in `file-size-human-readable' (bug#35756)Mattias Engdegård2019-06-231-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To improve readability of strings produced by `file-size-human-readable', add two optional arguments: - SPACE, to provide a string (typically a space or non-breaking space) to put between the number and unit. For compatibility, the default is an empty string. - UNIT, a string to use as unit. For compatibility, the default is "B" in `iec' mode and the empty string otherwise. Also fix a glitch with small numbers in `iec' mode which caused a stray "i" in the result. * lisp/files.el (file-size-human-readable): Add optional SPACE and UNIT arguments and handle small numbers correctly. (files--ask-user-about-large-file, warn-maybe-out-of-memory): Call with `iec' and space. * test/lisp/files-tests.el (files-test-file-size-human-readable): New test. * lisp/url/url-http.el (url-http-simple-after-change-function) (url-http-content-length-after-change-function): Call with `iec' and space. * etc/NEWS (Lisp Changes): Mention the change.