annotate tests/automated/syntax-tests.el @ 5258:1ed4cefddd12

Add a couple of extra docstring backslashes, #'format-time-string 2010-09-05 Aidan Kehoe <kehoea@parhasard.net> * editfns.c (Fformat_time_string): Use two backslashes so that there is at least one present in the output of describe function, when describing the Roman month number syntax in this function's docstring. Thanks for provoking me to look at this, Stephen Turnbull.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 05 Sep 2010 19:22:37 +0100
parents 0f66906b6e37
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
1 ;; Copyright (C) 1999 Free Software Foundation, Inc.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
2
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
3 ;; Author: Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
4 ;; Maintainer: Yoshiki Hayashi <t90553@mail.ecc.u-tokyo.ac.jp>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
5 ;; Created: 1999
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
6 ;; Keywords: tests
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
7
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
8 ;; This file is part of XEmacs.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
9
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
10 ;; XEmacs is free software; you can redistribute it and/or modify it
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
11 ;; under the terms of the GNU General Public License as published by
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
13 ;; any later version.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
14
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
15 ;; XEmacs is distributed in the hope that it will be useful, but
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
18 ;; General Public License for more details.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
19
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
21 ;; along with XEmacs; see the file COPYING. If not, write to the Free
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
22 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
23 ;; 02111-1307, USA.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
24
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
25 ;;; Synched up with: Not in FSF.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
26
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
27 ;;; Commentary:
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
28
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
29 ;; Test syntax related functions.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
30 ;; Right now it tests scan_words using forward-word and backward-word.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
31 ;; See test-harness.el for instructions on how to run these tests.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
32
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
33 ;;; Notation
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
34 ;; W: word constituent character.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
35 ;; NW: non word constituent character.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
36 ;; -!-: current point.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
37 ;; EOB: end of buffer
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
38 ;; BOB: beginning of buffer.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
39
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
40 ;; Algorithm of scan_words is simple. It just searches SW and then
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
41 ;; moves to NW. When with MULE, it also stops at word boundary. Word
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
42 ;; boundary is tricky and listing all possible cases will be huge.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
43 ;; Those test are omitted here as it doesn't affect core
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
44 ;; functionality.
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
45
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
46 (defun test-forward-word (string stop)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
47 (goto-char (point-max))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
48 (let ((point (point)))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
49 (insert string)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
50 (goto-char point)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
51 (forward-word 1)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
52 (Assert (eq (point) (+ point stop)))))
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
53
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
54 (with-temp-buffer
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
55 ;; -!- W NW
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
56 (test-forward-word "W " 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
57 (test-forward-word "WO " 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
58 ;; -!- W EOB
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
59 (test-forward-word "W" 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
60 (test-forward-word "WO" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
61 ;; -!- NW EOB
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
62 (test-forward-word " " 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
63 (test-forward-word " !" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
64 ;; -!- NW W NW
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
65 (test-forward-word " W " 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
66 (test-forward-word " WO " 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
67 (test-forward-word " !W " 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
68 (test-forward-word " !WO " 4)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
69 ;; -!- NW W EOB
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
70 (test-forward-word " W" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
71 (test-forward-word " WO" 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
72 (test-forward-word " !W" 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
73 (test-forward-word " !WO" 4))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
74
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
75 (defun test-backward-word (string stop)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
76 (goto-char (point-min))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
77 (insert string)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
78 (let ((point (point)))
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
79 (backward-word 1)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
80 (Assert (eq (point) (- point stop)))))
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
81
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
82 (with-temp-buffer
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
83 ;; NW W -!-
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
84 (test-backward-word " W" 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
85 (test-backward-word " WO" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
86 ;; BOB W -!-
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
87 (test-backward-word "W" 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
88 (test-backward-word "WO" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
89 ;; BOB NW -!-
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
90 ;; -!-NW EOB
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
91 (test-backward-word " " 1)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
92 (test-backward-word " !" 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
93 ;; NW W NW -!-
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
94 (test-backward-word " W " 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
95 (test-backward-word " WO " 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
96 (test-backward-word " W !" 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
97 (test-backward-word " WO !" 4)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
98 ;; BOB W NW -!-
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
99 (test-backward-word "W " 2)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
100 (test-backward-word "WO " 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
101 (test-backward-word "W !" 3)
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents:
diff changeset
102 (test-backward-word "WO !" 4))
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
103
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
104 ;; Works like test-forward-word, except for the following:
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
105 ;; after <string> is inserted, the syntax-table <apply-syntax>
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
106 ;; is applied to position <apply-pos>.
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
107 ;; <apply-pos> can be in the form (start . end), or can be a
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
108 ;; character position.
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
109 (defun test-syntax-table (string apply-pos apply-syntax stop)
1024
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
110 ;; We don't necessarily have syntax-table properties ...
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
111 (when (fboundp 'lookup-syntax-properties) ; backwards compatible kludge
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
112 ;; ... and they may not be enabled by default if we do.
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
113 (setq lookup-syntax-properties t)
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
114 (goto-char (point-max))
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
115 (unless (consp apply-pos)
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
116 (setq apply-pos `(,apply-pos . ,(+ 1 apply-pos))))
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
117 (let ((point (point)))
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
118 (insert string)
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
119 (put-text-property (+ point (car apply-pos)) (+ point (cdr apply-pos))
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
120 'syntax-table apply-syntax)
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
121 (goto-char point)
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
122 (forward-word 1)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
123 (Assert (eq (point) (+ point stop))))))
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
124
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
125 ;; test syntax-table extents
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
126 (with-temp-buffer
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
127 ;; Apply punctuation to word
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
128 (test-syntax-table "WO" 1 `(,(syntax-string-to-code ".")) 1)
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
129 ;; Apply word to punctuation
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
130 (test-syntax-table "W." 1 `(,(syntax-string-to-code "w")) 2))
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
131
3880
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
132 ;; According to Ralf Angeli in
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
133 ;; http://article.gmane.org/gmane.emacs.xemacs.beta/17353:
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
134 ;; Using a fresh CVS checkout of XEmacs trunk the following snippet
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
135 ;; returns "1" when evaluated whereas it returns "5" in GNU Emacs 21.3,
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
136 ;; CVS GNU Emacs and XEmacs 21.4.15.
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
137 ;; If `set-syntax-table' is used instead of `with-syntax-table', CVS
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
138 ;; XEmacs returns "5" as well, so I suppose that there is a problem in
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
139 ;; `with-syntax-table' or a function called by it.
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
140
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
141 ;; Fixed 2007-03-25 Olivier Galibert <20070324221053.GA48218@dspnet.fr.eu.org>
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
142 (with-temp-buffer
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
143 (with-syntax-table (make-syntax-table)
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
144 (insert "foo bar")
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
145 (backward-sexp 1)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
146 (Assert (eql (point) 5))))
3880
4035bd42c75e [xemacs-hg @ 2007-03-25 15:57:32 by stephent]
stephent
parents: 3130
diff changeset
147
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
148 ;; Test forward-comment at buffer boundaries
1024
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
149 ;; #### The second Assert fails (once interpreted, once compiled) on 21.4.9
ccaf90c5a53a [xemacs-hg @ 2002-10-02 09:29:37 by stephent]
stephent
parents: 973
diff changeset
150 ;; with sjt's version of Andy's syntax-text-property-killer patch.
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
151 (with-temp-buffer
1095
0d33547d9ed3 [xemacs-hg @ 2002-11-11 15:39:03 by stephent]
stephent
parents: 1024
diff changeset
152 (Skip-Test-Unless (fboundp 'c-mode)
0d33547d9ed3 [xemacs-hg @ 2002-11-11 15:39:03 by stephent]
stephent
parents: 1024
diff changeset
153 "c-mode unavailable"
0d33547d9ed3 [xemacs-hg @ 2002-11-11 15:39:03 by stephent]
stephent
parents: 1024
diff changeset
154 "comment and parse-partial-sexp tests"
973
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
155 (c-mode)
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
156
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
157 (insert "// comment\n")
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
158 (forward-comment -2)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
159 (Assert (eq (point) (point-min)))
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
160
973
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
161 (let ((point (point)))
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
162 (insert "/* comment */")
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
163 (goto-char point)
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
164 (forward-comment 2)
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
165 (Assert (eq (point) (point-max)))
460
223736d75acb Import from CVS: tag r21-2-45
cvs
parents: 398
diff changeset
166
973
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
167 ;; this last used to crash
ea6a06f7bf2c [xemacs-hg @ 2002-08-22 14:56:23 by stephent]
stephent
parents: 460
diff changeset
168 (parse-partial-sexp point (point-max)))))
3130
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
169
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
170 ;; Test backward-up-list
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
171 ;; Known-Bug: report = Evgeny Zacjev ca 2005-12-01, confirm = Aidan Kehoe
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
172
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
173 (with-temp-buffer
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
174 ;; We are now using the standard syntax table. Thus there's no need to
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
175 ;; worry about a bogus syntax setting, eg, in a Gnus Article buffer the
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
176 ;; bug doesn't manifest.
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
177
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
178 ;; value of point to the immediate left of this character
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
179 ;; 0 1 2
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
180 ;; 1234 56789 012 34567 890 12 3456 7
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
181 (insert "a ( \"b (c\" (\"defg\") \")\") h\n")
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
182
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
183 ;; #### This test should check *every* position.
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
184 (flet ((backward-up-list-moves-point-from-to (start expected-end)
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
185 (goto-char start)
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
186 (backward-up-list 1)
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
187 (= (point) expected-end)))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
188 (Known-Bug-Expect-Failure
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
189 ;; Evgeny's case
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
190 (Assert (backward-up-list-moves-point-from-to 16 12)))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
191 (Assert (backward-up-list-moves-point-from-to 19 12))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
192 (Assert (backward-up-list-moves-point-from-to 20 3))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
193 (Known-Bug-Expect-Failure
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
194 (Assert (backward-up-list-moves-point-from-to 22 3)))
5065
133e816778ed fix expected-buggy test to avoid abort in test file
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
195 (Known-Bug-Expect-Error scan-error
133e816778ed fix expected-buggy test to avoid abort in test file
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
196 (Assert (backward-up-list-moves-point-from-to 23 3))
133e816778ed fix expected-buggy test to avoid abort in test file
Ben Wing <ben@xemacs.org>
parents: 4855
diff changeset
197 )
3130
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
198 (Assert (backward-up-list-moves-point-from-to 24 3))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
199 ;; This is maybe a little tricky, since we don't expect the position
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
200 ;; check to happen -- so use an illegal expected position
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
201 ;; I don't think there's any other way for this to fail that way,
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
202 ;; barring hardware error....
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
203 (Check-Error-Message syntax-error
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
204 "Unbalanced parentheses"
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
205 (backward-up-list-moves-point-from-to 25 nil))
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
206 ;; special-case check that point didn't move
5136
0f66906b6e37 Undo Assert-equal, Assert=, etc.; make `Assert' handle this automatically
Ben Wing <ben@xemacs.org>
parents: 5065
diff changeset
207 (Assert (= (point) 25))))
3130
a7ef4b25b467 [xemacs-hg @ 2005-12-08 10:58:57 by stephent]
stephent
parents: 1095
diff changeset
208
4324
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
209 (loop
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
210 with envvar-not-existing = (symbol-name (gensym "whatever"))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
211 with envvar-existing = (symbol-name (gensym "whatever"))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
212 with envvar-existing-val = (make-string #x10000 ?\xe1)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
213 with examples =
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
214 (list (list (format "%chome%cwhatever%c%chi-there%c$%s"
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
215 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
216 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
217 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
218 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
219 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
220 envvar-existing)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
221 (format "%chi-there%c%s"
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
222 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
223 directory-sep-char
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
224 envvar-existing-val))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
225 (if (memq system-type '(windows-nt cygwin32))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
226 '("//network-path/c$" "//network-path/c$")
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
227 '("/network-path/c$" "/network-path/c$"))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
228 (list (format "/home/whoever/$%s" envvar-not-existing)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
229 (format "/home/whoever/$%s" envvar-not-existing))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
230 (list (format "/home/whoever/$%s" envvar-existing)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
231 (format "/home/whoever/%s" envvar-existing-val))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
232 (list (format "/home/whoever/${%s}" envvar-existing)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
233 (format "/home/whoever/%s" envvar-existing-val))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
234 (list (format "/home/whoever/${%s}" envvar-not-existing)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
235 (format "/home/whoever/${%s}" envvar-not-existing)))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
236 initially (progn (setenv envvar-not-existing nil t)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
237 (setenv envvar-existing envvar-existing-val))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
238 for (pre post)
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
239 in examples
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
240 do
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
241 (Assert (string= post (substitute-in-file-name pre))))
5e526366d533 Don't error on unknown environment variables, #'substitute-in-file-name.
Aidan Kehoe <kehoea@parhasard.net>
parents: 3880
diff changeset
242