APPROVE COMMIT 21.5 RECOMMEND 21.4
Index: tests/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/ChangeLog,v
retrieving revision 1.73
diff -u -r1.73 ChangeLog
--- tests/ChangeLog 29 Nov 2005 17:04:23 -0000 1.73
+++ tests/ChangeLog 8 Dec 2005 09:30:49 -0000
@@ -0,0 +1,5 @@
+2005-12-08 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * automated/syntax-tests.el (backward-up-list): New test.
+ Thanks to Zacjev Evgeny for report, Aidan Kehoe for reproduction.
+
Index: tests/automated/syntax-tests.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/tests/automated/syntax-tests.el,v
retrieving revision 1.5
diff -u -r1.5 syntax-tests.el
--- tests/automated/syntax-tests.el 11 Nov 2002 15:39:07 -0000 1.5
+++ tests/automated/syntax-tests.el 8 Dec 2005 09:30:49 -0000
@@ -150,3 +150,42 @@
;; this last used to crash
(parse-partial-sexp point (point-max)))))
+
+;; Test backward-up-list
+;; Known-Bug: report = Evgeny Zacjev ca 2005-12-01, confirm = Aidan Kehoe
+
+(with-temp-buffer
+ ;; We are now using the standard syntax table. Thus there's no need to
+ ;; worry about a bogus syntax setting, eg, in a Gnus Article buffer the
+ ;; bug doesn't manifest.
+
+ ;; value of point to the immediate left of this character
+ ;; 0 1 2
+ ;; 1234 56789 012 34567 890 12 3456 7
+ (insert "a ( \"b (c\" (\"defg\") \")\") h\n")
+
+ ;; #### This test should check *every* position.
+ (flet ((backward-up-list-moves-point-from-to (start expected-end)
+ (goto-char start)
+ (backward-up-list 1)
+ (= (point) expected-end)))
+ (Known-Bug-Expect-Failure
+ ;; Evgeny's case
+ (Assert (backward-up-list-moves-point-from-to 16 12)))
+ (Assert (backward-up-list-moves-point-from-to 19 12))
+ (Assert (backward-up-list-moves-point-from-to 20 3))
+ (Known-Bug-Expect-Failure
+ (Assert (backward-up-list-moves-point-from-to 22 3)))
+ (Known-Bug-Expect-Failure
+ (Assert (backward-up-list-moves-point-from-to 23 3)))
+ (Assert (backward-up-list-moves-point-from-to 24 3))
+ ;; This is maybe a little tricky, since we don't expect the position
+ ;; check to happen -- so use an illegal expected position
+ ;; I don't think there's any other way for this to fail that way,
+ ;; barring hardware error....
+ (Check-Error-Message syntax-error
+ "Unbalanced parentheses"
+ (backward-up-list-moves-point-from-to 25 nil))
+ ;; special-case check that point didn't move
+ (Assert (= (point) 25))))
+
--
School of Systems and Information Engineering
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.