Cleanup previous PR

This commit is contained in:
Kovid Goyal 2026-05-18 13:55:48 +05:30
parent 6e4e1c8edf
commit 6da5bae945
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 34 additions and 34 deletions

View file

@ -4,7 +4,6 @@ import (
"bytes"
"container/list"
"context"
"encoding/base64"
"errors"
"fmt"
"io"
@ -16,6 +15,8 @@ import (
"strconv"
"strings"
"github.com/emmansun/base64"
"github.com/kovidgoyal/go-parallel"
"github.com/kovidgoyal/kitty/tools/utils"
"github.com/kovidgoyal/kitty/tools/utils/streaming_base64"
@ -376,40 +377,10 @@ type parsed_uri struct {
// ext_for_mime returns a file extension (with leading dot) for a MIME type.
func ext_for_mime(mime string) string {
switch mime {
case "image/jpeg":
return ".jpg"
case "image/png":
return ".png"
case "image/gif":
return ".gif"
case "image/webp":
return ".webp"
case "image/svg+xml":
return ".svg"
case "text/plain":
return ".txt"
case "text/html":
return ".html"
case "text/css":
return ".css"
case "application/pdf":
return ".pdf"
case "application/json":
return ".json"
case "application/zip":
return ".zip"
default:
if _, subtype, found := strings.Cut(mime, "/"); found && subtype != "" {
subtype, _, _ = strings.Cut(subtype, "+")
subtype, _, _ = strings.Cut(subtype, ";")
subtype = strings.TrimSpace(subtype)
if subtype != "" {
return "." + subtype
}
}
return ""
for _, x := range utils.GuessFileExtensions(mime) {
return x
}
return ""
}
// parse_data_uri decodes a data: URI and returns the MIME type and raw data.

View file

@ -117,3 +117,32 @@ func GuessMimeTypeWithFileSystemAccess(filename string) string {
}
return mt
}
func GuessFileExtensions(mime_type string) (ans []string) {
mime_type, _, err := mime.ParseMediaType(mime_type)
if err != nil {
return
}
seen := NewSet[string](8)
add := func(x string) {
if !seen.Has(x) {
seen.Add(x)
ans = append(ans, x)
}
}
for ext, q := range UserMimeMap() {
if ext != "" && q == mime_type {
add(ext)
}
}
// Go stdlib returns [".asc", ".text", ".txt"] for this
if mime_type == "text/plain" {
add(".txt")
}
if std, err := mime.ExtensionsByType(mime_type); err == nil {
for _, x := range std {
add(x)
}
}
return
}