(defsubst eshell-looking-at-backslash-return (pos)
"Test whether a backslash-return sequence occurs at POS."
+ (declare (obsolete nil "30.1"))
(and (eq (char-after pos) ?\\)
(or (= (1+ pos) (point-max))
(and (eq (char-after (1+ pos)) ?\n)
backslash is in a quoted string, the backslash and the character
after are both returned."
(when (eq (char-after) ?\\)
- (when (eshell-looking-at-backslash-return (point))
- (throw 'eshell-incomplete "\\"))
+ (when (= (1+ (point)) (point-max))
+ (throw 'eshell-incomplete "\\"))
(forward-char 2) ; Move one char past the backslash.
(let ((special-chars (if eshell-current-quoted
eshell-special-chars-inside-quoting
"he\\\\llo\n")))
(ert-deftest esh-arg-test/escape/newline ()
- "Test that an escaped newline is equivalent to the empty string.
-When newlines are *nonspecial*, an escaped newline should be
-treated as just a newline."
+ "Test that an escaped newline is equivalent to the empty string."
(with-temp-eshell
(eshell-match-command-output "echo hi\\\nthere"
"hithere\n")))
+(ert-deftest esh-arg-test/escape/trailing-newline ()
+ "Test that an escaped newline is equivalent to the empty string."
+ (with-temp-eshell
+ (eshell-match-command-output "echo hi\\\n"
+ "hi\n")))
+
(ert-deftest esh-arg-test/escape/newline-conditional ()
"Test invocation of an if/else statement using line continuations."
(let ((eshell-test-value t))
"\\\"hi\\\\\n")))
(ert-deftest esh-arg-test/escape-quoted/newline ()
- "Test that an escaped newline is equivalent to the empty string.
-When newlines are *nonspecial*, an escaped newline should be
-treated literally, as a backslash and a newline."
+ "Test that an escaped newline is equivalent to the empty string."
(with-temp-eshell
(eshell-match-command-output "echo \"hi\\\nthere\""
"hithere\n")))