@@ -98,25 +98,32 @@ func FormatMediaType(t string, param map[string]string) string {
9898func checkMediaTypeDisposition (s string ) error {
9999 typ , rest := consumeToken (s )
100100 if typ == "" {
101- return errors . New ( "mime: no media type" )
101+ return errNoMediaType
102102 }
103103 if rest == "" {
104104 return nil
105105 }
106106 var ok bool
107107 if rest , ok = strings .CutPrefix (rest , "/" ); ! ok {
108- return errors . New ( "mime: expected slash after first token" )
108+ return errNoSlashAfterFirstToken
109109 }
110110 subtype , rest := consumeToken (rest )
111111 if subtype == "" {
112- return errors . New ( "mime: expected token after slash" )
112+ return errNoTokenAfterSlash
113113 }
114114 if rest != "" {
115- return errors . New ( "mime: unexpected content after media subtype" )
115+ return errUnexpectedContentAfterMediaSubtype
116116 }
117117 return nil
118118}
119119
120+ var (
121+ errNoMediaType = errors .New ("mime: no media type" )
122+ errNoSlashAfterFirstToken = errors .New ("mime: expected slash after first token" )
123+ errNoTokenAfterSlash = errors .New ("mime: expected token after slash" )
124+ errUnexpectedContentAfterMediaSubtype = errors .New ("mime: unexpected content after media subtype" )
125+ )
126+
120127// ErrInvalidMediaParameter is returned by [ParseMediaType] if
121128// the media type value was found but there was an error parsing
122129// the optional parameters
@@ -177,7 +184,7 @@ func ParseMediaType(v string) (mediatype string, params map[string]string, err e
177184 }
178185 if v , exists := pmap [key ]; exists && v != value {
179186 // Duplicate parameter names are incorrect, but we allow them if they are equal.
180- return "" , nil , errors . New ( "mime: duplicate parameter name" )
187+ return "" , nil , errDuplicateParamName
181188 }
182189 pmap [key ] = value
183190 v = rest
@@ -227,6 +234,8 @@ func ParseMediaType(v string) (mediatype string, params map[string]string, err e
227234 return
228235}
229236
237+ var errDuplicateParamName = errors .New ("mime: duplicate parameter name" )
238+
230239func decode2231Enc (v string ) (string , bool ) {
231240 charset , v , ok := strings .Cut (v , "'" )
232241 if ! ok {
0 commit comments