summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Simplify test dependency generationPaul Eggert2017-04-012-118/+11
| | | | | | | | | | | | | | Generate default dependencies by using GNU extensions to ‘make’ rather than via a hacky auxiliary program and script. * .gitignore: Remove test/make-test-deps.mk. * test/Makefile.in (ELFILES, LOGFILES, TESTS): Use :=, not =, to avoid multiple redundant invocations of ‘find’. (test_template): Infer dependency directly instead of via make-test-deps.mk. (check-doit): Prepend ‘@’ to avoid excessively long ‘make’ output. (clean): No need to clean make-test-deps.mk. (make-test-deps.mk): Remove rule. * test/make-test-deps.emacs-lisp: Remove.
* * test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet testsStefan Monnier2017-04-011-4/+21
| | | | | | (cl-lib-symbol-macrolet): Fix last test so it doesn't break the whole test suite. (cl-lib-symbol-macrolet-2): New test.
* Use only posix options in a ediff-ptch testTino Calancha2017-04-011-10/+15
| | | | | | * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084): Use just "-b" patch option. Don't assume a particular suffix for the backup files.
* Initial implementation of HTTP Digest qop for urlJarno Malmari2017-04-011-5/+46
| | | | | | | | | | | | | | | | | | | | | | | This also refactors digest authentication functions in url-auth.el. * lisp/url/url-auth.el (url-digest-auth, url-digest-auth-create-key): (url-digest-auth-build-response, url-digest-auth-directory-id-assoc): (url-digest-auth-name-value-string, url-digest-auth-source-creds): (url-digest-cached-key, url-digest-cache-key, url-digest-find-creds): (url-digest-find-new-key, url-digest-prompt-creds): Add new functions to simplify code and aid in unit testing. (url-digest-auth-build-response): Hook up new functionality, or fall back to previous. (url-digest-auth-make-request-digest-qop): (url-digest-auth-make-cnonce, url-digest-auth-nonce-count): (url-digest-auth-name-value-string): Add new helper functions. * test/lisp/url/url-auth-tests.el (url-auth-test-colonjoin): (url-auth-test-digest-ha1, url-auth-test-digest-ha2): (url-auth-test-digest-request-digest): Add a few tests as now more features are testable via intermediate functions. (url-auth-test-challenges, url-auth-test-digest-request-digest): Test the new implementation. Parts of these were accidentally already merged in the past.
* Tweak ediff-ptch test in previous commit a bit moreTino Calancha2017-04-011-13/+15
| | | | | * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084): Apply patches without requiring a shell. Add some comments.
* Tweak an ediff-ptch testGlenn Morris2017-03-311-20/+23
| | | | | * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084): Add skip conditions. Avoid going through shell where not needed.
* * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet): New test.Stefan Monnier2017-03-311-0/+9
|
* dired-mark-suffix: New commandTino Calancha2017-03-311-0/+53
| | | | | | | | | | | | | | Now dired-mark-extension prepends '.' to extension when not present. Add command dired-mark-suffix to preserve the previous behaviour (Bug#25942). * lisp/dired-x.el (dired-mark-suffix): New command; mark files ending in a given suffix. (dired--mark-suffix-interactive-spec): New defun. (dired-mark-extension, dired-mark-suffix): Use it. * doc/misc/dired-x.texi (Advanced Mark Commands): Update manual. * test/lisp/dired-x-tests.el: New test suite; add test for these features. ; * etc/NEWS (Incompatible Lisp Changes in Emacs 26.1): ; Mention these changes.
* Use find -delete if availablePaul Eggert2017-03-301-7/+6
| | | | | | | | | This shortens the ‘make’ output and should avoid some repetitive scanning of directories during a build. * configure.ac (FIND_DELETE): New var. * lisp/Makefile.in (compile-always, bootstrap-clean): * test/Makefile.in (clean, bootstrap-clean): Use it. * test/Makefile.in (ELCFILES, LOGSAVEFILES): Remove; no longer needed.
* Some inotify cleanupPaul Eggert2017-03-301-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This catches some problems with integer overflow and races that I noticed in inotify.c after reviewing the changes installed to fix Bug#26126. * src/fns.c, src/lisp.h (equal_no_quit): Now extern. * src/inotify.c (aspect_to_inotifymask): Check for cycles and for improper lists. (make_lispy_mask, lispy_mask_match_p): Remove. All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER. (inotifyevent_to_event, add_watch): Don’t assume watch descriptors and cookies fit in fixnums. (add_watch): Use assoc_no_quit, not Fassoc. Avoid integer overflow in (very!) long-running processes where the Emacs watch ID could overflow. Avoid some duplicate code. (find_descriptor): New function. (remove_descriptor): First arg is now the returned value from find_descriptor, rather than the descriptor. This way, the value can be removed without calling Fdelete, which might quit. Wait until the end (when watch_list is consistent) before signaling any errors. (remove_watch, inotify_callback): Use find_descriptor to avoid the need for Fdelete. (inotify_callback): Use simpler tests for ioctl failure. Free temporary buffer if signaled, and put it on the stack if small. Use ssize_t to index through read results, to avoid a cast. (valid_watch_descriptor): New function, with a tighter check. (Finotify_rm_watch, Finotify_valid_p): Use it. (Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead of Fassoc. Do not assume the first assoc succeeds. * test/src/inotify-tests.el (inotify-valid-p-simple): Add inotify-valid-p tests, some of which dump core without the fixes noted above.
* Fix obsolete ‘test/automated’ referencesPaul Eggert2017-03-271-3/+3
| | | | | | | | | | | | | | * Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean) (bootstrap-clean, maintainer-clean): Clean ‘test’, not ‘test/automated’. Test for existence of subdirectory only for ‘test’, not for directories that should always exist. * admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el: * lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el: * lisp/man.el (Man-parse-man-k): * lisp/url/url-domsuf.el, make-dist: * test/file-organization.org: Fix obsolete references to test/automated.
* Fix issues regarding inotify file-notificationAndreas Politz2017-03-261-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove special code handling the inotify back-end. * lisp/filenotify.el (file-notify--watch): New struct representing a file-watch. (file-notify-descriptors): Use the new struct as hash-value. (file-notify-handle-event): Check that event is a cons. (file-notify--rm-descriptor, file-notify--event-watched-file) (file-notify--event-file-name, file-notify--event-file1-name) (file-notify-callback, file-notify-add-watch) (file-notify-rm-watch, file-notify-valid-p): Use new struct. Remove special code handling inotify descriptors. Remove code handling multiple clients per descriptor. (file-notify--descriptor): Remove unused function. Let inotify-add-watch return a unique descriptor on every call, like every other back-end does (Bug#26126). Prevent multiple clients from interfering with each other, when watching a shared descriptor. * src/inotify.c (watch_list): Extend the format by including a id and the provided mask. (INOTIFY_DEFAULT_MASK): Default mask used for all clients. (make_watch_descriptor): Removed. (make_lispy_mask, lispy_mask_match_p): New functions. (inotifyevent_to_event): Match event against the mask provided by the client. (add_watch, remove_descriptor, remove_watch): New functions for managing the watch_list. (inotify_callback): Use the new functions. (Finotify_add_watch, Finotify_rm_watch): Remove deprecated flags from documentation. Add check for validity of provided descriptor. Use the new functions. Use the default mask. (INOTIFY_DEBUG): Add new debug conditional. (inotify-watch-list, inotify-allocated-p): New debug functions. (symbol_to_inotifymask, syms_of_inotify): Remove deprecated symbols. * test/lisp/filenotify-tests.el: (file-notify-test02-rm-watch): Remove expected failure for inotify.
* Protect against an infloop in python-modePhilipp Stephani2017-03-231-0/+19
| | | | | | | | | | | | | | | | | There appears to be an edge case caused by using `syntax-ppss' in a narrowed buffer during JIT lock inside of Python triple-quote strings. Unfortunately it is impossible to reproduce without manually destroying the syntactic information in the Python buffer, but it has been observed in practice. In that case it can happen that the syntax caches get sufficiently out of whack so that there appear to be overlapping strings in the buffer. As Python has no nested strings, this situation is impossible and leads to an infloop in `python-nav-end-of-statement'. Protect against this by checking whether the search for the end of the current string makes progress. * python.el (python-nav-end-of-statement): Protect against infloop. * progmodes/python-tests.el (python-tests--python-nav-end-of-statement--infloop): Add unit test.
* Use lexical-bind in TrampMichael Albinus2017-03-231-7/+11
| | | | | | | | | | | | | | | | | | | | | * lisp/net/tramp*.el: Add lexical-binding cookie. Move declarations up. * lisp/net/tramp-adb.el (tramp-adb-parse-device-names): Use `push' rather than `add-to-list'. (tramp-adb-get-device): Remove unused variable. * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): Remove unused variable. * lisp/net/tramp.el (auto-save-file-name-transforms): Declare. (tramp-find-file-name-coding-system-alist): Use `push' rather than `add-to-list'. * test/lisp/net/tramp-tests.el: Add lexical-binding cookie. Require 'dired. Move declarations up. (tramp-test32-make-nearby-temp-file): Wrap `make-nearby-temp-file' and `temporary-file-directory' calls with `with-no-warnings'. (tramp-test35-asynchronous-requests): Mark unused variable.
* Fix filenotify.el issue for kqueueMichael Albinus2017-03-221-2/+13
| | | | | | | | | * lisp/filenotify.el (file-notify-add-watch): Use directory for remote file name handlers. * test/lisp/filenotify-tests.el (file-notify-test01-add-watch): Create/delete temporary file only for "kqueue". (file-notify-test02-rm-watch): Create/delete temporary files.
* Extend `file-notify-test02-rm-watch'Michael Albinus2017-03-221-4/+51
| | | | | | | * test/lisp/filenotify-tests.el (file-notify-test02-rm-watch): Expect it failed for inotify. Divide tests into different `unwind-protect' clauses. Check, that removing watch descriptors out of order do not harm. (Bug#26126)
* * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-subsexp): Test for Bug#26187Noam Postavsky2017-03-211-0/+4
|
* epatch: Save right backups in Git multipatchesTino Calancha2017-03-211-1/+58
| | | | | | | | | | Multipatches on N Git files save wrong backups for N-1 files; only the last one has a correct backup (Bug#26084). * lisp/vc/diff-mode.el (diff-file-junk-re): Add 'Prereq: ' * lisp/vc/ediff-ptch.el (ediff-map-patch-buffer): Use 'diff-file-junk-re'. * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug25010): Rename from ibuffer-test-bug25010. (ediff-ptch-test-bug26084): New test.
* Fix Bug#26127Michael Albinus2017-03-171-23/+73
| | | | | | | | | | | | | | | | * lisp/filenotify.el (file-notify--rm-descriptor): Check, that there is a function which could be called. (Bug#26127) * test/lisp/filenotify-tests.el (file-notify--test-cleanup): Clear also `file-notify-descriptors'. (file-notify--test-make-temp-name): Move up. (file-notify-test02-rm-watch): New test. (file-notify-test03-events, file-notify-test04-autorevert) (file-notify-test05-file-validity) (file-notify-test06-dir-validity) (file-notify-test07-many-events, file-notify-test08-backup) (file-notify-test09-watched-file-in-watched-dir) (file-notify-test10-sufficient-resources): Rename.
* Add obarray-size and fix tests accordingly. Use obarrayp in cedet.Stefan Monnier2017-03-161-2/+4
| | | | | | | | | | | | * lisp/obarray.el (obarray-size): New function. * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-symbol) (semantic-lex-spp-save-table, semantic-lex-spp-macros): * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment): Use obarrayp. * test/lisp/obarray-tests.el (obarray-make-default-test) (obarray-make-with-size-test): Use it.
* Reenable lost Tramp test caseMichael Albinus2017-03-141-1/+8
| | | | | * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion): Reenable lost test case.
* Require method in remote file name syntaxMichael Albinus2017-03-131-120/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/minibuffer.el (completion--nth-completion): Do not bind `non-essential'. * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): * lisp/net/tramp-sh.el (tramp-maybe-open-connection): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Do not call `tramp-check-proper-method-and-host'. * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Better traces. (tramp-maybe-open-connection): Do not use argument for ´tramp-completion-mode-p'. * lisp/net/tramp.el (tramp-default-method-marker): New defconst. (tramp-prefix-format, tramp-postfix-method-format) (tramp-prefix-ipv6-format, tramp-postfix-ipv6-format) (tramp-prefix-port-format, tramp-postfix-host-format) (tramp-file-name-regexp, tramp-completion-file-name-regexp): Use `eq' instead of `eqal'. (tramp-method-regexp, tramp-domain-regexp) (tramp-remote-file-name-spec-regexp) (tramp-file-name-regexp-unified) (tramp-completion-file-name-regexp-unified) (tramp-completion-file-name-regexp-separate): Adapt regexp. (tramp-completion-file-name-handler-alist) (tramp-run-real-handler): Autoload them. (tramp-find-method): Handle `tramp-default-method-marker'. (tramp-check-proper-method-and-host) (tramp-completion-run-real-handler): Remove them. (tramp-error-with-buffer, tramp-connectable-p): Do not use argument for ´tramp-completion-mode-p'. (tramp-find-foreign-file-name-handler): Remove COMPLETION argument. Do not apply heuristic for completion. (tramp-file-name-handler): Do not modify `non-essential'. (tramp-completion-file-name-handler): Change implementation. (tramp-autoload-file-name-handler) (tramp-completion-handle-file-name-all-completions): Call `tramp-run-real-handler'. (tramp-completion-mode-p): Do not autoload. Remove argument. Do not apply heuristic for completion. (tramp-completion-dissect-file-name): Simplify implementation. (tramp-handle-file-name-as-directory): Call `tramp-connectable-p'. * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax) (tramp-test02-file-name-dissect) (tramp-test03-file-name-defaults) (tramp-test06-directory-file-name): Adapt to the new syntax. (tramp-test11-copy-file, tramp-test12-rename-file) (tramp--test-check-files): Deactivate temporarily tests with quoted file names. (tramp-test16-directory-files, tramp-test17-insert-directory): Adapt tests. (tramp-test24-file-name-completion): Do not check for completion mode. (tramp-test31-make-auto-save-file-name): Deactivate temporarily two tests.
* * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Fix regexp.Tino Calancha2017-03-131-1/+1
|
* * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Simplify.Noam Postavsky2017-03-121-0/+94
| | | | | * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-sexp): (indent-subsexp, indent-sexp-in-string): New tests.
* Teach etags to process ENUM_BF correctlyEli Zaretskii2017-03-127-97/+262
| | | | | | | | | | | | | | | | | | | * lib-src/etags.c (sym_type): New enumeration value st_C_enum_bf. (hash): Regenerated values for asso_values[] array. (in_word_set): Update values of TOTAL_KEYWORDS and MAX_HASH_VALUE. Add "ENUM_BF" to the wordlist[] array. (in_enum_bf): New file-global variable. (consider_token): Skip ENUM_BF if not in a macro definition. (C_entries): Reset the in_enum_bf flag when past its closing parenthesis. * 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: * test/manual/etags/CTAGS.good: Adapt to changes in etags.
* ; Update expected results of etags tests.Eli Zaretskii2017-03-127-5010/+5010
| | | | | | | | | | * test/manual/etags/CTAGS.good: * 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: Update.
* Adapt tramp-tests.elMichael Albinus2017-03-101-2/+5
| | | | | | * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name) (tramp-test24-file-name-completion): Call `tramp-completion-mode-p' with argument.
* Update a cl-print testGlenn Morris2017-03-081-1/+1
| | | | | * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Update for recent change in cl-print-object function output.
* min and max should not return markersPaul Eggert2017-03-071-2/+6
| | | | | | | | | Problem reported by Glenn Morris in: http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00147.html * src/data.c (minmax_driver): Convert any marker result to an integer, since some callers assume this. * test/src/data-tests.el (data-tests-max, data-tests-min): Test for this.
* min and max now return one of their argumentsPaul Eggert2017-03-061-0/+20
| | | | | | | | | * doc/lispref/numbers.texi (Comparison of Numbers): * etc/NEWS: Document this. * src/data.c (Amax, Amin): Remove constants. All uses removed. (minmax_driver): New function. (Fmax, Fmin): Use it instead of arith_driver. * test/src/data-tests.el (data-tests-max, data-tests-min): New tests.
* ffloor etc. now accept only floatsPaul Eggert2017-03-051-0/+6
| | | | | | | * etc/NEWS: Say why. * src/floatfns.c (Ffceiling, Fffloor, Ffround, Fftruncate): Require arg to be float. * test/src/floatfns-tests.el (fround-fixnum): Check this.
* ; Spelling fixesPaul Eggert2017-03-051-1/+1
|
* Compare and round more carefullyPaul Eggert2017-03-041-0/+26
| | | | | | | | | | | | | | | | * etc/NEWS: Document this. * src/data.c (store_symval_forwarding): * src/sound.c (parse_sound): Do not botch NaN comparison. * src/data.c (cons_to_unsigned, cons_to_signed): Signal an error if a floating-point arg is not integral. * src/data.c (cons_to_unsigned, cons_to_signed): * src/fileio.c (file_offset): Use simpler overflow check. * src/dbusbind.c (xd_extract_signed, xd_extract_unsigned): Avoid rounding error in overflow check. (Fcar_less_than_car): Use arithcompare directly. * test/src/charset-tests.el: New file.
* logb now works correctly on large integersPaul Eggert2017-03-031-0/+3
| | | | | | | | | | | | | * admin/merge-gnulib (GNULIB_MODULES): Add count-leading-zeros. * etc/NEWS: Document the change. * lib/count-leading-zeros.c, lib/count-leading-zeros.h: * m4/count-leading-zeros.m4: New files, copied from Gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * src/floatfns.c: Include count-leading-zeros.h. (Flogb): Do not convert fixnum to float before taking the log, as the rounding error can cause the answer to be off by 1. * src/lisp.h (EMACS_UINT_WIDTH): New constant. * test/src/floatfns-tests.el (logb-extreme-fixnum): New test.
* Use lexical binding in benchmark.elTino Calancha2017-03-031-0/+51
| | | | | | * lisp/emacs-lisp/benchmark.el: Enable lexical binding. (benchmark-elapse): Use 'declare'. * test/lisp/emacs-lisp/benchmark-tests.el: Add test suite.
* Switch pp.el to lexical bindingNoam Postavsky2017-03-021-0/+35
| | | | | | | | | | Additionally, do some minor code cleanup. * lisp/emacs-lisp/pp.el: Set lexical-binding. (pp-buffer): Use skip-syntax-forward. (pp-eval-expression): Use push. (pp-last-sexp): Use with-syntax-table. * test/lisp/emacs-lisp/pp-tests.el: New tests.
* Fix rounding errors in <, =, etc.Paul Eggert2017-03-021-0/+6
| | | | | | | | | | * etc/NEWS: Document this. * src/bytecode.c (exec_byte_code): * src/data.c (arithcompare): Do not lose information when comparing floats to integers. * test/src/data-tests.el (data-tests-=, data-tests-<) (data-tests->, data-tests-<=, data-tests->=): Test this.
* * test/lisp/net/puny.el: New file.Glenn Morris2017-03-011-0/+41
|
* Fix rounding error in ‘ceiling’ etc.Paul Eggert2017-03-012-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this fix, (ceiling most-negative-fixnum -1.0) returns most-negative-fixnum instead of correctly signaling range-error, and similarly for floor, round, and truncate. * configure.ac (trunc): Add a check, since Gnulib’s doc says ‘trunc’ is missing from MSVC 9. The Gnulib doc says ‘trunc’ is also missing from some other older operating systems like Solaris 9 which I know we don’t care about any more, so MSVC is the only reason to worry about ‘trunc’ here. * src/editfns.c (styled_format): Formatting a float with %c is now an error. The old code did not work in general, because FIXNUM_OVERFLOW_P had rounding errors. Besides, the "if (FLOATP (...))" was in there only as a result of my misunderstanding old code that I introduced 2011. Although %d etc. is sometimes used on floats that represent huge UIDs or PIDs etc. that do not fit in fixnums, this cannot happen with characters. * src/floatfns.c (rounding_driver): Rework to do the right thing when the intermediate result equals 2.305843009213694e+18, i.e., is exactly 1 greater than MOST_POSITIVE_FIXNUM on a 64-bit host. Simplify so that only one section of code checks for overflow, rather than two. (double_identity): Remove. All uses changed to ... (emacs_trunc): ... this new function. Add replacement for platforms that lack ‘trunc’. * src/lisp.h (FIXNUM_OVERFLOW_P, make_fixnum_or_float): Make it clear that the arg cannot be floating point. * test/src/editfns-tests.el (format-c-float): New test. * test/src/floatfns-tests.el: New file, to test for this bug.
* Fix epg-tests with dummy-pinentry program (Bug#23619)Noam Postavsky2017-02-282-6/+34
| | | | | | | * test/data/epg/dummy-pinentry: New file. * test/lisp/epg-tests.el (with-epg-tests): Add it to gpg-agent.conf when a passphrase is required. Add debug declaration. Set GPG_AGENT_INFO non-destructively.
* Prevent for consing in cl-mapc and cl-maplTino Calancha2017-02-271-0/+59
| | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl--mapcar-many): Add optional arg ACC; If non-nil, accumulate values in the result (Bug#25826). (cl-mapc): Do computations inside function instead of call cl-map. (cl-mapl): Do computations inside function instead of call cl-maplist. * lisp/emacs-lisp/cl-lib.el (mapcar): Add autoload cookie. Call cl--mapcar-many with non-nil 3rd argument. * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map) (cl-extra-test-mapc, cl-extra-test-mapcar, cl-extra-test-mapl) (cl-extra-test-maplist): New tests.
* Choose the right target dir on dired operationsTino Calancha2017-02-271-0/+32
| | | | | | | | Prevent from changing the input target dir when dired-dwim-target is non-nil (Bug#25609). * lisp/dired-aux.el (dired-do-create-files): If dired-dwim-target is non-nil, then bind 'default' to nil. * test/lisp/dired-tests.el (dired-test-bug25609): Add test.
* Use font-lock-doc-face in js-modeTom Tromey2017-02-251-0/+12
| | | | | | | | | Bug#25858: * lisp/progmodes/js.el (js-font-lock-syntactic-face-function): New defun. (js-mode): Use it. * test/lisp/progmodes/js-tests.el (js-mode-doc-comment-face): New test.
* Don't use IP 0.0.0.0 for package test server (Bug#22582)Noam Postavsky2017-02-252-12/+13
| | | | | | | | | * test/lisp/emacs-lisp/package-resources/package-test-server.py: Set 'server_address' when port number is given on the command line. Print IP and port number as a URL, and flush it after printing. * test/lisp/emacs-lisp/package-tests.el: (package-test-update-archives-async): Grab the whole URL from server output.
* Fix scrolling with partial line corner case (Bug#25792)Noam Postavsky2017-02-241-34/+71
| | | | | | | | | | | | | | | | | | | | | Also fix up the scrolling tests so that they don't make so many assumptions about the current window configuration. * src/xdisp.c (try_window): Take partial line height into account when comparing cursor position against scroll margin. * test/manual/scroll-tests.el (scroll-tests-with-buffer-window): Add HEIGHT argument, to allow setting up window with exact height and partial line. (scroll-tests-display-buffer-with-height): New display-buffer action function. (scroll-tests-scroll-margin-over-max): (scroll-tests--scroll-margin-whole-window): Pass HEIGHT to `scroll-tests--scroll-margin-whole-window'. (scroll-tests-conservative-show-trailing-whitespace): New test. (scroll-tests-scroll-margin-negative): Fix line counting. (scroll-tests--point-in-middle-of-window-p): Set window height properly.
* Fix indentation error in js.elTom Tromey2017-02-241-0/+10
| | | | | | | * lisp/progmodes/js.el (js--indent-in-array-comp): Wrap forward-sexp call in condition-case. * test/lisp/progmodes/js-tests.el (js-mode-indentation-error): New test.
* * lisp/emacs-lisp/cl-print.el: New fileStefan Monnier2017-02-231-0/+40
| | | | | | | | | | * lisp/emacs-lisp/nadvice.el (advice--where): New function. (advice--make-docstring): Use it. * src/print.c (print_number_index): Don't declare here any more. (Fprint_preprocess): New function. * test/lisp/emacs-lisp/cl-print-tests.el: New file.
* Simplify cl-get using `plist-member'Noam Postavsky2017-02-201-0/+38
| | | | | | * lisp/emacs-lisp/cl-extra.el (cl-get, cl-getf, cl--set-getf): Use `plist-member' instead of explicit loop. * test/lisp/emacs-lisp/cl-extra-tests.el: New tests.
* Rework connection local variablesMichael Albinus2017-02-191-89/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For connection local variables interface, `class' is renamed to `profile'. All arguments `criteria' are a plist now. * doc/lispref/variables.texi (Connection Local Variables): Rewrite. * lisp/files-x.el (connection-local-profile-alist): Rename from `connection-local-class-alist'. Adapt docstring. (connection-local-criteria-alist): Adapt docstring. (connection-local-normalize-criteria): New defun. (connection-local-get-profiles): Rename from `connection-local-get-classes'. Rewrite. (connection-local-set-profiles): Rename from `connection-local-set-classes'. Rewrite. (connection-local-get-profile-variables): Rename from `connection-local-get-class-variables'. Rewrite. (connection-local-set-profile-variables): Rename from `connection-local-set-class-variables'. Rewrite. (hack-connection-local-variables) (hack-connection-local-variables-apply)): Rewrite. (with-connection-local-profiles): Rename from `ith-connection-local-classes'. Rewrite. * lisp/net/tramp.el (tramp-set-connection-local-variables): Compute criteria. * lisp/net/tramp-cmds.el (tramp-bug): Use `connection-local-profile-alist'. * test/lisp/files-x-tests.el (files-x-test--variables1) (files-x-test--variables2, files-x-test--variables3) (files-x-test--variables4, files-x-test--criteria1) (files-x-test--criteria2): Make them a defconst. (files-x-test--application) (files-x-test--another-application, files-x-test--protocol) (files-x-test--user, files-x-test--machine): New defconst. (files-x-test--criteria): New defvar. (files-x-test--criteria3): Remove. (files-x-test-connection-local-set-profile-variables): Rename from `files-x-test-connection-local-set-class-variables'. Rewrite. (files-x-test-connection-local-set-profiles): Rename from `files-x-test-connection-local-set-classes'. Rewrite. (files-x-test-hack-connection-local-variables-apply) Rewrite. (files-x-test-with-connection-local-profiles): Rename from `files-x-test-with-connection-local-classes'. Rewrite.
* casing: don’t assume letters are *either* upper- or lower-case (bug#24603)Michal Nazarewicz2017-02-151-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | A compatibility digraph characters, such as Dž, are neither upper- nor lower-case. At the moment however, those are reported as upper-case¹ despite the fact that they change when upper-cased. Stop checking if a character is upper-case before trying to up-case it so that title-case characters are handled correctly. This fixes one of the issues mentioned in bug#24603. ¹ Because they change when converted to lower-case. Notice an asymmetry in that for a character to be considered lower-case it must not be upper-case (plus the usual condition of changing when upper-cased). * src/buffer.h (upcase1): Delete. (upcase): Change to upcase character unconditionally just like downcase does it. This is what upcase1 was. * src/casefiddle.c (casify_object, casify_region): Use upcase instead of upcase1 and don’t check !uppercasep(x) before calling upcase. * src/keyboard.c (read_key_sequence): Don’t check if uppercase(x), just downcase(x) and see if it changed. * test/src/casefiddle-tests.el (casefiddle-tests--characters, casefiddle-tests-casing): Update test cases which are now passing.