...

Source file src/mime/grammar.go

Documentation: mime

		 1  // Copyright 2010 The Go Authors. All rights reserved.
		 2  // Use of this source code is governed by a BSD-style
		 3  // license that can be found in the LICENSE file.
		 4  
		 5  package mime
		 6  
		 7  import (
		 8  	"strings"
		 9  )
		10  
		11  // isTSpecial reports whether rune is in 'tspecials' as defined by RFC
		12  // 1521 and RFC 2045.
		13  func isTSpecial(r rune) bool {
		14  	return strings.ContainsRune(`()<>@,;:\"/[]?=`, r)
		15  }
		16  
		17  // isTokenChar reports whether rune is in 'token' as defined by RFC
		18  // 1521 and RFC 2045.
		19  func isTokenChar(r rune) bool {
		20  	// token := 1*<any (US-ASCII) CHAR except SPACE, CTLs,
		21  	//						 or tspecials>
		22  	return r > 0x20 && r < 0x7f && !isTSpecial(r)
		23  }
		24  
		25  // isToken reports whether s is a 'token' as defined by RFC 1521
		26  // and RFC 2045.
		27  func isToken(s string) bool {
		28  	if s == "" {
		29  		return false
		30  	}
		31  	return strings.IndexFunc(s, isNotTokenChar) < 0
		32  }
		33  

View as plain text