From 0f5a8d63f596a9b1f24fb67d280498394d77f403 Mon Sep 17 00:00:00 2001 From: Jens Krinke Date: Tue, 23 Dec 2025 11:37:30 +0000 Subject: [PATCH] Handle escaped backslashes correctly when wrapping long strings. Fixes #1253. --- .../com/google/googlejavaformat/java/StringWrapper.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java b/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java index 22110ad8a..1b2d51a4a 100644 --- a/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java +++ b/core/src/main/java/com/google/googlejavaformat/java/StringWrapper.java @@ -275,7 +275,7 @@ private static ImmutableList stringComponents( // continue below } else if (hasEscapedWhitespaceAt(text, idx) != -1) { // continue below - } else if (hasEscapedNewlineAt(text, idx) != -1) { + } else if (hasEscapedNewlineAt(text, idx) != -1 || hasEscapedBackslashAt(text, idx) != -1) { int length; while ((length = hasEscapedNewlineAt(text, idx)) != -1) { idx += length; @@ -302,6 +302,13 @@ private static ImmutableList stringComponents( return result.build(); } + static int hasEscapedBackslashAt(String input, int idx) { + if (input.startsWith("\\\\", idx)) { + return 2; + } + return -1; + } + static int hasEscapedWhitespaceAt(String input, int idx) { if (input.startsWith("\\t", idx)) { return 2;