mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-30 18:22:49 -04:00 
			
		
		
		
	caddyconfig: Don't start comments in middle of tokens (#3267)
* caddyconfig: Only parse # as start of comment if preceded by space * caddyconfig: Simplify # logic using len(val), add a test
This commit is contained in:
		
							parent
							
								
									26e559662d
								
							
						
					
					
						commit
						96d6d277a4
					
				| @ -131,9 +131,6 @@ func Format(input []byte) []byte { | ||||
| 		////////////////////////////////////////////////////////// | ||||
| 
 | ||||
| 		if ch == '#' { | ||||
| 			if !spacePrior && !beginningOfLine { | ||||
| 				write(' ') | ||||
| 			} | ||||
| 			comment = true | ||||
| 		} | ||||
| 
 | ||||
|  | ||||
| @ -305,6 +305,11 @@ bar "{\"key\":34}"`, | ||||
| 
 | ||||
| baz`, | ||||
| 		}, | ||||
| 		{ | ||||
| 			description: "hash within string is not a comment", | ||||
| 			input:       `redir / /some/#/path`, | ||||
| 			expect:      `redir / /some/#/path`, | ||||
| 		}, | ||||
| 	} { | ||||
| 		// the formatter should output a trailing newline, | ||||
| 		// even if the tests aren't written to expect that | ||||
|  | ||||
| @ -141,7 +141,7 @@ func (l *lexer) next() bool { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		if ch == '#' { | ||||
| 		if ch == '#' && len(val) == 0 { | ||||
| 			comment = true | ||||
| 		} | ||||
| 		if comment { | ||||
|  | ||||
| @ -77,6 +77,26 @@ func TestLexer(t *testing.T) { | ||||
| 				{Line: 6, Text: "}"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		{ | ||||
| 			input: `host:123 { | ||||
| 						# hash inside string is not a comment | ||||
| 						redir / /some/#/path | ||||
| 					}`, | ||||
| 			expected: []Token{ | ||||
| 				{Line: 1, Text: "host:123"}, | ||||
| 				{Line: 1, Text: "{"}, | ||||
| 				{Line: 3, Text: "redir"}, | ||||
| 				{Line: 3, Text: "/"}, | ||||
| 				{Line: 3, Text: "/some/#/path"}, | ||||
| 				{Line: 4, Text: "}"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		{ | ||||
| 			input: "# comment at beginning of file\n# comment at beginning of line\nhost:123", | ||||
| 			expected: []Token{ | ||||
| 				{Line: 3, Text: "host:123"}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		{ | ||||
| 			input: `a "quoted value" b | ||||
| 					foobar`, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user