1. 04 Jun, 2020 1 commit
  2. 03 Jun, 2020 1 commit
    • Mattias Engdegård's avatar
      Make color-distance symmetric and more accurate · 7e8c1a67
      Mattias Engdegård authored
      * 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.
  3. 31 May, 2020 1 commit
    • Tino Calancha's avatar
      occur: Add bindings for next-error-no-select · abe7c22d
      Tino Calancha authored
      Make the navigation in the occur buffer closer
      to the navigation in the compilation buffer.
      Add bindings to navigate the occur matches (Bug#39121).
      Honor `next-error-highlight' and `next-error-highlight-no-select'
      when navigating the occurrences.
      * lisp/replace.el (occur-highlight-regexp, occur-highlight-overlay):
      New variables.
      (occur-1): Set `occur-highlight-regexp' to the searched regexp.
      (occur-goto-locus-delete-o, occur--highlight-occurrence): New defuns.
      (occur-mode-display-occurrence, occur-mode-goto-occurrence):
      Use `occur--highlight-occurrence'.
      (occur-mode-map): Bind n to `next-error-no-select'
      and p to `previous-error-no-select'
      * etc/NEWS (Changes in Specialized Modes and Packages in Emacs 28.1):
      Announce this change.
      * test/lisp/replace-tests.el (replace-tests-with-highlighted-occurrence):
      Add helper macro.
      (occur-highlight-occurrence): Add test.
  4. 29 May, 2020 1 commit
  5. 27 May, 2020 1 commit
    • Mattias Engdegård's avatar
      Don't clobber match data in utf-8-hfs conversion (bug#41445) · c5cf630e
      Mattias Engdegård authored
      Reported by Ture Pålsson.
      * lisp/international/ucs-normalize.el
      Use save-match-data to avoid match data clobber in normalisation.
      * test/lisp/international/ucs-normalize-tests.el
      (ucs-normalize-save-match-data): New test.
  6. 24 May, 2020 1 commit
    • Eli Zaretskii's avatar
      Fix rare assertion violations in 'etags' · 0195809b
      Eli Zaretskii authored
      * lib-src/etags.c (pfnote): Instead of raising an assertion when
      we get an empty tag name, return immediately.  (Bug#41465)
      * test/manual/etags/ETAGS.good_1:
      * test/manual/etags/ETAGS.good_2:
      * test/manual/etags/ETAGS.good_3:
      * test/manual/etags/ETAGS.good_4:
      * test/manual/etags/ETAGS.good_5:
      * test/manual/etags/ETAGS.good_6: Adapt to latest changes in
  7. 23 May, 2020 1 commit
  8. 22 May, 2020 1 commit
    • Basil L. Contovounesios's avatar
      Various json.el improvements · 3f082af5
      Basil L. Contovounesios authored
      * etc/NEWS: Announce that json-read-number is now stricter.
      * json.el: Bump package version.
      (json-encoding-lisp-style-closings, json-pre-element-read-function)
      (json-post-element-read-function, json-advance, json-peek)
      (json--path): Clarify and improve style of doc strings.
      (json-join): Define as an obsolete alias of string-join.
      (json-alist-p, json-plist-p): Refactor for speed and declare as
      pure, side-effect-free, and error-free.
      (json--plist-reverse): Rename function...
      (json--plist-nreverse): ...to this, making it destructive for speed.
      All callers changed.
      (json--plist-to-alist): Remove, replacing single use with map-pairs.
      (json--with-indentation): Accept multiple forms as arguments, fix
      their indentation, and allow them to be instrumented for debugging.
      Add docstring.
      (json-pop, json-read-keyword, json-add-to-object)
      (json-encode-array): Simplify for speed.
      (json-skip-whitespace): Put newline before carriage return for
      likely frequency of occurrence, and so that the characters appear in
      increasing order.
      (json--check-position): Use 1+.
      (json-path-to-position): Open code apply-partially.
      (json-keywords): Turn into a defconst and mark as obsolete now that
      it is no longer used.
      (json--post-value, json--number, json--escape): New rx definitions.
      (json-encode-keyword): Declare as side-effect-free.
      (json-read-number): Reject leading zeros and plus signs, and make
      integer part mandatory in accordance with JSON standards and for
      consistency with native JSON parsing functions.  Eagerly signal
      json-number-format when garbage follows a valid number, e.g., when
      reading "1.1.1", instead of leaving that up to the caller.  Remove
      optional internal argument from advertised calling convention now
      that the function is no longer recursive.
      (json-encode-number): Define as an alias of number-to-string.
      (json-special-chars): Turn into a defconst.
      (json-read-escaped-char, json-new-object, json-read-file)
      (json-pretty-print): Simplify.
      (json-read-string): For consistency with other json.el error
      reporting, remove check for leading '"', and use the integer value
      rather than the printed representation of characters in error data.
      At EOB signal json-end-of-file instead of json-string-format.
      (json--long-string-threshold, json--string-buffer): New variables.
      (json-encode-string): Reimplement in terms of buffer manipulation
      for speed (bug#20154).
      (json-read-object): Escape ?\} properly.
      (json--encode-alist): New function extracted from json-encode-alist.
      (json-encode-hash-table, json-encode-alist, json-encode-plist): Use
      it to avoid destructively modifying the argument when
      json-encoding-object-sort-predicate is non-nil without incurring
      unnecessary copying (bug#40693).  Encode empty object as "{}" even
      when pretty-printing.  Simplify for speed.
      (json-read-array): Avoid recomputing list length on each iteration
      when json-pre-element-read-function is non-nil.  Make first element
      of json-array-format error data a string for consistency with
      json-object-format and to make the displayed error message clearer.
      (json-readtable-dispatch): Accept any kind of argument, not just
      symbols.  Generate the table in a simpler manner so the dispatch
      order is clearer.  Remove dispatch on ?+ and ?. now that
      json-read-number is stricter and for consistency with native JSON
      parsing functions.  Signal json-end-of-file if argument is nil.
      (json-read): Simplify accordingly.
      (json-encode): Avoid allocating a list on each invocation.
      * lisp/jsonrpc.el (jsonrpc--json-read, jsonrpc--json-encode): Check
      whether native JSON functions are fboundp only once, at load time.
      * lisp/progmodes/python.el (python--parse-json-array): New function.
      (python-shell-prompt-detect): Use it to parse JSON directly as a
      list rather than converting from a vector.
      * test/lisp/json-tests.el (json-tests--with-temp-buffer): Allow
      instrumenting for debugging.
      (test-json-join, test-json-plist-to-alist): Remove tests.
      (test-json-alist-p, test-json-plist-p, test-json-advance)
      (test-json-peek, test-json-pop, test-json-skip-whitespace)
      (test-json-read-keyword, test-json-encode-keyword)
      (test-json-encode-number, test-json-read-escaped-char)
      (test-json-read-string, test-json-encode-string)
      (test-json-encode-key, test-json-new-object)
      (test-json-encode-hash-table, test-json-encode-plist)
      (test-json-encode-list, test-json-read-array)
      (test-json-encode-array, test-json-read)
      (test-json-read-from-string, test-json-encode): Extend tests.
      (test-json-plist-reverse): Rename test...
      (test-json-plist-nreverse): ...to this and avoid modifying literal
      (test-json-read-number): Rename test...
      (test-json-read-integer): ...to this, focusing on integers.
      (test-json-add-to-object): Rename test...
      (test-json-add-to-alist): ...to this, focusing on alists.
      (json-encode-simple-alist): Rename test...
      (test-json-encode-alist): ...to this, extending it.
      (test-json-encode-alist-with-sort-predicate): Rename test...
      (test-json-encode-alist-sort): ...to this, extending it.
      (test-json-encode-plist-with-sort-predicate): Rename test...
      (test-json-encode-plist-sort): ...to this, extending it.
      (test-json-read-keyword-invalid, test-json-read-fraction)
      (test-json-read-exponent, test-json-read-fraction-exponent)
      (test-json-read-escaped-char-invalid, test-json-add-to-plist)
      (test-json-add-to-hash-table, test-json-read-object-empty)
      (test-json-read-object-invalid, test-json-read-object-function)
      (test-json-encode-hash-table-sort, test-json-encode-alist-pretty)
      (test-json-encode-alist-lisp-style, test-json-encode-plist-pretty)
      (test-json-encode-plist-lisp-style, test-json-read-array-function)
      (test-json-encode-array-pretty, test-json-encode-array-lisp-style)
      (test-json-read-invalid): New tests.
      (test-json-path-to-position-no-match): Use should-not.
      (test-json-read-object): Move error check to new test
      (test-json-pretty-print-object): Adapt test now that empty objects
      are pretty-printed as "{}".
  9. 19 May, 2020 2 commits
    • Kévin Le Gouguec's avatar
      Add test for bug#39680 · 5352bda4
      Kévin Le Gouguec authored
      * test/lisp/electric-tests.el (electric-pair-undo-unrelated-state):
      New test.
    • Tassilo Horn's avatar
      Allow back-references in syntax-propertize-rules. · 5af99187
      Tassilo Horn authored
      * lisp/emacs-lisp/syntax.el (syntax-propertize--shift-groups-and-backrefs):
      Renamed from syntax-propertize--shift-groups, and also shift
      (syntax-propertize-rules): Adapt docstring and use renamed function.
      * test/lisp/emacs-lisp/syntax-tests.el: New test.
      (syntax-propertize--shift-groups-and-backrefs): New ERT test.
  10. 18 May, 2020 2 commits
  11. 17 May, 2020 2 commits
    • Paul Eggert's avatar
      Don’t attempt to modify constant strings · 31395511
      Paul Eggert authored
      * lisp/bookmark.el (bookmark-bmenu-set-header):
      Use copy-sequence instead of concat, for clarity.
      Also, the byte-compiler optimizes (concat "a" "b") into "ab".
      * lisp/button.el (make-text-button):
      * test/lisp/erc/erc-track-tests.el (erc-track--erc-faces-in):
      * test/lisp/password-cache-tests.el:
      (password-cache-tests-in-cache-p, password-cache-tests-read)
      Don’t attempt to modify constant strings.
      * lisp/progmodes/elisp-mode.el (elisp--xref-format)
      Don’t attempt to modify constant strings via put-text-property.
      * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-across-ref):
      Don’t attempt to modify constant vectors or strings.
    • Paul Eggert's avatar
      Don’t attempt to modify constant conses · c7bc28bf
      Paul Eggert authored
      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)
      Use mapcar instead of mapc.
      * lisp/language/lao-util.el (lao-transcription-consonant-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.
  12. 16 May, 2020 1 commit
    • Michael Albinus's avatar
      Introduce process-file-return-signal-string · bbbab82a
      Michael Albinus authored
      * doc/lispref/processes.texi (Synchronous Processes):
      Describe `process-file-return-signal-string'.
      * doc/misc/tramp.texi: Adapt Tramp and Emacs version numbers.
      (Remote processes): Describe `process-file-return-signal-string'
      and $INSIDE_EMACS.
      * etc/NEWS: Describe `process-file-return-signal-string'.  Fix typos.
      * lisp/simple.el (process-file-return-signal-string): New user option.
      * lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
      * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Use it.
      * lisp/net/tramp.el (tramp-get-signal-strings): New defun.
      * test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
  13. 15 May, 2020 2 commits
  14. 14 May, 2020 3 commits
    • Philipp Stephani's avatar
      Fix documentation related to 'command-switch-alist'. · 406fb074
      Philipp Stephani authored
      While there, add a unit test to verify the behavior.
      * doc/lispref/os.texi (Command-Line Arguments): Fix documentation: the
      option string in 'command-switch-alist' does include leading hyphens.
      Also mention that 'command-switch-alist' parsing ignores equals signs
      in options.
      * test/lisp/startup-tests.el
      (startup-tests/command-switch-alist): New unit test.
    • Tino Calancha's avatar
      Combine archive-int-to-mode and tar-grind-file-mode · 3a284e57
      Tino Calancha authored
      Add a new function, file-modes-number-to-symbolic.
      Make archive-int-to-mode and obsolete alias of it; use it
      to define tar-grind-file-mode (Bug#27952).
      * lisp/files.el (file-modes-number-to-symbolic): New defun.
      * lisp/arc-mode.el (archive-int-to-mode): Make it an obsolete alias.
      * lisp/tar-mode.el (tar-grind-file-mode):
      Use file-modes-number-to-symbolic.
      * test/lisp/arc-mode-tests.el (arc-mode-test-archive-int-to-mode)
      * test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
      Update test.
      * test/lisp/files-tests.el (files-tests-file-modes-symbolic-to-number)
      (files-tests-file-modes-number-to-symbolic): New tests.
      * doc/lispref/files.texi (Changing Files): Document the new funtion.
      * etc/NEWS (Lisp Changes in Emacs 28.1): Announce it.
    • Mattias Engdegård's avatar
      Calc: fix LU decomposition for non-numeric matrices (bug#41223) · 1d559581
      Mattias Engdegård authored
      Computing determinant and inverse for on some matrices containing
      non-numeric elements failed or gave the wrong result.
      Reported by Mauro Aranda.
      * lisp/calc/calc-mtx.el (math-do-matrix-lud): Don't use zero as pivot.
      * test/lisp/calc/calc-tests.el (calc-matrix-determinant): New test.
  15. 13 May, 2020 3 commits
  16. 12 May, 2020 2 commits
  17. 10 May, 2020 2 commits
    • Simen Heggestøyl's avatar
      Use lexical-binding in glasses.el and add tests · 8f808be6
      Simen Heggestøyl authored
      * lisp/progmodes/glasses.el: Use lexical-binding.
      (glasses-separator, glasses-original-separator, glasses-face)
      (glasses-separate-capital-groups, glasses-uncapitalize-p)
      (glasses-uncapitalize-regexp, glasses-convert-on-write-p): Remove
      redundant :group args.
      * test/lisp/progmodes/glasses-tests.el: New file with tests for
    • Simen Heggestøyl's avatar
      Allow underscores in CSS variable names · 1efaa1d6
      Simen Heggestøyl authored
      * lisp/textmodes/css-mode.el (css-nmchar-re): Allow underscores in
      variable names (and in identifiers in general).
      * test/manual/indent/css-mode.css: Add some examples of variable names
      with underscores in them.
      * test/manual/indent/less-css-mode.less: Add some examples of variable
      names with underscores in them.
      * test/manual/indent/scss-mode.scss: Add some examples of variable
      names with underscores in them.
  18. 09 May, 2020 4 commits
    • Simen Heggestøyl's avatar
      Use lexical-binding in help-mode.el and add tests · 9d8fc3a5
      Simen Heggestøyl authored
      * lisp/help-mode.el: Use lexical-binding.
      (help-mode-map, help-mode-menu, help-mode-setup)
      (help-mode-finish): Make spelling of "Help mode" consistent throughout
      the doc strings (also making it consistent with the spelling of "Help
      mode" used in the Elisp manual).
      (help-do-xref): Re-indent to make the else-branch easier to see.
      * test/lisp/help-mode-tests.el: New file with tests for help-mode.el.
    • Pieter van Oostrum's avatar
      Add new filter command to Package Menu (Bug#39903) · 196bc13b
      Pieter van Oostrum authored
      * lisp/emacs-lisp/package.el
      (package-menu-filter-marked): New filter command.
      * test/lisp/emacs-lisp/package-tests.el
      (package-test-list-filter-marked): New test.
      (package-menu-mode-map): Update menu to include new filter command.
      * doc/emacs/package.texi (Package Menu): Document the new command.
      * etc/NEWS: Announce the new command.
    • Michal Nazarewicz's avatar
      cc-mode: extend regexp used by ‘c-or-c++-mode’ · ae3c5106
      Michal Nazarewicz authored
      * lisp/progmodes/cc-mode (c-or-c++-mode--regexp): Expand the regexp to
      match some more C++-only constructs and recognise a few more standard
      C++ header files.  Also make sure identifiers start with non-digit.
      (c-or-c++-mode): Add ‘(interactive)’ declaration.
      * test/lisp/progmodes/cc-mode-tests.el (c-or-c++-mode): Add test case
      for the newly recognised constructs.
    • Michal Nazarewicz's avatar
      cc-mode: add ‘c-lineup-ternary-bodies’ (bug#41061) · fab23328
      Michal Nazarewicz authored
      Introduce ‘c-lineup-ternary-bodies’ function which, when used as
      a c lineup function, aligns question mark and colon of a ternary
      operator.  For example:
          return arg % 2 == 0 ? arg / 2
                              : (3 * arg + 1);
      * lisp/progmodes/cc-align.el (c-lineup-ternary-bodies): New function.
      * doc/misc/cc-mode.texi (Operator Line-Up Functions): Document the
      new function.
      * test/lisp/progmodes/cc-mode-tests.el (c-lineup-ternary-bodies): New
      test case.
  19. 07 May, 2020 3 commits
    • Noam Postavsky's avatar
      Don't increment array index in cl-loop twice (Bug#40727) · ddc80203
      Noam Postavsky authored
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Put the temp-idx
      increment in cl--loop-body, leaving just the side-effect free testing
      of the index for both cl--loop-body and cl--loop-conditions.
      * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays):
      Extend test to cover this case.
    • Noam Postavsky's avatar
      Revert "cl-loop: Calculate the array length just once" · de715859
      Noam Postavsky authored
      It fails when using 'and' (parallel bindings) for arrays (Bug#40727).
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Revert to
      recomputing array length.
      * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-arrays): New
    • Michael Albinus's avatar
      Handle signals in Tramp's process-file · de5f5921
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
      * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Handle signals.
      * test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
  20. 06 May, 2020 2 commits
    • Michael Albinus's avatar
      process-file in Tramp must return exit code (Bug#41099) · d9e10a1d
      Michael Albinus authored
      * lisp/net/tramp-adb.el (tramp-adb-send-command-and-check): Add optional
      argument EXIT-STATUS.
      (tramp-adb-handle-process-file): Use it.
      * lisp/net/tramp-sh.el (tramp-send-command-and-check): Add optional
      argument EXIT-STATUS.
      (tramp-sh-handle-process-file): Use it.  (Bug#41099)
      * test/lisp/net/tramp-tests.el (tramp-test28-process-file): Adapt test.
    • Noam Postavsky's avatar
      ; Mark Bug#29799 tests as failing since we reverted the fix · 1e09364d
      Noam Postavsky authored
      * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-for-as-equals-and)
      (cl-macs-loop-conditional-step-clauses): Set :expected-result to
      Don't merge to master.  The mentioned reverts are a safe-for-release
      fix for Bug#40727.
  21. 04 May, 2020 1 commit
  22. 03 May, 2020 1 commit
  23. 01 May, 2020 1 commit
    • Stefan Kangas's avatar
      Use lexical-binding in most remaining tests · 7fa3e754
      Stefan Kangas authored
      * test/lisp/comint-tests.el:
      * test/lisp/custom-resources/custom--test-theme.el:
      * test/lisp/dabbrev-tests.el:
      * test/lisp/emulation/viper-tests.el:
      * test/lisp/erc/erc-track-tests.el:
      * test/lisp/gnus/gnus-tests.el:
      * test/lisp/imenu-tests.el:
      * test/lisp/info-xref-tests.el:
      * test/lisp/jit-lock-tests.el:
      * test/lisp/json-tests.el:
      * test/lisp/man-tests.el:
      * test/lisp/replace-tests.el:
      * test/lisp/shadowfile-tests.el:
      * test/lisp/subr-tests.el:
      * test/lisp/thingatpt-tests.el:
      * test/lisp/xml-tests.el: Use lexical-binding.
      * test/lisp/man-tests.el (man-tests-filter-strings):
      * test/lisp/shadowfile-tests.el (shadow-test00-clusters)
      (shadow-test01-sites, shadow-test06-literal-groups)
      (shadow-test07-regexp-groups, shadow-test09-shadow-copy-files):
      Silence byte-compiler.
  24. 30 Apr, 2020 1 commit
    • Stefan Kangas's avatar
      Use lexical-binding in most remaining emacs-lisp tests · d386f1fb
      Stefan Kangas authored
      * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el:
      * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
      * test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el:
      * test/lisp/emacs-lisp/faceup-resources/faceup-test-mode.el:
      * test/lisp/emacs-lisp/faceup-resources/faceup-test-this-file-directory.el:
      * test/lisp/emacs-lisp/faceup-tests/faceup-test-basics.el:
      * test/lisp/emacs-lisp/faceup-tests/faceup-test-files.el:
      * test/lisp/emacs-lisp/package-resources/newer-versions/new-pkg-1.0.el:
      * test/lisp/emacs-lisp/package-resources/newer-versions/simple-single-1.4.el:
      * test/lisp/emacs-lisp/package-resources/simple-depend-1.0.el:
      * test/lisp/emacs-lisp/package-resources/simple-single-1.3.el:
      * test/lisp/emacs-lisp/package-resources/simple-two-depend-1.1.el:
      * test/lisp/emacs-lisp/package-tests.el:
      * test/lisp/emacs-lisp/shadow-resources/p1/foo.el:
      * test/lisp/emacs-lisp/shadow-resources/p2/FOO.el: Use lexical-binding.
      * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
      (eitest-F, eitest-H, eitest-I, constructor, make-instance)
      (initialize-instance, CNM-M):
      * test/lisp/emacs-lisp/package-tests.el (with-package-test)
      (package-test-update-archives, package-test-signed): Silence byte-compiler.