diff options
author | Michal Nazarewicz <[email protected]> | 2014-06-05 16:37:45 +0200 |
---|---|---|
committer | Michal Nazarewicz <[email protected]> | 2014-06-05 16:37:45 +0200 |
commit | af9a3b28c0ca250ed245bd54c8737792916fe4c6 (patch) | |
tree | e6547ebc6b75c57699cde2c3a8e07066ab73d110 /test | |
parent | a1d799c25e4ad96dd2303ef2daa6cb51b5a0fe01 (diff) |
tildify.el: Fix end-regex building in `tildify-find-env'
* lisp/textmodes/tildify.el (tildify-find-env): The
`tildify-ignored-environments-alist' allows the end-regex
to be provided not as a static string but mix of strings and
indexes of groups matched the begin-regex. For example, the
“\verb!…!” TeX-command (where “!” is an arbitrary character)
is handled using:
("\\\\verb\\*?\\(.\\)" . (1))
In the same way, the following should be supported as well:
("open-\\(.\\)" . ("end-" 1))
However the tildify-find-env function fails at
(concat result
(if (stringp (setq aux (car expression)))
expression ; BUG: expression is a list
(regexp-quote (match-string aux))))
where the string part is handled incorrectly.
The most trivial fix would be to replace `expression'
in the true-part of the if-statement with `aux', but
instead, this commit optimises `tildify-find-env' by
changing it to use `mapconcat' rather than open-coded
while-loop.
* tests/automated/tildify-tests.el (tildify-test-find-env-end-re-bug):
New test validating fix to the above bug.
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 6 | ||||
-rw-r--r-- | test/automated/tildify-tests.el | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index b6b3dd379a..db32aae578 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,9 @@ +2014-06-05 Michal Nazarewicz <[email protected]> + + * automated/tildify-tests.el (tildify-test-find-env-end-re-bug): New + test checking end-regex building in `tildify-find-env' function when + integers (denoting capture groups) and strings are mixed together. + 2014-06-02 Michael Albinus <[email protected]> * automated/tramp-tests.el (tramp-remote-process-environment): Declare. diff --git a/test/automated/tildify-tests.el b/test/automated/tildify-tests.el index 4223029f62..25e9f22adf 100644 --- a/test/automated/tildify-tests.el +++ b/test/automated/tildify-tests.el @@ -101,6 +101,17 @@ latter is missing, SENTENCE will be used in all placeholder positions." (tildify-test--example-tex sentence sentence) (tildify-test--example-tex sentence with-nbsp)))) + +(ert-deftest tildify-test-find-env-end-re-bug () + "Tests generation of end-regex using mix of indexes and strings" + (with-temp-buffer + (let ((tildify-ignored-environments-alist + `((,major-mode ("foo\\|bar" . ("end-" 0)))))) + (insert "foo whatever end-foo") + (goto-char (point-min)) + (should (string-equal "end-foo" (tildify-find-env "foo\\|bar")))))) + + (provide 'tildify-tests) ;;; tildify-tests.el ends here |