Merge pull request #1440 from Enselic/fix-1438-newline-can-be-added-even-if-style-plain

Don't add artificial newline to last line if --style=plain
This commit is contained in:
David Peter 2020-12-21 09:24:26 +01:00 committed by GitHub
commit cc7b89faf8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 31 additions and 19 deletions

View File

@ -5,7 +5,8 @@
## Bugfixes ## Bugfixes
- only print themes hint in interactive mode (`bat --list-themes`), see #1439 (@rsteube) - If the last line doesn't end with a newline character, don't add it if `--style=plain`, see #1438 (@Enselic)
- Only print themes hint in interactive mode (`bat --list-themes`), see #1439 (@rsteube)
- Make ./tests/syntax-tests/regression_test.sh work on recent versions of macOS, see #1443 (@Enselic) - Make ./tests/syntax-tests/regression_test.sh work on recent versions of macOS, see #1443 (@Enselic)
## Other ## Other

View File

@ -72,7 +72,7 @@ pub fn replace_nonprintable(input: &[u8], tab_width: usize) -> String {
} }
} }
// line feed // line feed
'\x0A' => output.push('␊'), '\x0A' => output.push_str("\x0A"),
// carriage return // carriage return
'\x0D' => output.push('␍'), '\x0D' => output.push('␍'),
// null // null

View File

@ -91,9 +91,6 @@ impl<'a> Printer for SimplePrinter<'a> {
if self.config.show_nonprintable { if self.config.show_nonprintable {
let line = replace_nonprintable(line_buffer, self.config.tab_width); let line = replace_nonprintable(line_buffer, self.config.tab_width);
write!(handle, "{}", line)?; write!(handle, "{}", line)?;
if line_buffer.last() == Some(&b'\n') {
writeln!(handle)?;
}
} else { } else {
handle.write_all(line_buffer)? handle.write_all(line_buffer)?
}; };
@ -463,7 +460,7 @@ impl<'a> Printer for InteractivePrinter<'a> {
} }
} }
if line.bytes().next_back() != Some(b'\n') { if !self.config.style_components.plain() && line.bytes().next_back() != Some(b'\n') {
writeln!(handle)?; writeln!(handle)?;
} }
} else { } else {

View File

@ -813,3 +813,17 @@ fn show_all_mode() {
.stdout("hello·world␊\n├──┤␍␀␇␈␛") .stdout("hello·world␊\n├──┤␍␀␇␈␛")
.stderr(""); .stderr("");
} }
#[test]
fn plain_mode_does_not_add_nonexisting_newline() {
bat()
.arg("--paging=never")
.arg("--color=never")
.arg("--decorations=always")
.arg("--style=plain")
.arg("single-line.txt")
.assert()
.success()
.stdout("Single Line");
}

View File

@ -175,4 +175,4 @@
\u{ad}␊ \u{ad}␊
\u{ae}␊ \u{ae}␊
␊ ␊
Here's·a·line·with·multiple·characters. Here's·a·line·with·multiple·characters.␊

View File

@ -72,4 +72,4 @@ package TestSyntax {
var sndChannel:SoundChannel = mySound.play(); var sndChannel:SoundChannel = mySound.play();
} }
} }
} }

View File

@ -56,4 +56,4 @@ set LDLIBS= ^
@set "LINK_FILES=%LINK_FILES% %%~f" @set "LINK_FILES=%LINK_FILES% %%~f"
) )
lld-link.exe %LINK_FILES% -out:"%OUTPUT%" %LDFLAGS% %LDLIBS% lld-link.exe %LINK_FILES% -out:"%OUTPUT%" %LDFLAGS% %LDLIBS%

View File

@ -55,4 +55,4 @@
(println (factorial 5)) (println (factorial 5))
(log) (log)
(log "Message")) (log "Message"))

View File

@ -16,4 +16,4 @@ EXPOSE 80/tcp
VOLUME [/var/lib/mysql/data] VOLUME [/var/lib/mysql/data]
ENTRYPOINT ["/usr/bin/entrypoint.sh"] ENTRYPOINT ["/usr/bin/entrypoint.sh"]

View File

@ -13,4 +13,4 @@
*.patch -text *.patch -text
.gitattributes linguist-language=gitattributes .gitattributes linguist-language=gitattributes
.gitkeep export-ignore .gitkeep export-ignore

View File

@ -104,4 +104,4 @@
[user] [user]
email = f.nord@example.com email = f.nord@example.com
name = Frank Nord name = Frank Nord
signingkey = AAAAAAAAAAAAAAAA signingkey = AAAAAAAAAAAAAAAA

View File

@ -5,4 +5,4 @@
192.160.0.200 try.sample.test try #another comment 192.160.0.200 try.sample.test try #another comment
216.58.223.238 google.com 216.58.223.238 google.com
::1 localhost.try ip6-localhost ::1 localhost.try ip6-localhost

View File

@ -382,4 +382,4 @@ install: all
@ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME) @ln -sf $(REDIS_SERVER_NAME) $(INSTALL_BIN)/$(REDIS_SENTINEL_NAME)
uninstall: uninstall:
rm -f $(INSTALL_BIN)/{$(REDIS_SERVER_NAME),$(REDIS_BENCHMARK_NAME),$(REDIS_CLI_NAME),$(REDIS_CHECK_RDB_NAME),$(REDIS_CHECK_AOF_NAME),$(REDIS_SENTINEL_NAME)} rm -f $(INSTALL_BIN)/{$(REDIS_SERVER_NAME),$(REDIS_BENCHMARK_NAME),$(REDIS_CLI_NAME),$(REDIS_CHECK_RDB_NAME),$(REDIS_CHECK_AOF_NAME),$(REDIS_SENTINEL_NAME)}

View File

@ -108,4 +108,4 @@ $doe->setName('John Doe');
$ending = 2 > 3 ? "yep" : "nah"; $ending = 2 > 3 ? "yep" : "nah";
?> ?>

View File

@ -5,4 +5,4 @@ pywheels>=12.4 #a whitespace followed by comments
Nuitka<0.6.8.4 Nuitka<0.6.8.4
wxPython>=1.0, <=2.1 wxPython>=1.0, <=2.1
#this is another comment #this is another comment

View File

@ -31,4 +31,4 @@ emails:
- bob@example.com - bob@example.com
- bill@example.com - bill@example.com
supervisors: supervisors:
- george@example.com - george@example.com

View File

@ -317,4 +317,4 @@ blank lines before and after.)
.. ..
So this block is not "lost", So this block is not "lost",
despite its indentation. despite its indentation.