commit 5b3e4db53f0e81a51f611823f3b6627b973a18c6 (HEAD, refs/remotes/origin/master) Author: Eli Zaretskii Date: Sat Oct 24 10:07:44 2020 +0300 Fix last change in image.c for MS-Windows * src/image.c [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Define prototype for rsvg_handle_get_geometry_for_layer. (init_svg_functions) [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Load rsvg_handle_get_geometry_for_layer from the DLL, instead of rsvg_handle_get_dimensions. (rsvg_handle_get_geometry_for_layer) [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Define macro. (Bug#44065) diff --git a/src/image.c b/src/image.c index 5f6d9f4c44..61c5aa760c 100644 --- a/src/image.c +++ b/src/image.c @@ -9543,10 +9543,16 @@ DEF_DLL_FN (gboolean, rsvg_handle_write, (RsvgHandle *, const guchar *, gsize, GError **)); DEF_DLL_FN (gboolean, rsvg_handle_close, (RsvgHandle *, GError **)); #endif + +#if LIBRSVG_CHECK_VERSION (2, 46, 0) +DEF_DLL_FN (gboolean, rsvg_handle_get_geometry_for_layer, + (RsvgHandle *, const char *, const RsvgRectangle *, + RsvgRectangle *, RsvgRectangle *, GError **)); +#else DEF_DLL_FN (void, rsvg_handle_get_dimensions, (RsvgHandle *, RsvgDimensionData *)); +#endif DEF_DLL_FN (GdkPixbuf *, rsvg_handle_get_pixbuf, (RsvgHandle *)); - DEF_DLL_FN (int, gdk_pixbuf_get_width, (const GdkPixbuf *)); DEF_DLL_FN (int, gdk_pixbuf_get_height, (const GdkPixbuf *)); DEF_DLL_FN (guchar *, gdk_pixbuf_get_pixels, (const GdkPixbuf *)); @@ -9592,7 +9598,11 @@ init_svg_functions (void) LOAD_DLL_FN (library, rsvg_handle_write); LOAD_DLL_FN (library, rsvg_handle_close); #endif +#if LIBRSVG_CHECK_VERSION (2, 46, 0) + LOAD_DLL_FN (library, rsvg_handle_get_geometry_for_layer); +#else LOAD_DLL_FN (library, rsvg_handle_get_dimensions); +#endif LOAD_DLL_FN (library, rsvg_handle_get_pixbuf); LOAD_DLL_FN (gdklib, gdk_pixbuf_get_width); @@ -9627,7 +9637,11 @@ init_svg_functions (void) # undef g_clear_error # undef g_object_unref # undef g_type_init -# undef rsvg_handle_get_dimensions +# if LIBRSVG_CHECK_VERSION (2, 46, 0) +# undef rsvg_handle_get_geometry_for_layer +# else +# undef rsvg_handle_get_dimensions +# endif # undef rsvg_handle_get_pixbuf # if LIBRSVG_CHECK_VERSION (2, 32, 0) # undef g_file_new_for_path @@ -9653,7 +9667,11 @@ init_svg_functions (void) # if ! GLIB_CHECK_VERSION (2, 36, 0) # define g_type_init fn_g_type_init # endif -# define rsvg_handle_get_dimensions fn_rsvg_handle_get_dimensions +# if LIBRSVG_CHECK_VERSION (2, 46, 0) +# define rsvg_handle_get_geometry_for_layer fn_rsvg_handle_get_geometry_for_layer +# else +# define rsvg_handle_get_dimensions fn_rsvg_handle_get_dimensions +# endif # define rsvg_handle_get_pixbuf fn_rsvg_handle_get_pixbuf # if LIBRSVG_CHECK_VERSION (2, 32, 0) # define g_file_new_for_path fn_g_file_new_for_path commit 3af9e84ff59811734dcbb5d55e04e1fdb7051e77 Author: Stefan Kangas Date: Sat Oct 24 02:56:00 2020 +0200 Fix a broken unsafep test * test/lisp/emacs-lisp/unsafep-tests.el (test-unsafep/message): Fix test case. (unsafep-tests--safe): Rename from testcover-unsafep-safe. (unsafep-tests--unsafe): Rename from testcover-unsafep-unsafe. (test-unsafep/safe, test-unsafep/unsafe): Doc fix. Adjust usage of above renamed variables. diff --git a/test/lisp/emacs-lisp/unsafep-tests.el b/test/lisp/emacs-lisp/unsafep-tests.el index 2b920a00ca..dde0e0201d 100644 --- a/test/lisp/emacs-lisp/unsafep-tests.el +++ b/test/lisp/emacs-lisp/unsafep-tests.el @@ -27,7 +27,7 @@ (defvar safe-functions) ;;; These forms are all considered safe -(defconst testcover-unsafep-safe +(defconst unsafep-tests--safe '(((lambda (x) (* x 2)) 14) (apply 'cdr (mapcar (lambda (x) (car x)) y)) (cond ((= x 4) 5) (t 27)) @@ -47,7 +47,7 @@ "List of forms that `unsafep' should decide are safe.") ;;; These forms are considered unsafe -(defconst testcover-unsafep-unsafe +(defconst unsafep-tests--unsafe '(( (add-to-list x y) . (unquoted x)) ( (add-to-list y x) @@ -106,25 +106,23 @@ ( (let (1) 2) . (variable 1)) ) - "A-list of (FORM . REASON)... that`unsafep' should decide are unsafe.") + "A-list of (FORM . REASON)... that `unsafep' should decide are unsafe.") (ert-deftest test-unsafep/safe () - "Executes all unsafep tests and displays the coverage results." + "Check safe forms with safe-functions nil." (let (safe-functions) - (dolist (x testcover-unsafep-safe) + (dolist (x unsafep-tests--safe) (should-not (unsafep x))))) (ert-deftest test-unsafep/message () - ;; FIXME: This failed after converting these tests from testcover to - ;; ert. - :expected-result :failed - (should-not '(dolist (x y) (message "here: %s" x))) - (should-not '(dotimes (x 14 (* x 2)) (message "here: %d" x)))) + "Check that message is considered unsafe." + (should (unsafep '(dolist (x y) (message "here: %s" x)))) + (should (unsafep '(dotimes (x 14 (* x 2)) (message "here: %d" x))))) (ert-deftest test-unsafep/unsafe () - "Executes all unsafep tests and displays the coverage results." + "Check unsafe forms with safe-functions nil." (let (safe-functions) - (dolist (x testcover-unsafep-unsafe) + (dolist (x unsafep-tests--unsafe) (should (equal (unsafep (car x)) (cdr x)))))) (ert-deftest test-unsafep/safe-functions-t () commit 8461cfc8fcef424c7f1098f967679b4bdaa4348e Author: Stefan Kangas Date: Sat Oct 24 02:36:33 2020 +0200 Move epg.el test data to follow our conventions * test/lisp/epg-tests.el (ert-x): Require. (epg-tests-data-directory): Remove variable. (with-epg-tests): Use ert-resource-file. * test/lisp/epg-resources/*: Moved from test/data/epg/. diff --git a/test/data/epg/dummy-pinentry b/test/lisp/epg-resources/dummy-pinentry similarity index 100% rename from test/data/epg/dummy-pinentry rename to test/lisp/epg-resources/dummy-pinentry diff --git a/test/data/epg/pubkey.asc b/test/lisp/epg-resources/pubkey.asc similarity index 100% rename from test/data/epg/pubkey.asc rename to test/lisp/epg-resources/pubkey.asc diff --git a/test/data/epg/seckey.asc b/test/lisp/epg-resources/seckey.asc similarity index 100% rename from test/data/epg/seckey.asc rename to test/lisp/epg-resources/seckey.asc diff --git a/test/lisp/epg-tests.el b/test/lisp/epg-tests.el index 2a9c021c67..c9c92f529b 100644 --- a/test/lisp/epg-tests.el +++ b/test/lisp/epg-tests.el @@ -22,14 +22,11 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'epg) (defvar epg-tests-context nil) -(defvar epg-tests-data-directory - (expand-file-name "data/epg" (getenv "EMACS_TEST_DIRECTORY")) - "Directory containing epg test data.") - (defconst epg-tests--config-program-alist ;; The default `epg-config--program-alist' requires gpg2 2.1 or ;; greater due to some practical problems with pinentry. But most @@ -85,8 +82,7 @@ '(with-temp-file (expand-file-name "gpg-agent.conf" epg-tests-home-directory) (insert "pinentry-program " - (expand-file-name "dummy-pinentry" - epg-tests-data-directory) + (ert-resource-file "dummy-pinentry") "\n") (epg-context-set-passphrase-callback context @@ -94,11 +90,11 @@ ,(if require-public-key '(epg-import-keys-from-file context - (expand-file-name "pubkey.asc" epg-tests-data-directory))) + (ert-resource-file "pubkey.asc"))) ,(if require-secret-key '(epg-import-keys-from-file context - (expand-file-name "seckey.asc" epg-tests-data-directory))) + (ert-resource-file "seckey.asc"))) (with-temp-buffer (make-local-variable 'epg-tests-context) (setq epg-tests-context context) commit e402887d5d2f7cfc5e3f1cb2a9e629bce782e0a8 Author: Stefan Kangas Date: Sat Oct 24 02:28:45 2020 +0200 Move shr.el test data to follow our conventions * test/lisp/net/shr-tests.el (ert, ert-x): Require. (shr-tests--datadir): Remove variable. (shr-test, rendering): Use ert-resource-directory. * test/lisp/net/shr-resources/*: Move from test/data/shr/. diff --git a/test/data/shr/div-div.html b/test/lisp/net/shr-resources/div-div.html similarity index 100% rename from test/data/shr/div-div.html rename to test/lisp/net/shr-resources/div-div.html diff --git a/test/data/shr/div-div.txt b/test/lisp/net/shr-resources/div-div.txt similarity index 100% rename from test/data/shr/div-div.txt rename to test/lisp/net/shr-resources/div-div.txt diff --git a/test/data/shr/div-p.html b/test/lisp/net/shr-resources/div-p.html similarity index 100% rename from test/data/shr/div-p.html rename to test/lisp/net/shr-resources/div-p.html diff --git a/test/data/shr/div-p.txt b/test/lisp/net/shr-resources/div-p.txt similarity index 100% rename from test/data/shr/div-p.txt rename to test/lisp/net/shr-resources/div-p.txt diff --git a/test/data/shr/li-div.html b/test/lisp/net/shr-resources/li-div.html similarity index 100% rename from test/data/shr/li-div.html rename to test/lisp/net/shr-resources/li-div.html diff --git a/test/data/shr/li-div.txt b/test/lisp/net/shr-resources/li-div.txt similarity index 100% rename from test/data/shr/li-div.txt rename to test/lisp/net/shr-resources/li-div.txt diff --git a/test/data/shr/li-empty.html b/test/lisp/net/shr-resources/li-empty.html similarity index 100% rename from test/data/shr/li-empty.html rename to test/lisp/net/shr-resources/li-empty.html diff --git a/test/data/shr/li-empty.txt b/test/lisp/net/shr-resources/li-empty.txt similarity index 100% rename from test/data/shr/li-empty.txt rename to test/lisp/net/shr-resources/li-empty.txt diff --git a/test/data/shr/nonbr.html b/test/lisp/net/shr-resources/nonbr.html similarity index 100% rename from test/data/shr/nonbr.html rename to test/lisp/net/shr-resources/nonbr.html diff --git a/test/data/shr/nonbr.txt b/test/lisp/net/shr-resources/nonbr.txt similarity index 100% rename from test/data/shr/nonbr.txt rename to test/lisp/net/shr-resources/nonbr.txt diff --git a/test/data/shr/ol.html b/test/lisp/net/shr-resources/ol.html similarity index 100% rename from test/data/shr/ol.html rename to test/lisp/net/shr-resources/ol.html diff --git a/test/data/shr/ol.txt b/test/lisp/net/shr-resources/ol.txt similarity index 100% rename from test/data/shr/ol.txt rename to test/lisp/net/shr-resources/ol.txt diff --git a/test/data/shr/ul-empty.html b/test/lisp/net/shr-resources/ul-empty.html similarity index 100% rename from test/data/shr/ul-empty.html rename to test/lisp/net/shr-resources/ul-empty.html diff --git a/test/data/shr/ul-empty.txt b/test/lisp/net/shr-resources/ul-empty.txt similarity index 100% rename from test/data/shr/ul-empty.txt rename to test/lisp/net/shr-resources/ul-empty.txt diff --git a/test/lisp/net/shr-tests.el b/test/lisp/net/shr-tests.el index 88a31bcf64..abc4f6a656 100644 --- a/test/lisp/net/shr-tests.el +++ b/test/lisp/net/shr-tests.el @@ -23,14 +23,13 @@ ;;; Code: +(require 'ert) +(require 'ert-x) (require 'shr) -(defconst shr-tests--datadir - (expand-file-name "test/data/shr" source-directory)) - (defun shr-test (name) (with-temp-buffer - (insert-file-contents (format (concat shr-tests--datadir "/%s.html") name)) + (insert-file-contents (format (concat (ert-resource-directory) "/%s.html") name)) (let ((dom (libxml-parse-html-region (point-min) (point-max))) (shr-width 80) (shr-use-fonts nil)) @@ -39,7 +38,7 @@ (cons (buffer-substring-no-properties (point-min) (point-max)) (with-temp-buffer (insert-file-contents - (format (concat shr-tests--datadir "/%s.txt") name)) + (format (concat (ert-resource-directory) "/%s.txt") name)) (while (re-search-forward "%\\([0-9A-F][0-9A-F]\\)" nil t) (replace-match (string (string-to-number (match-string 1) 16)) t t)) @@ -47,7 +46,7 @@ (ert-deftest rendering () (skip-unless (fboundp 'libxml-parse-html-region)) - (dolist (file (directory-files shr-tests--datadir nil "\\.html\\'")) + (dolist (file (directory-files (ert-resource-directory) nil "\\.html\\'")) (let* ((name (replace-regexp-in-string "\\.html\\'" "" file)) (result (shr-test name))) (unless (equal (car result) (cdr result)) commit ab7dddea907ebb226fd657cc2fad441a374dfd7f Author: Stefan Kangas Date: Sat Oct 24 02:17:37 2020 +0200 Move mml-sec.el test data to follow our conventions * test/lisp/gnus/mml-sec-tests.el (ert-x): Require. (mml-secure-test-fixture, mml-sec-test--kill-gpg-agent): Use ert-resource-directory. * test/lisp/gnus/mml-sec-resources/*: Moved from test/data/mml-sec/. * .gitignore: Update location of moved file "random_seed". diff --git a/.gitignore b/.gitignore index 94c0009aa2..29565d0417 100644 --- a/.gitignore +++ b/.gitignore @@ -152,7 +152,7 @@ test/manual/etags/regexfile test/manual/etags/ETAGS test/manual/etags/CTAGS test/manual/indent/*.new -test/data/mml-sec/random_seed +test/lisp/gnus/mml-sec-resources/random_seed # ctags, etags. TAGS diff --git a/test/data/mml-sec/.gpg-v21-migrated b/test/lisp/gnus/mml-sec-resources/.gpg-v21-migrated similarity index 100% rename from test/data/mml-sec/.gpg-v21-migrated rename to test/lisp/gnus/mml-sec-resources/.gpg-v21-migrated diff --git a/test/data/mml-sec/gpg-agent.conf b/test/lisp/gnus/mml-sec-resources/gpg-agent.conf similarity index 100% rename from test/data/mml-sec/gpg-agent.conf rename to test/lisp/gnus/mml-sec-resources/gpg-agent.conf diff --git a/test/data/mml-sec/private-keys-v1.d/02089CDDC6DFE93B8EA10D9E876F983E61FEC476.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/02089CDDC6DFE93B8EA10D9E876F983E61FEC476.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/02089CDDC6DFE93B8EA10D9E876F983E61FEC476.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/02089CDDC6DFE93B8EA10D9E876F983E61FEC476.key diff --git a/test/data/mml-sec/private-keys-v1.d/171B444DE92BEF997229000D9784118A94EEC1C9.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/171B444DE92BEF997229000D9784118A94EEC1C9.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/171B444DE92BEF997229000D9784118A94EEC1C9.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/171B444DE92BEF997229000D9784118A94EEC1C9.key diff --git a/test/data/mml-sec/private-keys-v1.d/19FFEBC04DF3E037E16F6A4474DCB7984406975D.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/19FFEBC04DF3E037E16F6A4474DCB7984406975D.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/19FFEBC04DF3E037E16F6A4474DCB7984406975D.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/19FFEBC04DF3E037E16F6A4474DCB7984406975D.key diff --git a/test/data/mml-sec/private-keys-v1.d/1E36D27DF9DAB96302D35268DADC5CE73EF45A2A.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/1E36D27DF9DAB96302D35268DADC5CE73EF45A2A.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/1E36D27DF9DAB96302D35268DADC5CE73EF45A2A.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/1E36D27DF9DAB96302D35268DADC5CE73EF45A2A.key diff --git a/test/data/mml-sec/private-keys-v1.d/293109315BE584AB2EFEFCFCAD64666221D8B36C.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/293109315BE584AB2EFEFCFCAD64666221D8B36C.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/293109315BE584AB2EFEFCFCAD64666221D8B36C.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/293109315BE584AB2EFEFCFCAD64666221D8B36C.key diff --git a/test/data/mml-sec/private-keys-v1.d/335689599E1C0F66D73ADCF51E03EE36C97D121F.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/335689599E1C0F66D73ADCF51E03EE36C97D121F.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/335689599E1C0F66D73ADCF51E03EE36C97D121F.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/335689599E1C0F66D73ADCF51E03EE36C97D121F.key diff --git a/test/data/mml-sec/private-keys-v1.d/40BF94E540E3726CB150A1ADF7C1B514444B3FA6.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/40BF94E540E3726CB150A1ADF7C1B514444B3FA6.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/40BF94E540E3726CB150A1ADF7C1B514444B3FA6.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/40BF94E540E3726CB150A1ADF7C1B514444B3FA6.key diff --git a/test/data/mml-sec/private-keys-v1.d/515D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/515D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/515D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/515D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key diff --git a/test/data/mml-sec/private-keys-v1.d/5A11B1935C46D0B227A73978DCA1293A85604F1D.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5A11B1935C46D0B227A73978DCA1293A85604F1D.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/5A11B1935C46D0B227A73978DCA1293A85604F1D.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5A11B1935C46D0B227A73978DCA1293A85604F1D.key diff --git a/test/data/mml-sec/private-keys-v1.d/62643CEBC7AEBE6817577A34399483700D76BD64.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/62643CEBC7AEBE6817577A34399483700D76BD64.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/62643CEBC7AEBE6817577A34399483700D76BD64.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/62643CEBC7AEBE6817577A34399483700D76BD64.key diff --git a/test/data/mml-sec/private-keys-v1.d/680D01F368916A0021C14E3453B27B3C5F900683.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/680D01F368916A0021C14E3453B27B3C5F900683.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/680D01F368916A0021C14E3453B27B3C5F900683.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/680D01F368916A0021C14E3453B27B3C5F900683.key diff --git a/test/data/mml-sec/private-keys-v1.d/6DF2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/6DF2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/6DF2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/6DF2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key diff --git a/test/data/mml-sec/private-keys-v1.d/78C17E134E86E691297F7B719B2F2CDF41976234.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/78C17E134E86E691297F7B719B2F2CDF41976234.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/78C17E134E86E691297F7B719B2F2CDF41976234.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/78C17E134E86E691297F7B719B2F2CDF41976234.key diff --git a/test/data/mml-sec/private-keys-v1.d/7F714F4D9D9676638214991E96D45704E4FFC409.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7F714F4D9D9676638214991E96D45704E4FFC409.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/7F714F4D9D9676638214991E96D45704E4FFC409.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7F714F4D9D9676638214991E96D45704E4FFC409.key diff --git a/test/data/mml-sec/private-keys-v1.d/854752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/854752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/854752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/854752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key diff --git a/test/data/mml-sec/private-keys-v1.d/93FF37C268FDBF0767F5FFDC49409DDAC9388B2C.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/93FF37C268FDBF0767F5FFDC49409DDAC9388B2C.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/93FF37C268FDBF0767F5FFDC49409DDAC9388B2C.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/93FF37C268FDBF0767F5FFDC49409DDAC9388B2C.key diff --git a/test/data/mml-sec/private-keys-v1.d/A3BA94EAE83509CC90DB1B77B54A51959D8DABEA.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A3BA94EAE83509CC90DB1B77B54A51959D8DABEA.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/A3BA94EAE83509CC90DB1B77B54A51959D8DABEA.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A3BA94EAE83509CC90DB1B77B54A51959D8DABEA.key diff --git a/test/data/mml-sec/private-keys-v1.d/A73E9D01F0465B518E8E7D5AD529077AAC1603B4.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A73E9D01F0465B518E8E7D5AD529077AAC1603B4.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/A73E9D01F0465B518E8E7D5AD529077AAC1603B4.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A73E9D01F0465B518E8E7D5AD529077AAC1603B4.key diff --git a/test/data/mml-sec/private-keys-v1.d/AE6A24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/AE6A24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/AE6A24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/AE6A24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key diff --git a/test/data/mml-sec/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key diff --git a/test/data/mml-sec/private-keys-v1.d/C43E1A079B28DFAEBB39CBA01793BDE11EF4B490.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C43E1A079B28DFAEBB39CBA01793BDE11EF4B490.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/C43E1A079B28DFAEBB39CBA01793BDE11EF4B490.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C43E1A079B28DFAEBB39CBA01793BDE11EF4B490.key diff --git a/test/data/mml-sec/private-keys-v1.d/C67DAD345455EAD6D51368008FC3A53B8D195B5A.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C67DAD345455EAD6D51368008FC3A53B8D195B5A.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/C67DAD345455EAD6D51368008FC3A53B8D195B5A.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C67DAD345455EAD6D51368008FC3A53B8D195B5A.key diff --git a/test/data/mml-sec/private-keys-v1.d/CB5E00CE582C2645D2573FC16B2F14F85A7F47AA.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CB5E00CE582C2645D2573FC16B2F14F85A7F47AA.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/CB5E00CE582C2645D2573FC16B2F14F85A7F47AA.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CB5E00CE582C2645D2573FC16B2F14F85A7F47AA.key diff --git a/test/data/mml-sec/private-keys-v1.d/CC68630A06B048F5A91136C162C7A3273E20DE6F.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CC68630A06B048F5A91136C162C7A3273E20DE6F.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/CC68630A06B048F5A91136C162C7A3273E20DE6F.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CC68630A06B048F5A91136C162C7A3273E20DE6F.key diff --git a/test/data/mml-sec/private-keys-v1.d/E7E73903E1BF93481DE0E7C9769D6C31E1863CFF.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E7E73903E1BF93481DE0E7C9769D6C31E1863CFF.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/E7E73903E1BF93481DE0E7C9769D6C31E1863CFF.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E7E73903E1BF93481DE0E7C9769D6C31E1863CFF.key diff --git a/test/data/mml-sec/private-keys-v1.d/F0117468BE801ED4B81972E159A98FDD4814DCEC.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F0117468BE801ED4B81972E159A98FDD4814DCEC.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/F0117468BE801ED4B81972E159A98FDD4814DCEC.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F0117468BE801ED4B81972E159A98FDD4814DCEC.key diff --git a/test/data/mml-sec/private-keys-v1.d/F4C5EFD5779BE892CAFD5B721D68DED677C9B151.key b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4C5EFD5779BE892CAFD5B721D68DED677C9B151.key similarity index 100% rename from test/data/mml-sec/private-keys-v1.d/F4C5EFD5779BE892CAFD5B721D68DED677C9B151.key rename to test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4C5EFD5779BE892CAFD5B721D68DED677C9B151.key diff --git a/test/data/mml-sec/pubring.gpg b/test/lisp/gnus/mml-sec-resources/pubring.gpg similarity index 100% rename from test/data/mml-sec/pubring.gpg rename to test/lisp/gnus/mml-sec-resources/pubring.gpg diff --git a/test/data/mml-sec/pubring.kbx b/test/lisp/gnus/mml-sec-resources/pubring.kbx similarity index 100% rename from test/data/mml-sec/pubring.kbx rename to test/lisp/gnus/mml-sec-resources/pubring.kbx diff --git a/test/data/mml-sec/secring.gpg b/test/lisp/gnus/mml-sec-resources/secring.gpg similarity index 100% rename from test/data/mml-sec/secring.gpg rename to test/lisp/gnus/mml-sec-resources/secring.gpg diff --git a/test/data/mml-sec/trustdb.gpg b/test/lisp/gnus/mml-sec-resources/trustdb.gpg similarity index 100% rename from test/data/mml-sec/trustdb.gpg rename to test/lisp/gnus/mml-sec-resources/trustdb.gpg diff --git a/test/data/mml-sec/trustlist.txt b/test/lisp/gnus/mml-sec-resources/trustlist.txt similarity index 100% rename from test/data/mml-sec/trustlist.txt rename to test/lisp/gnus/mml-sec-resources/trustlist.txt diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests.el index 427018520c..3da620d64e 100644 --- a/test/lisp/gnus/mml-sec-tests.el +++ b/test/lisp/gnus/mml-sec-tests.el @@ -23,6 +23,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'message) (require 'epa) @@ -65,8 +66,7 @@ instead of gpg-agent." (let ((agent-info (getenv "GPG_AGENT_INFO")) (gpghome (getenv "GNUPGHOME"))) (condition-case error - (let ((epg-gpg-home-directory - (expand-file-name "test/data/mml-sec" source-directory)) + (let ((epg-gpg-home-directory (ert-resource-directory)) (mml-smime-use 'epg) ;; Create debug output in empty epg-debug-buffer. (epg-debug t) @@ -880,8 +880,7 @@ So the second decryption fails." (equal (cdr (assq 'comm atts)) "gpg-agent") (string-match (concat "homedir.*" - (regexp-quote (expand-file-name "test/data/mml-sec" - source-directory))) + (regexp-quote (ert-resource-directory))) (cdr (assq 'args atts)))) (call-process "kill" nil nil nil (format "%d" pid)))))) commit 72c9d4bee112a7e44316b04f361cc4ad3b16cf76 Author: Stefan Kangas Date: Fri Oct 23 21:07:26 2020 +0200 Move more test data to follow our conventions * test/data/minibuffer-test-cttq$tion: Move from here... * test/lisp/minibuffer-resources/data/minibuffer-test-cttq$tion: ...to here. * test/lisp/minibuffer-resources/lisp/cedet/semantic-utest-c.test: * test/lisp/minibuffer-resources/lisp/cedet/semantic-utest.test: New files. * test/lisp/minibuffer-tests.el (ert, ert-x): Require. (completion-table-test-quoting): Use ert-resource-directory. * test/data/net/cert.pem: * test/data/net/key.pem: Move frome here... * test/lisp/net/network-stream-resources/cert.pem: * test/lisp/net/network-stream-resources/key.pem: ...to here. * test/lisp/net/network-stream-tests.el (ert, ert-x): Require. (network-stream-tests--datadir): Remove variable. (make-tls-server): Use ert-resource-file. * test/data/vc/diff-mode/hello_emacs.c: * test/data/vc/diff-mode/hello_emacs_1.c: * test/data/vc/diff-mode/hello_world.c: * test/data/vc/diff-mode/hello_world_1.c: Move from here... * test/lisp/vc/diff-mode-resources/hello_emacs.c: * test/lisp/vc/diff-mode-resources/hello_emacs_1.c: * test/lisp/vc/diff-mode-resources/hello_world.c: * test/lisp/vc/diff-mode-resources/hello_world_1.c: ...to here. * test/lisp/vc/diff-mode-tests.el (ert, ert-x): Require. (diff-mode-tests--datadir): Remove variable. (diff-mode-test-font-lock-syntax-one-line) (diff-mode-test-font-lock): Use ert-resource-directory. * test/data/xdg/l10n.desktop: * test/data/xdg/malformed.desktop: * test/data/xdg/mimeapps.list: * test/data/xdg/mimeinfo.cache: * test/data/xdg/test.desktop: Move from here... * test/lisp/xdg-resources/l10n.desktop: * test/lisp/xdg-resources/malformed.desktop: * test/lisp/xdg-resources/mimeapps.list: * test/lisp/xdg-resources/mimeinfo.cache: * test/lisp/xdg-resources/test.desktop: ...to here. * test/lisp/xdg-tests.el (ert-x): Require. (xdg-tests-data-dir): Remove variable. (xdg-desktop-parsing, xdg-mime-associations): Use ert-resource-file. diff --git a/test/data/minibuffer-test-cttq$tion b/test/lisp/minibuffer-resources/data/minibuffer-test-cttq$tion similarity index 100% rename from test/data/minibuffer-test-cttq$tion rename to test/lisp/minibuffer-resources/data/minibuffer-test-cttq$tion diff --git a/test/lisp/minibuffer-resources/lisp/cedet/semantic-utest-c.test b/test/lisp/minibuffer-resources/lisp/cedet/semantic-utest-c.test new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/lisp/minibuffer-resources/lisp/cedet/semantic-utest.test b/test/lisp/minibuffer-resources/lisp/cedet/semantic-utest.test new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/lisp/minibuffer-tests.el b/test/lisp/minibuffer-tests.el index 5da86f3614..3273479441 100644 --- a/test/lisp/minibuffer-tests.el +++ b/test/lisp/minibuffer-tests.el @@ -26,6 +26,9 @@ ;;; Code: +(require 'ert) +(require 'ert-x) + (eval-when-compile (require 'cl-lib)) (ert-deftest completion-test1 () @@ -85,7 +88,7 @@ (ert-deftest completion-table-test-quoting () (let ((process-environment `("CTTQ1=ed" "CTTQ2=et/" ,@process-environment)) - (default-directory (expand-file-name "test" source-directory))) + (default-directory (ert-resource-directory))) (pcase-dolist (`(,input ,output) '( ;; Test that $ in files is properly $$ quoted. diff --git a/test/data/net/cert.pem b/test/lisp/net/network-stream-resources/cert.pem similarity index 100% rename from test/data/net/cert.pem rename to test/lisp/net/network-stream-resources/cert.pem diff --git a/test/data/net/key.pem b/test/lisp/net/network-stream-resources/key.pem similarity index 100% rename from test/data/net/key.pem rename to test/lisp/net/network-stream-resources/key.pem diff --git a/test/lisp/net/network-stream-tests.el b/test/lisp/net/network-stream-tests.el index cf416155e5..07eb282328 100644 --- a/test/lisp/net/network-stream-tests.el +++ b/test/lisp/net/network-stream-tests.el @@ -24,6 +24,8 @@ ;;; Code: +(require 'ert) +(require 'ert-x) (require 'gnutls) (require 'network-stream) ;; The require above is needed for 'open-network-stream' to work, but @@ -239,16 +241,13 @@ (should (equal (buffer-string) "foo\n"))) (delete-process server))) -(defconst network-stream-tests--datadir - (expand-file-name "test/data/net" source-directory)) - (defun make-tls-server (port) (start-process "gnutls" (generate-new-buffer "*tls*") "gnutls-serv" "--http" "--x509keyfile" - (concat network-stream-tests--datadir "/key.pem") + (ert-resource-file "key.pem") "--x509certfile" - (concat network-stream-tests--datadir "/cert.pem") + (ert-resource-file "cert.pem") "--port" (format "%s" port))) (ert-deftest connect-to-tls-ipv4-wait () diff --git a/test/data/vc/diff-mode/hello_emacs.c b/test/lisp/vc/diff-mode-resources/hello_emacs.c similarity index 100% rename from test/data/vc/diff-mode/hello_emacs.c rename to test/lisp/vc/diff-mode-resources/hello_emacs.c diff --git a/test/data/vc/diff-mode/hello_emacs_1.c b/test/lisp/vc/diff-mode-resources/hello_emacs_1.c similarity index 100% rename from test/data/vc/diff-mode/hello_emacs_1.c rename to test/lisp/vc/diff-mode-resources/hello_emacs_1.c diff --git a/test/data/vc/diff-mode/hello_world.c b/test/lisp/vc/diff-mode-resources/hello_world.c similarity index 100% rename from test/data/vc/diff-mode/hello_world.c rename to test/lisp/vc/diff-mode-resources/hello_world.c diff --git a/test/data/vc/diff-mode/hello_world_1.c b/test/lisp/vc/diff-mode-resources/hello_world_1.c similarity index 100% rename from test/data/vc/diff-mode/hello_world_1.c rename to test/lisp/vc/diff-mode-resources/hello_world_1.c diff --git a/test/lisp/vc/diff-mode-tests.el b/test/lisp/vc/diff-mode-tests.el index f17ec3648f..b25836405c 100644 --- a/test/lisp/vc/diff-mode-tests.el +++ b/test/lisp/vc/diff-mode-tests.el @@ -22,12 +22,11 @@ ;;; Code: +(require 'ert) +(require 'ert-x) (require 'diff-mode) (require 'diff) -(defconst diff-mode-tests--datadir - (expand-file-name "test/data/vc/diff-mode" source-directory)) - (ert-deftest diff-mode-test-ignore-trailing-dashes () "Check to make sure we successfully ignore trailing -- made by 'git format-patch'. This is bug #9597" @@ -209,11 +208,11 @@ youthfulness ;; See comments in diff-hunk-file-names about nonascii. ;; In such cases, the diff-font-lock-syntax portion of this fails. :expected-result (if (string-match-p "[[:nonascii:]]" - diff-mode-tests--datadir) + (ert-resource-directory)) :failed :passed) (skip-unless (executable-find shell-file-name)) (skip-unless (executable-find diff-command)) - (let ((default-directory diff-mode-tests--datadir) + (let ((default-directory (ert-resource-directory)) (old "hello_world.c") (new "hello_emacs.c") (diff-buffer (get-buffer-create "*Diff*")) @@ -274,11 +273,11 @@ youthfulness (ert-deftest diff-mode-test-font-lock-syntax-one-line () "Check diff syntax highlighting for one line with no newline at end." :expected-result (if (string-match-p "[[:nonascii:]]" - diff-mode-tests--datadir) + (ert-resource-directory)) :failed :passed) (skip-unless (executable-find shell-file-name)) (skip-unless (executable-find diff-command)) - (let ((default-directory diff-mode-tests--datadir) + (let ((default-directory (ert-resource-directory)) (old "hello_world_1.c") (new "hello_emacs_1.c") (diff-buffer (get-buffer-create "*Diff*")) diff --git a/test/data/xdg/l10n.desktop b/test/lisp/xdg-resources/l10n.desktop similarity index 100% rename from test/data/xdg/l10n.desktop rename to test/lisp/xdg-resources/l10n.desktop diff --git a/test/data/xdg/malformed.desktop b/test/lisp/xdg-resources/malformed.desktop similarity index 100% rename from test/data/xdg/malformed.desktop rename to test/lisp/xdg-resources/malformed.desktop diff --git a/test/data/xdg/mimeapps.list b/test/lisp/xdg-resources/mimeapps.list similarity index 100% rename from test/data/xdg/mimeapps.list rename to test/lisp/xdg-resources/mimeapps.list diff --git a/test/data/xdg/mimeinfo.cache b/test/lisp/xdg-resources/mimeinfo.cache similarity index 100% rename from test/data/xdg/mimeinfo.cache rename to test/lisp/xdg-resources/mimeinfo.cache diff --git a/test/data/xdg/test.desktop b/test/lisp/xdg-resources/test.desktop similarity index 100% rename from test/data/xdg/test.desktop rename to test/lisp/xdg-resources/test.desktop diff --git a/test/data/xdg/wrong.desktop b/test/lisp/xdg-resources/wrong.desktop similarity index 100% rename from test/data/xdg/wrong.desktop rename to test/lisp/xdg-resources/wrong.desktop diff --git a/test/lisp/xdg-tests.el b/test/lisp/xdg-tests.el index 294996af5f..c2a16006c3 100644 --- a/test/lisp/xdg-tests.el +++ b/test/lisp/xdg-tests.el @@ -25,26 +25,20 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'xdg) -(defconst xdg-tests-data-dir - (expand-file-name "test/data/xdg" source-directory)) - (ert-deftest xdg-desktop-parsing () "Test `xdg-desktop-read-file' parsing of .desktop files." - (let ((tab1 (xdg-desktop-read-file - (expand-file-name "test.desktop" xdg-tests-data-dir))) - (tab2 (xdg-desktop-read-file - (expand-file-name "test.desktop" xdg-tests-data-dir) + (let ((tab1 (xdg-desktop-read-file (ert-resource-file "test.desktop"))) + (tab2 (xdg-desktop-read-file (ert-resource-file "test.desktop") "Another Section"))) (should (equal (gethash "Name" tab1) "Test")) (should (eq 'default (gethash "Exec" tab1 'default))) (should (equal "frobnicate" (gethash "Exec" tab2)))) (should-error - (xdg-desktop-read-file - (expand-file-name "malformed.desktop" xdg-tests-data-dir))) - (let ((tab (xdg-desktop-read-file - (expand-file-name "l10n.desktop" xdg-tests-data-dir))) + (xdg-desktop-read-file (ert-resource-file "malformed.desktop"))) + (let ((tab (xdg-desktop-read-file (ert-resource-file "l10n.desktop"))) (env (getenv "LC_MESSAGES"))) (unwind-protect (progn @@ -67,8 +61,8 @@ (ert-deftest xdg-mime-associations () "Test reading MIME associations from files." - (let* ((apps (expand-file-name "mimeapps.list" xdg-tests-data-dir)) - (cache (expand-file-name "mimeinfo.cache" xdg-tests-data-dir)) + (let* ((apps (ert-resource-file "mimeapps.list")) + (cache (ert-resource-file "mimeinfo.cache")) (fs (list apps cache))) (should (equal (xdg-mime-collect-associations "x-test/foo" fs) '("a.desktop" "b.desktop"))) commit 46f5d2867cf73a845d582eeb8929ae51b78eae55 Author: Michael Albinus Date: Fri Oct 23 16:31:56 2020 +0200 Fix error in tramp-sh-handle-make-process * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't use heredoc script whent the argument contains a string. diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 15eab0a4de..2c7c6dae75 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -2850,8 +2850,10 @@ implementation will be used." ;; command. (heredoc (and (stringp program) (string-match-p "sh$" program) + (= (length args) 2) (string-equal "-c" (car args)) - (= (length args) 2))) + ;; Don't if there is a string. + (not (string-match-p "'\\|\"" (cadr args))))) ;; When PROGRAM is nil, we just provide a tty. (args (if (not heredoc) args (let ((i 250)) commit 49bc8586b7abc8e1e36027ca5eec0d0488a27474 Author: Stefan Kangas Date: Fri Oct 23 16:29:46 2020 +0200 Move some test data to follow our conventions * test/data/emacs-module/mod-test.c: Move from here... * test/src/emacs-module-resources/mod-test.c: ...to here. * test/src/emacs-module-tests.el (ert-x): Require. (mod-test-file, module/describe-function-1): * test/Makefile.in (test_module_dir): Adjust for move. * test/data/files-bug18141.el.gz: Move from here... * test/lisp/files-resources/files-bug18141.el.gz: ... to here. * test/lisp/files-tests.el (ert-x): Require. (files-test-bug-18141-file): Use ert-resource-file. * test/data/mailcap/mime.types: Move from here... * test/lisp/net/mailcap-resources/mime.types: ...to here. * test/lisp/net/mailcap-tests.el (ert-x): Require. (mailcap-tests-path): Use ert-resource-file. * test/data/somelib.el: * test/data/somelib2.el: Move from here... * test/src/lread-resources/somelib.el: * test/src/lread-resources/somelib2.el: ...to here. * test/src/lread-tests.el (ert, ert-x): Require. (lread-test-bug26837): Use ert-resource-directory. * test/data/syntax-comments.txt: Move from here.... * test/src/syntax-resources/syntax-comments.txt: ...to here. * test/src/syntax-tests.el (ert-x): Require. (syntax-comments, syntax-br-comments, syntax-pps-comments): Use ert-resource-file. * test/data/xref/file1.txt: * test/data/xref/file2.txt: Move from here... * test/lisp/progmodes/xref-resources/file1.txt: * test/lisp/progmodes/xref-resources/file2.txt: ...to here. * test/lisp/progmodes/xref-tests.el (ert, ert-x): Require. (xref-tests-data-dir): Use ert-resource-directory. diff --git a/test/Makefile.in b/test/Makefile.in index 9974eb54b0..67d203df29 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -132,7 +132,7 @@ emacs = EMACSLOADPATH= \ # exists, or writing to ~/.bzr.log when running bzr commands). TEST_HOME = /nonexistent -test_module_dir := data/emacs-module +test_module_dir := src/emacs-module-resources .PHONY: all check diff --git a/test/data/files-bug18141.el.gz b/test/lisp/files-resources/files-bug18141.el.gz similarity index 100% rename from test/data/files-bug18141.el.gz rename to test/lisp/files-resources/files-bug18141.el.gz diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el index 1b964af688..8818099a22 100644 --- a/test/lisp/files-tests.el +++ b/test/lisp/files-tests.el @@ -20,6 +20,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'nadvice) (eval-when-compile (require 'cl-lib)) (require 'bytecomp) ; `byte-compiler-base-file-name'. @@ -151,7 +152,7 @@ form.") (should (file-test--do-local-variables-test str subtest))))))) (defvar files-test-bug-18141-file - (expand-file-name "data/files-bug18141.el.gz" (getenv "EMACS_TEST_DIRECTORY")) + (ert-resource-file "files-bug18141.el.gz") "Test file for bug#18141.") (ert-deftest files-tests-bug-18141 () diff --git a/test/data/mailcap/mime.types b/test/lisp/net/mailcap-resources/mime.types similarity index 100% rename from test/data/mailcap/mime.types rename to test/lisp/net/mailcap-resources/mime.types diff --git a/test/lisp/net/mailcap-tests.el b/test/lisp/net/mailcap-tests.el index 8354d8e5e2..0ebbec6115 100644 --- a/test/lisp/net/mailcap-tests.el +++ b/test/lisp/net/mailcap-tests.el @@ -24,13 +24,10 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'mailcap) -(defconst mailcap-tests-data-dir - (expand-file-name "test/data/mailcap" source-directory)) - -(defconst mailcap-tests-path - (expand-file-name "mime.types" mailcap-tests-data-dir) +(defconst mailcap-tests-path (ert-resource-file "mime.types") "String used as PATH argument of `mailcap-parse-mimetypes'.") (defconst mailcap-tests-mime-extensions (copy-alist mailcap-mime-extensions)) diff --git a/test/data/xref/file1.txt b/test/lisp/progmodes/xref-resources/file1.txt similarity index 100% rename from test/data/xref/file1.txt rename to test/lisp/progmodes/xref-resources/file1.txt diff --git a/test/data/xref/file2.txt b/test/lisp/progmodes/xref-resources/file2.txt similarity index 100% rename from test/data/xref/file2.txt rename to test/lisp/progmodes/xref-resources/file2.txt diff --git a/test/lisp/progmodes/xref-tests.el b/test/lisp/progmodes/xref-tests.el index a4980b2acb..060c9cb5d1 100644 --- a/test/lisp/progmodes/xref-tests.el +++ b/test/lisp/progmodes/xref-tests.el @@ -23,13 +23,12 @@ ;;; Code: +(require 'ert) +(require 'ert-x) (require 'xref) (require 'cl-lib) -(defvar xref-tests-data-dir - (expand-file-name "../../../data/xref/" - (or load-file-name - buffer-file-name))) +(defvar xref-tests-data-dir (ert-resource-directory)) (ert-deftest xref-matches-in-directory-finds-none-for-some-regexp () (should (null (xref-matches-in-directory "zzz" "*" xref-tests-data-dir nil)))) diff --git a/test/data/emacs-module/mod-test.c b/test/src/emacs-module-resources/mod-test.c similarity index 100% rename from test/data/emacs-module/mod-test.c rename to test/src/emacs-module-resources/mod-test.c diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el index 621229c62a..fb4ed4a684 100644 --- a/test/src/emacs-module-tests.el +++ b/test/src/emacs-module-tests.el @@ -21,13 +21,14 @@ ;; Unit tests for the dynamic module facility. See Info node `(elisp) ;; Writing Dynamic Modules'. These tests make use of a small test -;; module in test/data/emacs-module. +;; module in the "emacs-module-resources" directory. ;;; Code: ;;; Prelude (require 'cl-lib) (require 'ert) +(require 'ert-x) (require 'help-fns) (defconst mod-test-emacs @@ -35,8 +36,7 @@ "File name of the Emacs binary currently running.") (eval-and-compile - (defconst mod-test-file - (expand-file-name "../test/data/emacs-module/mod-test" invocation-directory) + (defconst mod-test-file (ert-resource-file "mod-test") "File name of the module test file.")) (require 'mod-test mod-test-file) @@ -313,11 +313,11 @@ local reference." (text-quoting-style 'grave)) (describe-function-1 #'mod-test-sum) (goto-char (point-min)) - (while (re-search-forward "`[^']*/data/emacs-module/" nil t) - (replace-match "`data/emacs-module/")) + (while (re-search-forward "`[^']*/src/emacs-module-resources/" nil t) + (replace-match "`src/emacs-module-resources/")) (should (equal (buffer-substring-no-properties 1 (point-max)) - (format "a module function in `data/emacs-module/mod-test%s'. + (format "a module function in `src/emacs-module-resources/mod-test%s'. (mod-test-sum a b) diff --git a/test/data/somelib.el b/test/src/lread-resources/somelib.el similarity index 100% rename from test/data/somelib.el rename to test/src/lread-resources/somelib.el diff --git a/test/data/somelib2.el b/test/src/lread-resources/somelib2.el similarity index 100% rename from test/data/somelib2.el rename to test/src/lread-resources/somelib2.el diff --git a/test/src/lread-tests.el b/test/src/lread-tests.el index 26fd6aa22a..825b74e623 100644 --- a/test/src/lread-tests.el +++ b/test/src/lread-tests.el @@ -25,6 +25,9 @@ ;;; Code: +(require 'ert) +(require 'ert-x) + (ert-deftest lread-char-number () (should (equal (read "?\\N{U+A817}") #xA817))) @@ -146,10 +149,7 @@ literals (Bug#20852)." (ert-deftest lread-test-bug26837 () "Test for https://debbugs.gnu.org/26837 ." - (let ((load-path (cons - (file-name-as-directory - (expand-file-name "data" (getenv "EMACS_TEST_DIRECTORY"))) - load-path))) + (let ((load-path (cons (ert-resource-directory) load-path))) (load "somelib" nil t) (should (string-suffix-p "/somelib.el" (caar load-history))) (load "somelib2" nil t) diff --git a/test/data/syntax-comments.txt b/test/src/syntax-resources/syntax-comments.txt similarity index 100% rename from test/data/syntax-comments.txt rename to test/src/syntax-resources/syntax-comments.txt diff --git a/test/src/syntax-tests.el b/test/src/syntax-tests.el index 56e0338057..4b9c3f277a 100644 --- a/test/src/syntax-tests.el +++ b/test/src/syntax-tests.el @@ -20,6 +20,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (ert-deftest parse-partial-sexp-continue-over-comment-marker () "Continue a parse that stopped in the middle of a comment marker." @@ -91,7 +92,7 @@ also has open paren syntax (see Bug#24870)." ;; It is intended to enhance this bit to test nested comments ;; (2020-10-01). -;; This bit uses the data file test/data/syntax-comments.txt. +;; This bit uses the data file syntax-resources/syntax-comments.txt. (defun syntax-comments-point (n forw) "Return the buffer offset corresponding to the \"label\" N. @@ -182,8 +183,7 @@ missing or nil, the value of START is assumed for it." () (with-current-buffer (find-file - ,(expand-file-name "data/syntax-comments.txt" - (getenv "EMACS_TEST_DIRECTORY"))) + ,(ert-resource-file "syntax-comments.txt")) (,(intern (concat (symbol-name type) "-in"))) (goto-char (syntax-comments-point ,start ,forw)) (let ((stop (syntax-comments-point ,(or stop start) ,(not forw)))) @@ -230,8 +230,7 @@ missing or nil, the value of -START- is assumed for it." () (with-current-buffer (find-file - ,(expand-file-name "data/syntax-comments.txt" - (getenv "EMACS_TEST_DIRECTORY"))) + ,(ert-resource-file "syntax-comments.txt")) (,(intern (concat (symbol-name type) "-in"))) (let ((start-pos (syntax-comments-point ,start ,forw)) ,@(if res @@ -285,8 +284,7 @@ the `parse-partial-sexp's are expected to stop. See () (with-current-buffer (find-file - ,(expand-file-name "data/syntax-comments.txt" - (getenv "EMACS_TEST_DIRECTORY"))) + ,(ert-resource-file "syntax-comments.txt")) (,(intern (concat (symbol-name type) "-in"))) (let ((start-pos (syntax-comments-point ,start t)) (open-pos (syntax-comments-midpoint ,open)) commit d21cdb6c056453d4e4ef8a3a1f27d8bc203c09ea Author: Eli Zaretskii Date: Fri Oct 23 17:23:23 2020 +0300 Set up composition-function-table for Egyptian * lisp/language/misc-lang.el (composition-function-table): Set up for Egyptian Hieroglyphs. diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el index e3a24c4153..3f45f70c45 100644 --- a/lisp/language/misc-lang.el +++ b/lisp/language/misc-lang.el @@ -141,6 +141,20 @@ thin (i.e. 1-dot width) space." (vector "[\u0600-\u074F\u200C\u200D]+" 0 'arabic-shape-gstring))) +;; The Egyptian Hieroglyph Format Controls were introduced in Unicode +;; Standard v12.0. Apparently, they are not yet well supported in +;; existing fonts, as of late 2020. But there's no reason for us not +;; to be ready for when they will be! +;; The below is needed to support the arrangement of the Egyptian +;; Hieroglyphs in "quadrats", as directed by the format controls, +;; which specify how the hieroglyphs should be joined horizontally and +;; vertically. +(set-char-table-range + composition-function-table + '(#x13000 . #x1343F) + (list (vector "[\U00013000-\U0001343F]+" + 0 'compose-gstring-for-graphic))) + (provide 'misc-lang) ;;; misc-lang.el ends here commit 4a92e2f95e80787f0eaa6ba7392641b6020dd5cd Author: Eli Zaretskii Date: Fri Oct 23 16:59:37 2020 +0300 Remove most of charset markup from etc/HELLO For the reasons, see the discussion that started in https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00407.html and its conclusion in https://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00144.html. The only markup left is in the preamble, just to show the example of this facility. diff --git a/etc/HELLO b/etc/HELLO index 3c1fd63fb7..fcc907536e 100644 --- a/etc/HELLO +++ b/etc/HELLO @@ -7,89 +7,89 @@ some of the character sets that Emacs supports. Non-ASCII examples: - Europe: latin-iso8859-1¡Hola!, Grüß Gott, Hyvää päivää,latin-iso8859-15 Tere õhtust,latin-iso8859-3 Bonġu - Cześć!,latin-iso8859-2 Dobrý den,cyrillic-iso8859-5 Здравствуйте!,greek-iso8859-7 Γειά σας,mule-unicode-0100-24ff გამარჯობა - Africa:mule-unicode-0100-24ff ethiopicሠላም - Middle/Near East:hebrew-iso8859-8 שָׁלוֹם,mule-unicode-0100-24ff السّلام عليكم - South Asia:mule-unicode-0100-24ff નમસ્તે, नमस्ते, ನಮಸ್ಕಾರ, നമസ്കാരം, ଶୁଣିବେ, - ආයුබෝවන්, வணக்கம், నమస్కారం,tibetan བཀྲ་ཤིས་བདེ་ལེགས༎ - South East Asia:mule-unicode-0100-24ff ជំរាបសួរ,lao ສະບາຍດີ,mule-unicode-0100-24ff မင်္ဂလာပါ,thai-tis620 สวัสดีครับ,vietnamese-viscii-lower vietnamese-viscii-upperCvietnamese-viscii-lowerhào bạn + Europe: latin-iso8859-1¡Hola!, Grüß Gott, Hyvää päivää, Tere õhtust,latin-iso8859-3 Bonġu + Cześć!,latin-iso8859-2 Dobrý den,cyrillic-iso8859-5 Здравствуйте!,greek-iso8859-7 Γειά σας, გამარჯობა + Africa: ethiopicሠላም + Middle/Near East:hebrew-iso8859-8 שָׁלוֹם, السّلام عليكم + South Asia: નમસ્તે, नमस्ते, ನಮಸ್ಕಾರ, നമസ്കാരം, ଶୁଣିବେ, + ආයුබෝවන්, வணக்கம், నమస్కారం,tibetan བཀྲ་ཤིས་བདེ་ལེགས༎ + South East Asia: ជំរាបសួរ,lao ສະບາຍດີ, မင်္ဂလာပါ,thai-tis620 สวัสดีครับ,vietnamese-viscii-lower vietnamese-viscii-upperCvietnamese-viscii-lowerhào bạn East Asia:chinese-gb2312 你好,chinese-big5-1 早晨,japanese-jisx0208 こんにちは,korean-ksc5601 안녕하세요 - Misc:latin-iso8859-3 Eĥoŝanĝo ĉiuĵaŭde,mule-unicode-2500-33ff ⠓⠑⠇⠇⠕,mule-unicode-0100-24ff ∀ p ∈ world • hello p mule-unicode-2500-33ff□ + Misc:latin-iso8859-3 Eĥoŝanĝo ĉiuĵaŭde, ⠓⠑⠇⠇⠕, ∀ p ∈ world • hello p □ CJK variety:chinese-gb2312 GB(元气,开发),chinese-big5-1 BIG5(元氣,開發),japanese-jisx0208 JIS(元気,開発),korean-ksc5601 KSC(元氣,開發) Unicode charset:unicode Eĥoŝanĝo ĉiuĵaŭde, Γειά σας, שלום, Здравствуйте! LANGUAGE (NATIVE NAME) HELLO ---------------------- ----- -mule-unicode-0100-24ffAmharic (አማርኛ) ሠላም +Amharic (አማርኛ) ሠላም Arabic (العربيّة) السّلام عليكم Armenian (հայերեն) Բարև ձեզ -cyrillic-iso8859-5Belarusian (беларуская) Прывітанне -mule-unicode-0100-24ffBengali (বাংলা) নমস্কার -mule-unicode-2500-33ffBraille ⠓⠑⠇⠇⠕ -mule-unicode-0100-24ffBurmese (မြန်မာ) မင်္ဂလာပါ -C printf ("Hello, world!\n"); -unicodeCherokee (ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ) ᎣᏏᏲ / ᏏᏲ +Belarusian (беларуская) Прывітанне +Bengali (বাংলা) নমস্কার +Braille ⠓⠑⠇⠇⠕ +Burmese (မြန်မာ) မင်္ဂလာပါ +C printf ("Hello, world!\n"); +Cherokee (ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ) ᎣᏏᏲ / ᏏᏲ Comanche /kəˈmæntʃiː/ Haa marʉ́awe Cree (ᓀᐦᐃᔭᐍᐏᐣ) ᑕᓂᓯ / ᐙᒋᔮ -latin-iso8859-2Czech (čeština) Dobrý den -latin-iso8859-1Danish (dansk) Hej / Goddag / Halløj +Czech (čeština) Dobrý den +Danish (dansk) Hej / Goddag / Halløj Dutch (Nederlands) Hallo / Dag -unicodeEfik /ˈɛfɪk/ Mɔkɔm +Efik /ˈɛfɪk/ Mɔkɔm Emacs emacs --no-splash -f view-hello-file Emoji 👋 -English ipa/ˈɪŋɡlɪʃ/ Hello -latin-iso8859-3Esperanto Saluton (Eĥoŝanĝo ĉiuĵaŭde) -latin-iso8859-15Estonian (eesti keel) Tere päevast / Tere õhtust -latin-iso8859-1Finnish (suomi) Hei / Hyvää päivää +English /ˈɪŋɡlɪʃ/ Hello +Esperanto Saluton (Eĥoŝanĝo ĉiuĵaŭde) +Estonian (eesti keel) Tere päevast / Tere õhtust +Finnish (suomi) Hei / Hyvää päivää French (français) Bonjour / Salut -mule-unicode-0100-24ffGeorgian (ქართული) გამარჯობა -latin-iso8859-1German (Deutsch) Guten Tag / Grüß Gott -greek-iso8859-7Greek (ελληνικά) Γειά σας -mule-unicode-0100-24ffGreek, ancient (ἑλληνική) Οὖλέ τε καὶ μέγα χαῖρε +Georgian (ქართული) გამარჯობა +German (Deutsch) Guten Tag / Grüß Gott +Greek (ελληνικά) Γειά σας +Greek, ancient (ἑλληνική) Οὖλέ τε καὶ μέγα χαῖρε Gujarati (ગુજરાતી) નમસ્તે -hebrew-iso8859-8Hebrew (עִבְרִית) שָׁלוֹם -latin-iso8859-2Hungarian (magyar) Szép jó napot! -mule-unicode-0100-24ffHindi (हिंदी) नमस्ते / नमस्कार । -unicodeInuktitut (ᐃᓄᒃᑎᑐᑦ) ᐊᐃ - -latin-iso8859-1Italian (italiano) Ciao / Buon giorno -unicodeJavanese (ꦧꦱꦗꦮ) console.log("ꦱꦸꦒꦼꦁꦱꦶꦪꦁ"); -mule-unicode-0100-24ffKannada (ಕನ್ನಡ) ನಮಸ್ಕಾರ +Hebrew (עִבְרִית) שָׁלוֹם +Hungarian (magyar) Szép jó napot! +Hindi (हिंदी) नमस्ते / नमस्कार । +Inuktitut (ᐃᓄᒃᑎᑐᑦ) ᐊᐃ + +Italian (italiano) Ciao / Buon giorno +Javanese (ꦧꦱꦗꦮ) console.log("ꦱꦸꦒꦼꦁꦱꦶꦪꦁ"); +Kannada (ಕನ್ನಡ) ನಮಸ್ಕಾರ Khmer (ភាសាខ្មែរ) ជំរាបសួរ -laoLao (ພາສາລາວ) ສະບາຍດີ / ຂໍໃຫ້ໂຊກດີ -mule-unicode-0100-24ffMalayalam (മലയാളം) നമസ്കാരം -unicodeMaldivian (ދިވެހި) އައްސަލާމު ޢަލައިކުމް / ކިހިނެހް؟ - -latin-iso8859-3Maltese (il-Malti) Bonġu / Saħħa -unicodeMathematics ∀ p ∈ world • hello p □ -cyrillic-iso8859-5Mongolian (монгол хэл) Сайн байна уу? -latin-iso8859-1Norwegian (norsk) Hei / God dag -mule-unicode-0100-24ffOriya (ଓଡ଼ିଆ) ଶୁଣିବେ -latin-iso8859-2Polish (język polski) Dzień dobry! / Cześć! -cyrillic-iso8859-5Russian (русский) Здра́вствуйте! -mule-unicode-0100-24ffSinhala (සිංහල) ආයුබෝවන් -latin-iso8859-2Slovak (slovenčina) Dobrý deň +Lao (ພາສາລາວ) ສະບາຍດີ / ຂໍໃຫ້ໂຊກດີ +Malayalam (മലയാളം) നമസ്കാരം +Maldivian (ދިވެހި) އައްސަލާމު ޢަލައިކުމް / ކިހިނެހް؟ + +Maltese (il-Malti) Bonġu / Saħħa +Mathematics ∀ p ∈ world • hello p □ +Mongolian (монгол хэл) Сайн байна уу? +Norwegian (norsk) Hei / God dag +Oriya (ଓଡ଼ିଆ) ଶୁଣିବେ +Polish (język polski) Dzień dobry! / Cześć! +Russian (русский) Здра́вствуйте! +Sinhala (සිංහල) ආයුබෝවන් +Slovak (slovenčina) Dobrý deň Slovenian (slovenščina) Pozdravljeni! -Spanish (espalatin-iso8859-1ñol) ¡Hola! +Spanish (español) ¡Hola! Swedish (svenska) Hej / Goddag / Hallå -mule-unicode-0100-24ffTamil (தமிழ்) வணக்கம் +Tamil (தமிழ்) வணக்கம் Telugu (తెలుగు) నమస్కారం -TaiViet (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ +TaiViet (ꪁꪫꪱꪣ ꪼꪕ) ꪅꪰꪙꫂ ꪨꪮꫂ ꪁꪫꪱ / ꪅꪽ ꪨꪷ ꪁꪫꪱ + +Thai (ภาษาไทย) สวัสดีครับ / สวัสดีค่ะ +Tibetan (བོད་སྐད་) བཀྲ་ཤིས་བདེ་ལེགས༎ +Tigrigna (ትግርኛ) ሰላማት +Turkish (Türkçe) Merhaba +Ukrainian (українська) Вітаю +Vietnamese (tiếng Việt) Chào bạn -thai-tis620Thai (ภาษาไทย) สวัสดีครับ / สวัสดีค่ะ -tibetanTibetan (བོད་སྐད་) བཀྲ་ཤིས་བདེ་ལེགས༎ -mule-unicode-0100-24ffTigrigna (ትግርኛ) ሰላማት -latin-iso8859-9Turkish (Türkçe) Merhaba -cyrillic-iso8859-5Ukrainian (українська) Вітаю -vietnamese-viscii-lowerVietnamese (tiếng vietnamese-viscii-upperVvietnamese-viscii-loweriệt) vietnamese-viscii-upperChào bạn - japanese-jisx0208Japanese (日本語) こんにちは katakana-jisx0201/ コンニチハ chinese-gb2312Chinese (中文,普通话,汉语) 你好 @@ -98,7 +98,7 @@ Telugu (తెలుగు) నమస్కారం -unicode + Copyright (C) 2001-2020 Free Software Foundation, Inc. @@ -128,4 +128,4 @@ along with GNU Emacs. If not, see <. ;;; bidi-display-reordering: t ;;; coding: utf-8 ;;; inhibit-compacting-font-caches: t -;;; End: +;;; End: commit 944c4708358e0121a1a62b629959032e399f3187 Author: Olivier Certner Date: Fri Oct 23 14:39:04 2020 +0200 ERC: Fix ERC's IBuffer format "crash" on killed server buffer * lisp/erc/erc-ibuffer.el (erc-server-name): Fix a crash when displaying (or updating) an IBuffer buffer using ERC's first IBuffer format. This happens when one ERC buffer has its associated server buffer killed, e.g., voluntarily or automatically after server disconnection when `erc-kill-server-buffer-on-quit' is set to t. The culprit is the "Server" column, which returns nil in this case. Display "(closed)" instead (bug#44156). Copyright-paperwork-exempt: yes diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el index 7aee7705ff..556a25e3e7 100644 --- a/lisp/erc/erc-ibuffer.el +++ b/lisp/erc/erc-ibuffer.el @@ -92,10 +92,14 @@ " ")) (define-ibuffer-column erc-server-name (:name "Server") - (if (and erc-server-process (processp erc-server-process)) - (with-current-buffer (process-buffer erc-server-process) - (or erc-server-announced-name erc-session-server)) - "")) + (or + (when (and erc-server-process (processp erc-server-process)) + (let ((buffer (process-buffer erc-server-process))) + (if (buffer-live-p buffer) + (with-current-buffer buffer + (or erc-server-announced-name erc-session-server)) + "(closed)"))) + "")) (define-ibuffer-column erc-target (:name "Target") (if (eq major-mode 'erc-mode) commit ead957a2c3281002d5675f0f6efdc28ea223ea6f Author: Ruthra Kumar Date: Fri Oct 23 13:02:55 2020 +0200 Add support for squashfs files in archive mode * lisp/arc-mode.el (archive-squashfs-extract): New variable (bug#43827). (archive-find-type): Identify squashfs. (archive-squashfs-summarize, archive-squashfs-extract-by-stdout): New functions to parse/extract squashfs. * lisp/files.el (auto-mode-alist): Add squashfs. diff --git a/etc/NEWS b/etc/NEWS index 9e8182a2da..11c19b378a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -308,6 +308,9 @@ and variables. ** Archive mode +--- +*** Archive Mode can now parse .squashfs files. + *** Can now modify members of 'ar' archives. *** Display of summaries unified between backends. diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index eb62a85118..ce0c061fc0 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -51,17 +51,17 @@ ;; ARCHIVE TYPES: Currently only the archives below are handled, but the ;; structure for handling just about anything is in place. ;; -;; Arc Lzh Zip Zoo Rar 7z Ar -;; -------------------------------------------------- -;; View listing Intern Intern Intern Intern Y Y Y -;; Extract member Y Y Y Y Y Y Y -;; Save changed member Y Y Y Y N Y Y -;; Add new member N N N N N N N -;; Delete member Y Y Y Y N Y N -;; Rename member Y Y N N N N N -;; Chmod - Y Y - N N N -;; Chown - Y - - N N N -;; Chgrp - Y - - N N N +;; Arc Lzh Zip Zoo Rar 7z Ar Squashfs +;; --------------------------------------------------------------- +;; View listing Intern Intern Intern Intern Y Y Y Y +;; Extract member Y Y Y Y Y Y Y Y +;; Save changed member Y Y Y Y N Y Y N +;; Add new member N N N N N N N N +;; Delete member Y Y Y Y N Y N N +;; Rename member Y Y N N N N N N +;; Chmod - Y Y - N N N N +;; Chown - Y - - N N N N +;; Chgrp - Y - - N N N N ;; ;; Special thanks to Bill Brodie for very useful tips ;; on the first released version of this package. @@ -370,6 +370,24 @@ file. Archive and member name will be added." :inline t (string :format "%v")))) +;; ------------------------------ +;; Squashfs archive configuration + +(defgroup archive-squashfs nil + "Squashfs-specific options to archive." + :group 'archive) + +(defcustom archive-squashfs-extract '("rdsquashfs" "-c") + "Program and its options to run in order to extract a squashsfs file member. +Extraction should happen to standard output. Archive and member name will +be added." + :type '(list (string :tag "Program") + (repeat :tag "Options" + :inline t + (string :format "%v"))) + :version "28.1" + :group 'archive-squashfs) + ;; ------------------------------------------------------------------------- ;;; Section: Variables @@ -741,6 +759,7 @@ archive. (re-search-forward "Rar!" (+ (point) 100000) t)) 'rar-exe) ((looking-at "7z\274\257\047\034") '7z) + ((looking-at "hsqs") 'squashfs) (t (error "Buffer format not recognized"))))) ;; ------------------------------------------------------------------------- @@ -2280,6 +2299,85 @@ NAME is expected to be the 16-bytes part of an ar record." descr '("ar" "r"))) +;; ------------------------------------------------------------------------- +;;; Section Squashfs archives. + +(defun archive-squashfs-summarize (&optional file) + (unless file + (setq file buffer-file-name)) + (let ((copy (file-local-copy file)) + (files ())) + (with-temp-buffer + (call-process "unsquashfs" nil t nil "-ll" (or file copy)) + (when copy + (delete-file copy)) + (goto-char (point-min)) + (search-forward-regexp "[drwxl\\-]\\{10\\}") + (beginning-of-line) + (while (looking-at (concat + "^\\(.[rwx\\-]\\{9\\}\\) " ;Mode + "\\(.+\\)/\\(.+\\) " ;user/group + "\\(.+\\) " ;size + "\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\) " ;date + "\\([0-9]\\{2\\}:[0-9]\\{2\\}\\) " ;time + "\\(.+\\)\n")) ;Filename + (let* ((name (match-string 7)) + (flags (match-string 1)) + (uid (match-string 2)) + (gid (match-string 3)) + (size (string-to-number (match-string 4))) + (date (match-string 5)) + (time (match-string 6)) + (date-time) + (mode)) + ;; Only list directory and regular files + (when (or (eq (aref flags 0) ?d) + (eq (aref flags 0) ?-)) + (when (equal name "squashfs-root") + (setf name "/")) + ;; Remove 'squashfs-root/' from filenames. + (setq name (string-replace "squashfs-root/" "" name)) + (setq date-time (concat date " " time)) + (setq mode (logior + (cond + ((eq (aref flags 0) ?d) #o40000) + (t 0)) + ;; Convert symbolic to octal representation. + (file-modes-symbolic-to-number + (concat + "u=" (string-replace "-" "" (substring flags 1 4)) + ",g=" (string-replace "-" "" (substring flags 4 7)) + ",o=" (string-replace "-" "" + (substring flags 7 10)))))) + (push (archive--file-desc name name mode size + date-time :uid uid :gid gid) + files))) + (goto-char (match-end 0)))) + (archive--summarize-descs (nreverse files)))) + +(defun archive-squashfs-extract-by-stdout (archive name command + &optional stderr-test) + (let ((stderr-file (make-temp-file "arc-stderr"))) + (unwind-protect + (prog1 + (apply #'call-process + (car command) + nil + (if stderr-file (list t stderr-file) t) + nil + (append (cdr command) (list name archive))) + (with-temp-buffer + (insert-file-contents stderr-file) + (goto-char (point-min)) + (when (if (stringp stderr-test) + (not (re-search-forward stderr-test nil t)) + (> (buffer-size) 0)) + (message "%s" (buffer-string))))) + (if (file-exists-p stderr-file) + (delete-file stderr-file))))) + +(defun archive-squashfs-extract (archive name) + (archive-squashfs-extract-by-stdout archive name archive-squashfs-extract)) ;; ------------------------------------------------------------------------- ;; This line was a mistake; it is kept now for compatibility. diff --git a/lisp/files.el b/lisp/files.el index bbc8f88159..fdf758ad92 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -2758,8 +2758,8 @@ since only a single case-insensitive search through the alist is made." ;; The list of archive file extensions should be in sync with ;; `auto-coding-alist' with `no-conversion' coding system. ("\\.\\(\ -arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|cbr\\|7z\\|\ -ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\)\\'" . archive-mode) +arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|cbr\\|7z\\|squashfs\\|\ +ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|CBR\\|7Z\\|SQUASHFS\\)\\'" . archive-mode) ("\\.oxt\\'" . archive-mode) ;(Open|Libre)Office extensions. ("\\.\\(deb\\|[oi]pk\\)\\'" . archive-mode) ; Debian/Opkg packages. ;; Mailer puts message to be edited in diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 2af64de77b..ad9c3a2306 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1710,8 +1710,8 @@ in-place." ;; self-extracting exe archives. (mapcar (lambda (arg) (cons (purecopy (car arg)) (cdr arg))) '(("\\.\\(\ -arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|\ -ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" +arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|squashfs\\|\ +ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\|SQUASHFS\\)\\'" . no-conversion-multibyte) ("\\.\\(exe\\|EXE\\)\\'" . no-conversion) ("\\.\\(sx[dmicw]\\|odt\\|tar\\|t[bg]z\\)\\'" . no-conversion) commit 9e4f11a1631f627af49d5854e0f651371c8f1c19 Author: Ulf Jasper Date: Fri Oct 23 14:48:49 2020 +0200 Move icalendar test data to test/lisp/calendar/icalendar-resources * test/lisp/calendar/icalendar-tests.el (ert-x): Required for 'ert-resource-file'. (icalendar-tests--data-dir): Removed. (icalendar-tests--get-file-contents): Use 'ert-resource-file' for finding test data files. * test/data/icalendar/*: Moved to test/lisp/calendar/icalendar-resources/. * test/lisp/calendar/icalendar-resources/*: Moved from test/data/icalendar. diff --git a/test/data/icalendar/import-bug-11473.diary-european b/test/lisp/calendar/icalendar-resources/import-bug-11473.diary-european similarity index 100% rename from test/data/icalendar/import-bug-11473.diary-european rename to test/lisp/calendar/icalendar-resources/import-bug-11473.diary-european diff --git a/test/data/icalendar/import-bug-11473.ics b/test/lisp/calendar/icalendar-resources/import-bug-11473.ics similarity index 100% rename from test/data/icalendar/import-bug-11473.ics rename to test/lisp/calendar/icalendar-resources/import-bug-11473.ics diff --git a/test/data/icalendar/import-bug-22092.diary-american b/test/lisp/calendar/icalendar-resources/import-bug-22092.diary-american similarity index 100% rename from test/data/icalendar/import-bug-22092.diary-american rename to test/lisp/calendar/icalendar-resources/import-bug-22092.diary-american diff --git a/test/data/icalendar/import-bug-22092.diary-european b/test/lisp/calendar/icalendar-resources/import-bug-22092.diary-european similarity index 100% rename from test/data/icalendar/import-bug-22092.diary-european rename to test/lisp/calendar/icalendar-resources/import-bug-22092.diary-european diff --git a/test/data/icalendar/import-bug-22092.diary-iso b/test/lisp/calendar/icalendar-resources/import-bug-22092.diary-iso similarity index 100% rename from test/data/icalendar/import-bug-22092.diary-iso rename to test/lisp/calendar/icalendar-resources/import-bug-22092.diary-iso diff --git a/test/data/icalendar/import-bug-22092.ics b/test/lisp/calendar/icalendar-resources/import-bug-22092.ics similarity index 100% rename from test/data/icalendar/import-bug-22092.ics rename to test/lisp/calendar/icalendar-resources/import-bug-22092.ics diff --git a/test/data/icalendar/import-bug-24199.diary-american b/test/lisp/calendar/icalendar-resources/import-bug-24199.diary-american similarity index 100% rename from test/data/icalendar/import-bug-24199.diary-american rename to test/lisp/calendar/icalendar-resources/import-bug-24199.diary-american diff --git a/test/data/icalendar/import-bug-24199.diary-european b/test/lisp/calendar/icalendar-resources/import-bug-24199.diary-european similarity index 100% rename from test/data/icalendar/import-bug-24199.diary-european rename to test/lisp/calendar/icalendar-resources/import-bug-24199.diary-european diff --git a/test/data/icalendar/import-bug-24199.diary-iso b/test/lisp/calendar/icalendar-resources/import-bug-24199.diary-iso similarity index 100% rename from test/data/icalendar/import-bug-24199.diary-iso rename to test/lisp/calendar/icalendar-resources/import-bug-24199.diary-iso diff --git a/test/data/icalendar/import-bug-24199.ics b/test/lisp/calendar/icalendar-resources/import-bug-24199.ics similarity index 100% rename from test/data/icalendar/import-bug-24199.ics rename to test/lisp/calendar/icalendar-resources/import-bug-24199.ics diff --git a/test/data/icalendar/import-bug-33277.diary-american b/test/lisp/calendar/icalendar-resources/import-bug-33277.diary-american similarity index 100% rename from test/data/icalendar/import-bug-33277.diary-american rename to test/lisp/calendar/icalendar-resources/import-bug-33277.diary-american diff --git a/test/data/icalendar/import-bug-33277.diary-european b/test/lisp/calendar/icalendar-resources/import-bug-33277.diary-european similarity index 100% rename from test/data/icalendar/import-bug-33277.diary-european rename to test/lisp/calendar/icalendar-resources/import-bug-33277.diary-european diff --git a/test/data/icalendar/import-bug-33277.diary-iso b/test/lisp/calendar/icalendar-resources/import-bug-33277.diary-iso similarity index 100% rename from test/data/icalendar/import-bug-33277.diary-iso rename to test/lisp/calendar/icalendar-resources/import-bug-33277.diary-iso diff --git a/test/data/icalendar/import-bug-33277.ics b/test/lisp/calendar/icalendar-resources/import-bug-33277.ics similarity index 100% rename from test/data/icalendar/import-bug-33277.ics rename to test/lisp/calendar/icalendar-resources/import-bug-33277.ics diff --git a/test/data/icalendar/import-bug-6766.diary-american b/test/lisp/calendar/icalendar-resources/import-bug-6766.diary-american similarity index 100% rename from test/data/icalendar/import-bug-6766.diary-american rename to test/lisp/calendar/icalendar-resources/import-bug-6766.diary-american diff --git a/test/data/icalendar/import-bug-6766.diary-european b/test/lisp/calendar/icalendar-resources/import-bug-6766.diary-european similarity index 100% rename from test/data/icalendar/import-bug-6766.diary-european rename to test/lisp/calendar/icalendar-resources/import-bug-6766.diary-european diff --git a/test/data/icalendar/import-bug-6766.diary-iso b/test/lisp/calendar/icalendar-resources/import-bug-6766.diary-iso similarity index 100% rename from test/data/icalendar/import-bug-6766.diary-iso rename to test/lisp/calendar/icalendar-resources/import-bug-6766.diary-iso diff --git a/test/data/icalendar/import-bug-6766.ics b/test/lisp/calendar/icalendar-resources/import-bug-6766.ics similarity index 100% rename from test/data/icalendar/import-bug-6766.ics rename to test/lisp/calendar/icalendar-resources/import-bug-6766.ics diff --git a/test/data/icalendar/import-duration-2.diary-american b/test/lisp/calendar/icalendar-resources/import-duration-2.diary-american similarity index 100% rename from test/data/icalendar/import-duration-2.diary-american rename to test/lisp/calendar/icalendar-resources/import-duration-2.diary-american diff --git a/test/data/icalendar/import-duration-2.diary-european b/test/lisp/calendar/icalendar-resources/import-duration-2.diary-european similarity index 100% rename from test/data/icalendar/import-duration-2.diary-european rename to test/lisp/calendar/icalendar-resources/import-duration-2.diary-european diff --git a/test/data/icalendar/import-duration-2.diary-iso b/test/lisp/calendar/icalendar-resources/import-duration-2.diary-iso similarity index 100% rename from test/data/icalendar/import-duration-2.diary-iso rename to test/lisp/calendar/icalendar-resources/import-duration-2.diary-iso diff --git a/test/data/icalendar/import-duration-2.ics b/test/lisp/calendar/icalendar-resources/import-duration-2.ics similarity index 100% rename from test/data/icalendar/import-duration-2.ics rename to test/lisp/calendar/icalendar-resources/import-duration-2.ics diff --git a/test/data/icalendar/import-duration.diary-american b/test/lisp/calendar/icalendar-resources/import-duration.diary-american similarity index 100% rename from test/data/icalendar/import-duration.diary-american rename to test/lisp/calendar/icalendar-resources/import-duration.diary-american diff --git a/test/data/icalendar/import-duration.diary-european b/test/lisp/calendar/icalendar-resources/import-duration.diary-european similarity index 100% rename from test/data/icalendar/import-duration.diary-european rename to test/lisp/calendar/icalendar-resources/import-duration.diary-european diff --git a/test/data/icalendar/import-duration.diary-iso b/test/lisp/calendar/icalendar-resources/import-duration.diary-iso similarity index 100% rename from test/data/icalendar/import-duration.diary-iso rename to test/lisp/calendar/icalendar-resources/import-duration.diary-iso diff --git a/test/data/icalendar/import-duration.ics b/test/lisp/calendar/icalendar-resources/import-duration.ics similarity index 100% rename from test/data/icalendar/import-duration.ics rename to test/lisp/calendar/icalendar-resources/import-duration.ics diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-american b/test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-american similarity index 100% rename from test/data/icalendar/import-multiple-vcalendars.diary-american rename to test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-american diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-european b/test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-european similarity index 100% rename from test/data/icalendar/import-multiple-vcalendars.diary-european rename to test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-european diff --git a/test/data/icalendar/import-multiple-vcalendars.diary-iso b/test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-iso similarity index 100% rename from test/data/icalendar/import-multiple-vcalendars.diary-iso rename to test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.diary-iso diff --git a/test/data/icalendar/import-multiple-vcalendars.ics b/test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.ics similarity index 100% rename from test/data/icalendar/import-multiple-vcalendars.ics rename to test/lisp/calendar/icalendar-resources/import-multiple-vcalendars.ics diff --git a/test/data/icalendar/import-non-recurring-1.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-1.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-american diff --git a/test/data/icalendar/import-non-recurring-1.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-1.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-european diff --git a/test/data/icalendar/import-non-recurring-1.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-1.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-1.diary-iso diff --git a/test/data/icalendar/import-non-recurring-1.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-1.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-1.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-1.ics diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-all-day.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-american diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-all-day.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-european diff --git a/test/data/icalendar/import-non-recurring-all-day.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-all-day.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.diary-iso diff --git a/test/data/icalendar/import-non-recurring-all-day.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-all-day.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.ics diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-another-example.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-american diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-another-example.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-european diff --git a/test/data/icalendar/import-non-recurring-another-example.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-another-example.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.diary-iso diff --git a/test/data/icalendar/import-non-recurring-another-example.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-another-example.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-another-example.ics diff --git a/test/data/icalendar/import-non-recurring-block.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-block.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-american diff --git a/test/data/icalendar/import-non-recurring-block.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-block.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-european diff --git a/test/data/icalendar/import-non-recurring-block.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-block.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-block.diary-iso diff --git a/test/data/icalendar/import-non-recurring-block.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-block.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-block.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-block.ics diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-folded-summary.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-american diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-folded-summary.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-european diff --git a/test/data/icalendar/import-non-recurring-folded-summary.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-folded-summary.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.diary-iso diff --git a/test/data/icalendar/import-non-recurring-folded-summary.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-folded-summary.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-folded-summary.ics diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-american b/test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-american similarity index 100% rename from test/data/icalendar/import-non-recurring-long-summary.diary-american rename to test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-american diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-european b/test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-european similarity index 100% rename from test/data/icalendar/import-non-recurring-long-summary.diary-european rename to test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-european diff --git a/test/data/icalendar/import-non-recurring-long-summary.diary-iso b/test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-iso similarity index 100% rename from test/data/icalendar/import-non-recurring-long-summary.diary-iso rename to test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.diary-iso diff --git a/test/data/icalendar/import-non-recurring-long-summary.ics b/test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.ics similarity index 100% rename from test/data/icalendar/import-non-recurring-long-summary.ics rename to test/lisp/calendar/icalendar-resources/import-non-recurring-long-summary.ics diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2003-05-29.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.diary-american diff --git a/test/data/icalendar/import-real-world-2003-05-29.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2003-05-29.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.diary-european diff --git a/test/data/icalendar/import-real-world-2003-05-29.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.ics similarity index 100% rename from test/data/icalendar/import-real-world-2003-05-29.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-05-29.ics diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18a.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.diary-american diff --git a/test/data/icalendar/import-real-world-2003-06-18a.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18a.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.diary-european diff --git a/test/data/icalendar/import-real-world-2003-06-18a.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.ics similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18a.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18a.ics diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18b.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.diary-american diff --git a/test/data/icalendar/import-real-world-2003-06-18b.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18b.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.diary-european diff --git a/test/data/icalendar/import-real-world-2003-06-18b.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.ics similarity index 100% rename from test/data/icalendar/import-real-world-2003-06-18b.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2003-06-18b.ics diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2004-11-19.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.diary-american diff --git a/test/data/icalendar/import-real-world-2004-11-19.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2004-11-19.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.diary-european diff --git a/test/data/icalendar/import-real-world-2004-11-19.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.ics similarity index 100% rename from test/data/icalendar/import-real-world-2004-11-19.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2004-11-19.ics diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2005-02-07.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.diary-american diff --git a/test/data/icalendar/import-real-world-2005-02-07.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2005-02-07.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.diary-european diff --git a/test/data/icalendar/import-real-world-2005-02-07.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.ics similarity index 100% rename from test/data/icalendar/import-real-world-2005-02-07.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-02-07.ics diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-2005-03-01.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.diary-american diff --git a/test/data/icalendar/import-real-world-2005-03-01.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-2005-03-01.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.diary-european diff --git a/test/data/icalendar/import-real-world-2005-03-01.ics b/test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.ics similarity index 100% rename from test/data/icalendar/import-real-world-2005-03-01.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-2005-03-01.ics diff --git a/test/data/icalendar/import-real-world-no-dst.diary-american b/test/lisp/calendar/icalendar-resources/import-real-world-no-dst.diary-american similarity index 100% rename from test/data/icalendar/import-real-world-no-dst.diary-american rename to test/lisp/calendar/icalendar-resources/import-real-world-no-dst.diary-american diff --git a/test/data/icalendar/import-real-world-no-dst.diary-european b/test/lisp/calendar/icalendar-resources/import-real-world-no-dst.diary-european similarity index 100% rename from test/data/icalendar/import-real-world-no-dst.diary-european rename to test/lisp/calendar/icalendar-resources/import-real-world-no-dst.diary-european diff --git a/test/data/icalendar/import-real-world-no-dst.ics b/test/lisp/calendar/icalendar-resources/import-real-world-no-dst.ics similarity index 100% rename from test/data/icalendar/import-real-world-no-dst.ics rename to test/lisp/calendar/icalendar-resources/import-real-world-no-dst.ics diff --git a/test/data/icalendar/import-rrule-anniversary.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-anniversary.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-american diff --git a/test/data/icalendar/import-rrule-anniversary.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-anniversary.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-european diff --git a/test/data/icalendar/import-rrule-anniversary.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-anniversary.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-iso diff --git a/test/data/icalendar/import-rrule-anniversary.ics b/test/lisp/calendar/icalendar-resources/import-rrule-anniversary.ics similarity index 100% rename from test/data/icalendar/import-rrule-anniversary.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-anniversary.ics diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-bi-weekly.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-american diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-bi-weekly.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-european diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-bi-weekly.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.diary-iso diff --git a/test/data/icalendar/import-rrule-count-bi-weekly.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-bi-weekly.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-bi-weekly.ics diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-long.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-american diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-long.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-european diff --git a/test/data/icalendar/import-rrule-count-daily-long.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-long.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.diary-iso diff --git a/test/data/icalendar/import-rrule-count-daily-long.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-long.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-long.ics diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-short.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-american diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-short.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-european diff --git a/test/data/icalendar/import-rrule-count-daily-short.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-short.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.diary-iso diff --git a/test/data/icalendar/import-rrule-count-daily-short.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-daily-short.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-daily-short.ics diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-month.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-american diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-month.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-european diff --git a/test/data/icalendar/import-rrule-count-every-second-month.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-month.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.diary-iso diff --git a/test/data/icalendar/import-rrule-count-every-second-month.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-month.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-month.ics diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-year.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-american diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-year.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-european diff --git a/test/data/icalendar/import-rrule-count-every-second-year.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-year.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.diary-iso diff --git a/test/data/icalendar/import-rrule-count-every-second-year.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-every-second-year.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-every-second-year.ics diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-monthly.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-american diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-monthly.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-european diff --git a/test/data/icalendar/import-rrule-count-monthly.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-monthly.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.diary-iso diff --git a/test/data/icalendar/import-rrule-count-monthly.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-monthly.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-monthly.ics diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-count-yearly.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-american diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-count-yearly.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-european diff --git a/test/data/icalendar/import-rrule-count-yearly.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-count-yearly.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.diary-iso diff --git a/test/data/icalendar/import-rrule-count-yearly.ics b/test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.ics similarity index 100% rename from test/data/icalendar/import-rrule-count-yearly.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-count-yearly.ics diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-daily-two-day.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-american diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-daily-two-day.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-european diff --git a/test/data/icalendar/import-rrule-daily-two-day.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-daily-two-day.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.diary-iso diff --git a/test/data/icalendar/import-rrule-daily-two-day.ics b/test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.ics similarity index 100% rename from test/data/icalendar/import-rrule-daily-two-day.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-two-day.ics diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-daily-with-exceptions.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-american diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-daily-with-exceptions.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-european diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-daily-with-exceptions.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.diary-iso diff --git a/test/data/icalendar/import-rrule-daily-with-exceptions.ics b/test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.ics similarity index 100% rename from test/data/icalendar/import-rrule-daily-with-exceptions.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.ics diff --git a/test/data/icalendar/import-rrule-daily.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-daily.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-american diff --git a/test/data/icalendar/import-rrule-daily.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-daily.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-european diff --git a/test/data/icalendar/import-rrule-daily.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-daily.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-daily.diary-iso diff --git a/test/data/icalendar/import-rrule-daily.ics b/test/lisp/calendar/icalendar-resources/import-rrule-daily.ics similarity index 100% rename from test/data/icalendar/import-rrule-daily.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-daily.ics diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-monthly-no-end.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-american diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-monthly-no-end.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-european diff --git a/test/data/icalendar/import-rrule-monthly-no-end.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-monthly-no-end.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.diary-iso diff --git a/test/data/icalendar/import-rrule-monthly-no-end.ics b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.ics similarity index 100% rename from test/data/icalendar/import-rrule-monthly-no-end.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.ics diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-monthly-with-end.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-american diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-monthly-with-end.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-european diff --git a/test/data/icalendar/import-rrule-monthly-with-end.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-monthly-with-end.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.diary-iso diff --git a/test/data/icalendar/import-rrule-monthly-with-end.ics b/test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.ics similarity index 100% rename from test/data/icalendar/import-rrule-monthly-with-end.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.ics diff --git a/test/data/icalendar/import-rrule-weekly.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-weekly.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-american diff --git a/test/data/icalendar/import-rrule-weekly.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-weekly.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-european diff --git a/test/data/icalendar/import-rrule-weekly.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-weekly.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-weekly.diary-iso diff --git a/test/data/icalendar/import-rrule-weekly.ics b/test/lisp/calendar/icalendar-resources/import-rrule-weekly.ics similarity index 100% rename from test/data/icalendar/import-rrule-weekly.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-weekly.ics diff --git a/test/data/icalendar/import-rrule-yearly.diary-american b/test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-american similarity index 100% rename from test/data/icalendar/import-rrule-yearly.diary-american rename to test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-american diff --git a/test/data/icalendar/import-rrule-yearly.diary-european b/test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-european similarity index 100% rename from test/data/icalendar/import-rrule-yearly.diary-european rename to test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-european diff --git a/test/data/icalendar/import-rrule-yearly.diary-iso b/test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-iso similarity index 100% rename from test/data/icalendar/import-rrule-yearly.diary-iso rename to test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-iso diff --git a/test/data/icalendar/import-rrule-yearly.ics b/test/lisp/calendar/icalendar-resources/import-rrule-yearly.ics similarity index 100% rename from test/data/icalendar/import-rrule-yearly.ics rename to test/lisp/calendar/icalendar-resources/import-rrule-yearly.ics diff --git a/test/data/icalendar/import-with-timezone.diary-iso b/test/lisp/calendar/icalendar-resources/import-with-timezone.diary-iso similarity index 100% rename from test/data/icalendar/import-with-timezone.diary-iso rename to test/lisp/calendar/icalendar-resources/import-with-timezone.diary-iso diff --git a/test/data/icalendar/import-with-timezone.ics b/test/lisp/calendar/icalendar-resources/import-with-timezone.ics similarity index 100% rename from test/data/icalendar/import-with-timezone.ics rename to test/lisp/calendar/icalendar-resources/import-with-timezone.ics diff --git a/test/data/icalendar/import-with-uid.diary-american b/test/lisp/calendar/icalendar-resources/import-with-uid.diary-american similarity index 100% rename from test/data/icalendar/import-with-uid.diary-american rename to test/lisp/calendar/icalendar-resources/import-with-uid.diary-american diff --git a/test/data/icalendar/import-with-uid.diary-european b/test/lisp/calendar/icalendar-resources/import-with-uid.diary-european similarity index 100% rename from test/data/icalendar/import-with-uid.diary-european rename to test/lisp/calendar/icalendar-resources/import-with-uid.diary-european diff --git a/test/data/icalendar/import-with-uid.diary-iso b/test/lisp/calendar/icalendar-resources/import-with-uid.diary-iso similarity index 100% rename from test/data/icalendar/import-with-uid.diary-iso rename to test/lisp/calendar/icalendar-resources/import-with-uid.diary-iso diff --git a/test/data/icalendar/import-with-uid.ics b/test/lisp/calendar/icalendar-resources/import-with-uid.ics similarity index 100% rename from test/data/icalendar/import-with-uid.ics rename to test/lisp/calendar/icalendar-resources/import-with-uid.ics diff --git a/test/lisp/calendar/icalendar-tests.el b/test/lisp/calendar/icalendar-tests.el index 5143c78632..8b44f63947 100644 --- a/test/lisp/calendar/icalendar-tests.el +++ b/test/lisp/calendar/icalendar-tests.el @@ -32,6 +32,7 @@ ;;; Code: (require 'ert) +(require 'ert-x) (require 'icalendar) ;; ====================================================================== @@ -51,18 +52,13 @@ (replace-regexp-in-string "[ \t\n]+\\'" "" (replace-regexp-in-string "\\`[ \t\n]+" "" string))) -(defconst icalendar-tests--data-dir - (expand-file-name "test/data/icalendar" source-directory)) - (defun icalendar-tests--get-file-contents (filename) "Return contents of file in test data directory named FILENAME." (with-temp-buffer - (let ((f1 (expand-file-name filename icalendar-tests--data-dir)) - (f2 (expand-file-name filename "../../data/icalendar")) - (coding-system-for-read 'raw-text) + (let ((coding-system-for-read 'raw-text) (inhibit-eol-conversion t)) (insert-file-contents-literally - (if (file-exists-p f1) f1 f2)) + (ert-resource-file filename)) (buffer-string)))) ;; ====================================================================== commit 22e5239c172ccc603b1f0def87aeabc3ccdb61c6 Author: Stefan Kangas Date: Fri Oct 23 12:56:39 2020 +0200 Clean up temporary files after package tests * test/lisp/emacs-lisp/package-tests.el (with-package-test): Remove temporary files after test. (Bug#43359) diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el index 155a8e6fce..23267545f8 100644 --- a/test/lisp/emacs-lisp/package-tests.el +++ b/test/lisp/emacs-lisp/package-tests.el @@ -151,6 +151,15 @@ `(insert-file-contents ,file)) ,@body))) + (when ,upload-base + (dolist (f '("archive-contents" + "simple-single-1.3.el" + "simple-single-1.4.el" + "simple-single-readme.txt")) + (ignore-errors + (delete-file + (expand-file-name f package-test-archive-upload-base)))) + (delete-directory package-test-archive-upload-base)) (when (file-directory-p package-test-user-dir) (delete-directory package-test-user-dir t)) commit c57a60ee958821790a1fe4220a2c3837b664e9be Author: Mattias Engdegård Date: Fri Oct 23 11:11:51 2020 +0200 Use lexical binding in ffap.el * lisp/ffap.el (ffap-search-backward-file-end): Remove binding for variable shadowing an optional (and never used) argument. (ffap--gopher-var-on-line): Remove unused variable. diff --git a/lisp/ffap.el b/lisp/ffap.el index 94aba5e5fb..bf03588600 100644 --- a/lisp/ffap.el +++ b/lisp/ffap.el @@ -1,4 +1,4 @@ -;;; ffap.el --- find file (or url) at point +;;; ffap.el --- find file (or url) at point -*- lexical-binding: t -*- ;; Copyright (C) 1995-1997, 2000-2020 Free Software Foundation, Inc. @@ -1139,7 +1139,7 @@ Move point and return point if an adjustment was done." (unless dir-separator (setq dir-separator "/")) (let ((opoint (point)) - point punct end whitespace-p) + point punct whitespace-p) (when (re-search-backward (regexp-quote dir-separator) (line-beginning-position) t) ;; Move to the beginning of the match.. @@ -1360,12 +1360,14 @@ Set to nil to disable matching gopher bookmarks.") (defun ffap--gopher-var-on-line () "Return (KEY . VALUE) of gopher bookmark on current line." (save-excursion - (let ((eol (progn (end-of-line) (skip-chars-backward " ") (point))) - (bol (progn (beginning-of-line) (point)))) - (when (re-search-forward ffap-gopher-regexp eol t) - (let ((key (match-string 1)) - (val (buffer-substring-no-properties (match-end 0) eol))) - (cons (intern (downcase key)) val)))))) + (end-of-line) + (skip-chars-backward " ") + (let ((eol (point))) + (beginning-of-line) + (when (re-search-forward ffap-gopher-regexp eol t) + (let ((key (match-string 1)) + (val (buffer-substring-no-properties (match-end 0) eol))) + (cons (intern (downcase key)) val)))))) (defun ffap-gopher-at-point () "If point is inside a gopher bookmark block, return its URL.