mime: make FormatMediaType take full type for consistency

Fixes #2405

R=rsc
CC=golang-dev
https://golang.org/cl/5539048
diff --git a/src/pkg/mime/type.go b/src/pkg/mime/type.go
index e3d968f..00cff26 100644
--- a/src/pkg/mime/type.go
+++ b/src/pkg/mime/type.go
@@ -62,21 +62,14 @@
 }
 
 func setExtensionType(extension, mimeType string) error {
-	full, param, err := ParseMediaType(mimeType)
+	_, param, err := ParseMediaType(mimeType)
 	if err != nil {
 		return err
 	}
-	if split := strings.Index(full, "/"); split < 0 {
-		return fmt.Errorf(`mime: malformed MIME type "%s"`, mimeType)
-	} else {
-		main := full[:split]
-		sub := full[split+1:]
-		if main == "text" && param["charset"] == "" {
-			param["charset"] = "utf-8"
-		}
-		mimeType = FormatMediaType(main, sub, param)
+	if strings.HasPrefix(mimeType, "text/") && param["charset"] == "" {
+		param["charset"] = "utf-8"
+		mimeType = FormatMediaType(mimeType, param)
 	}
-
 	mimeLock.Lock()
 	mimeTypes[extension] = mimeType
 	mimeLock.Unlock()