diff options
author | Robin Opletal <me@robinopletal.com> | 2021-01-12 21:58:54 +0100 |
---|---|---|
committer | Reto Brunner <reto@labrat.space> | 2021-01-14 07:17:23 +0100 |
commit | 3720c8623687d7a3fb978492ecd1ab2180823cf4 (patch) | |
tree | 184f78878713d9264b055467aa8701cb448ba36e /commands/msgview/save.go | |
parent | bbe8ba5b3160d1fa28f02371ac9a9660079d3ca9 (diff) | |
download | aerc-3720c8623687d7a3fb978492ecd1ab2180823cf4.tar.gz |
save: if part name is a path, only use the filename
Diffstat (limited to 'commands/msgview/save.go')
-rw-r--r-- | commands/msgview/save.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/commands/msgview/save.go b/commands/msgview/save.go index ef6bba8a..5d01e4d8 100644 --- a/commands/msgview/save.go +++ b/commands/msgview/save.go @@ -182,9 +182,17 @@ func generateFilename(part *models.BodyStructure) string { filename = fn } else if fn, ok := part.Params["name"]; ok { filename = fn - } else { + } + // Some MUAs send attachments with names like /some/stupid/idea/happy.jpeg + // Assuming non hostile intent it does make sense to use just the last + // portion of the pathname as the filename for saving it. + filename = filename[strings.LastIndex(filename, "/")+1:] + switch filename { + case "", ".", "..": timestamp := time.Now().Format("2006-01-02-150405") filename = fmt.Sprintf("aerc_%v", timestamp) + default: + // already have a valid name } return filename } |