• Andrey Skvortsov's avatar
    Fix truncation of long filenames in attachments. · f476d0ae
    Andrey Skvortsov authored
    Currently mutt truncates long filenames in attachments and doesn't
    take into account UTF-8 character size. If filename is truncated in
    the middle of multi-byte UTF-8 character (last character is bad),
    then some mail clients assume whole attachment name bad and don't
    display its name (use 'Noname' instead).
    
    Filenames can be up to 255 *characters* long depending on used
    filesystem. ReiserFS, NFTS, FAT, APFS and some other supports up to
    255 characters.
    In the worst case 255 characters in UTF-8 will take 255*4 = 1020
    bytes. Every non-ascii byte in the filename will be encoded using 3
    bytes (for example, %8D).
    So 'Content-Disposition' will take in the worst case up to: 1020*3 =
    3060 bytes. Therefore even LONG_STRING (1024) isn't enough.
    f476d0ae
Name
Last commit
Last update
contrib Loading commit data...
doc Loading commit data...
imap Loading commit data...
intl Loading commit data...
m4 Loading commit data...
po Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.hgsigs Loading commit data...
.hgtags Loading commit data...
ABOUT-NLS Loading commit data...
BEWARE Loading commit data...
COPYRIGHT Loading commit data...
ChangeLog Loading commit data...
GPL Loading commit data...
INSTALL Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
OPS Loading commit data...
OPS.CRYPT Loading commit data...
OPS.MIX Loading commit data...
OPS.PGP Loading commit data...
OPS.SIDEBAR Loading commit data...
OPS.SMIME Loading commit data...
PATCHES Loading commit data...
README Loading commit data...
README.SECURITY Loading commit data...
README.SSL Loading commit data...
TODO Loading commit data...
UPDATING Loading commit data...
VERSION Loading commit data...
_mutt_regex.h Loading commit data...
account.c Loading commit data...
account.h Loading commit data...
addrbook.c Loading commit data...
alias.c Loading commit data...
ascii.c Loading commit data...
ascii.h Loading commit data...
attach.c Loading commit data...
attach.h Loading commit data...
base64.c Loading commit data...
bcache.c Loading commit data...
bcache.h Loading commit data...
browser.c Loading commit data...
browser.h Loading commit data...
buffer.c Loading commit data...
buffer.h Loading commit data...
buffy.c Loading commit data...
buffy.h Loading commit data...
build-release Loading commit data...
charset.c Loading commit data...
charset.h Loading commit data...
check_sec.sh Loading commit data...
color.c Loading commit data...
commands.c Loading commit data...
complete.c Loading commit data...
compose.c Loading commit data...
compress.c Loading commit data...
compress.h Loading commit data...
configure.ac Loading commit data...
copy.c Loading commit data...
copy.h Loading commit data...
crypt-gpgme.c Loading commit data...
crypt-gpgme.h Loading commit data...
crypt-mod-pgp-classic.c Loading commit data...
crypt-mod-pgp-gpgme.c Loading commit data...
crypt-mod-smime-classic.c Loading commit data...
crypt-mod-smime-gpgme.c Loading commit data...
crypt-mod.c Loading commit data...
crypt-mod.h Loading commit data...
crypt.c Loading commit data...
cryptglue.c Loading commit data...
crypthash.h Loading commit data...
curs_lib.c Loading commit data...
curs_main.c Loading commit data...
date.c Loading commit data...
dotlock.c Loading commit data...
dotlock.h Loading commit data...
edit.c Loading commit data...
editmsg.c Loading commit data...
enter.c Loading commit data...
extlib.c Loading commit data...
filter.c Loading commit data...
flags.c Loading commit data...
flymake.am Loading commit data...
from.c Loading commit data...
functions.h Loading commit data...
gen_defs Loading commit data...
getdomain.c Loading commit data...
globals.h Loading commit data...
gnupgparse.c Loading commit data...
group.c Loading commit data...
group.h Loading commit data...
handler.c Loading commit data...
hash.c Loading commit data...
hash.h Loading commit data...
hcache.c Loading commit data...
hcache.h Loading commit data...
hcachever.sh.in Loading commit data...
hdrline.c Loading commit data...
headers.c Loading commit data...
help.c Loading commit data...
history.c Loading commit data...
history.h Loading commit data...
hook.c Loading commit data...
init.c Loading commit data...
init.h Loading commit data...
keymap.c Loading commit data...
keymap.h Loading commit data...
lib.c Loading commit data...
lib.h Loading commit data...
mailbox.h Loading commit data...
main.c Loading commit data...
mapping.h Loading commit data...
mbox.c Loading commit data...
mbyte.c Loading commit data...
mbyte.h Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
menu.c Loading commit data...
mh.c Loading commit data...
mime.h Loading commit data...
mime.types Loading commit data...
mkchangelog.sh Loading commit data...
mkdtemp.c Loading commit data...
mkreldate.sh Loading commit data...
monitor.c Loading commit data...
monitor.h Loading commit data...
mutt.h Loading commit data...
mutt_crypt.h Loading commit data...
mutt_curses.h Loading commit data...
mutt_idna.c Loading commit data...
mutt_idna.h Loading commit data...
mutt_menu.h Loading commit data...
mutt_regex.h Loading commit data...
mutt_sasl.c Loading commit data...
mutt_sasl.h Loading commit data...
mutt_socket.c Loading commit data...
mutt_socket.h Loading commit data...
mutt_ssl.c Loading commit data...
mutt_ssl.h Loading commit data...
mutt_ssl_gnutls.c Loading commit data...
mutt_tunnel.c Loading commit data...
mutt_tunnel.h Loading commit data...
muttbug Loading commit data...
muttlib.c Loading commit data...
mx.c Loading commit data...
mx.h Loading commit data...
pager.c Loading commit data...
pager.h Loading commit data...
parse.c Loading commit data...
patchlist.sh Loading commit data...
pattern.c Loading commit data...
pgp.c Loading commit data...
pgp.h Loading commit data...
pgpewrap.c Loading commit data...
pgpinvoke.c Loading commit data...
pgpkey.c Loading commit data...
pgplib.c Loading commit data...
pgplib.h Loading commit data...
pgpmicalg.c Loading commit data...
pgppacket.c Loading commit data...
pgppacket.h Loading commit data...
pgppubring.c Loading commit data...
pop.c Loading commit data...
pop.h Loading commit data...
pop_auth.c Loading commit data...
pop_lib.c Loading commit data...
postpone.c Loading commit data...
prepare Loading commit data...
protos.h Loading commit data...
query.c Loading commit data...
recvattach.c Loading commit data...
recvcmd.c Loading commit data...
regex.c Loading commit data...
remailer.c Loading commit data...
remailer.h Loading commit data...
resize.c Loading commit data...
rfc1524.c Loading commit data...
rfc1524.h Loading commit data...
rfc2047.c Loading commit data...
rfc2047.h Loading commit data...
rfc2231.c Loading commit data...
rfc2231.h Loading commit data...
rfc3676.c Loading commit data...
rfc3676.h Loading commit data...
rfc822.c Loading commit data...
rfc822.h Loading commit data...
safe_asprintf.c Loading commit data...
score.c Loading commit data...
send.c Loading commit data...
sendlib.c Loading commit data...
setenv.c Loading commit data...
sha1.c Loading commit data...
sha1.h Loading commit data...
sidebar.c Loading commit data...
sidebar.h Loading commit data...
signal.c Loading commit data...
smime.c Loading commit data...
smime.h Loading commit data...
smime_keys.pl Loading commit data...
smtp.c Loading commit data...
snprintf.c Loading commit data...
sort.c Loading commit data...
sort.h Loading commit data...
stamp-h.in Loading commit data...
status.c Loading commit data...
strcasecmp.c Loading commit data...
strcasestr.c Loading commit data...
strdup.c Loading commit data...
strsep.c Loading commit data...
strtok_r.c Loading commit data...
system.c Loading commit data...
thread.c Loading commit data...
txt2c.c Loading commit data...
txt2c.sh Loading commit data...
url.c Loading commit data...
url.h Loading commit data...
utf8.c Loading commit data...
version.sh Loading commit data...
wcscasecmp.c Loading commit data...
wcwidth.c Loading commit data...