File tree Expand file tree Collapse file tree 2 files changed +29
-4
lines changed Expand file tree Collapse file tree 2 files changed +29
-4
lines changed Original file line number Diff line number Diff line change @@ -230,7 +230,10 @@ keywords."
230230 (error " Can't find any result keyword " ))
231231 (re-search-forward etest--result-re end t )
232232 (let ((result-beg (1- (point )))
233- (result-end (progn (backward-up-list -1 t ) (point )))
233+ (result-end (progn
234+ (etest--backward-up-strings)
235+ (etest--forward-sexp)
236+ (point )))
234237 (result-str (prin1-to-string (pop results))))
235238 (goto-char result-beg)
236239 (delete-region result-beg result-end)
@@ -251,17 +254,24 @@ keywords."
251254 (buffer-end N))))
252255 (error nil )))
253256
257+ (defun etest--backward-up-strings ()
258+ (let ((syntax (syntax-ppss (point ))))
259+ (while (nth 3 syntax)
260+ (goto-char (nth 8 syntax))
261+ (setq syntax (syntax-ppss (point ))))))
262+
254263(defun etest--climb-deftest ()
255264 ; ; Climb one character when point is in front of a parenthesis.
256265 ; ; This puts the cursor inside the `etest-deftest` when it is in
257266 ; ; front.
267+ (etest--backward-up-strings)
258268 (unless (looking-at " (" )
259- (backward-char 1 )
269+ (ignore-errors ( backward-char 1 ) )
260270 (unless (looking-at " )" )
261- (forward-char 1 )))
271+ (ignore-errors ( forward-char 1 ) )))
262272 ; ; Climb enclosing lists until we find the `test-deftest`
263273 (while (and (not (looking-at " (etest-deftest" ))
264- (ignore-errors (prog1 t (backward-up-list nil t )))))
274+ (ignore-errors (prog1 t (backward-up-list nil t t )))))
265275 (point ))
266276
267277
Original file line number Diff line number Diff line change @@ -273,3 +273,18 @@ bar"
273273 " Default mode is fundamental.
274274Also tests local config test is cleaned up properly."
275275 (should (eq major-mode 'fundamental-mode )))
276+
277+
278+ (etest-deftest etest-truncation-test ()
279+ " `backward-up-list' isn't confused by syntax in strings."
280+ :case "
281+ (etest-deftest test ()
282+ :result \"\" )
283+ \" )\"
284+ "
285+ (etest-update)
286+ :result " ¶
287+ (etest-deftest test ()
288+ :result \"\" )
289+ \" )\"
290+ " )
You can’t perform that action at this time.
0 commit comments