From 2f91b44587fe487b6a05c1c7e56833247e4b8c79 Mon Sep 17 00:00:00 2001 From: Matt Holt Date: Tue, 15 Oct 2019 16:05:53 -0600 Subject: v2: Make tests work on Windows (#2782) * file_server: Make tests work on Windows * caddyfile: Fix escaping when character is not escapable We only escape certain characters depending on inside or outside of quotes (mainly newlines and quotes). We don't want everyone to have to escape Windows file paths like C:\\Windows\\... but we can't drop the \ either if it's just C:\Windows\... --- caddyconfig/caddyfile/lexer.go | 5 +++++ caddyconfig/caddyfile/lexer_test.go | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'caddyconfig') diff --git a/caddyconfig/caddyfile/lexer.go b/caddyconfig/caddyfile/lexer.go index 0ddad0e..687ff90 100755 --- a/caddyconfig/caddyfile/lexer.go +++ b/caddyconfig/caddyfile/lexer.go @@ -153,6 +153,11 @@ func (l *lexer) next() bool { } } + if escaped { + val = append(val, '\\') + escaped = false + } + val = append(val, ch) } } diff --git a/caddyconfig/caddyfile/lexer_test.go b/caddyconfig/caddyfile/lexer_test.go index ce2e147..9105eb5 100755 --- a/caddyconfig/caddyfile/lexer_test.go +++ b/caddyconfig/caddyfile/lexer_test.go @@ -151,6 +151,12 @@ func TestLexer(t *testing.T) { {Line: 1, Text: `don't\\escape`}, }, }, + { + input: `un\escapable`, + expected: []Token{ + {Line: 1, Text: `un\escapable`}, + }, + }, { input: `A "quoted value with line break inside" { -- cgit v1.2.3