$Header: /home/users/hurtta/cvsroot/mail/elmme+/README.ME+,v 2.1112 2024/11/17 20:01:23 hurtta Exp $
Version Elm2.4ME+ PL0 (25) is based on version Elm2.4 PL24 ME8b+.
Version Elm2.4 PL24 ME8b+ is based on version Elm2.4 PL24 ME8b.
Version Elm2.4 PL24 ME8b is done by Michael Elkins <elkins.aero.org>.
For details, check file ANNOUNCE.ME
[ Michael Elkins posted the equivalent of MIME code in Elm2.4 PL24 ME8b to Elm Development Coordinator. Later changes are not posted to Elm Development Coordinator. ]
Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.
Version ElmME+ 2.5.x is based on version Elm2.4ME+ PLx (25)
and incorporates code from of Elm 2.5.
SUMMARY: This release adds handling of text/html tags <ul> <li> and <ol> <li>, and handling of html attribute <img alt> to tagfilter module.
- Added html <ul> <li> handling to tagfilter module
(generally requires that builtin++ pager is used).
- Added html <ol> <li> handling to tagfilter module
(generally requires that builtin++ pager is used).
<ol> tag supports following attributes:
start={number}
reversed is only supported together
with "start" attribute
type={V} where {V} is one of following
"1" (decimal numbers),
"a" (lowercase letters a-z),
"A" (uppercase letters A-Z),
"i" (lowercase roman numerals)
"I" (uppercase roman numerals)
Roman numerals support only values on range 1-3999.
Values starting from value 4000 upwards requires
bar over letters and this is not supported. Values
0 and negative numbers are always printed as decimal
numbers.
If "reversed" is used alone then value of <li>
is printed as "?." and <ol> tag is reported
as unsupported. Calculating of start value
for "reversed" requires that document object model
or equivalent is build to memory instead than
just filtering tags.
<li> tag support following attribute
value={number}
- Added html <img alt={text}> handling to tagfilter module.
If "alt" attribute is missing from <img>, <img> is reported
as unsupported.
- Added collapsing of space between html <ul> and <li> and between html <ol> and <li> when builtin++ pager is used. That prevents indentation used on html output to change result.
- Do not word wrap on start of span_words() if position is already end of string. - Moved end of string checking earlier on span_line()
SUMMARY: This release adds last read timestamps file for
used for folder browser when access time of
folders are not updated when read. "Eu" -command
(show mail quota usage) now rereads IMAP quota
before displaying. New elmrc
options are "use-last-read-file" and
"last-read-fallback-locking". Also some bug
fixes and other changes are included.
- Added file .elm-last-read-{uid} on directory (when
directory is writable) or file ~/.elm/last.read,
when mailbox is on mailhome directory, to
keep track last read time of folder.
* This helps situation where access time of
mail folders or mailboxes are not updated
when they are read and therefore N (new mail)
indicator is shown on folder browser although mail folder
or mailbox is read after it was updated.
- Added "use-last-read-file" elmrc option.
Values are:
no Do not read or update
.elm-last-read-{uid} file
yes Create, use and update
.elm-last-read-{uid} file
auto Use and update existing
.elm-last-read-{uid} file.
Create file if access
time is not updated.
existing Use and update existing
.elm-last-read-{uid} file
This elmrc option is also used for
~/.elm/last.read update.
- Added "last-read-fallback-locking" elmrc option.
This lock option knows following keywords
none None of values are selected
(use value none to disable locking)
flock Use flock() locking. flock()
does not lock files over NFS.
fcntl Use fcntl() locking.
prefer Prefer this option instead of
folder-locking or mailbox-locking
- ~/.elm/last.read file uses conf-merge-locking.
- .elm-last-read-{uid} file uses either folder-locking,
mailbox-locking, or last-read-fallback-locking.
- Exported
char * MAILBOX_LOCKING[]
from lib/read_rc.c to hdrs/rc_imp.h and added "prefer"
value to it.
- Change for fbrowser_selection_is_mbox()
- Small change of home[] initialization on user_init()
- Moved struct file_changes from lib/alias/aliases.c
to lib/addr/file_changes.c and from hdrs/aliaslib.h
to hdrs/addrlib.h
- Possible fix for malloc_gets()
- Added cat_dir_entry() to lib/mox/localmbx.c and
lib/mbox/def_mbox.c
- Changed write_conf() on lib/misc/conf_write.c
- Changed insert_commentfile() on lib/misc/commentfile.c
- Changed most of ino_t and dev_t output to use (unsigned long)
and %lu format.
- Added copy_num_messages_folder() to lib/mbox/mbox.c
and hdrs/mboxlib.h
- Added mbx_give_message_count_folder() to hdrs/mbx_imp.h
- Added mbx_give_message_count_default() to lib/mbox/mbox_generic.c
and lib/mbox/def_mbox.h
- Added number of messages to
Reading in XXX message: xxx
counter if available and there is enough space.
- Changed width calculations on
Reading in XXX message: xxx
counter text.
- Possible fix on quota_display_add_qlist() on src/quotadisp.c
- Possible fix on ref_mqr_imap() on lib/mbox/imap_quota.c
- "Eu" -command ("E)xtended command" - "show mail quota u)sage")
now reloads IMAP QUOTA information.
* Changed prototype of mbx_give_imap_quotar_list()
* Added quotaroot_list_set_refresh() to lib/mbox/quota.c
and hdrs/mboxlib.h
- Changed cs_streamclip_from_unknown() on lib/cs_unknown.c - Possible fix for lookup_static_host_sentry() on lib/static-hosts.c - Possible fix for compare_threads_1_revsentd() on src/thread.c
New file:
lib/mbox/last_read.c
lib/addr/file_changes.c
doc/elmlastread-info
New elmrc options:
use-last-read-file
last-read-fallback-locking
SUMMARY: This release includes tagfilter module for
filtering text/enriched and text/html
tags. This release adds "editor-tfent-propline"
and "page-tagfilter" elmrc options and
new tool "elmtagfilterents". This release
adds global "elm.tagfilter.entities" and
user "~/.elm/tagfilter.entities" configuration
files. Also some bug fixes and other changes are
included.
- Changed prototype of string_matches_ascii() -
Added op parameter:
SMA_op_normal,
SMA_op_match_prefix,
SMA_op_find_ascii,
SMA_op_return_order
SMA_return_len can not used with SMA_op_return_order
- Added tagfilter module for <tag> filtering.
- Tagfilter supports following text/enriched tags
when builtin++ pager is used:
<bold>
<underline>
<italic>
<center> (detected, does nor work correctly (*))
<nofill>
Other tags are just filtered.
- Rewrapping and joining of multiple lines to one line
for displaying not supported when replying or forwarding
mail or when viewing with external pager. This is similar
than how content type text/plain; format=flowed
is handled.
- If builtin pager is not used (or when replying or
forwarding mail) shows message
[ text/enriched is unsupported, filtering tags. ]
(*) Centering does not work when displayed line
cover several tags or several lines on
original message (before newline is
converted to space or multiple
lines are joined to one line for
displaying).
- Added pg_ITALIC flag (termcap codes ZH and ZR).
- Added pg_DIM flag (termcap code mh).
- Added pg_SUBSCRIPT flag (termcap codes ZN and ZV).
- Added pg_SUPERSCRIPT flag (termcap codes ZO and ZW).
- Added pg_STRIKETHROUGH (no termcap code)
- Changed PR_CENTER_THIS handling on span_helper()
- Tagfilter supports following text/html tags
when builtin++ pager is used:
<html>
<head>
<body>
<noscript>
<b>
<br>
<em>
<hr>
<i>
<p>
<pre>
<q>
<s> (!!)
<strong>
<sub> (XX)
<sub> (XX)
<u>
- Tagfilter uses display attributes for following
text/html tags (but reports them unsupported)
when builtin++ pager is used:
<cite>
<del>
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<var>
- Other text/html tags are just used for define
what are recognized tags but otherwise just
filtered.
- Tagfilter recognizes different text/html tags depending
on inside on what tags they occurs.
(!!) Only when "ANSI-SGR strikethrough" is
given on global elm.terminalinfo or
on user ~/.elm/terminal.info.
(XX) Incompletely - no terminals support this
- If builtin pager is not used (or when replying or
forwarding mail) shows message
[ text/html is unsupported, filtering tags. ]
- Added elmrc option "page-tagfilter". If set,
media types given as keywords are displayed with "pager",
otherwise these are considered to need metamail
(or mailcap programs).
Option includes list of keywords:
none None of values are selected
text/enriched text/enriched type does not require
external programs or metamail
text/html text/html type does not require
external programs or metamail
This does not take account possible unsupported
tags or that builtin++ pager is not used as "pager".
- Added global elm.tagfilter.entities and
user .elm/tagfilter.entities. These files
defines text/html named character references
recognized by tagfilter.
See also "Tagfilter entities listing"
- Builtin text/html named character references
recognized by tagfilter are
& unicode 0x0026 & -character
unicode 0x00A0 NO-BREAK SPACE
" unicode 0x0022 " -character
< unicode 0x003C < -character
> unicode 0x003E > -character
- Added elmtagfilterents -command.
- Added "editor-tfent-propline" elmrc option.
This is similar than "editor-elmrc-propline".
If set to "emacs", then when on user's
tagfilter.entities file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-tfent-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Global global elm.terminalinfo and
user ~/.elm/terminal.info can now include
ANSI-SGR which tell elm to use ANSI SGR
attributes for bold, dim, italic, underline,
blinking, reverse, strikethrough, superscript
and subscript. If termcap specifies also
attribute, elm may invoke it twice. Do
not use ANSI-SGR if termcap already specifies it.
This is mainly for strikethrough, which is
not supported by termcap. For more information
see chapter "Additional terminal information".
- Added struct out_entity routines with lib/out_entity.c
- Added state_putentity() to lib/elmlib.h and
lib/state_out.c
- Added string_type_have_unicode() to hdrs/elmlib.h
and lib/string.c
- Added state_add_opcode_pager_range() to hdrs/elmlib.h and
lib/state_out.c
- Added state_pager_add_param_text() to hdrs/elmlib.h and
lib/state_out.c
- Added struct pager_param_value routines with
lib/pager_range.c
- Added stringbuffer_add_entity() and
stringbuffer_add_pager_param() to hdrs/elmlib.h and
lib/stringbuffer.c
- Added new_out_entity(), free_out_entity(),
inc_out_entity_refcount(), out_entity_reference_key(),
out_entity_text_value(), out_entity_unicode_value(),
and dup_out_entity()
to hdrs/elmlib.h and lib/out_entity.c
- Added missing fclose(f) to parse_hash_mark_entries()
- Change on dump_aliases_map()
- Changed exit status handling on elmregister.
- Possible fix for state_putunicode() on lib/state_out.c
- Moved inc_pager_range_refcount() from hdrs/pg_range_imp.h
to hdrs/elmlib.h
- Potential fix for string_sort_cmp()
- Fixed crash when inherited page_range was used
PAGER RANGE PANIC in .../lib/pager_range.c:562:get_pager_range_serialization_from_file
>>>Bad data read from file
- Added new_string_alt_text(), new_string_alt_entity(),
get_string_alt_value(), inc_string_alt_refcount() and
free_string_alt() to hdrs/elmlib.h and lib/string_alt.c
- Added get_lineext_alt_and_walk()to hdrs/elmlib.h and
lib/pager_lineext.c
- Added curses_available_string()
to hdrs/me.h and src/screen/curses.c
- Added get_pager_param_from_stringbuffer() to
hdrs/me.h and lib/stringbuffer.c
- Some fixed for error handling of load_terminal_map()
- Added ANSI_sgr_values[] to hdrs/msiclib.h
and lib/misc/terminal.c
- Added pg_set_or_disable_flags() to hdrs/msiclib.h
and lib/misc/terminal.c
- Changed get_pager_range_change()
- Changed malloc_simple_pager_range()
- Fix for put_pager_range_serialization_to_file()
- Fix for stringbuffer_add_pager_range()
- Fix for state_convert_EOLN()
- Fix for get_decoded_attachment()
- Added curses_check_terminal()
to hdrs/me.h and src/screen/curses.c
New tool:
elmtagfilterents
New files:
melib/tagfilter.c
melib/tagfilter_decode.c
hdrs/tagfilter_imp.h
melib/tagfilter_entity.c
melib/init.c
doc/elmtagfilent-info
utils/elmtagfilterents.c
doc/tagfilter.entities
ConfTool/GenEntities
hdrs/convert_status.h
lib/convert_status.c
doc/elmtagfilterents.1
melib/tagfilter_tag.c
lib/out_entity.c
melib/tagfilter_enriched.c
hdrs/elmme-magic.h
melib/tagfilter_html.c
hdrs/pg_params_imp.h
lib/string_alt.c
New elmrc option:
editor-tfent-propline
page-tagfilter
SUMMARY: This release fixes few crashes.
- Fixed crash on reconnect when same time is open
imap mailbox and local folder.
MBX PANIC in .../lib/mbox/localmbx.c:5738:mbx_prepare_read_non_spool
>>>mode == PREPARE_RECONNECT
Call stack: 7FA4D22B5DC9 7FA4D2C856D7 7FA4D2C64DAD 5555938012D8 5555937FE4C9
continues: 555593813D57 5555937D5BEF 5555937D7262 5555937A2E17 7FA4D1A0BC87
continues: 55559374FB4A
backtrace:
/usr/local/lib64/libelmme-base.so.1.1.61(panic+0x1de)[0x7fa4d22b5dc9]
/usr/local/lib64/libelmme-mbox.so.1.1.61(+0x3a6d7)[0x7fa4d2c856d7]
/usr/local/lib64/libelmme-mbox.so.1.1.61(prepare_read_folder+0x687)[0x7fa4d2c64dad]
elm(+0xd82d8)[0x5555938012d8]
elm(newmbox_1+0x5e7)[0x5555937fe4c9]
elm(resync+0x4d2)[0x555593813d57]
elm(+0xacbef)[0x5555937d5bef]
elm(main_messages_menu+0x17d)[0x5555937d7262]
elm(main+0xf48)[0x5555937a2e17]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fa4d1a0bc87]
elm(_start+0x2a)[0x55559374fb4a]
Press a <enter> to abort or <enter> to exit:
- Fixed crash on reconnect when same time is open
imap mailbox and local mailbox.
MBX PANIC in .../lib/mbox/localmbx.c:5808:mbx_prepare_read_spool
>>>mode == PREPARE_RECONNECT
Call stack: 7FAC4D996DC9 7FAC4E364B83 7FAC4E343DAD 55A9DCC072B8 55A9DCC044A9
continues: 55A9DCC19D37 55A9DCBDBBCF 55A9DCBDD242 55A9DCBA8DF7 7FAC4D0ECC87
continues: 55A9DCB55B2A
backtrace:
/tmp/TEST/lib64/libelmme-base.so.1.1.61+(panic+0x1de)[0x7fac4d996dc9]
/tmp/TEST/lib64/libelmme-mbox.so.1.1.61+(+0x3ab83)[0x7fac4e364b83]
/tmp/TEST/lib64/libelmme-mbox.so.1.1.61+(prepare_read_folder+0x687)[0x7fac4e343dad]
/tmp/TEST/bin/elm(+0xd82b8)[0x55a9dcc072b8]
/tmp/TEST/bin/elm(newmbox_1+0x5e7)[0x55a9dcc044a9]
/tmp/TEST/bin/elm(resync+0x4d2)[0x55a9dcc19d37]
/tmp/TEST/bin/elm(+0xacbcf)[0x55a9dcbdbbcf]
/tmp/TEST/bin/elm(main_messages_menu+0x17d)[0x55a9dcbdd242]
/tmp/TEST/bin/elm(main+0xf48)[0x55a9dcba8df7]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7fac4d0ecc87]
/tmp/TEST/bin/elm(_start+0x2a)[0x55a9dcb55b2a]
Press <enter> to abort:
- Fixed debug output on file_bytes() at lib/file_util.c
SUMMARY: This release adds -4 (use IPv4) and -6 (use IPv6)
options to elm and other commands. This release
includes hack for convert bare CR to newline
with elmrc option "convert-cr-to-newline-hack".
Also some bug fixes and other changes are
included.
- Added options -4 (use IPv4) and -6 (use IPv6) to elm,
readmsg,fastmail,frm and newmail.
Both options can be given. If only use IPv4 or
use IPv6 options are used, that limits some
connections to IPv6 or IPv4 addresses.
Does not limit all possible usage.
- Option combination -46 can be used
to try first IPv4 connections before IPv6
connections are tried.
- Option combination -64 can be used to
try first IPv6 connections before
IPv4 connections are tried.
- Added add_ipv_option() to lib/remote_mbx.c
and hdrs/elmib.h
- Options -4 (use IPv4) and -6 (use IPv6) override
elmrc option "query-address-type" (on resolv:
-section) when lookup for service address is
done.
- Options -4 and -6 works with
mail-services-lookup = getaddrinfo
and mail-services-lookup = resolv:all-addresses
values of elmrc option.
> With other values of "mail-services-lookup"
elmrc option command line options -4 (use IPv4) and
-6 (use IPv6) may produce unexpected results
or cause connection failure.
- Fixed 'z' modifier on elm_vmessage() and
elm_smessage()
- Fixed case where elmrc option "resolv:search-mail-service"
was not set default value properly.
- Added post_init_shared_options1(), and
post_init_shared_opt1() to hdrs/shared_imp.h
and lib/shared.c
- Changed fastmail, newmail and readmsg usage text.
- Changed frm help text.
- Certain sender sends mail with CR (^M) as line
separator (on content-transfer-encoded body part).
Added elmrc option "convert-cr-to-newline-hack".
When set, lone CR on text body part are converted
to newline. Possible values are
off Do not convert lone CR
on-with-error Convert lone CR to newline
with diagnostic message
on-silent Convert lone CR to newline
without diagnostic message
Also boolean ON, OFF, TRUE, FALSE, YES and NO values
are allowed.
- Changed newline / CR caching on struct in_state_decode
or on state_decode routines at melib/state_decode.c
- Potentially fixed case where CR NUL loses NUL
when converting newlines on decoded text.
- Added unsigned int show_error : 1;
to struct decode_opts on hdrs/melib.h
- Print errors to buffer also when replying
(or forwarding with mail on edit buffer)
NOTE: Ubuntu 20.04 is observed to need
imap.server imaps; tls:tls-version=tls-1.2
smtp.server submissions; tls:tls-version=tls-1.2
on .elm/mail.services when imap server and
submission server are used. Record messages with
--messages=message.log elm ME+ comannd line option and
look TLS error from message.log.
- Fixed debug output crash on prompt_expanded_address()
at src/addr_prompt.c.
SUMMARY: This release changes "Mailcap program selection"
and adds elmrc option "mailcap-select-other". This
release adds listing of aliases with TABulator
to few address prompts. Also some other changes
are included and bugs fixed.
- Do no allow -f name option twice on fastmail -command.
- Tell that both -f name and -F address options
are not allowed together on fastmail -command.
- Giving -F address option on fastmail -command now discards
address read from ~/.elm/elmheaders file
(before that -F option just appended new address).
- Allow -f name option on fastmail -command set phrase
of From address if ~/.elm/elmheaders file gives just
one From address.
- Fixed port_imaponly_masks [] on htrem_have_connection()
at lib/mbox/hashmark_remote.c
- Fixed port_imaponly_masks [] on make_remote_mbox()
at lib/mbox/remote_mbx.c
- Fixed port_masks [] on submission_mailer_info_init()
at shared_libs/smtp/smtp.c
- Fixed port_masks [] on submission_mailer_info_rs_hook()
at shared_libs/smtp/smtp.c
- Fixed debug output on bgconnect_got_connection()
at lib/remote_mbx.c
- Do not ask program on "Mailcap program selection"
if later part is skipped as attachment
- Added mime_disposition_names[] to hdrs/melib.h
and melib/mime.c
- Changed DISPOSITION() macro on hdrs/melib.h
- Renamed debug_f() to mime_debug_classify_f()
and exported from melib/mime_selector.c and
removed other static copies.
- Passed struct header_rec * hdr to mime_classify_media()
on parse_mime_headers1() at melib/mime_parse.c
- Changed prototype of mime_classify_media()
- Added elmrc option "mailcap-select-other". If
it is set (default), "Mailcap program selection"
screen shows o)ther alternative programs.
Setting this option means that "test="
commands from all mailcap entries for given type
is executed and if test succeed, these entries
are added as o)ther alternatives. If elmrc
option "mailcap-select-other" is not set,
"test=" commands from mailcap entries
for given type is executed until some test
succeed (or mailcap entry without "test="
is found for given type).
- Added struct mailcap_entry ** other_entries;
and size_t num_other_entries;
to struct mime_selected_handler on hdrs/melib.h
- Some changes on prompt_programs() at src/showmsg.c
- Added struct prompt_programs_list to hdrs/me.h
(was struct prompt_list on src/showmsg.c)
- Added check_mailcap_view_cmd() to src/showmsg.c
and hdrs/me.h
- Added prompt_mailcap_other() to src/mailcap_sel.c
and hdrs/me.h
- Allow space to move to next entry on
"Mailcap program selection" even when there is
question if it is already answered.
- Moved struct mailcap_vector from melib/mailcap.c to
hdrs/mailcap_imp.h
- Moved struct mailcap_entry from melib/mailcap.c to
hdrs/mailcap_imp.h
- Added char quote_char to struct mailcap_vector
on hdrs/mailcap_imp.h for printing purposed.
- Possible fix for need_meta() on src/showmsg.c
- Moved "Mail Quota Screen" title to second line
from first line.
- Added struct hdrmenu_context to hdrs/me.h
- Added clear_hdrmenu_context() to hdrs/me.h
and src/hdrconfg.c
- Changed prototype of presend_action() on
hdrs/me.h
- Added listing of aliases with TABulator
to T)o:, C)c: and B)cc: -commands
on "Mail Pre-Send Screen".
R)eturn-path: -command does not show
listing of aliases on "Mail Pre-Send Screen"..
- Added listing of aliases with TABulator
to address prompts on "Message Header Edit Screen".
- Added listing of aliases with TABulator
to T)o: -command on "Bounce Pre-Send Screen".
R)eturn-path: -command does not show
listing of aliases on "Bounce Pre-Send Screen".
- Fixed memory leak on add_surface() at src/addr_prompt.c
- Fixed memory leak on expanded_to_tokenized() at src/addr_prompt.c
New elmrc option:
mailcap-select-other
New files:
src/mailcap_sel.c
hdrs/mailcap_imp.h
SUMMARY: This release fixes some compiling errors and
warnings. This releases adds aliases listing
(available with TABulator key) to To: and
CC: -prompts for m)ail, b)ounce and r)eply
commands. Also some other changes are
included and bugs fixed.
- "/usr/bin/ld: outheaders.o:(.bss+0x0): multiple definition of `attribution_s'; mailer.o:(.bss+0x0): first defined here
/usr/bin/ld: outheaders.o:(.bss+0x8): multiple definition of `fwdattribution_s'; mailer.o:(.bss+0x8): first defined here"
Reported by: Noam G. Nudelman
> Added missing extern to struct string * attribution_s and
struct string * fwdattribution_s on hdrs/elmlib.h
- "elmregister.c: In function ‘copy_dir’:
elmregister.c:2234:21: warning: גparse_log_tailג accessing 1034 bytes in a region of size 1024 [-Wstringop-overflow=]
2234 | parse_log_tail(&L1,buffer,L,module_ptr,command_ptr,user_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2235 | group_ptr,mode_ptr,args_ptr,argnum);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
Reported by: Noam G. Nudelman
> Unify parse_log_tail() buffer reservation on
utils/elmregister.c
- "elmregister.c: In function ‘copy_dir’:
elmregister.c:2234:21: warning: ‘parse_log_tail’ accessing 1200 bytes in a region of size 4 [-Wstringop-overflow=]
2234 | parse_log_tail(&L1,buffer,L,module_ptr,command_ptr,user_ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2235 | group_ptr,mode_ptr,args_ptr,argnum);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
elmregister.c:2234:21: note: referencing argument 9 of type ‘int *’
elmregister.c:601:13: note: in a call to function ‘parse_log_tail’
601 | static void parse_log_tail(l,buffer1,ptr,module_ptr,command_ptr,user_ptr,
| ^~~~~~~~~~~~~~"
Reported by: Noam G. Nudelman
> Changed int args_ptr[MAX_ARGS] to int *args_ptr on prototype
- "query.c: In function ‘lookup_resolv_cache_nonblocked’:
query.c:5213:9: warning: ‘__hostalias’ is deprecated: use getaddrinfo instead [-Wdeprecated-declarations]
5213 | } else if (!dots && (alias = hostalias(name))) {
| ^
In file included from elmresolv.h:27,
from query.c:10:
/usr/include/resolv.h:185:17: note: declared here
185 | const char * hostalias (const char *) __THROW
| ^~~~~~~~~"
Reported by: Noam G. Nudelman
> Added Configure test that hostalias() exists and works
when $HOSTALIASES is set -- this does
does not remove warning. hostalias() is not anyway useful
when Elm ME+ is setgid mail, however.
- Configure of libelme-resolv module asks that
is hostalias() used directly on module if Elm ME+ is setgid
or hostalias() is deprecated.
- Moved hostalias() lookup from lookup_resolv_cache_nonblocked()
on shared_libs/resolv/query.c to
query_resolv_cache() on shared_libs/resolv/resolv.c.
hostname() lookup is now also done when exact name is
queried without search.
- ".../resolv/resolvertest2.c: In function ‘main’:
.../shared_libs/resolv/resolvertest2.c:822:5: warning: ‘__hostalias’ is deprecated: use getaddrinfo instead [-Wdeprecated-declarations]
822 | } else if (!dots && (alias = hostalias(name))) {
| ^
In file included from .../shared_libs/resolv/resolvertest2.c:44:
/usr/include/resolv.h:185:17: note: declared here
185 | const char * hostalias (const char *) __THROW
| ^~~~~~~~~"
Reported by: Noam G. Nudelman
> Excluded hostalias() from resolvertest2.c
That is used on Configure and hostalias() is tested
after resolvertest2.c tests. hostalias()
is included later on elmresolvertest2 if
hostalias() was not excluded.
- Fixed compilation warning
.../lib/mbox/remote_server.c:103:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (REMOTE_BROWSER_magic != dir->a.remote_browser->magic)
- Fixed compilation warning
.../lib/mbox/remote_server.c:2805:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (REMOTE_BROWSER_magic != dir->a.remote_browser->magic)
- Fixed compilation warning
.../lib/can_open.c: In function ‘can_open’:
.../lib/can_open.c:124:31: warning: ?: using integer constants in boolean context, the expression will always evaluate to ‘true’ [-Wint-in-bool-context]
DPRINT(Debug,(0 == ret) ? 10 : 1,
~~~~~~~~~~~~~~~~~~~~~~^~~
.../hdrs/elmlib.h:2396:21: note: in definition of macro ‘DPRINT’
if (x.active >= level) debug_action_call action; \
^~~~~
> Changed DPRINT macro
- Changed also DEBUG_CHECK(), SIGDPRINT() and DEBUG_PRINT_BUFFER()
macros
- Fixed compilation warning
.../lib/digest_wrapper.c: In function ‘digest_proc_equal’:
.../lib/digest_wrapper.c:473:34: warning: self-comparison always evaluates to false [-Wtautological-compare]
if (ptr1->digest_result[x] != ptr1->digest_result[x]) {
^~
> Fixed incorrect result of digest_proc_equal()
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2487:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_94;
^~~~
.../lib/iso2022.c:2488:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G0;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2498:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_94;
^~~~
.../lib/iso2022.c:2499:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G1;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2509:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_94;
^~~~
.../lib/iso2022.c:2510:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G2;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2520:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_94;
^~~~
.../lib/iso2022.c:2521:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G3;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2531:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_96;
^~~~
.../lib/iso2022.c:2532:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G1;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2543:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_96;
^~~~
.../lib/iso2022.c:2544:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G2;
^~~~~~
- Fixed compilation warning
.../lib/iso2022.c: In function ‘eat_iso2022_setid’:
.../lib/iso2022.c:2554:2: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else result->type = iso2022_96;
^~~~
.../lib/iso2022.c:2555:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’
result->bank = bank_G3;
^~~~~~
- Fixed compilation warning
.../shared_libs/tls/tls.c: In function ‘tls_init’:
.../shared_libs/tls/tls.c:735:6: warning: unused variable ‘z’ [-Wunused-variable]
int z,l;
^
- Fixed compilation warning
.../src/alias_display.c: In function ‘ad_set_alias_group_phrase’:
.../src/alias_display.c:1660:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (group_phrase)
^~
.../src/alias_display.c:1663:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
redraw1:
^~~~~~~
- Fixed compilation warning
.../src/attach_menu.c: In function ‘attach_view_binary’:
.../src/attach_menu.c:1592:10: warning: self-comparison always evaluates to true [-Wtautological-compare]
if (cs == cs ||
^~
> Fixed character set check on attach_view_binary()
- Fixed compilation warning
.../src/builtin++.c: In function ‘builtinplusplus’:
.../src/builtin++.c:714:7: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
else
^~~~
- Fixed compilation warning
.../src/showmsg_c.c: In function ‘process_showmsg_cmd’:
.../src/showmsg_c.c:679:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if (flags & SHOWMSG_NOMAIL)
^~
.../src/showmsg_c.c:682:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
put_cmd_name(pager_page,TRUE,
^~~~~~~~~~~~
- Fixed case where "Copies to:" prompt is not cleared when
new address is written - bug was introduced when
address prompt implementation changed on
Elm ME+ 2.5 PLalpha58
> Changed CleartoEOLN() to menu_CleartoEOLN()
on enter_helper() at src/enter_helper.c
- Added listing of aliases to
"Send the message to: "
and "Copies to: "
prompts of m)ail command with TABulator. Also
TABulator shows listing of aliases
on "Send the message to: "
prompt on b)ounce command and
on "Copies to: "
prompt on r)eply command.
> TABulator do not show aliases address prompts of
"Mail Pre-Send Screen" and "Message Header Edit Screen".
- Added w_menu_calculate_rline() to src/screen/def_sceen.h
- Added w_menu_calculate_rline * wra_calculate_line;
to struct menu_draw_routine
- Added scommon_calculate_rline() to src/screen/scommon.c
and src/screen/def_scommon.h
- Added menu_translate_pos() to src/screen/screen.c
and hdrs/me.h
- Added add_one_alias_to_expanded() to src/addr_util.c and
and hdrs/me.h
- Added full_page_r * full_page; to struct enter_info
- Added default_full_page() to hdrs/me.h and src/enter_helper.c
- Added more check_changes() calls to cur_ReadCh2() on src/screen/curs_input.c
- Changed resize and redraw handling on cur_ReadCh2()
- Changed waiting on cur_ReadCh2()
- Added wait_for_action_or_timeout_f() to hdrs/elmlib.h
and lib/schedule.c
- Added prompt_hint_r * prompt_hint; to struct enter_info
- Added default_prompt_hint() to hdrs/me.h and src/enter_helper.c
- Changed sort_aliases() call on set_aview_alias_mode()
at src/alias.c
- Changed prototype of sort_aliases()
- Fixed crash on debug output on build_address_l()
SIGNAL PANIC in .../src/signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 7FF9F99BAB34 55BF908911DD 7FF9F912DF10 7FF9F927D461 7FF9F9998086
continues: 7FF9F9998B5F 55BF907B49DD 55BF907AD4BF 55BF907AFCC7 55BF9082C5CA
continues: 55BF9082CFC4 55BF9082DB43 55BF9082DCF2 55BF907F8AC0 55BF90829D45
continues: 55BF9082B5E5 55BF907FBED5 7FF9F9110C87 55BF907AB87A
backtrace:
.../lib64/libelmme-base.so.1.1.58+(panic+0x1de)[0x7ff9f99bab34]
.../bin/elm(segv_signal+0x80)[0x55bf908911dd]
/lib/x86_64-linux-gnu/libc.so.6(+0x3ef10)[0x7ff9f912df10]
/lib/x86_64-linux-gnu/libc.so.6(+0x18e461)[0x7ff9f927d461]
.../lib64/libelmme-base.so.1.1.58+(+0x56086)[0x7ff9f9998086]
.../lib64/libelmme-base.so.1.1.58+(debug_action_call+0x6b2)[0x7ff9f9998b5f]
.../bin/elm(build_address_l+0x1264)[0x55bf907b49dd]
.../bin/elm(+0x284bf)[0x55bf907ad4bf]
.../bin/elm(prompt_expanded_address+0xc7c)[0x55bf907afcc7]
.../bin/elm(get_to+0x4e2)[0x55bf9082c5ca]
.../bin/elm(send_msg_middle2+0x36f)[0x55bf9082cfc4]
.../bin/elm(send_msg_middle+0x19b)[0x55bf9082db43]
.../bin/elm(send_msg_l+0x17a)[0x55bf9082dcf2]
.../bin/elm(mailbox_command+0xf73)[0x55bf907f8ac0]
.../bin/elm(+0xa4d45)[0x55bf90829d45]
.../bin/elm(main_messages_menu+0x17d)[0x55bf9082b5e5]
.../bin/elm(main+0xf48)[0x55bf907fbed5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7ff9f9110c87]
/tmp/TEST/bin/elm(_start+0x2a)[0x55bf907ab87a]
Press <enter> to abort:
- Fixed string_need_quote() on lib/stringtok.c
SUMMARY: This release adds "Implicit TLS" (RFC 8314)
for imap, pop and submission protocols. This
is controlled with new elmrc option "use-tls".
This release uses openssl's X509_check_host().
This release changes address prompts and fixes
crash when folder browser login prompt from
#hashmark is interrupted with Ctrl-C. Also
some other changes are included and bugs fixed.
RFC 8314: Use of TLS for Email Submission/Access
- Added "Implicit TLS" (separate tcp port) for imap,
pop, submission which is tried first before
imap, pop, submission (and STARTTLS after that)
is tried. Implicit TLS is available only
when libelmme-tls module is loaded. This
is controlled with new elm.rc option "use-tls".
- Added keyword "submissions" to to mail.services.
RFC 8314 registers tcp port 465 for
"Message Submission over TLS protocol".
> Port 465 is also registered for
"URL Rendesvous Directory for SSM"
> Historically port 465 was registered for
smtps, but this was revoked (smtp uses
MX records, which do not specify port).
- Added service_type_defport(), enumerate_service_type(),
init_enum_service_type(), init_enum_service_list(),
convert_service_entry()
to lib/service_list.c and hdrs/connection_imp.h
- Added elmrc option "use-tls".
Option includes list of keywords:
none None of values are selected
implicit-tls Use "Implicit TLS" (separate tcp port)
for imap, pop, submission which is tried
first before imap, pop, submission
(and STARTTLS after that) is tried.
starttls libbelmme-tls module uses STARTTLS
(IMAP, SMTP) or STLS (POP) if command
is available. This is default.
verify-tls-certificate connection must use tls
and server certificate
must have valid
require-tls-peer-name connection must use tls
and certificates's CN must
match
display-check-host display X509_check_host()
matching when login
The "use-tls" elm.rc option accepts two forms:
- Absolute form where used options are listed
- Additive form where changes from compile
time default are listed:
+implicit-tls -implicit-tls
+starttls -starttls
+verify-tls-certificate
-verify-tls-certificate
+require-tls-peer-name
-require-tls-peer-name
+display-check-host
-display-check-host
These two forms can not be mixed.
- Allowed disabling automatic use of STARTTLS
(IMAP, SMTP) or STLS (POP) commands by using of
use-tls = none
or use-tls = -starttls
- Specifying tls:starttls-version on
~/.elm/mail.services or on global elm.mailservices
overrides starttls disable given on use-tls setting.
* About same can be done by removing
use-connect-library = tls
- Specifying require-tls-peer-name={name}
on ~/.elm/mail.services or on global elm.mailservices
can used to make 'require-tls-peer-name' on use-tls
accept also other certificate's CN (or some
cases other 'Subject Alternative Name' (SAN)) than given
hostname.
- 'require-tls-peer-name' checks certificate's CN
when correct name is usually certificate's
'Subject Alternative Name' (SAN) -
with OpenSSL 1.0.2 or newer 'require-tls-peer-name'
check also DNS:name from 'Subject Alternative Name' (SAN)
if name is not IP-address.
> If 'Subject Alternative Name' (SAN) check is
not supported, it is usually not good idea to use
'require-tls-peer-name' on use-tls setting
- Specifying verify-tls-certificate=off
on ~/.elm/mail.services or on global elm.mailservices
overrides verify-tls-certificate given on use-tls setting.
- Specifying use-tls-checks=no on ~/.elm/mail.services or on
global elm.mailservices overrides 'verify-tls-certificate'
and 'require-tls-peer-name' given on use-tls setting.
- libbelmme-tls module changes default value of "use-tls"
if use-config-library elmrc option lists tls.
- Added RC_change_config() shared_libs/tls/tls.c
- Added connect_remote_account_2()
to lib/remote_mbx.c and hdrs/connection_imp.h
- Added browser_passhm_open_ra2()
to lib/mbox/hashmark_helper.c and hdrs/connection_imp.h
- Added hashmark_passhm_open_ra2()
to lib/mbox/hashmark.c and hdrs/hashmark.h
- Added hashtype_passhm_open_ra2_f() to hdrs/hashmark_imp.h
- Added hashtype_passhm_open_ra2_f * passhm_open_ra2;
to struct hashtype_actions
- Added 'Subject Alternative Name' (SAN) support
to 'require-tls-peer-name' on global elm.mailservices
and user's ~/.elm/mail.services file.
- Added 'Subject Alternative Name' (SAN) support
to 'require-tls-peer-name' flag on "use-tls" elm.rc
option.
- Added 'Subject Alternative Name' (SAN) support
to "require-tls-peer-name" on global elm.hashmarks
and user's ~/hash.marks file.
> This 'Subject Alternative Name' (SAN) support requires
OpenSSL 1.0.2 or newer, which includes X509_check_host()
function.
> This 'Subject Alternative Name' (SAN) support only
checks "DNS:" -names with X509_check_host() and does not
check "IP:" -names with X509_check_ip().
- Added Configure (actually shared_libs/tls/config) test
for X509_check_host()
- If 'display-check-host' is given use-tls setting,
openssl includes X509_check_host(), hostname is not
ip address, and X509_check_host() succeed, with IMAP show
IMAP login to <host> (verified, host matches) as <user> ...
or IMAP login to <host> as <user> (verified, host matches <name>) ...
instead of
IMAP login to <host> (verified) as <user> ...
or IMAP login to <host> as <user> ... (verified: <cn name>)
or IMAP login to <host> as <user> ...
- If 'display-check-host' is given use-tls setting,
openssl includes X509_check_host(), hostname is not
ip address, and X509_check_host() succeed, with POP show
POP login to <host> (verified, host matches) as <user> ...
or POP login to <host> as <user> ... (verified, host matches <name>) ...
instead of
POP login to <host> (verified) as <user> ...
or POP login to <host> as <user> ... (verified: <cn name>)
or POP login to <host> as <user> ...
- Fixed POP error messages for reading non-existing
UIDLS file. This error was probably introduced on
Elm ME+ 2.5 PLalpha55
- Added mbx_remote_login_msg() to lib/mbox/def_mbox.h
and lib/mbox/remote_mbx.c
- Fixed crash when folder browser login prompt from #hashmark
is interrupted with Ctrl-C and new hashmark is then
opened:
CONNECTION PANIC in .../lib/mbox/hashmark_remote.c:3080:hashtype_initd_remote
>>>hassmark_data is set
Call stack: 7F6D8A104A14 7F6D8AB4CEFB 7F6D8AB4015D 7F6D8AB54A7B 7F6D8AB554F5
continues: 7F6D8AAE7C9B 7F6D8AAE7FB0 44A036 44D3A3 46DFDC
continues: 44E0A9 44E604 4D5CAA 498A40 499B65
continues: 46B06F 7F6D89881840 420149
backtrace:
.../libelmme-base.so(panic+0x1de)[0x7f6d8a104a14]
.../libelmme-mbox.so(+0xb9efb)[0x7f6d8ab4cefb]
.../libelmme-mbox.so(hashmark_init_data+0x123)[0x7f6d8ab4015d]
.../libelmme-mbox.so(+0xc1a7b)[0x7f6d8ab54a7b]
.../libelmme-mbox.so(+0xc24f5)[0x7f6d8ab554f5]
.../libelmme-mbox.so(select_dir_item_helper+0x108)[0x7f6d8aae7c9b]
.../libelmme-mbox.so(select_dir_item+0x264)[0x7f6d8aae7fb0]
.../elm(browser_expand+0x3c9)[0x44a036]
.../elm[0x44d3a3]
.../elm(enter_helper+0x169c)[0x46dfdc]
.../elm[0x44e0a9]
.../bin/elm(folder_browser+0x160)[0x44e604]
.../bin/elm(change_file+0x19b)[0x4d5caa]
.../bin/elm[0x498a40]
.../bin/elm(main_messages_menu+0x17d)[0x499b65]
.../bin/elm(main+0xf48)[0x46b06f]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f6d89881840]
.../elm(_start+0x29)[0x420149]
Press a <enter> to abort or <enter> to exit:
> Added hashmark_free_data() to browser_change_hashmark()
- Changed address prompt implementation. Some errors may be
reported when TAB or ENTER is pressed. On some situations
address need to be confirmed by pressing ENTER second
time. However all syntax errors are not reported and do not
require confirm with pressing ENTER second time.
- Added prompt_expanded_address() to hdrs/me.h and src/addr_prompt.c
- Added zero_enter_info() to hdrs/me.h and src/enter_helper.c
- Added struct address_edit *address to struct enter_info
- Added alter_buffer_r * alter_buffer to struct enter_info
- Added default_alter_buffer() to hdrs/me.h and src/enter_helper.c
- Changed prototype of enter_helper()
- Added enum token_status status to struct string_token
- Added update_textual_from_tokenized() to hdrs/me.h and
and src/addr_util.c
- Changed prototype of buffer_to_header(), hdr_to_buffer()
- Make hdr_to_buffer() and buffer_to_header()
static for src/hdrconfig.c and removed from hdrs/me.h
- Changed gb_optionally_enter() on src/in_utils.c
- Possible fix to message_W() on src/out_utils.c
- Possible fix to expanded_to_edit_buffer() on src/addr_util.c
- Replaced sprintf() with elm_message() on do_pipe()
at syscall.c
New elmrc option:
use-tls
New file:
src/addr_prompt.c
SUMMARY: This release removes "USENET supported version"
string and fixes bogus "Failed to stat mail-file"
error message. Also some other small changes
or bugs fixes are included.
- Removed "USENET supported version" from WHAT_STRING
from hdrs/patchlevel.h. Usenet news (nntp) server
news.kolumbus.fi is closed since 2021-05-04, and
Usenet news servers seems rare.
- Checked possible ctime() failure on mbx_copy_envelope_pop()
- Checked possible ctime() failure on real_from() debug
- Checked possible ctime() failure on real_start_we_local()
- Changed %D (expand date) expansion on fileio.c
- Some changes on mbx_mark_keep_normal()
- Checked possible asctime() failure on debug_message()
- Added some FOLDER_INFO_magic checks to lib/mbox/localmbx.c
- Changed to filter_scanlist() on lib/misc/mime_types.c
- Fixed bogus "Failed to stat mail-file" error message.
SUMMARY: This release fixes crash when alias with empty
address is saved. This releases changes aliases
handling. Unordered ~/.elm/elmaliases is rewritten
on startup if elmrc option "user-conf-rewrite"
is set (default). New option "conf-merge-locking"
controls locking of ~/.elm/elmaliases.
Also elm command includes -b<backup-suffix> option.
This release fixes some memory leaks reported
by valgrind. Also some other changes are included
and bugs fixed.
- Changed aliases to use struct sortlist
and sortlist routines on lib/alias/aliases.c
* Note: This implementation write aliases to file
on order. If that is read on older
versions of ELM ME+, resulting
binary tree degenerates to linear list.
- Changed prototype of aliases_map_lookup_alias()
- Changed prototype of load_aliases_map()
- If elmrc option "user-conf-rewrite" is set (default),
~/.elm/elmaliases is rewritten on elm startup
if aliases are not on order. In that case
backup is saved as ~/.elm/elmaliases.YYYY-MM-DD.bck
if not exists (where YYYY, MM, and DD are numeric
year, month and day).
> However "elm -w" does not write backup when
writing configuration files.
- Elmrc option "user-conf-rewrite" is ignored
and ~/.elm/elmaliases is not written, if
configure file parsing fails.
- Added support that aliases (~/.elm/elmaliases)
are modified on several Elms on same time
and changes are merged when ~/.elm/elmaliases
is saved.
- Aliases file ~/.elm/elmaliases is exclusively
(read-write) locked and read for new changes
before new file ~/.elm/elmaliases.N written
and then renamed to ~/.elm/elmaliases. When lock is
acquired, writer check that is original file changed
(replaced with new file), if it is then file reopened and
locked again before is its read for merge.
- Locking is controlled with new elmrc option
"conf-merge-locking". This lock option
knows following keywords
none None of values are selected
(use value none to disable locking)
flock Use flock() locking. flock()
does not lock files over NFS.
fcntl Use fcntl() locking.
- Added edited_address_alias() to lib/addr/def_alias.h
and lib/addr/address_alias.c
- Added merge_aliases_map() to hdrs/aliaslib.h
and lib/addr/aliases.c
- If some aliases are deleted from ~/.elm/elmaliases
when changes from it is merged to new ~/.elm/elmaliases(.N),
deleted aliases are show with letter 'X' (as eXpunged)
on Alias mode -screen.
- Added aliases_map_deleted_alias() to hdrs/aliaslib.h
and lib/alias/aliases.c
- Changed show_alias_status(), rebuild_aliasview(),
update_aview()
- Added am_deleted_alias() to src/aliases/def_aliases.h
and src/aliases/aliases_map.c
- Fixed '$' command on a)lias -screen that
it does not print "Updating aliases"
if aliases are not deleted or added
(actually .elm/elmaliases is not
written on that situation)
[ That spurious updating message was probably
introduced on Elm ME+ 2.5 PLalpha19 ]
- Changed that '$' command on a)lias -screen
read and merges aliases when .elm/elmaliases
is changed (also when there is no
aliases to be deleted or added for
writing .elm/elmaliases file).
- Added test_file_changes() to hdrs/aliaslib.h and
lib/alias/aliases.c
- Changed prototype of dump_aliases_map()
- Added file_changed_aliasview() to hdrs/me.h and
src/aliases/aliases.c
- Changed prototype of dump_conf_map_f()
- Added -b<backup-suffix> option to elm. Elm checks first that
there is no files in form <config file><backup-suffix> exists
when -b<backup-suffix> option is used.
- Command -wb<backup-suffix> causes that config
file <config file> is preserved as
<config file><backup-suffix> when file <config file> rewritten.
- Option -b<backup-suffix> without -w changes backup
file used with elmrc option "user-conf-rewrite".
- Added check_conf_backup_suffix() and
check_file_backup_suffix() to hdrs/misclib.h
and lib/misc/conf_writer.c
- Changed prototype of save_options()
- Added check_options_backup_suffix() to hdrs/me.h
and src/save_opts.c
* Without -b option ~/.elm/elmrc is saved to
.elm/elmrc.old when -w option is given.
* Note: Backup .elm/elmrc.old is still used
when ~/.elm/elmrc is saved with '>' command
on o)ptions screen.
- Added new_string_sort(), free_string_sort()
and string_sort_cmp(), give_string_from_string_sort()
inc_string_sort_refcount() to hdrs/elmlib.h and
lib/string_sort.c
- Added int refcount; to struct string
- Added inc_string_refcount() to hdrs/cs_imp.h
and lib/string.c
- Added cs_unicode_vector_from_string() to
hdrs/cs_imp.h
- Added cs_unicode_vector_from_default() and
cs_unicode_vector_from_null() to hdrs/cs_imp.h
and lib/string.c
- Changed prototype of safeopen(), safeopen_rdwr(),
register_conf_write(),
write_conf(), search_sort_list_item()
- Changed safeopen(), safeopen_rdwr() to use
common safeopen_core()
- Moved some locking routines from lib/mbox/localmbx.c
to lib/misc/filelock.c
- Added filelock_fd to lib/misc/filelock.c and
hdrs/misclib.h
- Changed GrabRead_the_file(),
Grab_the_file() and Release_the_file()
to use filelock_fd()
- Changed prototype of Release_the_file()
- Changed mbx_syscall_unlock_file to use filelock_fd()
- Fixed valgrind reported memory leak:
124 bytes in 1 blocks are definitely lost in loss record 380 of 511
at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CDFFF4: safe_realloc (safemalloc.c:115)
by 0x5D3EAAA: strmcat (strmcpy.c:44)
by 0x55C9A46: message_id_func (message-id.c:2261)
by 0x5CAF626: dt_FUNC_print_value (rc_handle.c:1091)
by 0x5CAC88A: dt_DELAY_print_value (rc_delay.c:458)
by 0x5D4D8ED: write_option (write_rc.c:291)
by 0x5D4DD3D: write_rc_part (write_rc.c:407)
by 0x5D4F8AA: write_rc (write_rc.c:919)
by 0x4F1184: save_options (save_opts.c:163)
by 0x489F56: initialize (init.c:715)
by 0x4699EA: main (elm.c:1402)
- Fixed valgrind reported memory leak:
41 bytes in 2 blocks are definitely lost in loss record 323 of 510
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CDFC94: safe_malloc (safemalloc.c:60)
by 0x5C7C05E: cs_stream_from_utf8 (cs_utf.c:747)
by 0x5D3556D: bytestream_from_string (string.c:1482)
by 0x5CAD829: sconvert_to_rcset (rc_handle.c:132)
by 0x5CB7FF0: dt_STRING_print_value (rc_handle.c:4304)
by 0x5D4D8ED: write_option (write_rc.c:291)
by 0x5D4DD3D: write_rc_part (write_rc.c:407)
by 0x5D4F8AA: write_rc (write_rc.c:919)
by 0x4F1184: save_options (save_opts.c:163)
by 0x489F56: initialize (init.c:715)
by 0x4699EA: main (elm.c:1402)
- Fixed crash which occurs when alias with empty address is saved:
SIGNAL PANIC in .../src/signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 7F81788496AC 4FE6E1 7F8177FDB4C0 7F8178D7BEF1 7F8178B56F85
continues: 52F2AE 52A4B1 4299E6 4290E4 466B3D
continues: 497CE4 499584 46ABA0 7F8177FC6840 41FD89
backtrace:
../lib64/libelmme-base.so.1.1.55+(panic+0x1de)[0x7f81788496ac]
../bin/elm(segv_signal+0x80)[0x4fe6e1]
/lib/x86_64-linux-gnu/libc.so.6(+0x354c0)[0x7f8177fdb4c0]
../lib64/libelmme-addr.so.1.1.55+(address_to_str+0x8f)[0x7f8178d7bef1]
../lib64/libelmme-alias.so.1.1.55+(dump_aliases_map+0x78d)[0x7f8178b56f85]
- Added address_is_empty() to hdrs/addrlib and lib/addr/address.c
- Changed parse_one_tokenized_address() on lib/addr/parsestring.c
- Changed parse_one_address() on lib/addr/getaddr.c
- Changed ad_set_alias_person_address() on arc/alias-display.c
- Changed alias_info_update() on src/alias_info.c
- Changed sb_update_alias_info_part on arc/alias-display.c
- Changed do_expand_alias_tail() on lib/alias/aliasexpand.c
- Changed some hdrs/elm_defs.h defines to enum
- Changed thread view to use struct sortlist
and sortlist routines on lib/alias/aliases.c
- Added fix for handling of invalid date
to update_mailbox_threads() on src/messages/thread.c
- Used struct string_sort on struct thread_info
- Changed time_sent_compare()
- Changed compare_threads_1()
- Added compare_threads_1_sentd(),
compare_threads_1_revsentd() to hdrs/me.h
and src/thread.c
- Fixed valgrind reported memory leak:
57,204 (45,880 direct, 11,324 indirect) bytes in 1 blocks are definitely lost in loss record 1,608 of 1,614
at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CE87EE: safe_array_realloc (safemalloc.c:263)
by 0x50CD9A: sort_threads (thread.c:305)
by 0x51085C: ViewThreads (thread.c:1522)
by 0x46F649: h_view_threads (extended.c:285)
by 0x4706AF: extended_command (extended.c:782)
by 0x467459: mailbox_command (elm.c:301)
by 0x4981FB: main_messages_loop (mailbox.c:315)
by 0x499A9B: main_messages_menu (mailbox.c:964)
by 0x46B09E: main (elm.c:1677)
- Cast dev_t and ino_t to long on printing.
New elmrc options:
user-conf-rewrite
conf-merge-locking
New files:
lib/misc/filelock.c
hdrs/filelock.h
lib/string_sort.c
SUMMARY: This release fixes some memory errors reported
by valgrind. Delivery status notifications (DSNs)
are stored to =dsn folder instead of =received
folder when mailbox is leaved with new elmrc
option "dsnmail" on this release. This release
changes how UIDL listing of POP mailboxes are
handled. This release adds new "dsn" criteria
to l)imit command. This release changes default
target for DSN mail on s)save command to folder
given on elmrc option "dsnmail".
- Added elmrc option "dsnmail", which default value is "=dsn".
If this is set (not none), read delivery status notifications
are stored that folder and not to folder specified on
"receivedmail". Also default folder for delivery status
notifications is folder given on elmrc option "dsnmail", when
using s)ave command.
* Setting
dsnmail = none
disabled special processing of delivery status notifications
when mailbox is left.
* s)ave command does not use elmrc option "dsnmail", if
that folder is already open. If "folder-locking" is
enabled, saving to open folder does not work.
- Reserved [...] for folder name tags on folder expansion.
- Tag [dsn] indicates folder given on elmrc option "dsnmail".
- Added mime_type_is_dsn() to melib/mime.c and hdrs/melib.h
* Only Content-Type
multipart/report; report-type=delivery-status
is considered to be delivery status notification.
- Added letter 'd' as second status letter on mailbox menu
for delivery status notification.
- Changed how messages are saved on sync_mbox()
- Added question
Move read notifications to "dsn" folder? (y/n)
or
Move read notifications to "dsn" or r)eceived folder? (y/n/r)
- Question
Keep unread message in incoming mailbox? (y/n)
apply only to same type messages (normal or dsn)
than which unread messages are moved to received
or dsn folder.
* If
Move read messages to "received" folder? (y/n)
or
Move read notifications to "dsn" folder? (y/n)
is answered 'n' (no), then also unread messages
are also kept, even when question
Keep unread message in incoming mailbox? (y/n)
is answered 'n' (no).
- Changed question
Keep unread message in incoming mailbox? (y/n)
to
Keep unread notifications in incoming mailbox? (y/n) y
when all unread messages are delivery status
notifications.
- Changed initialization of "receivedmail" and "sentmail"
elmrc options.
- Changed how default target is handled on save()
- Added "dsn" to l)imit criteria.
- Added lib/sortlist.c
- Added alloc_sort_list(), free_sort_list(),
prealloc_sort_list(), sort_list_len(),
get_sort_list_item(), get_sort_list_debug_name(),
and search_sort_list_item()
to hdrs/elmlib.h and lib/sortlist.c
* search_sort_list_item() is generalization of
give_resolv_cache() from shared_libs/resolv/resolv.c
- Changed cache_items to use struct sortlist
and sortlist routines on
shared_libs/resolv/resolv.c
- Changed POP uidl cache to use struct sortlist
and sortlist routines on shared_libs/resolv/resolv.c
* Note: This implementation write uidls to file
on order. If that is read on older
versions of ELM ME+, resulting
binary tree degenerates to linear list.
- This release removes old unused UIDLs,
which are no longer on mailbox, from POP uidl cache.
- Exported GrabRead_the_file() from lib/mbox/localmbx.c
and added to hdrs/mboxlib.h
- Clear new part of allocated area
on resize_resolv_message()
- Possibly fixed valgrind reported error:
Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
by 0x7A2A746: write_message (query.c:437)
by 0x7A31F95: resolv_write_message (query.c:2547)
by 0x5CEA1D6: real_wait_select (schedule.c:2017)
by 0x5CED01D: real_wait (schedule.c:2500)
by 0x5CEEBF5: wait_for_something (schedule.c:2829)
by 0x5CF0C71: wait_for_action_or_timeout_settime_c (schedule.c:3241)
by 0x7A38CC5: resolv_wait_answer (query.c:4143)
by 0x7A3AE7F: end_query_helper (query.c:4810)
by 0x7A3B969: lookup_resolv_cache_nonblocked (query.c:5020)
by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
Address 0x8aacfc4 is 84 bytes inside a block of size 152 alloc'd
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x7A2C211: new_resolv_message_state (query.c:1051)
by 0x7A33014: give_resolv_process (query.c:2788)
by 0x7A33C0D: have_non_blocking_qm (query.c:2958)
by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
by 0x5CFE110: service_entry_hook (service_list.c:2681)
by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
by 0x5D02B37: give_service_entry5 (service_list.c:4129)
by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
Uninitialised value was created by a stack allocation
at 0x7A3114B: resolv_write_message (query.c:2359)
- Possibly fixed valgrind reported error:
Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
by 0x7A2A746: write_message (query.c:439)
by 0x7A32044: resolv_write_message (query.c:2564)
by 0x5CEA1D6: real_wait_select (schedule.c:2017)
by 0x5CED01D: real_wait (schedule.c:2500)
by 0x5CEEBF5: wait_for_something (schedule.c:2829)
by 0x5CF1D5A: wait_for_action_or_deadline_settime_c (schedule.c:3479)
by 0x7A38E37: resolv_wait_answer (query.c:4171)
by 0x7A3AF2E: end_query_helper (query.c:4827)
by 0x7A3BA18: lookup_resolv_cache_nonblocked (query.c:5037)
by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
Address 0x8a896b4 is 84 bytes inside a block of size 152 alloc'd
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x7A2C211: new_resolv_message_state (query.c:1053)
by 0x7A330C3: give_resolv_process (query.c:2805)
by 0x7A33CBC: have_non_blocking_qm (query.c:2975)
by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
by 0x5CFE110: service_entry_hook (service_list.c:2681)
by 0x5D000B3: gse_scan_hostname (service_list.c:3277)
by 0x5D02B37: give_service_entry5 (service_list.c:4129)
by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
Uninitialised value was created by a heap allocation
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD2445: safe_malloc (safemalloc.c:60)
by 0x7A2984B: new_resolv_query_hdr (query.c:63)
by 0x7A37181: query_one_name (query.c:3769)
by 0x7A3B9D9: lookup_resolv_cache_nonblocked (query.c:5031)
by 0x7A21396: call_lookup_resolv_cache (resolv.c:3853)
by 0x7A1F5CE: fill_query_resolv_cache (resolv.c:3081)
by 0x7A1FE26: query_resolv_cache (resolv.c:3311)
by 0x7A260AF: lookup_service_addresses2 (resolv.c:5037)
by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
by 0x5CFE110: service_entry_hook (service_list.c:2681)
- Used bzero() for union xxx_rand initialization of
real_wait_select() and real_wait_poll(). This tries
avoid valgrind's uninitialized memory warnings
(although uninitialized bytes does not really harm
because that data is feed to random generator).
- Added int nested_FreeStreamStack0; to struct streamsched
- Fixed valgrind reported error:
Invalid read of size 8
at 0x5D1C5CC: ss_FreeSocket (streamsched.c:235)
by 0x5D1DD96: free_stack (streamsched.c:757)
by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
by 0x5316A2C: mbx_close_pop (pop.c:1851)
by 0x52BB7AC: close_folder (mbox.c:1038)
by 0x48E471: close_cleanup_mbox (leavembox.c:745)
by 0x4D475A: quit (quit.c:150)
by 0x498AB5: main_messages_loop (mailbox.c:819)
by 0x498EB2: main_messages_menu (mailbox.c:964)
by 0x46A5BC: main (elm.c:1677)
Address 0x8ab2270 is 80 bytes inside a block of size 104 free'd
at 0x4C2EDEB: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD34C5: safe_free (safemalloc.c:354)
by 0x5D21E51: FreeStreamStack0 (streamsched.c:1950)
by 0x5D1DAF2: free_ss_data (streamsched.c:704)
by 0x5CE1509: remove_action0 (schedule.c:175)
by 0x5CE4942: clear_action_idx (schedule.c:812)
by 0x5CE4AEE: clear_action0 (schedule.c:837)
by 0x5D1C5C7: ss_FreeSocket (streamsched.c:231)
by 0x5D1DD96: free_stack (streamsched.c:757)
by 0x5D21D4D: FreeStreamStack0 (streamsched.c:1931)
by 0x5D21EA6: FreeStreamStack2 (streamsched.c:1966)
by 0x5316A2C: mbx_close_pop (pop.c:1851)
by 0x52BB7AC: close_folder (mbox.c:1038)
by 0x48E471: close_cleanup_mbox (leavembox.c:745)
by 0x4D475A: quit (quit.c:150)
by 0x498AB5: main_messages_loop (mailbox.c:819)
by 0x498EB2: main_messages_menu (mailbox.c:964)
by 0x46A5BC: main (elm.c:1677)
Block was alloc'd at
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x5D21660: returnSimpleStream (streamsched.c:1771)
by 0x5CCCC17: connect_remote_account (remote_mbx.c:4189)
by 0x535CC35: htrem_have_connection (hashmark_remote.c:3897)
by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
by 0x52F6F2F: select_dir_item (savefolder.c:5088)
by 0x44958D: browser_expand (browser.c:707)
by 0x44C8FA: gb_browser (browser.c:1966)
by 0x46D509: enter_helper (enter_helper.c:426)
by 0x44D600: run_browser (browser.c:2326)
by 0x450010: gen_browser (browser.c:3334)
by 0x488220: select_folder (init.c:89)
by 0x48A9F9: initialize_mailbox (init.c:980)
by 0x498E4E: main_messages_menu (mailbox.c:951)
by 0x46A5BC: main (elm.c:1677)
- Possibly fixed valgrind reported error:
Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
at 0x6505590: __sendmsg_nocancel (syscall-template.S:84)
by 0x7A2A746: write_message (query.c:444)
by 0x7A32044: resolv_write_message (query.c:2573)
by 0x5CEA1EF: real_wait_select (schedule.c:2021)
by 0x5CED04C: real_wait (schedule.c:2509)
by 0x5CEEC24: wait_for_something (schedule.c:2838)
by 0x5CF0DEC: wait_for_action_or_timeout (schedule.c:3271)
by 0x7A34BC4: free_non_blocking_qm (query.c:3235)
by 0x7A295F6: free_shared_cache (resolv.c:5948)
by 0x5CD9D80: free_shared_cache1 (shared.c:2010)
by 0x5CDA184: free_shared_caches (shared.c:2067)
by 0x50AD0E: leave (utils.c:440)
by 0x46A78B: main (elm.c:1719)
Address 0x8a72914 is 84 bytes inside a block of size 152 alloc'd
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x7A2C211: new_resolv_message_state (query.c:1058)
by 0x7A330C3: give_resolv_process (query.c:2814)
by 0x7A33CBC: have_non_blocking_qm (query.c:2984)
by 0x7A23F92: lookup_service_addresses2 (resolv.c:4654)
by 0x5CDC140: process_one_address_lookup (shared_connect.c:511)
by 0x5CDC250: shared_address_lookup (shared_connect.c:568)
by 0x5CFE13F: service_entry_hook (service_list.c:2681)
by 0x5D000E2: gse_scan_hostname (service_list.c:3277)
by 0x5D02B66: give_service_entry5 (service_list.c:4129)
by 0x535B87B: htrem_give_service_entry (hashmark_remote.c:3521)
by 0x535C89F: htrem_have_connection (hashmark_remote.c:3829)
by 0x535E5F9: hashtype_selectbr_item_remote (hashmark_remote.c:4415)
by 0x534E16F: hashmark_selectbr_item (hashmark.c:2789)
by 0x53619FE: browser_select_hashmark (hashmark_browser.c:402)
by 0x52F6C1A: select_dir_item_helper (savefolder.c:5029)
by 0x52F6F2F: select_dir_item (savefolder.c:5088)
by 0x44958D: browser_expand (browser.c:707)
by 0x44C8FA: gb_browser (browser.c:1966)
Uninitialised value was created by a stack allocation
at 0x7A17790: ??? (in /tmp/TEST/lib64/libelmme-resolv.so.1.1.54+)
- Fixed valgrind reported memory leak:
6 bytes in 2 blocks are definitely lost in loss record 125 of 3,254
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD2445: safe_malloc (safemalloc.c:60)
by 0x531C832: pop_got_line (pop.c:3636)
by 0x531CF8E: mbx_copy_header_pop (pop.c:3771)
by 0x52C5E72: copy_header_folder (mbox.c:3495)
by 0x5325CBB: read_folder_headers (headers.c:404)
by 0x52BF1EA: copy_envelope_folder (mbox.c:1842)
by 0x4C286F: read_headers (newmbox.c:1842)
by 0x4BF44A: newmbox_1 (newmbox.c:722)
by 0x48AF47: initialize_mailbox (init.c:1095)
by 0x498E4E: main_messages_menu (mailbox.c:951)
by 0x46A5BC: main (elm.c:1677)
- Fixed valgrind reported memory leak:
64 (24 direct, 40 indirect) bytes in 1 blocks are definitely lost in loss record 2,519 of 3,420
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x5D22F8D: malloc_string (string.c:85)
by 0x5D26664: dup_string (string.c:1095)
by 0x425B64: build_address_l (addr_util.c:1881)
by 0x499F53: get_to (mailmsg1.c:400)
by 0x49A363: send_msg_middle2 (mailmsg1.c:530)
by 0x49AEE2: send_msg_middle (mailmsg1.c:793)
by 0x49B091: send_msg_l (mailmsg1.c:838)
by 0x4671CE: mailbox_command (elm.c:503)
by 0x497612: main_messages_loop (mailbox.c:315)
by 0x498EB2: main_messages_menu (mailbox.c:964)
by 0x46A5BC: main (elm.c:1677)
- Adding closing socket loop to free_non_blocking_qm()
- Removed extra inc_resolv_query_item_re[f]count(ret)
from query_one_name()
( Renamed inc_resolv_query_item_recount() to inc_resolv_query_item_refcount(). )
- Fixed valgrind reported memory leak:
2,502 (144 direct, 2,358 indirect) bytes in 1 blocks are definitely lost in loss record 291 of 302
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x7A2BD79: new_resolv_query_item (query.c:918)
by 0x7A37C6E: query_one_name (query.c:3929)
by 0x7A3CE23: lookup_resolv_cache_nonblocked (query.c:5327)
by 0x7A2138A: call_lookup_resolv_cache (resolv.c:3852)
by 0x7A1F5C2: fill_query_resolv_cache (resolv.c:3080)
by 0x7A1FE1A: query_resolv_cache (resolv.c:3310)
by 0x7A2870B: check_domain_name (resolv.c:5614)
by 0x55B9A5A: process_one_check_domname (shared_mailer.c:629)
by 0x55B9D73: shared_check_dname (shared_mailer.c:699)
by 0x55C589B: check_msg_domain0 (message-id.c:2981)
by 0x55C628F: check_msg_domain (message-id.c:3109)
by 0x55CB71D: update_message_id (message-id.c:4236)
by 0x4A7E62: mail (mailmsg2.c:3625)
by 0x49ACE4: send_msg_middle2 (mailmsg1.c:737)
by 0x49AEE5: send_msg_middle (mailmsg1.c:793)
by 0x49B1C6: send_msg_argv (mailmsg1.c:883)
by 0x46A2FF: main (elm.c:1623)
- Removed extra inc_resolv_process_refcount(prx[prx_count])
from select_resolv_process()
- Fixed valgrind reported memory leak:
2,232 (32 direct, 2,200 indirect) bytes in 1 blocks are definitely lost in loss record 239 of 249
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD25D1: safe_zero_alloc (safemalloc.c:85)
by 0x7A2C728: new_resolv_process (query.c:1214)
by 0x7A338E3: give_resolv_process (query.c:2925)
by 0x7A373E8: select_resolv_process (query.c:3780)
by 0x7A384CB: query_one_name (query.c:4072)
by 0x7A3C5D3: lookup_resolv_cache_nonblocked (query.c:5199)
by 0x7A2138A: call_lookup_resolv_cache (resolv.c:3852)
by 0x7A1F5C2: fill_query_resolv_cache (resolv.c:3080)
by 0x7A1FE1A: query_resolv_cache (resolv.c:3310)
by 0x7A22184: verify_mail_domain2 (resolv.c:4117)
by 0x55B8E28: process_one_verify_domain (shared_mailer.c:415)
by 0x55B8F81: shared_verify_domain (shared_mailer.c:458)
by 0x55D021E: verify_mail_domain_util (senderhelper.c:718)
by 0x422337: build_address_verify_domain (addr_util.c:796)
by 0x423C2D: build_address_l (addr_util.c:1342)
by 0x41FEE5: argv_to_expanded (addr_util.c:150)
by 0x49B17F: send_msg_argv (mailmsg1.c:881)
by 0x46A2FF: main (elm.c:1623)
- Added free_mail_quotaroot("aroot); call to ref_mqr_imap()
- Fixed valgrind reported memory leak:
191 (56 direct, 135 indirect) bytes in 1 blocks are definitely lost in loss record 1,418 of 1,573
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5CD15D1: safe_zero_alloc (safemalloc.c:85)
by 0x5366227: malloc_mail_quotaroot (quota.c:464)
by 0x536AC97: ref_mqr_imap (imap_quota.c:1117)
by 0x536BCEC: parse_imap_quota (imap_quota.c:1407)
by 0x533EA38: parse_response (con_imap.c:2030)
by 0x5340B2F: imap_read_stream (con_imap.c:2527)
by 0x5D1BCF3: call_user_read_callback (streamsched.c:427)
by 0x5D1C3DE: call_read_callback (streamsched.c:531)
by 0x5D1E8E6: after_action (streamsched.c:1183)
by 0x5D1C5C6: read_engine (streamsched.c:596)
by 0x5CE8D40: real_wait_select (schedule.c:1991)
by 0x5CEC04C: real_wait (schedule.c:2509)
by 0x5CEDC24: wait_for_something (schedule.c:2838)
by 0x5CF0444: wait_for_any_action_settime_c (schedule.c:3359)
by 0x5D1F23C: WaitStreamFor_c (streamsched.c:1343)
by 0x5341F59: imap_wait_c (con_imap.c:2883)
by 0x5342BE1: imap_command_ok_c (con_imap.c:3101)
by 0x536D044: mbx_give_imap_quotar_list (imap_quota.c:1726)
by 0x52C96B8: give_folder_quotaroot_l (mbox.c:4346)
New elmrc option:
dsnmail
New file:
lib/sortlist.c
SUMMARY: This release fixes type=iconv option
on .elm/mime.charsets and some other bugs.
This release changes size display on
mail listing. This release changes handling
some bogus 8-bit mail with elmrc options
"use-char-set-header-field-hack" and
"use-content-type-charset-for-8bit-subject-hack".
If getifaddrs() is available, resolv
module clears name lookup cache when
interfaces addresses change (with
elmrc option "interface-change"
on "resolv:" section). Also some other
changes are included.
- Changed sysconf(_SC_SAVED_IDS) call on user_init()
at lib/read_rc.c
- Show filename from Content-Disposition header field
on "MIME structure Menu", if other data is not available.
- Changed builtin++ pager prompt on end. Specially
on case where attachments / mime parts are viewed.
- Also changed metapager prompt on case where attachments /
mime parts are viewed.
- Changed metapager return value (when external pager is used).
- Show size mail on (kilo/mega)bytes on mail listing if
number of lines is not available, because mail
on IMAP mailbox was skipped. Number of lines are shown
inside of (), number of bytes are shows with [].
- Also use prefixes "k" (kilo) and "M" (mega).
- Added struct string *size_lines_s to struct header_rec
- Added make_size_lines() to src/menu_common/message_screen.c
- Added give_message_menu_size() to src/messages/messages.c
and hdrs/me.h
- Added mt_give_message_menu_size() to src/messages/def_messages.h
- Added mt_give_message_menu_size * mt_give_message_msize_it
to struct mailbox_type
- Added folder_give_message_msize() to lib/mbox/mbox.c
and hdrs/mboxlib.h
- Added mbx_give_message_msize_folder() to hdrs/mbx_imp.h
- Added mbx_give_message_msize_default() to lib/mbox/mbox_generic.c
and lib/mbox/def_mbox.h
- Certain sender sends mail with header fields
MIME-Version: 1.0
Content-Type: text/plain
Char-Set: iso-8859-1
where subject and message body includes
8-bit (iso-8859-1) data. That Char-Set header field
is non-standard. Added elmrc option
"use-char-set-header-field-hack", which enables
processing this (bogus) header field. This
"Char-Set:" handled only on mail's header block
(non on MIME header's of body part).
- Added header_trim_whitespace_helper() to hdrs/mboxlib.h
and lib/mbox/headers.c
- Added default_body_charset to struct header_rec
- Changed prototype of mime_decode(), pgp_decode(), pgp_SG_decoder(),
pgp_EC_decoder(), null_EC_decoder(), null_SG_decoder(),
partial_decode()
- Changed prototype of encrypted_decoder(), signed_decoder(),
CT_decoder()
- Certain sender sends mail where subject 8-bit (iso-8859-1)
with headers
Subject: <8-bit iso-8859-1 text>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Sending raw 8-bit (iso-8859-1) text on subject header
field is non-standard. Added elmrc option
"use-content-type-charset-for-8bit-subject-hack" which
enables processing Subject: header field with using
Content-Type header field.
- Added unsigned int header_charset_set :1;
to struct header_rec
- Changed prototype of state_write_headers()
- Added is_cancel_installed() to lib/cancel.c
- Changed block_signals() to take account
possible cancel_data and installed SIGINT
handler for that.
- Removed menu_header_status_update() from
'v' (View parts of message) on mailbox_command()
- Removed menu_header_status_update() from
'V' (View parts of message) on mailbox_command()
* If getifaddrs() is available:
- Clear name lookup cache of libelmme-resolv.so module
when interfaces addresses change if "interface-change"
(on "resolv:" section) have value "clear-cache"
(default).
- If address is marked as interface_loopback,
then address is not added to "mailname".
- elmrc aoption "query-address-type" (on resolv:
-section) value "default" also ignores
addresses which are marked as interface_loopback
when determining if query A (IPv4) or AAAA (IPv6)
records need to be queried.
- Added interface_up to struct interface_addr
- Added interface_loopback to struct interface_addr
- Added notify_if_change_f() to shared_libs/include/shared.h
- Added notify_if_change_p to struct sl_connect_data
- Added shared_notify_if_change to hdrs/connection_imp.h
and lib/shared_connect.c
- Added possible fix to cs_find_pattern_from_unknown()
- Added possible fix to cs_add_streambyte_to_s_iconv()
- Added possible fix to cs_soft_reset_s_iconv()
- Added possible fix to cs_streamclip_from_iconv()
- Added missing ...->cs_check_length_it() call to
string_to_long()
- Added ...->cs_check_length_it() calls to
cat_strings_internal()
- Fixed broken type=iconv option on .elm/mime.charsets
(that was not implemented)
- Added CS_charset_type_f() to shared_libs/include/shared.h
- Changed cs_first_type to cs_charset_type on
struct sl_base_data
- Fixed compress_unicode() on case where zero length words
was passed to it.
New elmrc options:
use-char-set-header-field-hack
use-content-type-charset-for-8bit-subject-hack
resolv:interface-change
SUMMARY: This release fixes some parsing on address
prompts and other bugs. This release changes
multipart/related handling and mailcap
programs prompt. This release adds X-Mailer:
to ~/.elm/elmheaders file and header editing
screen. Also elmconfwriter command includes
-b<backup-suffix> option. New elmrc
options are "program-identification" and
"pagerelated". Also some other changes
are included.
- Added Configure test for __int128 type.
- If __int128 is available, use that on generation of
left side (local part) of message id. That is used
when {localspec} on "generate-message-id" option
is either "md5" or "/dev/urandom". When __int128
used these options produce left part without
dot ('.'). That means there is 1 dot ('.') separated
"word" on local part ( left side ) of message id.
Otherwise when unsigned long is 64 bits, there
is 2 dot ('.') separated "word" on local part
( left side ) of message id. And if unsigned long
is 32 bits, there is 4 dot ('.') separated "word"
on local part ( left side ) of message id.
- Address prompts accepts space as address separation
but also accepts form
phrase <address>
Fixed bug where extra space after <address> caused
that to be interpreted as two addresses 'phrase'
and '<address>'. That is on
update_expanded_from_edit_buffer().
- Prompt mailcap programs when metamail is required, but
not available. Causes that for unsupported
multipart/related have mailcap used on text/html part. Note
that this does not work correctly, because related parts are
not available.
- Report unsupported multipart and other types on mailcap
programs prompt if it caused that metamail was required.
* Note that setting elmrc option "pagemultipart" causes these
unknown multipart types are not considered unsupported.
Handling of "multipart/related" is controlled by
elmrc option "pagerelated".
- Moved NOTPLAIN_* macros from hdrs/elm_defs.h
to hdrs/addrlib.h
- Added -b<backup-suffix> option to elmconfwriter. Elmconfwriter
checks first that there is no files in form
<config file><backup-suffix> exists when -b<backup-suffix> option
is used.
- Command elmconfwriter -lb<backup-suffix>
can be used to make backup of config files.
- Option -b<backup-suffix> without -l option (list
config files) causes that config
file <config file> is preserved as
<config file><backup-suffix> when file <config file> rewritten.
- Added change_file_utime() to lib/mbox/utime_util.c
- Changed newmail to use change_file_utime()
- Changed fbrowser_selection_is_mbox(), mbx_move_temp_file()
to use change_file_utime()
- Changed prototype of elm_chown
- Added variable CHOWN_neg1 (constant)
- Tried fix usr1_signal() and usr2_signal() so that they
do not hang (looping).
- Allowed
X-Mailer:
header field on ~/.elm/elmheaders file and on
'invoke e(d)itor' buffer on header editing screen.
Note however that ~/.elm/elmheaders file is used both on
elm and fastmail -commands.
This overrides default value of X-Mailer: header field.
If empty field is given, X-Mailer: header field is not
added when mail is sent.
- Added struct string *xmailer to struct mailing_headers
- Added
X-Mailer:
header field to edit buffer used by 'invoke e(d)itor' on
header editing screen. This is added to screen
only if there is value on X-Mailer: header field.
This is supported on static struct header_info
header_types[] on lib/addr/headers.c.
- Added elmrc option "program-identification".
Option includes list of keywords:
none None of values are selected
X-Mailer Add X-Mailer: header field
version Add version information to header
field
User-Agent Add User-Agent header field
The "program-identification" elm.rc option
accepts two forms:
- Absolute form where used options are listed
- Additive form where changes from compile
time default are listed:
+X-Mailer -X-Mailer
+version -version
+User-Agent -User-Agent
These two forms can not be mixed.
- Note that also message-id domain, when
it is msg-id.elmme-mailer.org, identifies program.
Also X-ELM-OSV: header field, if generated,
identifies program.
- Added generation of
User-Agent: elmme/{libversion} ({X-Mailer})
header field. This requires that on
"program-identification" mentions this header field.
This header fields can not given
on ~/.elm/elmheaders file or on 'invoke e(d)itor'
buffer on header editing screen.
- Added char * encoded_user_agent to struct mailing_headers
- Added sndhelper_update_user_agent() to lib/mailer/senderhelper.c
and hdrs/mailerlib.h
- Added "User-Agent" to static struct header_info header_types[]
on lib/addr/headers.c
- Fixed getsockname() test on Configure
- Added elmrc option "pagerelated". This control handling
of multipart/related messages. Option have values
no May use metamail, if available.
yes Try page first (or start) part,
single-part Try page single part
Default value is "single-part".
NOTE: multipart/related is not supported, and related parts are not
"passed" to first (or start) part.
- Note that multipart/related is used normally with text/html as
first part. That is not supported, and also not work when mailcap
is used for text/html.
> This is also known as MHTML.
- When multipart/related have only single part (that is start part),
using multipart/related is superfluous. In that case multipart/related
is not required, and can be replaced with that single part.
RFC 2387: The MIME Multipart/Related Content-type
Also boolean ON, OFF, TRUE, FALSE, YES and NO values are allowed
on elmrc option "pagerelated".
- Added struct message_id * content_id
to struct mimeinfo
- Changed prototype of parse_mime_headers1(), mime_parser_parse(),
mpar_parse(), mime_read_header()
- Changed prototype of mpar_parse()
- Fixed set_out_state_line_mode() so that NULL range parameter
does not reset current range.
- Added "DKIM-Signature:" to default weedlist.
- Fixed incorrect calls of change_helper_3()
on terminal_switch_to() which caused memory corruption.
- Added
unsigned busy:1;
to struct domain_info on lib/mailer/message-id.c
- Fixed case where check_msg_domain0() was called with domain
name (pointer), which was same than dompart field
on struct domain_info;
New elmrc options:
program-identification
pagerelated
New file:
lib/mbox/utime_util.c
Undo Elm ME+ 2.5 PLalpha51a patch before applying this patch.
SUMMARY: This release collects patch Elm ME+ 2.5 PLalpha51a,
adds generation of "Message-ID:" -header field,
adds "Message-ID:", "Expires:", "Date:",
"In-reply-to:", and "References:" -header fields
to 'invoke e(d)itor' buffer on header editing screen
and adds --messages={file} and --transaction={file}
arguments to command line of elm. This release changes
pager date and time display on pager title line and
changes fastmail -command. This release adds TLS 1.1
and 1.2 alternatives to libelmme-tls module. New elmrc
options are "valid-msg-id-domains", "generate-message-id",
"pager-time-display" and "address-lookup". Also
added "default-tls-version" elmrc option to "tls:" section.
Also some other changes and fixes are included.
- Changed Va_start() / va_end() usage on gen_browser()
> This fixes crash on f)ilename command on
Elm 2.5 style file browser:
SIGNAL PANIC in signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 7FBC6A31301E 4F108B 7FBC69AAACB0 7FBC69AFCDFA 7FBC6A30C337
continues: 44D2EE 4502A0 47372E 46470A 490DE5
continues: 4925FE 466D3A 7FBC69A95F45 41F1A9
backtrace:
/usr/local/lib/libelmme-base.so.1.1.51(panic+0x1de)[0x7fbc6a31301e]
elm(segv_signal+0x80)[0x4f108b]
/lib/x86_64-linux-gnu/libc.so.6(+0x36cb0)[0x7fbc69aaacb0]
/lib/x86_64-linux-gnu/libc.so.6(strlen+0x2a)[0x7fbc69afcdfa]
/usr/local/lib/libelmme-base.so.1.1.51(elm_smessage+0x1025)[0x7fbc6a30c337]
elm[0x44d2ee]
elm(gen_browser+0x73b)[0x4502a0]
elm(save+0x834)[0x47372e]
elm(mailbox_command+0x1cae)[0x46470a]
elm[0x490de5]
elm(main_messages_menu+0x165)[0x4925fe]
elm(main+0xf13)[0x466d3a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fbc69a95f45]
elm[0x41f1a9]
Press a <enter> to abort or <enter> to exit:
Crash occurs on x86_64 (amd64) architecture on Linux.
Crash does not occur on i386 architecture on Linux.
- Changed Va_start() / va_end() usage on folder_browser()
- Added
struct message_id * message_id;
struct digest_proc * message_digest;
struct expanded_date * date;
to struct mailing_headers on hdrs/addrlib.h
- Added write_msgid_header(), write_date_header()
to lib/addr/write_hdr.c and hdrs/addrlib.h
NOTE: A header fields Date: and Message-ID: are generated
before "Mail Preview Screen" entered. Therefore Date:
header field does not reflect mail sending time. A header
fields Date: and Message-ID: are always same on
"Mail Preview Screen", on sent mail and on saved copy.
- Changed static struct header_info header_types[]
on lib/addr/headers.c so that Message-ID: is also
allowed on .elm/elmheaders (although that is not very
useful) or on 'invoke e(d)itor' buffer on
header editing screen.
- Added
Message-ID:
to edit buffer used by 'invoke e(d)itor' on
header editing screen. This is supported on
static struct header_info header_types[]
on lib/addr/headers.c.
- Added is_whitelisted_msgid_domain() to
to lib/addr/outheaders.h and to hdrs/addrlib.h
- Added elmrc option "valid-msg-id-domains" to
lib/addr/init.c
- Added elmrc option "generate-message-id" to
lib/mailer/init.c
- Elm ME+ generates message-id header field
when sending mail. This is controller by
new elmrc option "generate-message-id".
Message-id domain part is checked from
DNS when
use-mailer-library = smtp resolv
is used. Id domain part of message-id
header field is listed on new elmrc option
"valid-msg-id-domains", then domain part is
accepted without DNS check.
See also chapter "Message-ID generation"
- Configure now asks fall back domain name for
message-id. msg-id.elmme-mailer.org is suggested.
- Added check_domain_name() to shared_libs/resolv/resolv.c
- Added "RSA Data Security, Inc. MD5 Message-Digest
Algorithm" from
RFC 1321: The MD5 Message-Digest Algorithm
and modified that to work on 64-bit machine. Test
suite on original code produces wrong hashes.
- Possible fix to RC_fill_enum_values() on
shared_libs/resolv/resolv.c
- Possible fix to verify_mail_domain2() on
shared_libs/resolv/resolv.c
- Added macros DEBUG_CHECK_INIT() and DEBUG_CHECK()
to hdrs/elmlib.h
- Changed handling of valid-domains elmrc option.
Even when some item on list starts with dot (.),
name stated with dot (.) does not have accepted.
When .domain is given on valid-domains elmrc option
it marks {anything}.domain as valid domain, but
{anything} can not be empty.
- Moved message_id_domain() and message_id_left()
from lib/addr/def_addr.h to hdrs/addrlib.h
- Added free_digest_proc(), inc_digest_proc_refcount(),
start_digest_proc(), feed_digest_proc(),
len_digest_proc(), mode_digest_proc(),
end_digest_proc(), result_digest_proc()
digest_proc_equal(), malloc_digest_proc(),
digest_type()
to hdrs/elmlib.h and lib/digest_wrapper.c
- Exported name_ok() from lib/service_list.c
as host_name_ok().
- Changed mail() on src/mailmsg2.c
- Added digest_feed_string() to hdrs/elmlib.h and
lib/string.c
- Added cs_digest_feed_from_string() to hdrs/cs_imp.h
- Added digest_feed_str(), digest_feed_references(),
digest_feed_message_id(), digest_feed_addrs(),
digest_feed_expires_hdr()
to hdrs/addrlib.h and lib/addr/digest.c
- Added query_s_mailer_info() to hdrs/mailerlib.h
and lib/mailer/mailer.c
- Added mailer_info_s_query_hook() to hdrs/mailer_imp.h
- Added Configure test for getsockname()
- Added set_address_from_gen_helper2() to hdrs/connection_imp.h
and lib/remote_mbx.c
- Added local socket address (result of
getsockaname()) to struct remote_account
- local address (result of getsockaname())
is now included to transcript file
(file given with -X option).
- Submission mailer's check for MI_REMOTE_MAILER
implementation for query_mailer_info() now
also check that local and remote address
of socket is same.
- Added verify_library_prefix() to lib/shared.c and hdrs/shared_imp.h
- Added shared_check_dname() and mailerdom_verify_lib_status()
to lib/mailer/shared_mailer.c and hdrs/mailerlib.h
- Added new_expanded_date(), free_expanded_date(),
get_expanded_date_value(), get_expanded_date_cached_time(),
get_expanded_date_source()
to lib/addr/outdate.c and hdrs/addrlib.h
- Added date_hdrval() to lib/addr/date.c and
hdrs/addrlib.h
- Added digest_feed_date_hdr() to lib/addr/digest.c
and hdrs/addrlib.h
- Added expanded_time_hdrval() to lib/addr/date.c
and hdrs/addrlib.h
- Changed add_expires_hdr()
- Changed parsing of Expires: -header on .elm/elmheaders
- Added
Expires:
to edit buffer used by 'invoke e(d)itor' on
header editing screen. This is supported on
static struct header_info header_types[]
on lib/addr/headers.c.
- Allow "x days" as value for Expires: -header
on edit buffer.
- Possible fix for expval_expires()
- Added add_date_hdr() to lib/addr/outheaders.h
- Changed static struct header_info header_types[]
on lib/addr/headers.c so that Date: is also
allowed on .elm/elmheaders (although that is not very
useful).
- Added
Date:
to edit buffer used by 'invoke e(d)itor' on
header editing screen. This is supported on
static struct header_info header_types[]
on lib/addr/headers.c.
- Fixed skipping of comments between headers
on edit buffer used by 'invoke e(d)itor' on
header editing screen.
- Fix for parse_parts_date_time(), wday number was
returned wrongly.
- Avoid
"Failed to leave folder: Try to quit again ? ([P]anic/y/n) n"
when
"Move read messages to "received" folder? (y/n)"
is canceled with ctrl-C
- Added to sync_mbox() return status sync_mbox_cancel (-4).
- Changed sync_mbox() so that it does not
call emergency_exit() when EOF is send from user input.
- Added to sync_mbox() return status sync_mbox_EOF (-5).
- Changed real_save() so that it does not
call emergency_exit() when end_keep_folder()
fails. Also real_save() does not close folder
when end_keep_folder() fails.
- Added --messages={file} argument to elm.
This logs some messages (usually errors)
shown.
- Added open_messages_log(), close_messages_log()
to hdrs/me.h and src/out_utils.c
- Added --transaction={file} argument to elm.
This is same than -X {file} option.
- Added free_transaction_file() to hdrs/elmlib.h
and lib/remote_mbx.c
- free_transaction_file() is called from
free_rc_options().
- Changed some time() calls.
- Check on can_open() that userid and groupid have set.
- Set close-on-exec flag on set_transaction_file() and
init_debug().
- Avoid
Failed to leave folder!
and then
Failed to leave folder: Try to quit again ? ([P]anic/y/n) n
on closing/leaving folders
when several folders are open and some of them
are read only. If just read only folder was open
that produced already
Folder XXXXXX is read-only and unchanged.
- Added "-X transcript/transaction file" parameter
to fastmail. This is useful when mailer=submission
is used. Same option is also on elm, newmail and frm
(on these cases transcript/transaction file will
include passwords). Currently mailer=submission
does not support SMTP AUTH, so there is no passwords
on transcript/transaction file on that case now.
- Added Message-ID: -generation to fastmail.
- Use DEFAULT_BATCH_SUBJECT also on fastmail.
- Added write_common_mailing_headers() to
lib/mailer/write_common.c and hdrs/mailerlib.h
- Used that on elm's src/mailmsg2.c and
on fastmail.
Note: If nohdrencoding is set on elmrc, now
also fastmail (as elm does) adds
X-ELM-OSV: no-hdr-encoding=1
to outgoing mails.
- Moved add_parameter() from src/mime_encode.c
to lib/mailer/mime_encode.c
- Added feed_common_mailing_headers() to
lib/mailer/feed_common.c and hdrs/mailerlib.h
- Used that on elm's src/mailmsg2.c and
on fastmail
- Added -H option to fastmail. If set, only
Return-Path: -header field is read from
~/.elm/elmheaders file and other header fields
are ignored.
- Added similar generation of From: and Sender:
header fields to fastmail than it is on
elm -command. Global elm.rc option "add-sender"
is now used also on fastmail.
- Added sndhelper_get_sender(),
sndhelper_handle_sender() to
lib/mailer/senderhelper.c and hdrs/mailerlib.h
- Used that on elm's src/mailmsg2.c and
on fastmail
- Moved build_address_classify_domain(),
build_address_classify_message(),
build_address_cancel_mode(),
verify_mail_domain_util() from
hdrs/me.h and src/addr_util.c to
lib/mailer/senderhelper.c and hdrs/mailerlib.h
- Changed static struct header_info header_types[]
on lib/addr/headers.c so that In-reply-to: and
References: are also allowed on .elm/elmheaders
(although that is not very useful) or on 'invoke
e(d)itor' buffer on header editing screen.
- Added In-reply-to: and References: to
'invoke e(d)itor' buffer on header editing
screen. This is supported on
static struct header_info header_types[]
on lib/addr/headers.c.
- Moved print_edit_string(), add_addr_header(),
add_string_header(), edit_headers_on_editor()
from src/hdrconfg.h to src/edithdr.c
- strftime() format specifier %r (The time in
a.m. or p.m. notation) produces 12-hour clock
without AM/PM notification on fi_FI.UTF-8
locale (also %p produces empty result).
> Changed default to 24-hour clock (without
seconds).
- Added elmrc option "pager-time-display".
Option have values
legacy (same than month-day-year-12h)
default (same than month-day-year-HH-MM)
month-day-year-12h month day, Year 12h (am/pm)
strftime %b %d, %Y %r
month-day-year-24h month day, Year 24h
strftime %b %d, %Y %T
month-day-year-HH-MM month day, Year HH:MH
strftime %b %d, %Y %R
preferred Local preferred format
strftime %c
day-month-year-12h day month year 12h (am/pm)
strftime %d %b %Y %r
day-month-year-24h day month year 24h
strftime %d %b %Y %T
day-month-year-HH-MM day month year HH:MM
strftime %d %b %Y %R
YYYY-MM-DD-HH-MM numeric YYYY-MM-DD HH:MM
YYYY-MM-DD-HH-MM-SS numeric YYYY-MM-DD HH:MM:SS
Sender's timezone is appended to time.
This option controls how pager show message
date and time on title line (top line) when "titles"
elmrc option have value ON (default).
- If Date: is unparsable, pager no longer show dummy
date and time on title line.
- If Date: is parsable, but year is too early or
year is too late (time_t overflows on 32-bit
systems), pager shows text "year " and year number
on place of date and time on title line (top line).
- Replaced elm_date_str() with elm_date_text().
- elm_date_text() will report "year xxxx" if date value
is unsupported or overflow, but year is available
(from time_menu_year at struct header_rec)
- Changed that setting add-in-reply-to-phrase does not
use elm_date_str()'s or elm_date_text()'s strftime
for phrase time used on in-reply-to reply header field. Result
of that is locale dependent. Changed that this
uses date: -header format on phrase (actually
implemented via elm_date_text(), but not available as
"pager-time-display" value).
- Added give_name_from_sockaddr() to lib/service_list.c
and hdrs/connection_imp.h
- Added elmrc option "address-lookup".
Possible values are:
normal Currently same than
"gethostbyaddr"
gethostbyaddr Use getgostbyaddr()
getnameinfo Use getnameinfo()
This option specifies how translation from ip-address
to hostname is done. Default value "normal" specifies
that normal address -lookup API (that is gethostbyaddr())
is done.
Both gethostbyaddr() and getnameinfo() works
also with IPv6 (on Linux). getnameinfo() is newer
interface, but it can return only one name. gethostbyaddr()
may return several names. Seems that getnameinfo()
returns first name from /etc/hosts even
when this is not best choice.
This is currently only used when "generate-message-id"
have {domainspec} value "default" and "mailer"
is "submission" and that connection is not local.
- Added give_SOCKADDR_ptr_as_string() to
lib/service_list.c and hdrs/connection_imp.h
- Do not ask
Can I test if your mailer supports DSN options: -N -R -V?
on Configure if selected mailer is "none".
- Changed Configure (actually shared_libs/tls/config)
so that it detects also on Ubuntu 18.4
that OpenSSL is available on system directory.
- OpenSSL seems not include RAND_egd_bytes() on Ubuntu 18.4.
Now Configure (actually shared_libs/tls/config) tests
that RAND_egd_bytes() can be linked.
- libelmme-tls module only used SSLv23_client_method() and
TLSv1_client_method(). Added Configure (actually shared_libs/tls/config)
test that
SSLv23_client_method()
TLS_client_method()
TLSv1_client_method()
TLSv1_1_client_method()
TLSv1_2_client_method()
can be linked.
- Changed prototype of create_TLS_stream()
- Changed libelmme-tls module handle more protocol versions.
- "tls:starttls-version" and "tls:tls-version" parameters
of global elm.mailservices and user's ~/.elm/mail.services
file now accepts new values:
tls-1 TLS 1 protocol
tls-1.1 TLS 1.1 protocol
tls-1.2 TLS 1.2 protocol
These "tls:starttls-version" and "tls:tls-version" parameters
also accepts old values:
none disables STLS or STARTTLS
ssl SSL or TLS, semantic varies
tls TLS, semantic varies (default)
See details from shared_libs/tls/README.ME+ file.
Default "tls" means that protocol TLS 1 is used or with
OpenSSL 1.1 that protocol TLS 1 or newer is used. Value
"ssl" probably means with OpenSSL 1.0 or older that
SSL 2 client hello packet is used.
NOTE: Configure (actually shared_libs/tls/config) disables
by default
TLSv1_client_method(),
TLSv1_1_client_method(), and
TLSv1_2_client_method()
on Ubuntu 18.4 because them are deprecated. This assumes
that compiler gives "is deprecated" message and user agrees
disabling on Configure prompt.
( However SSLv23_client_method() seems not produce
"is deprecated" message. )
- Added "default-tls-version" elmrc option
to "tls:" section. This option accepts values:
ssl SSL or TLS, semantic varies
tls TLS, semantic varies (default)
tls-1 TLS 1 protocol
tls-1.1 TLS 1.1 protocol
tls-1.2 TLS 1.2 protocol
This is used, if "tls:starttls-version" and
"tls:tls-version" parameters does not exists on
global elm.mailservices or user's ~/.elm/mail.services
file for particular host and service.
- Changed that Configure puts UU directory to build-directory when
-O option is used and not source directory when checking
that package is complete
- Added $dummydomain to Configure. This is used if Configure
defaults to placeholder domain. That is '.localdomain'.
- Added matches_dummy_domain() to lib/mailer/senderhelper.c
and hdrs/mailerlib.h. That returns ".localdomain" if domain
ends .localdomain and Configure or setup_names() selected that
for placeholder domain. This is used for avoiding DNS
lookup.
New elmrc options:
address-lookup
generate-message-id
valid-msg-id-domains
pager-time-display
tls:default-tls-version
New files:
lib/addr/md5_global.h
lib/addr/md5.h
lib/addr/md5c.c
lib/addr/md5_wrapper.c
lib/digest_wrapper.c
hdrs/digest_imp.h
lib/mailer/message-id.c
lib/addr/digest.c
lib/addr/outdate.c
lib/mailer/write_common.c
lib/mailer/feed_common.c
lib/mailer/senderhelper.c
src/edithdr.c
shared_libs/tls/tlsconf.h.SH
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes crash on f)ilename command
on Elm 2.5 style file browser which occurs
on x86_64 (amd64) architecture on Linux.
- Changed Va_start() / va_end() usage on gen_browser()
> This fixes crash on f)ilename command on
Elm 2.5 style file browser:
SIGNAL PANIC in signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 7FBC6A31301E 4F108B 7FBC69AAACB0 7FBC69AFCDFA 7FBC6A30C337
continues: 44D2EE 4502A0 47372E 46470A 490DE5
continues: 4925FE 466D3A 7FBC69A95F45 41F1A9
backtrace:
/usr/local/lib/libelmme-base.so.1.1.51(panic+0x1de)[0x7fbc6a31301e]
elm(segv_signal+0x80)[0x4f108b]
/lib/x86_64-linux-gnu/libc.so.6(+0x36cb0)[0x7fbc69aaacb0]
/lib/x86_64-linux-gnu/libc.so.6(strlen+0x2a)[0x7fbc69afcdfa]
/usr/local/lib/libelmme-base.so.1.1.51(elm_smessage+0x1025)[0x7fbc6a30c337]
elm[0x44d2ee]
elm(gen_browser+0x73b)[0x4502a0]
elm(save+0x834)[0x47372e]
elm(mailbox_command+0x1cae)[0x46470a]
elm[0x490de5]
elm(main_messages_menu+0x165)[0x4925fe]
elm(main+0xf13)[0x466d3a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fbc69a95f45]
elm[0x41f1a9]
Press a <enter> to abort or <enter> to exit:
Crash occurs on x86_64 (amd64) architecture on Linux.
Crash does not occur on i386 architecture on Linux.
- Changed Va_start() / va_end() usage on folder_browser()
Undo Elm ME+ 2.5 PLalpha50a patch before applying this patch.
SUMMARY: This release collects patch Elm ME+ 2.5 PLalpha50a,
fixes crash when mailbox is opened with -Oimaps://...
option, supports IMAP quotas (RFC 2087), delays
deletion of temp files used by internal mailcap,
if view command completes too fast. New elmrc options
are "show-mail-quota" and "mailcap-tempfile-lifetime".
This releases adds new command 'Eu' to show mail quota
(not affected by elmrc option "show-mail-quota").
Also some other changes and fixes are included.
- "newmail core dumps in elmME+.2.5.alpha50 on CentOS 7."
Reported by: Noam G. Nudelman
> Fixed crash on prepare_read_folder()
when called from "frm", "newmail" or
"readmsg".
- Small fix for span_line() and span_words()
on src/pager/span_line.c
- Small fix for span_helper()
on src/pager/span_range.c
- Fixed error where opening folder with
elm -Oimaps://username@server/INBOX
produces
SCREEN PANIC in .../src/screen/menu_param.c:30:mp_lookup_any1
>>>Bad type
Call stack: B7514D11 812D83C 812D970 813AF41 813761C
continues: 8105015 812FB88 8130EBA 8119377 80C3D5F
continues: 80C5AF3 809F466 B72B5AF3 805EE91
backtrace:
/usr/local/lib/libelmme-base.so.1.1.50.1(panic+0x180)[0xb7514d11]
elm[0x812d83c]
elm(mp_lookup_integer+0x26)[0x812d970]
elm(mc_screen_print_mbx_line+0x44)[0x813af41]
elm(mcommon_screen_print_menu_line+0x3b)[0x813761c]
elm(hdr_show_current+0x154)[0x8105015]
elm[0x812fb88]
elm(menu_header_change+0x1fc)[0x8130eba]
elm(get_page+0xf1)[0x8119377]
elm[0x80c3d5f]
elm(url_messages_menu+0xf1)[0x80c5af3]
elm(main+0x905)[0x809f466]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb72b5af3]
- Added elmrc option "show-mail-quota".
- Check IMAP quota when mailbox is opened if
elmrc option "show-mail-quota" have value
"on-open".
RFC 2087: IMAP4 QUOTA extension
- Option "show-mail-quota" values are:
off Does not show mail quota on
mailbox open (command 'Eu'
still works).
on-open Shows mail quota (if supported)
on mailbox open (default).
- Note that mailbox may have a mail quota even
when it is not displayed.
- Mail quota display does not show unit of
mail usage or quota. That is not available.
- Command 'Eu' shows quota usage. This is available
also when "show-mail-quota" have value "off".
- Added connection_set_reset_quota() to lib/mbox/connection.c
- Added free_mail_quota(), free_mail_quotaroot_list(),
free_mail_quotaroot(), free_mail_quota_item(),
inc_mail_quota_refcount(), inc_mail_quotaroot_list_refcount(),
quotaroot_list_len(), quotaroot_list_item(),
quotaroot_list_mquota(), quotaroot_name(),
quotaroot_item_count(), quotaroot_item(), quota_item_name(),
quota_item_values(), mail_quota_unlink_con(),
inc_mail_quotaroot_refcount(), inc_mail_quota_item_refcount()
to lib/mbox/quota.c
- Added give_folder_quotaroot_l(), have_folder_quota()
to lib/mbox/mbox.c
- Added menu_redraw_done() to src/screen/context.c
- Message
Checking mailbox ...
is shown on screen when mailbox quota is read
after 0.5 second delay if remote mailbox is stalled.
- Removed some emergency_exit() calls from change_file()
on src/quit.c
- Added some prototypes to nls/gencat/genlib.c and nls/gencat/gencat.h
- Changed newmbox_1() do not call rm_temps_exit()
when reading of new mailbox fails (however on resync
still calls rm_temps_exit() when reading of mailbox
fails).
- Added struct menu_context * page; to struct counter_data
on src/newmbox.c
- Fix cleanup of struct counter_data on failure.
- Fixed EOF handling on verify_remote_url()
- Use conv_from_imap_name() on imap_open_connection()
at lib/mbox/imap.c
- Added '%zu' to parse_format_args() and
convert_number() on lib/output.c (for size_t)
- Added '%zu' to SKIP_WIDTH() on lib/debug.c
- Replaced int long_f with enum width_type long_f
on struct format_elem
- Replaced
long len_or_value;
with
uint32 value;
size_t str_len;
on struct imap_token. 'number' on
RFC 1730 (IMAP) is unsigned 32-bit integer.
- Replaced
long literal_len;
with
uint32 wanted_literal_len;
on struct IMAP_CON
- Exported
const size_t size_MAX
from lib/safemalloc.c;
- Replaced
int read_len;
with
size_t read_len;
on
struct Read_Buffer
- Changed prototype of cut_line() to use size_t
- Changed tokenize() to not use
safe_malloc() to allocate literal.
- Changed ReadFromSocket() to not use
safe_realloc() to allocate buffer
- Close connection, if literal len >= INT_MAX
when reading from IMAP connection
- Changed tokenize() to not use strtol()
to parse literal length or other imap numbers.
Added parse_imap_number() for that.
- Added safe_array_size() to lib/safemalloc.c
- Changed parse_response() to not use
safe_array_realloc() when handling
EXISTS response.
- Changed debug_level_check() so that -d{class}:{level}
have preference over -d{level} command line flag.
- Do not call eval_condition() from
signal handler on loc_info(), added
int maybe_signal parameter
> However if wait_can_signal is set,
memory allocation is still safe.
- Added int maybe_signal parameter
to terminal_can_switch(), give_display_charsets(),
switch_display_charset(), set_display_charset(),
terminal_switch_to(), terminal_can_switch_to()
- get_charset_MIME_name() may be called from signal
handler
- Added "mailcap-tempfile-lifetime" elmrc option which
specifies minimum time on seconds which
temporary file is kept before it is deleted
when using internal mailcap. This is only available
if system supports poll() or select(). If mailcap view
commands exits before "mailcap-tempfile-lifetime" seconds,
deletion of temporary file is delayed. This assumes that
mailcap view command is used only to launch actual
viewing application, that file is opened later.
If system supports poll() or select(), default value
is 5 seconds.
- Added alloc_delay_unlink(), free_delay_unlink(),
delay_unlink_add_name(), delay_unlink_mark_done(),
inc_delay_unlink_recount to lib/delay_unlink.c
- Added delay_unlink_from_state_decode() to
melib/state_decode.c
- Added struct delay_unlink * timer_unlink
to struct in_state_decode
- Changed const int * conditional_option_p
on struct rc_save_info_rec to union.
- Changed prototype of run_mailcap_view()
- Changed free_timed_task_handle()
- Added free_schedule() and
timed_task_alter_cleanup() to lib/schedule.c
- Changed freeing order on leave(),
rm_temps_exit(), silently_exit(),
leave_locked(), main() of Elm
- Moved
Closing connections...
Leaving mailbox ...
Checking mailbox ...
to
setup_mbx_cancel_message()
on src/network.c
- Prompt "Press a <enter> to abort or <enter> to exit: "
on panic(). This is used only when /dev/tty is open
and current pid is same that when /dev/tty opened.
- Added message
---- Debug output truncated ----
Lost XXXX characters.
to debug file if all debug output was not buffered
successfully.
- Changed debug so that source file information is printed
to debug after debug file is established (so that does not fill
debug buffer on initial debug output).
New elmrc options:
show-mail-quota
mailcap-tempfile-lifetime
New files:
lib/mbox/quota.c
hdrs/quota_imp.h
src/quotadisp.c
lib/mbox/imap_quota.c
src/command/quota_dispcmd.c
lib/delay_unlink.c
src/network.c
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes "frm", "newmail" and "readmsg"
-commands crash on startup when
prepare_read_folder() is called.
- "newmail core dumps in elmME+.2.5.alpha50 on CentOS 7."
Reported by: Noam G. Nudelman
> Fixed crash on prepare_read_folder()
when called from "frm", "newmail" or
"readmsg".
SUMMARY: This release adds new magic numbers for
JPG (EXIF), better reconnection handling
for broken IMAP connections and 'Er'
(reconnect) command. This release allows
interrupting stalled connection with
interrupt character (Ctrl-C) on new mail
check and 'X' (Quick Exit) command. Other
commands still are stuck if connection
is stalled. Also some other changes and
fixes are included.
- Changed magic number of image/jpeg on
lib/misc/mime_types.c
RFC 2046 says: "An initial subtype is "jpeg" for the JPEG format
using JFIF encoding [JPEG]."
> Also adds Digital camera JPG using
Exchangeable Image File Format (EXIF) as
image/jpeg.
- Exported wday_from_year_month_day()
from lib/addr/outheaders.c
- Changed that lib/mbox/imap.c generates
real weekday name to From -separator line
(was using "XXX" as weekday name).
- Changed mbx_copy_envelope_pop() to use
return_path_to_env_from_1() for generating From
-separator address as mbx_copy_envelope_imap()
is using.
- Changed screen update on read_headers()
- Changed header allocation on read_headers()
- Added malloc_header_rec() and free_header_rec()
to src/messages/header_alloc.c
- Fixed handling of mails which arrive to
IMAP mailbox when mailbox is read (opened).
- Changed prototype of copy_envelope_end_folder(),
mbx_copy_envelope_end_folder()
- Changed parse_body_routine() on src/newmbox.c
- If IMAP mailbox connection is broken,
after reconnection different
temp folder is used when mails
are read from mailbox.
* If different temp folder is used
all mails are no longer included
as new mails to mail listing with mails
before connection was broken.
- When POP connection is re$yncronized
different temp folder is used.
(POP mailbox also always reopen
connection when mailbox is
re$yncronized).
- If messages are EXPUNGEd from IMAP
folder, different temp folder is used
when mail is re$yncronized.
- If skipped mail is later loaded
from IMAP folder, different temp folder
is used when mail is re$yncronized.
- Added 'Er' command for reconnect broken
mailbox connections.
- Added update_selected_counter(),
found_disconnected(), ReconnectMailbox() and
ReconnectMailboxPost() to src/reconnect.c
- If IMAP / POP mailbox connection is
broken, some hint from
Use 'X' for Quick Exit
XXX disconnected and failed. Use 'Er' for reconnecting or 'X' for Quick Exit
XXX disconnected. Use 'Er' for reconnecting broken connection
XXX failed. Use 'X' for Quick Exit
is given, where XXX is some from
POP mailbox
IMAP mailbox
IMAP folder
Read-only IMAP folder
> However re$yncronize command may try reconnect
IMAP or POP mailbox connection.
- Changed prototype of
prepare_read_folder(), end_read_folder(),
copy_envelope_folder(), sessionlock_folder(),
open_folder_lock(), new_mail_check(),
flush_folder()
- Changed prototype of mbx_prepare_read_folder(),
mbx_end_read_folder(), mbx_sessionlock_folder(),
mbx_flush_folder(), mbx_flush_temp()
- Added search_previous_header(),
copy_previous_mail(), free_reconnect_mode(),
malloc_reconnect_mode() to lib/mbox/mbox.c
- Added
unsigned int was_reconnected :1;
unsigned int got_skipped_mail :1;
to struct folder_info
- Added
int uidvalidity;
unsigned int got_EXPUNGE :1;
to struct IMAP_MBX
- Changed prototype of end_edit_folder()
- Changed prototype of mbx_end_edit_folder()
- Changed sync_mbox(), usr1_signal(), usr2_signal(),
resync(), visit_mailbox_loop(), change_file()
- Added reconnect_mails() to src/newmbox.c
- Changed prototype of newmbox_1()
- Changed prototype of file_bytes()
- Changed prototype of show_last_error()
- Changed file_bytes() on lib/file_util.c
- Fixed error message on check_mailfile_size()
- Fixed error where re$yncronizing
POP mailbox shows ridiculous
large percents when loading mails.
- Added sessionlock_create_tempfolder()
to lib/mbox/mbox_generic.c
- Added mbx_prepare_read_reconnect()
to lib/mbox/remote_mbx.c
- Changed mbx_sessionlock_pop(),
mbx_sessionlock_spool(), mbx_sessionlock_imap()
- Added mbx_comp_prev_hdr_folder(),
mbx_update_prev_hdr_folder()
- Added mbx_comp_prev_hdr_default(),
mbx_update_prev_hdr_default () to
lib/mbox/mbox_generic.c
- Exported adjust_content_remaining from
lib/mbox/localmbx.c
- Added struct copy_previous_rs * reconnect_copy_previous
to struct read_folder_state.
- Changed copy_header_folder(),
copy_body_folder(), copy_envelope_end_folder()
on lib/mbox/mbox.c
- Changed new_mail_on_folder(), new_mail_check(),
main_messages_loop()
- Moved addr_is_same() from src/messages/duplicate.c
to lib/addr/duplicate.c as addr_list_is_same()
- Added message_id_to_string() to
lib/addr/message-id.c
- Added references_to_string() to
lib/addr/references.c
- Fix for debug_message() on src/elm.c
- Message
Checking new mail...
is shown on new mail check after
0.5 second delay when checking remote mailbox
(IMAP mailbox). Check may be cancelable with
interrupt character (Ctrl-C) but remote
mailbox connection may be disconnected.
- Added start_imap_command_c(), imap_command_ok_c(),
imap_clear_command_c() to lib/mbox/con_imap.c
- Message
Leaving mailbox ...
is shown on eXiting main mailbox
screen after 2 second delay if remote
mailbox is stalled. Wait may be cancelable with
interrupt character (Ctrl-C).
- Changed prototype of free_mailbox(), free_storage(),
leave_old_folder(), close_folder(),
close_connection(), free_connection(),
free_mailbox(), free_all_mailboxes(),
free_connection(), close_cached_connections()
- Changed prototype of mbx_close_folder(),
cache_close_connection(), mt_free_mailbox(),
mbx_free_folder()
- Take account artificial "From " separator line
when estimating IMAP mailfile size (temp
folder size). This affects percent display
when reading mailbox.
New files:
lib/addr/duplicate.c
src/reconnect.c
SUMMARY: This release changes date display on
mail listing and adds separator lines
to mail listing. Also this release changes
Expires: and Sender: -header field
generation. This release checks more
email addresses for mail domain
validity (when libelmme-resolv.so module
is used). New elmrc options are
"expires-have-time", "mail-menu-time",
"verify-alias-domain" and "verify-local-domain".
Also some other changes and some bug
fixes are included.
* Change from Elm 2.5
- Changed make_menu_date() to generate
Elm 2.5 style local specific date
(uses strftime).
- Changed days_ahead[_tm]() to use Elm 2.5
style algorithm where localtime()
is used first and then day is
incremented on instead of
Elm 2.4 style algorithm where
time_t values is incremented
by days * 24 * 60 *60 and
localtime() is used.
- Changed days_ahead[_text]() to generate
Elm 2.5 style local specific date
(uses strftime) for hdrconfig. This
is not used for actual Expires:
header. However %Y (year with century)
is used instead of %y (year with 2
digits).
- Changed elm_date_str() to generate
Elm 2.5 style local specific date
(uses strftime) for pager and
phrase of in-reply-to (if
"add-in-reply-to-phrase" is set). However
%Y (year with century) is used
instead of %y (year with 2 digits).
- Added year to mail listing. This is controlled
with new elmrc option "mail-menu-time". Year is
included on separator line.
- New elmrc option "mail-menu-time" knows following keywords
none None of values are selected
year-separator Show separator line with
year on date -column.
auto-separator Show separator line for
some sorting orders when
message list space is sufficient
big (21 lines).
today Show time as hh:mm on date
column instead of date if
date is today and timezone
is same. Also shows separator
with "today" if separator
lines are shown.
today-separator Show separator line for
some sorting orders when
message list space is sufficient
big (6 lines). Also show separator
when all messages are from
current year.
year-or-time Add either year or time as hh:mm
on date column when date is shown.
Time is shown when year is current and
timezone is same.
These options also accepts additive form where
changes from compile time default (or changes from
global elm.rc) are listed:
+year-separator -year-separator
+auto-separator -auto-separator
+today -today
+today-separator -today-separator
+year-or-time -year-or-time
- Separator line is not shown if all mail are from
current year. In that case that does not add
much information and just consumes one line from
mail listing. Keyword "today-separator" is
exception for this.
- Keyword "auto-separator" on elmrc option "mail-menu-time"
enables separator lines when sorting order is
"sent", "received" or "mailbox". Or when sorting
order is "reverse-" version of these. There must
be at least 21 lines available for mail listing.
- Keyword "today" on elmrc option "mail-menu-time"
causes that sent time on form hh:mm is shown
on date -column on mail listing if day, month and
year is same as today date and timezone offset is same
than on local timezone. Note that date column
shows sending date on sender's timezone which
may be different than local timezone.
- Keyword "today" together with "year-separator"
or "auto-separator" on elmrc option "mail-menu-time"
causes that separator line with "today"
on date -column. Mails are considered to
be sent today if day, month and
year is same as today date or sent time
is between of local today date start and
end.
- Keyword "today-separator" on elmrc option "mail-menu-time"
enables separator lines when sorting order is
"sent", "received" or "mailbox". Or when sorting
order is "reverse-" version of these. This
keyword causes that separator line with "today"
on date -column is used. If there is at least
one mail which is considered to be send today,
separators are send even when all mails are from
current year. There must be at least 6 lines
available for mail listing.
- Keyword "year-or-time" on elmrc option
"mail-menu-time" adds year or time after
message date to date -column on mail listing.
Time is added if year is same as on today date
and timezone offset is same than on local timezone.
Otherwise year of message is added to date column.
If time of message is added because of "today"
keyword, keyword "year-or-time" adds nothing
to date column.
- Keywords "auto-separator" and "today" are
default values for "mail-menu-time".
Separator lines is not shown if all mails
are from current year.
> Keyword "year-or-time" on elmrc option
"mail-menu-time" may work better if
"today" is disabled and keyword
"today-separator" is used instead.
That is:
mail-menu-time = -today +year-or-time +today-separator
- Added menu_header_change_page() to lib/screen/header.c
- Changed prototype of new_menu_header()
- Added hdr_line_separator_index(), hdr_show_separator(),
hdr_init_separators(), hdr_setup_line()
and hdr_setup_init() to src/screen.c
- Added mcommon_init_separators(), mcommon_separator_count(),
mcommon_screen_print_sep_line(), mcommon_get_separator_index(),
mcommon_screen_setup_menu_init() and
mcommon_screen_setup_menu_line()
to src/menu_common/mcommon.c
- Added give_menu_separator(), menu_separator_count(),
menu_separator_init(), get_menu_separator_index(),
get_today_info(), message_hdr_setup_init() and
message_hdr_setup_line()
to src/messages/messages.c
- Changed prototype of build_alias_line()
- Changed prototype of make_menu_date()
- Required width for mail number and
date columns are calculated before printing
of mail list.
- Also changed Elm 2.5 browser to use
these header setup init/line routines
to calculate width for date column.
- Replaced fbrowser_mp_cur_page menu_param
with cur_page on struct menu_anon_param.
- Replaced fbrowser_mp_headers_per_page
menu_param with headers_per_page
on struct menu_anon_param.
- Replaced fbrowser_mp_options menu_param
with options on struct menu_anon_param.
- Replaced fbrowser_mp_tlen menu_param
with time_len on struct menu_anon_param.
- Replaced fbrowser_mp_comcol menu_param
with comment_column on struct menu_anon_param.
- Added Configure test for mktime()
* Tried check that gmtime() and localtime()
returns non-NULL result. These can fail if
time_t is 64-bit and values does not fit
to struct tm for example.
- Added some fixes to src/date.c
- Added some fixes to lib/get_tz.c
- Added some fixes to lib/getarpdate.c
- Added some fixes to src/thread.c
- Added some fixes to src/elm.c
- Added some fixes to lib/mbox/imap.c
- Some changes to lib/strftime.c
- Changed parse_date_time() so it detect if
time_t overflows.
- Changed make_gmttime() return LONG_MAX
(or LONG_MIN) on overflow
- Changed parse_date_time() to return
*time_result as time_MAX on overflow or
*time_result as 0 if result is negative
(before year 1970).
- Changed prototype of parse_date_time()
- If parse_date_time() detects overflow
(or negative (before year 1970) result)
only year is printed on date -column on
mail listing.
- If time_sent is stored as time_MAX or
0 then just stored year is used for sent
time sorting.
- Also only year is printed on
on date -column thread view if there
was overflow (or negative (before year
1970) result) on some mails of thread.
- Small fix to compare_thread() on src/sort.c
- Moved most of days_ahead() on src/date.c
to days_ahead_tm() on lib/addr/date.c
- Moved days_ahead() as textual output
for hdrconfig to days_ahead_text().
This part uses strftime as on Elm 2.5.
- Moved Elm 2.4 style formatting of
days_ahead() to days_ahead_hdrval()
on lib/addr/date.c
- Added write_expires_header() to lib/addr/write_hdr.c
- Added lib/addr/outexpires.c with new_expanded_expires(),
free_expanded_expire(), get_expanded_expires_textual(),
set_expanded_expires_textual(),
get_expanded_expires_value(), get_expanded_expires_days_ahead(),
get_expanded_expires_print_time(),
get_expanded_expires_cached_time()
- Changed static struct header_info header_types[]
on lib/addr/headers.c so that Expires: is also
allowed on .elm/elmheaders (although that is not very
useful).
> If Expires: -header on .elm/elmheaders includes time,
time is included to Expires: -header on outgoing mail.
Note however that time zone is not correctly handled
and mostly ignored.
- Moved part of parse_date_time() from lib/mbox/parsarpdat.c
to new parse_parts_date_time()
on lib/addr/parsarpdat.c
- Moved lib/mbox/getword.c to lib/addr/getword.c
- If new elmrc option "expires-have-time" have set, then
time is included to Expires: -header on outgoing mail
when header is generated from Message Header Edit Screen.
- Added overflow checking to aton()
- Changed prototype (including return type) of elm_date_str()
- Changed thread view to generate
local specific date (uses strftime).
- Required width for thread number
and date columns are calculated
before printing of thread list.
- Possible fix for sort_threads()
and correspond change for ViewThreads()
on src/thread.c
- Added useful_mailname() to lib/addr/split_addr.c
- If interface addresses are added to "mailname"
global elm.rc option and they are only names
added, then add "(none)" as first value
of "mailname" global elm.rc option.
- If first value of "mailname" global elm.rc option
is "(none)" or does not include '.' then use
"hostfullname" elmrc option when sending mail.
- Small fix for smtp_run_ehlo()
- Added MI_REMOTE_MAILER to enum MI_query for
query_mailer_info()
- Added same_SOCKADDR_ptr() to lib/remobe_mbx.c
- Added elmrc option "verify-local-domain".
Values are:
no Do not verify mail domain
given on "mailname" or
"hostfullname" when sending
mail.
yes Use "verify-domain" setting
for mail domain given on "mailname"
or "hostfullname" when sending
mail.
if-remote-mailer Use "verify-domain" setting
for mail domain given on "mailname"
or "hostfullname" when sending
mail if mailer is remote
(mailer=submission and "server" is
not local).
Also boolean ON, OFF, TRUE, FALSE, YES and NO values are allowed
on elmrc option "verify-local-domain".
- Keyword "if-remote-mailer" is default value for
"verify-local-domain". Therefore local domain (as given
on "mailname" elmrc option) is verified with
"verify-domain" setting setting when "mailer"
global elm.rc option have value "submission" (and
"server" is set to something other than local host).
- Added elmrc option "verify-alias-domain". If this is
set (default), then also domain of alias expanded
address is verified (uses "verify-domain" setting).
- "special-use-domains-blacklist" elmrc option also
applies to autofilled "mailname" / "hostfullname" and these
case local recipient is not allowed (unless
"valid-domains" elmrc option overrides this).
- "special-use-domains-blacklist" elmrc option also
applies to domain of alias expanded address
(unless "valid-domains" elmrc option overrides this).
- Changed prototype of get_alias_address_expanded(),
aliases_expand_alias(), alias_stack_lookup_f(),
alias_simple_lookup(), lookup_local(),
lookup_dummy()
- Moved some code of build_address_l() to separate functions.
- build_address_l() no longer return 1 (indicating
alias expansion), when local address is handled.
This fixes -c (check alias) output so that
that "elm -c {userid}" does not claim successful
alias expansion.
- Small change to clear_error() and do_check_only()
- Added build_address_classify_domain(),
build_address_classify_message(),
build_address_is_local() and need_verify_ldomain()
to src/addr_util.c
- Also exported build_address_cancel_mode() and
verify_mail_domain_util() from src/addr_util.c
- Changed return type of mailer_restarted()
to enum restart_mailer_status.
- Changed return type of mailer_info_verify_addr()
to enum mi_vrfyaddr_mailer_status.
- Changed envelope sender handling on submission mailer.
- Added mailer_env_from_verified(),
mailer_env_from_domain(), and
mailer_env_from_angleaddr()
to lib/mailer/mailer.c
- Renamed env_from_changed() to mailer_env_from_changed()
on lib/mailer/mailer.c
- Changed prototype of mailer_info_set_ef()
- Show Return-Path (envelope sender) on
"Mail Pre-Send Screen" even when
userlevel = beginner if it is changed
(for example via ~/.elm/elmheaders).
- Changed prototype of mailer_env_from_change()
- Changed mailer_env_from_change() on lib/mailer/mailer.c
- "special-use-domains-blacklist" elmrc option also
applies to domain of envelope sender address (shown as
Return-Path: -header; unless submission mailer is
returned 250 for VRFY of that address or unless
"valid-domains" elmrc option overrides this). In
that case envelope sender address is changed to
null address (<>).
NOTE: "special-use-domains-blacklist" elmrc option does
not prevent using of mailer option verify=yes
option for envelope sender address.
- "verify-domain" and "verify-local-domain" elmrc
options also applies to domain of envelope sender
address (shown as Return-Path: -header; unless
submission mailer is returned 250 for VRFY of
that address or unless "valid-domains" elmrc option
overrides this).
> If NULL MX is returned, envelope sender address is changed to
null address (<>).
RFC 7505: "Null MX" No Service Resource Record
for Domains That Accept No Mail
> If domain does not found, just message is given (but
envelope sender address is not changed). If submission
mailer is used sending mail probably fails later
when domain of envelope sender address does not found.
- If there is errors on envelope sender (also known as
Return-Path) and 'allow-set-sender=yes' is set on
"mailer" global elm.rc option, then prompt on
"Mail Pre-Send Screen" defaults to R)eturn-path command.
- Also b)ounce -command checks envelope sender.
- Added rp_classify_domain_message() and
env_from_classify_domain(), prompt_mailmsg_page_interactive(),
mail_env_from_presend(), mail_show_env_from(),
mail_env_from_def_edit(), mail_edit_return_path()
to src/mailmsg2.c
- Changed remail() on src/remail.c
- Changed import_mailheaders() on lib/addr/outheaders.c
- Changed show_presend_headers(), presend_action()
- Added "Bounce Pre-Send Screen" to b)ounce command.
This is used, when there is Return-Path set or
editable. This is similar than "Mail Pre-Send Screen"
on m)ail command.
- Added error message in for case where
importing .elm/elmheaders header field fails.
- If header field name on .elm/elmheaders
start with '#', it is ignored. Also
`backticked` command on .elm/elmheaders
is not executed in that case.
Output of `backticked` command is not
checked for '#' character on header field name.
- Added check that addresses with domain given on
"special-use-domains-blacklist" elmrc option
are dot imported (unless "valid-domains" elmrc
option overrides this). If there is blacklisted
domain on "From:", "To:", "Cc:" "Bcc:" or
"Reply-To:" -header field, whole .elm/elmheaders
line is ignored and error message is given.
- Changed add_from_hdr(), add_to_hdr(),
add_cc_hdr(), add_bcc_hdr(),
add_replyto_hdr(), add_env_from_hdr()
on lib/addr/outheaders.c
- Moved addr_is_user() from lib/okay_addr.c
to lib/addr/okay_addr.c
- Moved split_internet_address() from lib/okay_addr.c
to lib/addr/split_addr.c
- Moved clear_split_addr() from lib/okay_addr.c
to lib/addr/split_addr.c
- Moved match_splitted_addr() from lib/okay_addr.c
to lib/addr/split_addr.c
- Moved match_local_addr() from lib/okay_addr.c
to lib/addr/split_addr.c
- Changed that shared_libs/resolv/resolvertest2.c
returns 3 when connection is refused
(errno == ECONNREFUSED) and not only on
timeout (errno == ETIMEDOUT).
- Changed ConfTool/Makefile
- Changed lib/mailer/Makefile.SH
- Changed lib/Makefile.SH
- Changed shared_libs/tls/Makefile.SH
- Changed shared_libs/smtp/Makefile.SH
- Changed shared_libs/resolv/Makefile.SH
- Changed shared_libs/iconv/Makefile.SH
- Changed utils/readmsg/Makefile.SH
- Changed utils/Makefile.SH
- Changed src/url/Makefile.SH
- Changed src/messages/Makefile.SH
- Changed src/command/Makefile.SH
- Changed src/aliases/Makefile.SH
- Changed src/list/Makefile.SH
- Changed src/screen/Makefile.SH
- Changed src/pager/Makefile.SH
- Changed src/menu_common/Makefile.SH
- Changed src/block/Makefile.SH
- Changed src/Makefile.SH
- Changed lib/addr/Makefile.SH
- Changed lib/alias/Makefile.SH
- Changed lib/mbox/Makefile.SH
- Changed lib/misc/Makefile.SH
- Changed melib/Makefile.SH
- Changed nls/gencat/Makefile.SH
- Fixed valgrind reported memory leak:
294 bytes in 2 blocks are definitely lost in loss record 246 of 280
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5C3B0CC: safe_malloc (lib/safemalloc.c:60)
by 0x52B5674: browser_local_do_stat_2 (lib/mbox/localmbx.c:603)
by 0x52B6517: browser_local_do_stat_1 (lib/mbox/localmbx.c:875)
by 0x52BBF16: fbrowser_give_entry (lib/mbox/localmbx.c:2931)
by 0x467011: fbrowser_scan_directory (src/fbrowser.c:1243)
by 0x467EAF: fbrowser (src/fbrowser.c:1628)
by 0x469F7A: fbrowser_hook_enter (src/fbrowser.c:2508)
by 0x44AD78: gen_browser (src/browser.c:3366)
by 0x47BA63: arg_to_folder (src/init.c:182)
by 0x47D70B: initialize_mailbox (src/init.c:928)
by 0x484A39: main_messages_menu (src/mailbox.c:762)
- Fixed valgrind reported memory leak:
70 (24 direct, 46 indirect) bytes in 1 blocks are definitely lost in loss record 70 of 151
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5C3B1F8: safe_zero_alloc (safemalloc.c:85)
by 0x5C76E4A: malloc_string (string.c:85)
by 0x5C784CD: cat_strings_internal (string.c:553)
by 0x5C80BF4: string_copy_character (string.c:3371)
by 0x5780454: unquote_string (parsestring.c:596)
by 0x531BBA7: hashtype_parse_kw_value_remote (hashmark_remote.c:1622)
by 0x531076B: parse_hash_mark_entries (hashmark.c:1462)
by 0x52AD5C1: hashmark_read_rc_file (init.c:147)
by 0x5C29ABD: read_rc_file (read_rc.c:4918)
by 0x47C58C: initialize (init.c:464)
by 0x45E94B: main (elm.c:1221)
- Fixed valgrind reported memory leak:
42 bytes in 1 blocks are definitely lost in loss record 173 of 283
at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5C3BA55: safe_strdup (lib/safemalloc.c:277)
by 0x52C0A7D: mbx_init_spool (lib/mbox/localmbx.c:4561)
by 0x52F71DD: real_folder_from_local (lib/mbox/common_local.c:295)
by 0x52B9F6D: browser_folder_from_local (lib/mbox/localmbx.c:2137)
by 0x52D8C70: folder_from_dir_item (lib/mbox/savefolder.c:5705)
by 0x47C153: arg_to_folder (src/init.c:288)
by 0x47DA29: initialize_mailbox (src/init.c:928)
by 0x484D57: main_messages_menu (src/mailbox.c:762)
by 0x45F546: main (src/elm.c:1489)
- Fixed segmentation fault on start up when
certain interfaces are present. Specially
allow ifa_addr pointer on struct ifaddrs to
be NULL.
Problem noted by: Jeffrey H. Johnson
- Possible fix for mailer_get_env_from()
- Changed global elm.rc option "add-sender"
to type struct dt_enumerate_info.
This option have values
no Add Sender: header only when there is
more than one address on From: -header.
yes Add Sender: header also when user
specifies From: -header or user changes
changes envelope sender address (aka Return-Path).
auto If mailer is local or mail domain can
be verified (or verify is disabled), add
Sender: header when user
specifies From: -header or user changes
changes envelope sender address (aka Return-Path).
Value "auto" is default. Also boolean ON, OFF, TRUE, FALSE, YES and NO
values are allowed on global elm.rc option "add-sender".
If there is more than one address on From: -header,
Sender: -header is always added.
NOTE: Value "auto" of elm.rc option "add-sender" also adds Sender:
-header if DNS query fails (does not get positive or negative answer).
Sender: header is not added if DNS query succeed and mail domain does
not found (or if mail domain does not accept mail) and there is
just one address on From: -header.
- When elm.rc option "add-sender" have value of "auto", domain of
Sender address may be rewritten.
- If Sender: address uses domain from "special-use-domains-blacklist"
elmrc option and global elm.rc option "add-sender" causes Sender:
header to be added, m)ail and other similar commands refuse
to send mail (unless "valid-domains" elmrc option overrides this).
- Changed prototype of from_addr_literal() and
from_addr_literal1().
- On some cases "self-cc" and "self-bcc" keyword
on hashmarks file is not used if keyword
uses domain from "special-use-domains-blacklist" elmrc option
(unless "valid-domains" elmrc option overrides this).
- If Sender: address for b)ounce command uses
domain from "special-use-domains-blacklist" elmrc option,
b)ounce command is refused (unless "valid-domains"
elmrc option overrides this).
- Moved "valid-domains" elmrc option from mailerlib
to addrlib.
- "However, a more serious problem is that as soon as there is a
blank line before the first alias in the file, not a single alias
is processed." (on OLD .elm/aliases.text file)
Problem noted by: Dirk Craeynest
* Possibly fixed get_line() on lib/alias/oldaliases.c
- Added small fix to "elm -h" text.
- Added small fix to prompt menu text of Mail Preview Screen.
- Changed make_from_addr() to check "special-use-domains-blacklist"
elmrc option (unless "valid-domains" elmrc option overrides this).
make_from_addr() returns status of that check.
- Changed prototype of make_from_addr().
- Domain of make_from_addr() result is checked on
m)ail and r)eply -commands (and similar commands
which use mail()) with elmrc options "verify-local-domain"
and "verify-domain" settings. If verify fails, confirmation is
asked with "Continue send or preview message?" -prompt.
- Added force_from_addr() to lib/mailer/outheaders.c
- Changed add_commands_help_merge() on src/command/command.c
- Added fcntl(fd,F_SETFD,FD_CLOEXEC) calls to socket
file descriptions created by socket() and socketpair().
- Added pid to debug output.
- Added clear_other_actions() to lib/schedule.c
- Clear actions on subprocess at give_resolv_process()
on shared_libs/resolv/query.c
- Clear actions on subprocess at metapager()
on src/metapager.c
* Fixed error where IMAP (or POP) connection state
was messed when external pager was used.
Problem noted by: Dirk Craeynest
- Changed change_action(), set_schedule_action() and
clear_action() on lib/schedule.c
- Replaced change_action() with change_action2()
* Added badpid_action_f * badpid_act
to change_action.
- Small fix for wait_for_something()
- Added ConfigStream0(), ConfigStream2()
- Added FreeStreamStack0(), FreeStreamStack2()
- Added setup_actions0(), clear_action0()
- Added clear_remote_account0()
- Changed Metamail text of Configure.
- "I should report that on OpenBSD, at least recent OpenBSD,
there is no sys/timeb.h include file."
Problem noted by: Jeffrey H. Johnson
> Elm ME+ have some
#ifdef BSD_TYPE
# include <sys/timeb.h>
#endif
But <sys/timeb.h> gives only struct timeb
on Linux and that is not used by Elm ME+.
Function ftime() uses struct timeb but
that system call is not used. Removed
#ifdef BSD_TYPE
# include <sys/timeb.h>
#endif
from Configure, src/date.c, src/elm.c
- Added -I option to elmconfwriter -command.
This is used together with -l to
ignore missing shared libraries
(given on use-library and use-*-library
elmrc options) and some other missing
data.
- Changed prototype of init_addrlib(),
init_aliaslib(), read_rc_file(),
post_init_check(), parse_elmrc(),
mailerfunc(), init_default_mailer(),
init_mboxlib(), init_misclib(),
do_rc_parse(), do_rc_process(),
process_delayed_blocks(), delay_lib_reg(),
do_set(), rc_eval_tail(), rc_eval_tail_cline(),
rc_eval_tail_line(), expand_dt_path(),
register_delayed(), null_option_func(),
post_init_shared_options(), nameresfunc(),
connect_mode_func(), query_mode_func()
- Changed prototype of option_func(),
rc_parse_line(), rc_parse_cline()
- Changed expand_dt_path(),
expand_map_bin(), read_rc_file(),
delay_lib_reg(), process_lib_reg()
New elmrc options:
expires-have-time
mail-menu-time
verify-alias-domain
verify-local-domain
New files:
lib/addr/outexpires.c
lib/addr/date.c
lib/addr/parsarpdat.c
lib/addr/getword.c
lib/addr/split_addr.c
doc/DOCS
Removed file:
lib/mbox/getword.c
SUMMARY: This release updates mime types list
and adds additional magic numbers
(byte sequence signatures) to
global elm.mimetypes file. Also
this release fixes panic when
s)aving to username@server. Now
this allows s)aving to #hashmark
if hashmark refers to IMAP server.
Also some other changes and some bug
fixes are included.
- Updated subtypes of application
on doc/mime.types
- Added MIME_TYPE_FONT to enum mime_major_type
at hdrs/misclib.h
- Added "font" to major_type [] at
lib/misc/mediatype.c
- Added MIME_TYPE_MODEL to enum mime_major_type
hdrs/misclib.h (model was already
on major_type [] at lib/misc/mediatype.c)
- Added MIME_TYPE_EXAMPLE to enum mime_major_type
at hdrs/misclib.h
- Added "example" to major_type [] at
lib/misc/mediatype.c ("example" is treated
like MIME_TYPE_UNKNOWN / "?unknown?" ).
- Added "chemical" to major_type [] at
lib/misc/mediatype.c (but no constant
to enum mime_major_type).
- Updated subtypes of audio
on doc/mime.types
- Added subtypes of font
to doc/mime.types
- Removed image/t38 from doc/mime.types
- Updated subtypes of image
on doc/mime.types
- Updated subtypes of text
on doc/mime.types
- Updated subtypes of video
on doc/mime.types
- Added ignore_mime_types_map() to
hdrs/misclib.h and lib/misc/mime_types.c
- Added -I mapfile to elmmimetypes
to specify list of mappings which
are ignored.
- Mapping for image/t38
is removed during installation
- Allowed several magic numbers
(byte sequence signatures) on
global {lib}/elm.mimetypes and
user's .elm/mime.types. Magic
numbers (byte sequence signatures)
must be on offset order and all
magic numbers (byte sequence signatures)
need match.
- Added additional magic numbers
(byte sequence signatures) to
application/vnd.etsi.asic-e+zip
application/vnd.etsi.asic-s+zip
application/epub+zip
application/vnd.kde.kchart
application/vnd.kde.kivio
application/vnd.kde.karbon
application/vnd.kde.kformula
application/vnd.kde.kontour
application/vnd.kde.kpresenter
application/vnd.kde.kspread
application/vnd.kde.kword
application/vnd.oasis.opendocument.database
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.formula
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.image
application/vnd.oasis.opendocument.text-master
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.chart-template
application/vnd.oasis.opendocument.formula-template
application/vnd.oasis.opendocument.graphics-template
application/vnd.oasis.opendocument.text-web
application/vnd.oasis.opendocument.image-template
application/vnd.oasis.opendocument.presentation-template
application/vnd.oasis.opendocument.spreadsheet-template
application/vnd.oasis.opendocument.text-template
application/vnd.collabio.xodocuments.presentation
application/vnd.collabio.xodocuments.document
application/vnd.collabio.xodocuments.spreadsheet
application/vnd.collabio.xodocuments.presentation-template
application/vnd.collabio.xodocuments.spreadsheet-template
application/vnd.collabio.xodocuments.document-template
audio/sp-midi
audio/qcelp
to doc/mime.types. However many of these seems
to be incorrect.
- Added safe_stralloc_append() to
lib/safemalloc.c
- Do not give error message
Don't understand specifying a subject and no-one to send to!
when called as
elm -S -s subject
(send only mode).
- Also
elm -s subject
alone implies send only mode.
- Fixed error where s)ave command for target
username@server produces
BROWSER PANIC in .../lib/mbox/savefolder.c:5705:prepare_write_folder
>>>No selection
Problem noted by: Laura Kataja
( But target username@server:INBOX works.)
> Changed that change_folder_browser_type() does
not clear selection, but frees only type
specific type.
> If browser type supports hashmark data
on selection, possible hashmark info is
copied.
- Added support to to s)ave for target
#hashmark. This is only supported
if hashmark refers to IMAP server.
In that case mail is saved to INBOX
on IMAP server.
- Changed implementation of
browser_cat_hashmark() on hashmark
browser.
- Fixed possible bug on showmsg_visit_mailbox_cmd()
- Fixed possible bug on metapager()
New file:
ConfTool/killmimetypes
SUMMARY: This release implements interruptible
(with interrupt character, usually Ctrl-C)
DNS queries on some systems when
libelmme-resolv.so module is used. New
elmrc options are "name-lookup-cache-time",
"name-lookup-cancel",
"special-use-domains-lookup" and
"static-hosts-max-names" (and
"query-mode" on "resolv:" section).
This release includes some changes
and fixes for elmrc parsing. Also some other
changes and some bug fixes are included.
- Changed gethostdomain() on lib/opt_utils.c
- Added check that domain name accepts only
ASCII characters on gethostdomain().
- Added gethostdomain() to read $LOCALDOMAIN
environment variable before {lib}/domain
file (and before using getdomainname()
if "getdomainname" is given on "name-resolution"
elmrc option.)
- If $LOCALDOMAIN includes space separated list of domains,
then first domain is used.
- Changed generate_hostfullname() on lib/read_rc.c
- Update doc/elmrc-info
- If DNS answer is truncated and equal of buffer size then
resolv -module retries query with bigger buffer
(up to 65535 bytes) [when using query-mode = blocking].
- Configure for resolv -module now tests if
res_mkquery(), res_send() and related routines
can be used to make DNS queries. Using
these routines means that res_query() and
specially res_search() is replaced with
own code.
- Configure for resolv -module now tests if
socketpair(AF_UNIX,SOCK_SEQPACKET,0,pair)
can be used.
- This release adds "query-mode" elmrc option to
resolv: -section. This option have values
blocking This uses res_query()
or res_search()
non-blocking This uses res_mkquery() and runs
res_send() on separate process.
In that case resolv -module
implements internally
res_search() like search
algorithm.
> Parameter "helper=allow-interrupt" of "query-mode"
elmrc option tells that interrupt character (Ctrl-C)
is allowed kill res_send() helper processes.
> Parameter "helper=ignore-interrupt" of "query-mode"
elmrc option tells that interrupt character
(Ctrl-C) is ignored (does not kill process).
> Numeric value to "helper" of "query-mode"
elmrc option parameter tells how many helper
processes is considered for query.
> Parameter "helper-skip-limit" of "query-mode"
elmrc option tells how many busy helper processes
are skipped and not considered for query.
> Parameter "parallel-lookup-max-time" of "query-mode"
elmrc option gives maximum time what is used to resolve DNS
lookup when non-blocking mode is used.
- Added add_foreign_background() to lib/syscall.c
- Added wait_background_end() to lib/syscall.c
- Changed maybe_background() on lib/syscall.c
- Added wait_for_action_or_timeout_settime() to lib/schedule.c
- Added wait_for_action_or_deadline_settime() to lib/schedule.c
- Added wait_for_timeout_f() to lib/schedule.c
- Small fix for real_wait_poll()
- This release adds "name-lookup-cache-time" elmrc option
which tells default cache time on seconds for mail service
if it is cached (usually not). Default value is
320 seconds. This replaces DEFAULT_CACHE_TIME constant
from lib/service_list.c
- Fixed error
Enumerated values resolv:* ignored -- code not loaded
I can't understand mail-services-lookup key "resolv:all-addresses"
in line 54 in "(...)/lib/elm.rc" file
- Changed set_dt_enumerate_as_str() on lib/rc_handle.c
- Changed give_dt_enumerate_as_int() on lib/rc_handle.c
- Changed give_dt_shared_value() on lib/rc_handle.c
- Changed struct dt_enumerate_info on hdrs/save_opts.h
- Fixed case-insensitive matching of tagged keyword
on set_dt_enumerate_as_str()
- Fixed error
Keywords on section "resolv" ignored starting
from line 419 on file (...)/lib/elm.rc
- Added new warning of ignored elm.rc lines.
- Added rc_eval_tail_cline() to lib/read_rc.c
- Added rc_eval_tail_line() to lib/read_rc.c
- Changed struct parsed_rc
- Changed do_rc_parse(), do_rc_process()
on lib/rc_parse.c
- Changed shared_fill_dt_enumerate_values(),
give_options() on lib/shared.c
- Fixed frm and elmrc-write -command error
Keywords on section "smtp" ignored starting
from line 1889 on file .elm/elmrc
- Changed frm -command option handling.
- Added rc_DT_DELAYSHARED
- Added some
# Failed to convert charset of option ...
comments to generated elm.rc or .elm/elmrc
on error.
- Changed do_rc_parse() so that empty line
followed by comment line resets last option
which is considered for continuation lines. This changes
error messages like
Key "@charset" does not accept continuation lines
in line 119 in ".../elm.rc" file
> Added error message
Continuation line 119 on file ".../elm.rc"
ignored: ...
- Also comment lines starting with "### " resets
last option which is considered for continuation lines.
- Also section tag: lines resets last option which is
considered for continuation lines.
- Small change to mail_gets() and malloc_gets()
- Fixed crash on smtp -module if submission/smtp
server's name is not resolvable.
- Made DNS query wait to be interruptible with Ctrl-C
when
query-mode=non-blocking
is used on resolv -section with
mail-services-lookup = resolv:addresses
or
mail-services-lookup = resolv:all-addresses
- Also DNS query is interruptible with Ctrl-C
when
query-mode=non-blocking
is used on resolv -section with
verify-domain = resolv:mx-address
or
verify-domain = resolv:mx
or
verify-domain = resolv:any
> NOTE: This uses actually interrupt signal
which is usually generated with Ctrl-C
but tty settings can vary.
> NOTE: Also interrupt character (Ctrl-C) may kill
res_send() helper process
[when using helper=allow-interrupt].
Otherwise
DNS query is still completed (and resolv
-module caches answer).
> NOTE: If
mail-services-lookup = hostname
or
mail-services-lookup = gethostbyname
or
mail-services-lookup = getaddrinfo
is used, then DNS host lookup is not
interruptible with Ctrl-C.
> NOTE: If
verify-domain = hostname
is used, then DNS host lookup is not
interruptible with Ctrl-C.
> NOTE: Also DNS
lookup is not interruptible with Ctrl-C
if
query-mode = blocking
is used on resolv -section.
- This release adds "name-lookup-cancel"
elmrc option, which controls behaviour of
Ctrl-C (interrupt character) on DNS lookup handling.
This option have values
disabled hostname / mail domain name
lookups are not interruptible.
enabled hostname / mail domain name
lookups are assumed to be
interruptible (but that is
not likely not work with
gethostbyname(), getaddrinfo(),
res_query() and res_search()).
auto hostname / mail domain names
lookup result waiting is
interruptible when res_send()
helper process is used.
Value "auto" is default. This may case that
this is disabled (unless "mail-services-lookup"
is modified). Also boolean ON, OFF, TRUE, FALSE, YES and NO
values are allowed on elmrc option "name-lookup-cancel".
- Added set_cancel_message()
- Changed connect_remote_account(), make_remote_mbox(),
give_service_entryS(), lookup_namei(),
lookup_name()
- Added give_service_entry_can(),
give_service_entry4_can()
- Added wait_for_action_or_timeout_settime_c() to lib/schedule.c
- Added wait_for_action_or_deadline_settime_c() to lib/schedule.c
- Changed that real_wait_select() and real_wait_poll()
return -1 on error. Added enum wait_for_status.
- Changed real_wait(), real_wait_check_timeout(),
wait_for_something()
- Some changes on my_wait()
- Changed error_sleep() return type to be void (no value).
- Changed SR_RawState()
- Fixed crash on connect-mode -keyword parsing.
- Added conf_split_param_value() to lib/remote_mbx.c
- Added sigchld_handler() call to
verify_transmission(), enter_helper(),
attach_modify(), extended_command(),
fbrowser(), edit_headers(),
alias_modify(), ViewThreads()
- Added lib/static-hosts.c, which parsed
/etc/hosts file without using gethostent()
function.
- If elmrc option "special-use-domains-lookup"
have value "static-hosts", names given on elmrc
option "special-use-domains-blacklist"
are directly read from /etc/hosts (only).
> Names given on elmrc option
"special-use-domain" are not looked up
from DNS and are not looked up with elmrc
option "mail-services-lookup".
- If elmrc option "search-mail-service" on
"resolv:" section is value "static-hosts-dotless-search-name",
libelmme-resolv.so module search /etc/hosts first
if name does not include dot (.), then lookups
name from DNS with default search rules (res_search()).
If name not found from DNS and name includes dot (.), then
libelmme-resolv.so module search /etc/hosts.
> libelmme-resolv.so module uses elmrc option
"search-mail-service", when it searches names for
addresses.
- If elmrc option "search-mail-service" on
"resolv:" section is value "static-hosts-dotless",
libelmme-resolv.so module search /etc/hosts first
if name does not include dot (.), then queries
exact name from DNS (res_query()). If name not found
from DNS and name includes dot (.), then
libelmme-resolv.so module search /etc/hosts.
- If "query-mode" on "resolv:" section have value
"blocking", then default value of "search-mail-service"
on "resolv:" section is "fallback-dotless-search-name".
- If "query-mode" on "resolv:" section have value
"non-blocking", then default value of "search-mail-service"
on "resolv:" section is "static-hosts-dotless-search-name".
- libelmme-resolv.so -module changes default value of
"mail-services-lookup" if "query-mode" on "resolv:"
section have "non-blocking" values and "use-config-library"
includes "resolv". This is similar than libelmme-resolv.so
-module's change of "verify-domain".
- Changed wait_for_something(), real_wait_select() and
real_wait_poll() on lib/schedule.c
- Added "X-Autogenerated:" to default weedlist. This header
is generated by Communigate Pro.
- Added "Auto-Submitted:" to default weedlist. This is defined
on RFC 3834.
- Added "X-MS-Exchange-" to default weedlist (removed
"X-MS-Exchange-Organization-").
- Added "X-Originating-IP:" and "Accept-Language:" to
default weedlist.
- Added "Resent-Message-ID:" to default weedlist.
- Added warning of magic values >= 256 to
parse_magic() on lib/misc/mime_types.c
- Added some fixes for magic values >= 256 to
parse_magic() on lib/misc/mime_types.c
- Changes error messages on load_mime_types_map()
on lib/misc/mime_types.c
New elmrc options:
name-lookup-cache-time
name-lookup-cancel
special-use-domains-lookup
static-hosts-max-names
New files:
shared_libs/resolv/resolvertest2.c
shared_libs/resolv/resolvconf.h.SH
shared_libs/resolv/query.c
lib/static-hosts.c
hdrs/service_imp.h
SUMMARY: This release may use CLOCK_MONOTONIC and can make
several connect() attempts on parallel on some
systems. Elm includes new command line option --mail-file
on this release. New elmrc options are
"connect-mode", " pop-idle-alive-interval" and
"imap-idle-alive-interval" (and
"smtp-idle-alive-interval" on "smtp:" section).
This release adds "self-cc" and "self-bcc" keywords
to ~/.elm/hash.marks or global elm.hashmarks.
This release changes elmrc option "mimeforward".
Also some other changes and some bug fixes
are included.
- Changed prototype of (no_)action_routine(), change_action()
- Changed prototype of (no_)schedule_routine(), set_schedule_action()
- Changed prototype of ss_(no)action_routine()
- Changed prototype of ss_StreamAction()
- Added wait_for_any_action_settime() to lib/schedule.c
- Added wait_for_any_action_settime_c() to lib/schedule.c
- Configure checks if clock_gettime() is available on libc
- lib/schedule.c uses clock_gettime() and CLOCK_MONOTONIC
for timeouts when monotonic clock is available. This should
avoid confusion when current time (wallclock) is altered.
- Also lib/service_list.c and resolv -module uses
clock_gettime() and CLOCK_MONOTONIC for timeouts when monotonic
clock is available.
- Configure checks if gettimeofday() is available
- lib/schedule.c uses gettimeofday() for timeouts
when available (and monotonic clock is not)
- Configure also tests if suseconds_t is available
- Changed prototype of scan_mail_services_conf(),
give_service_entry3(), give_service_entry4(),
give_service_entryS(), add_alias_to_entry(),
add_addr_to_entry(), shared_address_lookup(),
lookup_service_addresses_f()
- Some fixes for compilation when REMOTE_MBX
is not defined.
- Changed mail domain verification.
- Configure now notes if struct timeval is defined on
<sys/time.h>
- This release changes how Configure look up
for <sys/select.h>
- If ether select() or <sys/select.h> are found
but not both, then Configure compile test
these.
- Allow command line option
-dclass#debugfile:n
This puts debug file to /tmp -directory.
- Check on lib/schedule.c that fd description <= FDSETSIZE
when select() is used.
- Treat message/disposition-notification displayable
as message/delivery-status is treated.
- Added message/delivery-status and message/disposition-notification
to lib/misc/mediatype.c
- Fixed action removal on wait_for_something() on lib/schedule.c
- Added timed tasks to lib/schedule.c. These are available only
when some poll method (select() or poll()) is available.
- Used timed task on src/addr_util.c
- Used timed task on shared_libs/resolv/resolv.c
- Used timed task on lib/service_list.c (only useful
if names are on global elm.mailservices or
user's .elm/mail.services -file).
- Added wait_got_jump() to lib/schedule.c. This is
called from src/in_utils.c, when GetJump is jumped out
(and therefore interrupt wait_for_... routines on
lib/schedule.c).
- Configure checks if
getsockopt(...,SOL_SOCKET,SO_ERROR,...,...)
is available.
- If elmrc option "connect-mode" is
set to "parallel", Elm ME+ uses
non-blocking connect() and tries next
connect() attemp after given "delay" seconds
or milliseconds if previous connect was not
completed. This also requires that
getsockopt(...,SOL_SOCKET,SO_ERROR,...,...)
is available.
- If elmrc option "connect-mode" is
set to "non-blocking", Elm ME+ uses
non-blocking connect(), but connection attempts
are done sequentially.
- If elmrc option "connect-mode" is set to
"blocking" Elm ME+ makes connection attempts
sequentially and connect() blocks until
it is succeed or failed.
- Changed prototype of change_action() and
set_schedule_action().
- Changed return type of action_routine()
and ss_StreamAction().
- Changed error message of "mailer" global elm.rc option.
- Fixed cancel_progress_x()
- Added possible fix to skip_envelope()
- Added command line option
--mail-file=x
to Elm. This assumes that file 'x'
includes one mail message with headers.
It is NOT assumed to include mail separator
lines. For that use command line option
-fx
of Elm, which assumes that file 'x'
is mail folder. Option
--mail-file=x
can't mixed with options
-fx
--folder-selection
-c
-Oimap:x
However command line option
--mail-file=x
can mixed with sending of mail
(in that case mail file is included
as separate part to mail; normally
as type message/rfc822, but sometimes
as type application/octet-stream).
- Added update_header_list1() to lib/addr/headers.c
- Added parse_body_line_helper() to src/newmbox.c
- Exported mbx_read_line() (was read_line())
from lib/mbox/localmbx.c
- Added mbx_max_line_read() to lib/mbox/localmbx.c
- Possible small fix to compare_headers_1()
- Added command line option
--mail-file
to Elm. This causes that arguments
are treated as mail files and not mail recipients).
- Fixed crash
MBX VIEW PANIC in digest.c:87:mt_add_digest_storage
>>>mt_add_digest_storage called
- Added query_mailbox_flag() to src/messages/messages.c
- Added
application/octet-stream
to lib/misc/mediatype.c. This is default unsupported type,
but should be listed.
- Changed mimeforward question
Forward message as separate part? (y/n)
to
Forward t)ext only; or whole message as separate p)art ? (t/p)
Prompted by: Laura Kataja
> If elmrc option "mimeforward" is ON, then
default value is 'p' (forward as separate part).
Setting elmrc option "askmimeforward"
to OFF disables that prompt.
- Changed elmrc option "mimeforward".
Values are:
off Disables forwarding mail as message/rfc822
body part. This causes that only pageable
text is forwarded. Text is included on editor
buffer if message is edited.
on Enables forwarding mail as message/rfc822
body part. This enables forwarding whole mail.
Forwarded mail is not included on editor
buffer but is visible on attachment list
when sending mail (but disposition "inline"
instead of "attachment" is used).
auto Enables forwarding mail as message/rfc822
body part if it top level type of mail
is not text/plain or charset is not good
or top level disposition is attachment.
Value "auto" is default. This may cause that almost all
mails are forwarded as message/rfc822 body part.
Also boolean ON, OFF, TRUE, FALSE, YES and NO
values are allowed on elmrc option "mimeforward".
- Added elmrc option "pop-idle-alive-interval". This option
controls how often NOOP command is send when POP is idle.
Interval time is given on seconds. Default value is 25
(seconds). This idle timeout value is same than previously.
- If previous NOOP command is not completed, then
warning is printed:
POP connection to ... stalled for ... seconds.
- Added elmrc option "imap-idle-alive-interval". This option
controls how often NOOP command is send when IMAP is idle.
Interval time is given on seconds. Default value is 25
(seconds). This idle timeout value is same than previously.
- If previous NOOP command is not completed, then
warning is printed:
IMAP connection to ... stalled for ... seconds.
- Added check that numeric values on elmrc are valid.
- Added missing 'w' character to name_ok() on
lib/service_list.c. Missed 'w' character caused
that addresses (hostnames) with 'w' character was
saved on quoted form.
- Added "smtp:" section to elmrc for shared library
libelmme-smtp.so.
- Added elmrc option "smtp-idle-alive-interval" to
"smtp:" section. This option
controls how often NOOP command is send when SMTP
or submission is idle. Interval time is given on seconds.
Default value is 240 (seconds). This idle timeout
value is same than previously.
- Fixed smtp_timeout_action(). Sending of NOOP
command was not working.
- If previous NOOP command is not completed, then
warning is printed:
Submission connection to ... stalled for ... seconds.
(or
SMTP connection to ... stalled for ... seconds.
for port 25.)
NOTE: Elm ME+ does not provide command for
kill stalled connections and stalled connections
are noted only when connection is otherwise idle
(if connection stalls on middle of some other
command than that NOOP command used to keep
connection not idle too long, warning is not
printed either).
- Generate internal "From " header even when imap
reading is skipping body. That is required so that
received_time can be calculated.
> This affects received -sorting order.
Problem noted by: Laura Kataja
- When reading POP mailbox, set received_time
same to all messages. This causes that
received -sorting order uses mailbox order.
- small fix to debug output on hdr_decode_word()
- small fix to debug output on mbx_lock_pop()
- Fixed error that RC_post_init2() from shared libraries
was not processed.
- Added "self-cc" and "self-bcc" keywords for
hashtype: remote-mailbox
on hash marks file (that is user's .elm/hash.marks or
global elm.hashmarks file).
These keywords adds user's address to cc:
or bcc: header field when mailing.
> Usually "self-cc" and "self-bcc" uses address given
on hash marks file, but if it is not given then
local username is used as address or
From: header from user's .elm/elmheaders is
copied to cc or bcc.
NOTE: That if both .elm/elmheaders and hash marks file gives
From address, mail uses From: from .elm/elmheaders for
From: header field but self-cc and self-bcc uses address
from hash marks file.
- Added username_to_surface_addr() to lib/mailer/outheaders.c
- Fixed some output of dump_expanded_address(), used on
debug.
- Changed calling convention of copy_expanded_address()
- Added append_expanded_address() and
have_expanded_address() to hdrs/addrlib.h
New files:
hdrs/schedule_time.h
lib/schedule_time.c
src/messages/mailfile.c
shared_libs/smtp/elmrc-smtp-info
New elmrc options:
connect-mode
pop-idle-alive-interval
imap-idle-alive-interval
SUMMARY: This release adds 'macro' functionality
(as #hashmark) to folder and file browser. A
#hashmark can refer to userid@server or local
directory. This includes new tool "elmhashmarks",
new elmrc option "editor-hm-propline" and
new global elm.rc option "user-map-dir".
This release changes "incoming-mailbox",
"receivedmail" and "sentmail" elmrc options.
IMAP connection caching may use UNSELECT command
on this release. Folder browser's
'remote server' prefix (&) search connections
from IMAP connection cache on this release.
Also some other changes and some bug fixes
are included.
- Changed overflow checking on string_to_long()
- Fixed a certain case where builtin++ pager refused
display rest of (format=flowed) mail when
word-wrapping line line which include non-break
space.
- Fix case where word-wrapping is not possible
on (format=flowed) because all the words are
separated by non-break space and then pager
refuses to display rest of (format=flowed) mail.
- Allowed to refer userid@server or local directory
with #markname when giving folder or file name.
These #markname are defined with [markname]
on global elm.hashmarks or user's hash.marks
file.
See also chapter "Hashmark information"
- Added "editor-hm-propline" elmrc option.
This is similar than "editor-elmrc-propline".
If set to "emacs", then when on user's
hash.marks file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-hm-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Added "user-map-dir" global elm.rc option.
This gives default directory location for files
referenced with usermap-file: on global elm.hashmarks
file.
- Added elmhashmarks -command.
- Changed that
incoming-mailbox
elmrc option is expand same way than
receivedmail
and sentmail
elmrc options.
NOTE: Expansion does not support #hashmark
- commentfile.o is included now in several
libraries!
- File and folder browser now complain if given
name can not be converted to local-fs-charset.
- Added add_free_rc_hook() to lib/read_rc.c
- Freed user_aliases_map and system_aliases_map
via free_rc_hook at lib/mbox/init.c
- Freed some config via free_rc_hook
at lib/misc/init.c
- Fixed ascii value check on parse_service_entries()
- Added parse_tokenized_address() and
parse_one_tokenized_address() to
lib/addr/parsestring.c
- Changed parse_string_address() and
unquote_string() on lib/addr/parsestring.c
- Added read_charset_tag() to lib/service_list.c
- Added trim_whitespace_from_end() to lib/service_list.c
- Added unicode_is_space() to hdrs/elmlib.h
This is "space" as considered on tokenizer.
- Added string_have_prefix() to lib/string.c
- Added string_have_ascii_sep1() to lib/string.c
- Added give_service_entry4() to lib/service_list.c
- Added malloc_remote_account() and free_remote_account()
to lib/remote_mbx.c
- Added get_connection_state to lib/mbox/connection.c
- Added set_imap_connection() to lib/mbox/imap.c
- Replaced browser_from_connection() with
browser_from_connectionX()
- Possible fix for rs_folder_from_imap()
- Removed valid_browser()
- Changed give_line_dir()
- Added comment column to Elm 2.5 style file browser
- Added missing free() to free_terminal_map()
- Added missing free() to free_interface_info()
- Possible fix for charmap_copy()
- Added -r elmrc -option also to elmmailinglists
-command.
- Added -r elmrc -option also to elmmailservices
-command.
- Added -r elmrc -option also to elmmimetypes
-command.
- Added -r elmrc -option also to elmaliases-write
-command.
- Added -r elmrc -option also to elmbindata
-command.
- Moved string_need_quote() from
melib/mime_param.c to lib/stringtok.c
- Print long command line options on "elm -h"
command.
- Documented --mailbox-title command line
option of Elm.
- Documented --have-double-wide-characters line
option of Elm.
- Small change to error printing.
- Use UNSELECT command on IMAP if CLOSE
command can not used.
RFC 3691: Internet Message Access Protocol
(IMAP) UNSELECT command
- Changed that rs_connect_imap() uses IMAP
connection cache. That is required so that '&'
does not create IMAP connection when good connection
is available.
- Added locate_from_cache_1() to lib/mbox/connection.c
- Added value "use-$MAIL" for use as continuation line
flag on "incoming-mailbox" elmrc option. That flag
is set by default , but it is reset when
"incoming-mailbox" elmrc option is set.
- Moved check that $MAIL is not parsed as remote
mailbox from remote_folder_type() to
enter_new_folder() and defaultfile_expand_func()
- Changed prototype of enter_new_folder()
- Added value "local-file" for use as continuation line
flag on "incoming-mailbox", "receivedmail" and
"sentmail" elmrc options.
- Added "unsigned short magic" to
struct browser_type
- Added "unsigned short magic" to
struct folder_type and removed valid_magic()
from lib/mbox/mbox.c
- Added "unsigned short magic" to
struct folder_info
- Added "unsigned short magic" to
struct private_data
- Added "unsigned short magic" to
struct folder_browser
- Added "unsigned short magic" to
struct info_type
- Changed 'skipping' on struct read_folder_state
- Changed that Configure defaults both flock
and fcntl locking on Linux 4.*
New tools:
elmhashmarks
New files:
lib/mbox/hashmark.c
hdrs/hashmark.h
hdrs/hashmark_imp.h
hdrs/commentfile.h
lib/mbox/hashmark_local.c
lib/mbox/hashmark_remote.c
lib/mbox/hashmark_helper.c
utils/elmhashmarks.c
doc/elmhashmarks-info
doc/hash.marks
ConfTool/GenHashMarks
doc/elm.user.map/elm.usermap
doc/elmhashmarks.1
New elmrc options:
editor-hm-propline
user-map-dir
SUMMARY: This release adds preview functionality
to "Mail Pre-Send Screen" and adds
"weedout-without-title" option to
elmrc. This release no longer quits
parsing IMAP mailbox when IMAP FETCH command
fails to retrieve header block of mail.
- Space -key on "Mail Pre-Send Screen" previews
message for sending. This is not exactly same
message than what will be mailed. PreV)iew menu
-command "Mail Pre-Send Screen" goes to "Mail
Preview Screen". Prev)iew parts command
displays mime structure of prepared message.
Effectively 'V' command toggles between
"Mail Pre-Send Screen" and "Mail Preview Screen".
- Added elmrc option "weedout-without-title".
That is used instead of "weedout" when mail
is viewed on "Mail Preview Screen"
- 'H' -command on "Mail Pre-Send Screen" previews
message with all headers (ignore
weedout-without-title list).
- Added function have_ispell() to mailmsg2.c
- Added elm_append_message() to
lib/output.c
- Changed menu text on "Mail Pre-Send Screen".
- Microsoft Exchange Server 2013 IMAP4 server sametimes
returns no data for
FETCH {number} (FLAGS INTERNALDATE BODY.PEEK[HEADER])
command. Elm ME+ no longer abort reading
rest of mailbox on that situation.
New file:
src/snd_preview.c
New elmrc option:
weedout-without-title
SUMMARY: This release reduces conditionally compiled
code and fixes some bugs including regression
where replied mark (r) was not added to
messages. This release changes default
command to e)dit on send confirmation
("Mail Pre-Send Screen") if message is empty.
- Removed most #ifdef MMDF
- Added variable have_MMDF (constant)
- Removed most #if POLL_METHOD
- Added variable POLL_method (constant)
- Removed most #ifdef ALLOW_MAILBOX_EDITING
- Added variable ALLOW_mailbox_editing (constant)
- Removed most #ifdef ALLOW_SUBSHELL
- Added variable ALLOW_subshell (constant)
- Removed most #ifdef ISPELL
- Added variables have_ISPELL (constant),
ISPELL_path (constant), ISPELL_options (constant)
- Removed most #ifdef USE_PGP
- Added variable use_PGP (constant)
- Removed most #ifdef ENABLE_CALENDAR
- Added variable ENABLE_calendar (constant)
- Added conditional_option_p pointer
to struct rc_save_info_rec and
to struct OLD_optsmenu.
- Possible fix to mbx_copy_body_non_spool()
and mbx_copy_body_spool()
- Possibly fixed case where last line of
~/.elm/terminal.info was not (always) parsed
if there was not newline on last line.
- Possibly fixed case where last line of
~/.elm/mime.types was not (always) parsed
if there was not newline on last line.
- If mail to be send is empty (except Subject),
sending prompt is changed and default command
is e)dit.
- Elm ME+ 2.5 PLalpha42 failed to add replied
mark (r) to messages.
Reported by: Kimmo Ruosteenoja
* This failure was caused by incorrect fix
on Elm ME+ 2.5 PLalpha42 for compiler warning:
mailmsg2.c:2069:6: warning: logical 'and' applied to
non-boolean constant [-Wlogical-op]
SUMMARY: Enabled some compiler warnings and fixed them.
Waiting of smtp/submission server is now
cancellable with interrupt character (Ctrl-C).
Added \ -command to builtin++ pager. Also
some bug fixes are included.
- Fixed warning
read_rc.c:2832:5: warning: ISO C90 forbids mixed
declarations and code [-Wdeclaration-after-statement]
- Fixed warning
mailmsg2.c:2069:6: warning: logical 'and' applied to
non-boolean constant [-Wlogical-op]
- Removed bogus condition from browser_descend_local()
- Fixed warning
from.c:940:4: warning: string length '607' is
greater than the length '509' ISO C90 compilers
are required to support [-Woverlength-strings]
- Fixed warning
args.c:499:2: warning: string length '567' is
greater than the length '509' ISO C90 compilers
are required to support [-Woverlength-strings]
- Fixed warning
mbox.c:34:1: warning: 'static' is not at beginning
of declaration [-Wold-style-declaration]
- Fixed warning
parsestring.c:29:1: warning: 'static' is not at
beginning of declaration [-Wold-style-declaration]
- Fixed warning
okay_addr.c:27:1: warning: 'static' is not at beginning
of declaration [-Wold-style-declaration]
- Fixed warning
../../hdrs/me.h:75:1: warning: 'extern' is not at
beginning of declaration [-Wold-style-declaration]
- Fixed warning
curses.c:741:1: warning: 'static' is not at beginning
of declaration [-Wold-style-declaration]
- Fixed warning
termbuffer.c:19:1: warning: 'static' is not at
beginning of declaration [-Wold-style-declaration]
- Fixed warning
def_url.h:188:1: warning: 'extern' is not at beginning
of declaration [-Wold-style-declaration]
- Fixed warning
service_list.c:2075:30: warning: type of 'silent'
defaults to 'int' [-Wmissing-parameter-type]
- Fixed search on builtin++ pager.
- Added wait_for_action_c(), wait_for_any_action_c(),
wait_for_timeout_c(), wait_for_action_or_timeout_c(),
wait_for_any_action_or_timeout_c() to lib/cancel.c
- Added WaitStreamFor_c() to lib/streamsched.c
- When
mailer = submission
waits submission or smtp server greeting
it is now possible to cancel with Ctrl-C
(interrupt character).
* Also waiting of EHLO response after
server greeting is now possible to cancel
with Ctrl-C (interrupt character).
* Other waits still are not possible to cancel.
* However waiting on
mailer = sendmail-bs
is not possible to cancel. Also actual
mail submission and other waits which are
common for
mailer = submission
and
mailer = sendmail-bs
are not possible to cancel.
- Changed malloc() on shared_libs/smtp/smtp.c
- Possible fix for smtp_push_data() on
shared_libs/smtp/smtp.c
- Added cancellable versions of some functions
on shared_libs/smtp/smtp.c (all these are not
used yet).
- Some fixes for lib/schedule.c when poll()
is used.
- Changed error handling of smtp_run_ehlo()
- Added time_t maximum value (aka time_MAX)
checks to lib/schedule.c
- Added new_schedule_cancel(), is_schedule_cancel()
and schedule_cancel_timeout() to lib/cancel.c
- Added \ -command to builtin++ pager. This
hides (or shows) wrap indicator (\).
- Fixed warning
../shared_libs/smtp/smtp.c:3566: varoitus: the use of
`tempnam' is dangerous, better use `mkstemp'
> tempnam() is not needed. Actual checks for attacks
are done safeopen_rdwr().
SUMMARY: This release adds new memory allocation wrappers,
compiles libelmme-resolv.so module on more Linux
distributions, makes IPv6 support more complete,
may use getaddrinfo(), getifaddrs() and
if_nameindex() -functions. New elmrc option
"ipv6-scope-id" is added and new values are added
to elmrc option "mail-services-lookup". This
release changes error handling on parsing of
headers. Then also some other changes and bug
fixes are included.
WARNING: There are some changes on nm usage so it may
cause that different set of symbols are found.
Please report possible problems.
- metapager() did not display correctly a header
whose unfolded length was 2560 characters or more.
Raised that to 32k characters as it is on
state_read_headers().
- Added safe_calloc() as wrapper to calloc().
That is similar to safe_malloc().
- Changed len from unsigned to size_t on safe_*
allocation functions
- Fail if size < 1 on safe_* allocation functions
- Added safe_array_realloc() to lib/safemalloc.c
- Added safe_zero_alloc() to lib/safemalloc.c
- Possible fix for debug_print_buffer()
- Added Configure test for <stdint.h>
- On Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Configure test for resolv library fails with
/tmp/ccOfeE26.o: In function `main':
tryresolv.c:(.text+0x474): undefined reference to `__ns_initparse'
tryresolv.c:(.text+0x605): undefined reference to `__ns_parserr'
tryresolv.c:(.text+0x86f): undefined reference to `__ns_name_uncompress'
tryresolv.c:(.text+0x902): undefined reference to `__ns_name_uncompress'
tryresolv.c:(.text+0x9a0): undefined reference to `__ns_name_uncompress'
tryresolv.c:(.text+0xbb4): undefined reference to `__ns_name_uncompress'
tryresolv.c:(.text+0xc58): undefined reference to `__ns_name_uncompress'
collect2: ld returned 1 exit status
> Linked tryresolv with static libresolv.a
instead.
- Added nls/C/C/C/s_iconv.m
- Added nls/C/C/C/s_smtp.m
- Added nls/C/C/C/s_tls.m
- Changed struct smtp_callbacks on
shared_libs/include/shared_smtp.h
- Do not call flush_filter() with NULL
ptr->filter_line on set_out_state_line_mode().
Possible fix for crash.
- Fix for add_se_alias_to_entry()
on lib/service_list.c
- If getaddrinfo() is available, use it for address lookup
when
mail-services-lookup = hostname
was used on user's .elm/elmrc -file. This is default.
- New value
mail-services-lookup = gethostbyname
on user's .elm/elmrc -file specifies that
gethostbyname() should be used.
- New value
mail-services-lookup = getaddrinfo
on user's .elm/elmrc -file specifies that
getaddrinfo() should be used.
* However gethostbyname() is still used to
initialize "hostdomain" and IPv4 addressed
returned are still used for default values of
"mailname" elmrc option. This does not
use "mail-services-lookup" elmrc option
and getaddrinfo() is not used on here.
- Configure tests if AI_ADDRCONFIG is usable
with getaddrinfo()
- Fix panic on connect_remote_account_1():
"CONNECTION PANIC in remote_mbx.c:521:connect_remote_account_1
>>>No data (ra_from)"
- Fixed some wrong definitions on known
headers array on lib/addr/headers.c
- Changed parse_header_address() on
lib/addr/getaddrc.c so that missing ','
after '>' is detected. Before that change
components of two address was catenated.
- Do not alloc zero length vector
if add_name_to_string() is called
with empty ascii string. add_ascii_to_string()
uses actually add_name_to_string().
- Added more wrapping of headers when they are printed
to editor's buffer on src/hdrconfg.c
- If getifaddrs() is available, Configure asks
that should interface addresses added to "mailname"
global elm.rc option. Interface "lo" is
ignored when adding addresses to "mailname".
Also IPv6 addresses with scope id are ignored.
- Added get_interfaces(), update_interface_list(),
set_SOCKADDR_from_data(), free_interface_list() ,
same_SOCKADDR_ptr_generic() to lib/remote_mbx.c
- Small fix to lookup_domain_name() on
lib/read_rc.c
- If getifaddrs() is available and elmrc option
"query-address-type" (on resolv: -section on
user's .elm/elmrc -file) have value "default",
resolv -module uses interface address list to
determine if query A (IPv4) or AAAA (IPv6) records
need to be queried. Interface "lo" and IPv6
addresses with non-zero scope-id are ignored.
If only IPv4 addresses are seen then A (IPv4)
records are queried. If only IPv6 addresses are
seen then AAAA (IPv6) records are queried. Mail
domain verify queries both A (IPv4) or AAAA (IPv6)
records for query-address-type=default
(when verify-domain=resolv:mx-address is used.)
- Settings
mail-services-lookup = shared
mail-services-lookup = resolv:addresses
mail-services-lookup = resolv:all-addresses
caused that that command that IP-address
an mailbox name as
elm -f username@1.2.3.4
was not accepted on Fedora release 19
and Ubuntu 10.04.4 LTS. Changed give_service_entry3()
to ignore mail-services-lookup if literal
IP address is given as argument.
- Do not allow addr= on user's mail.services
or global elm.mailservices file if
name of entry matches to literal IP-address.
- If if_nameindex is available, elmrc
option
ipv6-scope-id = link-local-if-index
can be used to tell that scope id's
for link local IPv6-addresses are
are interface indexes. This adds
support for interface names as
textual form of scope ids.
* Scope id is part after % -character
on numeric IPv6 -address.
- Option
ipv6-scope-id = auto
enables
ipv6-scope-id = link-local-if-index
if numeric scope id's of link
local addresses matches to interface
index on where address is located.
- Scope-ids for other type IPv6-addresses
are still numeric with
ipv6-scope-id = link-local-if-index
option.
- Configure asks is struct sockaddr_in6's
sin6_scope_id -field is always interface
index as given on if_nametoindex() and
if_indextoname() for link local addresses.
For Linux this default to "yes".
NOTE: Currently numeric IPv6 addresses is
possible to give on user's mail.services
-file or on global elm.mailservices -file.
Elsewhere (for example hostnames on
mailbox names) they are misparsed.
- Added FL_SHOWSYS value for flags -field of
struct rc_save_info_rec.
- "/usr/bin/nm -D -f sysv" seems crash on
Ubuntu 14.04.4 LTS. Try "nm -D" instead
if "nm -D -f sysv" crashes on Configure.
- Using previous answer to "What is your domain name?"
question as default on Configure even when
hostname gives different domain.
New files:
nls/C/C/C/s_iconv.m
hdrs/s_iconv.h
nls/C/C/C/s_smtp.m
hdrs/s_smtp.h
nls/C/C/C/s_tls.m
hdrs/s_tls.h
New elmrc option:
ipv6-scope-id
SUMMARY: This release adds libelmme-resolv.so module
which makes possible to check the existence of
mail domains (with changes on "verify-domain"
elmrc option). Also "use-config-library",
"mail-services-lookup", "valid-domains" and
"mailhome-dir" elmrc options are added (and
"query-address-type", "query-domain-blacklist",
"search-mail-domain" and "search-mail-service"
to "resolv:" section of elmrc for
libelmme-resolv.so module). Added support of
IPv6 literals on user's mail.services and global
elm.mailservices file (IPv6 hostnames work only
with resolv -module.) Then also some other changes
and bug fixes are included.
- Replace NO_ADDRESS with NO_DATA
- Moved strings.h / string.h test to earlier
and include correct header on tests (not <stdio.h>)
when using strcmp()
- Added Confifure test for inet_pton() and inet_ntop()
- Used inet_pton() to parse IPv4-address on lib/service_list.c
- Added give_addr_as_string() to lib/service_list.c
- Used inet_ntop() / give_addr_as_string()
to print IPv4-address on lib/remote_mbx.c lib/service_list.c
- Used inet_ntop() to print IPv4-address on lib/read_rc.c
- Test also I_ARPA_INET -macro and not just I_NETINET_IN -macro
- Changed PF_INET to AF_INET on lib/remote_mbx.c
- Changed Configure to compile test that socket() work.
Also test that on Linux even when
/usr/include/sys/socket.h does not found.
Replaced I_SYS_SOCKET with HAVE_SOCKET macro.
This fixes include for Ubuntu 12.04
- Changed hdrs/elm_defs.h so that REMOTE_MBX is
only defined when HAVE_SOCKET is defined
- Changed PF_UNIX to AF_UNIX on shared_libs/smtp/smtp.c
- Added Configure to test that struct sockaddr_in6
is defined on <netinet/in.h>. Added
struct sockaddr_in6 to union socket_addr on
hdrs/connection_imp.h
- Added IPv6 support to give_addr_as_string() on
lib/service_list.c if struct sockaddr_in6
is available and inet_ntop() is supported.
Non-zero scope ids are added on numeric
form to address.
- Added uint32 macro to hdrs/elm_defs.h
- Added Configure to test that struct sockaddr_in6
includes sin6_scope_id
- Added IPv6 parsing (to get_ip()) on lib/service_list.c
if struct sockaddr_in6 is available and
inet_pton() is supported. Only numeric scope ids
(%n on end of address) are supported.
- Added inet_ntop() to print IPv6-address on lib/read_rc.c
(but that is not actually used).
- Added give_addr_port() and set_addr_port()
lib/service_list.c. These handled both IPv4
(struct sockaddr_in) and IPv6 (struct sockaddr_in6)
ports.
- Changed connect_remote_account_1()
on lib/remote_mbx.c to support IPv6
if struct sockaddr_in6 is available.
- Changed connect_remote_account()
on lib/remote_mbx.c to support IPv6
if struct sockaddr_in6 is available.
- Added fill_address() on lib/service_list.c
to handle IPv6 addresses (but that is not
actually used).
NOTE: lookup_name() / gethostbyname() seems not
return IPv6 addresses, so IPv6 addresses
may work only when literal addresses are given
on .elm/mail.services or global elm.mailservices
file.
Reading mail from IPv6 hostname with IMAP is tested
when
mail-services-lookup = resolv:addresses
on user's .elm/elmrc -file was on used. This requires
use-connect-library = resolv
(or use-connect-library = tls resolv )
on global elm.rc -file.
- Compilation fixes when REMOTE_MBX is not defined.
- Changed ConfTool/Substitute that it uses cp
and not ln on hdrs/Makefile which it generates
- Changed some Configure tests
- Moved is_it_on() from lib/read_rc to
lib/rc_handle.c
- Added is_it_off() to lib/rc_handle.c
- Added warning if boolean value is not either ON
or OFF (also TRUE, FALSE, YES and NO are valid values).
- Added support of boolean values to
struct dt_enumerate_info
- Allowed boolean ON, OFF, TRUE, FALSE, YES and NO
values on elmrc option "browser-wildcard-matching".
- Allowed boolean ON, OFF, TRUE, FALSE, YES and NO
values on elmrc option "local-lockfile-pidcheck".
- Allowed boolean ON, OFF, TRUE, FALSE, YES and NO
values on elmrc option "show-header-errors".
- Fixed error message on dt_SORT_parse_line() file
lib/rc_handle.c
- Added elmrc option "use-config-library". This
includes shared libraries which are assumed
to change default elmrc values.
- Content of option "use-library" is automatically
moved to variable "use-config-library".
- Changed calling convention of post_init_shared_options(),
RC_post_init_f()
- Added post_init_change_config()
- Added support for tag:value values to
struct dt_enumerate_info. Tag refer to
shared library.
- Added give_dt_shared_value() to lib/rc_handle.c
- Add exception for address literals on build_address_l()
- Add exception for address literals on fastmail
- Added locate_and_load_library1() to lib/shared.c
- Changed elmrc option "verify-domain" to type
struct dt_enumerate_info. Value "hostname" specifies
that normal hostname -lookup API (that is
gethostbyname()) is done. Error HOST_NOT_FOUND is
treated as non-existing domain and error NO_DATA
is treated as valid mail domain.
Value "shared" specifies that mail domain is
verified by shared library if available.
In that case shared library must be given on
elmrc option "use-mailer-library".
- Added "valid-domains" elmrc option. This gives list
of mail domains which are considered valid without
verifying. This also overrides
"special-use-domains-blacklist" elmrc option
for mail addresses.
- Small fix for print_history_changed()
- Do not create change record when change
of use-library or use-*-library
was not result of error condition.
- Changed unload_code()
- Added free_shared_caches()
- Added libelmme-resolv.so module.
- Added "use-config-library" elmrc option. This
includes shared libraries which are assumed
to change default elmrc values.
- Added elmrc options "query-address-type",
"query-domain-blacklist", "search-mail-domain"
and "search-mail-service" to "resolv:" section.
- Undefined symbols involving the $non_lazy_ptr
linker error were generated on Mac OS X.
Patch from: dansdragon@gmail.com
- "The source of the error is the alpha38 version of
Configure is line 1874:
elif test "$uname_os"="Linux"; then
Are you aware that this test is always true in bash?
If you are currious, I have written a test script that
test that section of code by setting $uname_os to "nonsense"
and it still exits the conditional at that point. I just
learned that spaces are very important in bash. The correct
way to write this lins is as follows (like the OSF1 line in
line 1868):
elif test "$uname_os" = "Linux"; then"
Reported by: dansdragon@gmail.com
> Fixed test on Configure.
This bug is introduced on Elm2.4ME+ PL32 (25)
- Do not fail if canceled mail do not have charset -parameter.
- Fix case where PressAnyKeyToContinue() is
called on raw mode
- Allow content_length == -1 on copy_pgp(), copy_mime(),
copy_encrypted(), copy_plain(), copy_binary(),
copy_cooked()
- Replaced #include <values.h> with #include <limits.h>
and MAXINT with INT_MAX
Problem noted by: dansdragon@gmail.com
- Do not call initial_TLS_ra() if USE_DLOPEN is not defined
Problem noted by: dansdragon@gmail.com
- "Attached is the patch file for the alpha38 version of
Configure that includes all of the bits, some of which was
previously discussed that would allow the program to be
compiled on newer versions of Mac OS that has the clang
compiler from LLVM installed."
From: dansdragon@gmail.com
> Added setting of nm_opts for Darwin and
/usr/lib/system/libsystem_c.dylib as libc for Darwin.
- Changed struct remote_account
- Changed struct service_entry
- If addr= -parameter gives port on global
elm.mailservices or user's .elm/mail.services
that address is uses only for that port.
If URL gives different explicit port,
this address is not used. However explicit port
on URL overrides port= -parameter on
global elm.mailservices or user's
.elm/mail.services.
- Added "mail-services-lookup" elmrc option. This
option specifies how names (normally hostnames, that
is part after '@' on folder name (before ':' or '/'
characters). And also that includes names given on
~/.elm/mail.services or on global elm.mailservices file.
Default value "hostname" specifies that normal
hostname -lookup API (that is gethostbyname()) is done.
Value "shared" specifies that lookup is done by shared
library if available. In that case shared library must
be given on elmrc option "use-connect-library".
- c)ancel -command on "Mail Sending Screen" was not
saving message content to ~/Canceled.mail.dir/.
Added rewind() to have_cancel_FILE() on
lib/mailer/mailer.c
- Handle situation where mails on ~/Canceled.mail.dir/
does not include Content-Length: -header.
c)ancel -command on "Mail Sending Screen" does
not add Content-Length: -header.
- Added lines counting for c)ancel -command on
"Mail Sending Screen" to
cancel_ticket_to_canceled_mail() on src/mailmsg2.c.
- Added following RFC 6857 headers to known headers
(to array on lib/addr/headers.c):
Downgraded-Message-Id, Downgraded-Resent-Message-Id,
Downgraded-In-Reply-To, Downgraded-References,
Downgraded-Original-Recipient, Downgraded-Final-Recipient
- Added following RFC 3282 headers to known headers
(to array on lib/addr/headers.c):
Accept-Language, Content-Language
- Added following RFC 5064 header to known headers
(to array on lib/addr/headers.c):
Archived-At
- Added following RFC 7601 header to known headers
(to array on lib/addr/headers.c):
Authentication-Results
- Added following RFC 6376 header to known headers
(to array on lib/addr/headers.c):
DKIM-Signature
- Added following RFC 3798 headers to known headers
(to array on lib/addr/headers.c):
Disposition-Notification-To,
Disposition-Notification-Options,
Original-Recipient
- Added following RFC 5703 headers to known headers
(to array on lib/addr/headers.c):
Original-Subject, Original-From
- Added following RFC 2156 headers to known headers
(to array on lib/addr/headers.c):
Supersedes, Autoforwarded, Message-Type,
Autosubmitted, Delivery-Date
- Added following RFC 5064 header to known headers
(to array on lib/addr/headers.c):
MT-Priority
- Added following RFC 7681 header to known headers
(to array on lib/addr/headers.c):
Organization
- Added following RFC 3865 header to known headers
(to array on lib/addr/headers.c):
Solicitation
- Added following RFC 3297 headers to known headers
(to array on lib/addr/headers.c):
Content-alternative, Original-Message-ID
- Added "Apparently-To" to known headers
(to array on lib/addr/headers.c).
- Added some checks to add_canceled_mail()
- Do not write number of lines to Canceled.mail.dir/.index
if it is zero.
- If number of lines is zero on Canceled.mail.dir/.index
count lines on file.
- Added shared_libs/resolv/elmrc-resolv-info
for documenting of user settable library options.
- Unified writing main options and shared library
specific options to write_rc_part().
- Trim trailing space when reading options
from comment file.
- Added shared_libs/iconv/elmrc-iconv-info
for documenting of user settable library options.
- Added shared_libs/tls/elmrc-tls-info
for documenting of user settable library options.
- Added global elm.rc option "mailhome-dir" which
tells location of local mail spool directory.
Special value "none" indicates that empty mailbox
(with type "No folder") should be opened (if
"incoming-mailbox" elmrc option is not set).
- Allow NULL initial value on set_dt_estr()
- Allow NULL folder name on enter_new_folder()
- Let mbx_sessionlock_no_name(),
mbx_unlock_no_name(), mbx_prepare_read_no_name()
and mbx_ferror_no_name() succeed.
- Give "No folder" as type on mbx_no_name_type()
- Added mbx_give_normal_server to struct folder_type no_name
- Set *bytes = 0 on mbx_new_mail_on_no_name()
NOTE: This change produced side effect however.
Empty mailbox (with type "No folder") is
opened when connection to IMAP or POP servers
fails. However empty mailbox is not opened when
IMAP or POP server's name not found.
- Changed value "none" on elmrc option
"incoming-mailbox" mean that empty mailbox
(with type "No folder") should be opened
(and not use literal file "none" as mailbox).
- Changed *bytes from int to long
on new_mail_on_folder() and
mbx_new_mail_on_folder()
- Some changes on newmail.
- Changed dlopen test on Configure
- Changed Configure test for tls -module
WARNING: Check after installation that
libraries are enabled. Global
elm.rc values are:
use-library =
use-base-library = iconv
use-config-library = resolv
use-connect-library = tls resolv
use-mailer-library = smtp resolv
After editing global elm.rc run
.../lib/elmrc-write -GI
for fixing possible errors.
See also: shared_libs/resolv/README.ME+
New files:
shared_libs/resolv/config
shared_libs/resolv/resolvertest.c
shared_libs/resolv/Makefile.SH
shared_libs/resolv/elmresolv.h
shared_libs/resolv/resolv.c
lib/shared_config.c
nls/C/C/C/s_resolv.m
hdrs/s_resolv.h
shared_libs/resolv/README.ME+
shared_libs/resolv/elmrc-resolv-info
shared_libs/iconv/elmrc-iconv-info
shared_libs/tls/elmrc-tls-info
New elmrc options:
mail-services-lookup
use-config-library
valid-domains
mailhome-dir
SUMMARY: This release adds elmiso2022sets
-command and installs global elm.iso2022sets
file. This release changes error handling on
Content-Type and Content-Disposition header
fields. This release adds "Mail Sending
Screen" for submission -mailer and
"sending-display=yes" (or "...=no") -parameter
to "mailer" option of global elm.rc.
"special-use-domains-blacklist" -option is
added to elmrc. Keywords "imaps", "pops"
and "smtps" are added to mail.services.
This release adds some support for
non-standard imaps -URLs. This release
adds SIZE support to submission -mailer.
Then also some other changes and bug
fixes are included.
- Possibly fixed case where last line of
~/.elm/iso2022.sets was not (always) parsed
if there was not newline on last line.
- Do not free null pointer / string on
browser_folder_from_imap(). Fixes crash
SIGNAL PANIC in signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 496D66 80E3A81 283400 170216 15FE2F
continues: 15CCF8 80A9D3C 80AA186 80B0C55 809072B
continues: 6EABF6 8060751
backtrace:
/usr/local/lib/libelmme-base.so.1.1.38(panic+0x1e8)[0x496d66]
elm(segv_signal+0x84)[0x80e3a81]
[0x283400]
/usr/local/lib/libelmme-mbox.so.1.1.38(+0x36216)[0x170216]
/usr/local/lib/libelmme-mbox.so.1.1.38(+0x25e2f)[0x15fe2f]
/usr/local/lib/libelmme-mbox.so.1.1.38(folder_from_dir_item+0x104)[0x15ccf8]
elm[0x80a9d3c]
elm(initialize_mailbox+0x390)[0x80aa186]
elm(main_messages_menu+0xb1)[0x80b0c55]
elm(main+0xbbd)[0x809072b]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x6eabf6]
elm[0x8060751]
- Added elmiso2022sets -command.
- Added struct iso2022_map_conf
- Changed calling convention of dump_iso2022_map()
- parse_iso2022_map() now returns read
map information as struct iso2022_map_conf
- Added struct iso2022_mapinfo
- Added free_iso2022_map_conf(), malloc_iso2022_map_conf()
- Added refcounting to struct iso2022_mapinfo
- Added free_iso2022_mapinfo(), inc_iso2022_mapinfo_refcount()
- Added free_iso2022_map_list();
- Changed some struct iso2022_setid matching rules on
lib/iso2022.c (on give_iso2022_index(),
find_iso2022_map_spec() and loc_setid()).
- Added call of free_aliases_map() to elmaliases-write
- Added call of free_charset_map() to elmcharset
- Added call of free_mlist_conf() to elmmailinglists
- Added call of free_mail_services_conf() to
elmmailservices
- Added call of free_mime_types_map() to elmmimetypes
- Added call of free_terminal_map() to elmterminal
- Possible fix to read_map_format_a()
- Moved dump_iso2022_map() from lib/iso2022.c to
lib/misc/iso2022.c
- Changed calling convention of dump_iso2022_map()
- Fixed doc-info dependency on Makefile-1.SH or
or info-list dependency on doc/Makefile.SH. This is
used on cleanup-config target on Makefile-1.SH.
- Possible fix to add_MIBenum()
- Possible fix to iso2022_add_char()
- Changed find_iso2022_map_spec so that it match
map's with any bank if match with given bank
is not found.
- Added doc/iso2022.sets with bank-94 4/10
- Added ISO-2022-JP to doc/mime.charsets (with
incomplete map definition).
- Added ISO-2022-JP-2 to doc/mime.charsets (with
incomplete map definition).
- "This problem has been around about as long as
I can remember. Occasionally when I try to forward
or bounce a message I get a segfault because something
goes wrong with elm reading the mime code."
Reported by: Robert Brose <bob@jriver.com>
> Fixed error handling on remail_multipart().
- Report error if type on Content-Type
header field is empty.
- Report error if major type or subtype
on Content-Type header field is empty.
- Changed unicode_is_special() so that '<' ,
'@', '>' are always special, not only
when TOK_mail is given.
- Changed unicode_is_special() so that '?'
is special if TOK_mime is given
- Report error if major type or subtype
on Content-Type header field includes
non-ascii, space, control or MIME
special characters.
- Report error if disposition on
on Content-Disposition header field
includes non-ascii, space, control or MIME
special characters, or if it is empty.
- Report error if mime param name
on Content-Type or Content-Disposition
header field includes non-ascii, control
or MIME special characters.
- Added display about failed addresses
which is used with "mailer = submission".
* This is "Mail Sending Screen" which is displayed
when mail sending is in progress. This is
incompatible with "background-wait-time" elmrc
option (not used with "mailer = submission").
This is enabled with "sending-display=yes" or
disabled with "sending-display=no" option.
- "sending-display" mailer option is available
with mailer types "unknown", "sendmail",
"execmail", "submission" and "sendmail-bs".
Per address status is only available with
mailer types "submission" and "sendmail-bs".
- "Mail Sending Screen" is enabled by default
with mailer types "submission" and "sendmail-bs".
This screen allows saving failed mail to
~/Canceled.mail.dir/ (if c)ancel mail
is selected) or e)dit again (and resend).
Pressing ENTER gives default action, which
is same as "Mail Sending Screen" is
not enabled. Default action does not
save failed mail to ~/Canceled.mail.dir/.
- Page Up and Page Down and Cursor Up and Down
keys changes recipient list on "Mail Sending
Screen" when question is prompted. And
Ctrl-C (interrupt character) cancels
(interrupts) sending of mail when question
is prompted on "Mail Sending Screen".
- Changes return value of verify_transmission()
- Changes mail()
- Added indent to struct pager_range
- Added get_pager_range_indent(),
get_pager_range_change()
- Changed state_add_simple_pager_range(),
stringbuffer_add_simple_pager_range()
- Added find_pg_wrap_info()
- Allow NULL range on set_out_state_line_pager_range()
- Changed give_commands_help(). Now command
help uses indent from struct pager_range
for command description column.
- Fix for handle_common (on debug.c)
- Removed split_word() from src/strings.c
- Removed argv_from_to() from src/strings.c
- Changed menu_print_center() on src/out_utils.c
- Allow menu_header_change(..., header_current,
HEADER_NO_CURRENT) as special case
- Added missing menu_header_change_item() to
src/screen/header.c
- Added support for non-standard imaps
(IMAP over SSL) to user's .elm/mail.services
or global elm.mailservices -file.
Normally Elm ME+ uses imap or pop
on standard port and then possibly
negotiates TLS. Keyword "imaps" on
user's .elm/mail.services or global
elm.mailservices -file changes
port and starts TLS (or SSL) first.
NOTE: Keyword "imaps" should only used when
regular imap -port is blocked.
- Added support for non-standard pop3s
(POP over SSL) to user's .elm/mail.services
or global elm.mailservices -file.
Normally Elm ME+ uses IMAP or POP
on standard port and then possibly
negotiates TLS. Keyword "pops" on
user's .elm/mail.services or global
elm.mailservices -file changes
port and starts TLS (or SSL) first.
NOTE: Keyword "pops" should only used when
regular pop3 -port is blocked.
* Consider using "verify-tls-certificate"
(and "require-tls-peer-name") with
"imap" / "imaps" and "pop" / "pops"-keywords,
if trust is required (with "imap" and "pop"
-keywords STARTTLS / STLS -command is used).
> These requires that
use-connect-library = tls
is used.
> Keywords "imaps", STARTLS of "imap"
"pops" and STLS of "pop" defaults
to tls (not ssl). This can changed with
tls:starttls-version=ssl
or
tls:tls-version=ssl
( tls:starttls-version=none disables
usage of ssl and tls. )
- Imap URLs like
imap://user@full.hostname/inbox
do not match "imaps" -keyword on
user's .elm/mail.services or
global elm.mailservices -file.
- Unified common code from imap_STARTTLS_handler()
of shared_libs/tls/imap.c, pop_STLS_handler()
of shared_libs/tls/pop.c and smtp_STARTTLS_handler
of shared_libs/tls/smtp.c to ra_wrap_tls()
of shared_libs/tls/remote.c.
- Added STFLAG_service_type() to lib/service_list.c
- Removed IMAP_SERVICE, POP_SERVICE, SUBMISSION_SERVICE
and SMTP_SERVICE from lib/service_list.c
- Changed locate_from_cache() on lib/mbox/connection.c
- Added is_similar_service_entry() to lib/service_list.c
- Added give_service_entry2() to lib/service_list.c
- Fixed service entry selection on
url_make_connection_imap()
- "However, on a Suse Linux Enterprise Server 11 SP 3
(with installed 32-bit compatibility package
glibc-devel-32bit) I encountered problems because
configure chose the 32-bit version of libcrypt instead
of the necessary 64-bit version, thus resulting in a
linker error:
i386 architecture of input file
`/usr/lib/libcrypt.a(sha512.o)' is incompatible with
i386:x86-64 output"
Reported by: Dr. Rainer Kaluscha <rainer.kaluscha@uni-ulm.de>
> Added /usr/lib64 on search path if compiler
produces 64-bit output
* This also changes default shared library location.
- Added support for non-standard smtps
(SMTP over SSL) to user's .elm/mail.services
or global elm.mailservices -file.
Normally Elm ME+'s shared library
libelmme-smtp.so uses submission or smtp
on standard port and then possibly
negotiates TLS. Keyword "smtps" on
user's .elm/mail.services or global
elm.mailservices -file requires
explicit port definition and starts TLS
(or SSL) first.
WARNING: Originally port 465 was reserved
for smtps, but this was revoked
and that port is now reserved for
"URL Rendesvous Directory for SSM"
instead.
> Usually keywords "smtp" or "submission"
are better here.
- Added some support non-standard imaps -URLs.
Support is similarly limited than is support
of imap -URLs. Basically only imap mailbox
can be specified, not individual message or
list of messages (search result).
That is like
imaps://user@full.hostname/inbox
- Imaps URLs do not match "imap" -keyword on
user's .elm/mail.services or
global elm.mailservices -file.
- Fixed imap: -URL handling so that
capabilities are handled and therefore
handle STARTTLS.
- Free haliases -array on setup_names()
- Simplified expand_dt_path()
- Free pager_range -vector on sb_free_file()
- Fix condition on cmd_on_statlist()
- Free path element on dt_PATH_free_option()
- Free mem element on sb_free_mem()
- Free pager_range -vector on sb_free_mem()
- Added support of SIZE extension to
Elm ME+'s shared library libelmme-smtp.so.
Now SIZE=xxx is added to MAIL -command's line
if SIZE is mentioned on EHLO response.
* If "Mail Sending Screen" is available
when message size is bigger than allowed
limit of SIZE on EHLO response, user
is prompted. This allows saving
mail to to ~/Canceled.mail.dir/ (if c)ancel
mail is selected) or e)dit again (and resend).
Pressing ENTER gives default action, which
is same as "Mail Sending Screen" is
not enabled. Default action tries
send mail anyway.
- Message size and possible size limit
are shown on "Mail Sending Screen".
- Added "special-use-domains-blacklist" elmrc option.
Domain names given on list are not acceptable
as server names or as mail addresses.
RFC 6761: Special-Use Domain Names
* If domain name is given as ".domain" then it
blacklists names under that domain. If name
is given as "domain" then also "domain"
itself (and names under it) are blacklisted.
* Mail addresses with domain names given
on "special-use-domains-blacklist" are removed
from recipients list.
New elmrc option:
special-use-domains-blacklist
New tools:
elmiso2022sets
New files:
utils/elmiso2022sets.c
lib/misc/iso2022.c
doc/elmiso2022sets-info
doc/iso2022.sets
ConfTool/GenIso2022sets
charset/MAPPINGS/JIS/JIS0201.TXT
doc/elmiso2022sets.1
src/snd_display.c
src/def_sndmail.h
shared_libs/tls/remote.c
SUMMARY: This release adds "@charset = " specification to
user's ~/.elm/elmaliases, ~/.elm/mailing.lists and
global {etcdir}/elm.aliases,
{etcdir}/elm.mailinglists files. Also this release
adds "editor-al-propline" and "editor-ml-propline"
elmrc options. This release adds command
'elmconfwriter' which is used to clean up some
config files during installation. This release
fixes some crashes. Then also some other changes
and bug fixes are included.
- Possible fix for cs_iso2022_info_set_binary()
- Possible fix for print_local_shared_options()
- Possible fix for getkey()
- Possible fix for give_canceled_mail()
- Possible fix on split_file() on elmregister.c
- Use ml_global instead of ml_system parameter when
reading global elm.iso2022sets -file.
- Removed -C {doc/elmrc-info} from final
elmrc-write -G -I elm.rc.old-values
- Changed default_unidata()
- Added elmconfwriter -command to rewrite existing
config files. This is used during installation
to clear existing config files.
- Some fixes to Makefile.SH
- Some fixes to utils/readmsg/Makefile.SH
- Added "@charset = " specification to user's
~/.elm/elmaliases and global
{etcdir}/elm.aliases files.
- Added "editor-al-propline" elmrc option. This is similar
than "editor-elmrc-propline". If set to "emacs", then
when on user's elmaliases file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-al-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Do not crash when elm.aliases have alias
without value:
ALIAS VIEW PANIC in aliases_map.c:442:am_give_alias
>>>No alias_value or alias_key
Call stack: 1C0CE6 80FEC1B 80FCCEE 8065540 8090E4B
continues: 80AF9A8 80B0964 80904CB 2F7BF6 80606A1
backtrace:
/tmp/TEST/lib/libelmme-base.so(panic+0x1e8)[0x1c0ce6]
/tmp/TEST/bin/elm(am_give_alias+0x1e7)[0x80fec1b]
/tmp/TEST/bin/elm(update_aview+0x2e4)[0x80fccee]
/tmp/TEST/bin/elm(alias+0x436)[0x8065540]
/tmp/TEST/bin/elm(mailbox_command+0x1dc)[0x8090e4b]
/tmp/TEST/bin/elm[0x80af9a8]
/tmp/TEST/bin/elm(main_messages_menu+0xe0)[0x80b0964]
/tmp/TEST/bin/elm(main+0xbbd)[0x80904cb]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x2f7bf6]
/tmp/TEST/bin/elm[0x80606a1]
ABORTING...
Aborted (core dumped)
- Fixed alias sorting error
- Fixed crash when message was forwarded as attachment:
SIGNAL PANIC in signals.c:144:segv_signal
>>>
Segment Violation signal!
Call stack: 1551AC 80DE3ED 8C1420 80CF973 80D07C9
continues: 80D1388 80B1760 80B2247 80AEBF0 80AF02D
continues: 80AF257 80D3C39 80DC105 80DD7A5 808DFFD
continues: 80AB87E 80AC77C 808CAEA 1D6EDC 805D7D1
backtrace:
/usr/local/lib/libelmme-base.so.1.1.37(panic+0x1b9)[0x1551ac]
elm(segv_signal+0x84)[0x80de3ed]
[0x8c1420]
elm[0x80cf973]
elm[0x80d07c9]
elm(convert_remail_message_1+0x676)[0x80d1388]
elm(attach_rfc822+0x18b)[0x80b1760]
elm(mail+0x7cf)[0x80b2247]
elm(send_msg_middle2+0xdad)[0x80aebf0]
elm(send_msg_middle+0x10c)[0x80af02d]
elm(send_msg_l+0x126)[0x80af257]
elm(forward+0x2af)[0x80d3c39]
elm(process_showmsg_cmd+0x545)[0x80dc105]
elm(show_message_normal+0xa9)[0x80dd7a5]
elm(mailbox_command+0xd73)[0x808dffd]
elm[0x80ab87e]
elm(main_messages_menu+0xe1)[0x80ac77c]
elm(main+0xb46)[0x808caea]
/lib/libc.so.6(__libc_start_main+0xdc)[0x1d6edc]
elm[0x805d7d1]
Emergency exit taken! All temp files intact!
ABORTING...
Aborted
This bug is probably introduced on Elm ME+ 2.5 PLalpha18
- Added "@charset = " specification to user's
~/.elm/mailing.lists and global
{etcdir}/elm.mailinglists files.
- Added "editor-ml-propline" elmrc option. This is similar
than "editor-elmrc-propline". If set to "emacs", then
when on user's mailing.lists file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-al-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Possibly fixed case where last line of
~/.elm/mailing.lists was not (always) parsed
if there was not newline on last line.
New elmrc options:
editor-al-propline
editor-ml-propline
New tools:
elmconfwriter
New files:
utils/elmconfwriter.c
doc/elmconfwriter.1
SUMMARY: This release adds --folder-selection and
--have-double-wide-characters command line options.
Also this release adds "editor-ms-propline"
and "mime-encoded-filename-hack" elmrc options.
This release adds STARTTLS support to SMTP /
mail submission module. This release adds
"verify-tls-certificate" and "require-tls-peer-name"
parameters to "mailer" option of global elm.rc.
This release changes user's .elm/mail.services
or global elm.mailservices file (also includes
"verify-tls-certificate" and "require-tls-peer-name"
parameters). This release writes global
elm.mailservices file during installation.
Also this release includes *-info files
for many config files. This release includes
changes to file and folder browser. Then also
some other changes and bug fixes are included.
- Changed that Configure uses compiling test for mmap()
for Linux even when /usr/include/sys/mman.h does not
found. This fixes MMAP for Ubuntu 12.04
- Added --folder-selection option. This is similar to
-f '' option.
- Options
-y don't enter ELM if no unread mail is pending
-z Zero - don't enter ELM if no mail is pending
--folder-selection Ask folder/mailbox name
are now mutually exclusive.
- Changed help text on a file and folder browser.
- Added '&' to help text of folder browser.
- Added browser_get_remote_server() to hdrs/mboxlib.h
- Added give_remote_server_title() to hdrs/mboxlib.h
- Renamed free_fbowser_call() to free_fbrowser_call()
- Added --have-double-wide-characters option. This is
similar than DW (or ISO2022/DW) flag on elm-terminalinfo.
KDE "konsole" -program supports double wide characters,
but it is not easy to detect this because $TERM is "xterm"
which is too generic.
- Added possible fix to elm_smessage() on lib/output.c
- Changed help on file and folder browser. It is
now implemented with pager routines.
- Added pager_helper_process_line(),
pager_helper_end_of_page() to src/pager/helper.c
- Added span_helper(), clear_span_helper_data() to
src/pager/span_range.c
- Used pager_helper_process_line(),
pager_helper_end_of_page() on builtinplusplus()
in src/builtin++.c
- Moved struct browser_edit initialization to
init_browser_edit() on src/browser_help.c
- Added clear_browser_edit() to src/browser_help.c
- Changed get_lineext_from_stringbuffer() to
get_lineext_and_walk()
- Added Page Up and Page Down -keys to
file and folder browser. These change
page and if "movepage" elmrc option is
set, then these keys also change
selected filename pointer.
- Page Up and Page Down -keys on help file
and folder browser changes page if there is
several pages. Normally text fits to one
page.
- Added elmrc option "mime-encoded-filename-hack".
If this is set (default), then MIME encoded words
(RFC 2047 or RFC 1522) filename parameter is
detected. However RFC 2231 style encoding is
preferred if elmrc option "mime-parameters" have
not value "plain".
- Do not allow '?' or '*' on default filename when
saving attachment if elmrc option "browser-wildcard-matching"
have set (value "on" or "file browser").
- Possible fix to pop_STLS_handler()
- Indicate on connect_one_IN() to try another port
when connection is timed out (not just when connection
is refused)
- Added reporting of current port to connect_remote_account()
when list of ports is tried.
- Fixed cancel_progress_X()
- Added STARTTLS support to SMTP or mail submission module
(used with use-mailer-library = smtp and use-connect-library = tls).
- Possible fix to handle_pop_capa_libs() and
handle_imap_capa_libs().
- Possible fix to process_lib_reg()
- Added init_library_REG -hook call to load_code0()
- Added check for new shared shared library code registration
to register_hidden_library()
- Added "verify-tls-certificate" and "require-tls-peer-name"
parameters (separated by ;) to "mailer = submission"
-value of global elm.rc option "mailer".
- Note that "require-tls-peer-name" checks STARTTLS certificate's
CN (common name) from certificate subject and does NOT check
DNS name from certificate.
WARNING: Check for "require-tls-peer-name" is currently
case sensitive. This also do not check against
wildcards (*) on certificate name -- * on
certificate name is treated as regular character.
- Added StreamVerifyName() and StreamOK() to lib/streamsched.c
- Added "verify-tls-certificate" and "require-tls-peer-name"
parameters to user's ~/.elm/mail.services and global
{etcdir}/elm.mailservices files. These are similar
than "verify-tls-certificate" and "require-tls-peer-name"
parameters for mailer = submission.
- Added remote_account_verify_peer() to lib/remote_mbx.c
- Added "@charset = " specification to user's ~/.elm/mail.services
and global {etcdir}/elm.mailservices files.
- Added "editor-ms-propline" elmrc option. This is similar
than "editor-elmrc-propline". If set to "emacs", then
when on user's mail.services file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-ms-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Added possible fix to dump_service_entry(),
parse_service_entries(), dequote_opt()
- Added free_service_entries()
- Refcounted struct service_entry
- Renamed free_remote_account() to clear_remote_account()
- Added remote_account_OK() to lib/remote_mbx.c
- Fixed case where last line of ~/.elm/mail.services was
not (always) parsed if there was not newline on last line.
- Allowed named port on port=xx
on ~/.elm/mail.services and
global {etcdir}/elm.mailservices files.
- Added doc/elmaliases-info. This is installed
to {lib}/elmrc-info. That is used when
{etcdir}/elm.elmaliases and
~/.elm/elmaliases are written.
- Added -C elmaliases-info option to
elmaliases-write
- Changed calling convention of dump_aliases_map(),
write_conf() and dump_conf_map_f() functions.
- Added doc/elmmimetypes-info. This is installed
to {lib}/elmmimetypes-info.
- Added -C elmmimetypes-info option to
elmmimetypes
- Changed calling convention of
dump_mime_types_map().
- Added doc/elmterminalinfo-info. This is installed
to {lib}/elmterminalinfo-info. That is used when
{etcdir}/elm.terminalinfo and ~/.elm/terminal.info
are written.
- Added -C elmterminalinfo-info option to
elmterminal
- Removed extra code from utils/elmterminal.c
- Changed calling convention of dump_terminal_map()
- Added doc/elmmimecharsets-info. This is installed
to {lib}/elmmimecharsets-info. That is used when
{etcdir}/elm.mimecharsets and ~/.elm/mime.charsets
are written.
- Added -C elmmimecharsets-info option to
elmcharset
- Changed calling convention of dump_by_MIBenum()
and dump_charset_map()
- Added insert_commentfile() to lib/misc/commentfile.c
- Fixed ConfTool/CharMap
- Added doc/elmmailinglists-info. This is installed
to {lib}/elmmailinglists-info. That is used when
{etcdir}/elm.mailinglists and ~/.elm/mailing.lists
are written.
- Added -C elmmailinglists-info option to
elmmailinglists
- Changed calling convention of dump_mlist_conf()
- Moved dump_service_entries() from lib/service_list.c
to lib/misc/service_list.c
- Added elmmailservices -command,
doc/elmmailservices-info, doc/mail.services,
doc/elmmailservices.1, ConfTool/GenMailServices
- Configure now copies doc/mail.services to
bin/elm.mailservices for installation
- Configure -M and Configure -S also (re)generates
elm.mailservices
- Configure does not read elm.mailservices from
elm global library directory. Instead existing
elm.mailservices from elm global library directory
is merged with bin/elm.mailservices during installation
(with -c option on elmmailservices).
- New values without merging are written to
elm.mailservices.NEW during installation.
- Added struct mail_services_conf. This represents
content of one mail.services or elm.mailservices
file.
- Changed calling convention of dump_service_entries(),
parse_service_entries()
- Implemented free_mail_services_conf(),
malloc_mail_services_conf(), tls_update_options(),
update_entry()
- Removed free_service_entries()
- Possible fix for match_item() in src/misc/mlist.c
New file:
src/pager/helper.c
src/browser_help.c
src/def_browser.h
shared_libs/smtp/shared_smtp.c
shared_libs/tls/smtp.c
shared_libs/include/shared_smtp.h
doc/elmaliases-info
doc/elmmimetypes-info
doc/elmterminalinfo-info
doc/elmmimecharsets-info
lib/misc/commentfile.c
doc/elmmailinglists-info
utils/elmmailservices.c
lib/misc/service_list.c
doc/elmmailservices.1
doc/mail.services
doc/elmmailservices-info
ConfTool/GenMailServices
New elmrc options:
editor-ms-propline
mime-encoded-filename-hack
New command line options:
--folder-selection
--have-double-wide-characters
New tool:
elmmailservices
SUMMARY: This release adds "folder-locking",
"pager-header-display-mode", "mailbox-locking"
and "mailhome-locking" global elm.rc (or user elmrc)
options, changes paging of long lines and header field
names on builtin++ pager and changes locking
of mailboxes and folders. This release adds '?' (help)
-command to Message Header Edit Screen. Also
'?' (help) on main and Elm 2.5 style file browser's
option menu changes. Then also some other changes
and bug fixes are included.
- Changed so that lib/stringbuffer.c does not store
long lines as whole to memory. Long lines are handled
as series of 1040-4000 character segments. This
segment handling does not cause extra newlines
when paged on builtin++ pager.
- New segment is added to line also when charset
changes.
- Added new elmrc option "pager-header-display-mode".
Value "plain" tells that header field names should be
shown as is and value "bold" (default) tells that
header field names should display as bold text on
builtin++ pager.
- That header field name is implemented as separate segment
on line when paged on builtin++ pager.
- Changed help listing of Elm 2.5 style file browser
commands so that file "help-fbrowser" is not used.
- Changed '?' (help) command on Elm 2.5 style file
browser so that per command help is shown first.
- Fixed crash (Segmentation fault) of 'I' command
on options menu.
- Changed help system of options menu so that
files "help-options" and "help-fboptions" is not used.
- Removed display_helpfile() from src/help.c
- Added '?' (help) -command to Message Header Edit
Screen.
- Added "X-MS-Exchange-Organization-" and
"X-Auto-Response-Suppress:" to default weedlist.
These headers are generated by Microsoft Exchange.
- Added selection of fcntl() or flock() locking with
elmrc or global elm.rc option. Configure still
asks defaults and also asks which folder/mailbox
locking are compiled (supported). New elmrc options
are "folder-locking" and "mailbox-locking". New
global elm.rc option "mailhome-locking" tells
locking of incoming mailboxes on mailhome (mail
spool directory). Option "mailbox-locking" tells
locking of other incoming mailboxes. Option
"folder-locking" tells what locking is used for
folders if "lock-folder" elmrc option is set.
- These locking options knowns following keywords
none None of values are selected
(can not be used)
lockfile Use {mailbox}.lock file
(can not be used with
folder-locking option)
flock Use flock() locking. flock()
does not lock files over NFS.
fcntl Use fcntl() locking.
These options also accepts additive form where
changes from compile time default (or changes from
global elm.rc) are listed:
+lockfile -lockfile
+flock -flock
+fcntl -fcntl
- Added new elmrc type rc_DT_FLAGS.
- Changed calling convention of save_file_stats()
New elmrc options:
folder-locking
pager-header-display-mode
mailbox-locking
mailhome-locking
New files:
lib/pager_lineext.c
hdrs/pg_lineext_imp.h
src/command/fbrowsercmd.c
src/command/opt_gencmd.c
hdrs/opt_imp.h
src/command/headercmd.c
Removed files:
doc/help-fbrowser
doc/help-options
doc/help-fboptions
SUMMARY: This release adds "pointflagged" elmrc option, adds
page as text on b)uiltin pager and '?' (help)
-commands to the MIME structure Menu and to the
Attachment Menu. This release changes Mime encoding
on headers and includes some other changes also.
This release fixes text/plain; format=flowed (RFC
3676) handling of UTF-7 -text, fixes Ctrl-K (Mail
PGP public key) -command, v)iew subparts command on
the Attachment Menu and some other bugs.
- Fixed p)rint and P)rint text command given
on message viewer so that "confirmprint" elmrc
option is not ignored on that situation.
- mime_write_part_headers() was failing to add
Content-Transfer-Encoding: x-uuencoded
header to part and include_part() did not handled
this correctly.
NOTE: Using any X-* encoding on [attach] or [include]
assumes that part is already encoded!
- Added name_selection_is_local() to
lib/mbox/common_local.c
- Added elmrc option "pointflagged", which cased when this
is set that Elm ME+ start up by pointing to the first
flagged message received, if possible. Elmrc option
"pointnew" takes precdence if set (default).
- Added
page as text on b)uiltin pager
to MIME structure Menu
- Added get_string_serialization_from_file()
to lib/sb_file.c
- Added put_string_serialization_to_file()
to lib/sb_file.c
- Builtin++ pager can now return command letter
to MIME structure Menu
- Added give_character_from_string() to lib/string.c
- Printed unknown one byte characters as ^uXX
hexadecimal on builtin++ pager. This is
specially used on page as text on b)uiltin
pager -command.
- Changed state_copy() and state_copy_range() on
lib/state.c so that they do not quit on output
failure.
- Fixed range counting of state_copy_range() on
lib/state.c
- Added resetting of found parameter to some
cs_give_unicode_from_*() routines.
- Added '?' command to the MIME structure Menu
- Added '?' command to the Attachment Menu
- Changed prompt from "Attachments: "
to "Mime structure: " on the MIME structure Menu
- Changed some message texts on the Attachment Menu
- Added some prompt texts to the Attachment Menu
- Fixed v)iew subparts so that it works also
on the Attachment Menu (and not only on MIME
structure Menu).
- Use system_charset when decoding attachment for
printing
- Do not MIME encode ascii prefix such as Re:
on Subject.
- Remote server was not set on [include ] and
[attach ] handling.
- On UTF-7 character set > -character is on
"optional direct characters" -set, therefore
> -character may be UTF-7 encoded. Changed so
melib/flowed.c operates with character values
(via struct string) and not with encoded
characters.
- Added state_putstring() to lib/state_out.c
- Added state_putstchar() to lib/state_out.c
- Added state_putunicode() to lib/state_out.c
- Added possible fix to state_putc() on
lib/state_out.c
- Added xterm-* entry to doc/terminal.info
- Fixed bug where Makefile-1.SH was not installing
$(ETC)/elm.mimecharsets $(ETC)/elm.terminalinfo
- Used *def_ans_yes / *def_ans_no on verify_transmission()
on src/mailmsg2.c
- Changed elmregister so that it does not write
$(ELM_ROOT) to elm.filelist. Otherwise rpmbuild
requires
export QA_SKIP_BUILD_ROOT=1
on spec file for Fedora 19.
- Fixed parsing
gpg --list-public-keys
output.
- Command Ctrl-K (^K) was not producing result. Replaced
send_msg_l() with send_msg_middle() on
pgp_mail_public_key() at src/pgp.c.
- Removed global pgp_status -variable.
- Removed global included_file -variable.
- Removed global batch_subject -variable.
- Added error message if subject is given with both
-s and -O options on Elm.
New elmrc options:
pointflagged
New file:
src/command/attach_menucmd.c
SUMMARY: This release makes some changes to
builtin++ pager, fixes some bugs,
changes Configure and fixes compilation on
Fedora 19.
WARNING: There are some changes on nm usage so it may
cause that different set of symbols are found.
Please report possible problems.
- Moved set_out_state_filter() resetting after retry attempt
at pgp_decode() on melib/pgp_decode.c
- Fixed compilation warning
config.h:19:1: warning: "/*" within comment
- Fixed possible bug on verify_remote_url()
at src/list/info.c
- Fixed possible bug on print_local_shared_options()
at lib/shared.c
- Fixed possible bug on get_copies() at src/mailmsg1.c
- Fixed possible bug on generate_reply_to()
at src/mkhdrs.c
- Fixed some warnings caused by -Wall with
gcc 4.4.3
- Removed some unused variables (not all)
- rcsid[] on top of files are now referenced
(most of files them are used on DEBUG_VAR macro).
- Added recording of wrapped positions on
builtin++ pager. This is used to estimate
better position from where start printing
mail when mail is browsed backwards to
beginning of mail.
NOTE: Because whole buffer is not wrapped
beforehand, jumping forward and also
backwards does not always produce
consistent result. Also because whole
buffer is not rewrapped after 'w' and
'W' commands also then jumping forward
and backwards does not always produce
consistent result.
- Fixed error message
Exited with status -1. Press any key to continue:
and bad gpg handling on copy_pgp() at
src/fileio.c. This is used if mail is NOT a
MIME message.
- "if I try to build elm-ME+2.5.alpha33 without
having specified a DEBUG build then the
DEBUG_PRINT_BUFFER() macro
doesn't get defined and four files appear to want to use it."
From: Kevin Buckley <kevin.m.buckley@gmail.com>
> Added definition of DEBUG_PRINT_BUFFER() macro
for case where DEBUG is not defined
- nm seems crash on Fedora 19. Try make Configure
output little more clear (it is not fatal).
- Fedora 19 have
include ld.so.conf.d/*.conf
line on /etc/ld.so.conf. Added Configure
check for that.
- Do not ask about global variables sys_errlist[] and
sys_nerr on Configure when strerror() exits
- Accept also 'i' on symbol type letters on nm so that
they are found on Fedora 19.
- Fixed my_wait() on lib/posixsig.c on case when
BACKGROUD_PROCESSES is not defined
- Fixed compilation of shared_libs/smtp/smtp.c when
BACKGROUD_PROCESSES is not defined
- Save also $nm_opts to config.sh
- If first nm fails, then use same sed expression
to nm -p output than was used to previous nm output.
- Changed default for Configure question
Your system has both index() and strchr(). Shall I use
index() rather than strchr()? [y]
to [n] on case where ANSI C is used
- Changed default for Configure question
Omit pathname from soname (as duplicate effort)? [n]
to [y]
- Added Configure question
Do you want install unformatted manual pages,
formatted manual pages of both ?
on case where installation prefix directory is set.
- Fixed redraw loop on builtin++
- Changed metapager() so that it does not call pager
if copy_body() fails.
- PressAnyKeyToContinue() returns now either '\0' or EOF
- Replaced
$(REG) copy -m 555 $? $@
with
$(REG) copy -m 755 $? $@
on Makefile.SH so that rpmbuild tools works better
on Fedora 19.
( Configure sets already $mailermode to either 2755
or 755. This is used for elm -binary. )
- Also replaced
$(REG) copy -m 444 {library} $@
or
$(REG) copy -m 444 $? $@
with
$(REG) copy -m 644 {library} $@
or
$(REG) copy -m 644 $? $@
on Makefile.SH where shared library is installed.
- Fixed or silenced some -Wall compilation warnings
on Fedora 19.
- Added possible fix to
mt_give_message_remote_server_partial()
- If configure does not found crypt() or cryptlib
and crypt.h is found, then try compile test it.
This fixes location of crypt() on Fedora 19 and
Ubuntu 12.04
WARNING: Resulting encoding with and without
crypt() is different for [encode]
(type application/X-ELM-encode). So old
messages can not decoded (easily). And format
does not tell if crypt() used for encryption
key. But same difficulty is also between
different machines.
- Used more $rmlist on Configure
New file:
src/pager/wraprecord.c
SUMMARY: This release adds RFC 3676 (content type
text/plain; format=flowed) support for
builtin++ pager. Rewrapping of flowed
paragraphs is not supported when replying
or forwarding mail or when viewing with
external pager. Flowed format is not
supported either when mail is sent. This
release adds two new commands to builtin++
pager ('W' for wrapping and 'w' for toggling
paragraph width), and adds
"pager-indicate-wrapping",
"pager-paragraph-width", "@charset" and
"editor-elmrc-propline" elmrc options. Also
crash when viewing thread is fixed. And
then this release includes some other
changes also.
- Moved message line printing code of builtinplusplus()
on src/builtin++.c to new routine span_line() on
src/pager/span_line.c
- Changed implementation builtinplusplus() to use
span_line() routine. This also may fix potential bug
on UNICODE_NO_BREAK_SPACE, UNICODE_SOFT_HYPHEN
handling of builtin++ pager.
- Added "pager-indicate-wrapping" elmrc option. If set
(default), builtin pager uses \ character to indicate
wrapping.
- Added struct pager_range which convey information
for quotation, word wrapping, and flowed paragraphs.
- Used struct pager_range on struct decode_opts
- Used struct pager_range for printing of quote prefix
- Added handling of "format" -parameter for text/plain
- Added handling of "delsp" -parameter for
text/plain; format=flowed
RFC 3676: The Text/Plain Format and DelSp Parameters
- Adding parsing for mime type
text/plain; format=flowed
This (RFC 3676) is supported when mail is viewed with
builtin pager.
- This format specifies that lines which end to space
followed by line which does not end to space forms
paragraphs which are rewrapped on display. This rewrapping
is done on builtin pager (but not on when other
pager is used or when mail is replied).
- When printing quoted lines (as defined on RFC 2676),
"prefix" elmrc option is used for quotation. When quotation
level > 1 last printable character is repeated.
- On format=flowed messages when builtin pager wraps fixed lines
(and prints \ character if "pager-indicate-wrapping" elmrc
option is set) possible quotation prefix is reprinted
if needed (when quotation level is non-zero). That produces
somewhat different result than how other fixed lines
(which are not part of flowed format) are handled on line wrapping.
- Fixed nls/gencat/Makefile.SH
- Fixed nls/gencat/dumpmsg.c compilation.
- Added 'W' command to builtin pager. This forces word
wrapping or toggles it on/off. This does not affect
fixed lines when mime type
text/plain; format=flowed
or
text/plain; format=fixed
is used. Also this does not affect flowed paragraphs
when mime type
text/plain; format=flowed
is used.
- Added "pager-paragraph-width" elmrc option. Positive
value indicate preferred width for flowed (word wrapped)
paragraph. This is not hard limit, words may also
wrapped after this with, if they with to screen width.
Negative value indicate preferred distance from
screen edge. Default value is 70 characters.
Set "pager-paragraph-width" to 0, if you want whole
screen width to be used
for paragraphs.
- Added 'w' command to builtin pager. This toggles
paragraph width between of "pager-paragraph-width"
elmrc option option value and full width of screen.
- Added menu_WriteUnicode() to src/screen/screen.c
- Moved struct sb_in_file from hdrs/sb_imp.h to
lib/sb_file.c
- Moved struct sb_in_mem from hdrs/sb_imp.h to
lib/sb_mem.c
- Moved struct stringbuffer from hdrs/elmlib.h
to hdrs/sb_imp.h
- Removed struct sb_private_data from hdrs/sb_imp.h
- Moved struct charset_state from hdrs/elmlib.h
to hdrs/cs_imp.h
- Added get_state_charset() to lib/charset_input.c
- Added set_state_caller_flags() to lib/charset_input.c
- Added get_state_caller_flags() to lib/charset_input.c
- Removed struct state_private_data from hdrs/cs_imp.h
- Added DEBUG_PRINT_BUFFER() macro.
- Added debug_print_buffer() to lib/debug.c
- Added missing mt_give_message_remote_server_thread()
to src/messages/thread_messages.c
This fixes crash when viewing thread.
- Added @charset option to elmrc -- this specifies
character set used on global elm.rc or on user's
elmrc. Lines are converted from this character
set to system (locale) character set. If file does
not have @charset option or tag (on top of file), system
(locale) character set is used. That @charset
option value is local to that file (and @charset
on global elm.rc does not effect parsing of
user's elm.rc).
- When writing global elm.rc or user's elmrc, value
of character set is written to @charset option on
top of file. Normally this is current system (locale)
charset, but also UTF-8 may be used.
- The global elm.rc or on user's elmrc are read
on two pass. Following options are interpreted as
ASCII only and are done without taking account
system (locale) character set or @charset option:
@charset
bindata
editor-elmrc-propline
hostdomain
hostfullname
hostname
mailname
name-resolution
unidata
- Moved do_rc() from lib/read.rc to lib/rc_parse.c and
splitted to do_rc_parse() and do_rc_process().
- Added flag argument to string_matches_ascii()
- Changed charset handling on elm.rc routines
- Added new elmrc option type rc_DT_STRING.
This is for elmrc options which have type
struct string.
* This stores values from global elm.rc or on user's
elmrc file without converting them first
to system (locale) character set.
- Reimplemented elmrc option "prefix" as
rc_DT_STRING
- Reimplemented elmrc option "fullname" as
rc_DT_STRING
- Reimplemented elmrc option "attribution"
and "fwdattribution" as rc_DT_STRING
- Changed comment which elmrc-write writes to ~/.elm/elmrc
file.
- Added "editor-elmrc-propline" elmrc option.
If set to "emacs", then when writing global
elm.rc or on user's elmrc file, line
# -*- coding: ... -*-
is added to top of file. That line is also written
if "editor-elmrc-propline" elmrc option is
set to "auto" (default) and line detected
when file is read.
If set to "ignore", then editor property line
# -*- coding: ... -*-
on top of file is ignored.
- Added iso-latin-1 and latin-1 to ConfTool/charaliases.map
as aliases of ISO-8859-1
- Added iso-latin-2 and latin-2 to ConfTool/charaliases.map
as aliases of ISO-8859-2
- Added iso-latin-3 and latin-3 to ConfTool/charaliases.map
as aliases of ISO-8859-3
- Added iso-latin-4 and latin-4 to ConfTool/charaliases.map
as aliases of ISO-8859-4
- Added iso-latin-5 and latin-5 to ConfTool/charaliases.map
as aliases of ISO-8859-9
- Added iso-latin-6 and latin-6 to ConfTool/charaliases.map
as aliases of ISO-8859-10
- Added iso-latin-7 and latin-7 to ConfTool/charaliases.map
as aliases of ISO-8859-13
- Added iso-latin-8 and latin-8 to ConfTool/charaliases.map
as aliases of ISO-8859-14
- Added iso-latin-9 to ConfTool/charaliases.map
as aliases of ISO-8859-15
New elmrc options:
pager-indicate-wrapping
pager-paragraph-width
@charset
editor-elmrc-propline
New files:
src/pager/Makefile.SH
src/pager/def_pager.h
hdrs/pager.h
src/pager/span_line.c
src/pager/span_range.c
lib/pager_range.c
hdrs/pg_range_imp.h
melib/flowed.c
lib/rc_propline.c
lib/rc_parse.c
SUMMARY: This release changes elmregister, removes
obsolete man or catman pages, adds handling
of '$' (or F5) command letter to duplicate
removal (Ed) and A)ssemble message fragments
-screens, and adds 'S' status letter file and
folder browser. Also some other changes and bug
fixes are included.
- In IMAP login failure wait for
sleepmsg seconds on cache_login_imap() so that
LOGOUT does not clear possible error message
- Added some compilation fixes for case when
POLL_METHOD is undefined
- Fixed local-lockfile-pidcheck option so
that qualified hostname is also
accepted on {mailbox}.lock file.
- Elm2.4ME+ PL97 (25) added check to
Configure that is elm's shared library
directory on /etc/ld.so.conf. That check
does not take account, if /etc/ld.so.conf
have line
include /etc/ld.so.conf.d/*.conf
Added check for that.
- Added removal of man or catman pages on
installation if they are excluded from
installation.
- Added commands
elmregister classify {class} {file}...
elmregister rmclass {class}
- Added -v (verbose) option to commands
elmregister uninstall
elmregister master
Changed so that "elmregister uninstall" and
"elmregister master" does not print some messages
(without -v (verbose) option).
- Added small fix to uninstall_list() on
elmregister uninstall
command.
- Added that ELM_INSTALLER_VERBOSE=1 environment
variable also turns -v (verbose) option on
elmregister.
- Added compression of version listing on elm.filelist
when rewriting it.
- Documented environment variables on elmregister
manual page.
- Elm ME+ tries check MAX_ATTEMPTS times (given
on Configure) for the removal of the {mailbox}.lock
file. After that many tries lock file is removed
if it more that 10 minutes old (and mailbox is
not accessed). Added extra check that {mailbox}.lock
is always read (even when local-lockfile-pidcheck
option is "no") and access time is compared with
modify time. If modify time is less than 5
minutes old compared to access time (before
checks for removal of the {mailbox}.lock
file), then also file is NOT considered old
enough for removal after it is checked
MAX_ATTEMPTS times. This may perhaps help
when file is on NFS server and clocks does
not have on synchronized. This check does not work
if filesystem is mounted with noatime or relatime
option.
- Fixed compilation warning
dumpmsg.c:73: warning: incompatible implicit
declaration of built-in function ‘exit’
- Some fixes to nls/gencat/Makefile.SH
- Do not report
Couldn't parse the lock file {mailbox}.lock
if {mailbox}.lock includes value 0 as pid.
- Wait sleepmsg seconds after {mailbox}.lock
is removed (and lock file {mailbox}.lock recreated)
so that message
Timed out - removing current lock file...
is visible.
- Changed $d_netinet_in to $i_netinet_in on Configure
(#include <netinet/in.h>)
- Added $i_arpa_inet to Configure
(#include <arpa/inet.h>)
- Changed $d_socket to $i_sys_socket on Configure
(#include <sys/socket.h>) and changed I_SOCKET
macro to I_SYS_SOCKET
- Changed $d_netdb to $i_netdb on Configure
(#include <netdeb.h>)
- Changed $d_locale to $i_locale on Configure
(#include <locale.h>)
- Changed $d_nl_types to $i_nl_types on Configure
(#include <nl_types.h>)
- Changed duplicate removal (Ed) -screen so that
'$' and F5 does resynchronization ('$') -command
on caller's main_message_loop().
- Changed A)ssemble message fragments -screen so that
'$' and F5 does resynchronization ('$') -command
on caller's main_message_loop().
- These actions on duplicate removal (Ed) and
A)ssemble message fragments -screen are not
available if this screen is called from
V)iew digest as mailbox -screen.
- Changed Elm ME+ style file and folder browser
shows 'S' letter for mailboxes (on mail spool directory
and files on directory given be "extra-mailbox-dir"
elmrc option and files listen on "incomingfolders"
elmrc option, and files with special modes
(mode 04600)) if they have corresponding temporary
file (sessionlock file). Location of that sessionlock
file is affected by global elm.rc option
"local-sessionlock-dir" and
"local-sessionlock-use-home". Also letter 'S'
is shown on Elm ME+ style file and folder browser
if there is corresponding temporary file (sessionlock
file) for default mailbox.
* This does NOT take account 'Magic mode' (treat all folders
as spool files).
- Fixed Configure error
Testing if mmap() works ...
mmap.c:15: warning: function declaration isn’t a prototype
- Removed NEED_REOPEN_AFTER_FAILED_CONNECT question
and $d_connect_reopen from Configure. That is now
always assumed.
- Fixed Configure test programs
- Added Configure test/question for getopt() that it allows
resetting scanning of argument vector with getopt()
be setting optind = 1.
- Fixed problem where, if first saving of message fails
(command 'C' or 's') because target is locked, then
message is not saved when another file name is given.
- Small fix to doc/Makefile.SH
SUMMARY: This release adds [send-as-charset ...]
and [no keywords] commands (or keywords)
for editor buffer, changes the handling
of dotlock ({mailbox}.lock) file, adds
"local-lockfile-pidcheck" global elm.rc
option. Also some other changes and bug
fixes are included.
- Added handling of UNICODE_SOFT_HYPHEN (0x00AD),
UNICODE_NO_BREAK_SPACE (0x00A0) and
UNICODE_BAD_CHAR(0xFFFD) on bultin pager although
they was already handled on cur_PutLineS() on
src/screen/curses.c
- Printed unicode control characters (> 0x007F)
as ^uXXXX hexadecimal on builtin pager. This
uses unicode values although mail's charset is
not unicode. Other non-printable characters are
printed with ? still.
- Moved unicode_ch() and UOP_xxx from hdrs/cs_imp.h
to hdrs/elmlib.h
- Added small fix to unicode_ch()
- Added [send-as-charset ...] command. This works
as "text-charset" elmrc option, but effects only
to current mail message. Notice that this may
be ignored on same situations than "text-charset"
elmrc option.
- Added [no keywords] command. This disables
further keywords on buffer.
- If saving of message was canceled, temporary tagging
of message was not properly cleared.
Problem noted by: Laura Kataja
- Added "local-lockfile-pidcheck" elmrc option:
no Do not check pid on file
yes Remove lockfile if given pid does not exists
hostname Remove lockfile if given pid does not exists.
Write pid@hostname format.
ignore-hostname remove lockfile if given
pid does not exists. Do not check
@hostname part.
require-hostname remove lockfile if given
pid does not exists and @hostname
part exists (and matches).
Write pid@hostname format.
Default is "hostname".
> Now by default also hostname is written to
{mailbox}.lock lockfile. This should partially
protect Elm to remove lockfile if /var/mail is
shared via NFS and mailbox is read on another
machine.
> If program parses pid on mailbox.lock with atoi()
it does not hurt that there is @hostname after
pid.
> On other machine than where mail is delivered
to mailbox, value "require-hostname" should
be used for "local-lockfile-pidcheck" elmrc option.
- Added constants (enum pgp_sign_type_v)
for ENUMERATE pgp_sign_type
- Added constants (enum pgp_encrypt_type_v)
for ENUMERATE pgp_encrypt_type
- Added constants (enum auto_attachment_v)
for ENUMERATE auto_attachment
- Added constants (enum browser_wildcards_v)
for ENUMERATE browser_wildcards
- Added constants (enum folder_status_v)
for ENUMERATE def_folder_status
- Added constants (enum mime_parameters_v)
for ENUMERATE mime_parameters
- Added constants (enum env_from_source_v)
for ENUMERATE env_from_source
- Added constants (enum fragment_handling_v)
for ENUMERATE fragment_handling
- Added constants (enum phrase_display_mode_v)
for ENUMERATE phrase_display_mode
- Added constants (enum local_seslck_use_home_v)
for ENUMERATE local_sessionlock_use_home
- Added constants (enum message_hide_v)
for ENUMERATE message_hide_hack
- Added constants (enum allow_no_encoding_v)
for ENUMERATE allow_no_encoding
- Added constants (enum show_header_errors_v)
for ENUMERATE show_header_errors_e
- Added constants (enum user_level_v)
for ENUMERATE user_level
New elmrc option:
local-lockfile-pidcheck
SUMMARY: This release changes implementation of
"pager", "editor" and "alteditor" elmrc
options, fixes some bugs (including
crash when file with too long file name is
attached) and changes elm.rc help texts.
- Changed that give_dt_estr_as_str() returns const char *
instead of char *. Changed many function that they
take const char * instead of char * as argument.
- Added join_argvc1() to lib/syscall.c
- Changed that have_printout() returns const char *
instead of char *.
- Changed that have_metamail() returns const char *
instead of char *.
- Added error message "Mailer (type %s) assumed"
- Changed configure search first /var/mail
instead of /usr/spool/mail for incoming mail
spool directory.
- Changed comments referring bzero on hdrs/defs.h
to refer bzero on hdrs/elm_defs.h
- Used have_metamail() on show_msg()
- Fixed some misspellings.
Patch from: Vandeir Silva <vandeir@silva.info>
- Added a missing function in the "write_rc.c" to print
the ".elm/elmrc - options file for the ELM mail system"
line.
Patch from: Vandeir Silva <vandeir@silva.info>
> That text was on src/save_opts.c and
probably lost on Elm ME+ 2.5 PLalpha5
and Elm 2.4ME+ PL122 (25). Added also condition
that this text is not written when writing global
elm.rc.
- Changed help text of "pagealternative" elmrc
option on doc/elmrc-info.
Patch from: Vandeir Silva <vandeir@silva.info>
- Fixed some texts on doc/elmrc-info.
From: Vandeir Silva <vandeir@silva.info>
- Changed elmrc rc_DT_ESTR variables implementation
so that they can take keywords (on first line)
and list of flags on continuation line. Possible
flags are reset when elmrc rc_DT_ESTR variable is set.
- Changed that give_dt_estr_as_str() so that it
takes parameters (pointers) for reading possible keyword
and these flags of elmrc rc_DT_ESTR variable.
- Added ESTR_print_expanded flag to elmrc rc_DT_ESTR variables.
If that flag is set, text after # character is ignored
for variable value and expanded value is written after
# character when variable is saved to elmrc or
global elm.rc
- Changed "pager" elmrc option so that values
"builtin", "builtin+", "builtin++", "internal" are
implemented as rc_DT_ESTR variable keywords.
- Added value "use-$PAGER" for use as continuation line
flag on "pager" elmrc option. That flag is set by
default (if compilation time definition USE_BUILTIN_PAGER is
not used), but it is reset when "pager" elmrc option
is set.
- After # character there is written expanded value
of "pager" variable on elmrc file when it is saved.
- Changed "editor" elmrc option so that values
"builtin", "internal" are implemented as rc_DT_ESTR
variable keyword.
- Added value "use-$EDITOR" for use as continuation line
flag on "editor" elmrc option. That flag is set by
default , but it is reset when "editor" elmrc option
is set.
- After # character there is written expanded value
of "editor" option on elmrc file when it is saved.
- Value "none" on "editor" and "pager" elmrc option
is handled also specially.
- Some compilation fixes for genlib.c on
Ubuntu 10.04.4 LTS
- Fixed crash on gen_splitted_ascii_param()
when file with too long filename was attached:
Couldn't malloc -79 bytes!!
PANIC in utils.c:92:malloc_failed_exit
>>>Out of memory
Call stack: 6405A6 80DFFDA 6514C8 C3ED27 C3F6AC
continues: 80733B5 80772F4 80A2E96 80887B5 9A0BD6
continues: 805F891
backtrace:
/usr/local/lib/libelmme-base.so.1.1.29+(panic+0x1e8)[0x6405a6]
bin/elm-shared(malloc_failed_exit+0xe2)[0x80dffda]
/usr/local/lib/libelmme-base.so.1.1.29+(safe_malloc+0x7c)[0x6514c8]
/usr/local/lib/libelmme-mime.so.1.1.29+(+0x16d27)[0xc3ed27]
/usr/local/lib/libelmme-mime.so.1.1.29+(mime_params_add+0x1f1)[0xc3f6ac]
bin/elm-shared[0x80733b5]
bin/elm-shared(Check_attachments+0xa8)[0x80772f4]
bin/elm-shared(initialize+0xaab)[0x80a2e96]
bin/elm-shared(main+0xe7)[0x80887b5]
- Changed that malloc_failed_exit() used %u on instead
of %d in error message because argument is
'unsigned len'
> That changes crash message to
Couldn't malloc 4294967217 bytes!!
- Reimplemented elmrc option "alteditor" as rc_DT_ESTR
- Changed "alteditor" elmrc option so that value "EDITOR"
is implemented as rc_DT_ESTR variable keyword.
WARNING: On some situations "alteditor = EDITOR" may
use old value of "editor" when value of "editor"
is changed after value of "alteditor" elmrc
variable is set.
- Added value "use-$EDITOR" for use as continuation line
flag on "alteditor" elmrc option. That flag is set by
default , but it is reset when "alteditor" elmrc option
is set.
- After # character there is written expanded value
of "alteditor" variable on elmrc file when it is saved.
- Value "none" on "alteditor" elmrc option
is handled also specially.
- Added value "use-$VISUAL" for use as continuation line
flag on "editor" and "alteditor" elmrc options. That
flag is set by default , but it is reset when "alteditor"
elmrc option is set. If both environment variables
$VISUAL and $EDITOR are set and both continuation line
flags "use-$EDITOR" and "use-$VISUAL" are set, then
$EDITOR environment variable is used.
- Used have_editor() on edit_a_file() on src/edit.c
- Used have_editor() on attach_edit () on src/attach_menu.c
- Changed edit_the_message() so that NULL is passed
as editor if "editor" or "alteditor" elmrc
variable is used.
- Fixed e)dit -command menu text on aliases.
- Added menu_trigger_redraw(page) to edit_a_file()
SUMMARY: This release changes how decoding of
content-transfer-encoding is done, uses
exit values from sysexits.h, adds "mailname"
and "name-resolution" global elm.rc options,
changes initialization of "hostdomain",
"hostfullname" and (in some cases) "hostname"
global elm.rc options, adds support for
/etc/mailname on Debian systems. Also some
other changes and bug fixes are included.
- Added in_state_needs_encoding() to lib/misc/mimesend.c
- Changed needs_encoding() on lib/misc/mimesend.c
to use in_state_needs_encoding()
- Added STATE_in_decode type for struct in_state.
This handles decoding of Content-Transfer-Encoding.
- Moved struct in_state from lib/state_in.c
to hdrs/state_imp.h
- Added seekable_si_file() to lib/state_in.c
- Added ftell_si_file() to lib/state_in.c
- Added fseek_si_file() to lib/state_in.c
- Added in_state_error_message() to lib/state_in.c
- Added errmsg_si_file() to lib/state_in.c
- Added in_state_ferror() to lib/state_in.c
- Added in_state_feof() to lib/state_in.c
- Added ferror_si_file() to lib/state_in.c
- Added feof_si_file() to lib/state_in.c
- Added state_gets_helper() to lib/state_in_gets.c
- Added state_getl_helper() to lib/state_in_gets.c
- Used STATE_in_decode in text_decode() on
melib/mime_decode.c
- Used STATE_in_decode in get_decoded_attachment()
on src/attach_menu.c
- Used STATE_in_decode in mmsg_copy_part()
on src/mailmsg2.c
- Used STATE_in_decode in pgp_SG_decoder()
on melib/pgp_decode.c
- Used STATE_in_decode in elm_decode()
on melib/mime_decode.c
- Used STATE_in_decode in mime_decode()
on melib/mime_selector.c
- Used STATE_in_decode in pgp_decode()
on melib/pgp_decode.c
- Used STATE_in_decode in pgp_EC_decoder()
on melib/pgp_decode.c
- used STATE_in_decode in simple_mime_walk()
on melib/mimewalk.c
- Changed calling convention of simple_mime_walk()
- Changed calling convention of mmsg_copy_part()
- Removed arrange_decoded() from melib/mime_decode.c
- Removed run_cte_decoder() from melib/mime_decode.c
- Removed base64_decode() from melib/mime_decode.c
- Removed uudecode() from melib/mime_decode.c
- Removed quoted_printable_decode() from
melib/mime_decode.c
- Fixed pgp_EC_decoder() so that it does not ask PGP
passphrase if "usepgppass" elmrc option is not set.
- Added inc_in_state_refcount() to lib/state_in.c.
Decrementing of refcount is done by free_in_state()
- STATE_in_decode increments refcount of source.
- Added is_valid_encoding() to melib/state_decode.c
- Used is_valid_encoding() in mime_classify_media()
on melib/mime_selector.c
- Documented -C elmrc-info option on manual page of
elmrc-write.
- Documented %{letter} codes used on attribution and
fwdattribution options on elmrc-info file (that goes
to comments of elmrc file)
- Used /usr/include/sysexits.h for printing
of mailer (specially sendmail) errors.
- Mailer exit status is returned as elm's exit
status on send only mode if mailer completed
with time given in "background-wait-time" elmrc
option. If mailer is put to background elm
returns 0 (success). In that case error is lost.
- Mailer exit status is returned as fastmail's exit
status if mailer completed with time given in
"background-wait-time" elmrc option.
- Fastmail returns exit codes of sysexits.h on
some situations if sysexits.h is available.
- If sysexits.h is available and mailer = submission
or mailer = sendmail-bs global elm.rc option is
used, elm's and fastmail's exit status is
converted from corresponding submission or
SMTP status code.
- Removed mail_form() from src/mailmsg2.c
- Added some new checks to Makefile
- Added free_rc_options() to lib/read_rc.c
- Added free_delayed_rc_options() to lib/rc_delay.c
- Added free_shared_rc_options() to lib/shared.c
- if DT_FUNC option's function does not provide
value, print value as
### option-name (not set)
- If &rc_DT_DELAY option do not have saved lines
and no real option is available, print value as
### option-name (not set)
- Added backtrace() call to lib/panic.c
- Added panic_print_backtrace() to lib/debug.c
- Changed $d_inttypes to $i_inttypes on Configure
(#include <inttypes.h>)
- Possible fix on optimize_and_add() on
src/reply.c
- Added PATH_ascii_only flag to DT_PATH.
- Marked that "alternatives" elmrc option accepts only
ASCII characters on e-mail addresses.
- Added "mailname" elmrc option. That is name used
for after the @ -character on addresses and aliases
of that. It similar than "alternatives" elmrc option,
but includes only part after the @ -character. It can
used only on global elm.rc. Only ASCII characters are
allowed on names.
- Added that optimize_and_add() on src/reply.c splits
address to user@mail.domain similar than addr_is_user()
on lib/okay_addr.c does and compares mail.domain
on case insensitive manner.
- Also names given on "mailname" elmrc option are
considered to be equivalent when constructing reply
addresses.
- If "mailname = none" then "hostfullname" elmrc option
is used instead, when sending mail.
- If on "mailer" elmrc option have "use-domain=yes"
then first name from "mailname" elmrc option
is used for adding "@mail.domain" to email addresses.
- If "mailname = none" then no any address with
@mail.domain -part is considered to be local.
- Changed how elmrc options "hostdomain" and
"hostfullname" are initialized.
- If elmrc gives "hostfullname" but not "hostdomain"
and on "hostfullname" there is at least two dots,
then "hostdomain" is derived from "hostfullname"
directly. Also missing "hostname" is generated
on that case.
- "mailname" elmrc option defaults to "hostfullname"
elmrc option and then "hostdomain". After that names
returned by gethostbyname() are used on default value
of "mailname" elmrc option. Also address
literals formed from IPv4 addresses returned by
gethostbyname() are added to default value of "mailname".
- gethostbyname() is used now only once when initializing
"hostdomain". Now it is called only after global elm.rc
is read.
- Also gethostbyname() result is used to initialize
missing "hostname" (if returned primary name does not
include dot).
- Now "hostdomain" and "hostfullname" is initialized
after elm.rc is read if elm.rc does not give then.
On earlier default values for "hostdomain" and "hostfullname"
was generated before elm.rc was read.
- Added support for /etc/mailname on Debian systems.
Configure asks that should content of this file
added to first value for "mailname" elm.rc option.
- /etc/mailname file is NOT used initialize any other
elm.rc options except "mailname". Specially
/etc/mailname file does not effect elm.rc options
"hostname", "hostfullname" and "hostdomain".
- Added "name-resolution" elmrc option. This tells
how default values for "hostname", "hostfullname",
"hostdomain" and "mailname" elmrc options are generated.
Option includes list of keywords:
none None of values are selected
gethostname Use gethostname()
lookup Use gethostbyname()
getdomainname Use getdomainname()
mailname-file Use /etc/mailname (on
Debian systems)
The "name-resolution" elm.rc option accepts two forms:
- Absolute form where used options are listed
- Additive form where changes from compile
time default are listed:
+gethostname -gethostname
+lookup -lookup
+getdomainname -getdomainname
+mailname-file -mailname-file
These two forms can not be mixed.
- Added have_name_resolution(), name_resolution_tag(),
name_resolution_gives(), name_resolution_errno(),
name_resolution_okname() and nameresfunc() to lib/read.rc
For more information see chapter "Name resolution".
- Added from_addr_literal1() to lib/mailer/outheaders.c
- Changed how command line options are parsed.
> That includes resetting of scanning by setting
optind = 1
on some machines this seems cause problems
(installation failes)
- Added set_early_options() to src/args.c
- Fixed bug where fullname was not added to plain
username when just username was entered. This
bug is probably introduced on Elm ME+ 2.5 PLalpha15
- Fixed '=' expansion bug on expand_dt_path()
- Check that "maildir" is defined on create_new_folders()
- Added possible fix to MO_default_value()
on lib/mailer/mailer.c
New files:
melib/state_decode.c
lib/state_in_gets.c
New elmrc options:
mailname
name-resolution
SUMMARY: This release fixes some bugs, changes
Configure and fixes compilation on
Ubuntu 11.10.
- Do not print error message
Failed to connect XXXXX: Success
- Do not print message
mime_decode: no handler selected
if there is header
Content-Transfer-Encoding: x-uuencoded
There is decoder for uuencoded encoding.
- Fixed 'Configure -Odir' option (it was
working only on form 'Configure -O dir').
- Added 'Configure -O-' option. This uses
'uname -sn' for build directory.
- On Ubuntu 11.10 release has libc.so.6
on strange location. Now configure uses
result of test compilation and /usr/bin/ldd
to locate libc.so on that case.
- Changed that Configure uses compiling test for
F_SETLK on linux
- Changed that Configue defaults both flock
and fcntl locking on Linux 3.*
- Changed that OpenSSL is tried to be located
from same directory than from where libc.so.6
found (on Ubuntu 11.10 release).
- When creating (linking) libelmme-base.so, link it
with -ldl. Seems that it is not enough that programs
are linked with -ldl (on Ubuntu 11.10 release).
- Removed val -argument from expand_dt_estr()
- Fixed some compilation warnings on Ubuntu 10.04.3 LTS release
(on x86_64).
- Changed Configure so that if the question
Give the name of the ispell program on your system:
is answered with "none", addition of ispell
option to the pre-send menu is canceled.
- "Hi, found a typo in file src/hdrconfg.c
line 1020:
CATGETS(elm_msg_cat, ElmSet
should be:
CATGETS(elm_msg_cat, ElmSet,"
From: wim meest <wim.meest@gmail.com>
> Added missing ',' to line 1019. Line 1020
was actually correct.
SUMMARY: This release fixes some bugs, adds & -prefix to
folder browser (indicating current IMAP server),
adds "mailcap-blacklist-programs" elmrc option (where
wine and shells are forbidden) and adds many types
to doc/mime.types (to /usr/local/lib/elm.mimetypes
normally).
- Added creation of doc/catman on build directory to
ConfTool/Substitute
- Added & -prefix to folder browser. That indicates current
remote server (that is folder listing of IMAP server).
Current IMAP directory depends of which mailbox or folder is
open.
- Is several folders are open then current remote server
depends on what mail is selected.
- Currently & -prefix opens new IMAP connection to server.
It does not use existing connection. In that sense &
-prefix works similar than macro.
- If current remote server is POP server, then & -prefix
tries open IMAP connection to same server if folder
listing (or saving of mail) is tried.
- If currently open folder is local, then & -prefix
also refers to local folder directory ("maildir"
elmrc option is used)
- & alone and &INBOX refers to incoming mailbox
on current server. If currently open folder is local,
"incoming-mailbox" elmrc option is used, if that
points to local file.
- Moved locate_from_cache(), remove_from_cache(),
create_connection(), free_connection(), join_connection(),
login_connection(), folder_from_connection(),
browser_from_connection(), close_connection(),
close_cached_connections(), cache_connection()
from lib/remote_mbx.c to lib/mbox/connection.c
- Moved part of IMAP code from lib/mbox/imap.c
to lib/mbox/con_imap.c
- Renamed change_type() on savefolder.c to
change_folder_browser_type()
- Added check to pop_push_command() that
pop_state is not POP_not_logged
- Added missing pop_push_command() return value
check to pop_open_connection()
- Fixed wrong check on start_imap_command()
- Added check to on start_imap_command() that
imap_state is not IMAP_closing
- Changed message
Please fix [include ...] lines!
to
Please fix [include ...] and other [keyword] lines!
- Removed fix_imap_selection() and added special case
to fullname_from_imap_selection()
- Implemented out_state_ferror() also on STATE_out_dir
and used that on copy_message_2()
- Fixed seekable_so_dir()
- Added possible fix to browser_descend_dummy()
- "Attached is a patch file that would allow a Mac to build
elm-ME+2.5 with less problems. This patch should also work
with elm2.4.ME+ and may even work with elm2.5.8. The patch
does two things. It allows Configure to find
/usr/lib/libc.dylib and it tells Configure not to allow
fcntl style locking on a Mac."
From: dansdragon <dansdragon@gmail.com>
- On some Ubuntu releases there /etc/mailcap entries
like
application/exe; /usr/bin/wine '%s'; description=Windows Executable
Added elmrc option "mailcap-blacklist-programs"
which disables metamail if given program is
used on metamail-mailcaps and type is used on mail and
also disables these entries on internal-mailcaps.
> By default mailcap-blacklist-programs includes
/usr/bin/wine, wine, /bin/sh, sh. This assumes that shell
is used something like
application/sh; /bin/sh %s
which is blacklisted.
* If getusershell() is available, default value of
mailcap-blacklist-programs includes shells from
/etc/shells
> However /bin/true or /bin/false are not added to
mailcap-blacklist-programs.
- Fixed envelope sender address documentation on
shared_libs/smtp/README.ME+ file.
- Reset InGetPrompt flag on src/signals.c handlers.
- Reset wait_can_signal on src/signals.c handlers.
> But these are mess anyway...
- Added following new types to doc/mime.types file:
application/vnd.oasis.opendocument.database
application/vnd.google-earth.kmz
application/exi
application/oxps
application/rtf
application/vnd.acucobol
application/vnd.adobe.fxp
application/vnd.airzip.filesecure.azf
application/vnd.airzip.filesecure.azs
application/vnd.aristanetworks.swi
application/vnd.cloanto.rp9
application/vnd.cups-ppd
application/vnd.ericsson.quickcall
application/vnd.font-fontforge-sfd
application/vnd.fujixerox.ddd
application/vnd.fuzzysheet
application/vnd.hp-jlyt
application/vnd.iccprofile
application/vnd.informix-visionary
application/vnd.isac.fcs
application/vnd.jcp.javame.midlet-rms
application/vnd.joost.joda-archive
application/vnd.kidspiration
application/vnd.Kinar
application/vnd.MFER
application/vnd.ms-htmlhelp
application/vnd.multiad.creator
application/vnd.multiad.creator.cif
application/vnd.mynfc
application/vnd.olpc-sugar
application/vnd.osgeo.mapguide.package
application/vnd.osgi.bundle
application/vnd.osgi.dp
application/vnd.piaccess.application-licence
application/vnd.picsel
application/vnd.preminet
application/vnd.Quark.QuarkXPress
application/vnd.scribus
application/vnd.smart.teacher
application/vnd.stepmania.package
application/vnd.tcpdump.pcap
application/vnd.unity
application/vnd.vidsoft.vidconference
application/vnd.wqd
application/vnd.xara
application/widget
application/vnd.clonk.c4group
audio/AMR-WB
audio/dls
audio/EVRCB
audio/EVRC
audio/EVRCWB
audio/qcelp
audio/iLBC
audio/mobile-xmf
video/ogg
audio/ogg
audio/prs.sid
audio/SMV
audio/sp-midi
audio/vnd.dolby.mlp
audio/vnd.everad.plj
audio/vnd.lucent.voice
audio/vnd.rip
image/fits
image/ktx
image/t38
image/tiff
image/tiff-fx
image/vnd.djvu
image/vnd.dwg
image/vnd.svf
image/vnd.fujixerox.edmics-mmr
image/vnd.fujixerox.edmics-rlc
image/vnd.globalgraphics.pgb
image/vnd.microsoft.icon
image/vnd.radiance
text/vnd.abc
text/vnd.FMI.FLEXSTOR
text/vnd.trolltech.linguist
text/xml
text/xml-external-parsed-entity
application/xml; charset="utf-16"
application/xml-external-parsed-entity; charset="utf-16"
application/xml-dtd
application/xml-dtd; charset="utf-16"
video/vnd.fvt
video/vnd.nokia.interleaved-multimedia
> Added some types which are both filename extension
and magic numbers given on registration.
Some registrations are quite ambiguous (specially
magic numbers). Please report possible errors.
- Changed following types on doc/mime.types file:
application/ogg
- Remove path from filename ASCII parameter when using
[include or [attach and not only non-ASCII filename
parameter.
- Added v)ew parts of message to "Metamail selection"
/ "Mailcap program selection" -screen. This gives MIME
structure of message.
- Fixed panic when Elm ME+ was exiting because of signal.
Message was:
COMMANDS PANIC in command.c:312:free_commands
>>>Bad magic number
Emergency exit taken! All temp files intact!
- Fixed crash on send menu. Message was:
COMMANDS PANIC in command.c:288:new_commands
>>>Already value
Emergency exit taken! All temp files intact!
New files:
lib/mbox/remote_server.c
lib/mbox/connection.c
hdrs/mbximap_imp.h
lib/mbox/con_imap.c
SUMMARY: This release fixes some bugs, adds help
('?' command) to some screens, makes elmregister
little less verbose, makes IPv6 URLs on List-*
-header fields legal, fixes fastmail, adds
UTF-8 validity check to some places, adds
warning for bad encodings and adds certificate
check to tls -module. Also some other changes or
fixes are included.
- Check also if Makefile-1.SH is newer than Makefile-1
(not only if Makefile.SH is newer than Makefile)
- Added
multipart/parallel (RFC 2045)
multipart/related (RFC 2387)
to lib/misc/mediatype.c. These are not supported,
but treated as multipart/mixed.
- Handle IPv6 URLs (RFC 2732) on List-* -header fields,
so that they do not give parsing error. IPv6 addresses
are not supported however.
RFC 2732: Format for Literal IPv6 Addresses in URL's
- Changed "elmregister unstage" so that it does not print
bin/elmregister: Ignoring entry
/usr/local/lib/elmaliases-write --
not in stage area (/usr/local/var/stage-elmme+2.5)
messages (without -v (verbose) option).
- Changed "elmregister replay" so that it does not print
bin/elmregister: (/usr/local/lib/elm.filelist)
Keeping link usr/local/man/cat1/wnewmail.1 from
old version (was usr/local/man/cat1/newmail.1)
and
bin/elmregister: (/usr/local/lib/elm.filelist)
Keeping file usr/local/lib/libelmme-mime.so
from old version
messages (without -v (verbose) option).
- Changed "elm -h" text.
- Added '?' command to view folder -screen.
- Moved implementation of '?' command to motion()
function.
- On elmregister remove temporary file after rename, if it still
exists. This may happen, if hard link already existed between names.
- Use pg_REVERSE for control characters on builtin
pager.
- Changed cs_stream_from_unknown() to use wcrtomb()
instead of wcsrtombs(). That way null characters (L'\0')
do not truncate string.
- Added possible fix to convert_to_wchar()
- Added possible fix to cs_streamclip_from_unknown()
- Added check that if Elm was reading file from standard input and
system charset (locale charset) was UTF-8, and read file did
not looked like UTF-8 then use UNKNOWN-8BIT instead as charset.
- Changed elm to return failure (nonzero status) if there is
error on conversion of characters in included file on command
elm -i <filename> <address>
- Added '?' command to Canceled mails -screen.
- Added '?' command to threads view -screen.
- Added '?' command to thread (as mailbox) view -screen.
- Added '?' command to Visiting mailbox -screen.
- Fixed fastmail.
- Moved needs_encoding() from src/mime.c to lib/misc/mimesend.c
- Moved base64_encode(), line_quoted_printable_encode() and
quoted_printable_encode() from src/mime_encode.c to
lib/mailer/mime_encode.c
- Changed fastmail so that it uses quoted-printable or base64
encoding if needed.
- Changed fastmail so that it adds Content-Type header field
and charset parameter to it if needed. Type is assumed to
be text/plain on most cases (given file is supposed to be
text body of mail). However if content (and possible
filename extension) matches to type given on mime.types
file (or on global elm.mimetypes file or on built-in
definition) that type is used. Fastmail ignores definitions
which used filename extension alone. However if file looks like
like binary, then application/octet-stream is used instead.
- Added to fastmail a warning message:
In-reply-to header should include only message-id
That message can be disabled with elmrc option
"add-in-reply-to-phrase".
- Added to fastmail a warning message:
References header should include only one or more
message-ids
- Give error of -P option on fastmail includes 8-bit data.
- Fastmail printed incorrect To: header field. Changed that.
- Added -t (content-type) option to fastmail. If fastmail
detect something that it is not text, option -t text/plain
can be used.
- Allow setting character set with "-t ;charset=charset-value"
option on fastmail.
- Added check that if charset used on fastmail is UTF-8
and read file did not looked like UTF-8 then use
UNKNOWN-8BIT instead as charset.
- Moved is_utf8_charset() from src/screen/curses.c
to lib/charset.c
- Changed consideration when lines (of attachments) are
normalized.
- If content type is not textual, 7bit and 8bit encodings
should not be used. Changed default encoding on these cases.
- Warn if 7bit or 8bit encoding is used for non-textual types.
- Fixed debug output on free_mailer_info()
- Added header_references_have_phrase() to lib/addr/references.c
- Removed "answer" -program. During installation
it is removed, if installed.
- Added "elmregister remove-installed" which removes
file if it is on elm.filelist. That is done on
replay -phase (command "elmregister rm" removes
also on earlier phase.)
- Used "elmregister remove-installed" on removal of
answer program and manual page of it.
- Added error/warning messages mpar_multipart_parse() for
case there is Content-Transfer-Encoding other than 7bit,
8bit or binary:
PARSE ERROR: ... Content-Transfer-Encoding is ignored
for multipart type
PARSE ERROR: non-identity Content-Transfer-Encoding
is ignored for multipart type
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
for multipart type
PARSE ERROR: non-identity Content-Transfer-Encoding is
unsupported for multipart type
Actual parsing of multipart type is not changed.
- Added error/warning messages mpar_rfc822_parse() for
case there is Content-Transfer-Encoding other than 7bit,
8bit or binary:
PARSE ERROR: ... Content-Transfer-Encoding is ignored
for message/rfc822 type
PARSE ERROR: non-identity Content-Transfer-Encoding is
ignored for message/rfc822 type
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
for message/rfc822 type
PARSE ERROR: non-identity Content-Transfer-Encoding is
unsupported for message/rfc822 type
Actual parsing of message/rfc822 type is not changed.
- Added error message for unknown Content-Transfer-Encoding
values:
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
- Added that
message-hide-hack = FOLDER INTERNAL DATA
elmrc option is used also on frm -program.
- Added that tls module prints message if IMAP or POP
server's certificate verified. IMAP or POP server's
name is NOT verified against used DNS name. First CN
from server's certificate's subject is printed (often
last (and only) CN is equivalent of used DNS name).
- Added elmrc options to "tls:" section
"trusted-ca-certificates-file" and
"trusted-ca-certificates-dir".
Option "tls:trusted-ca-certificates-file" gives
a file of CA certificates in PEM format.
Option "tls:trusted-ca-certificates-dir" gives
a directory containing CA certificates in PEM
format. These option values are parameters
of SSL_CTX_load_verify_locations().
Default values of these options are set
by X509_get_default_cert_file() and
X509_get_default_cert_dir().
WARNING: tls module does not do server identity check
as required on RFC 2595.
tls module does not consult certificate
revocation list (CRL) when checking server's
certificate (except perhaps from
directory given on option
"tls:trusted-ca-certificates-dir")
- Reimplemented elmrc variable "rand-file" on
"tls:" section as rc_DT_ESTR.
- Added check that given rand-file is readable.
- Reimplemented elmrc variable "rand-egd" on
"tls:" section as rc_DT_ESTR.
- When values fail them are replaced with "none".
Mark them changed so that it is saved to .elmrc.
That replaces default value with explicit "none"
if default value is not working.
- Changed that StreamInfo() takes also struct string
argument.
- Added function == SS_verify to StreamInfo()
- Fixed problem where elmrc options of shared
libraries was not initialized when they was
printed with "elm -w".
- Added possible fix to get_option_type()
- Changed add_bytes() on elmregister so that
it reports filename on failed read.
- Changed add_bytes() so that it handles
unexpected EOF better.
- Changed file and folder browser so that it does
not show {mailbox}.lock files. Elm ME+ style file and folder
browser shows 'L' letter in correspond mailbox instead.
If correspond mailbox file is missing then {mailbox}.lock
files are shown. Elm 2.5 style file browser
do not show 'L' letter on mailboxes (and not
shown {mailbox}.lock if {mailbox} file exists).
- Added is_lockname() to lib/mbox/mk_lockname.c
New files:
src/command/view_foldercmd.c
src/command/canceledmailcmd.c
src/command/threadcmd.c
src/command/onethreadcmd.c
src/command/visit_mailboxcmd.c
lib/misc/mimesend.c
lib/mailer/mime_encode.c
Removed files:
utils/answer.c
doc/answer.1
hdrs/s_answer.h
nls/C/C/C/s_answer.m
SUMMARY: This release fixes some bugs, changes help
implementation (on many screens) and adds
help to several screens. It makes body
searches of mails interruptible. There is
several new header fields listed on default
weedlist. This release adds attach/inline
-column to Attachment Menu -screen. Now some
messages are printed on bold text when
built-in pager is used. Also some other
changes are included.
- Fixed problem where "Mail Pre-Send Screen" prints
extra ";" after address before group alias.
- Allow canceling of message body search (command '//')
with Ctrl-C (interrupt character) on systems
which supports POSIX sigaction:
Searching folder for pattern...
- Added cancel_progress() to lib/cancel.c
- Renamed 'struct chancel_data' to 'struct cancel_data'
- Added refresh_cancel_message() to lib/cancel.c
- Fixed problem where converting pgp mail charset
did not worked, when replying.
- Changed listing on folder / file browser.
- Made small changes to locking.
- Added "Thread-Topic:", "Thread-Index:", "X-MS-Has-Attach:"
and "X-MS-TNEF-Correlator:" to default weedlist. These
headers are generated by Microsoft Exchange.
- Added "Content-Language:" and "Content-Disposition:"
to default weedlist.
- Added "Precedence:" and "Errors-To:" to default weedlist.
- Added "X-MIME-Autoconverted:" to default weedlist. This
header is generated by Sendmail and Elm ME+ 2.5.
- Added "User-Agent:" to default weedlist.
- Added "Delivered-To:" to default weedlist. This
header is generated by Postfix.
- Changed "Keep unread message in incoming mailbox?" question
to take account also other mailboxes than incoming mailbox.
(See also "extra-mailbox-dir" elmrc option.)
- Changed "Folder unchanged." message to take account situation
where there is open several folders.
- Changed prompting of questions on sync_mbox()
- Added attach/inline -column to Attachment Menu -screen.
- Changed help text of 'v' command from
View attachments in current message.
to
View MIME structure (attachments) in current message.
- Added 'k' (kilo) and 'M' (mega) suffixes to size column
on Attachment Menu -screen.
- Added ^D (Ctrl-D) to toggle delivery notification on
Mail Pre-Send Screen. This toggle enables all delivery
notifications, but disables only SUCCESS notification.
D)SN command gives screen where that can be enabled, but
that gives simple way.
- Changed implementation of command help.
- Changed help listing of mailbox and (meta)pager commands
so that files "help-pager" and "help-main" is not used.
Instead same internal data is used both of single command
help and command listing.
- Built-in pager is used to display internal 'help-file'.
- Added to E)xtended command -menu also '?' (help) command,
because that same command list is also used to generate
prefixed listing on main command help.
- Added terminal control characters (such as job control)
to main command help. These are not shown in single command
help, but they are listed on command key listing.
- Added to List I)info -menu '?' (help) command.
- Added to Generic R)eply -menu '?' (help) command.
- Added '?' command to A)ssemble message fragments -screen.
This is almost same that main mailbox screen.
- Changed A)ssemble message fragments -screen so that
'i' and 'q' only are "Return to index" and Ctrl-Q, 'Q', 'x' and 'X'
are also exists on caller's main_message_loop().
- Changed Assemble message fragments -screen so that
'c' does c)hange folder -command on caller's
main_message_loop().
- These actions on A)ssemble message fragments -screen are not
available if this screen is called from V)iew digest as mailbox
-screen.
- Added '?' command to V)iew digest as mailbox -screen.
- Some built-in pager changes.
- Added to stringbuffer some flags which are used by built-in pager.
- Added set_out_state_line_pg_flags() to lib/state_out.c
- Changed implementation of built-in pager help.
- Added (meta)pager commands to built-in pager help.
The ordinary built-in pager commands are shown with
bold text on built-in pager help so they are visually
distinct from (meta)pager commands.
- Made small change to ConfTool/Substitute
- Added '?' command to duplicate removal (Ed) -screen.
This is almost same that main mailbox screen.
- Changed duplicate removal (Ed) -screen so that
'i' and 'q' only are "Return to index" and Ctrl-Q, 'Q', 'x' and 'X'
are also exists on caller's main_message_loop().
- Changed duplicate removal (Ed) -screen so that
'c' does c)hange folder -command on caller's
main_message_loop().
- Fixed message
'protocol' paramater is missing from multipart/encrypted -type!
to
'protocol' parameter is missing from multipart/encrypted -type!
- Changed that texts
[ There is text before PGP section. ]
[ PGP not available, raw data follows ]
[ Decrypting message... Bad PGP passphrase. ]
[ Decrypting message... Failed to init PGP. Raw data follows. ]
[ Decrypting message... End of raw data. ]
[ Content-Type: multipart/signed not parsed ]
[ Content-Type: multipart/signed, no subtypes ]
[ 'protocol' parameter is missing from Multipart/Signed -type! ]
[ Content-Type: multipart/encrypted not parsed ]
[ Content-Type: multipart/encrypted, no subtypes ]
[ 'protocol' parameter is missing from multipart/encrypted -type! ]
[ Content-Type: multipart/alternative not parsed ]
[ Content-Type: multipart/alternative, no subtypes ]
[ multipart_alternative: seek failed ]
[ Selecting attach: "..." ]
[ Selecting part: "..." ]
[ Selecting attach: Filename: ... ]
[ Selecting part: Filename: ... ]
[ Selecting attach: Type: .../..., Encoding: ..., Size: ... ]
[ Selecting part: Type: .../..., Encoding: ..., Size: ... ]
[ Type: .../..., Encoding: ..., Size: ... ]
[ Content-Type: multipart/alternative, alternative not found ]
[ multipart_decode: seek failed ]
[ Attach #.../...: "..." ]
[ Part #.../...: "..." ]
[ Attach #.../...: Filename: ... ]
[ Part #.../...: Filename: ... ]
[ Attach #.../...: Type: .../..., Encoding: ..., Size: ... ]
[ Part #.../...: Type: .../..., Encoding: ..., Size: ... ]
[ Content-Type: multipart/mixed not parsed ]
[ Parts #...-.../...: Type: text/plain, Size: ... ]
[ Content-Type: multipart/* not parsed ]
[ Content-Type: multipart/*, no subparts ]
[ nomime_decode: seek failed ]
[ rfc822_decode: seek failed ]
[ Content-Type: message/rfc822 not parsed ]
[ rfc822_decode: no body of RFC 822 mail ]
[ Charset ... ignored, treated as ... ]
[ Charset ... unsupported, skipping... ]
[ Use 'v' to view or save this part. ]
[ You can also use 'O' to override charset information. ]
[ Charset ... converted... ]
[ Charset ... unsupported, converting... ]
[ You can also use 'v' to view or save this part. ]
[ Unsupported encoding, skipping... ]
[ Use 'v' to save this part in encoded form. ]
[ Failed to create file for decoding. ]
[ Error when flushing temporary file. ]
[ .../... is unsupported, treating like TEXT/PLAIN ]
[ .../... is not supported, skipping... ]
[ mime_decode: no handler selected ]
[ mime_decode: seek failed ]
[ Type .../... treated as attachment, skipping... ]
[ Attachment, skipping... Use 'v' to view this part. ]
[ Attachment, skipping... ] (*)
[ simple_mime_walk: seek failed ]
[ Command 'A' assembles fragmented messages. ]
[ Message fragment. ]
[ Message fragment, part ... ]
[ Message fragment, corrupted. ]
[ No text in PGP section. ]
[ Binary file, but does not look like PGP ]
-- Start of PGP encoded section -- can't decode content-transfer-encoding
-- Start of PGP signed section -- can't decode content-transfer-encoding
-- Start of PGP section -- can't decode content-transfer-encoding
[ No text in PGP encoded section ]
[ No text in PGP signed section ]
[ PGP not available, skipping... ]
[ PGP not available, raw data follows ]
[ Decrypting message... Bad PGP passphrase. ]
[ Internal error while calling pgp, skipping... ]
[ Internal error while calling pgp, raw data follows ]
[ End of raw data. ]
-- Start of PGP encoded section.
-- Start of PGP encoded section, PGP failed!
-- Start of PGP signed section.
-- Start of PGP signed section, PGP failed!
-- Start of PGP output.
-- Start of PGP output, PGP failed!
-- Start of PGP section.
-- Start of PGP section, PGP failed!
[ Error when flushing temporary file. ]
-- End of PGP encoded section.
-- End of PGP encoded section, PGP failed!
-- End of PGP signed section.
-- End of PGP signed section, PGP failed!
-- End of PGP output.
-- End of PGP output, PGP failed!
-- End of PGP section.
-- End of PGP section, PGP failed!
[ pgp_SG_decoder: seek failed ]
[ Checking application/pgp-signature: OK ]
[ Checking application/pgp-signature: FAILURE ]
Checking application/pgp-signature: FAILURE (*)
[ pgp_EC_decoder: seek failed ]
[ Signature of this part do not match to type. ]
[ Signature of this part do not match to type. Part skipped. ]
[ BASE64 data was corrupt! ]
[ UUENCODED data was corrupt! ]
[ Seems that QUOTED-PRINTABLE data was corrupted. ]
[ Signature .../... is unsupported, not checked ]
[ Encryption .../... is unsupported ]
-- Start of (Elm) encoded section.
-- End of (Elm) encoded section.
-- Start of included mail From: ...
-- Start of included mail.
-- End of included mail.
[ Use 'Rl' to reply to list or 'I' for list info. ]
[ You can use 'I' for list info. ]
are shown on bold text (when using built-in pager).
(*) Not actually printed to built-in pager.
- Added small possible fix on pgp_decode(), pgp_EC_decoder()
- Fixed crash on --icon-name=xxx command line option.
- Changed that folder display name is shorter and --with-title
uses shorter titles on case, where folder is on "extra-mailbox-dir"
and that is under home directory.
- Fixed problem where "frm -q file" did not printed number of
messages.
- Changed help listing of alias commands so that file "help-alias"
is not used. Instead same internal data is used both of single
command help and command listing.
- Fixed nls Makefile elm2.4me+.cat to elmme+2.5.cat.
catopen() uses "elmme+2.5"
- Added '?' command to "Mail Pre-Send Screen".
KNOWN PROBLEMS:
- Command 'x' is reported on (meta)pager commands as
"exit leaving the folder untouched, ask permission if changed.".
In all situations this command does not close folder and
exit elm as text says implicitly. Sometimes it just quits current
mailbox screen (view).
- Built-in pager help lists 'x' command from (meta)pager commands
although same letter ('x') is listed also on ordinary built-in
pager commands.
- Changed that send_view_folder() may return EOF
- Changed that help() may return EOF
- Changed that partial_loop(), ViewPartial()
may return EOF
- Changed that alias() may return EOF
- Changed that duplicate_loop(), ViewRemoveDuplicate()
may return EOF
- Changed that extended_command() may return EOF
- Changed that ViewThreads() may return EOF
- Changed that thread1_loop(), ViewThread1()
may return EOF
- Changed that display_file(), display_helpfile()
may return EOF
- Fixed compilation error message:
localmbx.c: In function `fbrowser_make_directory':
localmbx.c:2996: warning: variable `str' might be clobbered
by `longjmp' or `vfork'
localmbx.c:2998: warning: variable `long_name' might be clobbered
by `longjmp' or `vfork'
localmbx.c:3002: warning: variable `ret' might be clobbered
by `longjmp' or `vfork'
syscall.c:233: warning: variable `sh' might be clobbered
by `longjmp' or `vfork'
- Changed address hurtta+elm@posti.fmi.fi
to hurtta+elm@siilo.fmi.fi
- Fixed program_name -variable from "elmaliases-write"
to "newalias" on newalias.c
New files:
src/command/def_command.h
src/command/Makefile.SH
src/command/maincmd.c
src/command/command.c
nls/C/C/C/s_command.m
hdrs/s_command.h
src/command/pagercmd.c
src/command/extendedcmd.c
src/command/listinfocmd.c
src/command/genericreplycmd.c
src/command/partialcmd.c
src/command/digestcmd.c
src/command/builtincmd.c
src/command/duplicate_removalcmd.c
src/command/aliascmd.c
src/command/sendcmd.c
Removed files:
doc/help-main
doc/help-pager
doc/help-alias
SUMMARY: This release includes some code reorganization,
fixes some valgrind reported errors and some
other bugs. This release fixes incorrect setting
of In-Reply-To in canceled mail.
- Avoid possible use of uninitialized variable on
error case of pgp_decrypt_init().
- Fixed valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x8119317: give_media_type2 (mediatype.c:310)
by 0x811957B: give_media_type (mediatype.c:269)
by 0x81071B2: read_mailcaps (mailcap.c:862)
and
Conditional jump or move depends on uninitialised value(s)
at 0x8118FDF: register_mt_defhandler (mediatype.c:392)
- Fixed valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x81AFCB8: convert_number (output.c:314)
by 0x81B3889: elm_smessage (output.c:768)
by 0x81010AD: menu_Write_to_screen (screen.c:197)
by 0x8092482: mailbox_command (elm.c:1606)
and
Use of uninitialised value of size 4
at 0x81AFE0E: convert_number (output.c:375)
by 0x81B3889: elm_smessage (output.c:768)
by 0x81010AD: menu_Write_to_screen (screen.c:197)
by 0x8092482: mailbox_command (elm.c:1606)
and
Conditional jump or move depends on uninitialised value(s)
at 0x81AFE17: convert_number (output.c:377)
by 0x81B3889: elm_smessage (output.c:768)
by 0x81010AD: menu_Write_to_screen (screen.c:197)
by 0x8092482: mailbox_command (elm.c:1606)
- Fixed valgrind reported error (on readmsg)
32,143 (5,292 direct, 26,851 indirect) bytes in 362
blocks are definitely lost in loss record 13 of 18
at 0x4026FDE: malloc (vg_replace_malloc.c:207)
by 0x81053B0: safe_malloc (safemalloc.c:52)
by 0x80CA694: new_message_id (message-id.c:33)
by 0x80C98F5: parse_tokenized_message_id (getid.c:209)
by 0x80CA016: parse_header_message_id (getid.c:261)
by 0x80BED69: read_folder_headers_helper (headers.c:121)
by 0x80BF135: read_folder_headers (headers.c:239)
by 0x8086603: prepare_message_access (mbox.c:1438)
by 0x805CFAD: give_message_from_normal (folder.c:280)
by 0x805CB06: give_message_from_folder (wrapper.c:83)
by 0x805A94B: print_index_message (readmsg.c:315)
by 0x805BB8C: main (readmsg.c:860)
* But there is still other leaks !!
- Documented elmrc option 'mailer' values 'sendmail-bs' and
'submission' on doc/elmrc-info (used with
use-mailer-library = smtp).
- Added possible fix for valgrind reported error
Invalid read of size 1
at 0x80D7570: get_return_name (reply.c:781)
Address 0x4b7d6c7 is 1 bytes before a block of size 18 alloc'd
at 0x4026FDE: malloc (vg_replace_malloc.c:207)
by 0x81C16EB: safe_strdup (safemalloc.c:84)
by 0x80D7263: get_return_name (reply.c:679)
- Moved struct out_state from hdrs/elmlib.h
to hdrs/state_imp.h
- Fixed valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x4106CE0: elm_smessage (output.c:695)
by 0x4107B87: lib_error (output.c:1438)
by 0x492523E: smtp_common_mailer_backend (smtp.c:1091)
- Changed implementation of struct in_state (this
is more just placeholder to new types)
- Moved struct in_state from hdrs/elmlib.h
to lib/state_in.c
- Added new_in_state() and free_in_state()
to lib/state_in.c
- Moved init_si_file() from lib/state.c
to lib/state_in.c
- Moved dest_si_file() from lib/state.c
to lib/state_in.c
- Removed in_state_clear() and in_state_destroy()
from lib/state.c
- Moved set_in_state_file() from lib/state.c
to lib/state_in.c
- Moved in_state_seekable() from lib/state.c
to lib/state_in.c
- Moved in_state_fseek() from lib/state.c
to lib/state_in.c
- Moved in_state_ftell() from lib/state.c
to lib/state_in.c
- Moved state_getc() from lib/state.c
to lib/state_in.c
- Moved getc_si_file() from lib/state.c
to lib/state_in.c
- Moved state_ungetc() from lib/state.c
to lib/state_in.c
- Moved ungetc_si_file from lib/state.c
to lib/state_in.c
- Moved state_gets() from lib/state.c
to lib/state_in.c
- Moved gets_si_file() from lib/state.c
to lib/state_in.c
- Moved state_getl() from lib/state.c
to lib/state_in.c
- Moved getl_si_file() from lib/state.c
to lib/state_in.c
- Changed implementation of struct out_state
- Added new_out_state() and free_out_state()
to lib/state_out.c
- Removed out_state_clear() from lib/state.c
- Removed register_state_out_type() from lib/state.c
- Removed init_so_external() from lib/state.c
- Moved init_so_file() from lib/state.c
to lib/state_out.c
- Removed out_state_destroy() from lib/state.c
- Moved dest_so_file() from lib/state.c
to lib/state_out.c
- Moved out_state_seekable() from lib/state.c
to lib/state_out.c
- Added seekable_so_file() to lib/state_out.c
- Moved out_state_FILE() from lib/state.c
to lib/state_out.c
- Added FILE_so_file() to lib/state_out.c
- Moved out_state_fseek() from lib/state.c
to lib/state_out.c
- Added seek_so_file() to lib/state_out.c
- Moved out_state_ftell() from lib/state.c
to lib/state_out.c
- Added ftell_so_file() to lib/state_out.c
- Moved flush_filter() from lib/state.c
to lib/state_out.c
- Added dummy flush_filter_so_file() to lib/state_out.c
- Added policy_so_file() to lib/state_out.c
- Moved state_puts() from lib/state.c
to lib/state_out.c
- Moved state_nlputs() from lib/state.c
to lib/state_out.c
- Moved state_convert_EOLN() from lib/state.c
to lib/state_out.c
- Moved convert_filter() from lib/state.c
to lib/state_out.c
- Moved state_putc() from lib/state.c
to lib/state_out.c
- Moved putc_so_file() from lib/state.c
to lib/state_out.c
- Moved state_put() from lib/state.c
to lib/state_out.c
- Moved put_so_file() from lib/state.c
to lib/state_out.c
- Moved state_printf() from lib/state.c
to lib/state_out.c
- Added out_state_EOLN_is_CRLF() to lib/state_out.c
- Added get_out_state_filter() and
get_out_state_f_MIME_name() to lib/state_out.c
- Added get_out_state_charset_vector() to
lib/state_out.c
- Added set_out_state_filter() to lib/state_out.c
- Added get_out_state_cv_MIME_name() to lib/state_out.c
- Added set_out_state_cs_from_state() to lib/state_out.c
- Added set_out_state_cs() to lib/state.c
- Added set_out_state_EOLN() to lib/state_out.c
- Added out_state_ferror() to lib/state_out.c
- Moved init_so_buffer() from lib/state.c
to lib/state_out_buffer.c
- Moved dest_so_buffer() from lib/state.c
to lib/state_out_buffer.c
- Moved set_out_state_sbuffer() from lib/state.c
to lib/state_out_buffer.c
- Added seekable_so_buffer() to lib/state_out_buffer.c
- Added FILE_so_buffer() to lib/state_out_buffer.c
- Added dummy seek_so_buffer()
to lib/state_out_buffer.c
- Added dummy fteel_so_buffer()
to lib/state_out_buffer.c
- Added flush_filter_so_buffer() to lib/state_out_buffer.c
- Added policy_so_func() to lib/state_out_buffer.c
- Added dummy putc_so_buffer() to lib/state_out_buffer.c
- Added dummy put_so_buffer to lib/state_out_buffer.c
- When message was canceled, References -header was stored as
In-Reply-To -header.
New files:
lib/state_in.c
lib/state_out.c
lib/state_out_buffer.c
SUMMARY: This release includes some code cleanup and
fixes or mitigates a bug, which causes folder
corruption, when Elm ME+ is run under valgrind.
This release also fixes some other bugs.
- Added printing of error message
Use make package ROOT=/directory
in case where
make install DEST=/directory
or
make install DESTDIR=/directory
command is given (i.e. if $(DEST) or $(DESTDIR) is set).
NOTE: "package" target must be enabled first with Configure.
If "package" is used to build package, command
elmregister replay -M all
must be used after extraction of package
to finish installation. Instructions are put
to file $ROOT/README.PACKAGE.sh
On directory $ROOT command
./README.PACKAGE.sh
or
.../elmregister replay -M all -R `pwd`
can be used to move files to final place.
- Added -M all option to example on elmregister manual
page.
- Added printing of error message
Superuser privilege required
in case where
.../elmregister replay -R directory
is run as non root and opening of elm.filelist
on target fails with EPERM or EACCES.
- Added printing of error message
Superuser privilege required
in case where
elmregister master
is run as non root on "make install" and opening
of elm.filelist fails with EPERM or EACCES.
- Added more detailed documentation to elmregister
manual page.
- Fixed usage of wrong variable on cs_cmp_iso2022_gen()
- Moved struct charcode_info from hdrs/elmlib.h
to hdrs/cs_imp.h
- Added get_charset_MIME_name() and get_charset_type()
to lib/charset.c
- Added get_string_charset_type() to lib/string.c
- Moved struct string from hdrs/elmlib.h
to hdrs/cs_imp.h
- Added get_string_type() lib/string.c
- Fixed valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x81AED26: mail_gets (mail_gets.c:48)
* This bug was fixed on Elm 2.4ME+ PL118 (25)
but seems that fix was lost on somewhere.
- Fixed or mitigated a bug, which causes folder corruption,
when Elm ME+ is run under valgrind. Now folder saving
fails instead (without corrupting it).
NOTE: Exact reason of folder corruption is unknown,
but seems that sometimes different file positions
are recorded when Elm ME+ is run under valgrind.
- Changed mark_keep_folder() so that it returns status
of succeed or failure
- Added end_keep_folder_failure() to lib/mbox/mbox.c
- Fixed stringbuffer that builtin pager does not truncate
lines which includes \0 characters.
- Added check to configure that if dnsdomainname returns
empty answer.
- Changed Configure to use /usr/bin/editor as default
editor if available.
- Added prototype to try_dyn.c on Configure
- Added test to Configure to look look EWOULDBLOCK from
/usr/include/asm-generic/errno.h on Linux
- Fixed some warnings of compilation on Ubuntu 9.04.
- If configure is set DEFAULT_MAILER_PATH to "none"
and it is on use, print message runtime:
Give "mailer" on RC file: <path>
- Fixed compilation of nls/gencat/
- Changed location of "[Mlists Off]" and "[Mlists On]"
messages on M)lists command.
- Added check that error message
Mailer path for unknown not specified
is not printed when initializing default mailer.
SUMMARY: This release adds Elm 2.5 style file browser
with some additions. This is available for local
files. Elm ME+ style file and folder browser
are still available for all cases (for example
for IMAP folders). This release also adds couple
of elmrc options related to the new file browser
and some commands for function keys. These are
specially used on the Elm ME+ style browser.
This release also adds some other changes
and fixes.
- Fixed debug output on scommon_ClearScreen()
- Fix sorting directory messages of local directory
- Do not use erase_a_char() on enter_helper()
-- usage is not correct.
- Removed can_access(). In most of places can_open()
is used instead. Also access() uses real uid and gid
anyway and Elm does not use setreuid/setregid for
uid/gid swapping.
- Fixed do_movement1(). This fixes updating of attachment
list when pressing UP key and current attachment is
changed to previous page (when there is more attachments
than to one page fits.)
- Moved part of options screen handling from src/options.c
to src/opt_generic.c. This allows several options screens.
- Added Elm 2.5 style file browser. On most places
however Elm 2.4ME+ style file and folder browser
is used. [L1] [L2]
- If there is default extension given for saving
of file and selected file does not match, then
Elm 2.5 style file browser returns to Elm ME+
style browser for filename completion.
- Command 'f' on Elm 2.5 style file browser
fills default filename and returns to Elm ME+
style browser.
- Command '$' on Elm 2.5 style file browser
resynchronizes directory.
- Implemented options menu on Elm 2.5 style file browser
with generic option handling routines (src/opt_generic.c).
- Command 'm' on Elm 2.5 style file browser creates
new directory.
- Added help file (doc/help-fbrowser) for Elm 2.5 style
file browser. Most of text is from Elm 2.5.7. [L3]
- Added elmrc option "file-browser-show-dotfiles". If
this is set, .dotfiles are shown on Elm 2.5 style
file browser (.dotdirectories are always shown).
- Added elmrc option "file-browser-sortby". This specifies
sorting order for Elm 2.5 style file browser.
Possible values are "none", "name" and "mtime"
(and also "reverse-name" and "reverse-mtime").
Default values is from elmrc option
"local-dir-sortby".
- Added elmrc option "file-browser-show-title". If
this is set (default is userlevel = 0), title of
columns is shown on Elm 2.5 style file browser.
- Added elmrc option "file-browser-show-protection".
If this is set (default), permission and owner
columns are shown on Elm 2.5 style file browser.
- Added missing header_param_changed() -hook call
to menu_header_change()
- Moved struct IMAP_BROWSER from hdrs/mbx_imp.h
to lib/mbox/imap.h
- Moved struct LOCAL_BROWSER from hdrs/mbx_imp.h
to lib/mbox/localmbx.c
- Moved struct DUMMY_BROWSER from hdrs/mbx_imp.h
to lib/mbox/savefolder.c;
- Moved mode_to_str() declaration from
hdrs/rc_imp.h to hdrs/elmlib.h
- Added get_browser_sel_type() to lib/mbox/savefolder.c
- Added dir_give_filter() to lib/mbox/savefolder.c
- Added fbrowser_give_entry() to lib/mbox/localmbx.c
- Added dir_reset_filter() to lib/mbox/savefolder.c
- Added dir_give_count() to lib/mbox/savefolder.c
- Added dir_give_wildcard() to lib/mbox/savefolder.c
- Added dir_change_filter() to lib/mbox/savefolder.c
- Added dir_cat_filename() to lib/mbox/savefolder.c
- Added reload_dir() to lib/mbox/savefolder.c
- give_line_dir() on lib/mbox/savefolder.c returns now
also possible comment text.
- Elm ME+ style folder and file browser shows now
comments on default directory.
- Changed elmrc option "browser-wildcard-matching".
Values are:
off Disables wildcard feature and therefore
allows selecting filenames that include '?'
or '*' characters.
on Enables wildcard feature. Characters '*'
and '?' are treated as wildcards. Pressing
ENTER gives directory listing limited with
that wildcard specification on Elm ME+ style
file and folder browser.
file browser
Enables wildcard feature. Characters '*'
and '?' are treated as wildcards. Pressing
ENTER invokes Elm 2.5 style file browser
with files (not directories) limited with
that wildcard specification.
With values "on" or "file browser" pressing TAB gives
directory listing limited with that wildcard specification on
Elm ME+ style file and folder browser.
- Moved enter_helper() from src/in_utils.c
to src/enter_helper.c
- Moved some fields from struct enter_info to
struct in_utils_edit, struct builtin_edit and
struct browser_edit.
- Also threat local directory names without ending / as
directory prefixes on browser.
- Added special handling of "." and ".." on change_v_local()
- Added mailbox format check from Elm 2.5 style file browser
also to Elm 2.4ME+ style file and folder browser. Check
is used when Elm 2.5 style file browser is supported.
- Added rewinddir() to browser_fill_local()
- Added support for
elm -f local_directory
command. That command calls Elm 2.5 style file browser.
Therefore command
elm -f .
works (again). However on Elm 2.4 ME+ this starts
Elm ME+ style folder browser.
NOTE: Command
elm -f ''
starts Elm ME+ style folder browser.
- Added elm version string to (Elm ME+ style) file and
folder browser titles.
- Added some support to function keys F1 - F12.
- Function key F3 (PF3 on VT100 ?) toggles
menu on/off (as command line option -m
disables menu)
- Function key F4 (PF4 on VT100 ?) toggles
between Elm ME+ style and Elm 2.5 style
file browser.
- Function key F5 reloads directory on
file and folder browser.
- Function key F6 fills default filename
on file browser.
- Made some updates on help files.
- Replaced some calls of give_title_dir() with
dir_give_count() in browser.c
- Fixed some unknown command messages in case of
non-letter key is pressed.
- Changed prototype of give_line_dir()
- Added toggle a)ttachment -command to
Attachment Configuration -menu.
- Added disabling of menu automatically, if there is
too few lines on screen, to
- Aliases mode -screen,
- Digest -screen,
- Canceled mails -screen,
- Assemble message fragments -screen
- Viewing folder -screen (on m)ail command),
- viewing of one thread screen,
- d)uplicate removal mode -screen,
- E)xtended command -screen (*),
- Generic reply -screen (*),
- List info -screen (*),
- URL selection screen (*),
- Alias info -screen (change screen) (*),
- MIME structure Menu (*), and
- Elm 2.5 style folder browser screen.
(*) On E)xtended command -screen, Generic reply -screen
List info -screen, URL selection screen,
Alias info -screen (change screen), and
MIME structure Menu command line option -m do not
disable menu.
That is similar than on disabling of menu automatically
on main mailbox screen and some other screens.
- Added function key F3 to disable/enable menu on
- main mailbox screen,
- Aliases mode -screen,
- Digest -screen,
- Canceled mails -screen,
- Assemble message fragments -screen,
- Viewing folder -screen (on m)ail command),
- thread screen,
- viewing of one thread screen,
- d)uplicate removal mode -screen,
- Elm 2.5 style folder browser screen, and
- Visiting mailbox -screen (on Mailing list I)nfo command).
- Added function key F4 to jump between Elm ME+ style and
Elm 2.5 style browsers.
- Added function key F5 to provide reload or re-synchronize
on browser:
- On Elm ME+ style file and folder browser F5
reloads directory.
- On Elm 2.5 style file browser F5 resynchronizes
directory. This is same than command '$'.
- On main mailbox F5 resynchronizes folder.
This is same than command '$'.
- On Alias mode -screen F5 resynchronizes aliases.
This is same than command '$'.
- On Canceled mails -screen F5 resynchronizes
folder. This is same than command '$'.
- Added function key F6 to provide default filename
on file browser:
- On Elm ME+ style file browser F6 fills buffer
with current directory and default filename,
- On Elm 2.5 style file browser F6 fills buffer
with default filename and returns to Elm ME+
style browser. This is same than command 'f'.
- Changed option menu so that "M)enu display " line shows
elmrc value and not toggled valued with F3 function key
or -m command line option.
- Fixed redraw loop on E)xtended command -screen on resizing
of screen.
- hdrs/Makefile now also copies s_*.h files from source directory
to build directory, if on source there is newer files. There
may be on build directory have old files, which have build
with nls/Makefile (on build directory).
- Call panic if wrong argument is called for %S format.
- Added commands to Elm help file (help-main) which
was lost on transition of elm-help.0 help file.
- Moved common routines (real_*() routines) for
dummy_browser and local_browser from lib/mbox/savefolder.c
to lib/mbox/common_local.c
- Symbolic links are listed as
linkname -> target
on browser.
- Fixed possible problem on mbx_move_temp_file()
where stat and lstat buffers are used when they are
uninitialized (when syscall failed).
- Fixed problem where saving options did not
uncommented changed userlevel (or any other enumerated
variable).
- Fixed problem where turning OFF "M)enu display " on
options editor do not disabled menu (assuming that
mini menu is not toggled with F3 function key or -m
command line option) when it is returned to mailbox
screen.
- Changed error handling of local directory browser.
- Check if fork() failed on can_open().
- Fixed problem where error and transient messages did
not handled UTF-8 text correct.
- Added possible fix for menu_set_default().
- Added redrawing of browser window after enter,
because select_dir_item() trashes directory listing.
- Changed prototype of select_dir_item().
- Added extra-mailbox-dir for default directory of
folder browser, if extra-mailbox-dir is under home
directory.
- Only add '<' (=sent folder) and '>' (=received folder) to
default directory of folder browser only if they are
readable.
- When forwarding and forwarded message is included
and mimebodykeywords is set, quote [ characters
(starting keywords).
- Moved fields displaying and prefix from struct out_state
to struct decode_opts.
- Check on Configure if crypt.h is available
- Changed error handling on opening of mailbox.
- Changed cur_PutLine() on src/screen/curses.c
so that it prints SOFT HYPHEN as HYPHEN-MINUS
(or skips SOFT HYPHEN) and prints NO-BREAK SPACE as space.
- Fixed so that ioctl() on cur_ScreenSize() uses terminal_fd
variable and not constant 1 as file description.
- Changed UNICODE_BAD_CHAR constant to be 0xFFFD
(REPLACEMENT CHARACTER on Unicode) -- was 0xFFFF.
- Changed MAPPING_NONE constant to UNICODE_BAD_CHAR
- Changed cur_PutLine() on lib/screen/curses.c
so that it prints UNICODE_BAD_CHAR as bold
question mark if current character set is not
Unicode (i.e. UTF-8).
New files:
src/fbrowser.c
nls/C/C/C/s_fbrowser.m
nls/gencat/Makefile.SH
hdrs/fbrowser.h
lib/mbox/mbox_generic.c
src/enter_helper.c
hdrs/browser.h
doc/help-fbrowser
hdrs/s_fbrowser.h
lib/mbox/common_local.c
hdrs/mbxlocal_imp.h
src/fb_options.c
src/opt_generic.c
doc/help-fboptions
melib/decodeopts.c
Removed files:
nls/gencat/Makefile
lib/can_access.c
New elmrc options:
file-browser-show-dotfiles
file-browser-show-protection
file-browser-show-title
file-browser-sortby
Corresponding quotes from Elm 2.5 PL7 Changes file:
[L1] Under the s)ave command, if you specify a pattern
you now get the new file selection browser instead of
an "ls -C" listing. The file selection browser also
is started if you give a directory name.
[L2] Under the c)hange command, if you specify a pattern
you now get the new file selection browser instead
of an "ls -C" listing. The file selection browser
also is started if you give a directory name.
[L3] Added file selection browser and attachments menu to
the message catalog.
SUMMARY: This release changes folder and file browser behaviour.
New elmrc option "browser-tabcomplete-prompt" is added.
- Autofill filename on folder and file browser when enter is pressed
(same as right key is pressed). Then user is asked to
accept that filename by pressing enter second time.
- When going up to directory tree with left key, set GB_FILL
on file and folder browser. That way it works as opposite
of right key. With that change both right and left key
always toggle GB_FILL flag and requires two left and
right to walk up and down on directory hierarchy.
- Also changed that GB_FILL is not toggled if directory changing
fails with left or right keys.
- If left or right key is pressed and action should be changing
of directory, check that current filename path of prompt
corresponds GB_FILL flag value. If not, then just filename
path of prompt without changing directory or changing GB_FILL
flag value.
- If last character on filename is separator, ignore it when
going up directory hierarchy
- Do not fail give_edit_buffer() on empty directory
- When pressing left key and directory was changed to
upper directory on hierarchy, browser does locates
correct entry from where it was entered.
- Give TABulator on initial folder browser help text
- Added -O option to Usage: -line of Configure
(was not really added on Elm ME+ 2.5 PLalpha19)
- Unified some code between folder and file browser
- Complete filename on prompt with TABulator on folder and file
browser if elmrc option "browser-tabcomplete-prompt" is set
(default). Also cursor on file listing is changed to
first match.
NOTE: Complete with TABulator is active only if directory
prefix on filename matches current directory of folder or
file browser.
If filename on prompt matches without completion to some entry
on directory, TABulator works as option "browser-tabcomplete-prompt"
is not set. That changes current directory of folder or
file browser.
If directory listing on folder is filtered then complete
with TABulator works against that listing (and not against
a whole listing of directory).
New elmrc options:
browser-tabcomplete-prompt
SUMMARY: This release fixes error on submission (a kind of
SMTP) protocol implementation, crash on AIX and
a couple of valgrind reported memory leaks. Also
some other small changes or fixes are included.
- Fixed valgrind reported memory leak:
660,852 (276,480 direct, 384,372 indirect) bytes in 2,219
blocks are definitely lost in loss record 30 of 30
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x81A6658: safe_malloc (safemalloc.c:51)
by 0x818C9FB: rfc822_tokenize (getaddr.c:33)
by 0x81DCBCE: parse_header_references (getid.c:289)
- Fixed valgrind reported memory leak:
106,629 (5,432 direct, 101,197 indirect) bytes in 450
blocks are definitely lost in loss record 25 of 30
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x81A6658: safe_malloc (safemalloc.c:51)
by 0x81DDC51: dup_references (references.c:205)
by 0x80E783B: copy_header (duplicate.c:385)
> references field was not correctly duplicated.
- Fixed valgrind reported memory leak:
4,540 (60 direct, 4,480 indirect) bytes in 2
blocks are definitely lost in loss record 25 of 29
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x81A6658: safe_malloc (safemalloc.c:51)
by 0x814C798: browser_malloc2 (savefolder.c:2463)
by 0x814C81A: browser_malloc (savefolder.c:2489)
by 0x814CA9C: new_browser (savefolder.c:2579)
by 0x80B6556: OpenMailbox (openmailbox.c:30)
- Fixed valgrind reported memory leak:
76 (8 direct, 68 indirect) bytes in 1
blocks are definitely lost in loss record 14 of 26
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x81A6658: safe_malloc (safemalloc.c:51)
by 0x81B43A8: malloc_string (string.c:81)
by 0x81B53C6: cat_strings_internal (string.c:488)
by 0x81B5D17: cat_strings (string.c:718)
by 0x813C908: browser_cat_local (localmbx.c:1073)
by 0x814F511: give_edit_buffer (savefolder.c:3706)
by 0x807A750: gb_browser (browser.c:622)
by 0x80993F2: enter_helper (in_utils.c:833)
by 0x807B3AA: run_browser (browser.c:1049)
by 0x807B5B2: folder_browser (browser.c:1124)
by 0x80B65C4: OpenMailbox (openmailbox.c:38)
- Fixed valgrind reported memory leak:
212 (8 direct, 204 indirect) bytes in 1
blocks are definitely lost in loss record 16 of 25
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F6178: safe_malloc (safemalloc.c:51)
by 0x4104928: malloc_string (string.c:81)
by 0x4106A9D: dup_string (string.c:891)
by 0x410B675: append_string (string.c:2761)
by 0x40DBDC9: look_special_tokens (getaddr.c:181)
by 0x4157934: parse_tokenized_message_id (getid.c:126)
> Comments was not correctly recorded.
- Fixed valgrind reported memory leak:
12 bytes in 1 blocks are definitely lost in loss record 1 of 23
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F6178: safe_malloc (safemalloc.c:51)
by 0x80E4854: malloc_empty_alias_buffer (buffer.c:38)
by 0x805FB6E: add_current_alias (alias.c:691)
- "Using Elm ME+ 2.5 PLalpha19 on AIX, for the first time ever,
I tried to add an alias (typing 'a' in the main menu).
When I completed entering the information, I got the following
error message:
| Updating aliases...
|
| Couldn't malloc 0 bytes!!
|
|
| PANIC in utils.c:90:malloc_failed_exit
| >>>Out of memory"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Do not malloc empty array on ascify_string()
- Fixed valgrind reported memory leak:
880 (664 direct, 216 indirect) bytes in
56 blocks are definitely lost in loss record 18 of 24
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F6178: safe_malloc (safemalloc.c:52)
by 0x414B3E3: new_address (address.c:56)
by 0x41555A8: new_address_string (parsestring.c:255)
by 0x8061CB0: lookup_dummy (alias.c:1718)
- Fixed valgrind reported memory leak:
216 bytes in 28 blocks are definitely lost in
loss record 138 of 183
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F6178: safe_malloc (safemalloc.c:52)
by 0x40C3415: cs_stream_from_ascii (cs_binary.c:1778)
by 0x410738D: stream_from_string (string.c:1135)
by 0x415554D: ascify_address (parsestring.c:235)
by 0x4155590: new_address_string (parsestring.c:251)
- Fixed valgrind reported memory leak:
18 bytes in 9 blocks are definitely lost in
loss record 70 of 233
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F6178: safe_malloc (safemalloc.c:52)
by 0x40DA4E6: hdr_text (hdrdecode.c:491)
- Fixed bug where "mailer = submission" was giving
RET parameter to RCPT command when it must be on
MAIL command on submission (or SMTP) protocol.
- If password entry (passwd struct) of user does not
found, report error message from errno if available.
- Do not call getpwnam() again when getting fullname of
user, instead us result from earlier getpwnam() or
getpwuid(). That is, use get_fullname1() instead of
get_full_name().
- Fixed valgrind reported memory leak:
27 (8 direct, 19 indirect) bytes in 1 blocks
are definitely lost in loss record 156 of 341
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x40F62E8: safe_malloc (safemalloc.c:52)
by 0x4035F32: encode_mime_params_v (mime_param.c:1557)
by 0x80AD0BB: mime_write_header (mime_encode.c:535)
- Changed mime_write_top_headers() to use mime_write_header()
when writing "Content-Type: multipart/mixed" header field.
- Elm ME+ 2.5 PLalpha19 change to not encode
characters '.', ',', ':' and '/' on Q encoding
did not take onto account that some of these are
special characters on structured fields.
Fixed that for structured fields (on subject these
characters still are not encoded).
SUMMARY: This release changes aliases implementation.
Also file names and format of aliases is changed.
Regression of In-Reply-To header field editing
on "Message Header Edit Screen" is fixed.
Header field conversion on b)ounce now applies
also to some MIME header fields. Now also
bold and underlined text are used on display
(in addition of inverse text). Also some other
changes and bug fixes are included.
Note: You must create directory
lib/alias
before applying this patch!
- Fixed an error, where entering message-id to
In-Reply-To header field on "Message Header
Edit Screen" was giving error message
Missing > after < on in-reply-to header.
- When In-Reply-To header field on "Message Header
Edit Screen" is edited, generated References:
-header field is recalculated.
- Added check to "Message Header Edit Screen"
that message-id entered to References: -header field
is valid syntax.
- Added some more places where elmrc option
"convert-utf-header" is applied.
- If there is 8-bit content on MIME header
fields following header fields are rewritten (without
causing error) from parsed data on b)ounce:
Content-Disposition:
Content-Description:
Content-Type:
This encodes 8-bit data with RFC 2231 or mime encoded
words there where they are allowed. Note that charset is
guessed and is quite probably wrong.
NOTE: Currently this loses comments from Content-Disposition
and Content-Type
- If elmrc option "mime-parameters" have value "plain",
that conversion (of RFC 2231) is not done.
- Changed Q encoding of mime encoded words so that
characters '.', ',', ':' and '/' are no longer encoded.
- Some changes on aliases handling.
- Dropped hash (ndbz) because Elm reads all aliases
to memory and search them from memory in order.
- Moved some code from lib/mk_aliases.c to
lib/alias/oldaliases.c
- Moved some code from src/aliaslib.c to
lib/alias/aliasexpand.c
- Added aliases parsing routines to lib/alias/
- Changed aliases file format, new files are
.elm/elmaliases and $lib/elm.aliases
- Non-ascii values are stored with MIME encoding
- Moved some code from lib/misc/conf_writer.c
to lib/conf_writer.c
- There is many changes on aliases handling
and on "Alias mode" of elm
- If old format alias file is found when Elm
starts, it is prompted that is it used
or is it converted to new format.
- Now there is three types of aliases:
- Person alias
- Address list alias
- Group alias
and mixed form of these.
- Program "newalias" now converts old format aliases
file to new format.
- Existing old aliases.text file on elm global library
directory is converted to new format during
installation (with -g option of newalias).
- Added option -q (quiet) to newalias. This option
ignores error, if old aliases.text file does not exists.
- Program "elmalias" have following new format
specifications:
%f First name (of person alias)
%A Address (of person alias)
%L Address List (of address list alias)
%P Phrase (of group alias)
%V Vector (of group alias)
Format specifications for different alias types
are:
- Person alias
%l Last Name
%f First Name
%A Address (the alias value)
- Address list alias
%L Address list (the alias value)
- Group alias
%P Phrase
%V Vector (the alias value)
Common specifications for all alias types are:
%a Alias (the alias name, alias key)
%c Comment (not displayed in mail headers)
Also following specifications are generated:
%n Name (the user's full name)
%v Address (the alias value)
%t Type (Person, Address List, Group,
Mixed, or Unknown)
- Program "elmaliases-write" reads and writes new format
aliases file.
- Configure now copies doc/elmaliases to
bin/elm.aliases for installation
- Configure -M and Configure -S also (re)generates
bin/elm.aliases
- Elmaliases-write option -c merges elm.aliases or
elmaliases file with file given as argument.
- Configure does not read elm.aliases from
elm global library directory. Instead existing
elm.aliases from elm global library directory
is merged during installation (with -c option on
elmaliases-write).
- New values without merging are written to
elm.aliases.NEW during installation.
- "a)lias current message" now generates alias also
on case where From: -header field have several
addresses.
- When given address, aliases is now possible
to enter on quoted form. This makes possible to
use aliases, which includes spaces....
- Aliases are now case sensitive. They are not
lowercases (however aliases from old format
aliases file are lowercased).
See also chapter "Aliases information"
- Added note to Configure that merges are done
during installation.
- Moved append_string() from lib/hdrdecode.c
to lib/string.c
- append_string() now takes also printed
argument.
- Added string_copy_character() to lib/string.c
- Added string_have_ascii_sep() to lib/string.c
- Exported is_special() as unicode_is_special()
from lib/stringtok.c
- Added parse_one_address() to lib/addr/getaddr.c
- Added lib/addr/parsestring.c which handles
addresses on struct string -form
- Added address_to_str() and list_to_str()
to lib/addr/write_hdr.c
- Exported string_need_quote() from melib/mime_param.c
- Exported append_quoted_to_string() from
melib/mime_param.c. It now uses
string_copy_character()
- string_need_quote() now uses unicode_is_special()
- Added -O option to Usage: -line of Configure
[ Was not really added ]
- LIB_SRC is removed from lib/Makefile
- Exported part of formatting code as
format_S_helper() from lib/output.c
- Allow cancel startup questions with Ctrl-C
(interrupt character)
- Moved append_quoted_to_string() from
melib/mime_param.c to lib/addr/parsestring.c
- Moved unquote_string() from
melib/mime_param.c to lib/addr/parsestring.c
- Added some more ending terminators --END
to ~/Canceled.mail.dir/.index
- Ignoring Message-ID if there is parse error
on it.
- StartBold() (or pg_BOLD) and
StartInverse() (or pg_INVERSE) both used
so Start standout mode
On Elm 2.5 there is StartStandout
instead.
Renamed StartInverse() (or pg_INVERSE)
to StartStandout() (or pg_STANDOUT)
and changed StartBold() (or pg_BOLD)
to use
md Start bold mode
- Removed StartHalfbright() (or pg_HALFBRIGHT)
and EndHalfbright(). Used code was
hs
and Linux manual gives
mh Start half bright mode
also that is not on vt100 and is
not used on Elm
- Added pg_REVERSE for
mr Start reverse mode
(not used currently:
On Linux xterm termcap both
mr and so resources gives \E[7m )
- Changed search matches on builtin++ -editor
to use StarStandout() on instead of StartBold
- Changed Help title on builtin++ to use
StartBold (instead of StartInverse)
- Changed builtin++ prompt to use StartStandout
on instead of StartBold
- Also changed similar metapager prompt to use
pg_STANDOUT instead of pg_BOLD
- Also changed similar showmsg prompt to use
pg_STANDOUT instead of pg_BOLD
- Added pg_BOLD to following titles
- Mailbox (i.e. main screen)
- Mail Pre-Send Screen
- Message Header Edit Screen
- -- ELM Options Editor --
- Folder selection
- List info
- Generic reply
- List-Subscribe selection
- List-Unsubscribe selection
- List-Post selection for mailing
- List-Post selection for reply
- List-Help selection
- List-Archive selection
- Remote URL verification
- List-Owner selection for mailing
- List-Owner selection for reply
- Alias info
- Alias info (expanding address)
- Alias info (alias editing)
- Send only mode
- Extended command selection
- MIME structure Menu
- Attachment Menu
- Mailbox (thread mode)
- Attachment Configuration
- Mailcap program selection
- Metamail selection
- There is parsing errors on message
- Mime type check
- Viewing folder
- Added pg_BOLD to border on showmsg
- Reset terminal modes more carefully on enter
- Show first line (i.e. Message XX/XX) on builtin++ -pager
underlined.
- Now on "Metamail selection" DOWN and UP keys can go
to to next or previous mail when cursor walks out of
question list.
- Fixed crash on "Metamail selection" screen, when RIGHT
key is pressed.
- Now on "There is parsing errors on message"
DOWN and UP keys can go to to next or previous
mail.
- Moved motion() from src/elm.c to src/motion.c
- Moved movement and some common commands from
process_showmsg_cmd() on src/showmsg_c.c to
process_motion_command() on src/motion.c
- When viewing alias info there can be used movement
and alias commands somewhat similar way than
mailbox commands can be used on when viewing
message.
- Initialize "unidata" early.
- Fixed 'fastmail -i in-reply-to' which was
commented out on Elm ME+ 2.5 PLalpha18.
- Fastmail was not writing To: -header field.
Added To: -header field to fastmail generated
mails.
[ Actually by mistaken From: -header field value
was added as To: -header field value. ]
NOTE: Fastmail is still broken. Generated mails are not
MIME encoded when needed.
- Added -c option to readmsg
- Added -c option to elmalias
- "I failed to compile elmME+.2.5.alpha18 (alpha17 compiled ok)
on AIX 5.3. The error I receive is:
make[1]: Entering directory `/home/rangers/noam/elmME+.2.5.alpha18/lib/addr'
cc -I../../hdrs -I/u/rangers/noam/elmME+.2.5.alpha18/hdrs -O -c -o write_hdr.o write_hdr.c
"write_hdr.c", line 357.13: 1506-343 (S) Redeclaration of do_simple_wrapping differs from previous declaration on line 355 of "write_hdr.c".
"write_hdr.c", line 357.13: 1506-381 (I) The type "int" of parameter 4 in the prototype declaration is not compatible with the corresponding parameter type "enum encoding" in the nonprototype declaration."
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Fixed prototype of do_simple_wrapping()
- Added command "elmregister list-conffiles" to generate files
listing suitable for dpkg command. Names on list are
NL separated. Actually this produces nothing, because
config files are created replay time.
New tools:
elmaliases-write
New files:
lib/alias/aliases.c
lib/misc/oldaliases.c
lib/alias/address_alias.c
lib/alias/Makefile.SH
lib/alias/def_alias.h
lib/alias/alias_vector.c
hdrs/aliaslib.h
lib/conf_writer.c
hdrs/conf_writer_imp.h
lib/alias/init.c
lib/alias/aliasexpand.c
src/aliases/aliases_map.c
src/aliases/record.c
src/alias_display.c
src/aliases/buffer.c
lib/addr/parsestring.c
src/alias_info.c
utils/elmaliases-write.c
utils/aliases_helper.c
doc/elmaliases-write.1
doc/elmaliases
ConfTool/GenAliases
src/alias_itemized.c
src/motion.c
src/alias_info_1.c
utils/aliases_helper.h
Removed files:
lib/ndbz.c
hdrs/ndbz.h
lib/mk_aliases.c
lib/aliasdb.c
src/aliases/astorage.c
src/aliases/astorage_hash.c
src/aliases/alias_alloc.c
src/aliases/find_alias.c
SUMMARY: This release fixes some bugs, prevents recursive
mail commands via "m)ail -> view) folder", adds
conversion of MIME messages on b)ounce and f)orward
commands, adds generation of References: -header
field and adds OpenDocument formats to mime.types
-file.
- Added following new types to doc/mime.types file:
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.chart-template
application/vnd.oasis.opendocument.formula
application/vnd.oasis.opendocument.formula-template
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.graphics-template
application/vnd.oasis.opendocument.image
application/vnd.oasis.opendocument.image-template
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.presentation-template
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.spreadsheet-template
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.text-master
application/vnd.oasis.opendocument.text-template
application/vnd.oasis.opendocument.text-web
- Fixed a small error on cat_strings() where wrong charset
name is printed when printind is specified.
- Fixed small errors on ascii_need_quote() and
string_need_quote on melib/mime_param.c. Both had
missing [] characters.
- Fixed some prompt positions on alias mode
- Possible fix for get_word_from_string()
- Fixed a small error on error message of write_conf()
- Fixed the error message on delete_alias_files()
- Fixed the error where (comment) was lost when address
Phrase <some@address> (comment)
was parsed. Address was stored when '>' was seen
so that (comment) was not seen yet. Not parser delays
storing of address to next ',' if '>' is not the last
token.
- Command sequence
m)ail -> view) -> ' ' -> m)ail
was possible. Changed it so that 'm' gives
"Attaching message is not possible when viewing it"
error.
- Command sequence
m)ail -> view) -> ' ' -> b)ounce
was possible. Changed that 'b' gives
"Attaching message body is not possible when viewing it"
error.
- Command sequence
m)ail -> view) -> ' ' -> r)eply
and
m)ail -> view) -> ' ' -> f)orward
and
m)ail -> view) -> ' ' -> g)roup reply
and
m)ail -> view) -> ' ' -> Mailing list I)nfo
and
m)ail -> view) -> ' ' -> ^K (Mail PGP public key)
and
m)ail -> view) -> ' ' -> generic R)eply
were possible. These were sending mail (recursively).
Added flag SHOWMSG_NOMAIL which disables
mailing commands.
Also disallowed
m)ail -> view) -> ' ' -> V)iew digests
because there also are mailing commands.
- Fixed the error where hdr_comment() was not correctly
dequoting \ -escaping.
- Fixed the error where extra ',' was added to the
end of address list
- Moved struct header_rec from elm_defs.h to addrlib.h
- Moved struct mimeinfo from elm_defs.h to addrlib.h
( mimeinfo is embedded in struct header_rec)
- Added References: -header generation as specified
on RFC 2822:
The "References:" field will contain the contents
of the parent's "References:" field (if any) followed
by the contents of the parent's "Message-ID:" field
(if any). If the parent message does not contain
a "References:" field but does have an "In-Reply-To:"
field containing a single message identifier, then the
"References:" field will contain the contents of the
parent's "In-Reply-To:" field followed by the contents
of the parent's "Message-ID:" field (if any).
- Parsed message-id as
<left@right> (comment)
- Moved check_8bit_string() from lib/id_phrase.c
to lib/addr/write_hdr.c
- Moved check_8bit_string() from lib/id_phrase.c
to lib/addr/write_hdr.c
- Moved write_string_header() from lib/id_phrase.c
to lib/addr/write_hdr.c
- Moved write_text_header() from lib/write_hdr.c
to lib/addr/write_hdr.c
- Moved print_EOLN() from lib/write_hdr.c
to lib/addr/write_hdr.c
- Moved struct addr_list to inside of
lib/addr/addr_list.c file.
- Moved struct address to inside of
lib/addr/address.c
- Fixed the error where the header field names were not
correctly recognized if there were spaces before ':'
on header field.
- Check on b)ounce that mail does not have overlong
lines (over 998 characters). Overlong lines in
mailbox were seen as the result of following events:
1) One mail client had sent message with
Content-Type: text/plain; Charset=iso-8859-15; Format=Flowed
However the lines were not wrapped as specified
on flowed -format. The result was that whole
chapter was on one line. Result was quoted-printable
encoded, so the lines did not exceed the maximum
length during transfer.
Mail client apparently indentified itself as
X-Mailer: Saunalahti webmail - http://saunalahti.fi
2) Sendmail did conversion quoted-printable => 8bit
when the message was was saved into the mailbox.
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by XXX id XXX
After these there were over 1400 character lines in the
mailbox. Re-sending the resulting message exceeded
SMTP's 1000 character line length limit. Therefore elm now
does no longer send messages on b)ounce unaltered.
( Actually header field "Content-Transfer-Encoding: 8bit"
generated here by sendmail is not correct either. MIME
allows only 998 character long lines for "8bit data". )
Messages are not fully checked when doing b)ounce.
However if errors are seen during conversion,
b)ounce may fail. If conversion of some part
of message is not done, then also errors may
be ignored.
Only MIME messages are converted. Non-MIME messages
(and messages with unknown MIME version) are handled
the old way (remailed without processing). If there
is 8-bit content on header fields on a MIME message,
that causes error on b)ounce.
8-bit on content on (top level) header fields is sent
as is without error if elmrc option "nohdrencoding"
is set (this also causes that header fields are not MIME
encoded.)
- If there is 8-bit content on (top level) header
fields following header fields are rewritten (without
causing error) from parsed data on b)ounce:
From:
To:
CC:
Reply-To:
In-Reply-To:
References:
Subject:
This encodes 8-bit data with mime encoded words
there where they are allowed. Note that charset is
guessed and is quite probably wrong.
- When b)ouncing, now Elm adds Sender: -header field to
beginning of header fields (instead of to end of header
fields). Now also from_addr_literal() is used for
Sender: -field (same than what is used Sender: -field
when m)ailing)
- Also when mail is f)orwarded as a separate part (ie. as
message/rfc822 body part) the same happens that on b)ounce.
Therefore this does also same conversions as for the
b)ounce case.
- Also
m)ail -> view) -> Attach m)essage
uses this same conversion.
- However
m)ail -> view) -> Attach message b)ody
does not do that kind conversion. However,
it does not longer trust given
content-transfer-encoding (7bit, 8bit, binary)
on mail.
- Some small fixes to include_part() encoding handling.
New files:
lib/addr/getid.c
lib/addr/message-id.c
lib/addr/references.c
Removed files:
lib/id_phrase.c
lib/write_hdr.c
SUMMARY: This release re-adds "incomingfolders" elmrc option
which was lost on Elm ME+ 2.5 PLalpha5. This release
also fixes redraw loop on "Mailcap program selection
-screen, fixes double free() on search and fixes
filename handling on attch_save().
- Unlink tempfile on error on elmregister.
- Elmrc option "incomingfolders" added on
Elm ME+ 2.5 PLalpha0 was lost on Elm ME+ 2.5 PLalpha5.
- "The attached email triggers a bug in ELM 2.4ME+ PL123.
The problem is that reading this email message causes
continuous redraw of the screen, and you have to kill elm
to exit. I think it is caused by too many attachments."
Reported by: Bruce Momjian <bruce@momjian.us>
> Fixed "Metamail selection" / "Mailcap program selection"
prompt screen.
- "I'm attaching the mailbox consisting of just this message.
To reproduce the problem, save it, uncompress, and try
searching through the body of the message (using elm) for
a string, such as "iegor":
bunzip /tmp/spam-crash.bz2
elm -f /tmp/spam-crash
//
iegor
The double-free happens in the following stack:
(gdb) where
#0 0x0000000800a9855c in kill () from /lib/libc.so.6
#1 0x0000000800a973ed in abort () from /lib/libc.so.6
#2 0x0000000800a36ae5 in _UTF8_init () from /lib/libc.so.6
#3 0x0000000800a36b1c in _UTF8_init () from /lib/libc.so.6
#4 0x0000000800a37abd in _UTF8_init () from /lib/libc.so.6
#5 0x00000000004978f0 in arrange_decoded ()
#6 0x000000000049ee1b in simple_mime_walk ()
#7 0x000000000049ecf7 in simple_mime_walk ()
#8 0x000000000046bae3 in mc_match_in_text_mbx ()
#9 0x0000000000469ced in mcommon_match_in_text ()
#10 0x0000000000457cfa in pattern_match ()
#11 0x00000000004351fe in motion ()
#12 0x0000000000435945 in mailbox_command ()
#13 0x0000000000445ae6 in compute_visible ()
#14 0x0000000000446560 in main_messages_menu ()
#15 0x00000000004347fd in main ()"
Reported by: Mikhail T. <mi+elm@aldan.algebra.com>
> Fixed valgrind reported invalid free:
Invalid free() / delete / delete[]
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8199E78: safe_free (safemalloc.c:107)
by 0x810B9CF: arrange_decoded (mime_decode.c:2532)
by 0x81173B9: simple_mime_walk (mimewalk.c:151)
by 0x81171FC: simple_mime_walk (mimewalk.c:95)
by 0x80CCBE2: mc_match_in_text_mbx (message_pattern.c:464)
by 0x80CA1B3: mcommon_match_in_text (mcommon.c:214)
by 0x80B1ABE: pattern_match (pattern.c:439)
by 0x8083ADE: motion (elm.c:1881)
by 0x8081BBD: mailbox_command (elm.c:892)
by 0x8099649: main_messages_loop (mailbox.c:242)
by 0x809A1AE: main_messages_menu (mailbox.c:664)
Address 0x4493630 is 0 bytes inside a block of size 20 free'd
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8199E78: safe_free (safemalloc.c:107)
by 0x810B9B7: arrange_decoded (mime_decode.c:2528)
by 0x81173B9: simple_mime_walk (mimewalk.c:151)
by 0x81171FC: simple_mime_walk (mimewalk.c:95)
by 0x80CCBE2: mc_match_in_text_mbx (message_pattern.c:464)
by 0x80CA1B3: mcommon_match_in_text (mcommon.c:214)
by 0x80B1ABE: pattern_match (pattern.c:439)
by 0x8083ADE: motion (elm.c:1881)
by 0x8081BBD: mailbox_command (elm.c:892)
by 0x8099649: main_messages_loop (mailbox.c:242)
by 0x809A1AE: main_messages_menu (mailbox.c:664)
- "Not sure if you have fixed this in later releases but in ELM 2.4ME+
PL123 if I try to save a file attachment of type "image/jpeg" and the
file name already has extension "jpg" elm suggests the additional
extension "jpeg"."
Reported by: Bruce Momjian <bruce@momjian.us>
> Filename was not correctly recorded on attach_save()
SUMMARY: This release fixes bug on c)hange command which caused
lost of mail. Also bug on joint use of l)imit and
'Eo' -command is fixed. This release also adds some
new subcommands to elmregister -command.
Elm ME+ 2.5 is now main line (trunk or main branch).
- If l)imit command was used, and then Eo) [o)pen mailbox to
current view] was used, wrong messages was shown on
limited display. Now number of selected message is
recalculated after new mailbox is added.
- Changed redraw handling on
"Keep unread messages in incoming mailbox?" question.
- Now "elmregister replay" recreates hard links also when
"-R" option is not used (-R option implies moving
installation to final place).
- Added missing subcommand to elmregister manual page.
- Changed "elmregister rpm-list" so that hard links are
listed. They are now listed with %ghost macro.
- Fixed bug where "elmregister replay -R ..." was setting
files to wrong owner (was used gid as uid) on some
situation, when file was copied.
- Added command "elmregister list" to generate files
listing suitable for tar command. Names on list are
NL separated.
- Added command "elmregister list-directories" to generate
directory listing.
- If after c)hange folder locking of new folder (mailbox)
failed, Elm was keeping open old folder, but temp
file of older folder (mailbox) was closed. That caused
corruption of mailbox.
* If "Folder unchanged." message was given, folder
was not closed.
* Folder was closed on "[Keeping all messages.]" case,
it does not need to be closed on here either.
> Do not call close_folder() on on real_save() at all.
Instead use unlock() on real_cave() ( as in done
if 'resyncing' was set ) .
* Actual closing of mailbox is done anyway with
leave_old_folder() which is called from free_storage()
> Splited leave_mbox() to sync_mbox() function
which never closes mailbox and close_cleanup_mbox()
which does closing (and may remove mailbox).
- Fixed Configuration error on Ubuntu 6.06 (gcc 4.0.3)
Summary: This release changes address handling. It supports group
phrases. They are preserved on reply. This release
also adds "alias-group-phrase" and "confirmprint" elmrc
options. Also some minor fixes are included in this
release.
Note: You must create directory
lib/addr
before applying this patch!
- Some changes on address handling.
- Moved some code from lib/getaddr.c
to lib/addr/getaddr.c
- Moved some code from lib/misc/mlist.c
to lib/addr/mlist.c
- Moved lib/dispaddr.c to lib/addr/dispaddr.c
- Moved some code from lib/okay_addr.c
to lib/addr/okay_addr.c
- Moved some code from lib/mailer/mailer.c
to lib/addr/mailer.c
- Moved lib/outheaders.c to lib/addr/outheaders.c
- Moved ib/mbox/error.c to lib/addr/error.c
- Moved lib/headers.c to lib/addr/headers
- Moved some code from lib/write_hdr.c
lib/addr/write_hdr.c
- Added new elmrc option "alias-group-phrase".
If set (default), it is possible to give phrase
for group aliases, which is includes to address
list.
- Added support group phrases. They are preserved
when mail is replied.
- konsole seems set $COLORTERM to "". Added
xterm DW UTF-8 [ $COLORTERM="" ]
to doc/terminal.info. This assumes that all
these terminals treat certain UTF-8 characters as double
wide (as defined with wcwidth() function).
- "make install" now indicates if "sh Configure -M"
need to be rerun.
- Removed src/string2.c -- occurances_of() is not
called anywhere.
- Interpret output of PGP according of mail charset
(that is actually done only when that body part
was text ... )
- "There were two adjacent spaces in the first
email subject line which were collapsed into
one space in the reply, which I think is legal.
Perhaps multiple spaces should be collapsed into
one for comparison, perhaps near
skip_ascii_head_from_string() in thread.c."
Suggested by: Bruce Momjian <bruce@momjian.us>
- Added "confirmprint" elmrc option.
- Changed save_copy() to use prompt_letter() instead
of want_to().
New elmrc options:
alias-group-phrase
confirmprint
New files:
lib/addr/Makefile.SH
lib/addr/def_addr.h
lib/addr/init.c
hdrs/addrlib.h
lib/addr/addr_list.c
lib/addr/address.c
lib/addr/getaddr.c
lib/addr/mlist.c
hdrs/mlist_imp.h
hdrs/mlist_common.h
lib/addr/okay_addr.c
lib/addr/mailer.c
lib/addr/write_hdr.c
Moved files:
lib/dispaddr.c => lib/addr/dispaddr.c
lib/outheaders.c => lib/addr/outheaders.c
lib/headers.c => lib/addr/headers
lib/mbox/error.c => lib/addr/error.c
Removed files:
lib/getaddrfrm.c
src/string2.c
Summary: This release fixes elmregister replay command,
when used with -R option, fixes viewing of binary
files and selection of wrong media type when sending
mail, some UTF-8 problems and compilation errors
when compiled with "-traditional" on gcc.
* Changes from Elm 2.4ME+ PL123f (25):
- "./usr/share/elm/elmregister replay -M all -R `pwd`"
was segfaulting when moving packgage to final place.
Fixed missing initialization on copy_dir().
Problem noted by: Peter Alfredsen <peteralf@tdcadsl.dk>
- Avoid error "./usr/local/lib/elmregister: [pick_one] '{' no arg 0"
when doing "./..../elmregister replay -M all -R `pwd`"
- attach_info() calculated filename extension wrongly.
That caused that wrong media type was selected.
- Fix viewing of binary files on attachment viewer when
sending mail.
- Added
xterm DW UTF-8 [ $COLORTERM="gnome-terminal" ]
to doc/terminal.info. This assumes that all
gnome terminals treat certain UTF-8 characters as double
wide (as defined with wcwidth() function).
- 'return count' was missing from cs_add_streambytes_to_unknown()
-- this caused error message
Text part 1 have bad UTF-8 characters. Send anyway? n
on certain configurations.
- Some compilation fixes for "traditional" C
Summary: This release fixes some bugs and some compilation
problems on AIX. This release includes mapping
table for KZ-1048 and PTCP154 charsets.
- Fix panic
ADDR PANIC in addr_util.c:690:build_address_l
>>>tectual=NULL
when rpm@> is entered as mail address.
- Fix crash on free_addr_items()
- Possible fix for looping
- "I finally got around to it and tried to compile
elmME+.2.5.alpha12 on AIX 5.3. As you can see,
it failed:
gmake[1]: Entering directory `/noam/elmME+.2.5.alpha12/lib'
cc -I../hdrs -I/noam/elmME+.2.5.alpha12/hdrs -O -c -o get_tz.o get_tz.c
" get_tz.c", line 144.36: 1506-045 (S) Undeclared identifier TZNAME_HANDLING."
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Fixed tzname_handling test on Configure which
was using 'const' and not 'CONST' although
lib/get_tz.c uses 'const'.
- "It failed compiling on something else at first try
(please see line 84 of 701 in attached typescript file):
<...>
/bin/egrep -h '#define .*_magic' `cat XXfilelist` | /bin/sort > magic_res1
/bin/sh: /bin/egrep: arg list too long"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Change checking of lib/MAGIC
- Fixed case where changing alias two times without resync
caused that alias name was truncated.
- Updated following charsets on lib/precompiled_sets.c:
Changed Big5-HKSCS to be MIME name
Added BOCU-1 as type unknown
Added CESU-8 as type utf-8
-- not exactly UTF-8
but because Elm builtin map UNICODE effectively
includes only ranges 0x0000 - 0xD7FF and 0xF900 - 0xFFFF,
supported subsets are same.
-- CESU-8 is only marked as codeset and not MIME name.
Added GB18030 as type unknown
Added GBK as type unknown
- Added aliases CP936, MS936, windows-936 to
ConfTool/charaliases.map
- Removed charset CP936 and alias IBM936
(added CP936 to ConfTool/killsets)
Changed IBM00924 to be codeset and not MIME name
- Removed charset IBM00924
(added IBM00924 to ConfTool/killsets)
Changed IBM01140 to be codeset and not MIME name
- Removed charset IBM01140
(added IBM01140 to ConfTool/killsets)
Changed IBM01141 to be codeset and not MIME name
- Removed charset IBM01141
(added IBM01141 to ConfTool/killsets)
Changed IBM01142 to be codeset and not MIME name
- Removed charset IBM01142
(added IBM01142 to ConfTool/killsets)
Added IBM01143 as type unknown
-- IBM01143 is only marked as codeset and not MIME name.
-- IBM01143 was on ConfTool/charaliases.map
(added IBM01143 to ConfTool/killsets)
Changed IBM01144 to be codeset and not MIME name
- Removed charset IBM01144
(added IBM01144 to ConfTool/killsets)
Changed IBM01145 to be codeset and not MIME name
- Removed charset IBM01145
(added IBM01145 to ConfTool/killsets)
Changed IBM01146 to be codeset and not MIME name
- Removed charset IBM01146
(added IBM01146 to ConfTool/killsets)
Changed IBM01147 to be codeset and not MIME name
- Removed charset IBM01147
(added IBM01147 to ConfTool/killsets)
Changed IBM01148 to be codeset and not MIME name
- Removed charset IBM01148
(added IBM01148 to ConfTool/killsets)
Added IBM1047 as type unknown
-- IBM1047 is only marked as codeset and not MIME name.
-- Added IBM1047 (codeset) to ConfTool/charaliases.map
Changed IBM775 to be charset and not codeset.
-- CP775 was already alias of IBM775 on
ConfTool/charaliases.map
-- Added CP775 to ConfTool/killsets
Changed IBM866 to be charset and not codeset.
-- CP866 was already alias of IBM866 on
ConfTool/charaliases.map
-- Added CP866 to ConfTool/killsets
Added Latin-9 to alias of ISO-8859-15.
Added aliases for ISO-8859-16.
Added ISO-11548-1 as type unknown
-- ISO-11548-1 is only marked as codeset
and not MIME name.
-- Added aliases for ISO-11548-1
Added KOI7-switched as type iso2022
-- Added ISO 2022 code for KOI7-switched
Added KZ-1048 as type ascii-set
-- Added aliases for KZ-1048
-- Added charset/MAPPINGS/kz-1048.txt
Added OSD_EBCDIC_DF03_IRV as type unknown
-- OSD_EBCDIC_DF03_IRV is only marked as codeset
and not MIME name.
Added OSD_EBCDIC_DF04_1 as type unknown
-- OSD_EBCDIC_DF04_1 is only marked as codeset
and not MIME name.
Added OSD_EBCDIC_DF04_15 as type unknown
-- OSD_EBCDIC_DF04_15 is only marked as codeset
and not MIME name.
Added PTCP154 as type ascii-set
-- Added aliases for PTCP154
-- Added charset/MAPPINGS/ptcp154.txt
Added UTF-32 as type unknown
-- UTF-32 is only marked as codeset
and not MIME name.
Added UTF-32BE as type unknown
-- UTF-32BE is only marked as codeset
and not MIME name.
Added UTF-32LE as type unknown
-- UTF-32LE is only marked as codeset
and not MIME name.
- Added CHARSET_noalias flag to MIME_name_to_charset()
- Small fix for ConfTool/GenCharmap
- Added -G (global) flag to elmunidata. That causes
that user config files are ignored (during installation)
New files:
charset/MAPPINGS/kz-1048.txt
charset/MAPPINGS/ptcp154.txt
* Changes from Elm 2.4ME+ PL123d (25)
- Fix compilation on ubuntu (GCC 4.0.2).
- "troubles when moving from pgp5 to gpg - cannot
encrypt. Seems parsing of gpg --list-public-keys
is broken in gnupg 1.4.5. syscall to gpg paramter
8 after receipient is <2> ?!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Add support for newer gpg versions
- "last gpg pathes you sent to me work only on some keys!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Elm ME+ was adding < > around of address (not related
to patch) and therefore gpg did not found key when
on key there was no < > around addresses. Removed
adding of < >.
- Elmrc option verify-local-address did worked only for
'address' but not for '<address>'. Fixed that.
NOTE: However verify-local-address works only when
mailer option verify=yes works.
- sendmail -bv {address} works only, when sendmail is
installed as setuid root. Starting from sendmail 8.12
sendmail is no longer installed as setuid root.
* This was causing problems for mailer elmrc option
'mailer=sendmail; allow-set-sender=yes'
> Do not use sendmail -bv {address} to verify envelope sender
address if that test was failed on Configure. Mailer option
'verify-set-sender' controls is sendmail -bv {address} called
when envelope sender is set.
- This also affects mailer option verify=yes, but default
for that option is verify=no anyway.
- These problems accours when mailer option have setting
mailer=sendmail (default). This do not affect
mailer=submission setting.
- Changed processing of format on lib/output.c,
lib/debug.c so that zero width format should work...
- Added option -E (ignore errors on arg) elmrc-write
- Used -E option on final
elmrc-write -G -I elm.rc.old-values
* Change from Elm 2.5
- Added struct knode to src/screen/knode.c (!!) [K1]
(!!) struct knode is not identical with version on Elm 2.5
- Some cleanup:
cur_Raw(OFF) => cur_leave_screen(),
cur_leave_screen_signal()
cur_Raw(ON) => cur_enter_screen()
Raw(OFF|RAW_FROM_SIGNAL) => signal_leave_screen()
Raw(ON|RAW_FROM_SIGNAL) => signal_enter_screen()
NO_CHARSET flag removed (not used)
- Renamed some variables on src/screen/
- If on terminal c_iflag have IUTF8, assume UTF-8
for input and give warning if locale is not UTF-8.
Display charset is also tried to change to UTF-8.
- Add support
[ $VARIABLE =~ "joker*string" ]
condition on terminal.info
- Add support for condition on ISO-2022 and ISO-2022/DW line
- However enabling utf-8 (when xterm is started without
utf-8 ie. xterm +u8) with iso2022 codes seems cause
crash (Segmentation fault) on ubuntu (XTerm(203)),
so by default it is not assumed.
- Otherwise it can be assumed on elm.terminalinfo on
that TERM=xterm supports ISO2022 sequences for set
utf-8 charset on terminal if XTERM_VERSION environment
variable is set). This environment variable
is introduced on XFree86 4.6.0.
- On doc/terminal.info is that code, but commented out.
- Strip pathnames from debug output
- Before adding charset=UTF-8 automatically to attached
text files check that they look like utf-8. If check
failed then charset=UNKNOWN-8BIT is added instead.
- Add support for condition on DW line of
terminal.info
This is used lines like
xterm DW UTF-8 [ $XTERM_VERSION=~"XTerm(*)" ]
* Changes from Elm 2.4ME+ PL123e (25)
- Fix panic
STRING PANIC in cs_unknown.c:1993:cs_estimate_clip_unknown
>>>printable_len not supported
Emergency exit taken! All temp files intact!
on some cases when
locale-charsets elmrc option is used.
- Fixed some problems with Configure on ubuntu.
- When
locale-charsets = UTF-8
was effect, Elm ME+ was printing
[ Charset US-ASCII unsupported, converting... ]
> Be sure that cs_unknown gives flag CS_universal_set
for UTF-8 as cs_utf was giving.
- Avoid error message
"Failed save message to folder XXXX"
when saving mail from V)iew digest -command
and embedded mail do not end to newline.
- Hide Bcc when forwarding.
- When checking that can display charset represents all
characters from charset of mime part, compare also ISO 2022
sets. This affect message
[ Charset XXXX unsupported, converting... ]
versus
[ Charset XXXX converted... ]
- When catenating strings also compare ISO 2022 sets,
when selecting result charset.
- NOTE: On catenation conversion is done still
via Unicode even when it is possible to do
just via copying iso2022 banks. This means
that there must be mapping defined for every
ISO 2022 set on charset. See chapters
"One Eastasian recipe" and "ISO2022 maps information"
for details.
- Check if mail text can be converted to US-ASCII
- If if mail text can be converted to charste given
on text-charset elmrc option, UTF-8 charset is used
as fallback if conversion is not possible.
- If there is bad characters on buffer,
Text part <number> have bad <charset> characters.
Send anyway?
is prompted.
- If any conversion is not found,
Failed convert <charset> characters on part <number>.
Send anyway?
is prompted.
- If other than text-charset or US-ASCII is used
on conversion
Using charset <charset> instead of <charset> on part %d.
Send anyway?
is prompted.
- Parsing of [keywords] on main buffer is changed.
- ']' inside of " " quotes do not end keyword.
- Text after [keyword] (before end of line) is preserved.
- Following error messages are added:
* NUL character on keyword line
* Quotation error on keyword line, no space before
quotation.
* Missing ending keyword ] on line starting with [
* Quotation error on keyword line, no ] outside of
quotations
* Empty [] on keyword line
* Keyword [<keyword>] requires parameters.
* Keyword [<keyword>] do not have parameters.
- Added convert_string2()
- Failure of conversions is not detected if
conversion is done to charset with type=iconv
(libelmme-tls.so module).
- Removed prompt_menu3 from verify_transmission()
on src/mailmsg2.c
- Replaced some want_to() with prompt_letter()
- Changed charset/UNIDATA/UNIDATA2.TXT
from Unicode 2.0
to charset/UNIDATA/UnicodeData-Latest.txt
from Unicode 2.1.9
> That adds characters
U+FFFC OBJECT REPLACEMENT CHARACTER
U+20AC EURO SIGN
- There is new general categories on file:
Pi = Punctuation, Initial quote
Pf = Punctuation, Final quote
> Added these to lib/unidata.c
> unidata.bin uses UNIDATA21_magic (0xFB02)
instead of UNIDATA_magic (0xFB00)
because of new categories.
- When reading mailbox, test= arguments from
mailcap is executed. That may cause that screen
is cleared.
- Fixed message
[ Use 'Rl' to reply to list or 'I' for list info. ]
on case when there is header
List-Post: NO (posting not allowed on this list)
- Changed "Metamail selection" menu so that
default answer is 'p' on last question if
any of mailcap questions are answered.
- Code for detecting
-----BEGIN PGP
on parse_body_routine() was messed up on some merge.
New files:
src/screen/knode.c
charset/UNIDATA/ReadMe.txt
charset/UNIDATA/UnicodeData-Latest.txt
Removed files:
charset/UNIDATA/README.TXT
charset/UNIDATA/UNIDATA2.TXT
Corresponding quotes from Elm 2.5 PL7 Changes file:
[K1] Totally new curses subsystem.
Note: You must create directories
lib/mbox
src/url
src/block
src/list
lib/misc
utils/readmsg
before applying this patch!
* Changes from Elm 2.4ME+ PL123 (25)
- Added view folder command to pre-send menu.
This allows attaching messages from current mailbox
to mail.
- Some changes on mail() -function.
- Moved mailbox related code from libelmme-base.so to
libelmme-mbox.so.
- Removed provides_shared_CT
- Moved some showmsg loops from elm.c to new file
showmsg_1.c
- Changed implementation of elmrc option "extra-mailbox-dir".
- Changed implementation of elmrc option "attachment-dir".
- Changed implementation of elmrc option "gpg".
- Changed implementation of elmrc option "metamail".
- Changed implementation of elmrc option "pgp2".
- Changed implementation of elmrc option "pgp5-dir".
- Changed implementation of elmrc option "print".
- Moved some code from lib/charset.c to lib/mparse.c
- UTF-8 is now required character set on code as is
US-ASCII.
- When catenating strings prefer UTF-8 charset instead
of display charset
- Give error if -s 'subject' option is given several
times to Elm.
- On batch mode standard input is read for mail
only when -i (include file) option is not given
(but actually -i option is not allowed on batch
mode.)
- Added mp_list_set_anon() and mp_lookup_anon() to
src/screen/menu_param.c.
- Some cleanup on mailmsg1()
- Changed default of elmrc variable "names" to NO
- Removed wra_ReadCh() from src/screen/
- Removed ReadCh (but not menu_ReadCh())
- Removed cur_ReadCH from src/screen/curs_input.c
- Added to menu_ReadCh() / menu_ReadCh2() flag
READCH_poll, this waits one second for character.
If character is not given or POLL_METHOD is
not set, this returns TIMOUT_MARK as flag (or character)
- Clear redraw flag of prompt area (ie. clear prompt
area) after menu_redraw_children() only if redraw flag is set.
- Moved main messages menu loop to src/mailbox.c from
src/elm.c
- exit_prog() no longer call leave but instead
returns 1 if caller should exit.
- exit_prog() is renamed to exit_mailbox()
- quit() no longer call leave but instead
returns 1 if caller should exit.
- Added some support for RFC 1738 URL -syntax
RFC 1738: Uniform Resource Locators (URL)
- Added some support for RFC 1808 URL-syntax
RFC 1808: Relative Uniform Resource Locators
- Added -O 'url' (open url) option to Elm.
Error is given if this option is given several
times.
WARNING: This option does not ask any confirmation.
- Added --confirm-url option. This asks confirmation
for url given on -O option.
- Added support for RFC 2368 mailto -urls.
- It is unclear what character set is used
on URLs. This especially effects subject
header and body pseudo header on mailto
url. Following rules are used:
- If URL includes non-ascii characters,
charset of (decoded) URL is implied
charset of URL
- If URL includes %XX encoded characters
> %7F (ie. non-ascii) charset of
decoded URL is UTF-8. This means that
%XX encoding is assumed to be use
UTF-8 character set.
- Note that these two rules are on
conflict if some, but not all non-ascii
characters are % -encoded.
- Added dummy handler for http -URLs.
- Added some support for imap -URLs.
This support is incomplete and does not fully
follow RFC 2192.
- ;AUTH= is not supported
- ;TYPE= is not supported
- ;UIDVALIDITY= is not supported
- ;SECTION= is not supported
- ;UID= is not supported
* Basically only imap mailbox can be specified,
not indivual message or list of messages (search result).
That is like
imap://user@full.hostname/inbox
- imap server can not be without mailbox.
That is like
imap://user@full.hostname/
it is not currently available.
- Command
elm -O imap://user@full.hostname/inbox
can be used. That open imap folder
similarly than command
elm -f user@full.hostname:inbox
- RFC 2192 says that native separator of imap
is used as hierarchy separator. This implementation
accepts URL separator (/) as hierarcy separator
(even when native separator differ.)
- Numbers 0-9 are also valid for imap atom. No need to
convert parameter to string or literal.
- Added RFC 2369 headers to known headers:
List-Help, List-Subscribe, List-Unsubscribe,
List-Post, List-Owner, List-Archive
- Added
"List-ID:", "List-Help:", "List-Subscribe:",
"List-Unsubscribe:", "List-Post:", "List-Owner:",
"List-Archive:"
to default weedout list.
- RFC 2369 List-Help, List-Unsubscribe,
List-Subscribe, List-Post, List-Owner and
List-Archive are parsed.
- Added Generic R)eply -command. That forms
following subcommands:
Ra Reply to all
Rl Reply to a mailing list
Ro Reply to the owner of a mailing list
Rt Reply to the author of a message
- Added Mailing list I)nfo -command.
Il Mail a message to a mailing list
Io Mail a message to the owner of a mailing list
Ih Mailing list help
Ia Mailing list archive
Is Subscribe a mailing list
Iu Unsubscribe a mailing list
Note that most of these commands are only able to send mail,
so only mailto: -urls works.
- Commands
Ih Mailing list help
Ia Mailing list archive
Is Subscribe a mailing list
Iu Unsubscribe a mailing list
accepts also (subset of) imap: -urls. These commands
cause that a new mailbox is entered (visited) when
imap: -url refers to whole mailbox. Current
mailbox is not closed so this works differently
than c)hange folder -command. Also when the mailbox
visited is left, messages are not moved to the =received
folder. Commands that are available when visiting
a mailbox via url are somewhat limited (changing of
folder for example is not available). Actually
probably command
Ia Mailing list archive
makes sense from these.
- When remote url is referenced, elm asks confirmation
from user before entering mailbox/folder.
- Also anonymous imap urls such as
List-Archive: <imap://full.hostname/inbox>
are supported.
- Added common movement routine to src/movement.c.
This is used by src/attach_menu.c and src/list/select.c
- Made some changes to attachment screen.
- Removed cur_Write_to_screen()
- Removed cur_PutLineX()
- Added 'E' as E)xtended command -prefix.
- Added 'Ed' as duplication removal mode.
Duplicare removal requires that messages have Message-ID.
When duplicates are collected also some other headers than
Message-ID is checked that they are same.
Duplicate removal does not delete messages but shows
duplicates as one message on mailbox menu. Status changes
are copied to all duplicates when message is read, tagged,
flagged or marked for deletion.
- NOTE: Mailing lists are not currently supported.
Specially duplicates are not currently removed
if mail has any List-* -header.
- Also on duplicate removal mode folder state does not
work and therefore commands which use readmsg. On
duplicate removal mode pipe (|) command is not available.
- Reimplemeted thread sorting (old code did not
work with duplication removal mode.)
* NOTE: threads are still based on subject (as on
old thread sorting.)
- Added 'Et' as view t)hreads -command. On viewing
thread return can be used to select particular
thread or 'd' can be used to mark all messages of
thread to be deleted and 'u' can be used to
mark all messages of thread to be undeleted.
* NOTE: It is not possible to delete threads.
Even when all messages are removed from thread
(when messages are actually deleted via resync ($)),
thread is still visible if 'Et' command is used.
- Added elmrc option "thread-sortby". This specifies
sorting order for thread view. Possible values
are "sent" and "subject" (also "reverse-sent"
and "reverse-subject").
- If "unstable-reverse-thread" is set, reverse-sent
sorting of "thread-sortby" is based on lastest
message on thread. Therefore thread moves to new
location, when new message arrives to thread.
- Some code changes on src/messages/
- Moved show_message_status from lib/mbox/mbox.c
(originally from src/screen.c)
to src/messages/status_common.c
- Moved status handling from src/menu_common/mailbox.c
to src/messages/status_common.c. Routines on
src/menu_common/mailbox.c does just forwarding.
- Removed adds_only argument from newmbox_1(). That is
always FALSE. New mails are read with read_new_mails()
function.
- Added "Eo" as o)pen mailbox to current view -command.
This works similarly with several -f options on command
line. That command opens new mailbox without closing
current mailbox.
- When displaying some text/plain parts inside of
multipart/mixed they are catenated without adding
"[ Part #X/X: ... " text between them. Specially
allows body part to change inside of line. That
should allow changing a charset inside of line.
* RFC 2046 says:
"NOTE: The CRLF preceding the boundary delimiter
line is conceptually attached to the boundary so
that it is possible to have a part that does not
end with a CRLF (line break)."
- Some code changes on content-transfer-encoding
decoding routines.
- State routines did not handle the situation where
charset of mail changed in the middle of the line. Now
current line buffer is converted to new charset
in that case.
- Added V)iew digest as mailbox
to 'after paging' (showmsg_c) commands.
- Removed valid_option_type()
- Removed charset_valid_magic()
- Removed valid_stream()
- Moved some code, which is used only by elm and config file
parsing tools, from libelmme-base.so to libelmme-misc.so.
- Moved lib/mediatype.c from libelmme-base.so to
libelmme-misc.so. It seems to be used only on Elm
so it should not be on library at all.
- Changed load_terminal_map() to use malloc_gets()
instead of fgets()
- Added load_mime_types_map() to libelmme-misc.so
- Added dump_mime_types_map() to libelmme-misc.so
- Added new tool elmmimetypes, which outputs
mime.types or elm.mimetypes file.
- Now elm.mimetypes file is generated to elm's
library directory during installation. During
Configure file goes to bin/elm.mimetypes. [J1]
- Now mime.types file may include magic numbers
or signature (pattern).
- It is recommended that both magic numbers and
extension is given for mime types.
- doc/mime.types is updated.
- Builtin mime types map includes now magic numbers
so these file extensions do not match if the file
content do not match the magic numbers (or file
signature).
- Changed handling of elm.mimetypes and mime.types
- If charset is defined on some other file than
elm.mimetypes or mime.types, these definitions
are not moved.
- Removed "compatcharsets" (marked as obsolete)
- Removed "iso646-charsets" (marked as obsolete)
- Moved some code from lib/charset.c to lib/misc/charset.c
- Elmcharset option -c merges elm.mimecharsets or
mime.charsets file with file given as argument.
- Configure does not any longer read elm.mimecharsets
from elm global library directory. Instead existing
elm.mimecharsets from elm global library directory
is merged during installation (with -c option on
elmcharsets).
- Elmmimetypes option -c merges elm.mimetypes or
mime.types file with file given as argument.
- Configure does not read elm.mimetypes from
elm global library directory. Instead existing
elm.mimetypes from elm global library directory
is merged during installation (with -c option on
elmmimetypes).
- New values without merging are written to
elm.mimetypes.NEW, elm.mimecharsets.NEW,
and elm.terminalinfo.NEW during installation.
- Configure reports on SunOS 5.10:
langinfo.h found, testing nl_langinfo(CODESET) support ...
nl_langinfo(CODESET) seems work, charset for C locale is 646
wchar.h found
So 646 need to be mapped to ASCII.
- Added elmrc option "check-type-pattern". If set
(default), mime types are checked, when paging
mail, agaist elm.mimetypes and mime.types. If content
does not match to any pattern (magic number) given
for type, that causes a warning. If on elm.mimetypes or
mime.types is any entry for type without pattern,
warning is NOT printed. If warning is printed,
confirmation is required. This mainly protects routines
on mailcap to get bogus types. Notice that this does
NOT protect metamail (if used).
- Added elmrc option "attachment-fix-extension".
If set (default), default file extension is set according
of mime type (appending after existing extension
of given filename).
- If either "attachment-fix-extension" or
"check-type-pattern", mime types are checked, when
saving mail, agaist elm.mimetypes and mime.types.
If content does not match any pattern (magic number)
given for type, that causes a warning.
- Default file extension is not provided, if
attachment content does not match mime type.
- When default extension is provided, file browser
adds that extension after enter is pressed. Then
user is asked to accept that extension by pressing
enter second time.
- Decoding of content-transfer-encoding of attachments of
attachment is changed. Now content-transfer-encoding
is decoded to temporary file and after that user is asked
about filename. The old behauviour was to decode
content-transfer-encoding directly to file given
by user. New behauviour is required for checking pattern
(magic number) of attachments.
- If content-transfer-encoding is unknown, default extension
is ".encoded".
- Folder and file browser now notices if only
directory name prefix is given (ie. name ending in /)
and asks confirm (second enter) of name before
accepting it.
- display_central_message() is called nowhere. Removed it
and replaced set_central_message() with lib_transient(),
- Small optimization for default_unidata()
- Small optimization for mail_gets()
- Small optimization for parse_body_routine()
- Small optimization for cs_clip_from_binary()
- Small optimization for string_cmp()
- Optimize find_header() by changing data structure.
- Changes on mbx_mark_keep_normal()
- Optimize mbx_copy_body_spool()
- Changed read_line on lib/mbox/localmbx.c
- cuserid() is not used so it needs not be in
lib/opt_utils.c either.
- removed pmalloc() and lib/pmalloc.c -- they are
not used
- Converted readmsg to use lib/mbox/mbox.c if
state file does not exist.
- Now readmsg works also for remote mailboxes
- readmsg no longer removes empty lines from the end
of message.
- Small change on folder state file format.
- Added elmrc option readmsg which tells path to readmsg
-command (used internally of elm).
> Meta expand provides:
+filename == file on mail folder directory
=filename == file on mail folder directory
%filename == file on mail folder directory
{rc}/filename == file on .elm subdirectory of home
{lib}/filename == file on Elm's global library directory
{etc}/filename == file on Elm's global configure
directory
{bin}/filename == file on Elm's binary installation
directory
And also same epansions than expand_env():
~/filename == file on home direccory
Environment variable components
- Moved encode.c from src/ to melib/
- Moved part of header_parse_helper() from
src/messages/header_alloc.c
to melib/parse_helper.c
- readmsg now outputs only the text only part of
a mail by default.
- Added -r (do raw output) option to readmsg.
- Pipe (|) -command now uses -r option on readmsg.
- Readmsg now decodes mime headers, if -r option is not used.
- If "store" is given to elmrc option "show-header-errors",
header errors are not immediately printed. Letter 'h' is
shown as second status letter on that case.
- If elmrc option "long-encoded-headers" is not set,
Elm ME+ tries to wrap mime encoded headers so
that encoded lines are shorter than 80 characters.
If elmrc option "long-encoded-headers" is set (default),
Elm ME+ tries to wrap headers that way that actual data
(without encoding) is shorter than 80 characters. This
produces over 80 character (and violates MIME) but
may produce nicer result when headers are displayed
with encoding decoded (if some part of header is not
encoded). This is mainly used on Subject: -header.
- Removed STATE_in_string from lib/state.c. It is not
used.
- Removed STATE_out_string from lib/state.c. It is not
used.
- Allow setting "receivedmail" elmrc option (normally
"=received") to "none". This disables
Move read messages to "received" folder? (y/n)
question. When "receivedmail" is set to "none", ">"
can not be used as folder name.
Requested by: Laura Kataja
- Allow setting "sentmail" elmrc option (normally
"=sent") to "none". When "sentmail" is set to "none",
"<" can not be used as folder name.
- If "sentmail" is set to "none", "copy" defaults to
OFF.
- Removed lib/move_left.c. It is not used.
- "The attached patch to elm PL122 causes THREAD
sorting to go to the bottom of the mailbox if
there are no unread messages, instead of the top.
This is already done for sorts in mailbox order,
sent, and received order, but I use thread by
default, so this patch is helpful to me."
From: Bruce Momjian <bruce@momjian.us>
- Let elm accept 'kb' from termcap also as
backspace and not only VERASE value got
from tty.
- Allow marking messages deleted also with
delete key ('kD' from termcap).
- Let end key ('@7' from termcap) to go
to the end of the message list. Corresponding to
that the home key goes to the beginning of the
message list.
- Temporary copy for imap and pop folders
is not longer /tmp/mbox.user@host or
/tmp/mbox.user@host:tail. Instead it is
/tmp/mbox.$USER.host.XXXX.XXXX
- It is possible to use usernames which include
/ -character with IMAP -url syntax (/ need to be
URL escaped). For example
elm -O imap://dom%2Fuser%2Fmbx@server/INBOX
( Some exchange servers uses usernames like
dom/user/mbx )
See also chapter "Mapping to content-type"
- NOTE: readmsg now filters only mail headers so that
readmsg -w From_ 1
does not work (only -r option shows mailbox separator
line.)
- NOTE: Because Elm 2.5 builtin mime.types mapping (*)
includes
txt text/plain
all text/plain mime part (or attachments) when
saved got extension ".txt" if attachment-fix-extension
is set (default).
(*) As on Elm ME+ 2.5 PLalpha7
- Removed hdrs/regexp.h
- sh Configure -SS works as sh Configure -S
except that it only subsitutes *.SH files.
- Fix crash when
elm -S
is called.
- Fix canceling of mail crash.
- Now it is checked that given option combination
makes sense with implied operation mode.
- Removed -R rel_path argument from elmregister.
It is not used.
- Added -A alternate_source argument to elmregister.
- This argument is needed on doc/ installation when
Configure -O option is used.
- Fixed "make install" when Elm ME+ is build on
separate build directory (with Configure -O option).
* Changes from Elm 2.4ME+ PL123a (25)
- "Looking at my incoming mail I noticed that there is no
space (empty line) between the end of one message and the
beginning of the next message".
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Fixed regression from Elm ME+ 2.5 PLalpha10 or
Elm 2.4ME+ PL122j (25). With IMAP fix from 122j
content length does not include ending empty line of mail.
Fixed mbx_mark_keep_normal() for that.
WARNING: On MMDF case mbx_mark_keep_normal() is not fixed
and is probably broken.
- elm.rc may include 'unidata = none'. Was failing of
'elmregister replay' because of chmod is failing.
> Instead do chmod on elmunidata
- Same also for 'bindata = none' (do chmod on elmunidata).
* Changes from Elm 2.4ME+ PL123b (25)
- Avoided error message
bin/elmregister: [trim_list] Bad command letter: s
- Fixed valgrind reported memory leak:
77 bytes in 2 blocks are definitely lost in loss record 11 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40DDB39: elm_vmessage (output.c:1302)
by 0x40DE1B1: elm_message (output.c:1481)
by 0x809F789: set_folder_window_title (screen.c:82)
- Fixed valgrind reported memory leak:
57 bytes in 1 blocks are definitely lost in loss record 8 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40FBE18: strmcat (strmcpy.c:40)
by 0x40416EC: strXcat (terminal.c:91)
by 0x4043F64: terminal_set_title (terminal.c:1624)
by 0x80B1865: set_terminal_titles (termtitle.c:59)
* Changes from Elm 2.4ME+ PL123c (25)
- Fixed crash when om elmrc have
### pgp2 = none
"Is that "&&" correct? Looking at other "none" comparisons
in the file, it isn't. Patch attached, and problem
confirmed fixed."
From: Bruce Momjian <bruce@momjian.us>
* Change from Elm 2.5
- Added .elm/mailing.lists file similar than
.elm/mlist on Elm 2.5. Global file is
$etc/elm.mailinglists (on Elm 2.5 it is
$lib/mlists) [J2]
> Note that syntax, however, is different.
Specically:
- Address matching is same as on
alternatives, so incomplete match requires
wildcard (*) characters.
- Tag lines are like
[to-me] ------
[to-many] ======
[cc-me] ==cc==
when on Elm 2.5 they are
[to-me] (------)
[to-many] (======)
[cc-me] (==cc==)
- List address pattern is
name <pattern>
when on Elm 2.5 address pattern is
name <submatch>
submatch (name)
- There is also alternative matching
with tag
[list] name
List-id: <list-id>
- Made some changes on implementation of
okay_addr.c
- Added new tool elmmailinglists, which outputs
mailing.lists or elm.mailinglists file.
- Configure now copies doc/mailing.lists to
bin/elm.mailinglists for installation
- Configure -M and Configure -S also (re)generates
bin/elm.mailinglists
- Elmmailinglists option -c merges elm.mailinglists or
mailing.lists file with file given as argument.
- Configure does not read elm.mailinglists from
elm global library directory. Instead existing
elm.mailinglists from elm global library directory
is merged during installation (with -c option on
elmmailinglists).
- New values without merging are written to
elm.mailinglists.NEW during installation.
See also chapter "Mailing lists information".
* New elmrc options from Elm 2.4 PL123 (25)
thread-sortby
check-type-pattern
attachment-fix-extension
long-encoded-headers
readmsg
* New command line options from Elm 2.4 PL123 (25)
-O Open url
--confirm-url Ask confirmation
* New tools from Elm 2.4 PL123 (25)
elmmimetypes
* Added files from Elm 2.4 PL123 (25)
src/view_folder.c
lib/mbox/Makefile.SH
lib/mbox/def_mbox.h
lib/mbox/init.c
lib/mbox/remote_mbx.c
lib/mbox/shared_mbox.c
hdrs/mboxlib.h
hdrs/state_imp.h
lib/mbox/state.c
lib/mbox/headers.c
hdrs/connection_imp.h
src/showmsg_1.c
src/url/Makefile.SH
src/url/def_url.h
src/url/url.c
src/url/url_element.c
lib/mparse.c
src/url/url_path.c
src/url/no_url.c
src/url/mailto.c
src/block/block.c
src/block/def_block.h
src/block/fileblock.c
src/block/stringblock.c
src/list/def_list.h
src/list/Makefile.SH
src/list/list.c
src/list/reply.c
src/list/select.c
src/list/info.c
src/movement.c
src/extended.c
src/duplicate_removal.c
src/messages/duplicate.c
src/messages/status.c
src/messages/status_common.c
src/openmailbox.c
lib/misc/Makefile.SH
lib/misc/def_misc.h
lib/misc/init.c
hdrs/misclib.h
lib/misc/terminal.c
lib/misc/mime_types.c
utils/elmmimetypes.c
doc/elmmimetypes.1
ConfTool/GenMimetypes
lib/misc/charset.c
src/url/http.c
src/messages/thread.c
src/thread.c
src/messages/thread_messages.c
src/view_one_thread.c
melib/type_check.c
utils/readmsg/Makefile.SH
utils/readmsg/def_readmsg.h
utils/readmsg/fstate.c
utils/readmsg/wrapper.c
hdrs/readmsg.h
utils/readmsg/folder.c
lib/mbox/error.c
melib/parse_helper.c
src/url/imap.c
src/mailbox.c
src/list/visit_mailbox.c
* Removed files from Elm 2.4 PL123 (25)
lib/move_left.c
* Renamed files from Elm 2.4 PL123 (25)
lib/mbox.c => lib/mbox/mbox.c
lib/localmbx.c => lib/mbox/localmbx.c
lib/savefolder.c => lib/mbox/savefolder.c
lib/imap.c => lib/mbox/imap.c
lib/pop.c => lib/mbox/pop.c
lib/mk_lockname.c => lib/mbox/mk_lockname.c
lib/realfrom.c => lib/mbox/realfrom.c
lib/forwarded.c => lib/mbox/forwarded.c
lib/header_cmp.c => lib/mbox/header_cmp.c
lib/expires.c => lib/mbox/expires.c
lib/parsarpdat.c => lib/mbox/parsarpdat.c
lib/getword.c => lib/mbox/getword.c
lib/mediatype.c => lib/misc/mediatype.c
utils/readmsg.c => utils/readmsg/readmsg.c
src/encode.c => melib/encode.c
* Added files from Elm 2.5
lib/misc/mlist.c (reimplementation from lib/mlist.c)
New tools:
elmmailinglists
New files:
lib/misc/conf_writer.c
utils/elmmailinglists.c
doc/elmmailinglists.1
doc/mailing.lists
ConfTool/GenMailinglists
Removed files:
hdrs/regexp.h
Corresponding quotes from Elm 2.5 PL7 Changes file:
[J1] New "mime-types" file added to $libdir.
[J2] Added the mailing list stuff done by
Paul Close <pdc@sgi.com>
* Changes from Elm 2.4ME+ PL122j (25)
- Elm ME+ failed to wrap mime encoded Subject: header
under 80 characters on some situations.
- Fix return value of get_word_from_string()
- Fix case where "Metamail selection" -screen actually
not prompted for metamail.
- Fix segmentation violation -crash when elm is
called as
elm --mailbox-title=xxx -f x -f z
(when given folders do not exists.)
- Fix (or work around) error
Message contains bare newlines
when saving to some IMAP servers.
* Changes from Elm 2.4ME+ PL122k (25)
- Make little better decoding of MIME encoding
of subject. Specially allow more than one space
between mime encoded words.
- Changed spelling of "Millenium" to "Millennium".
Suggested by: Rob Kendrick <rjek@rjek.com>
* In my English to Finnish dictionary there is a word
"millenium". And there is no word "millennium" in
the dictionary. But apparently my dictionary is wrong.
* Changes from Elm 2.4ME+ PL122l (25)
- Fix crash when loading garbage spool folder (ie. mailbox).
- Elm failed add / to tmp elmrc variable when
it was initialized from $TMPDIR
- Some compilation fixes on SunOS.
* NOTE: Changes for SunOS 5.10 are only compile tested.
It is not tested that they produce working code.
- tputs() workaround on Elm 2.4ME+ PL122d (25)
causes compilation warning on SunOS, if compiled
with gcc. Use workaround only when gcc
is not used.
- Change from Elm 2.5:
- Changed a text on Configure about disabling shell
escapes. [I1]
Corresponding quotes from Elm 2.5 PL7 Changes file:
[I1] Add a warning to Configure about disabling shell
escapes (from Keith Neufeld<neufeld@pvi.org>)
* Changes from Elm 2.4ME+ PL122f (25)
- When saving mail forder time on "From " -separator
line was shifted by one hour if it was on different
zone than current time (ie. on daylight saving time
versus normal time).
- Folder browser was showing wrong entry on prompt line
after TAB -character.
* Changes from Elm 2.4ME+ PL122g (25)
- Fix expensive debug loop on imap.c (so that loop is not run
if dubugging is not used.)
- Fix redraw handling on do_pipe
- "elm -vvv" was printing wrong output:
Mailer: unknown; path="/usr/sbin/sendmail"
instead of
Mailer: sendmail; path="/usr/sbin/sendmail";
add-from="dont";
supported-bodytype="8bit";
supports-dsn="yes"
(actually on one line)
* Changes from Elm 2.4ME+ PL122h (25)
- "I built your latest elm today and came across a smail
issue as I build it on several architectures from the
same source tree. I found make clean fails to remove
utils/reghelper.o which leads to a failure to link
obvously..."
Reported by: janjaap@stack.nl (Janjaap van Velthooven)
> Added reghelper.o to UTIL_OBJ
- Added 'V' - command (View digest as mailbox) to help.
- Added resort_mailbox() to leaving of A)ssemble message
fragments -command/mode. Otherwise main mailbox is
incorrectly sorted if new mail was arrived when A)ssemble
message fragments -mode was active.
- Fix possible redraw loop when prompting password
- On A)ssemble message fragments -command menu there
is "o)ptions" -command, but actual command was missing.
Added 'o' to command loop.
- On digest viewing menu there is "o)ptions" -command,
but actual command was missing. Added 'o' to command loop.
* Changes from Elm 2.4ME+ PL122i (25)
- If mime part (or attached file) did not end in a newline,
garbage from the next part (until the first LF) was included
in the end of that part. That happened when the file
or mime part didn't have an LF in the end and it was not
required to be content-transfer-encoded.
> Fixed copy_part()
- Change from Elm 2.5:
- Added command 'L' (move to last line of page) [H1]
- Added command 'H' (move to first line of page) [H1]
NOTE: http://www.ozone.fmi.fi/KEH/ do not exists.
Use http://www.elmme-mailer.org/ instead.
Elm ME+ 2.5 exists on
http://www.elmme-mailer.org/elm-ME+2.5.html
and
ftp://ftp.elmme-mailer.org/elmme-mailer.org/src/elm-ME+2.5/
Corresponding quotes from Elm 2.5 PL7 Changes file:
[H1] Added vi-style `H'' and `L'' commands to go to the
top |and bottom of the current indexed (Index, Alias)
screen (from Keith Neufeld<neufeld@pvi.org>)
- "Bad News - I tried to use it to send a jpeg attachment
EXACTLY like I did yesterday with alpha6 and it died ie
MIME PANIC: application/octet-stream
is not known
MIME PANIC in attach_menu.c:2165:mime_t_clear
>>>application/octet-stream is not known
Emergency exit taken! All temp files intact!"
Reported by: James Corey <ploveregg@yahoo.com>
> Code assumed that application/octet-stream
was predefined type on lib/mediatype.c. Instead
just use create -flag on give_media_type2() call.
- Dropped support of AT&T Mail Forms. That is
Content-Type: mailform
Also correspond elmrc option 'forms' is marked
as obsolete.
* Changes from Elm 2.4ME+ PL122e (25)
- O)verride charset -command did was not effect on
non-MIME messages.
- Characters on "Change to which folder:" -prompt
was echoed to wrong place after
"Already reading that folder!" -message.
- Removed extra redraw flag from mail()
Removed files:
src/forms.c
Removed elmrc options:
forms
form
- init_defaults() was called twice on src/init.c
- "I tried your patch for ELM 2.5 alpha5 and it
failed to compile on Solaris. So tried the same thing with the
new ELM 2.5 alpha6. Same thing."
"cs_wfallback.c: In function `init_fallback':
cs_wfallback.c:165: `Debug' undeclared (first use in
this function)"
Reported by: James Corey <ploveregg@yahoo.com>
> Moved DEBUG_VAR(Debug,__FILE__,"charset")
outside of #if 0
- Some changes on code how content-type of attachment is
detected.
- Added .txt extension for built-in default as text/plain
(text/plain is generally default on attachment code, but
that also overrides application/octet-stream if binary
data is found.)
- Allow on [include -command to left out content-type. [G1]
In that case mime.types file and same internal mapping
is used than on Attachment Menu. However there is no
default content type as is on Attachment Menu.
- Note that RFC 2231 encoding is NOT done MIME
content-type parameters given on mime.types file!
Elmrc option "mime-parameters" have no effect on that
case.
- Now charset= -parameter is added automatically on
[include -command, if type is text and on file have
8-bit data. This is similar than on Attachment Menu.
- Elm2.4ME+ PL0 (25) supported wildcard '*' on
alternatives list. Support was probably lost on
Elm2.4ME+ PL54 (25).
- Added support again. However @ -character should be
included on alternatives -list and not replaced
with wildcard. [G2]
- Character '*' matches to any number of charaters and
'?' character match to any single character.
- Added /usr/sfw/bin:/usr/ccs/bin to PATH on Configure
for Solaris.
Hint from: James Corey <ploveregg@yahoo.com>
- Let Configure locate ar and nm (and ranlib) instead
just using PATH
- Let makefiles use ar -command located by Configure
- Use both curses.h and term.h on SunOS (Solaris),
not only term.h
- Some changes of SunOS (Solaris)
- Moved curses.h and term.h including from curses.c
to def_screen.h before including termios.h.
- SunOS 5.10 (Solaris) have problematic prototype
for tputs() and do not have prototype for tgoto()
when __STDC__ is defined. Added some workarounds.
* Changes from Elm 2.4ME+ PL122d (25)
- On some cases filename -parameter was generated twice to
Content-Disposition -header.
- Tagged flag of current message was not cleared
on V)iew digest command.
- Allow canceling
Already have selection criteria - add more?
prompt with Ctrl-C (interrupt character) on systems
which supports POSIX termios.
- Fix USGNAMES compilation.
- browser_descend_local() did not handled correctly case
where given filename did not included path (and
there was directory already selected.)
Corresponding quotes from Elm 2.5 PL7 Changes file:
[G1] The content-type is now optional to [include ...].
That is, you can say just [include filename] and
Elm will guess both the content type and encoding.
[G2] The wildcard '*' is now allowed in the alternatives
list. For example, wfp5p@*virginia.edu matches user
wfp5p for all machines at virginia.edu.
(from Michael Elkins <elkins@aero.org>).
* Changes from Elm 2.4ME+ PL122b (25)
- Ctrl-T 'all' did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Ctrl-T 'flagged' did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
* Changes from Elm 2.4ME+ PL122c (25)
- Fix valgrind reported error on case
elm -i non-existing-file address
Conditional jump or move depends on uninitialised value(s)
at 0x808B83E: reset_parts (mime.c:105)
by 0x808B9D6: free_mime_send_info (mime.c:144)
by 0x80871B9: mail (mailmsg2.c:1351)
by 0x8083910: send_msg_middle (mailmsg1.c:589)
- Ctrl-T {pattern} did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Enchance redrawing on
Delete message?
"received" folder not available, continue leaving folder?
Move read message to "received" folder?
-prompts.
- Fix -Wtraditional warning:
mailer.c:1644: warning: non-static declaration for
`sendmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1902: warning: non-static declaration for
`submitmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1932: warning: non-static declaration for
`execmail_mailer_backend' follows static
- "I configured ELM 2.5 alpha 5 just like my ELM 2.5
alpha 4 that compiles nicely and got the following
error from init.c on Solaris 8 gcc.
<...>
In file included from init.c:14:
../../hdrs/shared_imp.h:118: parse error before `*'
init.c:18: `rc_DT_SHARED' undeclared here (not in a
function)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Elm ME+ failed to compiled when USE_DLOPEN and SHARED_LIBS
was not defined.
- Added -O object-dir argument to Configure
- sh somedirectory/Configure.SH no longer build ELm ME+
on somedirectory. Instead current directory is treated
as implicit -O `pwd` option of Configure. [F1]
- Configure itself still run on UU -directory on source
tree.
- Some untested SunOS 5 changes to Configure.
Corresponding quotes from Elm 2.5 PL7 Changes file:
[F1] Added Chip Rosenthal's <chip@unicom.com> change to
allow builds in a separate directory.
Note: You must create directory
lib/mailer
before applying this patch!
* Changes from Elm 2.4ME+ PL122 (25)
* Some changes on screen handling:
- Moved title, menu and prompt area on mailbox,
aliases and attachment screens to own subpage.
- Changed layout of attachment screen more similar than
other screens.
- Removed redraw flag from main loop.
- Removed nufoot flag from main loop.
- Removed redraw flag from mailbox_command().
- Removed redraw flag from motion().
- Removed nufoot flag from mailbox_command().
- Removed nufoot flag from motion().
- Removed redraw flag from new_mail_check().
- Removed redraw flag from partial_loop().
- Removed nufoot flag from partial_loop().
- Removed redraw flag from digest_loop().
- Removed nufoot flag from digest_loop().
- Removed redraw flag from view_canceled_mails().
- Removed nufoot flag from view_canceled_mails().
- Removed redraw flag from alias().
- Removed nutitle flag from alias().
- Removed nufoot flag from alias().
- Changed passing of redraw data from remail().
- Removed redraw flag from remail().
- Changed passing of redraw data from forward().
- Changed passing of redraw data from reply_to_everyone().
- Removed redraw flag from reply_to_everyone().
- Changed passing of redraw data from send_msg_l()
and send_msg_middle().
- Changed passing of redraw data from reply().
- Removed redraw flag from reply().
- Changed passing of redraw data from mail_filled_in_form().
- Changed passing of redraw data from pgp_mail_public_key().
- Changed passing of redraw data from print_text().
- Changed passing of redraw data from save().
- Changed method how headers on aliases and mailbox
screen are drawn and updated.
- Removed inalias, last_current, last_header_page,
headers_per_page and nucurr global variables.
- One more mail is listed on mailbox screen.
- Removed passing of header_page variable.
- Changed method how screen is handled on 'after
paging' commands (showmsg_c).
- Removed/changed passing of redraw flag on file_browser(),
gen_browser() folder_browser(), attach_save()
- Changed passing of redraw data from name_copy_file().
- Changed handling of 'prompt area' on Mail Pre-Send Screen
and on Message Header Edit Screen screen.
- If several -f option is given (for combined view
of given folders), starting of Elm ME+ do not fail
if first folder is inaccessible.
- Handle REDRAW_MARK on pgp_encrypt()
- "If you had no aliases yet, and pushed j or k in the
aliases menu (or the down or up arrows), you had a
"bad item" "common menu panic". The reason was a
missing "break" statement in alias_item.c, which was
present in the approprite place in mailbox_item.c"
From: Kovacs Baldvin <baldvin@cs.elte.hu>
( Patch was agaist Elm ME+ 2.5 but applies also to Elm
2.4ME+ )
- Fix error message
Path component "none" not absolute on key
"internal-mailcaps" value "none"
when on elmrc have line
internal-mailcaps = none
- Added elmrc option "pgp-encrypt-type", which take values
"application/pgp", "text/plain" and "text/x-pgp" (without
quotes). These are same values than for pgp-sign-type.
Except that this is for encryption. Because encrypted data
is ascii armored, also text -type can be used here.
Requested by: Axel Reinhold <axel@freakout.de>
NOTE: Note that using text/plain for excrypted data causes
that charset=US-ASCII is used always (for type
application/pgp charset paramater is not added).
It is little guestionable is that correct. These
encrypted types do not interact very well with charsets
anyway.
- "MIME structure Menu" was draw incorrectly when arrow cursor
was used.
- "MIME structure Menu" screen's layout now resembles more
main mailbox screen.
- Handle some ambiguous multipart boundary prefixes.
- Ignore empty line before "begin " on uudecode.
- "I am seeing two exit messages if I start elm and exit right away
using ELM 2.4ME+ PL121"
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "On a Solaris 8 machine, if I enter ELM and don't make
any changes it now says "Folder unchanged." twice.
Not a big deal, but I thought I should report it. :-)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Make sure that first message is erased on exit (usually
ti/te erases screen or changes buffers, but that
apply to "elm -t" also.)
- Added elmrc option "prompt-metamail".
If set, also text
Parsing MIME structure... metamail not needed
is not printed after
Parsing MIME structure...
text, because opposite situation will be prompted!
- Setting "prompt-metamail" (default) causes
showing of "Metamail selection" screen. This is
same screen than "Mailcap program selection" screen.
Answering prompt with p)age command changes screen
to "Mailcap program selection" screen. Answering
proompt with m)etamail command calls metamail.
- Allow canceling of
Mailcap program selection
with Ctrl-C (interrupt character) on systems
which supports POSIX termios.
- Canceling of
Append to an existing file XXX ?
Append to mail folder XXX ?
Create a new file XXX ?
Create a new mail folder XXX ?
Some XXX are already tagged. Remove Tags?
One XXX is already tagged. Remove Tags?
Are you sure you want to remail this message ?
prompts with Ctrl-C (interrupt character) is possible
on systems which supports POSIX termios.
- Added to
Mailcap program selection
screen same title than on pager (on case when elmrc
option "titles" is set (default)).
- "First I did not even understand what I am asked
in the attach menu. I tried a .ps file, then I had
a question "Use gnome-gv to..." blabla, yes or no.
And down there I had "Answer questions, or m)etamail,
or q)uit". Now "quit" did not quit from aliases,
but instead it behaved as an "OK". Pushing 'm' worked,
but I did not know wether it utilized the answer that
I gave already, since it asked again (!) if I'd like
to use gnome-gv. "F?ck, I do", I thought... Then I've
realized what is going on: after I answered yes for
the first question, I need to say quit, and then I get
gnome-gv..."
Problem noted by: Kovacs Baldvin <baldvin@cs.elte.hu>
> Changed q)uit command to d)one on
Mailcap program selection
screen.
- Letters 'q' and 'i' leaves now
Mailcap program selection
without paging message. Note that this changes
meaning of 'q' -command.
- Added O)verride charset and Ctrl-K (Mail PGP public key)
to 'after paging' (showmsg_c) commands.
- Added redraw handling to following prompts:
Already have selection criteria - add more?
Enter criteria or '?' for help:
- Fix valgrind reported memory leak:
32 bytes in 2 blocks are definitely lost in loss record 6 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8151DBF: safe_malloc (safemalloc.c:47)
by 0x8069EEE: attach_menu (attach_menu.c:2433)
- Add redraw handling to display_file()
- Fix "Reverse Thread" sorting order.
- Fix valgrind reported memory leak:
56 bytes in 5 blocks are definitely lost in loss record 9 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x80E9095: new_state_1 (charset_input.c:18)
by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348)
- Fix valgrind reported memory leak:
16 bytes in 2 blocks are definitely lost in loss record 3 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x8163E41: malloc_string (string.c:116)
by 0x8163FBC: new_string (string.c:153)
by 0x80876EA: read_number (in_utils.c:282)
- Fix valgrind reported memory leak:
30 bytes in 1 blocks are definitely lost in loss record 7 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148225: safe_realloc (safemalloc.c:63)
by 0x8133394: elm_vmessage (output.c:1281)
by 0x8133A5E: elm_message (output.c:1460)
by 0x80FD9DA: init_debug (debug.c:58)
- Fix valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148173: safe_malloc (safemalloc.c:47)
by 0x8145BA9: split_remote_name (remote_mbx.c:620)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fix valgrind reported memory leak:
14 bytes in 1 blocks are definitely lost in loss record 3 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148349: safe_strdup (safemalloc.c:79)
by 0x8145B8E: split_remote_name (remote_mbx.c:618)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fix valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148237: safe_malloc (safemalloc.c:47)
by 0x8164109: malloc_string (string.c:116)
by 0x8164FDC: cat_strings (string.c:449)
by 0x81307E5: elm_smessage (output.c:857)
by 0x8087063: prompt_letter (in_utils.c:84)
- Fix valgrind reported memory leak:
29 bytes in 5 blocks are definitely lost in loss record 7 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148243: safe_malloc (safemalloc.c:47)
by 0x8105414: rfc822_tokenize (getaddr.c:37)
by 0x8061333: do_expand_group_l (aliaslib.c:88)
- Fix valgrind reported memory leak:
7104 bytes in 1 blocks are definitely lost in loss record 27 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148339: safe_realloc (safemalloc.c:63)
by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291)
- Fix valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 2 of 29
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x814826B: safe_malloc (safemalloc.c:47)
by 0x816413D: malloc_string (string.c:116)
by 0x81642B8: new_string (string.c:153)
by 0x80885D9: enter_helper (in_utils.c:656)
by 0x8089324: optionally_enter2 (in_utils.c:1115)
by 0x808E52B: limit (limit.c:110)
- Removed pattern_enter()
- Fix "Append to mail folder " -question.
- Changed IMAP \Flagged that they are not longer
tagged (+), but instead marked with new flag (F)
as flagged.
- \Flagged is shown on place of '+' on screen as 'F'.
- \Flagged can be modified with with new toggle F)lag command
- Flag is saved as letter F on Status: -header for
local mailbox
- Giving argument "flagged" (without quotes) to l)imit
command selects flagged messages. That is not mentioned "?"
help of l)imit command, because it it does not fit to
80 characters. That is similar than "tagged" argument
to l)imit command.
- Command Ctrl-D accepts argument "flagged" (without quotes)
which deletes all visible flagged messages.
- Command Ctrl-D accepts argument "flagged" (without quotes)
which tags all visible flagged messages.
- Command Ctrl-U accepts argument "flagged" (without quotes)
which undeletes all visible flagged messages.
- Changed Ctrl-D command with argument "tagged" (without quotes)
so that it deletes only all visible tagged messages
(it was deleting also messages which was not on limited
selection.)
- Set close-on-exec flag for opened local mailbox.
- "I am seeing two exit messages if I start elm and exit right away
using ELM 2.4ME+ PL121"
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "On a Solaris 8 machine, if I enter ELM and don't make
any changes it now says "Folder unchanged." twice.
Not a big deal, but I thought I should report it. :-)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Make sure that first message is erased on exit (often
ti/te erases screen or changes buffers, but that
problem apply to "elm -t" also.)
- Fix case whare ascii only mail was sent with headers
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=ISO-8859-1
instead of
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
- Added mlterm to terminal.info without charset UTF-8.
To actually use that terminal definition you need also
doc/term/mlterm.ti from mlterm distribution. Install it
with 'tic' command. Then you need start start mlterm with
'mlterm -y mlterm' option, otherwise mlterm sets $TERM to
xterm.
- Seems that mlterm do not handle return to ISO 2022 code
( ESC % @ ) or switch to UTF-8 code ( ESC % G ) ?
- Also Elm ME+ do not handle double wide UTF-8 characters
- Fixed case where switch to UTF-8 code ( ESC % G )
was given on several times. However after ESC % G
only ESC % @ is valid.
- Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles
to bin/elm.mimecharsets even when elm.mimecharsets have
already alias definition for charset.
- Added eucJP, eucKR, EUC-CN, GB2312, eucCN and
Big5-HKSCS, Big5HKSCS to ConfTool/CharMap
- Let ConfTool/LocaleMap also to use ConfTool/validcharset
- Changed on lib/precompiled_sets.c:
* Changed "ECMA-cyrillic" type from cs_unknown
to cs_ascii and given mime name KOI8-E
* Added ISO 2022 code for KOI8-E (ISO-IR-111)
* Added ISO 2022 code for IRV (codeset "ISO_646.irv:1983")
(ISO-IR-2)
* Added ISO 2022 code for ISO646-GB (codeset "BS_4730")
(ISO-IR-4)
* Changed codeset "NATS-SEFI" (ISO-IR-8-1) type from
cs_unknown to cs_iso646
* Added ISO 2022 code for codeset "NATS-SEFI" (ISO-IR-8-1)
* Added ISO 2022 code for codeset "NATS-SEFI-ADD"
(ISO-IR-8-2) (XX)
* Added ISO 2022 code for codeset "NATS-DANO"
(ISO-IR-9-1)
* Added ISO 2022 code for codeset "NATS-DANO-ADD"
(ISO-IR-9-2) (XX)
* Added ISO 2022 code for ISO646-FI (codeset
"SEN_850200_B") (ISO-IR-10)
* Added ISO 2022 code for ISO646-SE2 (codeset
"SEN_850200_C") (ISO-IR-11)
* Added ISO 2022 code for codeset "KS_C_5601-1987"
(ISO-IR-149) (XX)
* Changed codeset "KS_C_5601-1987" type from
cs_unknown to cs_iso2022
* Added ISO 2022 code for codeset "JIS_C6220-1969-jp"
(ISO-IR-13) (XX)
* Changed codeset "JIS_C6220-1969-jp" type from
cs_unknown to cs_iso2022
* Added ISO 2022 code for ISO646-IT (codeset "IT")
(ISO-IR-15)
* Added ISO 2022 code for ISO646-PT (codeset "PT")
(ISO-IR-16)
* Added ISO 2022 code for ISO646-ES (codeset "ES")
(ISO-IR-17)
* Added ISO 2022 code for codeset "greek7-old"
(ISO-IR-18)
* Added ISO 2022 code for codeset "latin-greek" (ISO-IR-19)
* Added ISO 2022 code for ISO646-DE (codeset "DIN_66003")
(ISO-IR-21)
* Added ISO 2022 code for ISO646-FR1
(codeset "NF_Z_62-010_(1973)") (ISO-IR-25)
* Added ISO 2022 code for codeset "Latin-greek-1"
(ISO-IR-27)
* Added ISO 2022 code for codeset "ISO_5427" (ISO-IR-37)
* Added ISO 2022 code for codeset "JIS_C6226-1978"
(ISO-IR-42) (XX)
* Changed codeset "JIS_C6226-1978" from type cs_unknown
to cs_iso2022
* Added ISO 2022 code for codeset "BS_viewdata"
(ISO-IR-47)
* Added ISO 2022 code for codeset "INIS"
(ISO-IR-49)
* Added ISO 2022 code for codeset "INIS-8"
(ISO-IR-50)
* Added ISO 2022 code for codeset "INIS-cyrillic"
(ISO-IR-51)
* Added ISO 2022 code for codeset "ISO_5427:1981"
(ISO-IR-54) (XX)
* Added ISO 2022 code for codeset "ISO_5428:1980"
(ISO-IR-55)
* Added ISO 2022 code for codeset "ISO_5428:1980"
(ISO-IR-55)
* Added ISO 2022 code for ISO646-CN (codeset "GB_1988-80")
(ISO-IR-57)
* Added ISO 2022 code for codeset "GB_2312-80"
(ISO-IR-58) (XX)
* Changed codeset "GB_2312-80" type from cs_unknown
to cs_iso2022
* Added ISO 2022 code for ISO646-NO (codeset "NS_4551-1")
(ISO-IR-60)
* Added ISO 2022 code for ISO646-NO2 (codeset "NS_4551-2")
(ISO-IR-61)
* Added ISO 2022 code for ISO646-FR (codeset "NF_Z_62-010")
(ISO-IR-69)
* Added ISO 2022 code for codeset "videotex-suppl"
(ISO-IR-70) (XX)
* Added ISO 2022 code for ISO646-PT2 (codeset "PT2")
(ISO-IR-84)
* Added ISO 2022 code for ISO646-ES2 (codeset "ES2")
(ISO-IR-85)
* Added ISO 2022 code for ISO646-HU (codeset "MSZ_7795.3")
(ISO-IR-86)
* Added ISO 2022 code for codeset "JIS_C6226-1983"
(ISO-IR-87) (XX)
* Changed codeset "JIS_C6226-1983" type from cs_unknown
to cs_iso2022
* Added ISO 2022 code for codeset "ASMO_449"
(ISO-IR-89)
* Added ISO 2022 code for codeset "iso-ir-90" (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-a"
(ISO-IR-91)
* Added ISO 2022 code for ISO646-JP-OCR-B
(codeset "JIS_C6229-1984-b") (ISO-IR-92)
* Added ISO 2022 code for "JIS_C6229-1984-b-add"
(ISO-IR-93) (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-hand"
(ISO-IR-94)
* Added ISO 2022 code for codeset "JIS_C6229-1984-hand-add"
(ISO-IR-95) (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-kana"
(ISO-IR-96)
* Added ISO 2022 code for codeset "ISO_2033-1983"
(ISO-IR-98) (XX)
* Added ISO 2022 code for codeset "ANSI_X3.110-1983"
(ISO-IR-99) (XX)
* Added ISO 2022 code for codeset "T.61-7bit"
(ISO-IR-102)
* Added ISO 2022 code for codeset "T.61-8bit"
(ISO-IR-103)
* Added ISO 2022 code for ISO646-CA
(codeset "CSA_Z243.4-1985-1") (ISO-IR-121)
* Added ISO 2022 code for ISO646-CA2
(codeset "CSA_Z243.4-1985-2") (ISO-IR-122)
* Added ISO 2022 code for codeset
"CSA_Z243.4-1985-gr" (ISO-IR-123) (XX)
* Added ISO 2022 code for codeset
"T.101-G2" (ISO-IR-128) (XX)
* Added ISO 2022 code for codeset
"T.101-G2" (ISO-IR-128) (XX)
* Added ISO 2022 code for codeset "CSN_369103"
(ISO-IR-139)
* Changed codeset "CSN_369103" type fom cs_unknown
to cs_ascii
* Added ISO 2022 code for ISO646-YU
(codeset "JUS_I.B1.002") (ISO-IR-141)
* Added to ISO646 sets that MIME-subset=INVARIANT
* Added ISO 2022 code for codeset "ISO_6937-2-add"
(ISO-IR-141)
* Added ISO 2022 code for codeset "IEC_P27-1"
(ISO-IR-143)
* Changed codeset "IEC_P27-1" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "JUS_I.B1.003-serb"
(ISO-IR-146)
* Added ISO 2022 code for codeset "JUS_I.B1.003-mac"
(ISO-IR-147)
* Added ISO 2022 code for codeset "greek-ccitt"
(ISO-IR-150)
* Added ISO 2022 code for ISO646-CU
(codeset "NC_NC00-10:81") (ISO-IR-151)
* Added ISO 2022 code for codeset "ISO_6937-2-25"
(ISO-IR-152)
* Changed codeset "ISO_6937-2-25" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "GOST_19768-74"
(ISO-IR-153)
* Changed codeset "GOST_19768-74" type from cs_unknown to
cs_ascii
* Added ISO 2022 code for codeset "GOST_19768-74"
(ISO-IR-153)
* Added ISO 2022 code for codeset "ISO_8859-supp"
(ISO-IR-154) (XX)
* Changed codeset "ISO_8859-supp" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "ISO_10367-box"
(ISO-IR-155) (XX)
* Changed codeset "ISO_10367-box" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "latin-lap"
(ISO-IR-158) (XX)
* Changed codeset "latin-lap" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "JIS_X0212-1990"
(ISO-IR-159) (XX)
* Changed codeset "JIS_X0212-1990" type from cs_unknown
to cs_iso2022
(XX) Actually it is unclear what that is supposed to mean
on context of
http://www.iana.org/assignments/character-sets
Most of these are not standalone character sets on
that sense what MIME use term 'charset' ....
- Configure now tests if system support wchar_t type
functions.
- Moved code of unknown charset type (cs_unknown)
from lib/cs_binary.c to lib/cs_unknown.c
- File lib/cs_wfallback.c includes 'fallback'
mapping for whar_t, similar than lib/cs_fallback.c
files 'fallback' definition.
- Unknown system (locale) charset is now implemented
with wide characters (wchar_t) on systems which
support it. Also support of wcwidth() function is
tested separately.
- On some cases that may cause warning/error message
"Unknown charsets are unsupported as keyboard input!"
to be printed (specially if there is significant state
used on keyboard input.)
- If __STDC_ISO_10646__ is defined, then wchar_t
is assumed to be Unicode (and 'fallback' mapping
is not needed.)
- Added elmrc option "locale-charsets" for systems
which have __STDC_ISO_10646__ defined. Given
charset names is type unknown used for system (locale)
charset, even when Elm ME+ is builtin definition
for charset.
- Added to terminal.info file new keyword DW.
This indicates for unknown system charset that wcwidth()
function should be used to get char width.
This means that logical width of character
may be 0,1 or 2 columns on that terminal.
- Keyword DW also may cause error/warning message
Double wide characters are not supported
to be printed.
- On systems which have __STDC_ISO_10646__ defined,
DW flag on terminal.info works like "locale-charsets"
option, if charset and terminal matches.
- Added UTF-8 for mlterm to terminal.info with
DW flag.
- pw_dir (home directory) and pw_shell is allowed
to be NULL on struct passwd.
- Added CP1251 as codeset for windows-1251. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1252 as codeset for windows-1252. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1255 as codeset for windows-1255. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1256 as codeset for windows-1256. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1257 as codeset for windows-1257. Seems that this is
returned by nl_langinfo(CODESET).
- Changed evaluation of elmrc option "text-charset".
- Changed evaluation of elmrc option "display-charset".
- Changed evaluation of elmrc option "local-fs-charset".
- Changed evaluation of elmrc option "default-nomime-charset".
- Changed evaluation of elmrc option
"default-mime-text-charset".
- Changed evaluation of elmrc option "imap-charset".
- Removed function get_charset_map_info().
- Changed implementation of elmrc option "shell".
- Changed implementation of elmrc option "tmpdir".
- Changed implementation of elmrc option "maildir"
(or "folders").
- Changed implementation of elmrc option "map-text-dir".
- Changed implementation of elmrc option "map-bin-dir".
- Fixed case where ISO-2022-JP subject was displayed on
message list, but when reading mail, subject was replaced
with question marks.
- Handle better bad sequense of bytes on text (for
example bad UTF-8 text).
- Configure was incorrectly made conlusion that
nl_langinfo(CODESET)
does not work on IRIX 6.5
- If given folder name 'aaa@bbb@ccc' for split_remote_name(),
do not split is as user='aaa', host='bbb@ccc', but use
user='aaa@bbb', host='ccc'
Problem noted by: admin <admin@unixdemon.com>
- Remove duplicates from bin/elm.mimecharsets
during Configure
- Compare charset names in case insensitive way on
ConfTool/GenCharmap
- Added command "elmregister rpm-list", which
generates files listing suitable from rpm
%files -section.
- Declared that Elm ME is "Elm Millenium Edition".
Courtesy Vesa-Matti J Kari <vesa-matti.kari@helsinki.fi>
- get_type_flags() was called with NULL-pointer
argument from start_body_helper() line 381.
Problem noted by: Vesa-Matti J Kari <vesa-matti.kari@helsinki.fi>
> Return something 'intelligent' (instead of
crashing) in functions of lib/mediatype.c,
if them is called with NULL argument.
- Do not give NULL pointer for
Content-Type: *unknown*/MIXED
In other words do not return NULL pointer
if give_media_type() is asked to create
major media type '*unknown*' ('*unknown*'
matched MIME_TYPE_UNKNOWN signaling unknown
media type.)
- Added module (-M name) option and
correspond environment variable $ELM_MODULE
to elmregister.
- elmregister -M all may be used to register
file or command to all modules.
- Added command "elmregister rpm-list", which
generates files listing per -M option.
- Fixed Makefile error on
make package ROOT=/tmp/test-install
case.
- Sorting orders 'mailbox order' and
'reverse mailbox order' was giving same order.
Fixed reverse sorting order.
- Little change for sorting.
- If "unstable-reverse-thread" is set, reverse thread
sorting is based on lastest message on thread.
Therefore thread moves to new location, when
new message arrives to thread.
- This variable is settable on o)ptions screen
with S)orting criteria command.
- Moved enumerate_list on save_opts to own
elmrc type rc_DT_ENUM and new data
type dt_enumerate_info
- Make possible to record changes of elm.rc
during installation.
- Option -c on elmrc-write and elmlibregister commands
gives file, which is used to record changes
(old values) of elm.rc during installation.
- During installation old values of failed elm.rc options
are kept on elm.rc.old-values file.
- Use malloc_gets() when reading elm.rc
- Added elmrc option "verify-domain". If set mail domains
are verified by gethostbyname(). Error HOST_NOT_FOUND
is treated as nonexisting domain and error NO_ADDRESS
is treated as valid mail domain.
- Added elmrc option "verify-local-address". If set
usernames of local addresses are verified. Using
this option requires that on global elm.rc have
"verify=yes" on mailer -option.
- Replaced elmrc types DT_ASR and DT_SRT with one type
rc_DT_SORT.
- Added elmrc option "local-dir-sortby". This specifies
sorting order for local files and folders on folder
and file browser. Possible values are "none", "name"
and "mtime" (and also "reverse-name" and "reverse-mtime").
Default value is "name".
- Added elmrc option "imap-dir-sortby". This specfies
sorting order for IMAP folders on folder browser. Possible
values are "none" and "name" (also "reverse-name").
Default value is "none".
- On 21 lines window browser help (Folder selection)
was not fitting to screen.
- Moved mailer related code from libelmme-base.so to
libelmme-mailer.so.
- Added elmrc type rc_DT_DELAY.
- Moved elmrc option "mailer" to libelmme-mailer.so.
It is 'proxied' with elmrc type rc_DT_DELAY.
- Added elmrc option "use-mailer-library" to
libelmme-mailer.so. It is 'proxied' with elmrc type
rc_DT_DELAY. "smtp" (ie. libelmme-smtp.so) is
now given on elmrc option "use-mailer-library"
(was on "use-connect-library".)
- Link libelmme-smtp.so with libelmme-mailer.so,
so that loading of libelmme-smtp.so succeed when
loader is not linked with libelmme-mailer.so.
- If elm is not compiled with -rdynamic, link
libelmme-smtp.so with libelmme-base.so, so that symbols
can be resolved.
- "I got http://www.elmme-mailer.org/elm-ME+2.5.alpha4.tar.gz
and tried to compile it on a SuSE 9.2 box. Configure
complained about missing termlibs and quit without even
generating a makefile.
Adding -lncurses in line 6333 of Configure (it now reads
for A in '' '-ltermlib' '-lcurses' '-ltermcap ' '-lncurses'; do
fixed this and elmme seems to work fine. Maybe you'd
like to include this patch in the next release ..."
From: Rainer Kaluscha <rainer.kaluscha@web.de>
- Code changes for "-Wstrict-prototypes". I hope that these
do not broke something else.
- Added some support for RFC 2231:
MIME Parameter Value and Encoded Word Extensions:
Character Sets, Languages, and Continuations
- struct string may now carry language indicator
- Language specification is now accepted on encoded
words.
- When replying language specification is normally preserved
on replied address (phrase).
- [include -command now uses internally file browser
for refering file. This should handle better (theoretical)
situation where buffer charset is ddeferent than filesystem
charset.
- filename -arguments on mime -parameters use RFC 2231
encoding. Also non RFC 2231 ascii-only filename
argument is produced.
- Specially RFC 2231 encoded parameters are ignored
for most of other cases. Specially boundary -parameter
must not be RFC 2231 encoded.
- Added elmrc option "mime-parameters". Possible values are
"plain", "encoded" and "plain-and-encoded". If set
to "plain", then RFC 2231 encoded parameters are not
generated and not used when receiving mail (they still are
parsed.) When set to "plain-and-encoded both RFC 2231
encoded value and plain ascii value are generated (specially
for filename -parameter) when needed.
- Elm option -z (zero) do not longer imply option -n
(do not use ti/te).
- " would like to have an option like:
-z Zero - don't enter Elm if no mail is pending.
but:
-y Zero - don't enter Elm if no unread mail is
pending."
Suggested by: Axel Reinhold <axel@freakout.de>
- Elm option -z now works correctly when several mailboxes
(several -f options) are given. Now Elm is not entered
when all given mailboxes are empty.
- doc/tmac.n states "This package may be circulated freely
with the news documentation; it may not be sold, but is to
be distributed with the unformatted news documents."
Removed, because Elm documentation is other documentation.
- Removed documentatiion which depends doc/tmac.n. That
documentation is more or less obsolete anyway:
doc/Alias.guide
doc/Config.guid
doc/Elm.cover
doc/Form.guide
doc/Ref.guide
doc/Users.guide
- Removed question about formatter of documentation
from Configure.
- f)orget command on "Mail Pre-Send Screen" incorrectly
sent mail when editor buffer was empty and on mail
there was on attachment.
- Both utils/elmrc-write.c and utils/elmlibregister.c
include routine for writing (user or system) elmrc.
Moved that to new file lib/write_rc.c.
- Changed src/save_opts.c to use lib/write_rc.c. This
means that elmrc option are saved on elmrc-info
order also when saved from Elm. [Partially E1]
- Removed offset from struct rc_save_info_rec. It is
no longer needed.
- Changed default so that term.h is only included on
Linux (and not curses.h)
- "unicode_value (uint16) can not possibly exceed 0xFFFF.
Remove the statement, that triggers a compiler warning."
From: From: Mikhail T. <mi@aldan.algebra.com>
* Patch removes ...->unicode_value > 0xFFFF -test
from cs_add_state_to_iconv() on shared_libs/iconv/iconv.c.
- utils/answer.c included some bogus aliases reading routines.
Replaced it fetch_alias(). It still is broken, but
that is little better...
Problem noted by: From: Mikhail T. <mi@aldan.algebra.com>
* Changes from Elm 2.4ME+ PL122a (25)
- "tried PL122 - and compiled with new openssl-0.9.8 !:
cc -I../include -I/opt/ssl/include -fPIC -O3 -c pop.c -o pop.o
In file included from /opt/ssl/include/openssl/crypto.h:131,
from /opt/ssl/include/openssl/comp.h:5,
from /opt/ssl/include/openssl/ssl.h:176,
from elmtls.h:11,
from pop.c:10:
/opt/ssl/include/openssl/ossl_typ.h:146: parse error before `2'"
"a define collision between elm and openssl seams to be
occurring! The token "STORE" is used on both sources!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Changed order of includes.
- Do not add addresses parsed (to, from, cc) addresses twice
to header_rec. That occured when mail was not downloaded
IMAP mailbox was opened and headers was parsed second time
when mail was opened.
- Create elm.filelist and parent directories of elm.filelist
before starting subprocess on "elmregister master".
- Change from Elm 2.5:
- Now "!!" on s)ave command means "last folder"
instead of ".". [E2]
- Removed some character name macros
(COMMA,SPACE,COLON) [E3]
- Added LOCK_ to INCOMING/OUTGOING -macros. [E4]
- Removed month -macros (JANUARY, ...) [E5]
- Replaced error_description() with strerror() [E7]
- Changed commands on "Mail Pre-Send Screen" and
added some headers to it: (!!) [E8]
send s => y
forget f => f, n
copy file c => p
cc header c
bcc header b
subject header s
- Added [attach ...] command similar than
[include ...]. (!2) [E9]
- Allow [include ...] to not specify encoding. [E10]
- Grouped elmrc options to sections. [E11]
- Changed CONST => const [E12]
(!!) Note that R)eply-to is not on "Mail Pre-Send Screen"
screen, because on it's place ther is R)eturn-path.
T)o was already on "Mail Pre-Send Screen" so on
it there is no change.
(!2) [attach ...] command just causes 'content-disposition:
attachment' instead of 'content-disposition: inline'.
Attachment do not go to end of mail as on Elm 2.5.
- Changed some commands on "Mail Pre-Send Screen":
dsn d => D
pgp p => P
return-path r => R
- Upper and lowercase letters do not have longer
same command on "Mail Pre-Send Screen"
- Bacause "." is no longer special on file browser
elm -f .
does not work now (actually elm -f '!!' works).
- However
elm -f ''
start folder selection (both on Elm 2.4 ME+ and
Elm ME+ 2.5).
- Replaced some catgets() with CATGETS() macro.
- Changed LOCK_(INCOMING,OUTGOING) to be
enum lock_direction instead of macro.
- Made some changes so that -Wall do not warn
so much. [Partially E6]
- Changed VOLATILE => volatile
* New elmrc options from Elm 2.4 PL122 (25)
mime-parameters
imap-dir-sortby
local-dir-sortby
locale-charsets
pgp-encrypt-type
prompt-metamail
unstable-reverse-thread
verify-domain
verify-local-address
use-mailer-library
* Removed files correspond Elm 2.4 PL122 (25) files
2.4/doc/Alias.guide
2.4/doc/Config.guid
2.4/doc/Elm.cover
2.4/doc/Form.guide
2.4/doc/Ref.guide
2.4/doc/Users.guide
* Removed files from Elm 2.4 PL122 (25)
doc/tmac.n
lib/add_site.c
lib/strtokq.c
* Added files from Elm 2.4 PL122 (25)
src/screen/subpage.c
src/screen/wrapper.c
src/screen/menu_param.c
src/screen/def_scommon.h
src/screen/scommon.c
src/screen/header.c
lib/cs_unknown.c
lib/cs_wfallback.c
charset/MAPPINGS/koi8-e.txt
lib/mailer/Makefile.SH
hdrs/mailerlib.h
lib/mailer/def_mailer.h
lib/mailer/shared_mailer.c
lib/mailer/init.c
lib/mailer/outheaders.c
lib/rc_delay.c
melib/mime_param.c
lib/write_rc.c
* Renamed file from Elm 2.4 PL122 (25)
lib/mailer.c => lib/mailer/mailer.c
Corresponding quotes from Elm 2.5 PL7 Changes file:
[E1] Major change to $libdir/elmrc-info. Previously, this
was used simply as comments for annotating the elmrc.
Now, it directs the production of the elmrc.
[E2] Under the s)ave command, the cookie to mean "same as the
last folderI used" has been changed from "." to "!!".
[E3] I've dropped most of the happy macros for character
names. If you want to use ':' then say that, not COLON.
[E4] Renamed INCOMING/OUTGOING to LOCK_INCOMING/LOCK_OUTGOING.
[E5] Dropped JANUARY, FEBRUARY, ... definitions from elm_defs.h.
[E6] The entire library directory has been ANSIfied and
checked with "gcc -Wall".
[E7] The error_description() routine has been dropped, and the entire
package has been modified to use strerror(). lib/errno.c has
been modified to provide a strerror() for those systems that
lack it.
[E8] Add header fields to the send menu. Only list
to/cc/subject and any non-null fields (from Paul Close
<pdc@lunch.engr.sgi.com>)
[E9] New [attach ...] command. Use exactly the same way as
[include ...]. Difference is inclusions appear in-line
with the message; attachments appear at the end.
[E10] If you omit the encoding from an [include ...] line,
Elm will guess an appropriate encoding rather than
assuming no encoding.
[E11] Major overhaul of the elmrc file. Options are now
grouped together logically rather than appearing in
alphabetical order.
[E12] The "elm_defs.h" provides for ANSI prototyping. It says:
#ifndef P_
# ifdef ANSI_C
# define P_(ARGS) ARGS
# else
# define P_(ARGS) ()
# define const
# endif
#endif
SUMMARY: This release collects changes of Elm2.4ME+ PL120
and PL121. This release incorporates some new
commands and other changes from Elm 2.5 PL7.
Also crash on List-ID parsing is fixed.
* Collected ELM 2.4ME+ PL120 (25) changes:
- Group reply did not worked correctly when on mail
there was several To: -headers.
- Refine "showto" semantic. If that elmrc variable is
set and mail is not addressed to user, then To: address
is shown.
- Remove < > from address on real_from parsing.
- Set envelope from address to username when reading
Canceled mail special 'folder'. That way To:
-address should be displayed when viewing that 'folder'.
* Collected ELM 2.4ME+ PL121 (25) changes:
- Better rpath test on Configure
- Better soname test on Configure
- Some fixes about soname_include_path
- Change soname_include_path values
define/undef to y/n. It is not used
for #define.
- Allow setting soname_include_path=n
always if rpath works
- Add extra libraries needed by shared libraries
(shared_libs/*/) to rpath of executable.
- Effectively local-fast-lookup = ON is now
always used when ASCII filenames are looked.
- Removed Configure warning:
"(I see you are using the Korn shell. Some ksh's
blow up on Configure, especially on exotic machines.
If yours does, try the Bourne shell instead.)"
- Let builtin pager show also address and not only
name of sender!
- Fix error
RC PANIC in rc_handle.c:1226:expand_dt_path
>>>Bad state on end
when incorrect elmrc is read
weedout = *clear-weed-list*"
- Change from Elm 2.5:
- Pass topic only to display_helpfile()
instead of help section number. [D1] [D2] [D3]
- Removed 'prefix' argument from
copy_message*() functions. [D6]
- Added line argument to read_number() [D7]
- Added wait_time pararmeter to GetPrompt() [D8]
- Added '!' command to alias menu [D9]
- Added environment variables to elm
manual page [D10]
- Command 'u' works as command 'U' (Unread)
to messages which are not deleted. [D11]
- Allow both mansrc and catmansrc to be "none" [D12]
- If 'M' command is going to display To -address inside of ( )
and there is displaying of "To " address on place of from
address, do not display To -address inside of ( ).
- Minor change to output of 'M' command.
- Fix crash on List-ID parsing.
Renamed files:
doc/elm-help.0 => doc/help-main [D4]
doc/elm-help.1 => doc/help-options
doc/elm-help.2 => doc/help-alias
doc/elm-help.3 => doc/help-pager
Removed files:
hdrs/elmutil.h [D5]
New files:
utils/def_utils.h
Corresponding quotes from Elm 2.5 PL7 Changes file:
[D1] The display_helpfile() program is now passed a just a
topic (say "options") instead of a full pathname
("/usr/local/lib/elm/help-options").
[D2] Calling semantics to display_helpfile() [file src/help.c]
changed. Before, it used to take an integer to select a
helpfile. Now, it takes a helpfile pathname. (These
pathnames are now defined in sysdefs.h.)
[D3] sysdefs.h no longer defines individual help files, but
rather a single "system_help_dir".
[D4] Renamed all help files from stuff like "elm-help.0" to
"help-main".
[D5] Reorganization of main header files. The elmutil.h
header is now obsolete. All portions of the Elm package
include elm_defs.h, and the main Elm program (but not
utilities) include elm_globals.h. Moved many definitions
specific to Elm (and not used by the utilities) from
elm_defs.h to elm_globals.h. Placed declaration
of the dozen-or-so widely used globals in elm_defs.h.
[D6] The calling semantics to copy_message() have changed.
It no longer accepts a "prefix" argument. New usage is:
copy_message(FILE *dest_file, int cm_options);
The following new options have been added:
CM_PREFIX - Add "prefixchars" to each line.
CM_FORWARDING - Replaces the (now removed) "forwarding" global.
CM_ATTRIBUTION - Add an attribution line.
[D7] Calling semantics to read_number() [file src/in_utils.c]
changed. It used to have a hardwired screen line number
and got its default response from a magic global
variable. Now you have to pass both of these as arguments.
[D8] Calling semantics to GetPrompt() [file src/in_utils.c]
changed. Now you need to pass the timeout as a parameter,
rather than using the global "timeout". Say "0" for
infinite timeout.
[D9] Allow a shell escape from the alias screen (just like from
the index screen). It does not put the shell escape onto the alias
screen menu. (from Keith Neufeld <neufeld@pvi.org>)
[D10] Added docs for environment variables to the man page (from Eric
Haszlakiewicz <nimenees@uaccess.net>)
[D11] Press u on a message that is read but not deleted
will mark the message as unread (from Larry Schwimmer
<rosebud@cyclone.Stanford.EDU>).
[D12] Eliminate complaints in doc/Makefile about duplicate
makefile entries if mansrc and catmansrc are both "none"
(from Keith Neufeld<neufeld@pvi.org>)
- Fix crash on startup if .elm directory do not exists
- Fix crash on startup if DEBUG is not defined
- Deleting of messages marked for deletion was not working
(same incorrect condition worked on Elm 2.4ME+ because
of different ison -macro)
- Errors on [tags] was not caused sending to go back to
pre-send menu.
- "save-by-alias" was truncating alias to 3 letters.
SUMMARY: This release collects changes of Elm2.4ME+ PL118
and PL119. This release incorporates new command
line options from Elm 2.5. New elmrc option is
dead-letter-dir.
* Collected ELM 2.4ME+ PL118 (15) changes:
- Interrupt signal (Ctrl-C) was ignored only,
if Elm ME+ was compiled with -DDEBUG option.
Problem noted by: Laura Kataja
- Moved get_term_chars() from src/init.c to
src/screen/init.c
- ELM 2.4ME+ PL108 added 'invoke e)ditor' command to
header editing screen. That conflicts with 'E)xpires'
command. Changed command to 'invoke e(d)itor'.
- Allow canceling of following prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Set current XXX to :
Description: (Attachment Configuration)
Content-Type: (Attachment Configuration)
Content-Disposition: (Attachment Configuration)
Search: (builtin pager)
From: (Message Header Edit Screen)
To: (Message Header Edit Screen)
Cc: (Message Header Edit Screen)
Bcc: (Message Header Edit Screen)
Subject: (Message Header Edit Screen)
Reply-to: (Message Header Edit Screen)
Action: (Message Header Edit Screen)
Priority: (Message Header Edit Screen)
Precedence: (Message Header Edit Screen)
In-reply-to: (Message Header Edit Screen)
user defined header on Message Header Edit Screen
Enter criteria or '?' for help:
Send the message to: (prompt of m)ail command)
To: (prompt of m)ail command)
Subject: (prompt of m)ail command)
Copies to: (prompt of m)ail command)
Return-path: (Mail Pre-Send Screen)
E)ditor (primary) : (ELM Options Editor)
D)isplay mail using : (ELM Options Editor)
C)alendar file : (ELM Options Editor)
O)utbound mail saved : (ELM Options Editor)
P)rint mail using : (ELM Options Editor)
Y)our full name : (ELM Options Editor)
V)isual Editor (~v) : (ELM Options Editor)
E)xpires: (ELM Options Editor)
Precede(n)ce: (ELM Options Editor)
Enter pattern:
To: (when encrypting message (pgp))
From: (when signing message (pgp))
Enter userid of public key: (prompt of Ctrl-K command)
Override charset:
Shell command:
Pipe to:
Enter alias name: (Alias mode)
Current message address aliased to:
Enter address for XXX: (Alias mode)
Fully expand alias: (Alias mode)
Enter last name for XXX:
Enter first name for XXX:
Enter optional comment for XXX:
Forward message as separate part?
Copy message? (prompt of m)ail command)
Edit outgoing message? (prompt of f)orward command)
- Treate Ctrl-C (interrupt character) as No on following
prompts (on systems which support POSIX termios):
Abandon change to mailbox?
Abandon changes to mailbox?
- Handling interrupt (Ctrl-C) on builtin editor without
signals on systems which support POSIX termios
(that edit_interrupt signal handler is not safe!)
- GetPGPKey() did not always re-enabled raw-mode
- Allow canceling of following (folder browser) prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Change to which folder:
Save text of message to:
Copy text of message to:
Save text messages to:
Copy text messages to:
Save message to:
Copy message to:
Save messages to:
Copy messages to:
Save copy in (use '?' for help):
- Allow canceling of following (file browser) prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
To file: (MIME structure Menu)
Filename: (Attachment Configuration)
- Allow canceling leaving of folder on following
prompts with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Delete message?
Delete messages?
Move read message to \"received\" folder?
Move read messages to \"received\" folder?
Keep unread message in incoming mailbox?
Keep unread messages in incoming mailbox?
- Now on address prompts also works \ quotation
of interrupt character (for example @, if set that way)
on systems which supports POSIX termios.
- Allow canceling of password prompt of IMAP/POP
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Password for XXX@YYY:
- Allow canceling of IMAP/POP connection attempt
with Ctrl-C (interrupt character) on systems
which supports POSIX sigaction:
Connecting to XXX
- Allow canceling alias menu help prompt
with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Allow canceling messages/mailbox menu help
prompt with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Allow canceling options menu help prompt
with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Add READCH_CURSOR to ReadCh options so
so that escape sequences from cursor keys
do not cause misinterpration of selected option.
- Allow folowing ON/OFF prompts to be canceled
on options menu with Ctrl-C (interrupt character)
on systems which supports POSIX termios:
A)rrow cursor :
M)enu display :
- Allow options menu sorting criteria prompt
to be canceled with Ctrl-C (interrupt character)
on systems which supports POSIX termios:
S)orting criteria :
- Allow canceling DSN menu with Ctrl-C (interrupt character)
on systems which supports POSIX termios
(but not yet allow canceling of individual prompts.)
- Allow quiting Attachment Configuration menu
with Ctrl-C (interrupt character) on systems which supports
POSIX termios (this not necessary forget/undo made changes
however.)
- Allow canceling encoding prompt on Configuration menu
with Ctrl-C (interrupt character) on systems which supports
POSIX termios:
Content-Transfer-Encoding:
- Allow quiting Attachment Menu with Ctrl-C (interrupt
character) on systems which supports POSIX termios (this not
necessary forget/undo made changes however.)
- Redraw Mail Pre-Send Screen when quiting Attachment Menu
or DSN menu.
- Allow quiting Message Header Edit Screen with Ctrl-C
(interrupt character) on systems which supports POSIX
termios (this not necessary forget/undo made changes
however.)
- Allow quiting help text viewer with Ctrl-C (interrupt
character) on systems which supports POSIX
termios:
Press <space> to continue, 'q' to return.
- Allow quiting of builtin pager with Ctrl-C (interrupt
character) on systems which supports POSIX termios
* Collected ELM 2.4ME+ PL119 (15) changes:
- Configure now locates system gencat command
- Added file nls/Makefile.SH
- File nls/Makefile is removed. Now it is
generated by Configure
- Made leave() to use give_next_open_mailbox()
- Added free_all_mailboxes() to src/messages/messages.c
- Made leave() to use free_all_mailboxes()
- Made rm_temps_exit() to use free_all_mailboxes()
- Made silently_exit() to use give_next_open_mailbox()
- Made emergency_exit() to use give_next_open_mailbox()
- Made leave_locked() to use give_next_open_mailbox()
- Made usr1_signal() to use give_next_open_mailbox()
- Made usr2_signal() to use give_next_open_mailbox()
- Removed current_mailbox global variable
- Added free_all_aliasviews() to src/aliases/aliases.c
- Made leave() to use free_all_aliasviews()
- Made silently_exit() to use free_all_aliasviews()
- Made rm_temps_exit() to use free_all_aliasviews()
- Made leave_locked() to use free_all_aliasviews()
- Removed current_aliaslist global variable
- Added menu_trigger_redraw() to src/screen/context.c
- Changed resync() to use menu_trigger_redraw()
- Changed help() to use menu_trigger_redraw()
- Changed do_pipe() to use menu_trigger_redraw()
- Changed change_file() to use menu_trigger_redraw()
- Changed print_msg() to use menu_trigger_redraw()
- Changed subshell() to use menu_trigger_redraw()
- Changed pgp_extract_public_key() to use menu_trigger_redraw()
- Changed forward() to use menu_trigger_redraw()
- Changed reply_to_everyone() to use menu_trigger_redraw()
- Changed pgp_mail_public_key() to use menu_trigger_redraw()
- Changed send_msg_l() to use menu_trigger_redraw()
- Changed print_text() to use menu_trigger_redraw()
- Changed reply() to use menu_trigger_redraw()
- Changed save() to use menu_trigger_redraw()
- Changed pattern_match() to use menu_trigger_redraw()
- Changed limit() to use menu_trigger_redraw()
- Changed read_number to use menu_trigger_redraw()
- Changed alias_help() to use menu_trigger_redraw()
- Changed a_sendmsg() to use menu_trigger_redraw()
- Changed mailbox_command() to use menu_trigger_redraw()
- Changed motion() to use menu_trigger_redraw()
- Changed new_mail_check() to use menu_trigger_redraw()
- Changed mail() to use menu_trigger_redraw()
- Changed send_msg_middle() to use menu_trigger_redraw()
- Changed send_form() to use menu_trigger_redraw()
- Added menu_trigger_redraw() to get_copies()
- Added menu_trigger_redraw() to get_to()
- Added menu_trigger_redraw() to copy_the_msg()
- Added menu_trigger_redraw() to get_subject()
- Changed send_msg_argv() to use menu_trigger_redraw()
- Moved *.Canceled.mail to own directory
Canceled.mail.dir
- Editor buffer for f)orget messages is not kept.
Instead cancele mails are picked from
Canceled.mail.dir on m)ail -command ('/' on
To: prompt gives menu of cancelled messages.)
- Canceled.mail.dir is not available as folder
(it can not given for c)hange folder commmand
or -f option of Elm.)
- When canceled mail is picked from re-sending,
is is also deleted from Canceled.mail.dir
(f)orget command will re-add it to Canceled.mail.dir.)
- Name of Canceled.mail.dir can be changed with elmrc
option dead-letter-dir.
- Removed give_message_folder()
- Added -g option to Configure
- Change from Elm 2.5:
Added option -r to specify elmrc file [C1]
Added option -S to specify send only mode
Added option -M to force all local folders as
mailboxes [C3]
- Change from Elm 2.5:
Added variable "opmode" [C2]
Added -M option to frm [C3]
Added '&' command to toggle option -M status
(force all local folders as mailbox) [C3]
- Added -M option to newmail
- Added -r option to frm,nfrm
- Added -r option to newmail
- Added -r option to answer
- Added -r option to elmcharset
- Added -r option to elmlibregister
- Added -r option to elmrc-write
- Added -r option to elmstringconvert
- Added -r option to elmterminal
- Added -r option to elmunidata
- If -M option is active, command 'c' prints
'Change mailbox' instead of 'Change folder'
- Allow canceling of following prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Save marked messages?
New elmrc options:
dead-letter-dir
New file:
src/screen/init.c
lib/cancel.c
src/messages/canceled_mail.c
src/canceled.c
nls/Makefile.SH
Removed file:
nls/Makefile (this is now generated by Configure)
Corresponding quotes from Elm 2.5 PL7 Changes file:
[C1] Actually show the -r option in the usage
[C2] New "opmode" parameter indicates Elm
operating mode (OPMODE_READ, OPMODE_SEND, etc.).
[C3] Added the changes that allow other folders to be treated
as spool folders (the "Magic Mode" change). Hitting '&'
toggles this as well as the use of the command line
option -M. The -M option also works on frm/nfrm.
Note: You must create directory
2.4/doc
before applying this patch!
SUMMARY: This release collects changes of Elm2.4ME+ PL116,
PL116a, PL117 and allows elmination of aliases
from larger aliases. Also Elm 2.4 guide files are moved
from doc to 2.4/doc. New elmrc aoptions are
pgp-interactive and askmimeforward.
WARNING: There is small change on elm.filelist format, so
downgrading from Elm2.4ME+ PL116 (25) or
Elm ME+ 2.5 PLalpha1 to Elm 2.4ME+ PL115 (25) or
to Elm ME+ 2.5 PLalpha0 will not work (you need
unistall or remove elm.filelist first.)
* Changes from Elm2.4ME+ PL116
- Changed prompt ""received" folder not available, continue? (y/n) n"
- Also changed default answer to be yes on that prompt
(that is useful only when received folder is remote,
but that error may occur also is somebody is set
receivedmail = /invalid
)
- Fix some possible compilation problems with traditional
C compilers (as opposed to ANSI C ompilers)
- Fix typo PROMTP_yesno (to PROMPT_yesno) on
Elm2.4ME+ PL115a (25)
- Added command "elmregister copydoc" which
works like "elmregister copy", but marks
file to be document.
- Added option "-s {stage-subdir}" to command
"elmregister {command}".
- If on header editing screen incoked editor
and address was on form '"a" <b> (c)",
and then edited it on header editing screen
address become as '"a" <b> (c('. Changed
on '(' to ')' on make_surface_addr() on
lib/outheaders.c
- Change from Elm 2.5:
allow elimination of aliases from larger aliases
(To: bigalias -subalias) [B1]
do not send message with zero recipients [B2]
- Fix debug output of dump_expanded_address()
- Changed message catalog name from elm2.4me+
to elmme+2.5
* Changes from Elm2.4ME+ PL116a (25)
- Alternatives and weedout and list was replaced with Q letters
Problem noted by: Cyrille Lefevre <cyrille.lefevre@laposte.net>
- Reprint last error on "Mail Pre-Send Screen" after
clearing screen.
- Trying send encrypted messages with gpg was giving
error message
Couldn't find key matching 'xxx@yyy'
Problem noted by: Olivier COLIN <dodo.olivier@wanadoo.fr>
(and probably others)
> Make GetPGPKey() retry reading of result on case of
interrupt.
- GetPGPKey() was not collect status of exted gpg and
was left lot of defunct processes. Converted code to
use start_run().
- Do not quote addresses on alternatives.
* Changes from Elm2.4ME+ PL117 (25)
- Fix debug output of dump_expanded_address()
- Implement reconnection for mailer=submission (however
reconnection is not implemented for mailer=sendmail-bs).
These mailer's open smtp (or submission) connection
to server before editor is started. That is done
for get capacity of mailer (for 8BITMIME). However
sometime that times out if editing tooks too long
and sending of mail fails.
- Added pgp-interactive option to elmrc. Setting that
disables batch mode of pgp/gpg when encrypting/signing
mail.
- Added elmrc variable type rc_DT_ESTR (a kind
of expanded string).
- Reimplemented elmrc variable "pager" as rc_DT_ESTR
- Reimplemented elmrc variable "editor" as rc_DT_ESTR
- Reimplemented elmrc variable "calendar" as rc_DT_ESTR
- Reimplemented elmrc variable "localsignature" as rc_DT_ESTR
- Reimplemented elmrc variable "remotesignature" as rc_DT_ESTR
- Reimplemented elmrc variable "receivedmail" as rc_DT_ESTR
- Reimplemented elmrc variable "sentmail" as rc_DT_ESTR
- Reimplemented elmrc variable "incoming-mailbox" as rc_DT_ESTR
- Removed valid_rc_type()
- Added malloc_gets() to lib/mail_gets.c
- Changed send_msg_l(), mail(), mail_form(),
mail_filled_in_form(), forward(), reply_to_everyone(),
and reply() to use index, mailbox instead of
current_header, infile, mailbox.
- Added give_next_open_mailbox() or src/messages.c and
made save_copy() to use it.
- Moved definition of struct mv_storage and
struct mv_digest out from src/messages/def_messages.h
- When mail is forwarded mail, user is prompted
Forward message as separate part?
default value of answer depends "mimeforward"
elmrc option. Setting elmrc option "askmimeforward"
to OFF disables that prompt.
- Added expanded_address_from_items() to
lib/outheaders.c
- Removed class_charset() from melib/mime_parse.c
- Fix bug of Elm2.4ME+ PL117 where Elm was acting always
as dsn-success was set.
(from Elm2.4ME+ PL117a (25))
- Moved doc/Alias.guide to 2.4/doc/Alias.guide
- Moved doc/Form.guide to 2.4/doc/Form.guide
- Moved doc/Ref.guide to 2.4/doc/Ref.guide
- Moved doc/Users.guide to 2.4/doc/Users.guide
- Moved doc/Config.guid to 2.4/doc/Config.guid
- Moved doc/Elm.cover to 2.4/doc/Elm.cover
- Fix bug where Elm ME+ 2.5 PLalpha0 was eating last
character on %D expansion (on attribution string).
New elmrc options:
pgp-interactive
askmimeforward
Corresponding quotes from Elm 2.5 PL7 Changes file:
[B1] allow elimination of aliases from larger aliases
(To: bigalias -subalias). Based on incomplete patch
by Waldi Ravens <waldi@moacs.indiv.nl.net>.
[B2] Don't try to send a message if the user erased all the
recipients on the header screen. (from Bob Schwartz
<rjs@elt.com> and Keith Neufeld <neufeld@pvi.org>
Note: You must create directory
2.4
before applying this patch!
SUMMARY: Elm ME+ 2.5 is based on Elm 2.4ME+ and incorporates
some code from Elm 2.5. This release incorporates
some header file changes and new elmrc options.
New elmrc options are incomingfolders, allow-setuid,
askstore, askkeep, askdelete, replycopy, askreplycopy,
showreply, confirmtagsave, editflush, fwdattribution,
printhdrs, savebyalias, showmlists and tochars.
- Moved Overview to 2.4/Overview
- Moved ANNOUNCE.ME to 2.4/ANNOUNCE.ME
- Moved ChangeLog.ME to 2.4/ChangeLog.ME
- Moved Patchlist to 2.4/Patchlist
- Moved Changes to 2.4/Changes
- Moved Instruct to 2.4/Instruct
- Moved NOTICE to 2.4/NOTICE (copyright file)
- Moved README to 2.4/README
- Copied Elm 2.5 PL7 NOTICE to NOTICE (copyright file)
- Change from Elm 2.5:
Added hdrs/elm_defs.h
Added hdrs/elm_globals.h
Removed hdrs/headers.h
Removed hdrs/defs.h
Removed hdrs/elm.h
NOTE however that there is:
hdrs/elmlib.h
hdrs/defs_major.h
hdrs/me.h
src/def_elm.h
so result is quite different.
- Change from Elm 2.5:
added incomingfolders to the elmrc [A1]
added allow-setuid to the global elm.rc [A2]
added askstore,askkeep,askdelete to elmrc [A3]
autocopy expanded into replycopy and askreplycopy (in
elmrc) [A4]
added showreply to elmrc [A5] (!)
added confirmtagsave to elmrc [A6] [A13]
added editflush to elmrc [A7]
added fwdattribution to elmrc [A8] [A16]
added printhdrs to elmrc [A11] (!!)
added savebyalias to elmrc
added showmlists to elmrc (!3)
added tochars to elmrc (!4)
(!) Elm 2.4ME+ is displaying 'r', that makes posible to
set it off.
(!!) Note that this option is only used with
p)rint command which is normally disabled.
This is not used with P)rint text command.
(!3) mlists config file is not supported. Instead
this option just show List-Id header from mail.
(!4) This is five character instead of four as on
Elm 2.5.
- Change from Elm 2.5:
attribution and fwdattribution may include [A9] [A12]
\t for tabulator
\n for newline
%F for sender (From header)
%D for send date
%I for message-id
%S for subject
%)F for sender's name
%>F for sender's address
%% for %
Added -w option to readmsg [A10] [A15]
Folder name may now include ... [A14] (!) (!2)
%h For 3 letter month
%y For 2 digit year
%Y For 4 digit year
%m For 2 digit month
%j For 3 digit day number of year
%d For 2 digit day number of month
%% For %
Also environment variable names may occur
also on other places than begining path name
components. (!2)
Environment variables may use ${variable} syntax. (!2)
(!) But these do not work if % is first charater!
On that case % refers to folder directory (ie.
same than '=' and '+'.)
(!2) This same expansion is used on many elmrc variables,
so somewhere this may cause surprises. However
%s should work on variables as earlier. Also $$
is expanded. Other $ -syntaxes may cause error,
because they are now tried to expand instead that
thay are passed to shell. For example on 'printout'
-command.
- Change from Elm 2.5:
Added command 'M' to message menu
- Changes from Elm2.4ME+ PL115a (25)
- Reimplemeted elmrc "alternatives" as type PATH and
removed special elmrc type for alternatives.
(from Elm 2.4ME+ PL116)
- Reimplemeted elmrc "weedout" as type PATH and
removed special elmrc type for weedout.
If first element on list is "*clear-weed-list*",
then builtin weedout list is not used.
(from Elm 2.4ME+ PL116)
- Added RFC 2919 List-ID -header to array on
lib/headers.c
- Fix missing space between pharse and < >
on result of hdr_decode_from_phrase() on
lib/headers.c
- RFC 2919 List-ID is now parsed and information
shown when showmlists is set on elmrc
New files:
hdrs/elm_defs.h
hdrs/elm_globals.h
NOTICE
Removed files:
hdrs/headers.h
hdrs/defs.h
hdrs/elm.h
Renamed files:
Overview => 2.4/Overview
ANNOUNCE.ME => 2.4/ANNOUNCE.ME
ChangeLog.ME => 2.4/ChangeLog.ME
Patchlist => 2.4/Patchlist
Changes => 2.4/Changes
Instruct => 2.4/Instruct
NOTICE => 2.4/NOTICE
README => 2.4/README
New elmrc options:
incomingfolders
allow-setuid
askstore
askkeep
askdelete
replycopy
askreplycopy
showreply
confirmtagsave
editflush
fwdattribution
printhdrs
savebyalias
showmlists
tochars
Corresponding quotes from Elm 2.5 PL7 Changes file:
[A1] added incomingfolders to the elmrc. This is a list of
folders that will automatically be opened with "magic
mode" on. (inspired by a patch from Cristophe Kalt
<kalt@ensta.fr>)
[A2] New "allow_setuid" setting. This must be enabled in the
global elmrc in order for Elm to operate setuid. This
prevents naive setuid installation without being too
heavy handed.
[A3] askstore can be used to separately prompt to move read
messages to =received when you leave your mailbox.
I see its main use for people who don't want to use
=received but still like confirmation of deletion. (from
Keith Neufeld <neufeld@pvi.org> )
[A4] autocopy expanded into replycopy and askreplycopy (in
elmrc). replycopy determines whether the default should
be yes or no, and askreplycopy determines whether it
should happen automatically. (from Keith Neufeld
<neufeld@pvi.org> )
[A5] Added the "replied" code. You must set showreply=ON in
your elmrc for this to work.
[A6] Added a change from Keith Neufeld <neufeld@pvi.org> to
make the confirm for saving tagged messages a user
configurable option (confirmtagsave in elmrc).
[A7] Flush the edit buffer after an edit and now make it a
user config thing (editflush in elmrc).
[A8] add a "fwdattribution" elmrc variable that enhances the
handling of forwarded messages. If undefined (the
default), the current behaviour is preserved (standard
attribution and prefix added on edited messages). If
this variable is defined, the prefix is never added, and
instead of the standard attribution the inclusion is
bracketed like:
[A9] Added some extra attribution code (inspired by a patch from
serini@ghost.sm.dsi.unimi.it (Piero Serini)). The attribution string
may now contain:
%F who the message is from (this is the same as %s)
%D date the message was created (the from message)
%I message ID
%S message subject
[A10] "readmsg" now accepts "-w" to specify header weeding.
The default works like: readmsg -w 'Subject: From:
To: Cc: Apparently- Date:' The list entries are
left-anchored "patmatch" patterns.
[A11] Added "printhdrs" elmrc option that allows header
weeding to be specified when printing. The value
of this option becomes the "-w" arg to "readmsg".
[A12] Add %)F and %>F to attribution, for from name and
from address (from Paul Close <pdc@lunch.engr.sgi.com>)
[A13] Added Wayne Davison's patch to confirm on saving
tagged messages.
[A14] Added patch to allow embedded date in folder names
(from Mike Kenney <mike@wavelet.apl.washington.edu>).
This allows:
%h month name ( 3 letter abbreviation )
%y last 2 digits of year
%m month number
%d day of the month
%j day of the year
This patch also allows environment vars to be enclosed
in {}.
[A15] Fixed readmsg so that when weeding is done, the
default action is the opposite of the last action.
That is, with a weed list of "Foo: Bar:" the default
is reject all other headers. With a weed list of
"Foo: !Bar:" the default is accept all other
headers.
[A16] The "fwdattribution" setting now understands
"%[begin|end]" formatting. Stuff to the left of the
bar is printed in the opening attribution, stuff to
the right in the close. The %A escape is depreciated
and is slated for removal.
[A17] Drop explicit initialization of empty strings.
This means they now will be created in BSS rather
than DATA, saving dozens of kilobytes of space in
the executable and speeding startup.
SUMMARY: This release collects some backported fixes from
Elm ME+ 2.5. This release adds command
'elmconfwriter' which is used to clean up some
config files during installation.
- Added iso-latin-1 and latin-1 to ConfTool/charaliases.map
as aliases of ISO-8859-1
- Added iso-latin-2 and latin-2 to ConfTool/charaliases.map
as aliases of ISO-8859-2
- Added iso-latin-3 and latin-3 to ConfTool/charaliases.map
as aliases of ISO-8859-3
- Added iso-latin-4 and latin-4 to ConfTool/charaliases.map
as aliases of ISO-8859-4
- Added iso-latin-5 and latin-5 to ConfTool/charaliases.map
as aliases of ISO-8859-9
- Added iso-latin-6 and latin-6 to ConfTool/charaliases.map
as aliases of ISO-8859-10
- Added iso-latin-7 and latin-7 to ConfTool/charaliases.map
as aliases of ISO-8859-13
- Added iso-latin-8 and latin-8 to ConfTool/charaliases.map
as aliases of ISO-8859-14
- Added iso-latin-9 and latin-9 to ConfTool/charaliases.map
as aliases of ISO-8859-15
- Moved resetting of s_out -> filter to after retry attempt
at pgp_decode() on melib/pgp_decode.c
- Fixed possible bug on verify_remote_url()
at src/list/info.c
- Fixed error message
Exited with status -1. Press any key to continue:
and bad gpg handling on copy_pgp() at
src/fileio.c. This is used if mail is NOT a
MIME message.
- Added resetting of found parameter to some
cs_give_unicode_from_*() routines.
- Added possible fix to elm_smessage() on lib/output.c
- Possible fix to pop_STLS_handler()
- Indicate on connect_one_IN() to try another port
when connection is timed out (not just when connection
is refused)
- Fixed UTF-8 on ConfTool/CharMap
- If configure does not found crypt() or cryptlib
and crypt.h is found, then try compile test it.
This fixes location of crypt() on Fedora 19 and
Ubuntu 12.04
WARNING: Resulting encoding with and without
crypt() is different for [encode]
(type application/X-ELM-encode). So old
messages can not decoded (easily). And format
does not tell is crypt() used for encryption
key. But same difficulty is also between
different machines.
- Fedora 19 have
include ld.so.conf.d/*.conf
line on /etc/ld.so.conf. Added Configure
check for that.
- Added /**/ comment to USE_BUILTIN_PAGER
on config.h.SH
- Fixed some warnings caused by -Wall with
gcc 4.4.3
- Removed some unused variables (not all)
- Possible fix for cs_iso2022_info_set_binary()
- Possible fix for print_local_shared_options()
- Possible fix for wait_for_something()
- Possible fix for getkey()
- Possible fix for give_canceled_mail()
- Replaced
$(REG) copy -m 555 $? $@
with
$(REG) copy -m 755 $? $@
on Makefile.SH.
- Also replaced
$(REG) copy -m 444 {library} $@
or
$(REG) copy -m 444 $? $@
with
$(REG) copy -m 644 {library} $@
or
$(REG) copy -m 644 $? $@
on Makefile.SH where shared library is installed.
- Fixed redraw loop on builtin++
- Fixed parsing
gpg --list-public-keys
output.
- Command Ctrl-K (^K) was not producing result. Replaced
send_msg_l() with send_msg_middle() on
pgp_mail_public_key() at src/pgp.c.
- Added xterm-* entry to doc/terminal.info
- Fixed bug where Makefile-1.SH was not installing
$(ETC)/elm.mimecharsets $(ETC)/elm.terminalinfo
- Fixed range counting of state_copy_range() on
lib/state.c
- mime_write_part_headers() was failing to add
Content-Transfer-Encoding: x-uuencoded
header to part and include_part() did not handled
this correctly.
NOTE: Using any X-* encoding on [attach] or [include]
assumes that part is already encoded!
- Use system_charset when decoding attachment for
printing
- Possible fix on split_file() on elmregister.c
- Changed elmregister so that it does not write
$(ELM_ROOT) to elm.filelist.
- Fixed case where last line of ~/elm/mail.services was
not (always) parsed if there was not newline on last line.
- Elm ME+ 2.5 PLalpha36 writes @charset indicator
to elm.rc. If @charset is used on file, lines
are converted to current locale charset.
- Elm ME+ 2.5 PLalpha37 writes @charset indicator
to mail.services. If @charset is used on file, lines
are converted to current locale charset.
- Changed parsing of library list on Configure
- nm seems crash on Fedora 19. Try make Configure
output little more clear (it is not fatal).
- Accept also 'i' on symbol type letters on nm so that
they are found on Fedora 19.
- Save also $nm_opts to config.sh
- If first nm fails, then use same sed expression
to nm -p output than was used to previous nm output.
- Changed metapager() so that it does not call pager
if copy_body() fails.
- Added elmconfwriter -command to rewrite existing
config files. This is used during installation
to clear existing config files.
- Some fixes to Makefile.SH
- Some fixes to utils/readmsg/Makefile.SH
- Use ml_global instead of ml_system parameter when
reading global elm.iso2022sets -file.
- Changed default_unidata()
- Added option -E (ignore errors on arg) elmrc-write
- Used -E option on final
elmrc-write -G -I elm.rc.old-values
- Removed -C {doc/elmrc-info} from final
elmrc-write -G -I elm.rc.old-values
- Documented -C option on elmrc-write manual page.
New tools:
elmconfwriter
New files:
utils/elmconfwriter.c
doc/elmconfwriter.1
SUMMARY: This release collects some backported fixes from
Elm ME+ 2.5. This release changes the handling
of dotlock ({mailbox}.lock) file, adds
"local-lockfile-pidcheck" global elm.rc
option. Some other changes and bug
fixes are also included.
- Added check to pop_push_command() that
pop_state is not POP_not_logged
- Added missing pop_push_command() return value
check to pop_open_connection()
- Fixed wrong check on start_imap_command()
- Added check to on start_imap_command() that
imap_state is not IMAP_closing
- In IMAP login failure wait for
sleepmsg seconds on cache_login_imap() so that
LOGOUT does not clear possible error message
- Added some compilation fixes for case when
POLL_METHOD is undefined
- Added small fix to unicode_ch()
- Added small fix to src/Makefile.SH
- Fixed crash on gen_splitted_ascii_param()
when file with too long filename was attached:
Couldn't malloc -79 bytes!!
PANIC in utils.c:90:malloc_failed_exit
Out of memory
Emergency exit taken! All temp files intact!
- Changed that malloc_failed_exit() used %u on instead
of %d in error message because argument is
'unsigned len'
> That changes crash message to
Couldn't malloc 4294967217 bytes!!
- If saving of message was canceled, temporary tagging
of message was not properly cleared.
Problem noted by: Laura Kataja
- Fixed some misspellings.
Patch from: Vandeir Silva <vandeir@silva.info>
- Added a missing function in the "write_rc.c" to print
the ".elm/elmrc - options file for the ELM mail system"
line.
Patch from: Vandeir Silva <vandeir@silva.info>
> That text was on src/save_opts.c and
probably lost on Elm 2.4ME+ PL122 (25). Added also condition
that this text is not written when writing global
elm.rc.
- Added local-lockfile-pidcheck option:
no Do not check pid on file
yes Remove lockfile if given pid does not exists
hostname Remove lockfile if given pid does not exists.
Write pid@hostname format.
ignore-hostname remove lockfile if given
pid does not exists. Do not check
@hostname part.
require-hostname remove lockfile if given
pid does not exists and @hostname
part exists (and matches).
Write pid@hostname format.
Default is "hostname".
- Qualified hostname is also accepted on {mailbox}.lock
file.
> Now by default also hostname is written to
{mailbox}.lock lockfile. This should partially
protect Elm to remove lockfile if /var/mail is
shared via NFS and mailbox is read on another
machine.
> If program parses pid on mailbox.lock with atoi()
it does not hurt that there is @hostname after
pid.
> On other machine than where mail is delivered
to mailbox, value "require-hostname" should
be used for local-lockfile-pidcheck option.
- Elm2.4ME+ PL97 (25) added check to
Configure that is elm's shared library
directory on /etc/ld.so.conf. That check
does not take account, if /etc/ld.so.conf
have line
include /etc/ld.so.conf.d/*.conf
Added check for that.
- Don't die on installation if on elm.filelist
have command letter 'c' or 'u', that is used
by Elm ME+ 2.5
- Documented environment variables on elmregister
manual page.
- Added small fix to uninstall_list() on
elmregister uninstall
command.
- Added compilation fixes for nls/gencat/gencat.c
- Added compilation fixes for nls/gencat/dumpmsg.c
- Elm ME+ tries check MAX_ATTEMPTS times (given
on Configure) for the removal of the {mailbox}.lock
file. After that many tries lock file is removed
if it more that 10 minutes old (and mailbox is
not accessed). Added extra check that {mailbox}.lock
is always read (even when local-lockfile-pidcheck
option is "no") and access time is compared with
modify time. If modify time is less than 5
minutes old compared to access time (before
checks for removal of the {mailbox}.lock
file), then also file is NOT considered old
enough for removal after it is checked
MAX_ATTEMPTS times. This may perhaps help
when file is on NFS server and clocks does
not have on synchronized. This check does not work
if filesystem is mounted with noatime or relatime
option.
- Wait sleepmsg seconds after {mailbox}.lock
is removed (and lock file {mailbox}.lock recreated)
so that message
Timed out - removing current lock file...
is visible.
- Changed $d_netinet_in to $i_netinet_in on Configure
(#include <netinet/in.h>)
- Added $i_arpa_inet to Configure
(#include <arpa/inet.h>)
- Changed $d_socket to $i_sys_socket on Configure
(#include <sys/socket.h>) and changed I_SOCKET
macro to I_SYS_SOCKET
- Changed $d_netdb to $i_netdb on Configure
(#include <netdeb.h>)
- Changed $d_inttypes to $i_inttypes on Configure
(#include <inttypes.h>)
- Changed $d_locale to $i_locale on Configure
(#include <locale.h>)
- Changed $d_nl_types to $i_nl_types on Configure
(#include <nl_types.h>)
- On Ubuntu 11.10 release has libc.so.6
on strange location. Now configure uses
result of test compilation and /usr/bin/ldd
to locate libc.so on that case.
- Changed that Configure uses compiling test for
F_SETLK on Linux
- Changed that Configure defaults both flock
and fcntl locking on Linux 3.*
- Added check to configure that if dnsdomainname returns
empty answer.
- Changed Configure to use /usr/bin/editor as default
editor if available.
- Added prototype to try_dyn.c on Configure
- Changed that OpenSSL is tried to locate from
same directory than from where libc.so.6
found (on Ubuntu 11.10 release).
- When creating (linking) libelmme-base.so, link it
with -ldl. Seems that it is not enough that programs
are linked with -ldl (on Ubuntu 11.10 release).
- Changed Configure so that if to question
Give the name of the ispell program on your system:
is answered with "none", addition of ispell
option to the pre-send menu is canceled.
- Small fix to doc/Makefile.SH
New elmrc option:
local-lockfile-pidcheck
SUMMARY: This release collects patches Elm 2.4ME+ PL124a (25)
- PL124d (25) and collects some backported fixes from
Elm ME+ 2.5. This release fixes fastmail and adds
certificate check to tls -module. Also some other
changes or fixes are included.
- Added more detailed documentation to elmregister
manual page.
- Fixed usage of wrong variable on cs_cmp_iso2022_gen()
- Fixed problem where converting pgp mail charset
did not worked, when replying.
- Fixed crash on --icon-name=xxx command line option.
- Fixed problem where "frm -q file" did not printed number of
messages.
- Fixed message
'protocol' paramater is missing from multipart/encrypted -type!
to
'protocol' parameter is missing from multipart/encrypted -type!
- Fixed compilation warning
syscall.c: In function `system_call':
syscall.c:222: warning: variable `sh' might be
clobbered by `longjmp' or `vfork'
- Changed address hurtta+elm@posti.fmi.fi
to hurtta+elm@siilo.fmi.fi
- Check also if Makefile-1.SH is newer than Makefile-1
(not only if Makefile.SH is newer than Makefile)
- Added
multipart/parallel (RFC 2045)
multipart/related (RFC 2387)
to lib/misc/mediatype.c. These are not supported,
but treated as multipart/mixed.
- Handle IPv6 URLs (RFC 2732) on List-* -headers, so
that they do not give parsing error. IPv6 addresses
are not supported however.
RFC 2732: Format for Literal IPv6 Addresses in URL's
- Changed "elmregister unstage" so that it does not print
bin/elmregister: Ignoring entry
/usr/local/lib/elmlibregister --
not in stage area (/usr/local/var/stage-elm2.4me+)
messages (without -v (verbose) option).
- Changed "elmregister replay" so that it does not print
bin/elmregister: (/usr/local/lib/elm.filelist)
Keeping file usr/local/lib/elm.terminalinfo from
old version
messages (without -v (verbose) option).
- Changed "elm -h" text.
- On elmregister remove temporary file after rename, if it still
exists. This may happen, if hard link already existed between names.
- Changed cs_stream_from_unknown() to use wcrtomb()
instead of wcsrtombs(). That way null characters (L'\0')
do not truncate string.
- Added possible fix to convert_to_wchar()
- Added possible fix to cs_streamclip_from_unknown()
- Changed elm to return failure (nonzero status) if there is
error on conversion of characters in included file on command
elm -i <filename> <address>
- Fix sorting directory messages of local directory
- Do not use erase_a_char() on enter_helper()
-- usage is not correct.
- Fixed debug output on scommon_ClearScreen()
- Fixed do_movement1(). This fixes updating of attachment
list when pressing UP key and current attachment is
changed to previous page (when there is more attachments
than to one page fits.)
- Added rewinddir() to browser_fill_local()
- Fixed some unknown command messages in case of
non-letter key is pressed.
- Fixed character set of %s expansion on attribution string.
- Fixed redraw loop on E)xtended command -screen on resizing
of screen.
- Fixed possible problem on mbx_move_temp_file()
where stat and lstat buffers are used when they are
uninitialized (when syscall failed).
- Fixed problem where saving options did not
uncommented changed userlevel (or any other enumerated
variable).
- Fixed problem where turning OFF "M)enu display " on
options editor do not disabled menu when it is
returned to mailbox screen.
- Fixed problem where error and transient messages did
not handled UTF-8 text correct.
- Added possible fix for menu_set_default()
- Added redrawing of browser window if enter is rejected,
because select_dir_item() trashes directory listing.
- Fixed so that ioctl() on cur_ScreenSize() uses terminal_fd
variable and not constant 1 as file description.
- Fixed crash on "Metamail selection" screen, when RIGHT
key is pressed.
- Fixed valgrind reported memory leak:
4,502 (60 direct, 4,442 indirect) bytes in 2 blocks
are definitely lost in loss record 29 of 31
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195CE8: safe_malloc (safemalloc.c:48)
by 0x81A3A38: malloc_string (string.c:80)
by 0x81A4CB2: cat_strings (string.c:514)
by 0x81223D8: browser_cat_local (localmbx.c:1074)
by 0x8134F81: give_edit_buffer (savefolder.c:3698)
by 0x8072417: gb_browser (browser.c:601)
by 0x8090892: enter_helper (in_utils.c:816)
by 0x8073071: run_browser (browser.c:1025)
by 0x807327A: folder_browser (browser.c:1100)
by 0x80AA224: OpenMailbox (openmailbox.c:38)
- Fixed valgrind reported memory leak:
4,448 (52 direct, 4,396 indirect) bytes in 1 blocks
are definitely lost in loss record 25 of 30
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195CF8: safe_malloc (safemalloc.c:48)
by 0x8132218: browser_malloc2 (savefolder.c:2455)
by 0x813229A: browser_malloc (savefolder.c:2481)
by 0x813251C: new_browser (savefolder.c:2571)
by 0x80AA1B6: OpenMailbox (openmailbox.c:30)
- Do not malloc empty array on ascify_string()
- Fixed valgrind reported memory leak:
10 bytes in 5 blocks are definitely lost in loss record 1 of 23
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195D08: safe_malloc (safemalloc.c:48)
by 0x8172A65: hdr_text (hdrdecode.c:502)
- Fixed bug where "mailer = submission" was giving
RET parameter to RCPT command when it must be on
MAIL command on submission (or SMTP) protocol.
- Fix small error on cat_strings() where wrong charset
name is printed when printind is specified.
- Fix small error on ascii_need_quote() and
string_need_quote on melib/mime_param.c. Both was
missing [] characters.
- Fixed error message on delete_alias_files()
- Added following new types to doc/mime.types file:
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.chart-template
application/vnd.oasis.opendocument.formula
application/vnd.oasis.opendocument.formula-template
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.graphics-template
application/vnd.oasis.opendocument.image
application/vnd.oasis.opendocument.image-template
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.presentation-template
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.spreadsheet-template
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.text-master
application/vnd.oasis.opendocument.text-template
application/vnd.oasis.opendocument.text-web
- Fixed the error where hdr_comment() was not correctly
dequoted \ -escaping.
- Command sequence
m)ail -> view) -> ' ' -> m)ail
and
m)ail -> view) -> ' ' -> b)ounce
and
m)ail -> view) -> ' ' -> r)eply
and
m)ail -> view) -> ' ' -> f)orward
and
m)ail -> view) -> ' ' -> g)roup reply
and
m)ail -> view) -> ' ' -> Mailing list I)nfo
and
m)ail -> view) -> ' ' -> ^K (Mail PGP public key)
and
m)ail -> view) -> ' ' -> generic R)eply
were possible. These were sending mail (recursively).
Added flag SHOWMSG_NOMAIL which disables
mailing commands.
Also disallowed
m)ail -> view) -> ' ' -> V)iew digests
because there also are mailing commands.
- Added possible fix for get_word_from_string()
- "The attached email triggers a bug in ELM 2.4ME+ PL123.
The problem is that reading this email message causes
continuous redraw of the screen, and you have to kill elm
to exit. I think it is caused by too many attachments."
Reported by: Bruce Momjian <bruce@momjian.us>
> Fixed "Metamail selection" / "Mailcap program selection"
prompt screen.
- "I'm attaching the mailbox consisting of just this message.
To reproduce the problem, save it, uncompress, and try
searching through the body of the message (using elm) for
a string, such as "iegor":
bunzip /tmp/spam-crash.bz2
elm -f /tmp/spam-crash
//
iegor
The double-free happens in the following stack:
(gdb) where
#0 0x0000000800a9855c in kill () from /lib/libc.so.6
#1 0x0000000800a973ed in abort () from /lib/libc.so.6
#2 0x0000000800a36ae5 in _UTF8_init () from /lib/libc.so.6
#3 0x0000000800a36b1c in _UTF8_init () from /lib/libc.so.6
#4 0x0000000800a37abd in _UTF8_init () from /lib/libc.so.6
#5 0x00000000004978f0 in arrange_decoded ()
#6 0x000000000049ee1b in simple_mime_walk ()
#7 0x000000000049ecf7 in simple_mime_walk ()
#8 0x000000000046bae3 in mc_match_in_text_mbx ()
#9 0x0000000000469ced in mcommon_match_in_text ()
#10 0x0000000000457cfa in pattern_match ()
#11 0x00000000004351fe in motion ()
#12 0x0000000000435945 in mailbox_command ()
#13 0x0000000000445ae6 in compute_visible ()
#14 0x0000000000446560 in main_messages_menu ()
#15 0x00000000004347fd in main ()"
Reported by: Mikhail T. <mi+elm@aldan.algebra.com>
> Fixed valgrind reported invalid free:
Invalid free() / delete / delete[]
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8195D38: safe_free (safemalloc.c:104)
by 0x8105B6F: arrange_decoded (mime_decode.c:2532)
by 0x8111349: simple_mime_walk (mimewalk.c:150)
by 0x811118C: simple_mime_walk (mimewalk.c:94)
by 0x80C880B: mc_match_in_text_mbx (message_pattern.c:417)
by 0x80C5D93: mcommon_match_in_text (mcommon.c:211)
by 0x80AE09E: pattern_match (pattern.c:438)
by 0x8081755: motion (elm.c:1744)
by 0x807FA44: mailbox_command (elm.c:862)
by 0x80977BD: main_messages_loop (mailbox.c:233)
by 0x809822E: main_messages_menu (mailbox.c:634)
Address 0x4491350 is 0 bytes inside a block of size 20 free'd
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8195D38: safe_free (safemalloc.c:104)
by 0x8105B57: arrange_decoded (mime_decode.c:2528)
by 0x8111349: simple_mime_walk (mimewalk.c:150)
by 0x811118C: simple_mime_walk (mimewalk.c:94)
by 0x80C880B: mc_match_in_text_mbx (message_pattern.c:417)
by 0x80C5D93: mcommon_match_in_text (mcommon.c:211)
by 0x80AE09E: pattern_match (pattern.c:438)
by 0x8081755: motion (elm.c:1744)
by 0x807FA44: mailbox_command (elm.c:862)
by 0x80977BD: main_messages_loop (mailbox.c:233)
by 0x809822E: main_messages_menu (mailbox.c:634)
- "Not sure if you have fixed this in later releases but in ELM 2.4ME+
PL123 if I try to save a file attachment of type "image/jpeg" and the
file name already has extension "jpg" elm suggests the additional
extension "jpeg"."
Reported by: Bruce Momjian <bruce@momjian.us>
> Filename was not correctly recorded on attach_save()
- Fixed fastmail.
- Moved needs_encoding() from src/mime.c to lib/misc/mimesend.c
- Moved base64_encode(), line_quoted_printable_encode() and
quoted_printable_encode() from src/mime_encode.c to
lib/mailer/mime_encode.c
- Changed fastmail so that it uses quoted-printable or base64
encoding if needed.
- Changed fastmail so that it adds Content-Type header field
and charset parameter to it if needed. Type is assumed to
be text/plain on most cases (given file is supposed to be
text body of mail). However if content (and possible
filename extension) matches to type given on mime.types
file (or on global elm.mimetypes file or on built-in
definition) that type is used. Fastmail ignores definitions
which used filename extension alone. However if file looks like
like binary, then application/octet-stream is used instead.
- Added to fastmail a warning message:
In-reply-to header should include only message-id
That message can be disabled with elmrc option
add-in-reply-to-phrase.
- Give error of -R option on fastmail includes 8-bit data.
- Give error of -P option on fastmail includes 8-bit data.
- Fastmail did not printed To: -header field. Added that.
- Added -t (content-type) option to fastmail. If fastmail
detect something that it is not text, option -t text/plain
can be used.
- Allow setting character set with "-t ;charset=charset-value"
option on fastmail.
- Changed consideration when lines (of attachments) are
normalized.
- If content type is not textual, 7bit and 8bit encodings
should not be used. Changed default encding on these cases.
- Warn if 7bit or 8bit encoding is used for non-textual types.
- Added test to Configure to look EWOULDBLOCK from
/usr/include/asm-generic/errno.h on Linux
- Added error/warning messages mpar_multipart_parse() for
case there is Content-Transfer-Encoding other than 7bit,
8bit or binary:
PARSE ERROR: ... Content-Transfer-Encoding is ignored
for multipart type
PARSE ERROR: non-identity Content-Transfer-Encoding
is ignored for multipart type
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
for multipart type
PARSE ERROR: non-identity Content-Transfer-Encoding is
unsupported for multipart type
Actual parsing of multipart type is not changed.
- Added error/warning messages mpar_rfc822_parse() for
case there is Content-Transfer-Encoding other than 7bit,
8bit or binary:
PARSE ERROR: ... Content-Transfer-Encoding is ignored
for message/rfc822 type
PARSE ERROR: non-identity Content-Transfer-Encoding is
ignored for message/rfc822 type
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
for message/rfc822 type
PARSE ERROR: non-identity Content-Transfer-Encoding is
unsupported for message/rfc822 type
Actual parsing of message/rfc822 type is not changed.
- Added error message for unknown Content-Transfer-Encoding
values:
PARSE ERROR: ... Content-Transfer-Encoding is unsupported
- Added that
message-hide-hack = FOLDER INTERNAL DATA
elmrc option is used also on frm -program.
- Don't die on installation if on elm.filelist have command
letter 'r', that is used by Elm ME+ 2.5
- Added that tls module prints message if IMAP or POP
server's certificate verified. IMAP or POP server's
name is NOT verified against used DNS name. First CN
from server's certificate's subject is printed (often
last (and only) CN is equivalent of used DNS name).
- Added elmrc options
"trusted-ca-certificates-file" and
"trusted-ca-certificates-dir" to "tls:" section;
Option "tls:trusted-ca-certificates-file" gives
a file of CA certificates in PEM format.
Option "tls:trusted-ca-certificates-dir" gives
a directory containing CA certificates in PEM
format. These option values are parameters
of SSL_CTX_load_verify_locations().
Default values of these options are set
by X509_get_default_cert_file() and
X509_get_default_cert_dir().
WARNING: tls module does not do server identity check
as required on RFC 2595.
tls module does not consult certificate
revocation list (CRL) when checking server's
certificate (except perhaps from
directory given on option
"tls:trusted-ca-certificates-dir")
- Reimplemented elmrc variable "rand-file" on
"tls:" section as rc_DT_ESTR.
- Added check that given rand-file is readable.
- Reimplemented elmrc variable "rand-egd" on
"tls:" section as rc_DT_ESTR.
- When values fail them are replaced with "none".
Mark them changed so that it is saved to .elmrc.
That replaces default value with explicit "none"
if default value is not working.
- Changed that StreamInfo() takes also struct string
argument.
- Added function == SS_verify to StreamInfo()
- Fixed problem where elmrc options of shared
libraries was not initialized when they was
printed with "elm -w".
- Added possible fix to get_option_type()
- Changed add_bytes() on elmregister so that
it reports filename on failed read.
- Changed add_bytes() so that it handles
unexpected EOF better.
- If configure is set DEFAULT_MAILER_PATH to "none"
and it is on use, print message runtime:
Give "mailer" on RC file: <path>
- Don't print
Mailer path for unknown not specified
when initializing default mailer.
- Fixed compilation warning on Ubuntu 9.04
mailer.c: In function "init_default_mailer":
mailer.c:827: warning: assignment discards
qualifiers from pointer target type
- Fixed compilation warning on Ubuntu 9.04
localmbx.c: In function "mbx_dotlock_file":
localmbx.c:1915: warning: ignoring return
value of "write", declared with
attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
pop.c: In function "update_uidls":
pop.c:258: warning: ignoring return value
of "ftruncate", declared with attribute
warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
file_util.c: In function "elm_chown":
file_util.c:327: warning: ignoring return value
of "chown", declared with attribute
warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
opt_utils.c: In function "gethostdomain":
opt_utils.c:45: warning: ignoring return value
of "fgets", declared with attribute
warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
panic.c: In function "print_str_err":
panic.c:54: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
panic.c: In function "print_num_err":
panic.c:69: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
panic.c: In function "panic":
panic.c:117: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
panic.c: In function "panic":
panic.c:125: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
syscall.c: In function "start_run":
syscall.c:655: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:662: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:688: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:695: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:708: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:720: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:725: warning: ignoring return value of "write",
declared with attribute warn_unused_result
syscall.c:733: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
pgp_decode.c: In function "pgp_decrypt_init":
pgp_decode.c:415: warning: ignoring return value
of "write", declared with attribute warn_unused_result
pgp_decode.c:417: warning: ignoring return value
of "write", declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
canceled_mail.c: In function "index_initialize":
canceled_mail.c:1435: warning: ignoring return value
of "ftruncate", declared with attribute
warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
pgp.c: In function "pgp_encrypt":
pgp.c:657: warning: ignoring return value of "pipe",
declared with attribute warn_unused_result
pgp.c:873: warning: ignoring return value of "write",
declared with attribute warn_unused_result
pgp.c:874: warning: ignoring return value of "write",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
syscall.c: In function "fork_execl":
syscall.c:245: warning: ignoring return value of
"write", declared with attribute warn_unused_result
syscall.c:253: warning: ignoring return value of
"write", declared with attribute warn_unused_result
syscall.c:276: warning: ignoring return value of
"write", declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
answer.c: In function "main":
answer.c:183: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:192: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:201: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:210: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:220: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:230: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:240: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:249: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:259: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:268: warning: ignoring return value of "fgets",
declared with attribute warn_unused_result
answer.c:292: warning: ignoring return value of "system",
declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
elmrc-write.c: In function "main":
elmrc-write.c:259: warning: ignoring return value of
"ftruncate", declared with attribute warn_unused_result
- Fixed compilation warning on Ubuntu 9.04
elmlibregister.c: In function "main":
elmlibregister.c:242: warning: ignoring return value
of "ftruncate", declared with attribute
warn_unused_result
New files:
lib/misc/mimesend.c
lib/mailer/mime_encode.c
SUMMARY: This patch collects backported fixes from
Elm ME+ 2.5 and fixes character set of %s
expansion on attribution string.
[ This patch is branch from the Elm 2.4ME+ line. ]
- Fix sorting directory messages of local directory
- Do not use erase_a_char() on enter_helper()
-- usage is not correct.
- Fixed debug output on scommon_ClearScreen()
- Fixed do_movement1(). This fixes updating of attachment
list when pressing UP key and current attachment is
changed to previous page (when there is more attachments
than to one page fits.)
- Added rewinddir() to browser_fill_local()
- Fixed some unknown command messages in case of
non-letter key is pressed.
- Fixed character set of %s expansion on attribution string.
- Fixed redraw loop on E)xtended command -screen on resizing
of screen.
- Fixed possible problem on mbx_move_temp_file()
where stat and lstat buffers are used when they are
uninitialized (when syscall failed).
- Fixed problem where saving options did not
uncommented changed userlevel (or any other enumerated
variable).
- Fixed problem where turning OFF "M)enu display " on
options editor do not disabled menu when it is
returned to mailbox screen.
- Fixed problem where error and transient messages did
not handled UTF-8 text correct.
- Added possible fix for menu_set_default()
- Added redrawing of browser window if enter is rejected,
because select_dir_item() trashes directory listing.
- Fixed so that ioctl() on cur_ScreenSize() uses terminal_fd
variable and not constant 1 as file description.
[ This patch is branch from the Elm 2.4ME+ line. ]
SUMMARY: This patch fixes crash on "Metamail selection"
screen, error on submission (a kind of SMTP)
protocol implementation and a couple of valgrind
reported memory leaks.
- Fixed crash on "Metamail selection" screen, when RIGHT
key is pressed.
- Fixed valgrind reported memory leak:
4,502 (60 direct, 4,442 indirect) bytes in 2 blocks
are definitely lost in loss record 29 of 31
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195CE8: safe_malloc (safemalloc.c:48)
by 0x81A3A38: malloc_string (string.c:80)
by 0x81A4CB2: cat_strings (string.c:514)
by 0x81223D8: browser_cat_local (localmbx.c:1074)
by 0x8134F81: give_edit_buffer (savefolder.c:3698)
by 0x8072417: gb_browser (browser.c:601)
by 0x8090892: enter_helper (in_utils.c:816)
by 0x8073071: run_browser (browser.c:1025)
by 0x807327A: folder_browser (browser.c:1100)
by 0x80AA224: OpenMailbox (openmailbox.c:38)
- Fixed valgrind reported memory leak:
4,448 (52 direct, 4,396 indirect) bytes in 1 blocks
are definitely lost in loss record 25 of 30
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195CF8: safe_malloc (safemalloc.c:48)
by 0x8132218: browser_malloc2 (savefolder.c:2455)
by 0x813229A: browser_malloc (savefolder.c:2481)
by 0x813251C: new_browser (savefolder.c:2571)
by 0x80AA1B6: OpenMailbox (openmailbox.c:30)
- Do not malloc empty array on ascify_string()
- Fixed valgrind reported memory leak:
10 bytes in 5 blocks are definitely lost in loss record 1 of 23
at 0x401C422: malloc (vg_replace_malloc.c:149)
by 0x8195D08: safe_malloc (safemalloc.c:48)
by 0x8172A65: hdr_text (hdrdecode.c:502)
- Fixed bug where "mailer = submission" was giving
RET parameter to RCPT command when it must be on
MAIL command on submission (or SMTP) protocol.
[ This patch is branch from the Elm 2.4ME+ line. ]
SUMMARY: This patch fixes errors on cat_strings(),
ascii_need_quote(), string_need_quote(),
delete_alias_files() and hdr_comment().
Also this patch prevents recursive
mail commands via "m)ail -> view) folder"
and adds OpenDocument formats to mime.types
-file.
- Fix small error on cat_strings() where wrong charset
name is printed when printind is specified.
- Fix small error on ascii_need_quote() and
string_need_quote on melib/mime_param.c. Both was
missing [] characters.
- Fixed error message on delete_alias_files()
- Added following new types to doc/mime.types file:
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.chart-template
application/vnd.oasis.opendocument.formula
application/vnd.oasis.opendocument.formula-template
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.graphics-template
application/vnd.oasis.opendocument.image
application/vnd.oasis.opendocument.image-template
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.presentation-template
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.spreadsheet-template
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.text-master
application/vnd.oasis.opendocument.text-template
application/vnd.oasis.opendocument.text-web
- Fixed the error where hdr_comment() was not correctly
dequoting \ -escaping.
- Command sequence
m)ail -> view) -> ' ' -> m)ail
and
m)ail -> view) -> ' ' -> b)ounce
and
m)ail -> view) -> ' ' -> r)eply
and
m)ail -> view) -> ' ' -> f)orward
and
m)ail -> view) -> ' ' -> g)roup reply
and
m)ail -> view) -> ' ' -> Mailing list I)nfo
and
m)ail -> view) -> ' ' -> ^K (Mail PGP public key)
and
m)ail -> view) -> ' ' -> generic R)eply
were possible. These were sending mail (recursively).
Added flag SHOWMSG_NOMAIL which disables
mailing commands.
Also disallowed
m)ail -> view) -> ' ' -> V)iew digests
because there also are mailing commands.
- Added possible fix for get_word_from_string()
[ This patch is branch from the Elm 2.4ME+ line. ]
SUMMARY: This patch fixes the redraw loop on the Mailcap program
selection screen, fixes a double free() on search, and fixes
filename handling on attach_save().
- "The attached email triggers a bug in ELM 2.4ME+ PL123.
The problem is that reading this email message causes
continuous redraw of the screen, and you have to kill elm
to exit. I think it is caused by too many attachments."
Reported by: Bruce Momjian <bruce@momjian.us>
> Fixed "Metamail selection" / "Mailcap program selection"
prompt screen.
- "I'm attaching the mailbox consisting of just this message.
To reproduce the problem, save it, uncompress, and try
searching through the body of the message (using elm) for
a string, such as "iegor":
bunzip /tmp/spam-crash.bz2
elm -f /tmp/spam-crash
//
iegor
The double-free happens in the following stack:
(gdb) where
#0 0x0000000800a9855c in kill () from /lib/libc.so.6
#1 0x0000000800a973ed in abort () from /lib/libc.so.6
#2 0x0000000800a36ae5 in _UTF8_init () from /lib/libc.so.6
#3 0x0000000800a36b1c in _UTF8_init () from /lib/libc.so.6
#4 0x0000000800a37abd in _UTF8_init () from /lib/libc.so.6
#5 0x00000000004978f0 in arrange_decoded ()
#6 0x000000000049ee1b in simple_mime_walk ()
#7 0x000000000049ecf7 in simple_mime_walk ()
#8 0x000000000046bae3 in mc_match_in_text_mbx ()
#9 0x0000000000469ced in mcommon_match_in_text ()
#10 0x0000000000457cfa in pattern_match ()
#11 0x00000000004351fe in motion ()
#12 0x0000000000435945 in mailbox_command ()
#13 0x0000000000445ae6 in compute_visible ()
#14 0x0000000000446560 in main_messages_menu ()
#15 0x00000000004347fd in main ()"
Reported by: Mikhail T. <mi+elm@aldan.algebra.com>
> Fixed valgrind reported invalid free:
Invalid free() / delete / delete[]
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8195D38: safe_free (safemalloc.c:104)
by 0x8105B6F: arrange_decoded (mime_decode.c:2532)
by 0x8111349: simple_mime_walk (mimewalk.c:150)
by 0x811118C: simple_mime_walk (mimewalk.c:94)
by 0x80C880B: mc_match_in_text_mbx (message_pattern.c:417)
by 0x80C5D93: mcommon_match_in_text (mcommon.c:211)
by 0x80AE09E: pattern_match (pattern.c:438)
by 0x8081755: motion (elm.c:1744)
by 0x807FA44: mailbox_command (elm.c:862)
by 0x80977BD: main_messages_loop (mailbox.c:233)
by 0x809822E: main_messages_menu (mailbox.c:634)
Address 0x4491350 is 0 bytes inside a block of size 20 free'd
at 0x401CFCF: free (vg_replace_malloc.c:235)
by 0x8195D38: safe_free (safemalloc.c:104)
by 0x8105B57: arrange_decoded (mime_decode.c:2528)
by 0x8111349: simple_mime_walk (mimewalk.c:150)
by 0x811118C: simple_mime_walk (mimewalk.c:94)
by 0x80C880B: mc_match_in_text_mbx (message_pattern.c:417)
by 0x80C5D93: mcommon_match_in_text (mcommon.c:211)
by 0x80AE09E: pattern_match (pattern.c:438)
by 0x8081755: motion (elm.c:1744)
by 0x807FA44: mailbox_command (elm.c:862)
by 0x80977BD: main_messages_loop (mailbox.c:233)
by 0x809822E: main_messages_menu (mailbox.c:634)
- "Not sure if you have fixed this in later releases but in ELM 2.4ME+
PL123 if I try to save a file attachment of type "image/jpeg" and the
file name already has extension "jpg" elm suggests the additional
extension "jpeg"."
Reported by: Bruce Momjian <bruce@momjian.us>
> Filename was not correctly recorded on attach_save()
SUMMARY: This release collects patches Elm 2.4ME+ PL123a -
PL123f. This release fixes a bug in the c)hange
folder command that caused lost mail. Some other
bugs are also fixed. This release adds some new
sub-commands to the elmregister -command.
Elm 2.4ME+ is no longer main line (trunk or main branch).
- Interpret output of PGP according of mail charset
(that is actually done only when that body part
was text ... )
- If l)imit command was used, and then Eo) [o)pen mailbox to
current view] was used, wrong messages was shown on
limited display. Now number of selected message is
recalculated after new mailbox is added.
- Changed redraw handling on
"Keep unread messages in incoming mailbox?" question.
- Now "elmregister replay" recreates hard links also when
"-R" option is not used (-R option implies moving
installation to final place).
- Added missing subcommand to elmregister manual page.
- Changed "elmregister rpm-list" so that hard links are
listed. They are now listed with %ghost macro.
- Fixed bug where "elmregister replay -R ..." was setting
files to wrong owner (was used gid as uid) on some
situation, when file was copied.
- Signal failure on read_line() on lib/mbox/localmbx.c
if EOF occur before nothing is read.
- Fixed Configuration error on Ubuntu 6.06 (GCC 4.0.3)
- If after c)hange folder locking of new folder (mailbox)
failed, Elm was keeping open old folder, but temp
file of older folder (mailbox) was closed. That caused
corruption of mailbox.
* If "Folder unchanged." message was given, folder
was not closed.
* Folder was closed on "[Keeping all messages.]" case,
it does not need to be closed on here either.
> Do not call close_folder() on on real_save() at all.
Instead use unlock() on real_cave() ( as in done
if 'resyncing' was set ) .
* Actual closing of mailbox is done anyway with
leave_old_folder() which is called from free_storage()
> Splited leave_mbox() to sync_mbox() function
which never closes mailbox and close_cleanup_mbox()
which does closing (and may remove mailbox).
- "There were two adjacent spaces in the first
email subject line which were collapsed into
one space in the reply, which I think is legal.
Perhaps multiple spaces should be collapsed into
one for comparison, perhaps near
skip_ascii_head_from_string() in thread.c."
Suggested by: Bruce Momjian <bruce@momjian.us>
- "./usr/share/elm/elmregister replay -M all -R `pwd`"
was segfaulting when moving packgage to final place.
Fixed missing initialization on copy_dir().
Problem noted by: Peter Alfredsen <peteralf@tdcadsl.dk>
- Avoid error "./usr/local/lib/elmregister: [pick_one] '{' no arg 0"
when doing "./..../elmregister replay -M all -R `pwd`"
- Do not add textual=NULL when parsing syntax error
on update_expanded_from_edit_buffer()
- Fixed case where changing alias two times without resync
caused that alias name was truncated.
- Hack creation of some missed directories during installation.
- Fixed message
[ Use 'Rl' to reply to list or 'I' for list info. ]
on case when there is header
List-Post: NO (posting not allowed on this list)
- Fix panic
STRING PANIC in cs_unknown.c:1991:cs_estimate_clip_unknown
>>>printable_len not supported
on some case when elmrc option locale-charsets is used.
- Fixed some problems with Configure on ubuntu.
- When
locale-charsets = UTF-8
was effect, Elm ME+ was printing
[ Charset US-ASCII unsupported, converting... ]
> Be sure that cs_unknown gives flag CS_universal_set
for UTF-8 as cs_utf was giving.
- Avoid error message
"Failed save message to folder XXXX"
when saving mail from V)iew digest -command
and embedded mail do not end to newline.
- Fixed compilation on ubuntu (GCC 4.0.2).
- "troubles when moving from pgp5 to gpg - cannot
encrypt. Seems parsing of gpg --list-public-keys
is broken in gnupg 1.4.5. syscall to gpg paramter
8 after receipient is <2> ?!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Added support for newer gpg versions
- "last gpg pathes you sent to me work only on some keys!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Elm ME+ was adding < > around of address (not related
to patch) and therefore gpg did not found key when
on key there was no < > around addresses. Removed
adding of < >.
- Elmrc option verify-local-address did worked only for
'address' but not for '<address>'. Fixed that.
NOTE: However verify-local-address works only when
mailer option verify=yes works.
Elmrc option
mailer=sendmail; verify=yes
works only when sendmail is setuid root. Use
instead elmrc option
mailer=submission; verify=yes
- Fixed crash when om elmrc have
### pgp2 = none
"Is that "&&" correct? Looking at other "none" comparisons
in the file, it isn't. Patch attached, and problem
confirmed fixed."
From: Bruce Momjian <bruce@momjian.us>
- Option -w did not rebuild .elm/mime.types although error
message asked to use -w option.
- Error message did not mentioned .elm/mime.types. Added it.
- Fixed incorrect generation of elm.mimecharsets file during
installation (elm.mimecharsets.NEW was ok).
- Avoided error message
bin/elmregister: [trim_list] Bad command letter: s
- Fixed valgrind reported memory leak:
77 bytes in 2 blocks are definitely lost in loss record 11 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40DDB39: elm_vmessage (output.c:1302)
by 0x40DE1B1: elm_message (output.c:1481)
by 0x809F789: set_folder_window_title (screen.c:82)
- Fixed valgrind reported memory leak:
57 bytes in 1 blocks are definitely lost in loss record 8 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40FBE18: strmcat (strmcpy.c:40)
by 0x40416EC: strXcat (terminal.c:91)
by 0x4043F64: terminal_set_title (terminal.c:1624)
by 0x80B1865: set_terminal_titles (termtitle.c:59)
- "Looking at my incoming mail I noticed that there is no
space (empty line) between the end of one message and the
beginning of the next message".
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> This is regression of Elm 2.4ME+ PL123 (25) or
Elm 2.4ME+ PL122j (25). With IMAP fix from 122j
content length does not include ending empty line of mail.
Fixed mbx_mark_keep_normal() for that.
WARNING: On MMDF case mbx_mark_keep_normal() is not fixed
and is probably broken.
- Patchlevel variable for PL 123 (25) did not included (25).
Re-added it, because it is still other places. Perhaps that
(25) should be removed. It have little point.
- elm.rc may include 'unidata = none'. Avoid failing of
'elmregister replay' because of chmod is failing.
> Instead do chmod on elmunidata
- Same also for 'bindata = none' (do chmod on elmbindata).
- Some -traditional fixes.
- Added command "elmregister list" to generate files
listing suitable for tar command. Names on list are
NL separated.
- Added command "elmregister list-directories" to generate
directory listing.
[ This patch is branch from the main line. ]
- "./usr/share/elm/elmregister replay -M all -R `pwd`"
was segfaulting when moving packgage to final place.
Fixed missing initialization on copy_dir().
Problem noted by: Peter Alfredsen <peteralf@tdcadsl.dk>
- Avoid error "./usr/local/lib/elmregister: [pick_one] '{' no arg 0"
when doing "./..../elmregister replay -M all -R `pwd`"
- Do not add textual=NULL when parsing syntax error
on update_expanded_from_edit_buffer()
- Fixed case where changing alias two times without resync
caused that alias name was truncated.
- Hack creation of some missed directories during installation.
- Fixed message
[ Use 'Rl' to reply to list or 'I' for list info. ]
on case when there is header
List-Post: NO (posting not allowed on this list)
[ This patch is branch from the main line. ]
- Fix panic
STRING PANIC in cs_unknown.c:1991:cs_estimate_clip_unknown
>>>printable_len not supported
on some case when elmrc option locale-charsets is used.
- Fixed some problems with Configure on ubuntu.
- When
locale-charsets = UTF-8
was effect, Elm ME+ was printing
[ Charset US-ASCII unsupported, converting... ]
> Be sure that cs_unknown gives flag CS_universal_set
for UTF-8 as cs_utf was giving.
- Avoid error message
"Failed save message to folder XXXX"
when saving mail from V)iew digest -command
and embedded mail do not end to newline.
[ This patch is branch from the main line. ]
- Fixed compilation on ubuntu (GCC 4.0.2).
- "troubles when moving from pgp5 to gpg - cannot
encrypt. Seems parsing of gpg --list-public-keys
is broken in gnupg 1.4.5. syscall to gpg paramter
8 after receipient is <2> ?!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Added support for newer gpg versions
- "last gpg pathes you sent to me work only on some keys!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Elm ME+ was adding < > around of address (not related
to patch) and therefore gpg did not found key when
on key there was no < > around addresses. Removed
adding of < >.
- Elmrc option verify-local-address did worked only for
'address' but not for '<address>'. Fixed that.
NOTE: However verify-local-address works only when
mailer option verify=yes works.
Elmrc option
mailer=sendmail; verify=yes
works only when sendmail is setuid root. Use
instead elmrc option
mailer=submission; verify=yes
[ This patch is branch from the main line. ]
- Fixed crash when om elmrc have
### pgp2 = none
"Is that "&&" correct? Looking at other "none" comparisons
in the file, it isn't. Patch attached, and problem
confirmed fixed."
From: Bruce Momjian <bruce@momjian.us>
- Option -w did not rebuild .elm/mime.types although error
message asked to use -w option.
- Error message did not mentioned .elm/mime.types. Added it.
[ This patch is branch from the main line. ]
- Fixed incorrect generation of elm.mimecharsets file during
installation (elm.mimecharsets.NEW was ok).
- Avoided error message
bin/elmregister: [trim_list] Bad command letter: s
- Fixed valgrind reported memory leak:
77 bytes in 2 blocks are definitely lost in loss record 11 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40DDB39: elm_vmessage (output.c:1302)
by 0x40DE1B1: elm_message (output.c:1481)
by 0x809F789: set_folder_window_title (screen.c:82)
- Fixed valgrind reported memory leak:
57 bytes in 1 blocks are definitely lost in loss record 8 of 22
at 0x40179FF: realloc (m_replacemalloc/vg_replace_malloc.c:306)
by 0x40E96C6: safe_realloc (safemalloc.c:64)
by 0x40FBE18: strmcat (strmcpy.c:40)
by 0x40416EC: strXcat (terminal.c:91)
by 0x4043F64: terminal_set_title (terminal.c:1624)
by 0x80B1865: set_terminal_titles (termtitle.c:59)
[ This patch is branch from the main line. ]
- "Looking at my incoming mail I noticed that there is no
space (empty line) between the end of one message and the
beginning of the next message".
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> This is regression of Elm 2.4ME+ PL123 (25) or
Elm 2.4ME+ PL122j (25). With IMAP fix from 122j
content length does not include ending empty line of mail.
Fixed mbx_mark_keep_normal() for that.
WARNING: On MMDF case mbx_mark_keep_normal() is not fixed
and is probably broken.
- Patchlevel variable for PL 123 (25) did not included (25).
Re-added it, because it is still other places. Perhaps that
(25) should be removed. It have little point.
- elm.rc may include 'unidata = none'. Avoid failing of
'elmregister replay' because of chmod is failing.
> Instead do chmod on elmunidata
- Same also for 'bindata = none' (do chmod on elmbindata).
Note: You must create directories
lib/mbox
src/url
src/block
src/list
lib/misc
utils/readmsg
before applying this patch!
- Added view folder command to pre-send menu.
This allows attaching messages from current mailbox
to mail.
- Some changes on mail() -function.
- O)verride charset -command did not have effect on
non-MIME messages.
> Now O)verride charset value is used also on non-MIME
messages.
- Characters on "Change to which folder:" -prompt
was echoed to wrong place after
"Already reading that folder!" -message.
- "I configured ELM 2.5 alpha 5 just like my ELM 2.5
alpha 4 that compiles nicely and got the following
error from init.c on Solaris 8 gcc.
<...>
In file included from init.c:14:
../../hdrs/shared_imp.h:118: parse error before `*'
init.c:18: `rc_DT_SHARED' undeclared here (not in a
function)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Elm ME+ failed to compiled when USE_DLOPEN and SHARED_LIBS
was not defined.
- browser_descend_local() did not handle correctly the case
where the given filename did not include path (and
there was a directory already selected.)
- "I tried your patch for ELM 2.5 alpha5 and it
failed to compile on Solaris. So tried the same thing with the
new ELM 2.5 alpha6. Same thing."
"cs_wfallback.c: In function `init_fallback':
cs_wfallback.c:165: `Debug' undeclared (first use in
this function)"
Reported by: James Corey <ploveregg@yahoo.com>
> Moved DEBUG_VAR(Debug,__FILE__,"charset")
outside of #if 0
- On some cases filename -parameter was generated twice to
Content-Disposition -header.
- Tagged flag of current message was not cleared
on V)iew digest command.
- Allow canceling
Already have selection criteria - add more?
prompt with Ctrl-C (interrupt character) on systems
which supports POSIX termios.
- Let Configure locate ar and nm (and ranlib) instead
just using PATH
- Let makefiles use ar -command located by Configure
- Fix some compilation warnings on SunOS 5.10
- Moved curses.h and term.h including from curses.c
to def_screen.h before including termios.h.
- SunOS 5.10 (Solaris) has problematic prototype
for tputs() and dos not have prototype for tgoto()
when __STDC__ is defined. Added some workarounds.
* This workaround seems not be required when compiling
with gcc
- Use both curses.h and term.h on SunOS (Solaris),
not only term.h
- Do not use USGNAMES on SunOS
- iconv() on SunOS uses 'const char **inbuf' argument.
* NOTE: Changes for SunOS 5.10 are only compile tested.
It is not tested that they produce working code.
- Fix USGNAMES compilation.
- Fixed valgrind reported error on case
elm -i non-existing-file address
Conditional jump or move depends on uninitialised value(s)
at 0x808B83E: reset_parts (mime.c:105)
by 0x808B9D6: free_mime_send_info (mime.c:144)
by 0x80871B9: mail (mailmsg2.c:1351)
by 0x8083910: send_msg_middle (mailmsg1.c:589)
- Ctrl-T {pattern} did not update tags on messages
on the screen when visible messages was limited
with l)imit -command.
- Enchance redrawing on
Delete message?
"received" folder not available, continue leaving folder?
Move read message to "received" folder?
-prompts.
- Fix -Wtraditional warning:
mailer.c:1644: warning: non-static declaration for
`sendmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1902: warning: non-static declaration for
`submitmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1932: warning: non-static declaration for
`execmail_mailer_backend' follows static
- Fix -Wtraditional warning:
../../hdrs/elmlib.h:2278:21: warning: function-like
macro "special" must be used with arguments in traditional C
> special() -macro is removed, it seems not be used.
( No other -Wtraditional warnings are fixed. )
- Fixed some -Wuninitialized compilation warnings.
- Ctrl-T 'all' did not update tags on messages
on the screen when visible messages was limited
with l)imit -command.
- Ctrl-T 'flagged' did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Some minor fixes.
- Fix initialization error on lib/read_rc.c (uses $USER
instead of $HOME) when pw_dir is NULL.
- "tried PL122 - and compiled with new openssl-0.9.8 !:
cc -I../include -I/opt/ssl/include -fPIC -O3 -c pop.c -o pop.o
In file included from /opt/ssl/include/openssl/crypto.h:131,
from /opt/ssl/include/openssl/comp.h:5,
from /opt/ssl/include/openssl/ssl.h:176,
from elmtls.h:11,
from pop.c:10:
/opt/ssl/include/openssl/ossl_typ.h:146: parse error before `2'"
"a define collision between elm and openssl seams to be
occurring! The token "STORE" is used on both sources!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Changed order of includes.
- Do not add parsed (to, from, cc) addresses twice
to header_rec. That occured when mail was not downloaded
IMAP mailbox was opened and headers was parsed second time
when mail was opened.
- Create elm.filelist and parent directories of elm.filelist
before starting subprocess on "elmregister master".
- Moved mailbox related code from libelmme-base.so to
libelmme-mbox.so.
- Removed provides_shared_CT
- When saving mail forder time on "From " -separator
line was shifted by one hour if it was on different
zone than current time (ie. on daylight saving time
versus normal time).
- Folder browser was showing wrong entry on prompt line
after TAB -character.
- Moved some showmsg loops from elm.c to new file
showmsg_1.c
- Changed implementation of elmrc option "extra-mailbox-dir".
- Changed implementation of elmrc option "attachment-dir".
- Changed implementation of elmrc option "gpg".
- Changed implementation of elmrc option "metamail".
- Changed implementation of elmrc option "pgp2".
- Changed implementation of elmrc option "pgp5-dir".
- Changed implementation of elmrc option "print".
- Fix expensive debug loop on imap.c (so that loop is not run
if dubugging is not used.)
- Moved some code from lib/charset.c to lib/mparse.c
- UTF-8 is now required character set on code as is
US-ASCII.
- When catenating strings prefer UTF-8 charset instead
of display charset
- Give error if -s 'subject' option is given several
times to Elm.
- On batch mode standard input is read for mail
only when -i (include file) option is not given.
(but actually -i option is not allowed on batch
mode.)
- Added mp_list_set_anon() and mp_lookup_anon() to
src/screen/menu_param.c.
- some cleanup on mailmsg1()
- Changed default of elmrc variable "names" to NO
- Removed wra_ReadCh() from src/screen/
- Removed ReadCh (but not menu_ReadCh())
- Removed cur_ReadCH from src/screen/curs_input.c
- Added to menu_ReadCh() / menu_ReadCh2() flag
READCH_poll, this waits one second for character.
If character is not given or POLL_METHOD is
not set, this returns TIMOUT_MARK as flag (or character)
- Clear redraw flag of prompt area (ie. clear prompt
area) after menu_redraw_children() only if redraw flag is set.
- Fix redraw handling on do_pipe
- "elm -vvv" was printing wrong output:
Mailer: unknown; path="/usr/sbin/sendmail"
instead of
Mailer: sendmail; path="/usr/sbin/sendmail";
add-from="dont";
supported-bodytype="8bit";
supports-dsn="yes"
(actually on one line)
- Moved main messages menu loop to src/mailbox.c from
src/elm.c
- exit_prog() no longer call leave but instead
returns 1 if caller should exit.
- quit() no longer call leave but instead
returns 1 if caller should exit.
- exit_prog() is renamed to exit_mailbox()
- Added some support for RFC 1738 URL -syntax
RFC 1738: Uniform Resource Locators (URL)
- Added some support for RFC 1808 URL-syntax
RFC 1808: Relative Uniform Resource Locators
- Added -O 'url' (open url) option to Elm.
Error is given if this option is given several
times.
WARNING: This option does not ask any confirmation.
- Added --confirm-url option. This asks confirmation
for url given on -O option.
- Added support for RFC 2368 mailto -urls.
- It is unclear what character set is used
on URLs. This especially effects subject
header and body pseudo header on mailto
url. Following rules are used:
- If URL includes non-ascii characters,
charset of (decoded) URL is implied
charset of URL
- If URL includes %XX encoded characters
> %7F (ie. non-ascii) charset of
decoded URL is UTF-8. This means that
%XX encoding is assumed to be use
UTF-8 character set.
- Note that these two rules are on
conflict if some, but not all non-ascii
characters are % -encoded.
- Added dummy handler for http -URLs.
- Added some support for imap -URLs.
This support is incomplete and does not fully
follow RFC 2192.
- ;AUTH= is not supported
- ;TYPE= is not supported
- ;UIDVALIDITY= is not supported
- ;SECTION= is not supported
- ;UID= is not supported
* Basically only imap mailbox can be specified,
not indivual message or list of messages (search result).
That is like
imap://user@full.hostname/inbox
- imap server can not be without mailbox.
That is like
imap://user@full.hostname/
it is not currently available.
- Command
elm -O imap://user@full.hostname/inbox
can be used. That open imap folder
similarly than command
elm -f user@full.hostname:inbox
- RFC 2192 says that native separator of imap
is used as hierarchy separator. This implementation
accepts URL separator (/) as hierarcy separator
(even when native separator differ.)
- Numbers 0-9 are also valid for imap atom. No need to
convert parameter to string or literal.
- Added RFC 2369 headers to known headers:
List-Help, List-Subscribe, List-Unsubscribe,
List-Post, List-Owner, List-Archive
- Added
"List-ID:", "List-Help:", "List-Subscribe:",
"List-Unsubscribe:", "List-Post:", "List-Owner:",
"List-Archive:"
to default weedout list.
- RFC 2919 List-ID header is parsed.
- RFC 2369 List-help, List-Unsubscribe,
List-Subscribe, List-Post, List-Owner and
List-Archive are parsed.
- Added Generic R)eply -command. That forms
following subcommands:
Ra Reply to all
Rl Reply to a mailing list
Ro Reply to the owner of a mailing list
Rt Reply to the author of a message
- Added Mailing list I)nfo -command.
Il Mail a message to a mailing list
Io Mail a message to the owner of a mailing list
Ih Mailing list help
Ia Mailing list archive
Is Subscribe a mailing list
Iu Unsubscribe a mailing list
Note that most of these commands are only able to send mail,
so only mailto: -urls works.
- Commands
Ih Mailing list help
Ia Mailing list archive
Is Subscribe a mailing list
Iu Unsubscribe a mailing list
accepts also (subset of) imap: -urls. These commands
cause that a new mailbox is entered (visited) when
imap: -url refers to whole mailbox. Current
mailbox is not closed so this works differently
than c)hange folder -command. Also when the mailbox
visited is left, messages are not moved to the =received
folder. Commands that are available when visiting
a mailbox via url are somewhat limited (changing of
folder for example is not available). Actually
probably command
Ia Mailing list archive
makes sense from these.
- When remote url is referenced, elm asks confirmation
from user before entering mailbox/folder.
- Also anonymous imap urls such as
List-Archive: <imap://full.hostname/inbox>
are supported.
- Added common movement routine to src/movement.c.
This is used by src/attach_menu.c and src/list/select.c
- Made some changes to attachment screen.
- "I built your latest elm today and came across a smail
issue as I build it on several architectures from the
same source tree. I found make clean fails to remove
utils/reghelper.o which leads to a failure to link
obvously..."
Reported by: janjaap@stack.nl (Janjaap van Velthooven)
> Added reghelper.o to UTIL_OBJ
- Removed cur_Write_to_screen()
- Removed cur_PutLineX()
- 'V' - command (View digest as mailbox) to help.
- Added 'E' as E)xtended command -prefix.
- Added 'Ed' as duplication removal mode.
Duplicare removal requires that messages have Message-ID.
When duplicates are collected also some other headers than
Message-ID is checked that they are same.
Duplicate removal does not delete messages but shows
duplicates as one message on mailbox menu. Status changes
are copied to all duplicates when message is read, tagged,
flagged or marked for deletion.
- NOTE: Mailing lists are not currently supported.
Specially duplicates are not currently removed
if mail has any List-* -header.
- Also on duplicate removal mode folder state does not
work and therefore commands which use readmsg. On
duplicate removal mode pipe (|) command is not available.
- Reimplemeted thread sorting (old code did not
work with duplication removal mode.)
* NOTE: threads are still based on subject (as on
old thread sorting.)
- Added 'Et' as view t)hreads -command. On viewing
thread return can be used to select particular
thread or 'd' can be used to mark all messages of
thread to be deleted and 'u' can be used to
mark all messages of thread to be undeleted.
* NOTE: It is not possible to delete threads.
Even when all messages are removed from thread
(when messages are actually deleted via resync ($)),
thread is still visible if 'Et' command is used.
- Added elmrc option "thread-sortby". This specifies
sorting order for thread view. Possible values
are "sent" and "subject" (also "reverse-sent"
and "reverse-subject").
- If "unstable-reverse-thread" is set, reverse-sent
sorting of "thread-sortby" is based on lastest
message on thread. Therefore thread moves to new
location, when new message arrives to thread.
- Some code changes on src/messages/
- Moved show_message_status from lib/mbox/mbox.c
(originally from src/screen.c)
to src/messages/status_common.c
- Moved status handling from src/menu_common/mailbox.c
to src/messages/status_common.c. Routines on
src/menu_common/mailbox.c does just forwarding.
- Removed adds_only argument from newmbox_1(). That is
always FALSE. New mails are read with read_new_mails()
function.
- Added "Eo" as o)pen mailbox to current view -command.
This works similarly with several -f options on command
line. That command opens new mailbox without closing
current mailbox.
- When displaying some text/plain parts inside of
multipart/mixed they are catenated without adding
"[ Part #X/X: ... " text between them. Specially
allows body part to change inside of line. That
should allow changing a charset inside of line.
* RFC 2046 says:
"NOTE: The CRLF preceding the boundary delimiter
line is conceptually attached to the boundary so
that it is possible to have a part that does not
end with a CRLF (line break)."
- Some code changes on content-transfer-encoding
decoding routines.
- State routines did not handle the situation where
charset of mail changed in the middle of the line.
Now current line buffer is converted to new charset
in that case.
- Added V)iew digest as mailbox
to 'after paging' (showmsg_c) commands.
- On A)ssemble message fragments -command menu there
is "o)ptions" -command, but actual command was missing.
Added 'o' to command loop.
- On digest viewing menu there is "o)ptions" -command,
but actual command was missing. Added 'o' to command loop.
- Removed valid_option_type()
- Removed charset_valid_magic()
- Removed valid_stream()
- Moved some code, which is used only by elm and config file
parsing tools, from libelmme-base.so to libelmme-misc.so.
- Moved lib/mediatype.c from libelmme-base.so to
libelmme-misc.so. It seems to be used only on Elm
so it should not be on library at all.
- Changed load_terminal_map() to use malloc_gets()
instead of fgets()
- Added load_mime_types_map() to libelmme-misc.so
- Added dump_mime_types_map() to libelmme-misc.so
- Added new tool elmmimetypes, which outputs
mime.types or elm.mimetypes file.
- Now elm.mimetypes file is generated to elm's
library directory during installation. During
Configure file goes to bin/elm.mimetypes.
- Now mime.types file may include magic numbers
or signature (pattern).
- It is recommended that both magic numbers and
extension is given for mime types.
- doc/mime.types is updated.
- Builtin mime types map includes now magic numbers
so these file extensions does not match if the file
content does not match the magic numbers (or file
signature).
- Changed handling of elm.mimetypes and mime.types
- If charset is defined on some other file than
elm.mimetypes or mime.types, these definitions
are not moved.
- Removed "compatcharsets" (marked as obsolete)
- Removed "iso646-charsets" (marked as obsolete)
- Moved some code from lib/charset.c to lib/misc/charset.c
- Elmcharset option -c merges elm.mimecharsets or mime.charsets file
with file given as argument.
- Configure do no longer read elm.mimecharsets from
elm global library directory. Instead existing
elm.mimecharsets from elm global library directory
are merged during installation (with -c option on
elmcharsets).
- Option -N is removed from Configure
- Elmterminal option -c merges elm.terminalinfo or
terminal.info file with file given as argument.
- Configure does no longer read elm.terminalinfo from
elm global library directory. Instead existing
elm.terminalinfo from elm global library directory
is merged during installation (with -c option on
elmterminal).
- Elmmimetypes option -c merges elm.mimetypes or
mime.types file with file given as argument.
- Configure do no read elm.mimetypes from
elm global library directory. Instead existing
elm.mimetypes from elm global library directory
is merged during installation (with -c option on
elmmimetypes).
- New values without merging are written to
elm.mimetypes.NEW, elm.mimecharsets.NEW,
and elm.terminalinfo.NEW during installation.
- Configure reports on SunOS 5.10:
langinfo.h found, testing nl_langinfo(CODESET) support ...
nl_langinfo(CODESET) seems work, charset for C locale is 646
wchar.h found
So 646 need to be mapped to ASCII.
- Added elmrc option "check-type-pattern". If set
(default), mime types are checked, when paging
mail, agaist elm.mimetypes and mime.types. If content
does not match to any pattern (magic number) given
for type, that causes a warning. If on elm.mimetypes or
mime.types is any entry for type without pattern,
warning is NOT printed. If warning is printed,
confirmation is required. This mainly protects routines
on mailcap to get bogus types. Notice that this does
NOT protect metamail (if used).
- Added elmrc option "attachment-fix-extension".
If set (default), default file extension is set according
of mime type (appending after existing extension
of given filename).
- If either "attachment-fix-extension" or
"check-type-pattern", mime types are checked, when
saving mail, agaist elm.mimetypes and mime.types.
If content does not match any pattern (magic number)
given for type, that causes a warning.
- Default file extension is not provided, if
attachment content does not match mime type.
- When default extension is provided, file browser
adds that extension after enter is pressed. Then
user is asked to accept that extension by pressing
enter second time.
- Decoding of content-transfer-encoding of attachments of
attachment is changed. Now content-transfer-encoding
is decoded to temporary file and after that user is asked
about filename. The old behauviour was to decode
content-transfer-encoding directly to file given
by user. New behauviour is required for checking pattern
(magic number) of attachments.
- If content-transfer-encoding is unknown, default extension
is ".encoded".
- Folder and file browser now notices if only
directory name prefix is given (ie. name ending in /)
and asks confirm (second enter) of name before
accepting it.
- display_central_message() is called nowhere. Removed it
and replaced set_central_message() with lib_transient(),
- Small optimization for default_unidata()
- Small optimization for mail_gets()
- Small optimization for parse_body_routine()
- Small optimization for cs_clip_from_binary()
- Small optimization for string_cmp()
- Optimize find_header() by changing data structure.
- Changes on mbx_mark_keep_normal()
- Optimize mbx_copy_body_spool()
- Changed read_line on lib/mbox/localmbx.c
- cuserid() is not used so it needs not be in
lib/opt_utils.c either.
- removed pmalloc() and lib/pmalloc.c -- they are
not used
- Converted readmsg to use lib/mbox/mbox.c if
state file does not exist.
- Now readmsg works also for remote mailboxes
- readmsg no longer removes empty lines from the end
of message.
- Small change on folder state file format.
- Added elmrc option readmsg which tells path to readmsg
-command (used internally of elm).
> Meta expand provides:
+filename == file on mail folder directory
=filename == file on mail folder directory
%filename == file on mail folder directory
{rc}/filename == file on .elm subdirectory of home
{lib}/filename == file on Elm's global library directory
{etc}/filename == file on Elm's global configure
directory
{bin}/filename == file on Elm's binary installation
directory
And also same epansions than expand_env():
~/filename == file on home direccory
Environment variable components
- Moved encode.c from src/ to melib/
- Moved part of header_parse_helper() from
src/messages/header_alloc.c
to melib/parse_helper.c
- readmsg now outputs only the text only part of
a mail by default.
- Added -r (do raw output) option to readmsg.
- Pipe (|) -command now uses -r option on readmsg.
- Readmsg now decodes mime headers, if -r option is not used.
- p)rint -command is enabled again. It does something like
"readmsg | {print-command}". It was disabled on PL98 because
it printed raw mime data. Because readmsg no longer outputs
raw mime data, p)rint command can be enabled again.
However, it is quite useless. p)rint command now acts as
P)rint text -command.
- If "store" is given to elmrc option "show-header-errors",
header errors are not immediately printed. Letter 'h' is
shown as second status letter on that case.
- If mime part (or attached file) did not end in newline,
garbage from the next part was included in the end of that
part. That happened when the file had no LF in the end and
the attached file was not required to be
content-transfer-encoded.
- Fix return value of get_word_from_string()
- Elm ME+ failed to wrap mime encoded Subject: header
under 80 characters on some situations.
- If elmrc option "long-encoded-headers" is not set,
Elm ME+ tries to wrap mime encoded headers so
that encoded lines are shorter than 80 characters.
If elmrc option "long-encoded-headers" is set (default),
Elm ME+ tries to wrap headers that way that actual data
(without encoding) is shorter than 80 characters. This
produces over 80 character (and violates MIME) but
may produce nicer result when headers are displayed
with encoding decoded (if some part of header is not
encoded). This is mainly used on Subject: -header.
- Removed STATE_in_string from lib/state.c. It is not
used.
- Removed STATE_out_string from lib/state.c. It is not
used.
- Fix panic
SCREEN PANIC in screen.c:944:menu_set_default
>>>Not a main menu
when elm is called as
elm < /dev/null
- Fix segmentation violation -crash when elm is
called as
elm --mailbox-title=xxx -f x -f z
(when given folders do not exist.)
- Allow setting "receivedmail" elmrc option (normally
"=received") to "none". This disables
Move read messages to "received" folder? (y/n)
question. When "receivedmail" is set to "none", ">"
can not be used as folder name.
Requested by: Laura Kataja
- Allow setting "sentmail" elmrc option (normally
"=sent") to "none". When "sentmail" is set to "none",
"<" can not be used as folder name.
- If "sentmail" is set to "none", "copy" defaults to
OFF.
- Fix (or work around) error
Message contains bare newlines
when saving to some IMAP servers.
- Make little better decoding of MIME encoding
of subject.
- Changed spelling of "Millenium" to "Millennium".
Suggested by: Rob Kendrick <rjek@rjek.com>
- Removed lib/move_left.c. It is not used.
- Elm failed add / to tmp elmrc variable when
it was initialized from $TMPDIR
- "The attached patch to elm PL122 causes THREAD
sorting to go to the bottom of the mailbox if
there are no unread messages, instead of the top.
This is already done for sorts in mailbox order,
sent, and received order, but I use thread by
default, so this patch is helpful to me."
From: Bruce Momjian <bruce@momjian.us>
- Let elm accept 'kb' from termcap also as
backspace and not only VERASE value got
from tty.
- Allow marking messages deleted also with
delete key ('kD' from termcap).
- Let end key ('@7' from termcap) to go
to the end of the message list. Corresponding to
that the home key goes to the beginning of the
message list.
- Temporary copy for imap and pop folders
is not longer /tmp/mbox.user@host or
/tmp/mbox.user@host:tail. Instead it is
/tmp/mbox.$USER.host.XXXX.XXXX
- It is possible to use usernames which include
/ -character with IMAP -url syntax (/ need to be
URL escaped). For example
elm -O imap://dom%2Fuser%2Fmbx@server/INBOX
( Some exchange servers uses usernames like
dom/user/mbx )
- Fix crash when loading garbage spool folder
(ie. mailbox).
New elmrc options:
thread-sortby
check-type-pattern
attachment-fix-extension
long-encoded-headers
readmsg
New command line options:
-O Open url
--confirm-url Ask option
New tools:
elmmimetypes
New files:
src/view_folder.c
lib/mbox/Makefile.SH
lib/mbox/def_mbox.h
lib/mbox/init.c
lib/mbox/remote_mbx.c
lib/mbox/shared_mbox.c
hdrs/mboxlib.h
hdrs/state_imp.h
lib/mbox/state.c
lib/mbox/headers.c
hdrs/connection_imp.h
src/showmsg_1.c
src/url/Makefile.SH
src/url/def_url.h
src/url/url.c
src/url/url_element.c
lib/mparse.c
src/url/url_path.c
src/url/no_url.c
src/url/mailto.c
src/block/block.c
src/block/def_block.h
src/block/fileblock.c
src/block/stringblock.c
src/list/def_list.h
src/list/Makefile.SH
src/list/list.c
src/list/reply.c
src/list/select.c
src/list/info.c
src/movement.c
src/extended.c
src/duplicate_removal.c
src/messages/duplicate.c
src/messages/status.c
src/messages/status_common.c
src/openmailbox.c
lib/misc/Makefile.SH
lib/misc/def_misc.h
lib/misc/init.c
hdrs/misclib.h
lib/misc/terminal.c
lib/misc/mime_types.c
utils/elmmimetypes.c
doc/elmmimetypes.1
ConfTool/GenMimetypes
lib/misc/charset.c
src/url/http.c
src/messages/thread.c
src/thread.c
src/messages/thread_messages.c
src/view_one_thread.c
melib/type_check.c
utils/readmsg/Makefile.SH
utils/readmsg/def_readmsg.h
utils/readmsg/fstate.c
utils/readmsg/wrapper.c
hdrs/readmsg.h
utils/readmsg/folder.c
lib/mbox/error.c
melib/parse_helper.c
src/url/imap.c
src/mailbox.c
src/list/visit_mailbox.c
Moved files:
lib/mbox.c => lib/mbox/mbox.c
lib/localmbx.c => lib/mbox/localmbx.c
lib/savefolder.c => lib/mbox/savefolder.c
lib/imap.c => lib/mbox/imap.c
lib/pop.c => lib/mbox/pop.c
lib/mk_lockname.c => lib/mbox/mk_lockname.c
lib/realfrom.c => lib/mbox/realfrom.c
lib/forwarded.c => lib/mbox/forwarded.c
lib/header_cmp.c => lib/mbox/header_cmp.c
lib/expires.c => lib/mbox/expires.c
lib/parsarpdat.c => lib/mbox/parsarpdat.c
lib/getword.c => lib/mbox/getword.c
lib/mediatype.c => lib/misc/mediatype.c
utils/readmsg.c => utils/readmsg/readmsg.c
src/encode.c => melib/encode.c
Removed files:
lib/move_left.c
[ This patch is branch from the main line. ]
- Fix crash when loading garbage spool folder (ie. mailbox).
- Elm failed add / to tmp elmrc variable when
it was initialized from $TMPDIR
- Some compilation fixes on SunOS.
* NOTE: Changes for SunOS 5.10 are only compile tested.
It is not tested that they produce working code.
- tputs() workaround on Elm 2.4ME+ PL122d (25)
causes compilation warning on SunOS, if compiled
with gcc. Use workaround only when gcc
is not used.
[ This patch is branch from the main line. ]
- Mime encoding change on PL122j caused regression.
Specially folding (of Subject) did not replaced
space with folding but folding was appending after
space. Logically after folding there was two spaces.
- Specially Elm ME+ do not concate mime encoded
words to together when decoding them if there
is more than one space between.
> Fixed folding so that space is replaced with folding.
- Make little better decoding of MIME encoding
of subject. Specially allow more than one space
between mime encoded words.
- Changed spelling of "Millenium" to "Millennium".
Suggested by: Rob Kendrick <rjek@rjek.com>
* In my English to Finnish dictionary there is a word
"millenium". And there is no word "millennium" in
the dictionary. But apparently my dictionary is wrong.
[ This patch is branch from the main line. ]
- Elm ME+ failed to wrap mime encoded Subject: header
under 80 characters on some situations.
- Fix return value of get_word_from_string()
- Fix case where "Metamail selection" -screen actually
not prompted for metamail.
- Fix panic
SCREEN PANIC in screen.c:929:menu_set_default
>>>Not a main menu
when elm is called as
elm < /dev/null
- Fix segmentation violation -crash when elm is
called as
elm --mailbox-title=xxx -f x -f z
(when given folders do not exists.)
- Fix (or work around) error
Message contains bare newlines
when saving to some IMAP servers.
[ This patch is branch from the main line. ]
- If mime part (or attached file) did not end in a newline,
garbage from the next part (until the first LF) was included
in the end of that part. That happened when the file
or mime part didn't have an LF in the end and it was not
required to be content-transfer-encoded.
> Fixed copy_part()
[ This patch is branch from the main line. ]
- "I built your latest elm today and came across a smail
issue as I build it on several architectures from the
same source tree. I found make clean fails to remove
utils/reghelper.o which leads to a failure to link
obvously..."
Reported by: janjaap@stack.nl (Janjaap van Velthooven)
> Added reghelper.o to UTIL_OBJ
- Added 'V' - command (View digest as mailbox) to help.
- Added resort_mailbox() to leaving of A)ssemble message
fragments -command/mode. Otherwise main mailbox is
incorrectly sorted if new mail was arrived when A)ssemble
message fragments -mode was active.
- Fix possible redraw loop when prompting password
- On A)ssemble message fragments -command menu there
is "o)ptions" -command, but actual command was missing.
Added 'o' to command loop.
- On digest viewing menu there is "o)ptions" -command,
but actual command was missing. Added 'o' to command loop.
[ This patch is branch from the main line. ]
- Fix expansive debug loop on imap.c (so that loop is not run
if dubugging is not used.)
- Fix redraw handling on do_pipe
- "elm -vvv" was printing wrong output:
Mailer: unknown; path="/usr/sbin/sendmail"
instead of
Mailer: sendmail; path="/usr/sbin/sendmail";
add-from="dont";
supported-bodytype="8bit";
supports-dsn="yes"
(actually on one line)
[ This patch is branch from the main line. ]
- When saving mail forder time on "From " -separator
line was shifted by one hour if it was on different
zone than current time (ie. on daylight saving time
versus normal time).
- Folder browser was showing wrong entry on prompt line
after TAB -character.
[ This patch is branch from the main line. ]
- O)verride charset -command did was not effect on
non-MIME messages.
- Characters on "Change to which folder:" -prompt
was echoed to wrong place after
"Already reading that folder!" -message.
[ This patch is branch from the main line. ]
- "I configured ELM 2.5 alpha 5 just like my ELM 2.5
alpha 4 that compiles nicely and got the following
error from init.c on Solaris 8 gcc.
<...>
In file included from init.c:14:
../../hdrs/shared_imp.h:118: parse error before `*'
init.c:18: `rc_DT_SHARED' undeclared here (not in a
function)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Elm ME+ failed to compiled when USE_DLOPEN and SHARED_LIBS
was not defined.
- browser_descend_local() did not handled correctly case
where given filename did not included path (and
there was directory already selected.)
- "I tried your patch for ELM 2.5 alpha5 and it
failed to compile on Solaris. So tried the same thing with the
new ELM 2.5 alpha6. Same thing."
"cs_wfallback.c: In function `init_fallback':
cs_wfallback.c:165: `Debug' undeclared (first use in
this function)"
Reported by: James Corey <ploveregg@yahoo.com>
> Moved DEBUG_VAR(Debug,__FILE__,"charset")
outside of #if 0
- On some cases filename -parameter was generated twice to
Content-Disposition -header.
- Tagged flag of current message was not cleared
on V)iew digest command.
- Allow canceling
Already have selection criteria - add more?
prompt with Ctrl-C (interrupt character) on systems
which supports POSIX termios.
- Let Configure locate ar and nm (and ranlib) instead
just using PATH
- Let makefiles use ar -command located by Configure
- Fix some compilation warnings on SunOS 5.10
- Moved curses.h and term.h including from curses.c
to def_screen.h before including termios.h.
- SunOS 5.10 (Solaris) have problematic prototype
for tputs() and do not have prototype for tgoto()
when __STDC__ is defined. Added some workarounds.
- Use both curses.h and term.h on SunOS (Solaris),
not only term.h
- Do not use USGNAMES on SunOS
- iconv() on SunOS uses 'const char **inbuf' argument.
* NOTE: Changes for SunOS 5.10 are only compile tested.
It is not tested that they produce working code.
- Fix USGNAMES compilation.
[ This patch is branch from the main line. ]
- Fixed valgrind reported error on case
elm -i non-existing-file address
Conditional jump or move depends on uninitialised value(s)
at 0x808B83E: reset_parts (mime.c:105)
by 0x808B9D6: free_mime_send_info (mime.c:144)
by 0x80871B9: mail (mailmsg2.c:1351)
by 0x8083910: send_msg_middle (mailmsg1.c:589)
- Ctrl-T {pattern} did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Enchance redrawing on
Delete message?
"received" folder not available, continue leaving folder?
Move read message to "received" folder?
-prompts.
- Fix -Wtraditional warning:
mailer.c:1644: warning: non-static declaration for
`sendmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1902: warning: non-static declaration for
`submitmail_mailer_backend' follows static
- Fix -Wtraditional warning:
mailer.c:1932: warning: non-static declaration for
`execmail_mailer_backend' follows static
- Fix -Wtraditional warning:
../../hdrs/elmlib.h:2278:21: warning: function-like
macro "special" must be used with arguments in traditional C
> special() -macro is removed, it seems not be used.
( No other -Wtraditional warnings are fixed. )
[ This patch is branch from the main line. ]
- Fixed some -Wuninitialized compilation warnings.
- Ctrl-T 'all' did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Ctrl-T 'flagged' did not updated messages on screen
to be tagged when visible messages was limited
with l)imit -command.
- Some minor fixes.
[ This patch is branch from the main line. ]
- Fix initialization error on lib/read_rc.c (uses $USER
instead of $HOME) when pw_dir is NULL.
- "tried PL122 - and compiled with new openssl-0.9.8 !:
cc -I../include -I/opt/ssl/include -fPIC -O3 -c pop.c -o pop.o
In file included from /opt/ssl/include/openssl/crypto.h:131,
from /opt/ssl/include/openssl/comp.h:5,
from /opt/ssl/include/openssl/ssl.h:176,
from elmtls.h:11,
from pop.c:10:
/opt/ssl/include/openssl/ossl_typ.h:146: parse error before `2'"
"a define collision between elm and openssl seams to be
occurring! The token "STORE" is used on both sources!"
Problem noted by: Axel Reinhold <axel@freakout.de>
> Changed order of includes.
- Do not add addresses parsed (to, from, cc) addresses twice
to header_rec. That occured when mail was not downloaded
IMAP mailbox was opened and headers was parsed second time
when mail was opened.
- Create elm.filelist and parent directories of elm.filelist
before starting subprocess on "elmregister master".
Note: You must create directory
lib/mailer
before applying this patch!
Undo Elm 2.4ME+ PL121a (25) - Elm 2.4ME+ PL121h (25)
patches before applying this patch.
WARNING: Quite lot of changes in many areas. So
please report new bugs which you observe...
* Some changes on screen handling:
- Moved title, menu and prompt area on mailbox,
aliases and attachment screens to own subpage.
- Changed layout of attachment screen more similar than
other screens.
- Removed redraw flag from main loop.
- Removed nufoot flag from main loop.
- Removed redraw flag from mailbox_command().
- Removed redraw flag from motion().
- Removed nufoot flag from mailbox_command().
- Removed nufoot flag from motion().
- Removed redraw flag from new_mail_check().
- Removed redraw flag from partial_loop().
- Removed nufoot flag from partial_loop().
- Removed redraw flag from digest_loop().
- Removed nufoot flag from digest_loop().
- Removed redraw flag from view_canceled_mails().
- Removed nufoot flag from view_canceled_mails().
- Removed redraw flag from alias().
- Removed nutitle flag from alias().
- Removed nufoot flag from alias().
- Changed passing of redraw data from remail().
- Removed redraw flag from remail().
- Changed passing of redraw data from forward().
- Changed passing of redraw data from reply_to_everyone().
- Removed redraw flag from reply_to_everyone().
- Changed passing of redraw data from send_msg_l()
and send_msg_middle().
- Changed passing of redraw data from reply().
- Removed redraw flag from reply().
- Changed passing of redraw data from mail_filled_in_form().
- Changed passing of redraw data from pgp_mail_public_key().
- Changed passing of redraw data from print_text().
- Changed passing of redraw data from save().
- Changed method how headers on aliases and mailbox
screen are drawn and updated.
- Removed inalias, last_current, last_header_page,
headers_per_page and nucurr global variables.
- One more mail is listed on mailbox screen.
- Removed passing of header_page variable.
- Changed method how screen is handled on 'after
paging' commands (showmsg_c).
- Removed/changed passing of redraw flag on file_browser(),
gen_browser() folder_browser(), attach_save()
- Changed passing of redraw data from name_copy_file().
- Changed handling of 'prompt area' on Mail Pre-Send Screen
and on Message Header Edit Screen screen.
- If several -f option is given (for combined view
of given folders), starting of Elm ME+ do not fail
if first folder is inaccessible.
- Handle REDRAW_MARK on pgp_encrypt()
- "If you had no aliases yet, and pushed j or k in the
aliases menu (or the down or up arrows), you had a
"bad item" "common menu panic". The reason was a
missing "break" statement in alias_item.c, which was
present in the approprite place in mailbox_item.c"
From: Kovacs Baldvin <baldvin@cs.elte.hu>
( Patch was agaist Elm ME+ 2.5 but applies also to Elm
2.4ME+ )
- Fix error message
Path component "none" not absolute on key
"internal-mailcaps" value "none"
when on elmrc have line
internal-mailcaps = none
- Added elmrc option "pgp-encrypt-type", which take values
"application/pgp", "text/plain" and "text/x-pgp" (without
quotes). These are same values than for pgp-sign-type.
Except that this is for encryption. Because encrypted data
is ascii armored, also text -type can be used here.
Requested by: Axel Reinhold <axel@freakout.de>
NOTE: Note that using text/plain for excrypted data causes
that charset=US-ASCII is used always (for type
application/pgp charset paramater is not added).
It is little guestionable is that correct. These
encrypted types do not interact very well with charsets
anyway.
- "MIME structure Menu" was draw incorrectly when arrow cursor
was used.
- "MIME structure Menu" screen's layout now resembles more
main mailbox screen.
- Handle some ambiguous multipart boundary prefixes.
- Ignore empty line before "begin " on uudecode.
- "I am seeing two exit messages if I start elm and exit right away
using ELM 2.4ME+ PL121"
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "On a Solaris 8 machine, if I enter ELM and don't make
any changes it now says "Folder unchanged." twice.
Not a big deal, but I thought I should report it. :-)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Make sure that first message is erased on exit (usually
ti/te erases screen or changes buffers, but that
apply to "elm -t" also.)
- Added elmrc option "prompt-metamail".
If set, also text
Parsing MIME structure... metamail not needed
is not printed after
Parsing MIME structure...
text, because opposite situation will be prompted!
- Setting "prompt-metamail" (default) causes
showing of "Metamail selection" screen. This is
same screen than "Mailcap program selection" screen.
Answering prompt with p)age command changes screen
to "Mailcap program selection" screen. Answering
proompt with m)etamail command calls metamail.
- Allow canceling of
Mailcap program selection
with Ctrl-C (interrupt character) on systems
which supports POSIX termios.
- Canceling of
Append to an existing file XXX ?
Append to mail folder XXX ?
Create a new file XXX ?
Create a new mail folder XXX ?
Some XXX are already tagged. Remove Tags?
One XXX is already tagged. Remove Tags?
Are you sure you want to remail this message ?
prompts with Ctrl-C (interrupt character) is possible
on systems which supports POSIX termios.
- Added to
Mailcap program selection
screen same title than on pager (on case when elmrc
option "titles" is set (default)).
- "First I did not even understand what I am asked
in the attach menu. I tried a .ps file, then I had
a question "Use gnome-gv to..." blabla, yes or no.
And down there I had "Answer questions, or m)etamail,
or q)uit". Now "quit" did not quit from aliases,
but instead it behaved as an "OK". Pushing 'm' worked,
but I did not know wether it utilized the answer that
I gave already, since it asked again (!) if I'd like
to use gnome-gv. "F?ck, I do", I thought... Then I've
realized what is going on: after I answered yes for
the first question, I need to say quit, and then I get
gnome-gv..."
Problem noted by: Kovacs Baldvin <baldvin@cs.elte.hu>
> Changed q)uit command to d)one on
Mailcap program selection
screen.
- Letters 'q' and 'i' leaves now
Mailcap program selection
without paging message. Note that this changes
meaning of 'q' -command.
- Added O)verride charset and Ctrl-K (Mail PGP public key)
to 'after paging' (showmsg_c) commands.
- Added redraw handling to following prompts:
Already have selection criteria - add more?
Enter criteria or '?' for help:
- Fixed valgrind reported memory leak:
32 bytes in 2 blocks are definitely lost in loss record 6 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8151DBF: safe_malloc (safemalloc.c:47)
by 0x8069EEE: attach_menu (attach_menu.c:2433)
- Add redraw handling to display_file()
- Fixed "Reverse Thread" sorting order.
- Fixed valgrind reported memory leak:
56 bytes in 5 blocks are definitely lost in loss record 9 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x80E9095: new_state_1 (charset_input.c:18)
by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348)
- Fixed valgrind reported memory leak:
16 bytes in 2 blocks are definitely lost in loss record 3 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x8163E41: malloc_string (string.c:116)
by 0x8163FBC: new_string (string.c:153)
by 0x80876EA: read_number (in_utils.c:282)
- Fixed valgrind reported memory leak:
30 bytes in 1 blocks are definitely lost in loss record 7 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148225: safe_realloc (safemalloc.c:63)
by 0x8133394: elm_vmessage (output.c:1281)
by 0x8133A5E: elm_message (output.c:1460)
by 0x80FD9DA: init_debug (debug.c:58)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148173: safe_malloc (safemalloc.c:47)
by 0x8145BA9: split_remote_name (remote_mbx.c:620)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fixed valgrind reported memory leak:
14 bytes in 1 blocks are definitely lost in loss record 3 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148349: safe_strdup (safemalloc.c:79)
by 0x8145B8E: split_remote_name (remote_mbx.c:618)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148237: safe_malloc (safemalloc.c:47)
by 0x8164109: malloc_string (string.c:116)
by 0x8164FDC: cat_strings (string.c:449)
by 0x81307E5: elm_smessage (output.c:857)
by 0x8087063: prompt_letter (in_utils.c:84)
- Fixed valgrind reported memory leak:
29 bytes in 5 blocks are definitely lost in loss record 7 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148243: safe_malloc (safemalloc.c:47)
by 0x8105414: rfc822_tokenize (getaddr.c:37)
by 0x8061333: do_expand_group_l (aliaslib.c:88)
- Fixed valgrind reported memory leak:
7104 bytes in 1 blocks are definitely lost in loss record 27 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148339: safe_realloc (safemalloc.c:63)
by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 2 of 29
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x814826B: safe_malloc (safemalloc.c:47)
by 0x816413D: malloc_string (string.c:116)
by 0x81642B8: new_string (string.c:153)
by 0x80885D9: enter_helper (in_utils.c:656)
by 0x8089324: optionally_enter2 (in_utils.c:1115)
by 0x808E52B: limit (limit.c:110)
- Removed pattern_enter()
- Fixed "Append to mail folder " -question.
- Changed IMAP \Flagged that they are not longer
tagged (+), but instead marked with new flag (F)
as flagged.
- \Flagged is shown on place of '+' on screen as 'F'.
- \Flagged can be modified with with new toggle F)lag command
- Flag is saved as letter F on Status: -header for
local mailbox
- Giving argument "flagged" (without quotes) to l)imit
command selects flagged messages. That is not mentioned "?"
help of l)imit command, because it it does not fit to
80 characters. That is similar than "tagged" argument
to l)imit command.
- Command Ctrl-D accepts argument "flagged" (without quotes)
which deletes all visible flagged messages.
- Command Ctrl-D accepts argument "flagged" (without quotes)
which tags all visible flagged messages.
- Command Ctrl-U accepts argument "flagged" (without quotes)
which undeletes all visible flagged messages.
- Changed Ctrl-D command with argument "tagged" (without quotes)
so that it deletes only all visible tagged messages
(it was deleting also messages which was not on limited
selection.)
- Set close-on-exec flag for opened local mailbox.
- "I am seeing two exit messages if I start elm and exit right away
using ELM 2.4ME+ PL121"
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "On a Solaris 8 machine, if I enter ELM and don't make
any changes it now says "Folder unchanged." twice.
Not a big deal, but I thought I should report it. :-)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Make sure that first message is erased on exit (often
ti/te erases screen or changes buffers, but that
problem apply to "elm -t" also.)
- Fix case whare ascii only mail was sent with headers
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=ISO-8859-1
instead of
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
- Added mlterm to terminal.info without charset UTF-8.
To actually use that terminal definition you need also
doc/term/mlterm.ti from mlterm distribution. Install it
with 'tic' command. Then you need start start mlterm with
'mlterm -y mlterm' option, otherwise mlterm sets $TERM to
xterm.
- Seems that mlterm do not handle return to ISO 2022 code
( ESC % @ ) or switch to UTF-8 code ( ESC % G ) ?
- Also Elm ME+ do not handle double wide UTF-8 characters
- Fixed case where switch to UTF-8 code ( ESC % G )
was given on several times. However after ESC % G
only ESC % @ is valid.
- Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles
to bin/elm.mimecharsets even when elm.mimecharsets have
already alias definition for charset.
- Added eucJP, eucKR, EUC-CN, GB2312, eucCN and
Big5-HKSCS, Big5HKSCS to ConfTool/CharMap
- Let ConfTool/LocaleMap also to use ConfTool/validcharset
- Changed on lib/precompiled_sets.c:
* Changed "ECMA-cyrillic" type from cs_unknown
to cs_ascii and given mime name KOI8-E
* Added ISO 2022 code for KOI8-E (ISO-IR-111)
* Added ISO 2022 code for IRV (codeset "ISO_646.irv:1983")
(ISO-IR-2)
* Added ISO 2022 code for ISO646-GB (codeset "BS_4730")
(ISO-IR-4)
* Changed codeset "NATS-SEFI" (ISO-IR-8-1) type from
cs_unknown to cs_iso646
* Added ISO 2022 code for codeset "NATS-SEFI" (ISO-IR-8-1)
* Added ISO 2022 code for codeset "NATS-SEFI-ADD"
(ISO-IR-8-2) (XX)
* Added ISO 2022 code for codeset "NATS-DANO"
(ISO-IR-9-1)
* Added ISO 2022 code for codeset "NATS-DANO-ADD"
(ISO-IR-9-2) (XX)
* Added ISO 2022 code for ISO646-FI (codeset
"SEN_850200_B") (ISO-IR-10)
* Added ISO 2022 code for ISO646-SE2 (codeset
"SEN_850200_C") (ISO-IR-11)
* Added ISO 2022 code for codeset "KS_C_5601-1987"
(ISO-IR-149) (XX)
* Changed codeset "KS_C_5601-1987" type from
cs_unknown to cs_iso2022
* Added ISO 2022 code for codeset "JIS_C6220-1969-jp"
(ISO-IR-13) (XX)
* Changed codeset "JIS_C6220-1969-jp" type from
cs_unknown to cs_iso2022
* Added ISO 2022 code for ISO646-IT (codeset "IT")
(ISO-IR-15)
* Added ISO 2022 code for ISO646-PT (codeset "PT")
(ISO-IR-16)
* Added ISO 2022 code for ISO646-ES (codeset "ES")
(ISO-IR-17)
* Added ISO 2022 code for codeset "greek7-old"
(ISO-IR-18)
* Added ISO 2022 code for codeset "latin-greek" (ISO-IR-19)
* Added ISO 2022 code for ISO646-DE (codeset "DIN_66003")
(ISO-IR-21)
* Added ISO 2022 code for ISO646-FR1
(codeset "NF_Z_62-010_(1973)") (ISO-IR-25)
* Added ISO 2022 code for codeset "Latin-greek-1"
(ISO-IR-27)
* Added ISO 2022 code for codeset "ISO_5427" (ISO-IR-37)
* Added ISO 2022 code for codeset "JIS_C6226-1978"
(ISO-IR-42) (XX)
* Changed codeset "JIS_C6226-1978" from type cs_unknown
to cs_iso2022
* Added ISO 2022 code for codeset "BS_viewdata"
(ISO-IR-47)
* Added ISO 2022 code for codeset "INIS"
(ISO-IR-49)
* Added ISO 2022 code for codeset "INIS-8"
(ISO-IR-50)
* Added ISO 2022 code for codeset "INIS-cyrillic"
(ISO-IR-51)
* Added ISO 2022 code for codeset "ISO_5427:1981"
(ISO-IR-54) (XX)
* Added ISO 2022 code for codeset "ISO_5428:1980"
(ISO-IR-55)
* Added ISO 2022 code for codeset "ISO_5428:1980"
(ISO-IR-55)
* Added ISO 2022 code for ISO646-CN (codeset "GB_1988-80")
(ISO-IR-57)
* Added ISO 2022 code for codeset "GB_2312-80"
(ISO-IR-58) (XX)
* Changed codeset "GB_2312-80" type from cs_unknown
to cs_iso2022
* Added ISO 2022 code for ISO646-NO (codeset "NS_4551-1")
(ISO-IR-60)
* Added ISO 2022 code for ISO646-NO2 (codeset "NS_4551-2")
(ISO-IR-61)
* Added ISO 2022 code for ISO646-FR (codeset "NF_Z_62-010")
(ISO-IR-69)
* Added ISO 2022 code for codeset "videotex-suppl"
(ISO-IR-70) (XX)
* Added ISO 2022 code for ISO646-PT2 (codeset "PT2")
(ISO-IR-84)
* Added ISO 2022 code for ISO646-ES2 (codeset "ES2")
(ISO-IR-85)
* Added ISO 2022 code for ISO646-HU (codeset "MSZ_7795.3")
(ISO-IR-86)
* Added ISO 2022 code for codeset "JIS_C6226-1983"
(ISO-IR-87) (XX)
* Changed codeset "JIS_C6226-1983" type from cs_unknown
to cs_iso2022
* Added ISO 2022 code for codeset "ASMO_449"
(ISO-IR-89)
* Added ISO 2022 code for codeset "iso-ir-90" (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-a"
(ISO-IR-91)
* Added ISO 2022 code for ISO646-JP-OCR-B
(codeset "JIS_C6229-1984-b") (ISO-IR-92)
* Added ISO 2022 code for "JIS_C6229-1984-b-add"
(ISO-IR-93) (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-hand"
(ISO-IR-94)
* Added ISO 2022 code for codeset "JIS_C6229-1984-hand-add"
(ISO-IR-95) (XX)
* Added ISO 2022 code for codeset "JIS_C6229-1984-kana"
(ISO-IR-96)
* Added ISO 2022 code for codeset "ISO_2033-1983"
(ISO-IR-98) (XX)
* Added ISO 2022 code for codeset "ANSI_X3.110-1983"
(ISO-IR-99) (XX)
* Added ISO 2022 code for codeset "T.61-7bit"
(ISO-IR-102)
* Added ISO 2022 code for codeset "T.61-8bit"
(ISO-IR-103)
* Added ISO 2022 code for ISO646-CA
(codeset "CSA_Z243.4-1985-1") (ISO-IR-121)
* Added ISO 2022 code for ISO646-CA2
(codeset "CSA_Z243.4-1985-2") (ISO-IR-122)
* Added ISO 2022 code for codeset
"CSA_Z243.4-1985-gr" (ISO-IR-123) (XX)
* Added ISO 2022 code for codeset
"T.101-G2" (ISO-IR-128) (XX)
* Added ISO 2022 code for codeset
"T.101-G2" (ISO-IR-128) (XX)
* Added ISO 2022 code for codeset "CSN_369103"
(ISO-IR-139)
* Changed codeset "CSN_369103" type fom cs_unknown
to cs_ascii
* Added ISO 2022 code for ISO646-YU
(codeset "JUS_I.B1.002") (ISO-IR-141)
* Added to ISO646 sets that MIME-subset=INVARIANT
* Added ISO 2022 code for codeset "ISO_6937-2-add"
(ISO-IR-141)
* Added ISO 2022 code for codeset "IEC_P27-1"
(ISO-IR-143)
* Changed codeset "IEC_P27-1" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "JUS_I.B1.003-serb"
(ISO-IR-146)
* Added ISO 2022 code for codeset "JUS_I.B1.003-mac"
(ISO-IR-147)
* Added ISO 2022 code for codeset "greek-ccitt"
(ISO-IR-150)
* Added ISO 2022 code for ISO646-CU
(codeset "NC_NC00-10:81") (ISO-IR-151)
* Added ISO 2022 code for codeset "ISO_6937-2-25"
(ISO-IR-152)
* Changed codeset "ISO_6937-2-25" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "GOST_19768-74"
(ISO-IR-153)
* Changed codeset "GOST_19768-74" type from cs_unknown to
cs_ascii
* Added ISO 2022 code for codeset "GOST_19768-74"
(ISO-IR-153)
* Added ISO 2022 code for codeset "ISO_8859-supp"
(ISO-IR-154) (XX)
* Changed codeset "ISO_8859-supp" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "ISO_10367-box"
(ISO-IR-155) (XX)
* Changed codeset "ISO_10367-box" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "latin-lap"
(ISO-IR-158) (XX)
* Changed codeset "latin-lap" type from cs_unknown
to cs_ascii
* Added ISO 2022 code for codeset "JIS_X0212-1990"
(ISO-IR-159) (XX)
* Changed codeset "JIS_X0212-1990" type from cs_unknown
to cs_iso2022
(XX) Actually it is unclear what that is supposed to mean
on context of
http://www.iana.org/assignments/character-sets
Most of these are not standalone character sets on
that sense what MIME use term 'charset' ....
- Configure now tests if system support wchar_t type
functions.
- Moved code of unknown charset type (cs_unknown)
from lib/cs_binary.c to lib/cs_unknown.c
- File lib/cs_wfallback.c includes 'fallback'
mapping for whar_t, similar than lib/cs_fallback.c
files 'fallback' definition.
- Unknown system (locale) charset is now implemented
with wide characters (wchar_t) on systems which
support it. Also support of wcwidth() function is
tested separately.
- On some cases that may cause warning/error message
"Unknown charsets are unsupported as keyboard input!"
to be printed (specially if there is significant state
used on keyboard input.)
- If __STDC_ISO_10646__ is defined, then wchar_t
is assumed to be Unicode (and 'fallback' mapping
is not needed.)
- Added elmrc option "locale-charsets" for systems
which have __STDC_ISO_10646__ defined. Given
charset names is type unknown used for system (locale)
charset, even when Elm ME+ is builtin definition
for charset.
- Added to terminal.info file new keyword DW.
This indicates for unknown system charset that wcwidth()
function should be used to get char width.
This means that logical width of character
may be 0,1 or 2 columns on that terminal.
- Keyword DW also may cause error/warning message
Double wide characters are not supported
to be printed.
- On systems which have __STDC_ISO_10646__ defined,
DW flag on terminal.info works like "locale-charsets"
option, if charset and terminal matches.
- Added UTF-8 for mlterm to terminal.info with
DW flag.
- pw_dir (home directory) and pw_shell is allowed
to be NULL on struct passwd.
- Added CP1251 as codeset for windows-1251. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1252 as codeset for windows-1252. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1255 as codeset for windows-1255. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1256 as codeset for windows-1256. Seems that this is
returned by nl_langinfo(CODESET).
- Added CP1257 as codeset for windows-1257. Seems that this is
returned by nl_langinfo(CODESET).
- Changed evaluation of elmrc option "text-charset".
- Changed evaluation of elmrc option "display-charset".
- Changed evaluation of elmrc option "local-fs-charset".
- Changed evaluation of elmrc option "default-nomime-charset".
- Changed evaluation of elmrc option
"default-mime-text-charset".
- Changed evaluation of elmrc option "imap-charset".
- Removed function get_charset_map_info().
- Changed implementation of elmrc option "shell".
- Changed implementation of elmrc option "tmpdir".
- Changed implementation of elmrc option "maildir"
(or "folders").
- Changed implementation of elmrc option "map-text-dir".
- Changed implementation of elmrc option "map-bin-dir".
- Fixed case where ISO-2022-JP subject was displayed on
message list, but when reading mail, subject was replaced
with question marks.
- Handle better bad sequense of bytes on text (for
example bad UTF-8 text).
- Configure was incorrectly made conlusion that
nl_langinfo(CODESET)
does not work on IRIX 6.5
- If given folder name 'aaa@bbb@ccc' for split_remote_name(),
do not split is as user='aaa', host='bbb@ccc', but use
user='aaa@bbb', host='ccc'
Problem noted by: admin <admin@unixdemon.com>
- Remove duplicates from bin/elm.mimecharsets
during Configure
- Compare charset names in case insensitive way on
ConfTool/GenCharmap
- Added command "elmregister rpm-list", which
generates files listing suitable from rpm
%files -section.
- Declared that Elm ME is "Elm Millenium Edition".
Courtesy Vesa-Matti J Kari <vesa-matti.kari@helsinki.fi>
- get_type_flags() was called with NULL-pointer
argument from start_body_helper() line 381.
Problem noted by: Vesa-Matti J Kari <vesa-matti.kari@helsinki.fi>
> Return something 'intelligent' (instead of
crashing) in functions of lib/mediatype.c,
if them is called with NULL argument.
- Do not give NULL pointer for
Content-Type: *unknown*/MIXED
In other words do not return NULL pointer
if give_media_type() is asked to create
major media type '*unknown*' ('*unknown*'
matched MIME_TYPE_UNKNOWN signaling unknown
media type.)
- Added module (-M name) option and
correspond environment variable $ELM_MODULE
to elmregister.
- elmregister -M all may be used to register
file or command to all modules.
- Added command "elmregister rpm-list", which
generates files listing per -M option.
- Fixed Makefile error on
make package ROOT=/tmp/test-install
case.
- Sorting orders 'mailbox order' and
'reverse mailbox order' was giving same order.
Fixed reverse sorting order.
- Little change for sorting.
- If "unstable-reverse-thread" is set, reverse thread
sorting is based on lastest message on thread.
Therefore thread moves to new location, when
new message arrives to thread.
- This variable is settable on o)ptions screen
with S)orting criteria command.
- Moved enumerate_list on save_opts to own
elmrc type rc_DT_ENUM and new data
type dt_enumerate_info
- Make possible to record changes of elm.rc
during installation.
- Option -c on elmrc-write and elmlibregister commands
gives file, which is used to record changes
(old values) of elm.rc during installation.
- During installation old values of failed elm.rc options
are kept on elm.rc.old-values file.
- Use malloc_gets() when reading elm.rc
- Added elmrc option "verify-domain". If set mail domains
are verified by gethostbyname(). Error HOST_NOT_FOUND
is treated as nonexisting domain and error NO_ADDRESS
is treated as valid mail domain.
- Added elmrc option "verify-local-address". If set
usernames of local addresses are verified. Using
this option requires that on global elm.rc have
"verify=yes" on mailer -option.
- Replaced elmrc types DT_ASR and DT_SRT with one type
rc_DT_SORT.
- Added elmrc option "local-dir-sortby". This specifies
sorting order for local files and folders on folder
and file browser. Possible values are "none", "name"
and "mtime" (and also "reverse-name" and "reverse-mtime").
Default value is "name".
- Added elmrc option "imap-dir-sortby". This specfies
sorting order for IMAP folders on folder browser. Possible
values are "none" and "name" (also "reverse-name").
Default value is "none".
- On 21 lines window browser help (Folder selection)
was not fitting to screen.
- Moved mailer related code from libelmme-base.so to
libelmme-mailer.so.
- Added elmrc type rc_DT_DELAY.
- Moved elmrc option "mailer" to libelmme-mailer.so.
It is 'proxied' with elmrc type rc_DT_DELAY.
- Added elmrc option "use-mailer-library" to
libelmme-mailer.so. It is 'proxied' with elmrc type
rc_DT_DELAY. "smtp" (ie. libelmme-smtp.so) is
now given on elmrc option "use-mailer-library"
(was on "use-connect-library".)
- Link libelmme-smtp.so with libelmme-mailer.so,
so that loading of libelmme-smtp.so succeed when
loader is not linked with libelmme-mailer.so.
- If elm is not compiled with -rdynamic, link
libelmme-smtp.so with libelmme-base.so, so that symbols
can be resolved.
- "I got http://www.elmme-mailer.org/elm-ME+2.5.alpha4.tar.gz
and tried to compile it on a SuSE 9.2 box. Configure
complained about missing termlibs and quit without even
generating a makefile.
Adding -lncurses in line 6333 of Configure (it now reads
for A in '' '-ltermlib' '-lcurses' '-ltermcap ' '-lncurses'; do
fixed this and elmme seems to work fine. Maybe you'd
like to include this patch in the next release ..."
From: Rainer Kaluscha <rainer.kaluscha@web.de>
- Code changes for "-Wstrict-prototypes". I hope that these
do not broke something else.
- Added some support for RFC 2231:
MIME Parameter Value and Encoded Word Extensions:
Character Sets, Languages, and Continuations
- struct string may now carry language indicator
- Language specification is now accepted on encoded
words.
- When replying language specification is normally preserved
on replied address (phrase).
- [include -command now uses internally file browser
for refering file. This should handle better (theoretical)
situation where buffer charset is ddeferent than filesystem
charset.
- filename -arguments on mime -parameters use RFC 2231
encoding. Also non RFC 2231 ascii-only filename
argument is produced.
- Specially RFC 2231 encoded parameters are ignored
for most of other cases. Specially boundary -parameter
must not be RFC 2231 encoded.
- Added elmrc option "mime-parameters". Possible values are
"plain", "encoded" and "plain-and-encoded". If set
to "plain", then RFC 2231 encoded parameters are not
generated and not used when receiving mail (they still are
parsed.) When set to "plain-and-encoded both RFC 2231
encoded value and plain ascii value are generated (specially
for filename -parameter) when needed.
- Elm option -z (zero) do not longer imply option -n
(do not use ti/te).
- " would like to have an option like:
-z Zero - don't enter Elm if no mail is pending.
but:
-y Zero - don't enter Elm if no unread mail is
pending."
Suggested by: Axel Reinhold <axel@freakout.de>
- Elm option -z now works correctly when several mailboxes
(several -f options) are given. Now Elm is not entered
when all given mailboxes are empty.
- doc/tmac.n states "This package may be circulated freely
with the news documentation; it may not be sold, but is to
be distributed with the unformatted news documents."
Removed, because Elm documentation is other documentation.
- Removed documentatiion which depends doc/tmac.n. That
documentation is more or less obsolete anyway:
doc/Alias.guide
doc/Config.guid
doc/Elm.cover
doc/Form.guide
doc/Ref.guide
doc/Users.guide
- Removed question about formatter of documentation
from Configure.
- f)orget command on "Mail Pre-Send Screen" incorrectly
sent mail when editor buffer was empty and on mail
there was on attachment.
- Both utils/elmrc-write.c and utils/elmlibregister.c
include routine for writing (user or system) elmrc.
Moved that to new file lib/write_rc.c.
- Changed src/save_opts.c to use lib/write_rc.c. This
means that elmrc option are saved on elmrc-info
order also when saved from Elm.
- Removed offset from struct rc_save_info_rec. It is
no longer needed.
- Changed default so that term.h is only included on
Linux (and not curses.h)
- "unicode_value (uint16) can not possibly exceed 0xFFFF.
Remove the statement, that triggers a compiler warning."
From: Mikhail T. <mi@aldan.algebra.com>
* Patch removes ...->unicode_value > 0xFFFF -test
from cs_add_state_to_iconv() on shared_libs/iconv/iconv.c.
- utils/answer.c included some bogus aliases reading routines.
Replaced it fetch_alias(). It still is broken, but
that is little better...
Problem noted by: Mikhail T. <mi@aldan.algebra.com>
New elmrc options:
mime-parameters
imap-dir-sortby
local-dir-sortby
locale-charsets
pgp-encrypt-type
prompt-metamail
unstable-reverse-thread
verify-domain
verify-local-address
use-mailer-library
New elm command line option:
-y Don't enter Elm if no unread mail
is pending.
New elm command:
F)lag
New files:
src/screen/subpage.c
src/screen/wrapper.c
src/screen/menu_param.c
src/screen/def_scommon.h
src/screen/scommon.c
src/screen/header.c
lib/cs_unknown.c
lib/cs_wfallback.c
charset/MAPPINGS/koi8-e.txt
lib/mailer/Makefile.SH
hdrs/mailerlib.h
lib/mailer/def_mailer.h
lib/mailer/outheaders.c
lib/mailer/shared_mailer.c
lib/mailer/init.c
lib/rc_delay.c
melib/mime_param.c
lib/write_rc.c
Moved files:
lib/mailer.c => lib/mailer/mailer.c
Removed files:
lib/add_site.c
lib/strtokq.c
doc/tmac.n
doc/Alias.guide
doc/Config.guid
doc/Elm.cover
doc/Form.guide
doc/Ref.guide
doc/Users.guide
[ This patch is branch from the main line. ]
- On 21 lines window browser help (Folder selection)
was not fitting to screen.
- f)orget command on "Mail Pre-Send Screen" incorrectly
sent mail when editor buffer was empty and on mail
there was on attachment.
[ This patch is branch from the main line. ]
- get_type_flags() was called with NULL-pointer
argument from start_body_helper() line 381.
Problem noted by: Vesa-Matti J Kari <vesa-matti.kari@helsinki.fi>
> Return something 'intelligent' (instead of
crashing) in functions of lib/mediatype.c,
if them is called with NULL argument.
- Do not give NULL pointer for
Content-Type: *unknown*/MIXED
In other words do not return NULL pointer
if give_media_type() is asked to create
major media type '*unknown*' ('*unknown*'
matched MIME_TYPE_UNKNOWN signaling unknown
media type.)
- Fixed Makefile error on
make package ROOT=/tmp/test-install
case
- Sorting orders 'mailbox order' and
'reverse mailbox order' was giving same order.
Fixed reverse sorting order.
- Little change for sorting.
- Ignore command letter 'm' on elm.filelist
(used on Elm 2.4ME+ PL122).
[ This patch is branch from the main line. ]
- Fix another "Append to mail folder " -question.
- Configure was incorrectly made conlusion that
nl_langinfo(CODESET)
does not work on IRIX 6.5
- If given folder name 'aaa@bbb@ccc' for split_remote_name(),
do not split is as user='aaa', host='bbb@ccc', but use
user='aaa@bbb', host='ccc'
Problem noted by: admin <admin@unixdemon.com>
- Remove duplicates from bin/elm.mimecharsets
during Configure
- Compare charset names in case insensitive way on
ConfTool/GenCharmap
[ This patch is branch from the main line. ]
- Set close-on-exec flag for opened local mailbox.
- Fix "Append to mail folder " -question.
- "I am seeing two exit messages if I start elm and exit right away
using ELM 2.4ME+ PL121"
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "On a Solaris 8 machine, if I enter ELM and don't make
any changes it now says "Folder unchanged." twice.
Not a big deal, but I thought I should report it. :-)"
Problem noted by: James Corey <ploveregg@yahoo.com>
> Make sure that first message is erased on exit (often
ti/te erases screen or changes buffers, but that
problem apply to "elm -t" also.)
- Fix case whare ascii only mail was sent with headers
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=ISO-8859-1
instead of
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
- Added mlterm to terminal.info without charset UTF-8.
To actually use that terminal definition you need also
doc/term/mlterm.ti from mlterm distribution. Install it
with 'tic' command. Then you need start start mlterm with
'mlterm -y mlterm' option, otherwise mlterm sets $TERM to
xterm.
- Seems that mlterm do not handle return to ISO 2022 code
( ESC % @ ) or switch to UTF-8 code ( ESC % G ) ?
- Also Elm ME+ do not handle double wide UTF-8 characters
- Fixed case where switch to UTF-8 code ( ESC % G )
was given on several times. However after ESC % G
only ESC % @ is valid.
- Now ConfTool/GenCharmap adds mapping from ConfTool/mapfiles
to bin/elm.mimecharsets even when elm.mimecharsets have
already alias definition for charset.
[ This patch is branch from the main line. ]
- Fix "Reverse Thread" sorting order.
- Fixed valgrind reported memory leak:
24 bytes in 1 blocks are definitely lost in loss record 4 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147EF3: safe_malloc (safemalloc.c:47)
by 0x8068ACA: attach_menu (attach_menu.c:2253)
by 0x80784E5: mailbox_command (elm.c:808)
by 0x807920D: main (elm.c:1185)
- Added redraw handling to display_file()
- Fixed valgrind reported memory leak:
56 bytes in 5 blocks are definitely lost in loss record 9 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x80E9095: new_state_1 (charset_input.c:18)
by 0x80F9FFC: cs_add_streambyte_to_utf8 (cs_utf.c:348)
- Fixed valgrind reported memory leak:
16 bytes in 2 blocks are definitely lost in loss record 3 of 28
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8147F8F: safe_malloc (safemalloc.c:47)
by 0x8163E41: malloc_string (string.c:116)
by 0x8163FBC: new_string (string.c:153)
by 0x80876EA: read_number (in_utils.c:282)
- Fixed valgrind reported memory leak:
30 bytes in 1 blocks are definitely lost in loss record 7 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148225: safe_realloc (safemalloc.c:63)
by 0x8133394: elm_vmessage (output.c:1281)
by 0x8133A5E: elm_message (output.c:1460)
by 0x80FD9DA: init_debug (debug.c:58)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148173: safe_malloc (safemalloc.c:47)
by 0x8145BA9: split_remote_name (remote_mbx.c:620)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fixed valgrind reported memory leak:
14 bytes in 1 blocks are definitely lost in loss record 3 of 31
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148349: safe_strdup (safemalloc.c:79)
by 0x8145B8E: split_remote_name (remote_mbx.c:618)
by 0x814ADA3: browser_folder_from_dummy (savefolder.c:1076)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 1 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148237: safe_malloc (safemalloc.c:47)
by 0x8164109: malloc_string (string.c:116)
by 0x8164FDC: cat_strings (string.c:449)
by 0x81307E5: elm_smessage (output.c:857)
by 0x8087063: prompt_letter (in_utils.c:84)
- Fixed valgrind reported memory leak:
29 bytes in 5 blocks are definitely lost in loss record 7 of 30
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x8148243: safe_malloc (safemalloc.c:47)
by 0x8105414: rfc822_tokenize (getaddr.c:37)
by 0x8061333: do_expand_group_l (aliaslib.c:88)
- Fixed valgrind reported memory leak:
7104 bytes in 1 blocks are definitely lost in loss record 27 of 29
at 0x4002668F: realloc (vg_replace_malloc.c:310)
by 0x8148339: safe_realloc (safemalloc.c:63)
by 0x80BFA69: add_canceled_mail1 (canceled_mail.c:1291)
- Fixed valgrind reported memory leak:
8 bytes in 1 blocks are definitely lost in loss record 2 of 29
at 0x400260DC: malloc (vg_replace_malloc.c:153)
by 0x814826B: safe_malloc (safemalloc.c:47)
by 0x816413D: malloc_string (string.c:116)
by 0x81642B8: new_string (string.c:153)
by 0x80885D9: enter_helper (in_utils.c:656)
by 0x8089324: optionally_enter2 (in_utils.c:1115)
by 0x808E52B: limit (limit.c:110)
- Fixed incorrect drawing of "MIME structure Menu" when arrow
cursor was used.
[ This patch is branch from the main line. ]
- "If you had no aliases yet, and pushed j or k in the
aliases menu (or the down or up arrows), you had a
"bad item" "common menu panic". The reason was a
missing "break" statement in alias_item.c, which was
present in the approprite place in mailbox_item.c"
From: Kovacs Baldvin <baldvin@cs.elte.hu>
( Patch was agaist Elm ME+ 2.5 but applies also to Elm
2.4ME+ )
[ This patch is branch from the main line. ]
- Fix error message
Path component "none" not absolute on key
"internal-mailcaps" value "none"
when on elmrc have line
internal-mailcaps = none
SUMMARY: This release changes handling of
shared libraries and includes some
other minor changes or fixes.
- Better rpath test on Configure
- Better soname test on Configure
- Some fixes about soname_include_path
- Change soname_include_path values
define/undef to y/n. It is not used
for #define.
- Allow setting soname_include_path=n
always if rpath works
- Add extra libraries needed by shared libraries
(shared_libs/*/) to rpath of executable.
- Effectively local-fast-lookup = ON is now
always used when ASCII filenames are looked.
- Removed Configure warning:
"(I see you are using the Korn shell. Some ksh's
blow up on Configure, especially on exotic machines.
If yours does, try the Bourne shell instead.)"
- Let builtin pager show also address and not only
name of sender!
- Fix error
RC PANIC in rc_handle.c:1226:expand_dt_path
>>>Bad state on end
when incorrect elmrc is read
weedout = *clear-weed-list*"
SUMMARY: This release fixes handling of multiple To:
headers, refines "showto" semantic and fixes
envelope sender of "Canceled mail" -view.
- Fix incorrect condition for deleting of messages marked for
deletion (actually condition worked on Elm 2.4ME+ and
did not worked on Elm ME+ 2.5 because different ison -macro)
- Group reply did not worked correctly when on mail
there was several To: -headers.
- Refine "showto" semantic. If that elmrc variable is
set and mail is not addressed to user, then To: address
is shown.
- Remove < > from address on real_from parsing.
- Set envelope from address to username when reading
Canceled mail special 'folder'. That way To:
-address should be displayed when viewing that 'folder'.
SUMMARY: This release includes various code changes,
changes f)orget command and moves
*.Canceled.mail to own directory. This
release introduces elmrc option
"dead-letter-dir". Any canceled mail
can be picked with m)ail command.
- Configure now locates system gencat command
- Added file nls/Makefile.SH
- File nls/Makefile is removed. Now it is
generated by Configure
- Made leave() to use give_next_open_mailbox()
- Added free_all_mailboxes() to src/messages/messages.c
- Made leave() to use free_all_mailboxes()
- Made rm_temps_exit() to use free_all_mailboxes()
- Made silently_exit() to use give_next_open_mailbox()
- Made emergency_exit() to use give_next_open_mailbox()
- Made leave_locked() to use give_next_open_mailbox()
- Made usr1_signal() to use give_next_open_mailbox()
- Made usr2_signal() to use give_next_open_mailbox()
- Removed current_mailbox global variable
- Added free_all_aliasviews() to src/aliases/aliases.c
- Made leave() to use free_all_aliasviews()
- Made silently_exit() to use free_all_aliasviews()
- Made rm_temps_exit() to use free_all_aliasviews()
- Made leave_locked() to use free_all_aliasviews()
- Removed current_aliaslist global variable
- Added menu_trigger_redraw() to src/screen/context.c
- Changed resync() to use menu_trigger_redraw()
- Changed help() to use menu_trigger_redraw()
- Changed do_pipe() to use menu_trigger_redraw()
- Changed change_file() to use menu_trigger_redraw()
- Changed print_msg() to use menu_trigger_redraw()
- Changed subshell() to use menu_trigger_redraw()
- Changed pgp_extract_public_key() to use menu_trigger_redraw()
- Changed forward() to use menu_trigger_redraw()
- Changed reply_to_everyone() to use menu_trigger_redraw()
- Changed pgp_mail_public_key() to use menu_trigger_redraw()
- Changed send_msg_l() to use menu_trigger_redraw()
- Changed print_text() to use menu_trigger_redraw()
- Changed reply() to use menu_trigger_redraw()
- Changed save() to use menu_trigger_redraw()
- Changed pattern_match() to use menu_trigger_redraw()
- Changed limit() to use menu_trigger_redraw()
- Changed read_number to use menu_trigger_redraw()
- Changed alias_help() to use menu_trigger_redraw()
- Changed a_sendmsg() to use menu_trigger_redraw()
- Changed mailbox_command() to use menu_trigger_redraw()
- Changed motion() to use menu_trigger_redraw()
- Changed new_mail_check() to use menu_trigger_redraw()
- Changed mail() to use menu_trigger_redraw()
- Changed send_msg_middle() to use menu_trigger_redraw()
- Changed send_form() to use menu_trigger_redraw()
- Added menu_trigger_redraw() to get_copies()
- Added menu_trigger_redraw() to get_to()
- Added menu_trigger_redraw() to copy_the_msg()
- Added menu_trigger_redraw() to get_subject()
- Changed send_msg_argv() to use menu_trigger_redraw()
- Moved *.Canceled.mail to own directory
Canceled.mail.dir
- Editor buffer for f)orget messages is not kept.
Instead cancele mails are picked from
Canceled.mail.dir on m)ail -command ('/' on
To: prompt gives menu of cancelled messages.)
- Canceled.mail.dir is not available as folder
(it can not given for c)hange folder commmand
or -f option of Elm.)
- When canceled mail is picked from re-sending,
is is also deleted from Canceled.mail.dir
(f)orget command will re-add it to Canceled.mail.dir.)
- Name of Canceled.mail.dir can be changed with elmrc
option dead-letter-dir.
- Removed give_message_folder()
- Added -g option to Configure
New elmrc options:
dead-letter-dir
New file:
src/messages/canceled_mail.c
src/canceled.c
nls/Makefile.SH
Removed file:
nls/Makefile (this is now generated by Configure)
Undo Elm 2.4ME+ PL117a (25) and Elm 2.4ME+ PL117b (25)
patches before applying this patch.
SUMMARY: This release collects PL117a and PL117b
patches, make possible to cancel some
actions or prompts with interrupt character
on POSIX systems, changes letter of 'invoke
editor' command on header editing screen
and makes some other changes or fixes.
- Interrupt signal (Ctrl-C) was ignored only,
if Elm ME+ was compiled with -DDEBUG option.
Problem noted by: Laura Kataja
- Fix bug where Elm2.4ME+ PL117 was acting always as
dsn-success was set.
- Message/check
"signature" used in obsolete way in .elm/elmrc file.
removed.
- Moved get_term_chars() from src/init.c to
src/screen/init.c
- PL108 added 'invoke e)ditor' command to header editing
screen. That conflicts with 'E)xpires' command.
Changed command to 'invoke e(d)itor'.
- Allow canceling of following prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Set current XXX to :
Description: (Attachment Configuration)
Content-Type: (Attachment Configuration)
Content-Disposition: (Attachment Configuration)
Search: (builtin pager)
From: (Message Header Edit Screen)
To: (Message Header Edit Screen)
Cc: (Message Header Edit Screen)
Bcc: (Message Header Edit Screen)
Subject: (Message Header Edit Screen)
Reply-to: (Message Header Edit Screen)
Action: (Message Header Edit Screen)
Priority: (Message Header Edit Screen)
Precedence: (Message Header Edit Screen)
In-reply-to: (Message Header Edit Screen)
user defined header on Message Header Edit Screen
Enter criteria or '?' for help:
Send the message to: (prompt of m)ail command)
To: (prompt of m)ail command)
Subject: (prompt of m)ail command)
Copies to: (prompt of m)ail command)
Return-path: (Mail Pre-Send Screen)
E)ditor (primary) : (ELM Options Editor)
D)isplay mail using : (ELM Options Editor)
C)alendar file : (ELM Options Editor)
O)utbound mail saved : (ELM Options Editor)
P)rint mail using : (ELM Options Editor)
Y)our full name : (ELM Options Editor)
V)isual Editor (~v) : (ELM Options Editor)
E)xpires: (ELM Options Editor)
Precede(n)ce: (ELM Options Editor)
Enter pattern:
To: (when encrypting message (pgp))
From: (when signing message (pgp))
Enter userid of public key: (prompt of Ctrl-K command)
Override charset:
Shell command:
Pipe to:
Enter alias name: (Alias mode)
Current message address aliased to:
Enter address for XXX: (Alias mode)
Fully expand alias: (Alias mode)
Enter last name for XXX:
Enter first name for XXX:
Enter optional comment for XXX:
Forward message as separate part?
Copy message? (prompt of m)ail command)
Edit outgoing message? (prompt of f)orward command)
Enter encryption key: (on sending mail)
Text part XX have control characters.
Encode text with quoted-printable? (on sending mail)
- Treate Ctrl-C (interrupt character) as No on following
prompts (on systems which support POSIX termios):
Abandon change to mailbox?
Abandon changes to mailbox?
- Handling interrupt (Ctrl-C) on builtin editor without
signals on systems which support POSIX termios
(that edit_interrupt signal handler is not safe!)
- GetPGPKey() did not always re-enabled raw-mode
- Allow canceling of following (folder browser) prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Change to which folder:
Save text of message to:
Copy text of message to:
Save text messages to:
Copy text messages to:
Save message to:
Copy message to:
Save messages to:
Copy messages to:
Save copy in (use '?' for help):
- Allow canceling of following (file browser) prompts
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
To file: (MIME structure Menu)
Filename: (Attachment Configuration)
- Allow canceling leaving of folder on following
prompts with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Delete message?
Delete messages?
Move read message to \"received\" folder?
Move read messages to \"received\" folder?
Keep unread message in incoming mailbox?
Keep unread messages in incoming mailbox?
- Now on address prompts also works \ quotation
of interrupt character (for example @, if set that way)
on systems which supports POSIX termios.
- Allow canceling of password prompt of IMAP/POP
with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Password for XXX@YYY:
- Allow canceling of IMAP/POP connection attempt
with Ctrl-C (interrupt character) on systems
which supports POSIX sigaction:
Connecting to XXX
- Allow canceling alias menu help prompt
with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Allow canceling messages/mailbox menu help
prompt with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Allow canceling options menu help prompt
with Ctrl-C (interrupt character) on systems
which supports POSIX termios
- Add READCH_CURSOR to ReadCh options (on
options screen and elsewhere) so that escape
sequences from cursor keys do not cause
misinterpration of selected option.
- Allow folowing ON/OFF prompts to be canceled
on options menu with Ctrl-C (interrupt character)
on systems which supports POSIX termios:
A)rrow cursor :
M)enu display :
- Allow options menu sorting criteria prompt
to be canceled with Ctrl-C (interrupt character)
on systems which supports POSIX termios:
S)orting criteria :
- Allow canceling DSN (Delivery Status Notification) Configuration
menu with Ctrl-C (interrupt character) on systems which supports
POSIX termios
- Allow canceling DSN (Delivery Status Notification) Configuration
menu prompts with Ctrl-C (interrupt character) on systems which
supports POSIX termios:
Return H)eaders only on FAILURE:
Return DSN on F)AILURE : TRUE
D)ELAY : TRUE
S)UCCESS : TRUE
U)se defaults (DSN off) : FALSE
- Allow quiting Attachment Configuration menu
with Ctrl-C (interrupt character) on systems which supports
POSIX termios (this not necessary forget/undo made changes
however.)
- Allow canceling encoding prompt on Configuration menu
with Ctrl-C (interrupt character) on systems which supports
POSIX termios:
Content-Transfer-Encoding:
- Allow quiting Attachment Menu with Ctrl-C (interrupt
character) on systems which supports POSIX termios (this not
necessary forget/undo made changes however.)
- Redraw Mail Pre-Send Screen when quiting Attachment Menu
or DSN menu.
- Allow quiting Message Header Edit Screen with Ctrl-C
(interrupt character) on systems which supports POSIX
termios (this not necessary forget/undo made changes
however.)
- Allow quiting help text viewer with Ctrl-C (interrupt
character) on systems which supports POSIX
termios:
Press <space> to continue, 'q' to return.
- Allow quiting of builtin pager with Ctrl-C (interrupt
character) on systems which supports POSIX termios
- Treate message/disposition-notification as
message/delivery-status (similar than text/plain).
- Fix for valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x80E3654: mail_gets (mail_gets.c:37)
- Fix for valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x80E73AC: give_media_type2 (mediatype.c:282)
by 0x80E7260: give_media_type (mediatype.c:241)
- Allow interrupting pgp/gpg message signing
wint interrupt character (or SIGINT, Ctrl-C).
- Allow canceling leaving of alias menu on following
prompts with Ctrl-C (interrupt character) on systems
which supports POSIX termios:
Delete 1 alias?
Delete XX aliases?
New file:
src/screen/init.c
lib/cancel.c
[ This patch is branch from the main line. ]
- Interrupt signal (Ctrl-C) was ignored only,
if Elm ME+ was compiled with -DDEBUG option.
Problem noted by: Laura Kataja
[ This patch is branch from the main line. ]
- Fix bug where Elm2.4ME+ PL117 was acting always as
dsn-success was set.
Undo Elm 2.4ME+ PL116a (25) patch before applying this patch.
SUMMARY: This release collects patch Elm2.4ME+ PL116a,
implements reconnection to mailer=submission, adds
pgp-interactive and askmimeforward elmrc options
and prompts about mimeforward on f)orward command.
- Fix debug output of dump_expanded_address()
- Implement reconnection for mailer=submission (however
reconnection is not implemented for mailer=sendmail-bs).
These mailer's open smtp (or submission) connection
to server before editor is started. That is done
for get capacity of mailer (for 8BITMIME). However
sometime that times out if editing tooks too long
and sending of mail fails.
- Trying send encrypted messages with gpg was giving
error message
Couldn't find key matching 'xxx@yyy'
Problem noted by: Olivier COLIN <dodo.olivier@wanadoo.fr>
(and probably others)
> Make GetPGPKey() retry reading of result on case of
interrupt.
- GetPGPKey() was not collect status of exted gpg and
was left lot of defunct processes. Converted code to
use start_run().
- Reprint last error on "Mail Pre-Send Screen" after
clearing screen.
- Added pgp-interactive option to elmrc. Setting that
disables batch mode of pgp/gpg when encrypting/signing
mail.
- Alternatives and weedout and list was replaced with Q letters
Problem noted by: Cyrille Lefevre <cyrille.lefevre@laposte.net>
- Do not quote addresses on alternatives.
- Added elmrc variable type rc_DT_ESTR (aka kind
of expanded string).
- Reimplemented elmrc variable "pager" as rc_DT_ESTR
- Reimplemented elmrc variable "editor" as rc_DT_ESTR
- Reimplemented elmrc variable "calendar" as rc_DT_ESTR
- Reimplemented elmrc variable "localsignature" as rc_DT_ESTR
- Reimplemented elmrc variable "remotesignature" as rc_DT_ESTR
- Reimplemented elmrc variable "receivedmail" as rc_DT_ESTR
- Reimplemented elmrc variable "sentmail" as rc_DT_ESTR
- Reimplemented elmrc variable "incoming-mailbox" as rc_DT_ESTR
- Removed valid_rc_type()
- Add package test to Configure (as it is done Elm ME+ 2.5)
for case that wrong config.sh is used.
- Added malloc_gets() to lib/mail_gets.c
- Changed send_msg_l(), mail(), mail_form(),
mail_filled_in_form(), forward(), reply_to_everyone(),
and reply() to use index, mailbox instead of
current_header, infile, mailbox.
- Added give_next_open_mailbox() to src/messages.c and
made save_copy() to use it.
- Moved definition of struct mv_storage and
struct mv_digest out from src/messages/def_messages.h
- When mail is forwarded mail, user is prompted
Forward message as separate part?
default value of answer depends "mimeforward"
elmrc option. Setting elmrc option "askmimeforward"
to OFF disables that prompt.
- Added expanded_address_from_items() to
lib/outheaders.c
- Removed class_charset() from melib/mime_parse.c
New elmrc options:
pgp-interactive
askmimeforward
[ This patch is branch from the main line. ]
- Alternatives and weedout and list was replaced with Q letters
Problem noted by: Cyrille Lefevre <cyrille.lefevre@laposte.net>
- Reprint last error on "Mail Pre-Send Screen" after
clearing screen.
- Trying send encrypted messages with gpg was giving
error message
Couldn't find key matching 'xxx@yyy'
Problem noted by: Olivier COLIN <dodo.olivier@wanadoo.fr>
(and probably others)
> Make GetPGPKey() retry reading of result on case of
interrupt.
- GetPGPKey() was not collect status of exted gpg and
was left lot of defunct processes. Converted code to
use start_run().
- Do not quote addresses on alternatives.
SUMMARY: This patch fixes handling of unexpected return
value of nl_langinfo(CODESET) on AIX, fixes
value check of "internal-mailcaps" and
"metamail-mailcaps" elmrc variables,
fixes some prompts on situation where leaving
of folder fails, reimplements
"alternatives" and "weedout" elmrc variables,
changes elm.filelist format (adds subcommand
"copydoc" to elmregister), adds -s option
to elmregister and adds RFC 2919 List-ID to
list of known headers.
WARNING: There is small change on elm.filelist format, so
downgrading from Elm2.4ME+ PL116 (25) to
Elm 2.4ME+ PL115 (25) or to Elm ME+ 2.5 PLalpha0
will not work (you need unistall or remove
elm.filelist first.)
- " When installing ELM (on AIX 5L), I get the following message:
| Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset.
| Codeset name ISO8859-1 was unknown. Treating ISO8859-1 as MIME name.
| Check /usr/local/lib/elm/elm.mimecharsets or
| noam/.elm/mime.charsets
| WARNING: Locale en_US (charset ISO8859-1) is unsupported, will cause problems!
| Problem with locale (system character set)! Elm ME+ will
| behave erratically."
Problem noted by: Noam G. Nudelman <noam@mail.biu.ac.il>
- dt_PATH_print_value() was not printing always empty values
correctly.
- fix test on expand_dt_path(). Specially non-file
values on "internal-mailcaps" and "metamail-mailcaps" was
not giving error message.
- Prompt "Failed to leave folder: Try to change again ?
[P]anic" did not worked. Added new routine prompt_letter()
- Changed prompt "Failed to leave folder: Try to quit again ?"
- Changed prompt ""received" folder not available, continue? (y/n) n"
- Also changed default answer to be yes on that prompt
(that is useful only when received folder is remote,
but that error may occur also is somebody is set
receivedmail = /invalid
)
- Fix some possible compilation problems with traditional
C compilers (as opposed to ANSI C ompilers)
- Reimplemeted elmrc "alternatives" as type PATH and
removed special elmrc type for alternatives.
- Reimplemeted elmrc "weedout" as type PATH and
removed special elmrc type for weedout.
If first element on list is "*clear-weed-list*",
then builtin weedout list is not used.
- Fix typo PROMTP_yesno (to PROMPT_yesno) on
Elm2.4ME+ PL115a (25)
- Added command "elmregister copydoc" which
works like "elmregister copy", but marks
file to be document.
- Added option "-s {stage-subdir}" to command
"elmregister {command}".
- Added RFC 2919 List-ID -header to array on
lib/headers.c
- Fix missing space between pharse and < >
on result of hdr_decode_from_phrase() on
lib/headers.c
- If on header editing screen incoked editor
and address was on form '"a" <b> (c)",
and then edited it on header editing screen
address become as '"a" <b> (c('. Changed
on '(' to ')' on make_surface_addr() on
lib/outheaders.c
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes handling of unexpected return
value of nl_langinfo(CODESET) on AIX, fixes
value check of "internal-mailcaps" and
"metamail-mailcaps" elmrc variables and
fixes some prompts on situation where leaving
of folder fails.
- " When installing ELM (on AIX 5L), I get the following message:
| Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset.
| Codeset name ISO8859-1 was unknown. Treating ISO8859-1 as MIME name.
| Check /usr/local/lib/elm/elm.mimecharsets or
| noam/.elm/mime.charsets
| WARNING: Locale en_US (charset ISO8859-1) is unsupported, will cause problems!
| Problem with locale (system character set)! Elm ME+ will
| behave erratically."
Problem noted by: Noam G. Nudelman <noam@mail.biu.ac.il>
- dt_PATH_print_value() was not printing always empty values
correctly.
- fix test on expand_dt_path(). Specially non-file
values on "internal-mailcaps" and "metamail-mailcaps" was
not giving error message.
- Prompt "Failed to leave folder: Try to change again ?
[P]anic" did not worked. Added new routine prompt_letter()
- Changed prompt "Failed to leave folder: Try to quit again ?"
- Changed prompt ""received" folder not available, continue? (y/n) n"
- Also changed default answer to be yes on that prompt
(that is useful only when received folder is remote,
but that error may occur also is somebody is set
receivedmail = /invalid
)
- Fix some possible compilation problems with traditional
C compilers (as opposed to ANSI C ompilers)
SUMMARY: This release changes temporary folder
location on some situations, fixes crash
on c)hange command on alias menu, adds
elmrc options "local-sessionlock-dir" and
"local-sessionlock-use-home", and changes
SIGWINCH handling when waiting for editor.
- If opened local mailbox is on somewhere else
than on spool directory, use "tmpdir" setting
from elm.rc for location of temporary file
"mbox.{mailbox}-{username}" instead default_temp.
NOTE: "tmpdir" was already used for temporary file
"mbox.{username}@{popserver}" when reading
pop mailbox and for temporary file
"mbox.{username}@{imapserver}:{folder}" when
reading imap folder of mailbox.
- If opened local mailbox is on spool directory, use
(new) "local-sessionlock-dir" setting from elm.rc for
location of temporary file "mbox.{mailbox}" instead
default_temp.
- Added new elmrc option "local-sessionlock-dir".
- "There are two behaviors that I need changed. One
is the location of the temporary mbox-USERNAME file.
Because our homedirs are nfs mounted to whatever machine
we sit down at, having the temporary mbox-USERNAME file
located in /tmp (or anywhere else local to the machine
we are currently using) is not adequate protection from
launching two invocations of elm on two different
workstations and having both try and update the same
inbox. This usually results in an error message about
the mailbox being corrupted when we return
to our primary workstation.
To solve this it works better for us if the mbox-USERNAME
file resides in our homedirs. I found no way to set this
using the Configure script (can't use $HOME), so I did it
by modifying imap.c, localmbx.c, and remote_mbx.c. Also,
we prefer that these files be dot files (.mbox-USERNAME) so
I also modified sysdefs.SH."
Problem noted by: J.C. Webber III <jcw@pico.apple.com>
> Added new elmrc option "local-sessionlock-use-home".
Possible values are "never", "spool", "always" and
"non-spool". If this is set to "always", local mailbox
opened use home for temporary file. Temporary file
is renamed to ".mbox.{mailbox}-{username}" or
".mbox.{mailbox}". If this is set to "spool",
temporary file for local mailboxes opened from spool
directory are put to home directory. If this is set
to "non-spool", temporary file for local mailboxes
opened from non-spool directory are put to home directory.
Value "never" do not relocate temporary file.
- Fix crash when changing alias...
- set SIGWINCH to SIG_DFL only on child (on system_call())
so that Elm will call menu_context_resize() when it is
waiting child to complete ...
New elmrc options:
local-sessionlock-dir
local-sessionlock-use-home
Undo Elm2.4ME+ PL113a (25) patch before applying this patch.
SUMMARY: This release collects PL113a patch, adds
hack for hidding certain management mail
used by some imap servers and splits elmrc
option use-library to two variables. That
should reduce loading of unnecessary libraries.
New elmrc options "message-hide-hack",
"use-base-library" and "use-connect-library"
are added to this release.
- "wouldn't it be nice to have an option to hide the
management mail in imap-folders. This mail is in every
mail-folder which is also accessed by imap. It always has:
Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
I always use elm, but also access my mailbox remotely via
imap. To access it locally with elm also by imap is slow,
compared to direct access."
Requested by: Axel Reinhold <axel@freakout.de>
> Added elmrc option "message-hide-hack". Possible values are
"none" and "FOLDER INTERNAL DATA". Hiding of that
management mail do not affect to '-z' option -- that option
still sees that mailbox is non-zero size. Also that option do
not effect to any tools of elm. In other words 'frm' shows that
management mail.
- "I tried to compile elm2.4.ME+.113 on AIX 5.1 (maintenance
level 05) or on AIX 5.2 (maintenance level 02)
with gcc version 3.3.2 and got stuck with:
gmake[1]: Entering directory `noam/elm2.4.ME+.113/src/screen'
gcc -I../../hdrs -fpcc-struct-return -fPIC -O -c
-o curses.o curses.c
curses.c:282: error: parse error before '->' token"
Problem reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Fix again compilation problem fixed on PL106 but
re-introduced on PL108.
- "When running 'elm -c alias_name' with Elm 2.4ME+ PL113 on
AIX, I get:
ALIAS VIEW PANIC in aliases.c:340:update_aview
>>>bad aliasview magic"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
- On linux "elm -c xxx" crashes with:
SIGNAL PANIC in signals.c:102:segv_signal
>>>
Segment Violation signal!
> Moved initialization of aliasview to earlier.
- Splited elmrc option
use-library = iconv smtp tls
to two options
use-base-library = iconv
use-connect-library = smtp tls
- Content of option "use-library" is automatically
moved to options "use-base-library" and
"use-connect-library".
- This splitting tries avoid loading of unnecessary
libraries. Note however that these libraries are
loaded anyway if library specific options are used
on elmrc or on mail.services. Also giving for example
mailer = submission
on global elm.rc load all libraries given on
use-connect-library.
New elmrc options:
use-base-library
use-connect-library
message-hide-hack
New files:
lib/shared_all.c
lib/shared_base.c
lib/shared_connect.c
[ This patch is branch from the main line. ]
- "I tried to compile elm2.4.ME+.113 on AIX 5.1 (maintenance
level 05) or on AIX 5.2 (maintenance level 02)
with gcc version 3.3.2 and got stuck with:
gmake[1]: Entering directory `noam/elm2.4.ME+.113/src/screen'
gcc -I../../hdrs -fpcc-struct-return -fPIC -O -c
-o curses.o curses.c
curses.c:282: error: parse error before '->' token"
Problem reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Fix again compilation problem fixed on PL106 but
re-introduced on PL108.
- "When running 'elm -c alias_name' with Elm 2.4ME+ PL113 on AIX, I get:
ALIAS VIEW PANIC in aliases.c:340:update_aview
>>>bad aliasview magic"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
- On linux "elm -c xxx" crashes with:
SIGNAL PANIC in signals.c:102:segv_signal
>>>
Segment Violation signal!
> Moved initialization of aliasview to earlier.
SUMMARY: This release changes base64 decode algorithm,
adds decoder from X-uuencoded content-transfer-encoding
and adds handling of resizing to many screen.
- Reimplemented base64_decode() from routine
of kehlist (first occured on kehlist 1.1.2 9 Jun 1999
Author: Kari E. Hurtta <Kari.Hurtta@Fmi.FI>)
[ Well, basically same decoding routine is on
cs_add_streambyte_to_s_utf7() on lib/cs_utf.c
And also found from kehpager (UTF7_convert()
on charset.c, kehpager 1.2 1994
Author: Kari Hurtta <Kari.hurtta@helsinki.fi> ]
- Added uudecode() routine, used for decoding
nonstandard X-uuencoded content-transfer-encoding
- Resizing of terminal is handled now also on following
screens:
- ELM Options Editor
- Alias mode
- Mail Pre-Send Screen
- Message Header Edit Screen
- Message Edit Screen (builtin editor)
(perhaps)
- Attachment Menu
- MIME structure Menu
- builtin pager
- Folder selection (folder browser)
- File selection (directory browser)
- Attachment Configuratio
(not an a filename or other prompts)
- Multiple keys match (pgp key selection)
- DSN (Delivery Status Notification) Configuration
Resizing is not handled when some data is
prompted on these screens. Generally that
causes redraw event, which not repage / resize
text but instead just redraws prompt.
- Fixed compilation problem on case where
REMOTE_MBX is not defined.
- optionally_enter2 was not prompting text correctly when
OE_APPEND_CURRENT was set.
New files:
src/screen/context.c
Note: You must create directory
src/menu_common
before applying this patch!
WARNING: Unified code between aliases and mailbox menu.
Speciall there is changes of l)imit command.
So please report new bugs which you observe...
SUMMARY: This release collects patches PL111a and PL111b,
unifies common routines of aliases and messages
and changes handling of obsolete elmrc options.
Now some more commands, which work on mailbox menu,
works also on aliases menu.
- Unified common routines for aliases and
messages to struct menu_common.
- 'ifmain' macro removed.
- Giving argument 'tagged' to Ctrl-D
works now also on aliases menu.
- Argument 'all' on Ctrl-T now
works also on aliases menu.
- And ('&') and or ('|') on l)imit
command are now available also on
aliases menu.
- Condition 'tagged' on l)imit command
is available now also on aliases menu.
- Fix crash on parse failure on command
"View digest as mailbox".
- Fix for src/Makefile
- Fix crash if 'U' is pressed on aliases menu:
SIGNAL PANIC in signals.c:102:segv_signal
- Changed bug reporting address to elm@elmme-mailer.org
(that is directed to hurtta+elm@posti.FMI.FI)
- "I think they should be Warnings only. Like say
Elmrc variable "bounceback" is obsolete and should be
removed.
and come up anyway."
Requested by: James Corey <ploveregg@yahoo.com>
> Added type rc_DT_OBS
> Now warning
Elmrc variable "XXX" is obsolete and should be removed
from line YYY in "ZZZ" file
is printed, but that is not very visible, because it was
requested that Elm should be started on interactive mode anyway.
> If iso646-charsets or compatcharsets is used, print also
warning
Setting "XXXX" on line YYY in "XXX" file is suboptimal.
Use file .... or .elm/mime.charsets instead.
- Do not drop privileges if -X (transcript file) option
is given.
Re-added elmrc options as obsolete:
bounce
bounceback
hpkeypad
hpsoftkeys
keypad
mailbox (was originally synonym of receivedmail)
softkeys
textencoding
New files:
src/menu_common/def_mcommon.h
src/menu_common/Makefile.SH
src/menu_common/mcommon.c
src/menu_common/alias.c
src/menu_common/mailbox.c
src/menu_common/alias_limit.c
src/menu_common/message_limit.c
src/menu_common/alias_pattern.c
src/menu_common/message_pattern.c
src/menu_common/alias_screen.c
src/menu_common/message_screen.c
src/menu_common/mailbox_item.c
src/menu_common/alias_item.c
[ This patch is branch from the main line. ]
- Fix crash on parse failure on command
"View digest as mailbox".
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes crash caused by 'U' command
on aliases menu.
- Fix for src/Makefile
- Fix crash if 'U' is pressed on aliases menu:
SIGNAL PANIC in signals.c:102:segv_signal
- Changed bug reporting address to elm@elmme-mailer.org
(that is directed to hurtta+elm@posti.FMI.FI)
Note: You must create directory
src/aliases
before applying this patch!
WARNING: Quite many changes specially on aliases. So please
report new bugs which you observe...
SUMMARY: This release collects patch PL110a, changes
pub report address and makes some other changes.
NOTE: Seems that anonymous ftp (and ftp.ozone.fmi.fi)
will be removed. Then ftp://ftp.ozone.fmi.fi/KEH/
is not available ( http://www.ozone.fmi.fi/KEH/
probably remain. ) Also ozone.fmi.fi will retire.
- Fix incorrect test on copy_pgp() -- length test should be
applied to original data -- not a output of pgp (or gpg).
- Add similar handling of interrupted read to copy_pgp()
than is on pgp_decode()
- Handle raw mode of terminal and status pg pgp/gpg on
copy_pgp() wame way than on pgp_decode()
- Make O)verride charset also be effective, when viewing
attachment via MIME structure Menu -menu.
- Elm was not displaying To: -address on some situations
when showto was set, but acted instead as recipient was
sender (or as mail was directed to user.)
Possibly reported by: Sivasankar Chander <siva@dias.ath.cx>
( Perhaps showto should ignore case where sender is
recipient? )
- Changed alias routines.
( Why hash database is used for aliases, when aliases
are searched linearly? -- see src/aliases/find_alias.c
(originally src/find_alias.c))
- Avoid message
[ Charset US-ASCII converted... ]
as special case when using displaycharset=UTF-8.
( Also setting charset-convert-ok=Yes disables this message. )
- Changed bug report address
Kari Hurtta <hurtta+elm@ozone.FMI.FI>
to
Kari Hurtta <hurtta+elm@posti.FMI.FI>
New files:
src/aliases/Makefile.SH
src/aliases/def_aliases.h
src/aliases/aliases.c
src/aliases/alias_alloc.c
src/aliases/astorage.c
src/aliases/astorage_hash.c
Renamed files:
src/find_alias.c => src/aliases/find_alias.c
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes case, where output of pgp/gpg was
not shown sometimes (on non-MIME messages),
case where O)verride charset was ignored when
displaying attachment (via MIME structure Menu
-menu), and case where To: address was not shown
on message list when showto elmrc option was set.
- Fix incorrect test on copy_pgp() -- length test should be
applied to original data -- not a output of pgp (or gpg).
- Add similar handling of interrupted read to copy_pgp()
than is on pgp_decode()
- Handle raw mode of terminal and status pg pgp/gpg on
copy_pgp() wame way than on pgp_decode()
- Make O)verride charset also be effective, when viewing
attachment via MIME structure Menu -menu.
- Elm was not displaying To: -address on some situations
when showto was set, but acted instead as recipient was
sender (or as mail was directed to user.)
Possibly reported by: Sivasankar Chander <siva@dias.ath.cx>
( Perhaps showto should ignore case where sender is
recipient? )
Undo Elm2.4ME+ PL109S (25) patch before applying this patch.
Undo Elm2.4ME+ PL109a (25) and Elm2.4ME+ PL109b (25) patches
before applying this patch.
SUMMARY: This release collects patches PL109a and PL109b.
Security fixes introduced in PL109S are included.
Bogus charset initialization error caused by
missing global elm.mimecharsets file is fixed.
Some enchancements to l)imit command are
introduced. This release also fixes extra
"[Keeping all messages.]" messages introduced
on PL109a fix. File MIME.txt compares Elm ME+
to MIME conformace criteria.
- This file states "But anyway, Elm will never be MIME
Conformant." Added file MIME.txt which enumerates RFC
2049 requirements and look which reuirements are not
followed and on what conditions.
- Change some Raw(OFF) to Raw_OFF() on leaving routines
of src/utils.c
> Also clear "[Keeping all messages.]" messages
after leaving folder so that these are not
printed because of Raw_OFF();
- Try fix
MBX PANIC in imap.c:2578:end_imap_command
when IMAP / TLS connection is closed by server.
- Initialization of internal-mailcaps and
metamail-mailcaps did not worked correctly.
Moved initialization before reading of global
elm.rc.
Problem noted by: Xavi Serrano <xserrano@ac.upc.es>
- On def_prompt_handler() final newline should be
printed to terminal as prompt is printed (instead
of stderr.)
- Fix segmentation violation on l)mit command
"header subject" (ie. without ':'). This is now
interpreted to be all mails which have given header
name.
- l)imit command "aabbc: yyy" work now as
"header aabbc: yyy"
- User alias file was not opened, if system alias file
existed.
Fix potential security problems on systems where Elm ME+
is setgid mail and system do not support Posix saved IDs.
Check output of 'elm -vvv' if your system have problems:
Have Posix saved IDs: Yes (egid 12)
If this is 'No' and egid is other than your gid, there is
possibility that Elm ME+ can read or write some files
which are readable or writable by group mail, when it should
not access them. Note that these fixes can not be complete.
There is race condition at least. Closing that race condition
requires that Elm ME+ drop privileges temporary. For that
Elm ME+ uses Posix saved IDs.
- SECURITY: Add can_open() test to load_locale_map()
- SECURITY: Add can_open() test to copy1()
- SECURITY: Add can_open() test to parse_iso2022_map()
- SECURITY: Add can_open() test to do_newalias()
- SECURITY: Add can_open() test to dbz_fresh()
- SECURITY: Add can_open() test to dbz_again()
- SECURITY: Add can_open() test to dbz_open()
- SECURITY: Add can_open() test to latebase()
- SECURITY: Add can_open() test to read_rc_file()
- SECURITY: Add can_open() test to parse_service_entries()
- SECURITY: Add can_open() test to load_terminal_map()
- SECURITY: Add can_open() test to read_mailcaps()
- SECURITY: Add can_open() test to add_to_alias_text()
- SECURITY: Add can_open() test to delete_from_alias_text()
- SECURITY: Add can_open() test to mime_guess_content_type()
- SECURITY: Add can_open() test to edit_the_message()
- SECURITY: Add can_open() test to read_editor()
- SECURITY: Add can_open() test to append()
- SECURITY: Add can_open() test to check_form_file()
- SECURITY: Add can_open() test to format_form()
- SECURITY: Add can_open() test to edit_headers_on_editor()
- SECURITY: Add can_open() test to mail()
- SECURITY: Add can_open() test to save_options()
- Add can_open() test to load_folder_state_file()
- Add can_open() test to read_unidata_text()
- Add can_open() test to display_file()
- Avoid error message like following
Elm: Unable to map en_US locale (LC_CTYPE) to MIME charset.
Codeset name ISO-8859-15 was unknown. Treating ISO-8859-15 as MIME name.
Check /usr/local/test/lib/elm.mimecharsets or .../.elm/mime.charsets
Problem with locale (system character set)! Elm ME+ will behave erratically.
on case where elm.mimecharsets is not installed. Codeset
match was not used if either file elm.mimecharsets or
mime.charsets existed.
New files:
MIME.txt
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes segmentation violation on
l)imit command and problem where user alias
was not opened, if system alias file existed.
- Fix segmentation violation on l)mit command
"header subject" (ie. without ':').
- User alias file was not opened, if system alias file
existed. Fixed short circuit evalution.
[ This patch is branch from the main line. ]
Undo Elm2.4ME+ PL109S (25) patch before applying this patch.
SUMMARY: This patch address panic when imap server disconnects
during password prompt, fixes initialization of
internal-mailcaps and metamail-mailcaps elmrc options
and fixes some cases where error message was not visible
because of exiting of Elm ME+. Also security fixes of
Elm2.4ME+ PL109S (25) are included to this patch (it
is agaist Elm2.4ME+ PL109 (25))
- Changed some Raw(OFF) to Raw_OFF() on leaving routines
of src/utils.c
- Try fix
MBX PANIC in imap.c:2578:end_imap_command
when IMAP / TLS connection is closed by server.
- Initialization of internal-mailcaps and
metamail-mailcaps did not worked correctly.
Moved initialization before reading of global
elm.rc.
Problem noted by: Xavi Serrano <xserrano@ac.upc.es>
- On def_prompt_handler() final newline should be
printed to terminal as prompt is printed (instead
of stderr.)
Fix potential security problems on systems where Elm ME+
is setgid mail and system do not support Posix saved IDs.
Check output of 'elm -vvv' if your system have problems:
Have Posix saved IDs: Yes (egid 12)
If this is 'No' and egid is other than your gid, there is
possibility that Elm ME+ can read or write some files
which are readable or writable by group mail, when it should
not access them. Note that these fixes can not be complete.
There is race condition at least. Closing that race condition
requires that Elm ME+ drop privileges temporary. For that
Elm ME+ uses Posix saved IDs.
- SECURITY: Add can_open() test to load_locale_map()
- SECURITY: Add can_open() test to copy1()
- SECURITY: Add can_open() test to parse_iso2022_map()
- SECURITY: Add can_open() test to do_newalias()
- SECURITY: Add can_open() test to dbz_fresh()
- SECURITY: Add can_open() test to dbz_again()
- SECURITY: Add can_open() test to dbz_open()
- SECURITY: Add can_open() test to latebase()
- SECURITY: Add can_open() test to read_rc_file()
- SECURITY: Add can_open() test to parse_service_entries()
- SECURITY: Add can_open() test to load_terminal_map()
- SECURITY: Add can_open() test to read_mailcaps()
- SECURITY: Add can_open() test to add_to_alias_text()
- SECURITY: Add can_open() test to delete_from_alias_text()
- SECURITY: Add can_open() test to mime_guess_content_type()
- SECURITY: Add can_open() test to edit_the_message()
- SECURITY: Add can_open() test to read_editor()
- SECURITY: Add can_open() test to append()
- SECURITY: Add can_open() test to check_form_file()
- SECURITY: Add can_open() test to format_form()
- SECURITY: Add can_open() test to edit_headers_on_editor()
- SECURITY: Add can_open() test to mail()
- SECURITY: Add can_open() test to save_options()
- Add can_open() test to load_folder_state_file()
- Add can_open() test to read_unidata_text()
- Add can_open() test to display_file()
Fix potential security problem on systems where Elm ME+
is setgid mail and system do not support Posix saved IDs.
Check output of 'elm -vvv' if your system have problems:
Have Posix saved IDs: Yes (egid 12)
If this is 'No' and egid is other than your gid, there is
possibility that Elm ME+ can read or write some files
which are readable or writable by group mail, when it should
not access them. Note that these fixes can not be complete.
There is race condition at least. Closing that race condition
requires that Elm ME+ drop privileges temporary. For that
Elm ME+ uses Posix saved IDs.
- SECURITY: Add can_open() test to load_locale_map()
- SECURITY: Add can_open() test to copy1()
- SECURITY: Add can_open() test to parse_iso2022_map()
- SECURITY: Add can_open() test to do_newalias()
- SECURITY: Add can_open() test to dbz_fresh()
- SECURITY: Add can_open() test to dbz_again()
- SECURITY: Add can_open() test to dbz_open()
- SECURITY: Add can_open() test to latebase()
- SECURITY: Add can_open() test to read_rc_file()
- SECURITY: Add can_open() test to parse_service_entries()
- SECURITY: Add can_open() test to load_terminal_map()
- SECURITY: Add can_open() test to read_mailcaps()
- SECURITY: Add can_open() test to add_to_alias_text()
- SECURITY: Add can_open() test to delete_from_alias_text()
- SECURITY: Add can_open() test to mime_guess_content_type()
- SECURITY: Add can_open() test to edit_the_message()
- SECURITY: Add can_open() test to read_editor()
- SECURITY: Add can_open() test to append()
- SECURITY: Add can_open() test to check_form_file()
- SECURITY: Add can_open() test to format_form()
- SECURITY: Add can_open() test to edit_headers_on_editor()
- SECURITY: Add can_open() test to mail()
- SECURITY: Add can_open() test to save_options()
- Add can_open() test to load_folder_state_file()
- Add can_open() test to read_unidata_text()
- Add can_open() test to display_file()
Undo Elm2.4ME+ PL108a (25) patch before applying this patch.
SUMMARY: This release collects Elm2.4ME+ PL108a (25)
patch, adds elmrc variable "prompt-after-metamail",
changes iconv:auto-charset elmrc option
to also apply to defined but unknown charsets,
makes some changes to elm tools, adds binary
mmappable file for charset tables for types
ascii and one-byte-map and adds O)verride
charset command. On elm tools there is new
command "elmbindata".
- "I would like to suggest a small change in elm.
I use lynx as a HTML browser.
When I exit from the lynx, I get the message:
Press any key to return to index.
and the only possible action is returning to the
list of mail messages. This message seems to be unnecessary."
Requested by: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
- Renamed "promptafter" elmrc variable to
"prompt-after-pager". Added elmrc variable
"prompt-after-metamail" Elmrc variable "promptafter"
effects now both "prompt-after-pager" and
"prompt-after-metamail".
- elmregister was not fixing protections on
replay phase
- 'sh Configure -cfile' was not working, only
'sh Configure -c file' read 'file'.
- "I type in the same text string to search again, it goes
to the next matched line, but the surrounding lines are
from the original match hit (the screen is not being
updated)." ( about / -command)
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "The pgp message "[End of raw data]" is confused
as a file inclusion when it appears in a reply.
The following patch changes the message to
"[ End of raw data]", which doesn't get confused."
From: Bruce Momjian <root@candle.pha.pa.us>
[ Patch little modified. ]
- "With older elm versions, using '/', it remembered the
old search string, so I could do '/', <ENTER> to find
the next occurance of a single string. The new code
doesn't do that."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
> Returned variables to static (and avoiding freeing
them on end of function)
- Moved most of informative messages of elmregister from
stderr to stdout.
- iconv:auto-charset is now applied to charsets on
lib/precompiled_sets.c if that charset is marked as
unknown (ie. definition of predefined unknown
charset is ignored.)
NOTE: By default iconv:auto-charset is OFF. So that
change to be effective, use
iconv:auto-charset = ON
on elm.rc. This makes unknow charset to be
type "iconv" if iconv() is able to handle it.
WARNING: Some care should be taken so that system or
display charset does not result to have type
"iconv".
Look shared_libs/iconv/READ.ME+
- Use post_init_check() even when -G (global)
flag is given on tools of elm.
- Text form map files for charset types ascii and
one-byte-map from elm.map.txt directory (and elsewhere)
are stored to binary file elm.map.bin/unidata.bin.
File is then read or mmapped (similar than
elm.map.bin/bindata.bin). File is generated with new
tool elmbindata.
- Added O)verride charset command to override charset=
parameter of current or tagged mails.
New elmrc options:
prompt-after-pager
prompt-after-metamail
bindata
New tools:
elmbindata
New files:
lib/bindata.c
lib/mmaputil.c
hdrs/mmaputil.h
hdrs/bindata.h
utils/elmbindata.c
utils/charmapcopy.c
utils/charmapcopy.h
doc/elmbindata.1
[ This patch is branch from the main line. ]
SUMMARY: This patch makes some fixes for elmregister,
and elm's search command ('/').
- elmregister was not fixing protections on
replay phase
- 'sh Configure -cfile' was not working, only
'sh Configure -c file' read 'file'.
- "I type in the same text string to search again, it goes
to the next matched line, but the surrounding lines are
from the original match hit (the screen is not being
updated)." ( about / -command)
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- "The pgp message "[End of raw data]" is confused
as a file inclusion when it appears in a reply.
The following patch changes the message to
"[ End of raw data]", which doesn't get confused."
From: Bruce Momjian <root@candle.pha.pa.us>
[ Patch little modified. ]
- "With older elm versions, using '/', it remembered the
old search string, so I could do '/', <ENTER> to find
the next occurance of a single string. The new code
doesn't do that."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
> Returned variables to static (and avoiding freeing
them on end of function)
- Moved most of informative messages of elmregister from
stderr to stdout.
Note: You must create directory
src/screen
before applying this patch!
Undo Elm2.4ME+ PL107a (25) patch before applying this patch.
SUMMARY: This release collects PL107a patch, adds
invoke e)ditor command to header editing screen,
enhances internal mailcap parser and fixes some
bugs. New elmrc options
internal-mailcap-trusted-programs
and internal-mailcap-prompt-trusted are added.
- Return correct page after returning from
o)ptions screen when sorting order is changed.
Problem noted by: Ike Stoddard <forwstod@oplink.net>
- Possible fix for error
STREAMSCHED PANIC in streamsched.c:1127:ss_noaction_routine
when IMAP / TLS connection is closed by server.
- Handle better "skipped " counter, when there is lot of
skipped mails.
- Cursor movement is changed little
- Added invoke e)ditor command to header editing screen.
Following headers are supported:
From:
To:
CC:
Bcc:
Reply-To:
Subject:
- Added elmrc variable internal-mailcap-trusted-programs
which lists programs for which Mailcap program selection
-screen answers 'Yes' by default. In all questions are
answered 'Yes' by default, Mailcap program selection -screen
is only set if new elmrc variable
internal-mailcap-prompt-trusted is set. If program
is on internal mailcap is with full path, it should be listed
on internal-mailcap-trusted-programs also with full path.
Note however that programs given on test= clause on
mailcap are executed always without prompting.
- Internal mailcap parser now support wildcarding of subtype,
for example image/*. However these wildcarded entries are
treated with lower priority than normal entries. So they
normally do not match if there is more specific entry.
- Avoid division be zero when opening non existing
(or empty?) mailbox.
From: Darren Reed <avalon@caligula.anu.edu.au>
( Division by zero seems not be visible on all systems. )
New elmrc options:
internal-mailcap-trusted-programs
internal-mailcap-prompt-trusted
New files:
src/screen/def_screen.h
src/screen/Makefile.SH
src/screen/screen.c
src/screen/curs_input.c
src/screen/termbuffer.c
src/screen/termtitle.c
src/screen/termcharset.c
src/screen/cur_process.c
Removed files:
src/curses.c
hdrs/elm_curses.h
[ This patch is branch from the main line. ]
SUMMARY: This patch corrects page when returning
from o)ptions screen and fixes some other
minor bugs.
- Return correct page after returning from
o)ptions screen when sorting order is changed.
Problem noted by: Ike Stoddard <forwstod@oplink.net>
- Possible fix for error
STREAMSCHED PANIC in streamsched.c:1127:ss_noaction_routine
when IMAP / TLS connection is closed by server.
- Handle better "skipped " counter, when there is lot of
skipped mails.
Note: You must create directory
charset/MAPPINGS/MICSFT
before applying this patch!
SUMMARY: This release fixes some charset definitions,
add some maps to distribution and new keyword
to l)imit command.
- Marked TIS-620 to be ISO-8859-11 on lib/precompiled_sets.c
- Added some ISO-2022 codes.
- changed codeset=VISCII to charset=VISCII on lib/precompiled_sets.c
- changed codeset=DEC-MCS to charset=DEC-MCS on lib/precompiled_sets.c
- Marked that windows-1250, windows-1253, windows-1254, windows-1256
and windows-1258 are superset of US-ASCII on lib/precompiled_sets.c
- Marked that windows-1255 is superset of US-ASCII on lib/precompiled_sets.c
(it is not superset of ISO-8859-8).
- Marked that windows-1257 is superset of US-ASCII on lib/precompiled_sets.c
(it is not superset of ISO-8859-13).
- Map 0x80 - 0x9f to unicode 0x0080 - 0x009F on
ISO-8859-1 map (function map_init_latin) on lib/cs_binary.c.
On that range there is no characters, but this way is mapping
done on http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
- Added some files for ConfTool/mapfiles
NOTE: Answer 'y' to following Configure question
Should Configure ignore existing elm.mimecharsets? [s]
otherwise generated elm.mimecharsets do not include
fixes from ConfTool/mapfiles.
- Added ISO-2022-LIKE paramater to terminal.info
- Accept 0x30..0x3F as final byte of ISO 2022 identification
(these are on private use)
- Added new l)imit keyword:
header {header_name}: {header_value}
Note that this is SLOW! Currently this limit
keyword do not do MIME decoding for headers.
New files:
charset/MAPPINGS/viscii.txt
charset/MAPPINGS/dec-mcs.txt
charset/MAPPINGS/ISO8859/8859-11.TXT
charset/MAPPINGS/hp-roman8.txt
charset/MAPPINGS/MICSFT/CP437.TXT
charset/MAPPINGS/MICSFT/CP1250.TXT
charset/MAPPINGS/MICSFT/CP1253.TXT
charset/MAPPINGS/MICSFT/CP1254.TXT
charset/MAPPINGS/MICSFT/CP1255.TXT
charset/MAPPINGS/MICSFT/CP1256.TXT
charset/MAPPINGS/MICSFT/CP1257.TXT
charset/MAPPINGS/MICSFT/CP1258.TXT
SUMMARY: This release fixes some compilation and installation
problems on AIX, some bugs on folder leaving/syncing,
current pointer handling when new mail was arriving,
and saving error (introduced on PL105) of assembled
message. Builtin pager now by default overrides
$PAGER environment variable.
- Fix compilation error on AIX:
curses.c:556: error: parse error before '->' token
curses.c: In function `ScreenSize':
Problem noted by: Noam G. Nudelman <noam@mail.biu.ac.il>
( It still do not work on AIX ?)
- Fix installation error
gmake[2]: *** No rule to make target `libreg',
needed by `install_s'. Stop.
on case where shared libraries are not used.
Problem noted by: Noam G. Nudelman <noam@mail.biu.ac.il>
- On leaving of folder action message was cleared immediately.
- Current pointer location was not preserved when
new mail arrived.
- On syncing mailbox elm did not asked should messages
to be deleted, if several mailbox was open and on
last was no messages marked for deletion.
- Saving of assembled message failed, because content_length
was miscalculated (PL105 copied also Received: -headers
from part 1 and these was not calculated.)
- If builtin++ is selected as default pager, Configure
now provides option that builtin pager is used even
when environment variable $PAGER is set. That is now
also default.
SUMMARY: This release fixes various bugs, refines
message/partial handling (command 'A')
and refines searching of message bodies
(command '//'.)
- Elm2.4ME+ PL104 was giving
BROWSER PANIC in savefolder.c:3690:folder_from_dir_item
>>>No selection
if prompt
Select folder: .
was cleared (on 'elm -f .').
- Generate $ELMSTATE state information also for
assembed messages on on message assembly mode
(command 'A').
- Don't print
[ Command 'A' assembles fragmented messages. ]
when replying (only when viewing message fragment)
so that this message is similar than
[ Use 'v' to view or save this part. ]
message.
- Copy Received: -headers from part 1 (from initial enclosing
message) to assembled message.
NOTE: MIME (RFC 2046) requires that all headers
except Content-*, Subject, MIME-Version,
Message-ID and Encrypted are copied to assembled
message. It also requires that headers except
Content-*, Subject, MIME-Version, Message-ID and
Encrypted are ignored and dropped from enclosed
message.
Dropping extra headers from enclosed message makes
assembly more complicated (and dropping of Received:
-headers from enclosed message do not make sense)
so it is not now done.
- Change on handle_reply_to()
- When l)imiting list of shown messages, current pointer
was not updated to point to first visible message on
Elm2.4ME+ PL104.
- On '//' command seach also top level mail headers. They are
MIME decoded before searching.
- Command 'v' on process_showmsg_cmd() was using wrong
mailbox data.
- Added '|' -command to message assembly mode (uses readmsg
and therefore requires that folder state information
$ELMSTATE is available.) That command naturally do not
work if message assembly mode is started from view digest
as mailbox -mode (on that mode there is no useful folder
state information.)
- Fix segmentation violation when
sending mail from command line:
8 get_storage_count(mailbox = (nil))
[src/messages/messages.c:266]
9 save_copy(headers = 0x7fff2c98, cf = 0x7fff1f18,
form = 0, mime_info = 0x7fff1f20, conv_file = 0xfb56fe8,
mailbox = (nil)) [src/savecopy.c":217]
Undo Elm2.4ME+ PL102a (25) patch before applying this patch.
Note: You must create directory
src/messages
before applying this patch!
WARNING: Quite many changes. So please report new bugs
which you observe...
SUMMARY: This release collects patch 102a, makes possible
to view digets as mailbox (command 'V'), makes
possible to view fragmented (message/partial)
messages without help of metamail (command 'A')
and accepts several -f (folder) command line options
(and therefore makes possible to view several folders
as one folder.) Searching of body of messages
(command '//') now decodes mime encoding. New elmrc
option fragment-handling is added.
- Raw() was not masking NO_CHARSET from value (but
actually Raw is not called with NO_CHARSET flag)
- Removed unused function newmbox() from src/newmbox.c
- '!' (subshell) command added to attach viewer
- Now it is possible to give '-f folder' option
several times to Elm 2.4ME+. On that case combined view
of given folders is shown.
- Added sync_write_folder()
- If several folders is given with -f options, then
--mailbox-title=name can be used to give name for
combined view.
- New command 'V' (uppercase v) is added to
Subject (main) menu. This is "view digest
as mailbox" -command. This shows included
messages of current mail (digest) or tagged
mails. That command can also be used to access
original message on bounced mail.
See chapter "View digest as mailbox" for details.
- New command 'A' (uppercase a) is added to
Subject (main) menu and to digest menu.
- New elmrc option fragment-handling. Tells
how fragmented (message/partial) should be handled.
If "none", call metamail (if available) for these.
If "manual", let user to give command 'A' to
enter message assembly mode. If "auto", go
automatically to message assembly mode.
See chapter "Message assembly mode" for details.
- pagemultipart was not handled correctly if
subtype of multipart was unknown.
- If .elm/mail.services was giving port for service
(for example POP), and there was several IP addresses for
name, wrong port was attempt for other than
first address.
- "Elm leaves a /tmp/elmfwd.xxx file behind when you
forward a message"
Reported by: Konstantinos Konstantinides - Stream
<kk@corp.cirrus.com>
> That happened when mimeforward = YES. Changed
mime_t_clear() to take attention to unlink flag.
- If given '^' command (toggle delete flag), go to next
command regadles is next command marked for deletion
or not on resolve mode. In other works same way than
u)undelete command works.
( Well, '^' command is not very useful when ^ on
keyboard is 'dead' (ie. prefix or modifier) key. )
- Added string_matches_ascii()
- '//' -command (seach message bodies) now decodes
MIME content transfer encoding before searching data.
Also charset is taken to account.
- '//' command now takes accoount only selected messages
(ie. works same way than '/' -command).
Warning: Changes on redrawing of screen. Complain if
redrawing do not work as usual on some situation.
Impementation of current message "pointer"
is changed. Complain if it shows to "wrong"
message.
Handling of Subject (main) menu is changed.
Now '//' command mostly ignores mail (and MIME)
headers when looking match.
Message assembly do not have much testing, because
generally MIME's message fragmentation -mechanism
(message/partial) is not used.
New elmrc option:
fragment-handling
New files:
src/messages/Makefile.SH
src/messages/def_messages.h
src/messages/messages.c
src/messages/header_alloc.c
src/messages/storage.c
src/messages/digest.c
src/digest.c
src/def_elm.h
melib/def_melib.h
melib/mimewalk.c
src/messages/partial.c
melib/partial.c
src/partial.c
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes temp file leak
when forwarding with mimeforward = YES and
connection to wrong port when name have
several IP addresses and file
.elm/mail.services was used.
- Raw() was not masking NO_CHARSET from value (but
actually Raw is not called with NO_CHARSET flag)
- pagemultipart option was not handled correctly if
subtype of multipart was unknown.
- If .elm/mail.services was giving port for service
(for example POP), and there was several IP addresses for
name, wrong port was attempt on connection for other
than first address.
- "Elm leaves a /tmp/elmfwd.xxx file behind when you
forward a message"
Reported by: Konstantinos Konstantinides - Stream
<kk@corp.cirrus.com>
> That happened when mimeforward = YES. Changed
mime_t_clear() to take attention to unlink flag.
Undo Elm2.4ME+ PL101a (25), Elm2.4ME+ PL101b (25) and
Elm2.4ME+ PL101c (25) patches before applying this patch.
SUMMARY: This release collects patches 101a - 101c,
adds support for environment variables (on some
cases) to internal mailcap parser, changes
folder handling of nfrm, adds new tool
elmlibregister and fixes some bugs. Now dynamic
libraries (iconv, smtp, tls) are registered
on (post-)install time to global elm.rc, if wanted.
- Fix (harmless) error message
bin/elmregister: [on_current] Bad command letter: s
(occurs when upgrading version.)
- Fix elmregister message
Keeping link .../elmuninstall.1 from old version (was (null))
- Running of test= on internal mailcap parser was causing
segmentation violation
- Added to support for environment variables ($xxxx)
inside of " on internal mailcap parser (only environment
variables formed from letters are supported). Environment
variables outside of quotes are not supported
by internal mailcap parser.
- Fix crash on header editing screen
- "We're setting up Elm 2.4ME+ PL99b (25) for use as an
IMAP client to our mailserver, and I ran into a problem
when configuring the main elm.rc file.
I wanted to be able to set the incoming-mailbox variable
to be $USER@engmail, so that by default users would be
prompted for a password, and mail would be retrieved from
their engmail account.
However, when I set "incoming-mailbox = $USER@engmail"
and ran elm, I got:
Cannot initialize "incoming-mailbox" -
error expanding "$USER@engmail".
I traced the problem to the expand_path() routine in the
lib/expand.c file. The environment variable expansion was
using '/' as its only delimiter, so that the $USER portion
wasn't being split off from the remainder of the path, and
the environment variable lookup failed.
By adding '@' to the possible delimiters, the problem goes
away."
From: Paul D. McKone <pdmckone@engmail.uwaterloo.ca>
- Adding X-ELM-OSV, X-Mailer or Content-Name headers to
.elm/elmheaders was causing crash (now they are ignored.)
- Add fclose() to mailcap.c
- Do not ignore reply-to header on .elm/elmheaders.
Problem noted by: Rui Aguiar <ruilaa@it.pt>
- Fix crash
ISO2022 PANIC in cs_iso2022.c:836:state_add_raw
>>>Value not in range 0-255
- Fix Segmentation fault when viewing attachments when
attachment have a corrupted header
Content-Type: type=application/msword
- Print enconding on MIME structure Menu also when it
fits only partially to column
- Reprint error message after turning Raw off when
locking of mailbox fails.
- Changed error messages of "frm".
- If "frm -s new" or "nfrm" is given for folder instead
of mailbox, show 'new' messages. But also print error
message:
WARNING: %s is folder, not mailbox!
Delivery of new mail to folder when it is open may
corrupt it.
Setting default-folder-status = New disables warning.
- Fix for valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x80E9136: expand_dt_path (rc_handle.c:1130)
(actually loop condition did not depend
uninitialized value although one subexpresions value
was uninitialized on that situation.)
- Fix for valgrind reported error/warning
1310 bytes in 177 blocks are definitely lost in
loss record 19 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x80AE3B8: dequote_opt (charset.c:787)
by 0x80AE985: load_charset_map_info (charset.c:948)
- Fix for valgrind reported error/warning
552 bytes in 68 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x80F4F29: set_dir_selection (savefolder.c:2141)
by 0x80F23A5: real_select_local (savefolder.c:747)
- Fix for valgrind reported error/warning
528 bytes in 66 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x8105638: malloc_string (string.c:116)
by 0x8105873: new_string2 (string.c:180)
by 0x80C506A: hdr_text (hdrdecode.c:412)
- Fix for valgrind reported error/warning
280 bytes in 35 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0827: safe_malloc (safemalloc.c:46)
by 0x8105644: malloc_string (string.c:116)
by 0x810587F: new_string2 (string.c:180)
by 0x80C4D7B: hdr_comment (hdrdecode.c:272)
- Fix for valgrind reported error/warning
96 bytes in 12 blocks are definitely lost in loss
record 11 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0833: safe_malloc (safemalloc.c:46)
by 0x8105650: malloc_string (string.c:116)
by 0x810588B: new_string2 (string.c:180)
by 0x80C4F1F: hdr_phrase (hdrdecode.c:348)
- Fix for valgrind reported error/warning
224 bytes in 11 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0847: safe_malloc (safemalloc.c:46)
by 0x81056D2: malloc_string (string.c:130)
by 0x8106B98: dup_string (string.c:678)
by 0x80DAD85: add_expanded_addr_ (outheaders.c:134)
- Fix for valgrind reported error/warning
24 bytes in 1 blocks are definitely lost in loss
record 1 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F083B: safe_malloc (safemalloc.c:46)
by 0x80C6887: update_header_list (headers.c:575)
by 0x809C8BB: state_read_headers (parse_util.c:137)
by 0x809C7C8: file_read_headers (parse_util.c:104)
by 0x8076770: copy_message_2 (fileio.c:1048)
- Fix for valgrind reported error/warning
52 bytes in 5 blocks are definitely lost in loss
record 6 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F087B: safe_malloc (safemalloc.c:46)
by 0x8105706: malloc_string (string.c:130)
by 0x81057CC: new_string (string.c:153)
by 0x80DB167: make_surface_addr (outheaders.c:235)
by 0x8059485: build_address_l (addr_util.c:452)
- Fix for valgrind reported error/warning
32 bytes in 4 blocks are definitely lost in loss record 5 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F089F: safe_malloc (safemalloc.c:46)
by 0x81056BC: malloc_string (string.c:116)
by 0x810627F: cat_strings (string.c:434)
by 0x80C510B: hdr_text (hdrdecode.c:419)
by 0x80C51E6: hdr_to_string (hdrdecode.c:462)
by 0x80C5CC3: hdr_decode_from_text (headers.c:36)
by 0x80C71C4: give_decoded_header (headers.c:816)
by 0x809CB02: state_write_header (parse_util.c:197)
- Fix for valgrind reported error/warning
32 bytes in 4 blocks are definitely lost in loss record 5 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08B3: safe_malloc (safemalloc.c:46)
by 0x8104DD1: alloc_simple (streamsched.c:1047)
- Fix for valgrind reported error/warning
16 bytes in 2 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08B3: safe_malloc (safemalloc.c:46)
by 0x81056F8: malloc_string (string.c:116)
by 0x810582C: new_string (string.c:153)
by 0x807B350: enter_helper (in_utils.c:432)
by 0x807BECE: optionally_enter2 (in_utils.c:863)
by 0x807C01E: optionally_enter (in_utils.c:898)
- Fix for valgrind reported error/warning
16 bytes in 2 blocks are definitely lost in loss record 1 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08CB: safe_malloc (safemalloc.c:46)
by 0x80B33D7: cs_stream_from_ascii (cs_binary.c:1508)
by 0x8107089: stream_from_string (string.c:799)
by 0x807C049: optionally_enter (in_utils.c:909)
- Fix for valgrind reported error/warning
140 bytes in 1 blocks are definitely lost in loss record 13 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0996: safe_realloc (safemalloc.c:62)
by 0x80E509D: mbx_prepare_read_pop (pop.c:1592)
- Fix for valgrind reported error/warning
15 bytes in 1 blocks are definitely lost in loss record 1 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F09A2: safe_realloc (safemalloc.c:62)
by 0x80A1357: make_mailcap_arg (mailcap.c:918)
by 0x80A1EF8: mailcap_view_command (mailcap.c:1319)
by 0x80973A6: prompt_programs_1 (showmsg.c:131)
by 0x8097587: prompt_programs_1 (showmsg.c:188)
by 0x80975F1: prompt_programs (showmsg.c:211)
- Fix for valgrind reported error/warning
32 bytes in 2 blocks are definitely lost in loss record 5 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0933: safe_malloc (safemalloc.c:46)
by 0x80C6973: update_header_list (headers.c:575)
by 0x80C6D3F: read_folder_headers (headers.c:700)
by 0x80D5771: prepare_message_access (mbox.c:1351)
- Fix for valgrind reported error/warning
8 bytes in 1 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F094F: safe_malloc (safemalloc.c:46)
by 0x8105794: malloc_string (string.c:116)
by 0x8106CC8: dup_string (string.c:678)
by 0x812FEB5: sb_get_line_from_mem (sb_mem.c:69)
by 0x8109A89: get_line_from_stringbuffer (stringbuffer.c:177)
by 0x8067162: builtinplusplus (builtin++.c:176)
- Fix for valgrind reported error/warning
55 bytes in 2 blocks are definitely lost in loss record 6 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F099F: safe_malloc (safemalloc.c:46)
by 0x80FDE2A: malloc_service_entry (service_list.c:198)
- Fix for valgrind reported error/warning
3 bytes in 1 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F099F: safe_malloc (safemalloc.c:46)
by 0x81221FC: imap_got_header_line (imap.c:5794)
by 0x8122863: mbx_copy_header_imap (imap.c:5991)
- Fix for valgrind reported error/warning
4050 bytes in 67 blocks are definitely lost in loss
record 21 of 24
at 0x4015E8A3: realloc (vg_clientfuncs.c:276)
by 0x80F0A6E: safe_realloc (safemalloc.c:62)
by 0x80E0025: elm_vmessage (output.c:1229)
by 0x80E0881: elm_message (output.c:1460)
by 0x8121F12: mbx_copy_envelope_imap (imap.c:5687)
- Fix for valgrind reported error/warning
9 bytes in 1 blocks are definitely lost in loss record 2 of 30
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0B37: safe_strdup (safemalloc.c:78)
by 0x80FB31A: probe_imap_capa_lib (shared.c:1010)
- Fix for valgrind reported error/warning
40 bytes in 1 blocks are definitely lost in loss record 6 of 29
at 0x4015E8A3: realloc (vg_clientfuncs.c:276)
by 0x80F0A6E: safe_realloc (safemalloc.c:62)
by 0x80E0209: elm_vmessage (output.c:1281)
by 0x80E0881: elm_message (output.c:1460)
by 0x4146ED0A: smtp_common_mailer_backend (smtp.c:1026)
- Fix for valgrind reported error
Invalid read of size 4
at 0x80C0994: debug_level_check (debug.c:256)
by 0x80F0B22: safe_realloc (safemalloc.c:69)
by 0x80C08B1: set_debugging (debug.c:214)
- Added "install_libs" target for testing top level Makefile
- Due on error on Makefile on doc/, elmrc-info (and possible
other files) was not installed.
- Added new tool elmlibregister, which check is libraries
given on use-library on elm.rc (or on .elm/elmrc) loadable.
Now Configure asks which libraries should be registered on
on (post-)install time. elmlibregister command is used to
add these libraries to use-library line on global elm.rc.
- Quotes was handled incorrectly on internal mailcap parser.
New tools:
elmlibregister
New files:
utils/elmlibregister.c
doc/elmlibregister.1
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes segmentation fault, when
when viewing attachment with unxepected
Content-Type, and fixes some memory leaks
and other errors found by memory checker
tools. Also other small changes are included
to this patch.
- Fix Segmentation fault when viewing attachments when
attachment have a corrupted header
Content-Type: type=application/msword
- Print enconding on MIME structure Menu also when it
fits only partially to column
- Reprint error message after turning Raw off when
locking of mailbox fails.
- Fix for valgrind reported error
Conditional jump or move depends on uninitialised value(s)
at 0x80E9136: expand_dt_path (rc_handle.c:1130)
(actually loop condition did not depend
uninitialized value although one subexpresions value
was uninitialized on that situation.)
- Fix for valgrind reported error/warning
1310 bytes in 177 blocks are definitely lost in
loss record 19 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x80AE3B8: dequote_opt (charset.c:787)
by 0x80AE985: load_charset_map_info (charset.c:948)
- Fix for valgrind reported error/warning
552 bytes in 68 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x80F4F29: set_dir_selection (savefolder.c:2141)
by 0x80F23A5: real_select_local (savefolder.c:747)
- Fix for valgrind reported error/warning
528 bytes in 66 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F081B: safe_malloc (safemalloc.c:46)
by 0x8105638: malloc_string (string.c:116)
by 0x8105873: new_string2 (string.c:180)
by 0x80C506A: hdr_text (hdrdecode.c:412)
- Fix for valgrind reported error/warning
280 bytes in 35 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0827: safe_malloc (safemalloc.c:46)
by 0x8105644: malloc_string (string.c:116)
by 0x810587F: new_string2 (string.c:180)
by 0x80C4D7B: hdr_comment (hdrdecode.c:272)
- Fix for valgrind reported error/warning
96 bytes in 12 blocks are definitely lost in loss
record 11 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0833: safe_malloc (safemalloc.c:46)
by 0x8105650: malloc_string (string.c:116)
by 0x810588B: new_string2 (string.c:180)
by 0x80C4F1F: hdr_phrase (hdrdecode.c:348)
- Fix for valgrind reported error/warning
224 bytes in 11 blocks are definitely lost in loss
record 16 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0847: safe_malloc (safemalloc.c:46)
by 0x81056D2: malloc_string (string.c:130)
by 0x8106B98: dup_string (string.c:678)
by 0x80DAD85: add_expanded_addr_ (outheaders.c:134)
- Fix for valgrind reported error/warning
24 bytes in 1 blocks are definitely lost in loss
record 1 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F083B: safe_malloc (safemalloc.c:46)
by 0x80C6887: update_header_list (headers.c:575)
by 0x809C8BB: state_read_headers (parse_util.c:137)
by 0x809C7C8: file_read_headers (parse_util.c:104)
by 0x8076770: copy_message_2 (fileio.c:1048)
- Fix for valgrind reported error/warning
52 bytes in 5 blocks are definitely lost in loss
record 6 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F087B: safe_malloc (safemalloc.c:46)
by 0x8105706: malloc_string (string.c:130)
by 0x81057CC: new_string (string.c:153)
by 0x80DB167: make_surface_addr (outheaders.c:235)
by 0x8059485: build_address_l (addr_util.c:452)
- Fix for valgrind reported error/warning
32 bytes in 4 blocks are definitely lost in loss record 5 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F089F: safe_malloc (safemalloc.c:46)
by 0x81056BC: malloc_string (string.c:116)
by 0x810627F: cat_strings (string.c:434)
by 0x80C510B: hdr_text (hdrdecode.c:419)
by 0x80C51E6: hdr_to_string (hdrdecode.c:462)
by 0x80C5CC3: hdr_decode_from_text (headers.c:36)
by 0x80C71C4: give_decoded_header (headers.c:816)
by 0x809CB02: state_write_header (parse_util.c:197)
- Fix for valgrind reported error/warning
32 bytes in 4 blocks are definitely lost in loss record 5 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08B3: safe_malloc (safemalloc.c:46)
by 0x8104DD1: alloc_simple (streamsched.c:1047)
- Fix for valgrind reported error/warning
16 bytes in 2 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08B3: safe_malloc (safemalloc.c:46)
by 0x81056F8: malloc_string (string.c:116)
by 0x810582C: new_string (string.c:153)
by 0x807B350: enter_helper (in_utils.c:432)
by 0x807BECE: optionally_enter2 (in_utils.c:863)
by 0x807C01E: optionally_enter (in_utils.c:898)
- Fix for valgrind reported error/warning
16 bytes in 2 blocks are definitely lost in loss record 1 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F08CB: safe_malloc (safemalloc.c:46)
by 0x80B33D7: cs_stream_from_ascii (cs_binary.c:1508)
by 0x8107089: stream_from_string (string.c:799)
by 0x807C049: optionally_enter (in_utils.c:909)
- Fix for valgrind reported error/warning
140 bytes in 1 blocks are definitely lost in loss record 13 of 24
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0996: safe_realloc (safemalloc.c:62)
by 0x80E509D: mbx_prepare_read_pop (pop.c:1592)
- Fix for valgrind reported error/warning
15 bytes in 1 blocks are definitely lost in loss record 1 of 26
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F09A2: safe_realloc (safemalloc.c:62)
by 0x80A1357: make_mailcap_arg (mailcap.c:918)
by 0x80A1EF8: mailcap_view_command (mailcap.c:1319)
by 0x80973A6: prompt_programs_1 (showmsg.c:131)
by 0x8097587: prompt_programs_1 (showmsg.c:188)
by 0x80975F1: prompt_programs (showmsg.c:211)
- Fix for valgrind reported error/warning
32 bytes in 2 blocks are definitely lost in loss record 5 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0933: safe_malloc (safemalloc.c:46)
by 0x80C6973: update_header_list (headers.c:575)
by 0x80C6D3F: read_folder_headers (headers.c:700)
by 0x80D5771: prepare_message_access (mbox.c:1351)
- Fix for valgrind reported error/warning
8 bytes in 1 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F094F: safe_malloc (safemalloc.c:46)
by 0x8105794: malloc_string (string.c:116)
by 0x8106CC8: dup_string (string.c:678)
by 0x812FEB5: sb_get_line_from_mem (sb_mem.c:69)
by 0x8109A89: get_line_from_stringbuffer (stringbuffer.c:177)
by 0x8067162: builtinplusplus (builtin++.c:176)
- Fix for valgrind reported error/warning
55 bytes in 2 blocks are definitely lost in loss record 6 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F099F: safe_malloc (safemalloc.c:46)
by 0x80FDE2A: malloc_service_entry (service_list.c:198)
- Fix for valgrind reported error/warning
3 bytes in 1 blocks are definitely lost in loss record 1 of 25
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F099F: safe_malloc (safemalloc.c:46)
by 0x81221FC: imap_got_header_line (imap.c:5794)
by 0x8122863: mbx_copy_header_imap (imap.c:5991)
- Fix for valgrind reported error/warning
4050 bytes in 67 blocks are definitely lost in loss
record 21 of 24
at 0x4015E8A3: realloc (vg_clientfuncs.c:276)
by 0x80F0A6E: safe_realloc (safemalloc.c:62)
by 0x80E0025: elm_vmessage (output.c:1229)
by 0x80E0881: elm_message (output.c:1460)
by 0x8121F12: mbx_copy_envelope_imap (imap.c:5687)
- Fix for valgrind reported error/warning
9 bytes in 1 blocks are definitely lost in loss record 2 of 30
at 0x4015E30F: malloc (vg_clientfuncs.c:103)
by 0x80F0B37: safe_strdup (safemalloc.c:78)
by 0x80FB31A: probe_imap_capa_lib (shared.c:1010)
- Fix for valgrind reported error/warning
40 bytes in 1 blocks are definitely lost in loss record 6 of 29
at 0x4015E8A3: realloc (vg_clientfuncs.c:276)
by 0x80F0A6E: safe_realloc (safemalloc.c:62)
by 0x80E0209: elm_vmessage (output.c:1281)
by 0x80E0881: elm_message (output.c:1460)
by 0x4146ED0A: smtp_common_mailer_backend (smtp.c:1026)
- Fix for valgrind reported error
Invalid read of size 4
at 0x80C0994: debug_level_check (debug.c:256)
by 0x80F0B22: safe_realloc (safemalloc.c:69)
by 0x80C08B1: set_debugging (debug.c:214)
[ This patch is branch from the main line. ]
SUMMARY: This patch makes possible to set
incoming-mailbox = $USER@imap-sever on
elm.rc, fixes crash caused by certain
headers on .elm/elmheaders and
fixes another crash when displaying EUC
mail. Reply-To header on .elm/elmheaders
is no longer ignored.
- "We're setting up Elm 2.4ME+ PL99b (25) for use as an
IMAP client to our mailserver, and I ran into a problem
when configuring the main elm.rc file.
I wanted to be able to set the incoming-mailbox variable
to be $USER@engmail, so that by default users would be
prompted for a password, and mail would be retrieved from
their engmail account.
However, when I set "incoming-mailbox = $USER@engmail"
and ran elm, I got:
Cannot initialize "incoming-mailbox" -
error expanding "$USER@engmail".
I traced the problem to the expand_path() routine in the
lib/expand.c file. The environment variable expansion was
using '/' as its only delimiter, so that the $USER portion
wasn't being split off from the remainder of the path, and
the environment variable lookup failed.
By adding '@' to the possible delimiters, the problem goes
away."
From: Paul D. McKone <pdmckone@engmail.uwaterloo.ca>
- Adding X-ELM-OSV, X-Mailer or Content-Name headers to
.elm/elmheaders was causing crash (now they are ignored.)
- Do not ignore reply-to header on .elm/elmheaders.
Problem noted by: Rui Aguiar <ruilaa@it.pt>
- Fix crash
ISO2022 PANIC in cs_iso2022.c:836:state_add_raw
>>>Value not in range 0-255
[ This patch is branch from the main line. ]
SUMMARY: This patch fixes crash on internal mailcap parser
and on header editing screen.
- Fix (harmless) error message
bin/elmregister: [on_current] Bad command letter: s
(occurs when upgrading version.)
- Fix elmregister message
Keeping link .../elmuninstall.1 from old version (was (null))
- Running of test= on internal mailcap parser was causing
segmentation violation
- Fix crash on header editing screen
Undo Elm2.4ME+ PL100a (25) patch before applying this patch.
SUMMARY: This release collects patch 100a, adds support
for changing title of xterm, changes installation
method (installed files are tracked during installation
and elmuninstall command is added) and enhances
internal mailcap parser.
- Configure did not generated mapping for iso_8859_1
locale (on SunOS).
Problem noted by: Tommi Nieminen <Tommi.Nieminen@sonera.com>
- Do not use tempnam() on lib/mailer.c so that linker
do not produce warnings (actual checks for attacks
are done safeopen_rdwr() -- this does not effect to that.)
- Now elm supports changing title (and icon name) of xterm
window. Method to changing title must be specified
on ~/elm/terminal.info or on global elm.terminalinfo
like following:
xterm FLAG xterm-title
iris-ansi FLAG xwsh-title
NOTE: Code currently assumes that title (and icon) are
US-ASCII only. It is unclear how charsets are handled with
xterm title (and icon) name.
- New elmrc option set-window-title (default: OFF) enables
automatic changing of title (and icon) name when folder
is changed.
- Command line options --title-name and --icon-name
can set xterm's window title and icon name. These options
override automatic title/icon name updating specified with
elmrc option set-window-title .
- Command line option --with-title sets initial title for
Elm. After changing folder title (and icon) name is updated
same way as elmrc option set-window-title is sit. Giving
just option --with-title without title it is possible to
enable title updating without setting elmrc option
set-window-title.
- Added attachment-dir elmrc variable, which can be used
as {doc}/ prefix on filename prompts.
- {doc}/ is offered on attachment filename prompts as default
if attachment-dir directory exists.
> Meta expand provides:
+filename == file on mail folder directory
=filename == file on mail folder directory
%filename == file on mail folder directory
{rc}/filename == file on .elm subdirectory of home
{lib}/filename == file on Elm's global library directory
{etc}/filename == file on Elm's global configure directory
{doc}/filename == file on attachment-dir directory
And also same epansions than expand_env():
~/filename == file on home directory
Environment variable components
- If attachment-dir is not set and ~/Documents exists,
then attachment-dir is set to ~/Documents.
- {doc}/ is also added to file browser's default directory
- "When I choose "f)orget" instead of "s)end" I abandon
writing/sending the current piece of email and get the
message:
Message kept. Can be restored at next f)orward, m)ail or r)eply.
Well, when I choose "f" or "m" the saved text of the message
doesn't pop up."
Problem noted by: Andrzej Marecki <amr@astro.uni.torun.pl>
> Don't unlink temporary editor's work file if mail is
abandon.
- Fix case where file was "attached" when filename was not given.
- Installed files are now tracked during installation.
List of files is keep on $etc/elm.filelist. That is
done with program elmregister.
- Added tool $lib/elmuninstall which can used to uninstall
elm (without that source tree is available -- so that
"make uninstall" can be used.)
- Commands elmterminal, elmrc-write, elmunidata, elmcharset
are now executed after installation. These commands are
recorded to $etc/elm.filelist during installation.
Source data for these commands are stored to stage
directory (../var/stage-elm2.4me+) during installation.
These recorded post-install commands are executed with
"elmregister replay" ("make install" does that automatically.)
- Configure now asks that should it create "package" target
to Makefile. Command
make package ROOT=/directory
can be used to install elm to directory /directory
WITHOUT executing post-install command. Post installation
commands are assumed to be executed with
$lib/elmregister replay
(if /directory is moved to / ie. final destination)
Command
/directory/$lib/elmregister replay -R /directory
can be used to move files from /directory to / and
execute post-install commands.
That command is recorded to file
/directory/README.PACKAGE.sh
(if you move files from /directory to / you may want
remove README.PACKAGE.sh first!)
> If 'package' target is enabled, Configure assumes that
Elm 2.4ME+ is compiled for binary package distributes,
and do not store domainname as default domain.
* In that case 'elm -v' says:
Compiled for binary distribution.
Send bug reports to packager of binary distribution.
( otherwise 'elm -v' says:
Send bug reports to Kari Hurtta <hurtta+elm@ozone.FMI.FI>
WARNING: Elm is not intended to be distributed in
binary form.
)
- Command
$lib/elmregister unstage
may be used to uninstall temporary files from
stage directory (../var/stage-elm2.4me+). After
that command "elmregister replay" do not have effect.
- "make install" does "elmregister unstage" after
"elmregister replay"
- Fix case where elmunidata fails install unidata.bin
when it does not exists.
- Added to support to " and ' characters on internal
mailcap parser (so these shell meta characters are
supported on mailcap entries).
- Added support for nametemplate on internal mailcap
parser. Only templates what specify filename extension
are supported.
New command line options:
--title-name=XXXXX
--icon-name=XXXX
--with-title=XXX
--with-title
New elmrc options:
set-window-title
attachment-dir
New files:
utils/elmregister.c
hdrs/defs_major.h
doc/prlong.1
Makefile-1.SH
utils/reghelper.c
hdrs/reghelper.h
doc/elmregister.1
[ This patch is branch from the main line. ]
- Configure did not generated mapping for iso_8859_1
locale (on SunOS).
Problem noted by: Tommi Nieminen <Tommi.Nieminen@sonera.com>
- Do not use tempnam() on lib/mailer.c so that linker
do not produce warnings (actual checks for attacks
are done safeopen_rdwr() -- this does not effect to that.)
- "When I choose "f)orget" instead of "s)end" I abandon
writing/sending the current piece of email and get the
message:
Message kept. Can be restored at next f)orward, m)ail or r)eply.
Well, when I choose "f" or "m" the saved text of the message
doesn't pop up."
Problem noted by: Andrzej Marecki <amr@astro.uni.torun.pl>
> Don't unlink temporary editor's work file if mail is
abandon.
Undo Elm2.4ME+ PL99a (25), Elm2.4ME+ PL99b (25)
Elm2.4ME+ PL99c (25), Elm2.4ME+ PL99d (25),
Elm2.4ME+ PL99e (25) and Elm2.4ME+ PL99f (25)
patches before applying this patch.
WARNING: Changes on MIME handling. So please report new bugs
which you observe...
SUMMARY: This release collects patches 99a - 99f.
This release also adds (some) support for EUC charsets
and for mailcaps without using metamail.
Mailcap support uses new elmrc option
internal-mailcaps. This release also includes
various other changes.
- There should not be Return-Path header visible
on Pre-Send screen on Beginner user level.
- For charset types utf-7, utf-8 and imap allow only
"other-set" iso2022 bank specification.
- Fix Segmentation fault with elm -D ISO-2022-JP
when printing subject.
- Handling of multipart/signed and
multipart/encrypted was broken Elm2.4ME+ PL98 (25)
> Problem noted by: Bruce Momjian
- 'Configure -c FILE' reads FILE instead of config.sh
(config.sh is written)
- From (or To) name was not correctly clipped when
used double width characters (ie. elm -D ISO-2022-JP)
- Subject was incorrectly truncated when it included
double wide characters (and was not highlighted)
- Turns out that kterm suuports ISO-8859-1 -- actually
builtin fontlist works. Added
"kterm ISO-2022 ISO-8859-1"
line to doc/terminal.info
> Also note that initially kterm does NOT default to
ISO-8859-1 -- therefore ISO-8859-1 works only when
elm explicity switch to ISO-8859-1 (for example
with 'elm -D ISO-8859-1')
> To get best result give fontlist -fl option to
kterm (example
kterm -fl '-*-fixed-medium-r-normal--16-*-iso8859-*,\
-*-*-medium-r-normal--16-*-c-*-iso8859-*,\
-*-*-bold-r-normal--16-*-c-*-*.*-0'
But that one line, removing \ and spaces.)
- ConfTool/GenTerminalinfo is now able to add new
charsets to existing terminal entries on bin/elm.terminalinfo
- sh Configure -S and
sh Configure -M now updates bin/elm.terminalinfo
(and not only bin/elm.mimecharsets)
- Whitespaces on end of lines of bin/elm.terminalinfo was causing
parsing problems. Fixed similar problem on several
parsing routine.
- Fix panic with ISO-2022-JP text with message
STRING PANIC in cs_iso2022.c:1757:add_char_stream
>>>Bad control character
caused by mishandling of corrupted or unexpected input
- Fixed some compilation warnings.
- If metamail is called when using 'h' command
(show headers), add KEYHEADS=* and KEYIGNHEADS=
to environment (causing metamail to print all headers)
- Allow Unicode Format A maps to be space seperated
(although they should be tab sebarated)
- Inital bank settings was done incorrectly
- Added support for EUC charsets (lib/cs_iso2022.c).
- Terminal is now initialized to used charset even
when switching of display charset is not asked.
- "I'm working on updating the Debian elm-me+ package; a
number of patches have accumulated over the years, and
the first step seems to be integrating them with the
upstream release."
From: Matej Vela <vela@debian.org>
> Only very small part from that patch/patches is included
on here:
* shared_libs/iconv/config: Some typos fixed.
* shared_libs/iconv/iconv.c: GNU libc 2.2 no longer uses const
for iconv(3) args.
* melib/pgp_decode.c: Default to GnuPG rather than PGP 5
have_pgp() will return PGP 5 if PGP 5 and GnuPG is not installed
(when GnuPG is used as default). When PGP 5 is used as default
have_pgp() do not check GnuPG at all.
* "Configure: Linux standards (FSSTND, FHS) consider
/usr/lib/sendmail obsolete and recommend /usr/sbin/sendmail:
the former still exists as a symlink, so it's important to
check for the latter first. "
Also Sendmail Installation and Operation Guide says
that binary is installed to /usr/sbin.
* Fixed some typos.
* "Changed Makefiles to use $(MFLAGS) rather than $(MAKEFLAGS)
for compatibility with older makes (e.g. 4.2BSD). Modern
makes which support $(MAKEFLAGS) pass it through the
environment anyway; passing it explicitly will double the
variable assignments on each level."
* "Debian keeps the configuration files in /etc, so I've added
support for a separate $etc directory. It still defaults to
$lib."
> Meta expand provides:
+filename == file on mail folder directory
=filename == file on mail folder directory
%filename == file on mail folder directory
{rc}/filename == file on .elm subdirectory of home
{lib}/filename == file on Elm's global library directory
{etc}/filename == file on Elm's global configure directory
And also same epansions than expand_env():
~/filename == file on home direccory
Environment variable components
- Do not remove $sendmail (SENDMAIL_MAILER_PATH) on Configure,
if $mailer is some other.
- Do not allow using /etc (or /etc/mail) as configuration
directory $etc. That may cause conflict with file $etc/aliases
(with sendmail's file of same name.)
- melib/pgp_decode.c: If reading of pgp/gpg result is
interrupted, retry reading of it.
- shared_libs/tls/config: Try locate libssl from system directory
Problem noted by: Matej Vela <vela@debian.org>
- shared_libs/iconv: Try locate libiconv from system library
- Testing sendmail options with -bv
is not posisible on sendmail 8.12 (if sendmail is
installed as setgid and mqueue is not accessible by user).
Threfore do testing of options by sending mail
to user instead!
- Fixed some file descriptor leaks
Problem noted by: Darren Reed <avalon@coombs.anu.edu.au>
> Close file descriptor on load_locale_map()
after reading elm.mimecharsets (.elm/mime.charsets).
> Close file descriptor on load_terminal_map()
after reading elm.terminalinfo (.elm/terminal.info)
> Close file descriptor on get_unidata()
after reading elm.map.bin/unidata.bin
- "I don't believe it is closing the temporary file in
/tmp when it is no longer being used after sending an
email."
Problem noted by: Darren Reed <avalon@coombs.anu.edu.au>
> Add mailer close function which closes descriptor
(out_state_destroy() do not close it)
- mailer info was not correctly deleted/closed
-- therefore submission mailer did not closed socket
to smtp server
- Configure: On Linux no additional libraries (for example
-lintl) are not needed
- "But I have a little problem with imap: When elm connects to
an IMAP server it first reads the list of messages and then
the list of headers (read_headers, copy_envelope_folder ...).
This takes a very long time: It starts with the UID=1 and
increases the UID until it finds the message."
"With these UIDs the search for the first message runs a loop
from 1 to 337934011 which takes long! (imap.c line 5462-5477,
elm2.4ME+PL99c)"
Problem noted by: Rainer Bawidamann <bawidama@users.sourceforge.net>
> Added fix to imap code
- Trying send pgp2 (signed or encrypted) message
was causing crash.
- If terminal was (mis?)using ti (enter_ca_mode) /
te (exit_ca_mode) to change screen, error message
from "elm -f bad-folder" was not visible.
- Reduce sleep after "You seem to have ELM already reading this mail"
because now message is visible also after elm is
exited.
- (function hdr_decode_from_phrase) Printing of headers
(which include phrases) was adding extra space between tokens
-- adding of spaces between tokens is not needed because separating
spaces (and comments) are not removed during parsing.
This is visible on headers like
In-reply-to: "Kari E. Hurtta's" message
<elm2.4ME+/PL99d/1@ozone.FMI.FI> of
"10 Nov 2002 12:04:00 +0200"
- Added one missing unlink() to error handling
on mime_decode.c
- Removed space from end of some lines from MANIFEST
Problem noted by: Matej Vela <vela@debian.org>
- Fix panic on header editing screen on In-Reply-To:
STRING PANIC in cs_binary.c:1043:cs_give_unicode_from_ascii
>>>Index out of array
- Header editing screen was not regognizing In-reply-to
if it only includes phrase (without message-id).
In-reply-to header should include only message-id, but if
but if only phrase is entered accept it (with warning as
usual.)
- "Now I have another problem: The IMAP RFC says that for a
read-only folder the answer to the SELECT command MUST
contain the READ-ONLY flag while for a read-write folder
the response SHOULD contain the READ-WRITE flag. So the
default (if no flag is given) is read-write (elm has read-only
as default)."
Problem noted by: Rainer Bawidamann <bawidama@users.sourceforge.net>
> Assume folder to be writable just before calling SELECT
- Free parser data on failure of mime_parser_parse()
- Wait after error before calling exit() on init
so that error messages are visible
- Removed in_state_FILE()
- Added some support mailcap support (without metmail).
That uses elmrc variable "internal-mailcaps". List may be
space or ':' seperated. Separate values may be quoted.
Set value to "none" to disable internal mailcap support.
NOTE: RFC 1343 (A User Agent Configuration Mechanism for
Multimedia Mail Format Information) is NOT followed.
RFC 1343 says:
Because of differences in shells and the
implementation and behavior of the same shell
from one system to another, it is specified that the
command line be intended as input to the Bourne
shell, i.e. that it is implicitly preceded by "/bin/sh -c "
on the command line.
This is NOT done. Using of that may case that sender of mail
may execute command by using shells special characters. Avoiding
of that requires carefull quotation of mailcap entries. And
correct quotation requires carefull parsing of Bourne shell
syntax. And we do not really know if /bin/sh following
Bourne shell syntax or have on it some extensions.
Only view command and test command is supported. And only
if there is not any meta character of shell on there so it
can executed directly.
- For internal mailcap processing, output of entries marked are with
"copiousoutput" are piped back to Elm ME+. This may cause problems
if output includes termianl escape sequences.
- Terminal is given for processing if entry is marked with "needsterminal".
- Also "textualnewlines" should have processed. It is not.
NOTE: You need metamail yet at least for handling of fragmented
messages (ie. message/partial). (Metamail's showpartial
command is required and showpartial calls metamail.)
Following character sets are redefined on
lib/precompiled_sets.c:
EUC-KR type=euc
EUC-JP type=euc
GB2312 type=euc (ASCII + GB 2312-80, really EUC-CN)
Note that charset type=euc requires that mapping for unicode
is available. Otherwise it does not know which characters
are printable. On builtin definition there is only mapping
for US-ASCII part (and ISO-8859-1 upper part) defined.
See chapter "ISO2022 maps information" for examples
for other mappings.
Removed empty files: (not in MANIFEST)
hdrs/filter.h
hdrs/s_filter.h
lib/addrmchusr.c
lib/iprintf.c
lib/parsarpwho.c
lib/tail_of.c
nls/C/C/C/s_filter.m
src/parse_util.c
src/pmalloc.c
src/remailer.c
New files:
OBSOLETE
melib/mailcap.c
melib/mime_selector.c
New elmrc options:
internal-mailcaps
[ This patch is branch from the main line. ]
- Fix panic on header editing screen on In-Reply-To:
STRING PANIC in cs_binary.c:1043:cs_give_unicode_from_ascii
>>>Index out of array
- Header editing screen was not regognizing In-reply-to
if it only includes phrase (without message-id).
In-reply-to header should include only message-id, but if
but if only phrase is entered accept it (with warning as
usual.)
- "Now I have another problem: The IMAP RFC says that for a
read-only folder the answer to the SELECT command MUST
contain the READ-ONLY flag while for a read-write folder
the response SHOULD contain the READ-WRITE flag. So the
default (if no flag is given) is read-write (elm has read-only
as default)."
Problem noted by: Rainer Bawidamann <bawidama@users.sourceforge.net>
> Assume folder to be writable just before calling SELECT
- Free parser data on failure of mime_parser_parse()
[ This patch is branch from the main line. ]
- Trying send pgp2 (signed or encrypted) message
was causing crash.
- If terminal was (mis?)using ti (enter_ca_mode) /
te (exit_ca_mode) to change screen, error message
from "elm -f bad-folder" was not visible.
- (function hdr_decode_from_phrase) Printing of headers
(which include phrases) was adding extra space between tokens
-- adding of spaces between tokens is not needed because separating
spaces (and comments) are not removed during parsing.
This is visible on headers like
In-reply-to: "Kari E. Hurtta's" message
<elm2.4ME+/PL99d/1@ozone.FMI.FI> of
"10 Nov 2002 12:04:00 +0200"
- Added one missing unlink() to error handling
on mime_decode.c
- Removed space from end of some lines from MANIFEST
Problem noted by: Matej Vela <vela@debian.org>
[ This patch is branch from the main line. ]
- "I'm working on updating the Debian elm-me+ package; a
number of patches have accumulated over the years, and
the first step seems to be integrating them with the
upstream release."
From: Matej Vela <vela@debian.org>
> Only very small part from that patch/patches is included
on here:
* shared_libs/iconv/config: Some typos fixed.
* shared_libs/iconv/iconv.c: GNU libc 2.2 no longer uses const
for iconv(3) args.
* melib/pgp_decode.c: Default to GnuPG rather than PGP 5
have_pgp() will return PGP 5 if PGP 5 and GnuPG is not installed
(when GnuPG is used as default). When PGP 5 is used as default
have_pgp() do not check GnuPG at all.
- melib/pgp_decode.c: If reading of pgp/gpg result is
interrupted, retry reading of it.
- shared_libs/tls/config: Try locate libssl from system directory
Problem noted by: Matej Vela <vela@debian.org>
- shared_libs/iconv: Try locate libiconv from system library
- Testing sendmail options with -bv
is not posisible on sendmail 8.12 (if sendmail is
installed as setgid and mqueue is not accessible by user).
Threfore do testing of options by sending mail
to user instead!
- Fixed some file descriptor leaks
Problem noted by: Darren Reed <avalon@coombs.anu.edu.au>
> Close file descriptor on load_locale_map()
after reading elm.mimecharsets (.elm/mime.charsets).
> Close file descriptor on load_terminal_map()
after reading elm.terminalinfo (.elm/terminal.info)
> Close file descriptor on get_unidata()
after reading elm.map.bin/unidata.bin
- "I don't believe it is closing the temporary file in
/tmp when it is no longer being used after sending an
email."
Problem noted by: Darren Reed <avalon@coombs.anu.edu.au>
> Add mailer close function which closes descriptor
(out_state_destroy() do not close it)
- mailer info was not correctly deleted/closed
-- therefore submission mailer did not closed socket
to smtp server
- Configure: On Linux no additional libraries (for example
-lintl) are not needed
- "But I have a little problem with imap: When elm connects to
an IMAP server it first reads the list of messages and then
the list of headers (read_headers, copy_envelope_folder ...).
This takes a very long time: It starts with the UID=1 and
increases the UID until it finds the message."
"With these UIDs the search for the first message runs a loop
from 1 to 337934011 which takes long! (imap.c line 5462-5477,
elm2.4ME+PL99c)"
Problem noted by: Rainer Bawidamann <bawidama@users.sourceforge.net>
> Added possible fix (not tested) to imap code
Removed empty files: (not in MANIFEST)
hdrs/filter.h
hdrs/s_filter.h
lib/addrmchusr.c
lib/iprintf.c
lib/parsarpwho.c
lib/tail_of.c
nls/C/C/C/s_filter.m
src/parse_util.c
src/pmalloc.c
src/remailer.c
New files:
OBSOLETE
[ This patch is branch from the main line. ]
- Handling of multipart/signed and
multipart/encrypted was broken Elm2.4ME+ PL98 (25)
> Problem noted by: Bruce Momjian
[ This patch is branch from the main line. ]
- Fix panic with ISO-2022-JP text with message
STRING PANIC in cs_iso2022.c:1757:add_char_stream
>>>Bad control character
caused by mishandling of corrupted or unexpected input
- Fixed some compilation warnings.
[ This patch is branch from the main line. ]
- There should not be Return-Path header visible
on Pre-Send screen on Beginner user level.
- Fix Segmentation fault with elm -D ISO-2022-JP
when printing subject.
- From (or To) name was not correctly clipped when
used double width characters (ie. elm -D ISO-2022-JP)
- Subject was incorrectly truncated when it included
double wide characters (and was not higlighted)
- Turns out that kterm supports ISO-8859-1 -- actually
builtin fontlist works. Added
"kterm ISO-2022 ISO-8859-1"
line to doc/terminal.info
> Also note that initially kterm does NOT default to
ISO-8859-1 -- therefore ISO-8859-1 works only when
elm explicity switch to ISO-8859-1 (for example
with 'elm -D ISO-8859-1')
> To get best result give fontlist -fl option to
kterm (example
kterm -fl '-*-fixed-medium-r-normal--16-*-iso8859-*,\
-*-*-medium-r-normal--16-*-c-*-iso8859-*,\
-*-*-bold-r-normal--16-*-c-*-*.*-0'
But that one line, removing \ and spaces.)
- ConfTool/GenTerminalinfo is now able to add new
charsets to exitings terminal entries on bin/elm.terminalinfo
- sh Configure -S and
sh Configure -M now updates bin/elm.terminalinfo
(and not only bin/elm.mimecharsets)
- Whitespaces on end of lines of bin/elm.terminalinfo was causing
parsing problems. Fixed similar problem on several
parsing routine.
Undo Elm2.4ME+ PL98a (25), Elm2.4ME+ PL98b (25)
Elm2.4ME+ PL98c (25) patches before applying
this patch.
WARNING: Changes on address and terminal MIME handling. So
please report new bugs which you observe...
SUMMARY: This release adds users to possibility to specify
envelope sender address (aka Return-Path). There
is suboption allow-set-sender=yes on global elm.rc's
mailer option for that. Envelope sender address
can be given on .elm/elmheaders file as Return-Path
header. Another new elmrc option is convert-utf-header.
This release also adds (some) support for ISO 2022 as
MIME charsets. This includes multibyte and double wide
ISO 2022 characters. This release fixs also some bugs.
- On elm.rc mailer variable option allow-set-sender=yes
for mailer type 'sendmail' allows user to set
envelope sender address (aka Return Path). This
is passed to sendmail via -f command line option.
- On elm.rc mailer variable option allow-set-sender=yes
for mailer types 'sendmail-bs' and 'submission'
allows user to change envelope sender address
(aka Return-Path). These mailers use envelope sender
address on MAIL FROM:<xxxx> smtp command.
- pre-send menu have now title "Mail Pre-Send Screen".
Also screen is cleared before showing menu.
- To header is now visible on "Mail Pre-Send Screen"
- Envelope sender (aka MAIL FROM) is visible
on "Mail Pre-Send Screen" as Return-path.
Return-path is shown if envelope sender is
changeable.
- If mailer (for example 'submission' and
'sendmail-bs') passes MAIL FROM always it
is printed (as Return-path) on "Mail Pre-Send Screen"
anyway.
- Envelope sender is written as Return-path: -header to
saved copy of mail (and also to "From " separator of mails).
- Envelope sender address can be given on .elm/elmheaders
as Return-path: -header.
- If global elm.rc option add-sender is set (default),
Elm adds Sender: -header if user changes envelope
sender address (aka Return-Path).
- For b)ounce command .elm/elmheaders is now read
to get envelope sender address (aka Return-Path).
Note however that content of .elm/elmheaders is NOT put
to b)ounced mail.
NOTE: Is is not possible currently to use elm
aliases to Return-Path: query on Mail Pre-Send Screen
(altough elm aliases work on To: query on same screen)
- fastmail command now reads .elm/elmheaders and append these
headers to mail. Also envelope sender address
(aka Return-Path) is updated.
- Configure -DDEBUG -S
can now used to enable debugging (in other
words reconfiguration is not needed)
- Moved from_addr_literal() from src/addr_util.c
to lib/outheaders.c
- Moved make_from_addr() from src/addr_util.c
to lib/outheaders.c
- Moved write_addr_header() and write_text_header()
from src/addr_util.c to lib/write_hdr.c
- Moved print_EOLN() from src/mime_encode.c to
lib/write_hdr.c
- Moved write_id_phrase_header() and write_string_header()
from src/id_phrace.c to lib/id_phrace.c
- Moved dump_expanded_address() from src/addr_util.c
to lib/outheaders.c
- Moved argv_from_headers() from src/addr_util.c
to lib/mailer.c
- Moved eval_backquote() from src/mkhdrs.c to lib/outheaders.c
- Moved read_header_line() and state_read_hdr_line() from
melib/parse_util.c to lib/headers.
- fastmail also recognices $BCC environment variable
- fastmail now does mime encoding for some headers
(but otherwise fastmail still does not support MIME)
- "since a number of releases frm doesn't detect status
new correctly for me (Linux 2.4.18, elm2.4.ME+.98)."
Problem noted by: Jan Willamowius <jan@willamowius.de>
> Changed utils/from.c logic same than src/newbox.c
NOTE: Fastmail is still broken.
- Be consistent and use everywhere #ifndef ANSI_C
around of extern int errno;
- Added walk parameter to mime_parse_content_opts()
- Our non-standard headers was ignored:
* X-ELM-OSV: hdr-charset=xxxx was ignored
* Content-Length: xxxx was ignored
- fastmail did not read standard input when -
was specified as filename.
- Elm ME+ failed to read IMAP mail when Return-Path included
(unquoted) space on address.
Problem noted by: graham@cplane.com
- copy_message_2() lost header name when folding happeded
immediately after header name (that specially was visible
on copy of sent message when phrase was long.)
- optionally_enter() was using wrong charset on
some situation (ie. 'keyboard charset' instead of
display charset)
- Do not split UTF-8 to mime encoded words on middle of
multi-byte UTF-8 character
- Textual form ('surfcase form') of entered address
is now "struct string" instead of "char *" -- that
implies quite much changed on header editing screen
and elsewhere.
NOTE: Now if addressess are edited, phrases and comments
on addresses to text-charset (if mapping of text-charset
is known)
If there is non-ascii parts on addresses (which is
illegal) they may be presendted with UTF-8 charset.
- open_mapname(), set_charmap_copy_callback() moved
from lib/cs_binary.c to lib/iso2022_map.c
- parser for Unicode Format A maps is moved to
lib/iso2022_map.c
- Added support for ISO-2022 charsets (lib/cs_iso2022.c).
- Added support for new config files {lib}/elm.iso2022sets
and ~/.elm/iso2022.sets. See chapter "ISO2022 maps information"
for details.
- New elmrc option convert-utf-header specifies if set (default)
that UTF-7 charset should be favored instead of UTF-8 on headers.
That avoid ridiculous per character expansion of encoding when
UTF-8 is used on MIME encoded words.
- Do not =xx encode + character on MIME encoded words.
- Clear screen before calling external pager
- Fix bogus message (which occured on some cases)
[ Charset US-ASCII unsupported, converting... ]
- Configure can now add new terminal definitions to exiting
elm.terminalinfo from doc/terminal.info
- Delay stat()ing directory entries on file browser to
situation where flags are needed.
- Directory browser was using / on end of directory names
and therefore did not found names from listing
- effectely local-fast-lookup = OFF was not working.
Following character sets are redefined on
lib/precompiled_sets.c:
ISO-2022-KR type=iso2022
ISO-2022-JP type=iso2022
ISO646-JP type=iso646
ISO-2022-JP-2 type=iso2022
ISO-2022-CN type=iso2022 (1)
ISO-2022-CN-EXT type=iso2022 (1) (2)
(1) NOTE: Does not use single shifts!
(2) NOTE: ISO-2022-CN-EXT includes several sets
which final designation byte is unknown
GB 12345, GB 7589, GB 13131, GB 7590,
GB 13132
Note that charset type=iso2022 requires that mapping for unicode
is available. Otherwise it does not know which characters
are printable. On builtin definition there is only mapping
for US-ASCII part and ISO-8859-1 upper part (on ISO-2022-JP-2)
defined. See chapter "ISO2022 maps information" for examples
for other mappings.
WARNING: There is no support for input of these scripts.
Seems that locales use EUC charsets. These are not
supported.
New elmrc options:
convert-utf-header
New tools:
elmstringconvert
New files:
lib/write_hdr.c
lib/cs_iso2022.c
lib/iso2022_map.c
hdrs/cs_terminal.h
lib/stringtok.c
utils/elmstringconvert.c
doc/elmstringconvert.1
ConfTool/GenTerminalinfo
Removed files:
src/id_phrase.c
[ This patch is branch from the main line. ]
- copy_message_2() lost header name when folding happeded
immediately after header name (that specially was visible
on copy of sent message when phrase was long.)
- Elm ME+ failed to read IMAP mail when Return-Path included
(unquoted) space on address.
Problem noted by: graham@cplane.com
- fastmail did not read standard input when -
was specified as filename.
- optionally_enter() was using wrong charset on
some siutation (ie. 'keyboard charset' instead of
display charset) -- this specially effects -Dutf-8 option.
- Do not split UTF-8 to mime encoded words on middle of
multi-byte UTF-8 character
[ This patch is branch from the main line. ]
- Our non-standard headers was ignored:
* X-ELM-OSV: hdr-charset=xxxx was ignored
* Content-Length: xxxx was ignored
[ This patch is branch from the main line. ]
- "since a number of releases frm doesn't detect status
new correctly for me (Linux 2.4.18, elm2.4.ME+.98)."
Problem noted by: Jan Willamowius <jan@willamowius.de>
> Changed utils/from.c logic same than on src/newbox.c
Undo Elm2.4ME+ PL97a (25), Elm2.4ME+ PL97b (25)
Elm2.4ME+ PL97c (25) and Elm2.4ME+ PL97d (25)
patches before applying this patch.
WARNING: Quite lot of changes on MIME handling. So
please report new bugs which you observe...
* "What would be practical is that elmrc would set the usual
address, but the user could override it by setting a user
defined header when ie. posting to a mailing list."
Requested by: Jernej Zajc <nejc@rubisco.com>
- now .elm/mailheaders is read before mail is composed!
.mailheaders now supports only X- headers and
From: -header. X- header is shown on header
editing screen as user defined header (and if you
change it, it replaces headers given on .elm/mailheaders.)
- If user gives From: -header on .mailheaders (or on
header editing screen), Elm does not add it's own
From: -header
- 8-bit X- headers on .elm/mailheaders is now mime encoded.
- Mime encoding on .elm/mailheaders is also regognized
- If nohdrencoding is set on elmrc, MIME encoding is not
done and not regognized on .elm/mailheaders. Also
X-ELM-OSV: no-hdr-encoding=1
is added to mail.
- Added global elm.rc option add-sender. If set (default),
Elm adds Sender: -header if user specifies From: -header.
If there is more than one address on From: -header,
Sender: -header is always added.
- With 'f' command it is possible to change or set From:
header on header editing screen. However header editing
screen shows From -header only when it is set.
- Moved some routines from src/id_phrase.c to lib/id_phrase.c
- Moved some routines from src/addr_util.c to lib/outheaders.c
- binary flag was incorrectly set true (result on change
on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers
was always encoded with CRLF (and not LF) when
mail was saved (or C)opied.)
- Truncate long folder names on Reading ... message so
that there is space left for "skipped" text.
( Small potential fix for "Reading in ..., message: xxx"
counter. )
- Configure now ask option for position independent code.
Decision is half automatic.
- Added elmrc variable type rc_DT_PATH.
- Added elmrc variable metamail-mailcaps. List of mailcaps
for metamail. List may be space or ':' seperated. Separate
values may be quoted. When metamail is called values are
put to variable $MAILCAPS (as ':' -separated list).
metamail-mailcaps may include variables (for example
$MAILCAPS). Value of variables is splitted only from ':'
(quotes and spaces are not treated specially.)
- binary flag was incorrectly set true (result on change
on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers
was always encoded with CRLF (ant not LF) when
mail was saved (or C)opied.)
- Truncate long folder names on Reading ... message so
that there is space left for "skipped" text.
- "I cannot get PL97 to compile on OpenBSD. "
"service_list.o: Undefined symbol `_get_option_type'
referenced from text segment"
Reported by: Jernej Zajc <nejc@rubisco.com>
- "the new release of elm2.4.ME+.97 has a
compilation problem on AIX 4.3.3"
"ld: 0711-317 ERROR: Undefined symbol: .get_option_type"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Make sure that get_option_type is inside of #ifdef USE_DLOPEN
- Wrong answer to question "Any additional libraries"
causes failure on "Trying locate terminfo routines"
part.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Detect failure with libraries earlier.
- Wrong default was used for question "Both <term.h> and
<curses.h> found. Which one I should include for prototypes
of tgetent() like functions when using $termlib." on
IRIX 64.
"To determine 'uname_os' you use 'uname -s' and on my host,
the value returned is 'IRIX64' and not 'IRIX'. Accordingly,
I get the default, [t] !!!!"
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Use IRIX* instead of IRIX on case switch
- In IRIX Configure pics non-existing or unworking
additional libraries.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Use compilation on test -- hopefully this does
not break on some OSes because interdepency of libs.
- RPATH was not set for answer, elmalias, fastmail, frm,
newalias, newmail, readmsg, prlong, elmcharset, elmrc-write,
elmterminal, elmunidata. (Normally that that did not
caused problem because to soname was compiled full path
of shared library.)
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
- "As indicated in my mail from the 11th of February, when
both <curses.h> and <term.h> are included for
"prototypes of tgetent() like functions when using
-ltermlib", I receive an error. When selecting option 'c'
(Include only <curses.h>), it compiles without error."
Reported by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Changed default from b)oth to c)urses.h only for
IRIX.
- Allow "none" as value of roff
- Possible shared library generation fix for
OpenBSD. This is not tested, so quite probably it
does not work.
Problem noted by: Jernej Zajc <nejc@rubisco.com>
- If there libintl.so (from GNU gettext) installed
to /usr/local/lib on IRIX 6.5, Elm tries link
agaist that. That causes problems.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Set libswanted list to empty for IRIX 6.x
(Configure later adds -lc_s to list but hopefully that
does not matter.)
- "Oh, yeah, the install program ask about if a call to the 'GNU'
ispell spelling checker should be added, but the ispell program
is not GNU, even though they do make it available for FTP as well
as other sites."
Problem noted by: Brian Waters <jbw@InnovaSystems.com>
- "Ah.. ok.. great, would it make any sense to make the
p)rint be the same as P)rint for now as a build option.
The users here are used to just hitting 'p', and almost
always do not mean to print the mime as text. "
Requested by: Brian Waters <jbw@InnovaSystems.com>
> Disable p)rint command (try P)rint text instead.)
p)rint command does something like "readmsg | {print-command}".
readmsg is quite broken.
- readmsg didn't handle folders with CRLF as EOLN
(Notice that readmsg is still several ways broken.)
Problem noted by: Konstantinides, Konstantinos <k.konstantinides@cirrus.com>
- Added lib/mediatype.c
- Support for message/X-delivery-status-* type dropped
(use message/delivery-status instead.)
- Added melib/mparser.c, melib/mpar_rfc822.c,
melib/mpar_multipart.c, melib/mpar_leaf.c,
hdrs/mpar_imp.h
- "Parsing MIME structure..." is now printed for all mail
-- not only for multipart (and message/rfc822) mails.
- Attachment Menu now show structure of mail when
viewing mail -- It's title is now: MIME structure Menu
- When sending mail do not use 7bit/8bit to determine is
type text orienteed
- Added warning "7bit/8bit is allowed only for line orienteed types --
check encoding" to attachment modifying
New elmrc options:
add-sender
metamail-mailcaps
New files:
lib/outheaders.c
lib/id_phrase.c
lib/mediatype.c
melib/mparser.c
melib/mpar_rfc822.c
melib/mpar_multipart.c
melib/mpar_leaf.c
hdrs/mpar_imp.h
[ This patch is branch from the main line. ]
- If there libintl.so (from GNU gettext) installed
to /usr/local/lib on IRIX 6.5, Elm tries link
agaist that. That causes problems.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Set libswanted list to empty for IRIX 6.x
(Configure later adds -lc_s to list but hopefully that
does not matter.)
- "Oh, yeah, the install program ask about if a call to the 'GNU'
ispell spelling checker should be added, but the ispell program
is not GNU, even though they do make it available for FTP as well
as other sites."
Problem noted by: Brian Waters <jbw@InnovaSystems.com>
- "Ah.. ok.. great, would it make any sense to make the
p)rint be the same as P)rint for now as a build option.
The users here are used to just hitting 'p', and almost
always do not mean to print the mime as text. "
Requested by: Brian Waters <jbw@InnovaSystems.com>
> Disable p)rint command (try P)rint text instead.)
p)rint command does something like "readmsg | {print-command}".
readmsg is quite broken.
- readmsg didn't handle folders with CRLF as EOLN
(Notice that readmsg is still several ways broken.)
Problem noted by: Konstantinides, Konstantinos <k.konstantinides@cirrus.com>
[ This patch is branch from the main line. ]
- Wrong answer to question "Any additional libraries"
causes failure on "Trying locate terminfo routines"
part.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Detect failure with libraries earlier.
- Wrong default was used for question "Both <term.h> and
<curses.h> found. Which one I should include for prototypes
of tgetent() like functions when using $termlib." on
IRIX 64.
"To determine 'uname_os' you use 'uname -s' and on my host,
the value returned is 'IRIX64' and not 'IRIX'. Accordingly,
I get the default, [t] !!!!"
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Use IRIX* instead of IRIX on case switch
- In IRIX Configure pics non-existing or unworking
additional libraries.
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Use compilation on test -- hopefully this does
not break on some OSes because interdepency of libs.
- RPATH was not set for answer, elmalias, fastmail, frm,
newalias, newmail, readmsg, prlong, elmcharset, elmrc-write,
elmterminal, elmunidata. (Normally that that did not
caused problem because to soname was compiled full path
of shared library.)
Problem noted by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
- "As indicated in my mail from the 11th of February, when
both <curses.h> and <term.h> are included for
"prototypes of tgetent() like functions when using
-ltermlib", I receive an error. When selecting option 'c'
(Include only <curses.h>), it compiles without error."
Reported by: "Noam G. Nudelman" <noam@mail.biu.ac.il>
> Changed default from b)oth to c)urses.h only for
IRIX.
- Allow "none" as value of roff
- Possible shared library generation fix for
OpenBSD. This is not tested, so quite probably it
does not work.
Problem noted by: Jernej Zajc <nejc@rubisco.com>
[ This patch is branch from the main line. ]
- binary flag was incorrectly set true (result on change
on Elm2.4ME+ PL97 (25)). That caused that EOLN mail headers
was always encoded with CRLF (ant not LF) when
mail was saved (or C)opied.)
- Truncate long folder names on Reading ... message so
that there is space left for "skipped" text.
[ This patch is branch from the main line. ]
- Fix state_printf panic "Embedded newlines are not supported"
on case when there is on ~/.elm/elmheaders
`backticked` command which produces output which does not
fit to 80 characters.
- "I cannot get PL97 to compile on OpenBSD. "
"service_list.o: Undefined symbol `_get_option_type'
referenced from text segment"
Reported by: Jernej Zajc <nejc@rubisco.com>
- "the new release of elm2.4.ME+.97 has a
compilation problem on AIX 4.3.3"
"ld: 0711-317 ERROR: Undefined symbol: .get_option_type"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Make sure that get_option_type is inside of #ifdef USE_DLOPEN
- Error on X-ELM-OSV: header output.
Undo Elm2.4ME+ PL96a (25) and Elm2.4ME+ PL96b (25)
patches before applying this patch.
- If several entries on .elm/mail.services or on
elm.mailservices matches for connection request, merge
them (before use).
If conflicting connection types are specified, then only
later entry on file is used. For example on
cyrus IMAP port=143
cyrus POP
only POP entry is used (ie. connection to server "cyrus"
is done with POP).
- Split show_status() to two routine:
show_message_status() and show_alias_status();
- Added prepare_message_access() routine
- Added elmrc option imap-max-download-size (default 4 KB).
IMAP messages bigger than this are not downloaded when
mailbox is read. Value -1 for imap-max-download-size
causes that all messages are downloaded.
- Added elmrc option pop-max-download-size (default 4 KB).
POP messages bigger than this are not downloaded when
mailbox is read. This requires that POP server supports
TOP command. Value -1 for pop-max-download-size
causes that all messages are downloaded.
- ! character as second letter on message status indicates
that message is not downloaded.
- Note that for readmsg only tagged messages and current
message is downloaded before starting program.
- Test whatever make sets $(MAKE)
- If elm's shared library directory is on /etc/ld.so.conf
file ldconfig prints warnings like
"ldconfig: warning: can't link /usr/local/elmtest/lib//usr/local/elmtest/lib/libelmme-iconv.so.1.0.96x.Test to libelmme-iconv.so.1.0.96x.Test (No such file or directory)"
> Now Configure prints following kind warning on that situation:
"WARNING: Directory /usr/local/elmtest/lib is listed on file /etc/ld.so.conf
Linux ldconfig gives errors when soname include pathnames.
Select
c) Change elm2.4me+ shared library location
o) Omit pathname from soname
i) ignore ldconfig warnings and include path on soname
Your selection? [i]"
- Install (link) manual page for nfrm
- Set default attachment type to application/octet-stream instead of
text/plain, if file looks like binary.
Requested by: Volker Englisch <envo01@stupsi.org>
> Move adding of charset to same function (attach_info).
- m)odify command on attachment menu allowed to set
content-transfer-encoding to bad values.
- Metamail can not cope with CRLF
Problem noted by: Konstantinos Konstantinides <kk@corp.cirrus.com>
- When using b)ounce command, mailer = submission
did not issued EHLO/HELO command to server.
- Do not use state_printf to print prefix on src/fileio.c
(instead use state_puts).
- C)opy command failed copy Subject: header which
included 8-bit characters when display charset was UTF-8
> Also use state_nlputs (and not state_printf) to print
end of header so that conversions via display charset
does not occur...
- Some places use state_nlputs so that potential LF -> CRLF
conversions occur
- Fix typo on "elm -vv" output when SYSCALL_LOCKING is
not defined: "in" => "is"
- Added elmrc variable default-mime-text-charset,
which specifies default charset for text/plain if
charset parameter is not specified. Default is
"US-ASCII".
Prompted by: Tommi Nieminen <Tommi.Nieminen@sonera.com>
- "I wonder is there a command like <TAB> in mutt that
would make current next unread message? "n" only changes
to next message, regardless whether it has been read or
not. If I have missed it and is indeed not available,
would you consider adding such a feature? It would really
have been awfully nice."
Prompted by: Jernej Zajc <nejc@rubisco.com>
> Added Ctrl-N as next unread message
- CHARTYPE_Sk was incorrect on hdrs/unidata.h (should be
0x4003, was 0x3003). Regeneration of
{lib}/elm.map.bin/unidata.bin is required. This caused
(for example) that ^ was not treated as valid character.
- If Configure does not figure how to resolve mail program (ie. main)
symbols from dynamic library, do not compile libelmme-smtp.so
New elmrc options:
imap-max-download-size
pop-max-download-size
default-mime-text-charset
[ This patch is branch from the main line. ]
- Test whatever make sets $(MAKE)
- If elm's shared library directory is on /etc/ld.so.conf
file ldconfig prints warnings like
"ldconfig: warning: can't link /usr/local/elmtest/lib//usr/local/elmtest/lib/libelmme-iconv.so.1.0.96x.Test to libelmme-iconv.so.1.0.96x.Test (No such file or directory)"
> Now Configure print following kind warning on that situation:
"WARNING: Directory /usr/local/elmtest/lib is listed on file /etc/ld.so.conf
Linux ldconfig gives errors when soname include pathnames.
Select
c) Change elm2.4me+ shared library location
o) Omit pathname from soname
i) ignore ldconfig warnings and include path on soname
Your selection? [i]"
- Install (link) manual page for nfrm
- Set default attachment type to application/octet-stream instead of
text/plain, if file looks like binary.
Requested by: Volker Englisch <envo01@stupsi.org>
> Move adding of charset to same function (attach_info).
- m)odify command on attachment menu allowed to set
content-transfer-encoding to bad values.
[ This patch is branch from the main line. ]
- Metamail can not cope with CRLF
Problem noted by: Konstantinos Konstantinides <kk@corp.cirrus.com>
- When using b)ounce command, mailer = submission
did not issued EHLO/HELO command to server.
- Do not use state_printf to print prefix on src/fileio.c
(instead use state_puts).
- C)opy command failed copy Subject: header which
included 8-bit characters when display charset was UTF-8
> Also use state_nlputs (and not state_printf) to print
end of header so that conversions via display charset
does not occur...
- Some places use state_nlputs so that potential LF -> CRLF
conversions occur
- Fix typo on "elm -vv" output when SYSCALL_LOCKING is
not defined: "in" => "is"
You need create directories
charset/MAPPINGS
charset/MAPPINGS/ISO8859
shared_libs/smtp
befre applying this patch.
Undo Elm2.4ME+ PL95a (25), Elm2.4ME+ PL95b (25)
and Elm2.4ME+ PL95c (25) patches before applying this patch.
- Do not use commands "mail" or "mailx" as mailer.
- Allow specify "none" as mailer on configuration time
(that requires that mailer is given on global elm.rc
on run time.)
- Configure failed to locate terminfo routines (ie. termlib)
on Linux Mandrake 7.2. Test rewritten.
- Added -b (batchmode) option to Configure
-- avoids all prompting of user
- "Using PL95 with the two patches you send me, I encountered the
following problem when searching for a string in a mail message:
Search: Noam
Couldn't malloc 0 bytes!!"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Avoid mallocing 0 legth buffer on find_pattern_from_string()
- Some documentation fixes.
- Remove d_savegrpmboxid variable from Configure
(is is not set and is not used)
- "Following please find the error when trying to
compile elm2.4.ME+.95 on AIX 4.3.3 (maintenance level 09):
<...>
ld: 0711-317 ERROR: Undefined symbol: .cs_auto_charset"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Protect call of cs_auto_charset() on lib/charset.c
with #ifdef USE_DLOPEN
- Elm dies with Out of memory -messae on AIX.
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Avoid mallocing 0 length string on convert_string()
- P)rint Text command did not correctly print non-ascii
header data.
> Reimplement fix on Elm2.4ME+ PL95 (25) /
Elm2.4ME+ PL94a (25):
When sending mail, saving copy of mail to folder
failed when
displaycharset = UTF-8
text-charset = ISO-8859-1
> Also set buffer.filter for state_write_header()
on copy_message_2() ( similar than on metapager() )
> Do conversion on state_printf if buffers
displayed charset (displaycharset) is different than
(apparent) real one
- Detect on Configure if nl_langinfo(CODESET) is
supported
- By default Configure does not generate locale charset
mappings to elm.mimecharsets file if nl_langinfo(CODESET) is
supported. That is because value given by nl_langinfo(CODESET)
is more likely to be correct than guess given by Configure
(specially if user does not manually fix these guesses)
- Generating of elm.mimecharsets is moved to end of Configure
- Option -N to Configure tells that it can generate elm.mimecharsets
from scratch
- Added builtin mapping for ISO-8859-15 character set.
- Added value ISO-8859-15 for map parameter for type ascii-set.
- Added ISO-8859-16 to builting character set list of ElmME+
- Added ISO-8859-16 to ConfTool/GenCharmap
- Added 8859-15.TXT and 8859-16.TXT to ConfTool/mapfiles
- ConfTool/GenCharmap generates now map=$file definitions
also files which are on charset/MAPPINGS/ISO8859 directory
- elmcharset takes -S option which specifies source directory
for map files (so they can be copeid to elm.map.txt directory
-- actually directory given on map-text-dir elm.rc option.)
- Added -S ../charset/MAPPINGS/ISO8859 option to elmcharset
invocation so misisng map files are copied.
- Added codeset and MIBenum fields to struct charcode_info
- Added chararacter sets from http://www.iana.org/assignments/character-sets
to precompiled_sets[] on lib/charset.c. Most of them are added
as cs_unknown indicating that Elm ME+ knows nothing about them.
- Moved precompiled_sets[] to lib/precompiled_sets.c
- elmcharset -M lists character sets on MIBenum order
- "When you quit or when you change folders, there are usually
questions like "Move read messages to "received" folder? (y/n)". Pressing y
or n would generate "Yes" or "No" strings at the "answer" spot. Since there
is usually some delay after that you may want to press some key again
expecting those Yes/No strings and causing Elm behave unexpectedly (you
would expect that Yes/No show up and then do what you asked it to)."
Reported by: Peter <pehasys@PeHaSys.dnsalias.net>
> Added FlushBuffer() to want_to()
- Now "make installs" installs also elm.terminalinfo file to
elm's library directory. During Configure file goes to bin/elm.terminalinfo.
As on Elm2.4ME+ PL79 (25) file elm.terminalinfo specifes instructions
to Elm ME+ how to change charset of terminal. For more information
see chapter "Additional terminal information".
> For now just file doc/terminal.info is used (without processing).
That may cause some error messages because of unkown
character sets, but you should abel to ignore them.
> Installation of elm.terminalinfo means that Elm ME+ will
try change terminal character set during operation. If that
does bad thing to you, please check correctness of elm.terminalinfo
file.
- To really take advantege of that add following to global elm.rc
allow-charset-switching = ON
- connection for mailbox server failed when thre was several IP addresses
for server.
- Debugging (of POP) caused crash.
- When IMAP server returns mail where last line is incomplete,
Elm ME+ goes to infinite loop.
Problem noted by: Werner Guenther <Werner.Guenther@urz.uni-heidelberg.de>
> Changed *_got_*_line() routines. Also made similar change on POP code
(although probably this can not occur on POP code.)
- Added support to specify conditions (for environment variables)
on .elm/terminal.info or on elm.terminalinfo. That allows lines like
linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15
on terminal.info (that line does not actually work because $SYSFONTACM
is not exported.)
> Added these to doc/terminal.info so they are also copied to to
elm.terminalinfo
- Output routine on panic() was inccorect
- ~/elm/mail.services was not overriding global elm.mailservices
- Moved kludge_addr() from src/addr_util.c to lib/mailer.c
- Added shared library libelmme-smtp.so (shared_libs/smtp/)
which implements message submission protocol (RFC 2476).
To use that library add smtp to use-library -elmrc variable,
for example
use-library = iconv
And specify mailer type with mailer -elmrc variable,
for example
mailer = submission
See also: shared_libs/smtp/README.ME+
New files:
charset/MAPPINGS/ISO8859/8859-2.TXT
charset/MAPPINGS/ISO8859/8859-3.TXT
charset/MAPPINGS/ISO8859/8859-4.TXT
charset/MAPPINGS/ISO8859/8859-5.TXT
charset/MAPPINGS/ISO8859/8859-6.TXT
charset/MAPPINGS/ISO8859/8859-7.TXT
charset/MAPPINGS/ISO8859/8859-8.TXT
charset/MAPPINGS/ISO8859/8859-9.TXT
charset/MAPPINGS/ISO8859/8859-10.TXT
charset/MAPPINGS/ISO8859/8859-13.TXT
charset/MAPPINGS/ISO8859/8859-14.TXT
charset/MAPPINGS/ISO8859/8859-16.TXT
ConfTool/validcharset.c
ConfTool/Makefile
lib/precompiled_sets.c
shared_libs/smtp/Makefile.SH
shared_libs/smtp/config
shared_libs/smtp/elmsmtp.h
shared_libs/smtp/smtp.c
shared_libs/smtp/README.ME+
[ This patch is branch from the main line. ]
- Do not use commands "mail" or "mailx" as mailer.
- Allow specify "none" as mailer on configuration time
(that requires that mailer is given on global elm.rc
on run time.)
- Configure failed to locate terminfo routines (ie. termlib)
on Linux Mandrake 7.2. Test rewritten.
- Added -b (batchmode) option to Configure
-- avoids all prompting of user
[ This patch is branch from the main line. ]
- "Using PL95 with the two patches you send me, I encountered the
following problem when searching for a string in a mail message:
Search: Noam
Couldn't malloc 0 bytes!!"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Avoid mallocing 0 legth buffer on find_pattern_from_string()
- Some documentation fixes.
- Remove d_savegrpmboxid variable from Configure
(is is not set and is not used)
[ This patch is branch from the main line. ]
- "Following please find the error when trying to
compile elm2.4.ME+.95 on AIX 4.3.3 (maintenance level 09):
<...>
ld: 0711-317 ERROR: Undefined symbol: .cs_auto_charset"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Protect call of cs_auto_charset() on lib/charset.c
with #ifdef USE_DLOPEN
- Elm dies with Out of memory -messae on AIX.
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Avoid mallocing 0 length string on convert_string()
- P)rint Text command did not correctly print non-ascii
header data.
> Reimplement fix on Elm2.4ME+ PL95 (25) /
Elm2.4ME+ PL94a (25):
When sending mail, saving copy of mail to folder
failed when
displaycharset = UTF-8
text-charset = ISO-8859-1
> Also set buffer.filter for state_write_header()
on copy_message_2() ( similar than on metapager() )
> Do conversion on state_printf if buffers
displayed charset (displaycharset) is different than
(apparent) real one
- When sending mail, saving copy of mail to folder
failed when
displaycharset = UTF-8
text-charset = ISO-8859-1
- Segmentation fault on probe_imap_capa_lib()
caused by unloading of libelmme-tls.so.
- Segmentation fault on probe_pop_capa_lib()
caused by unloading of libelmme-tls.so.
- Guess multipart boundary if boundary parameter is
missing.
- Set status_chgd = TRUE on undelete_msg() and
on unread_msg() so that flags are updated
on exit. Specially on IMAP.
- Also set status_chgd = TRUE tag_message()
so that \Flagged on IMAP is updated on exit.
(Tag flag '+' is only saved on IMAP so perhaps
'+' should not be mapped to IMAP's \Flagged ?)
- Remove IMAP \flags from imap_flags bitmask which
do not have corresponding Elm status flags set or
unset so that 'U' (unread) and 't' (tag / untag)
commands work correctly.
> Side effect is that \flags changes made by other
IMAP clients (on same time) are undone.
- If there was set \Deleted on IMAP beforehand,
and user answered 'n' delete messages
questions, that message was still deleted on
'mailbox unchanged."
> Do not set IMAP_can_CLOSE on mbx_sessionlock_imap()
(set only on mbx_end_keep_imap()) -- this can effect
connection caching.
- Cyrus imapd 2.0.14 fails [*] to parse command
nnnn STORE xxx FLAGS ()
Example from log (got via -X log option):
3600 [9] 21:53:20 >>> [len 27]
"A00928 STORE 306 FLAGS ()" 0D 0A
3600 [9] 21:53:20 <<< [len 48]
"A00928 BAD Invalid flag name in Store command" 0D 0A
> Therefore if flags was empty, calculate negative
delta (if that is empty do not issue STORE command.)
[*] That is Bug #941, see
http://bugzilla.andrew.cmu.edu/show_bug.cgi?id=941
fixed on 31 Aug 2001
- remove unused charset_ok() from melib/mime.c
- Split MIME_name_to_charset's create flag to bit mask:
CHARSET_create and CHARSET_noautodef
> That should allow using
iconv:
auto-charset = ON
on global elm.rc without that it conflicts with
existing alias definitions on global elm.mimecharsets file.
- Fix generation of nls/gencat and remove dependency from
libutil.a (aka libelme-base)
- Elm 2.4 treated messages without status headers
on folders as Read; From Elm 2.4 PL24ME8a to
Elm2.4ME+ PL66 (25) treated messages without status
headers as New; From Elm2.4ME+ PL67 (25) messages
without status headers are treated as Old.
* "As there are clearly different opinions on how to
treat such messages in folders, what about having
a configuration option (and/or elmrc option) to
specify this? For example:
In folders, should messages without Status header
be marked (O)ld, (N)ew, or (R)ead?
The former would then correspond to Elm2.4ME+ PL94,
the second to Elm2.4ME+ PL66 (and what I prefer),
the latter to Elm 2.4."
Suggested by: Dirk Craeynest <Dirk.Craeynest@cs.kuleuven.ac.be>
> Only elmrc option default-folder-status implemented.
- Add missing declaration of process_expiration_date()
hdrs/elmlib.h
- lib/read_rc.c needs include unidata.h so that
default_unidata()) is declared
- shared_libs/tls/elmtls.h needs include <openssl/rand.h>
RAND_file_name() and so on is declared
- Add missing declaration of str_opt_nam() to hdrs/me.h
- Moved syscall.c from melib/ to lib/
- Moved state.c from melib/ to lib/
- Changed WS_magic
- Added lib/MAGIC which lists magic defines.
That file is checked during compilation.
- Mailer specific code moved to lib/mailer.c
- src/mailmsg2.c and src/remail.c calls now
lib/mailer.c routines
- utils/fastmail.c calls now lib/mailer.c
routines (WARNING: fastmail is currently
broken in many ways)
- Added new elmrc option mailer which specifies
type and path and other properties of mailer
(during compile time only default is given)
Option "mailer" is available only on global elm.rc
Possible mailer types are:
unknown, sendmail, submitmail, execmail
(NOTE: only type sendmail tested)
Macros are changed in the following way:
Configure old macro parameter for new default variable mailer option macro ============= ============== ========================= ===================== $mailer mailer path= DEFAULT_MAILER_PATH $sendmail sendmail SENDMAIL_MAILER_PATH $submit submitmail SUBMITMAIL_MAILER_PATH $execmail execmail EXECMAIL_MAILER_PATH $d_noaddfrom DONT_ADD_FROM add-from="dont" DEFAULT_DONT_ADD_FROM $d_usedomain USE_DOMAIN use-domain="yes" DEFAULT_USE_DOMAIN $d_8bitmime USE_8BITMIME supported-bodytype="8bit" DEFAULT_8BITMIME $d_binarymime USE_BINARYMIME supported-bodytype="binary" DEFAULT_BINARYMIME $d_dsn USE_DSN supports-dsn = "yes" DEFAULT_DSN
See chapter "Mailer definition" below in this file.
- sendmail -bv address can be used for elm's
internal verification. However that is not activated by default
(advantages from this is quite little.) To enable this use
mailer = sendmail; verify=yes
- Changed shared library interface:
provides_shared_RCT_f
provides_shared_SEOT_f
provides_shared_ST_f
provides_shared_FT_f
provides_shared_CT_f
- Removed struct IMAP_CON from inside of
struct connection_cache (on union). Instead
there is pointer to struct IMAP_CON (mbx_imp.h).
Moved struct IMAP_CON from mbx_imp.h to imap.c
- Added utility (elmrc-write) to write (or create)
global elm.rc file (utility can be used also to
write user's .elm/rlmrc file).
- Global elm.rc is now rewritten during installation
- Added elmrc option "auto-attachment", possible values
are: "none", "application" (default) and "non-text".
This affect how mime-parts, which have not Content-Disposition
header, are treated.
* If auto-attachment is none, missing Content-Disposition is
treated as "Content-Disposition: inline".
That is what MIME requires.
* If auto-attachment is application, type is subtype of
application and Elm can not handle type without calling
of metamail, missing Content-Disposition
is treated as "Content-Disposition: attachment".
* If auto-attachment is non-text, type is not subtype
of text or multipart, type is not message/rfc822
and Elm can not handle type without calling
of metamail, missing Content-Disposition
is treated as "Content-Disposition: attachment".
* However is Content-Disposition is missing on top level
that is treated as "Content-Disposition: inline".
* If Elm can handle type, missing Content-Disposition
is treated as "Content-Disposition: inline".
- That changes Elm's behaviour so that in some situations
when Elm normally calls metamail, it does not but instead
the bodypart of the message is treated as an attachment.
If you have have some type of mailcap and therefore you
want metamail handle these types, set
auto-attachment = none
* NOTE: On many situations similar treatment than
with option
auto-attachment = non-text
can reached with combination of options
auto-attachment = none
pagemultipart = on
In other words there is situations where setting of option
pagemultipart is sufficient (without new treatment which is
implemented with option auto-attachment by default.)
New elmrc options:
auto-attachment
default-folder-status
mailer
New tools:
elmrc-write
New files:
lib/mailer.c
lib/MAGIC
hdrs/mailer_imp.h
utils/elmrc-write.c
doc/elmrc-write.1
Moved files:
melib/syscall.c => lib/syscall.c
melib/state.c => lib/state.c
Removed files:
lib/in_list.c
lib/validname.c
doc/Filter.guid
lib/getrealname.c
lib/remfirstwd.c
- STORE FLAGS changes on Elm2.4ME+ PL94b (25)
was always clearing \Seen flags -- It did always mark
all messages as unread!
(Cyrus imapd bug #941 is fixed on 31 Aug 2001, see
http://bugzilla.andrew.cmu.edu/show_bug.cgi?id=941 )
- Segmentation fault on probe_imap_capa_lib()
caused by unloading of libelmme-tls.so.
- Segmentation fault on probe_pop_capa_lib()
caused by unloading of libelmme-tls.so.
- Guess multipart boundary if boundary parameter is
missing.
- Set status_chgd = TRUE on undelete_msg() and
on unread_msg() so that flags are updated
on exit. Specially on IMAP.
- Also set status_chgd = TRUE tag_message()
so that \Flagged on IMAP is updated on exit.
(Tag flag '+' is only saved on IMAP so perhaps
'+' should not be mapped to IMAP's \Flagged ?)
- Remove IMAP \flags from imap_flags bitmask which
do not have correspond Elm status flags set or
unset so that 'U' (unread) and 't' (tag / untag)
commands works correctly.
> Side effect is that \flags changes made by other
IMAP clients (on same time) are undone.
- If there was set \Deleted on IMAP beforehand,
and user answered 'n' delete messages
questions, that message was still deleted on
'mailbox unchanged."
> Do not set IMAP_can_CLOSE on mbx_sessionlock_imap()
(set only on mbx_end_keep_imap()) -- this can effect
connection caching.
- Cyrus imapd 2.0.14 fails to parse command
nnnn STORE xxx FLAGS ()
Example from log (got via -X log option):
3600 [9] 21:53:20 >>> [len 27]
"A00928 STORE 306 FLAGS ()" 0D 0A
3600 [9] 21:53:20 <<< [len 48]
"A00928 BAD Invalid flag name in Store command" 0D 0A
> Therefore if flags was empty, calculate negative
delta (if that is empty do not issue STORE command.)
- remove unused charset_ok() from melib/mime.c
- Split MIME_name_to_charset's create flag to bit mask:
CHARSET_create and CHARSET_noautodef
> That should allow using
iconv:
auto-charset = ON
on global elm.rc without that it conflicts with
existing alias definitions on global elm.mimecharsets file.
[ This patch is branch from the main line. ]
- When sending mail, saving copy of mail to folder
failed when
displaycharset = UTF-8
text-charset = ISO-8859-1
Note: You must create directory
shared_libs/iconv
before applying this patch!
- As per RFC 2046, autocreate ISO-8859-X charset
as superset of US-ASCII (where X is posititive
integer) if not defined.
This can be turned off with setting elmrc variable
auto-iso-8859 to false.
- Elmrc option auto-iso-8859 overrides compatcharsets
(ie. removing ISO-8859-X charsets from compatcharsets
effectively reappear to list.)
- Unicode (UTF-7 or UTF-8) strings are now compressed /
canonified.
- Fix incorrect clip on cs_utf.c code.
- Added shared library libelmme-iconv.so (shared_libs/iconv/)
which provides interface to GNU LIBICONV (character set
conversion library) or to correspond fuctions on system
library. To use that library add iconv to use-library
-elmrc variable, for example
use-library = iconv
See also: shared_libs/iconv/README.ME+
- Do not call MoveCursor() if interrupt
that uses tgoto() which may malloc memory.
Instead use ClearScreen() which hopefully
is safer.
- Make terminal_switch_to() safe to called from signal
handler (was mallocing results).
Signal handlers call Raw(), which call switch_display_charset()
which calls terminal_switch_to().
Following routines made more safe to called from signal
handler (is using static storage instead of malloc):
terminal_switch_to() [lib/terminal.c]
helper_1 [lib/terminal.c]
debug_charset_sets() [lib/terminal.c]
lock_shift() [lib/iso2022.c]
iso2022_setid_stream() [lib/iso2022.c]
- Do not use display_charset on terminal_switch_to()
-- instead use *terminal_info data...
- stream_from_string(), streamclip_from_string() was catenating
terminal initialization strings in wrong order ?
- When using -D utf-8 command line option of elm
message to be replied was not copied to edit buffer
with correct charset.
- Fix 'Value of "xx" ' error message on dt_FUNC_parse_line()
on lib/rc_parse.c (elmrc parsing).
- Added (new) flag CS_universal_set to UTF-8 (and UTF-7) so
that messages like "[ Charset US-ASCII unsupported,
converting... ]" are avoided when replying message with
-D utf-8 is effect (utf-8 is not on compatcharsets.)
(instead message "[ Charset US-ASCII converted... ]"
is given.) Setting charset-convert-ok avoids that message.
WARNING: If external editor (ie. default) is used editing
buffer is converted from display charset to system
charset (locale charset) silently (ie. that
does not cause 'unsupported' warning although
that conversion may lose characters). After editing
text is converted back from system charset to
display charset. That is quite non-optimal. If
external editor is used, editor buffer should be
stored with system charset (instead of display charset)
so that conversions are avoided.
New elmrc options:
auto-iso-8859
charset-convert-ok
New files:
shared_libs/iconv/config
shared_libs/iconv/Makefile.SH
shared_libs/iconv/elmiconv.h
shared_libs/iconv/iconv.c
shared_libs/iconv/README.ME+
Undo Elm2.4ME+ PL92a (25) and Elm2.4ME+ PL92b (25)
patches before applying this patch.
- state_nlputs was not printing whole string of
it was not ending to \n
- Added global flag wait_can_signal indication that
signal handler is called from middle of wait
(which is safe). Earlier flag InGetPrompt was
not accurate.
- Remove catgets calls from signal handlers on src/signal.c
- parse_format_args() to lib/output.c
- state_printable() was not using unicode information
(uses now unicode_ch())
- Changed debug output routines. General format of debug option is
-d {class}={debugfile}:{level}
Option can be given several times.
- Now debug output is not printed to stderr on startup.
Instead debug output is spooled until debug files are opened.
- Also utilities print debug to debug files instead of stderr.
See chapter "Debug output" below in this file.
- It is no longer possible to enable debugging code by just
uncommenting line
#DEBUG = -DDEBUG
on Makefiles.
Instead Configure must be re-run. It is now also possible to
specify -DDEBUG to command line of Configure.
- Updated some manual pages.
- unicode_ch on lib/unicode.c interpreted unidata
information wrongly.
- "I got a mail that completely crashes elms parser.
I'll append a folder that elm PL 90 can't open. Maybe
you can use it to find a bug in elm."
Reported by: Jan Willamowius <jan@willamowius.de>
> Discard map definition of charset if compactcharsets
or iso646-charsets redefine charset (to be incompatible
with map definition of charset)
NOTE: elmrc options compactcharsets or iso646-charsets
should never be set explicit. If you need to redefine
some charset, give definition on file .elm/mime.charsets.
- Quoted username if it contains some special characters.
- "Until I did this I could not get it to build correctly on
solaris 8 (even if I didn't want to use the sharedlibs --
it will not build now without them, which is probably a
larger problem but I could not figure out how to remove
the dependency)."
Reported by: Christopher Gori <cgori@yahoo.com>
> Make code compile when USE_DLOPEN is not defined
- elm -vv now reports is USE_DLOPEN defined.
- unicode_ch on lib/unicode.c did lowercasing
using unidata data wrongly. Therefore (l)imit
with "thread" failed to remove "Re: " prefix from
subject.
- Do some pseudo random generator seeding based on
schedule.c events and keyboard input.
- Warn if EGD socket socket given with
tls: rand-egd does not work.
- Reduce minimal amout of bytes read from egd to 10
New files:
lib/debug.c
Removed files:
doc/wnewmail.1
- unicode_ch on lib/unicode.c interpreted unidata
information wrongly.
- "I got a mail that completely crashes elms parser.
I'll append a folder that elm PL 90 can't open. Maybe
you can use it to find a bug in elm."
Reported by: Jan Willamowius <jan@willamowius.de>
> Discard map definition of charset if compactcharsets
or iso646-charsets redefine charset (to be incompatible
with map definition of charset)
NOTE: elmrc options compactcharsets or iso646-charsets
should never be set explicit. If you need redefine
some charset, give definition on file .elm/mime.charsets.
- Quoted username if it contains some special characters.
[ This patch is branch from the main line. ]
- "Until I did this I could not get it to build correctly on
solaris 8 (even if I didn't want to use the sharedlibs --
it will not build now without them, which is probably a
larger problem but I could not figure out how to remove
the dependency)."
Reported by: Christopher Gori <cgori@yahoo.com>
> Make code compile when USE_DLOPEN is not defined
- Do some CRLF -> LF or LF -> CRLF conversions
so that IMAP gets end of lines as CRLF
- However when mail is binary there must not be
CRLF <-> LF conversions!! (however binary messages
have CRLF ended lines in first place)
Now when APPENDing message to IMAP folder, message
lines are CRLF terminated.
When using 'S' (save text) message is not CR
stripped (as normally) if target file is IMAP
folder.
These changes should fix error "Message contains bare
newlines" from Curys Imapd when copying
mail from local mailbox to Cyrus IMAP folder
or when S)aving text of message to Cyrus IMAP folder.
- Do not add phrase to In-Reply-To -header.
RFC 2822 (obsoletes RFC 822) does not allow
phrase to be added to In-Reply-To -header.
Added add-in-reply-to-phrase elmrc option.
Set this if you want phrase to be added.
- "I noticed that "frm user" doesn't work anymore.
(Last version I tried was PL60 - that worked fine).
On my Linux box it always tries to read a folder."
Reported by: Jan Willamowius <jan@willamowius.de>
> Assignment of no_files was rewrited to wrong
way on some day.
- Gives error message
../hdrs/rc_imp.h:53: warning: `DT_CHR' redefined
/usr/include/dirent.h:105: warning: this is the location of
the previous definition
on certain linux systems.
> Removed DT_CHR define.
- Fix for Solaris 8 compilation.
"I think the patch keeps -shared when it is necessary for the
build. The problem was that the Configure script was assuming
_all_ platforms would need -shared, but Solaris (for example)
does not, in fact compiling fails if it is present. I just moved
-shared into the $soname_opt when it was necessary."
From: Christopher Gori <cgori@yahoo.com>
> Made correspond change also to shared_libs/tls/Makefile.SH
- (as Elm 2.4ME+ PL91) Does not compile on AIX 4.3.3.
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Guessed fix (completely untested)
New elmrc options:
add-in-reply-to-phrase
Note: You must create directories
charset
charset/UNIDATA
shared_libs
shared_libs/include
shared_libs/tls
before applying this patch!
Undo Elm2.4ME+ PL90a (25) patch before applying this patch.
WARNING: Quite lot of changes in many areas. So
please report new bugs which you observe...
See also: shared_libs/tls/README.ME+
charset/UNIDATA/README.TXT
- Added support for unicode database (UNIDATA2.TXT).
That is compiled to binary form (unidata.bin) which
is mmaped or read. Name of file is given with
elmrc option "unidata" -- default directory is given on
elmrc option "map-bin-dir".
- Binary form can be generated ("make install" does)
with elmunidata -tool.
- Elmrc option "unidata" value is checked (and data
preloaded) only when it is likely that it is needed.
That happens usually if elmrc options "allow-charset-switching"
or "displaycharset" is used.
- MMAP code currently does not compile on Digital Unix 4.0F.
That is detected by Configure.
- If unicode database is not available, then
printable, lower and uppercase characters are known
only from Latin/1 part (0000-00FF) of Unicode.
- Note that still neither Unicode didirectional algorithm
nor Right-Left scripts are supported (although unicode
database includes directionality information.)
- Also character composition / decomposition information
is not currently used.
- Implemented POP and IMAP connection as stack of streams.
So there can be different layers of connection.
(files lib/streamsched.c and hdrs/ss_imp.h)
- Now POP client code issues CAPA command to server.
- Default shared library localtion for IRIX is changed
(now lib32 is used for n32 ABI instead of lib).
- "Running Elm 2.4ME+86, if I displayed the first 80% of
a message using the built-in text browser, pressing
<Ctl>-D to display the remaining part of the message
results in tildes ("~") replacing the first (leftmost)
character of the newly-displayed lines. "
Problem noted by: Andrew Piziali <andy@verisity.com>
> Make sure that lines text is cleared from previous
text when printing.
> Scroll screen when printing ~ characters (ie. print
newlines also)
- " I had to fix config.h, which had:
#define I_LOCALE /**/
I_NL_TYPES /**/
/*#undef MSGCAT */
The second line was in error."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
- "If you look at lib/Makefile.SH, you will see:
*) msgcatsrc= msgcat.c
msgcatobj= msgcat.o
This is a problem. Try this:
X= ls
and notice that X is not assigned 'ls', but the ls command is run."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
- Added config files $HOME/.elm/mail.services and
{lib}/elm.mailservices. These can be used specify
should IMAP or POP used to given mailbox (folder browser
however uses IMAP, because POP does not provide several
folders). It also can be used to give some connection
parameters.
See chapter "Mail services config" below in this file.
- Added ability to load shared libraries on run time.
Libraries are given with tags on use-library -elmrc
option. Note that curretly necessary hooks are missing
from data structures and routines so in general
these shared libraries can not (yet?) be used to extend
capability of Elm ME+ (except on some rare cases.)
See chapter "Dynamic libraries" below in this file.
- Config file (elm.rc, ~/.elm/elmrc) parsing and
saving implementation is changed. Hopefully
functionality is still same.
- Removed alwaysleave -> alwaysstore kludge
(now negations are possible.)
- Config files (elm.rc, ~/.elm/elmrc) can now
include shared library specifix sections (on
end of config file). See chapter "Dynamic libraries"
below in this file.
- Added shared library libelmme-tls.so (shared_libs/tls/)
which provides POP's STLS and IMAPs STARTTLS command.
To use that library add tls to use-library
-elmrc variable, for example
use-library = tls
Source of shared library libelmme-tls.so does not contain
any cryptography itself. Compiling that library requires
that OpenSSL 0.9.6 is installed.
Do not expect libelmme-tls.so library to provide any security.
It does not fulfill requirements of RFC 2595 (Using TLS with
IMAP, POP3 and ACAP.)
See file shared_libs/tls/README.ME+ for details.
Remember to setup EGD (entropy gathering daemon),
if on your system does not provide /dev/urandom
device (see warning on shared_libs/tls/README.ME+
file.)
New elmrc options:
map-bin-dir
unidata
New files:
lib/unidata.c
charset/UNIDATA/README.TXT
charset/UNIDATA/UNIDATA2.TXT
utils/elmunidata.c
doc/elmunidata.1
hdrs/unidata.h
shared_libs/Makefile.SH
lib/shared.c
shared_libs/include/shared.h
hdrs/shared_imp.h
shared_libs/tls/config
shared_libs/tls/Makefile.SH
hdrs/ss_imp.h
lib/streamsched.c
shared_libs/tls/pop.c
shared_libs/include/elmshared.h
shared_libs/tls/tls.c
shared_libs/tls/elmtls.h
shared_libs/tls/imap.c
lib/service_list.c
hdrs/rc_imp.h
lib/rc_handle.c
shared_libs/tls/README.ME+
New tools:
elmunidata
[ This patch is branch from the main line. ]
- "Running Elm 2.4ME+86, if I displayed the first 80% of
a message using the built-in text browser, pressing
<Ctl>-D to display the remaining part of the message
results in tildes ("~") replacing the first (leftmost)
character of the newly-displayed lines. "
Problem noted by: Andrew Piziali <andy@verisity.com>
> Make sure that lines from the previous texts are cleared
when printing.
> Scroll screen when printing ~ characters (ie. print
newlines also)
- " I had to fix config.h, which had:
#define I_LOCALE /**/
I_NL_TYPES /**/
/*#undef MSGCAT */
The second line was in error."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
- "If you look at lib/Makefile.SH, you will see:
*) msgcatsrc= msgcat.c
msgcatobj= msgcat.o
This is a problem. Try this:
X= ls
and notice that X is not assigned 'ls', but the ls command is run."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
- "I found another locking problem which did not occur
for me in ELM 2.4ME+ PL79. Assume that there is at
least one message in =received. If you read a new message
from the regular incoming mailbox (not POP), and then c)hange
to ">", you get a message that =received is temporarily
unavailable. Then elm switches to =received but without
saving the message from the incoming mailbox. It acts like
elm is opening and locking =received before trying to save
the new incoming message. Again, this is Linux (Slackware-7.1)
with a 2.4.1 kernel. "
Reported by: Jay Rouman <jsr@dexter.mi.org>
[ That propably happens with USE_FLOCK_LOCKING --
with USE_FCNTL_LOCKING problems are different. ]
> Close just opened new folder (=received) before
trying to open it for storing mails and afterwards
reopen that new folder. That helps if closing it causes
the locks to it to be lost (as folder).
- "Assume that you have changed to the mailbox of someone from
whom you have already gotten messages. While you are in this
mailbox, you send a new message to this person. With PL79, elm
would save a copy back to this mailbox and do a screen refresh
to show that the new copy had landed in the mailbox.
With PL89, elm complains that it can't lock the mailbox and then
saves to =sent instead of dropping it. Then you have to change to
=sent and manually save back to the mailbox of the person you sent
to."
[ That propably happens with USE_FLOCK_LOCKING --
with USE_FCNTL_LOCKING problems are different. ]
Reported by: Jay Rouman <jsr@dexter.mi.org>
> Close current folder temporary during copy
and reopen after that.
- Remove question "Can your system use setgid() to switch
between the real and effective gid values?" from Configure.
That question was asked only if there was "yes" answered
to question "Am I going to be running as a setgid program?".
Also macro SAVE_GROUP_MAILBOX_ID is removed. Instead now
Elm ME+ uses sysconf(_SC_SAVED_IDS) on run time (use
"elm -vvv" to determine result.)
That way binaries of setgid Elm ME+ and non-setgid Elm ME+
are identical.
- "I can't make elm (a few last versions) on HP-UX 10.20
and 11.0. I tried with cc and gcc and the result is the
same:
/usr/ccs/bin/ld: Unsatisfied symbols:
setlinebuf (code)"
Reported by: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
> Added test for setlinebuf() to Configure
- Added support for shared libraries. Now libutil.a
is compiled as shared library (with name libelmme-base.so)
if possible.
- "Being perfectly happy with the wildcard filename selection
feature as of last elm me+ PL 87, my wish would be now that
the same wildcard expansion could take place also for attached
file names."
Requested by: Emmanuel BIGLER <bigler@ens2m.fr>
> Modified gb_filebrowser() -- now elmrc option
browser-wildcard-matching apply also when browsing files (instead
of mailboxes / folders).
- header_charset was not set on attach_menu.c,
or newmail.c and from.c utilities.
- "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest
(88) version of Elm I got the following error:
imap.c: In function `cache_open_imap':
imap.c:2541: `h_errno' undeclared (first use in this function)"
"There is no:
#ifndef h_errno
extern int h_errno;
declaration in imap.c and this may cause the error."
Reported by: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
- "If you retrieve mail from a POP server and then q)uit,
you always get "OOPS! Storing of mail failed!" from
leavembox.c. This appears to have started in elm-2.4ME+83."
Reported by: Jay Rouman <jsr@dexter.mi.org>
> pop.c code added extra \n after mailbox separator
(one \n was already added by ctime())
- In attach_menu.c header_charset was not set.
[ This patch is branch from the main line. ]
- In newmail.c and from.c utilities header_charset
was not set.
- "While compiling (gcc-2.95.2 on HP-UX 10.20) the latest
(88) version of Elm I got the following error:
imap.c: In function `cache_open_imap':
imap.c:2541: `h_errno' undeclared (first use in this function)"
"There is no:
#ifndef h_errno
extern int h_errno;
declaration in imap.c and this may cause the error."
Reported by: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
- Fix some Tru64 (aka Digital Unix, aka OSF1) compilation
warnings.
Warning: Changes on header processing of copy_message_2()
routine. Report if there are problems in mailbox
update.
- Accept Mime-Version: -headers like
Mime-Version: 1.0 (NeXT Mail 4.2mach_patches v148.2)
- USE_DOMAIN did not added domain to address
when recipient was not not 'valid' local recipeint
(ie. recipient was something other than user
from passwd.)
Problem noted by: Andrew Piziali <andy@verisity.com>
- 'Simplify' metapager() -- use state_write_headers()
- Added MIME header decoding routine give_decoded_header()
to lib/headers.c
- Use give_decoded_header() on state_write_headers()
(actually on new routine state_write_header())
> Now displaying of =?...?= and "..." quotation is
consistent on pager -- in both case quotation is
undone (not just =?...?= case).
> WARNING: Comments (ie. (...)) on addresses when paging
mail no longer show in the original place
- Added header_charset -field to 'struct header_rec'
(that is passed as defcharset for MIME routines.)
- Rewritten copy_message_2 to use give_decoded_header()
(via state_write_header()) when decoding
> Headers copied via copy_message*() routine
when docode set is similarly processed as
when paging paging mail.
- Use give_decoded_header() on rfc822_decode()
- Removed rfc822_header_converter(), rfc1522_decode_structured(),
rfc1522_decode_comment(), rfc1522_decode(),
rfc1522_decode_real(), decode_encoded_atom(),
rfc1522_decode_word()
from melib/mime_decode.c
- "The domain name expansion code works for addresses
such as:
ltanner
However, if I use the address:
ltanner (Larry Tanner)
the domain name is not appended to the username so the
message bounces."
Reported by: Andrew Piziali <andy@verisity.com>
- Added new elmrc variable header-phrase-display-mode.
Value "plain" tells that phrases should be shown as is
and value "quoted" tells that phrases should be shown in
quoted mode. This effects phrases on paged message headers
and on message editing screen. Phrases on address headers
and others (such as in-reply-to) are affected.
- "The attached patch adds the KOI8-U charset support
to elm+ME."
From: Mikhail Teterin <mi@aldan.algebra.com>
> Done some modifications to patch (original
ptach did not initialized reverse mapping correctly.)
New charsets listed:
KOI8-U From RFC2319 (b)
(b) On builtin charset list of ELM-ME+
New elmrc options:
header-phrase-display-mode
- src/aliaslib.c didn't compile when USE_DOMAIN
was defined.
- Allow user always select on Configure is
noaddfrom and usedomain set or unset.
- " Running Elm 2.4ME+82 with mailbox editing enabled,
if I press "e" to edit my default mailbox,
/var/spool/mail/andy, which contains a single PGP-encrypted
and signed message, change something in a message header
or body using my editor (vi), save the editing buffer, and
exit the editor, Elm displays:
Resynchronizing with new version of folder...
and then redisplays the folder index screen with the folder
reverted to its pre-edit state."
Problem noted by: Andrew Piziali <andy@verisity.com>
> mbx_end_edit_spool() was not really returning
changes to default mailbox.
- Handle exceptions case on select() as
errors case on poll()
- Converted folder parsing on utils/from.c to use
read_folder_headers()
- Converted folder parsing on utils/newmail.c to
use read_folder_headers()
- Undo change (done on PL84) of default answer of
question "Should <curses.h> included also when using
$termlib and <term.h> ?" for AIX.
- " In addition to the problem mentioned above, no matter
what I answer to the question in Configure:
Termlib routines in '-ltermcap' from prior Configure run
<term.h> found
Should <curses.h> included also when using -ltermcap and <term.h> ?
like 35 in src/curses.c, there appears "#include <term.h>".
This produces the error included as an attachment. When
commenting this line out, elm2.4.ME+.85 compiles well."
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Added possibility to add only curses.h. That is default for
AIX.
- Both <curses.h> and <term.h> are included by default on Linux
and IRIX.
- " I would like to ask/suggest that just as /usr/local is used
as the path for the "public executables" directory and "public
libraries", why not by default use /usr/local as the prefix path
for the man pages (/usr/local/man/mann and /usr/local/man/catn) ?"
Requested by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Use directory which is "near" to given bin directory
as first candinate for manual pages location.
- Now it is possible to give installation prefix directory
to Configure. By giving installation prefix directory
Configure selects directories as following:
PREFIX/bin for public executables
PREFIX/man/man1 for unformatted manual pages
PREFIX/man/cat1 for formatted manual pages
PREFIX/lib for public config files
Is is also possible to asnwer "none" to question about
installation prefix directory. In that case directories
are prompted separately.
- Installation prefix directory can be given also with
-P option to Configure
- "I am seeing the follwing compile errors with elm2.4.ME+.85.
I can't find the definition of catgets()."
"I am on BSD/OS 4.01."
Reported by: Bruce Momjian <root@candle.pha.pa.us>
> Include msgcat.c to library if msgcat is not available.
[ Was dropped from compilation on Elm2.4ME+ PL83 ]
- Added elmrc option default-nomime-charset to specify
charset of non-MIME messages. Default is "SYSTEM".
In other words non-MIME messages are assumed to use
system charset. Note that old implicit default was
that non-MIME messages uses display charset.
Note that using of display charset for non-MIME
messages does not work well, when display charset is
switched to some other than system charset.
- Call FlushBuffer() after writing of "Quick quit"
so that the user gets immediately feedback.
Moved files:
src/expires.c => lib/expires.c
New elmrc options:
default-nomime-charset
- Moved find_header(), classify_header() and
locate_header() from melib/parse_util.c to
lib/headers.c
- moved delete_headers from melib/parse_util.c to
lib/headers.c and changed calling convention.
- moved headers structure building from state_read_headers()
(melib/parse_util.c) to update_header_list()
(lib/headers.c).
- Added read_folder_headers() to lib/headers.c
(using update_header_list()) and implemented folder
parsing on src/newmbox.c with it.
- Parsing of top level MIME headers uses now the same routine
than parsing other MIME headers.
- Added elmrc option show-header-errors. Setting
this to false disables some error messages about
duplicate (MIME) headers.
- Changed description field to struct string * on mime
structure.
- 'struct string * ret' was incorrectly static on
browser_descend_imap(). That caused Elm to crash,
when login to the IMAP server failed.
- IMAP flags given in LIST response were no correctly
processed.
- "I have a user wish for developers : I appreciate
the new file selection feature with the "TAB" key
however I am missing the wildcard selection feature
(may be I do not use the new interface properly?) .
In my "mail" directory I have several hundreds of files.
So browsing page after page to find the one I need is much
slower than before with the wildcard selection feature.
They do not seem to be listed alphabetically either."
Requested by: Emmanuel BIGLER <bigler@ens2m.fr>
> Implemented a subset of the old wildcard feature for folder
browser. Characters '*' and '?' are treated as wildcards.
Typing name with wildcard and pressing ENTER or TAB gives
directory listing limited with that wildcard specification.
That is limited to one directory -- directory paths can not
include wildcards. Note also that it prevents selecting
folder names that include '?' or '*' characters.
- Added elmrc variable browser-wildcard-matching. Setting
this variable OFF disables wildcard feature and therefore
allows selecting filenames that include '?' or '*' characters.
New files:
lib/headers.c
hdrs/hdr_imp.h
Removed files:
src/wildcards.c
New elmrc options:
show-header-errors
browser-wildcard-matching
[ Undo Elm2.4ME+ PL84a patch before installing this patch. ]
[ This patch is branch from the main line. ]
- 'struct string * ret' was incorrectly static on
browser_descend_imap(). That caused Elm to crash,
when login to IMAP server failed.
- IMAP flags given in LIST response were no correctly
processed.
- Elm does not detect that the user is trying to move
to the same folder that she is on already.
Problem noted by: Laura Kataja
> Use selection_is_folder() instead of comparing
current selection's name against folder name with
strcmp()
- Configure was using $i_stdlib on test for return
type of malloc(). Hovever $i_stdlib is not longer
set.
- Delay the reading of local directory when needed
- Added undocument "-X transcript_file" option
to elm, newmail and frm (from.c). Note that
transcript file will include passwords!
- Change default answer of question "Should <curses.h>
be included also when using $termlib and <term.h> ?"
to 'y' for AIX (just a guess).
[ Change dropped on PL86 ]
- Drop gethostname() routine from opt_utils.
Instead call uname() on lib/read_rc.c if needed.
This means that /etc/systemid is no longer read.
- elm -vv gives now information of gethostname() or
uname() in use
- Call FlushBuffer() after writing of "Send" so that
the user gets immediately feedback (it may
take time to encode big attachments)
[ WARNING: There are quite large changes on file and
folder I/O. Especially saving mail to folders has
changed much. There are also quite many changes in
the remote mailbox (especially IMAP) code. So please
report new bugs which you observe... ]
- Moved local mailbox handling routines from lib/mbox.c
to lib/localmbx.c.
- Implemented some kind of connection caching for imap
connections. This can be disabled by setting
elmrc option imap-connection-cache to false.
- These cached (unused) connections are closed when
Elm checks new mail after "timeout" (elmrc value).
- Cached connections are also closed with Ctrl-F
(Forget passphrase)
- By default Elm ME+ shows IMAP server greeting. Also
other untagged OK messages, which do not have machine
readable response codes, are shown. This can be turned
off with setting elmrc variable imap-show-greeting
to false.
- By default Elm ME+ shows IMAP server's untagged NO
messages. This can be turned of by setting elmrc
variable imap-show-warning to false.
- By default Elm ME+ shows IMAP server's untagged BAD
messages. This can be turned of by setting elmrc
variable imap-show-error to false.
- By default POP server greeting is shown. This can
be turned off with setting elmrc variable
pop-show-greeting to false.
- Show pop server closing message (however this
is not show when resyncronizing ($))
- "Due to increased Micro$oft occupation some Russian
messages tends to have Windows standard Russian
encoding CP1251 and not KOI8-R as before. This
patch required to view "windows-1251" marked messages
on KOI8-R Unix display (via charset converting)."
From: Andrey A. Chernov <ache@nagual.pp.ru>
> Map name is changed to be CP1251 for consistency
of others.
* SIDE NOTE: This patch just adds internal conversion table.
Actually you can do same also by using elm.mimecharsets
file and external conversion table.
- #include <sys/stat.h> on headers.h (instead of individual
files)
- When saving tagged messages now default filename is
based on first tagged message (as was old behauviour;
in some point that behauviour was lost).
- Initialization of screen now happens a little earlier
than before.
- Remove copy_write_error_exit() from fileio.c
- remove #ifdef SITE_HIDING code -- (not used and
assumes UUCP world.)
- Generation of "From ... remote from site" removed
(assumes UUCP world.)
- ">From " extra mailbox separator lines are no longer
copied.
- Old $HOME/dead.letter will be renamed before new is
mail is written to $HOME/dead.letter. $HOME/dead.letter
is used on some failures. Renaming is not not if there
are enough old dead.letter files. In that case dead.letter
is lost. But it may be that writing to $HOME/dead.letter
never occurs!
- Add '%p' support to elm_smessage() and elm_vmessage()
- Use timezone offset of given time not current time
(get_tz_mins())
- Implemented new folder browser. Hit TAB when the folder
name is asked to get directory listing.
- Added elmrc options local-fast-lookup (default: false)
and local-fs-charset (default: SYSTEM) to control
local folder and file browsing.
- If there are problems to expand name given with -f option
folder browser is started. Specially 'elm -f ""' or
'elm -f .' can be used for starting of yhe browser.
- Browsing of IMAP folders is also possible
- Saving to Imap folder ('s', 'S', 'C' commands) is also
possible
- When copying message, additional ">From " mailbox separator
lines after "From " separator line are no longer copied.
(This ">From " may indicate old UUCP.)
- Elmrc variable "imap-charset" (default: SYSTEM) specifies
charset used with IMAP
- Supports IMAP's international naming convention. This can
be disabled by setting elmrc variable imap-naming-convention
to false. If imap folder name does not match IMAP's
international naming convention, imap-charset is used
instead. Note however that mixing of components of
IMAP's international naming convention and components
with imap-charset in same directory path does not work.
- Added elmrc options imap-fast-lookup (default: false)
to control IMAP folder browsing. Variable is similar than
local-fast-lookup. If both imap-fast-lookup and
imap-naming-convention are set, most of folders using
imap-charset (and not imap naming convention) are NOT
accessible!
* WARNING: If creating new folder and imap-naming-convention
is set, folder (including path) is created with imap naming
convention, even if original directory was using imap-charset !
Net result is that you have two directories with same name
(one with using imap naming convention and another using
imap-charset). That may cause strange things!
NOTE: When appending message to folder, lines would probably
be CRLF terminated -- currently that is not done.
- Default "copy = ON"
Requested by : Laura Kataja
[ internal variable name changed from auto_cc to auto_copy_sent,
original variable name and it's comment were misleading ]
- mime_decode.c was losing some file descriptors.
- Added some messages to the message catalog.
- Implemented new file browser. Hit TAB when file name is asked to
get directory listing. Normally system charset is assumed
for filename, but that can be changed with local-fs-charset
elmrc option.
- Attachment saving now asks permission to overwrite a file.
See chapter "Folder and file browser" below in this file.
- Added prototypes for some functions
- #include <term.h> on src/curses.c (and perhaps <curses.h>)
- " I discovered Elm 2.4ME+ PL82 (25) forgets an attachment
if the body of the message is PGP-signed. "
Reported by: Andrew Piziali <andy@verisity.com>
> Note that only main body will be PGP signed or encrypted.
- Make selection of PGP little better when decoding
PGP signed application/pgp messages and when decoding
PGP signed non-MIME messages.
- Terminal IO on src/curses.c is done via /dev/tty (not stdin and
stdout)
- Do not use stdio when printing from signal handlers
(sig_user_stop and sig_return_from_user_stop on src/curses.c)
- Avoid passing of message catalog texts (catgets) as format
strings for printf like functions. Instead use CATGETS
macro and lib/output.c routines. These routines (via CATGETS
macro) does not use message catalog data for determining of
parameter types or arguments.
- If end of lines on quoted-printable text are encoded
with CRLF instead of LF, quoted-printable decoding
was not removing CR from end of lines when replying.
That happened specially with POP and IMAP, because
POP and IMAP mails are stored by Elm ME+ just using
CRLF as end of line.
- If on IMAP folder both \Recent (= NEW) and \Seen
(= not UNREAD) are set, ignore \Recent (NEW), because
mail is already read. That happens when IMAP folder
is resyncronized ($) (ie. mail arrives during that
IMAP session).
- Renamed some charsets CPxxxx -> Windows-xxxx
(they are registered with that name in IANA).
Added file ConfTool/killsets which lists these
charsets. Old definitions are removed during Configure.
Also added option -I to utils/elmcharset.c. This
gives charsets which should be ignored when reading
global charset charset definition.
- Added support for UTF-7 charset (lib/cs_utf.c). Note
that it is not useful as display or system charset.
It should be used only as mail charset. See also chapter
"Charset definition".
- However UTF-16 Surrogate pairs (D800-DFFF) are not
supported on UTF-7.
- Elmrc option utf7-encode-optional control should 'optional
direct characters' utf-7 encoded (default: yes). These
characters are (from RFC 2152):
Character ASCII & Unicode Value (decimal)
! 33
" 34
# 35
$ 36
% 37
& 38
* 42
; 59
< 60
= 61
> 62
@ 64
[ 91
] 93
^ 94
_ 95
' 96
{ 123
| 124
} 125
- Added builtin table for CP1252 (windows-1252 charset),
so that users don't need to download CP1252.TXT from
Unicode.org. Builtin map name is "CP1252" and charset name
is "windows-1252".
- Does not require MIME-headers (especially charset information)
for forwarded non-MIME message which is inside of
message/rfc822. In other words assume current display charset.
- For Tru64 (aka Digital Unix, aka OSF1) prefer strings.h over
string.h
- On Tru64 (aka Digital Unix, aka OSF1) full name is first thing
in GCOS field
- Added "Copyright 1996-2000 Kari Hurtta" texts to elm/args.c,
doc/elm.1 and hdrs/elm.h
- Read charset value for locale from LOCALE_DIR/LOCALE/charset
file on ConfTool/GenCharmap, if possible.
- Added ISO-8859-13, ISO-8859-14 and ISO-8859-4 to
ConfTool/GenCharmap
- Use doc/mime.charsets also for locales in form *.* on
ConfTool/GenCharmap
New charsets listed: (*)
UTF-7 Builtin support (U) (b)
Big5-HKSCS "Big5-HKSCS" is registered
IBM00858 "IBM00858" is registered
IBM00924 "IBM00924" is registered (!)
IBM01140 "IBM01140" is registered (!)
IBM01141 "IBM01141" is registered (!)
IBM01142 "IBM01142" is registered (!)
IBM01143 "IBM01143" is registered (!)
IBM01144 "IBM01144" is registered (!)
IBM01145 "IBM01145" is registered (!)
IBM01146 "IBM01146" is registered (!)
IBM01147 "IBM01147" is registered (!)
IBM01148 "IBM01148" is registered (!)
IBM01149 "IBM01149" is registered (!)
SCSU "SCSU" is registered (!) (U)
UTF-16 "UTF-16" is registered (!) (U)
UTF-16BE "UTF-16BE" is registered (!) (U)
UTF-16LE "UTF-16LE" is registered (!) (U)
IBM775 "IBM775" is registered
IBM866 "IBM866" is registered
ISO-8859-13 "iso-8859-13" is registered (b)
TIS-620 "TIS-620" is registered
Renamed charsets:
Windows-1250 "Windows-1250" is registered
Windows-1251 "Windows-1251" is registered (b)
windows-1252 "windows-1252" is registered (b)
Windows-1253 "Windows-1253" is registered
Windows-1254 "Windows-1254" is registered
Windows-1255 "Windows-1255" is registered
Windows-1256 "Windows-1256" is registered
Windows-1257 "Windows-1257" is registered
Windows-1258 "Windows-1258" is registered
Charsets aliases modified:
ISO-8859-14 "iso-8859-14" is registered (b)
(!) Not suitable as Mime charset
(*) Notice that these charsets may be unsupported
by Elm ME+
(U) Encoding of Unicode
(b) On builtin charset list of ELM-ME+
New files:
lib/savefolder.c
lib/localmbx.c
src/browser.c
ConfTool/killsets
Renamed files:
hdrs/curses.h => hdrs/elm_curses.h
Removed files:
hdrs/mcprt.h
hdrs/mcprtlib.h
lib/mcprt.c
lib/mcprtlib.c
New elmrc options:
utf7-encode-optional
local-fs-charset
imap-fast-lookup
imap-charset
pop-show-greeting
imap-show-error
imap-show-warning
imap-show-greeting
imap-connection-cache
- Do not incorrectly detect [ in the middle of long lines.
* "In attempting to add additional recipients to
the CC: line of an outgoing message (using Elm 2.4ME+
PL81 (25)), Elm keeps adding commas when it should not."
Reported by: Andrew Piziali <andy@verisity.com>
- Don't autoadd comma (',') if there is
already space or comma (',') on header editing screen.
- Delay adding of comma (',') to the point where we see
that the next character is '(' or '<' on header editing
screen.
- Autoadd comma (',') after '>' and ')'
- Only autoadd comma (',') on beginning of editing
(ie when we start typing new address to buffer
when there is already address on buffer).
- '\' escaping was broken on header editing screen
[ WARNING: IMAP code is little tested and has a quite
limited functiolnality -- only a little more functionality
than POP code. ]
- Avoid sequence /* ... /**/ on config.h
- Define NEED_REOPEN_AFTER_FAILED_CONNECT if socket
needs to be closed and reopend after failed connect()
before retrying. Notice that if connect() returns
EINVAL Elm ME+ automatically closes and reopens socket
and then retries same connect().
- New elmrc variable "menu-display-host"
- Center ELm version string to second line if first line
has no space left.
- lib/imap.c provides IMAp type folders (but only about same
functionality that POP folders -- currently saving or
copying of mail to IMAp folders is not implemented.)
- lib/remote_mbx.c includes common routines for POP and IMPA code.
- IMAP mailboxes can be accessed by giving username@hostname
as folder name (tries first IMAP and then POP if connection
to IMAP port gives Connection refused.)
- IMAP folder can be accessed by giving username@hostname:folder
as folder name.
> Note however that:
- Temporary file is used same way
than is used in case of unix mailbox.
- It is not possible to e)dit IMAP mailbox
- It is not possible to s)ave or C)opy to
to IMAP mailbox (NOT IMPLEMENTED YET)
- It is not possible to browse folder list
from IMAP server (NOT IMPLEMENTED YET)
- Messages are kept on IMAP mailbox until you D)elete
them and then resync ($) or quit.
However note that some other mail client may
may same time access IMAP mailbox and mark messages
to be deleted and actually delete (EXPUNGE) them.
- If some other mail clients change status of messages
at the same time when ELM had IMAP mailbox open, those
changes are not displayed on Elm mailbox/message
display (even when messages are EXPUNGEd).
- However Elm should survive when messages are
EXPUNGEd when mailbox is open (that is not tested.)
- Sending of mail still happens via calling
of local mailer -- SMTP or Message
Submission protocol is not supported.
- IMAP code uses TCP port 143 (IMAP4rev1)
- Messages from IMAP mailboxes are saved to folders
with IMAP's (= Internet's) EOLN convention. That
is CRLF. In other wordsthey are not converted to
the unix's EOLN convention which is LF only. Elm
should able to handle that (and that is more
'binary' mail friendly.) If you need mail
text without extra CRes, use 'S' (save text)
command.
- IMAP international mailbox name convention is
not supported
- util/newmail.c doesn't close non-local folders when
waiting new mail
- util/newmail.c writes now debug output to file
$HOME/NEWMAIL:debug.info
- New elmrc variable "imap-use-examine". When this is
set "frm" and "newmail" opens IMAP mailbox read-only
(with "EXAMINE") -- this causes that mails do not lose
\Recent flag -- however seems that (some?) IMAP
servers does not report new mail when mailbox is opened
read-only.
- Replaced %X with %p on debug format strings
- Some OSF1/Dunix/Tru64 fixes
- "Environment: Digital UNIX V4.0E, cc
Problem: Elm dumps core after reading the folder,
before displaying messages.
Debug session:
tru64> bin/elm -f test/test.mail
Read-only folder is 'test/test.mail' with 8 messages
[ELM 2.4ME+ PL79 (25)]
SIGNAL PANIC in signals.c:99:segv_signal"
Reported by: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
> Fix erronous sizeof on elm_smessage (lib/output.c)
- "The keywords "encode", "clear", etc. are useful, but some users
don't like the feature (they think the message body should be
only scanned on request).
Attached to this message there is a patch that allows to disable
the feature using the configuration parameter "mimebodykeywords"."
From: Jose A. Rodriguez <Jose.Rodriguez@ac.upc.es>
> Default of "mimebodykeywords" is TRUE (ie. parse keywords)
New files:
lib/remote_mbx.c
lib/imap.c
New elmrc options:
imap-use-examine
menu-display-host
- "Problem: There is no strdup on old ULTRIX"
Reported by: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
> There should be not any strdup call on ELM ME+.
Replaced one strdup() call on src/mbox.c with
safe_strdup() call.
- "Problem0: After asking whether to create directory .elm,
messages are written beginning at the top of the screen
without clearing it before. This problem semms to be platform
independent."
Reported by: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
> Be sure that the messages are written to the end of the screen.
- "I am using ELM 2.4ME+ PL77 (25) on HP-UX 10.20 and
from time to time I get the following error when
calling frm:
Couldn't seek 1604 bytes into folder.
** Error 0. **
You have no mail.
I have tracked down the problem to lib/mbox.c:3007,
where fseek is called with folder->p->fh_temp being NULL."
Reported by: Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>
> Don't call fseek() if folder->p->fh_temp is NULL.
- "Problem1: In Configure line 1836 (cat libc.tmp |egrep ...)
produces empty libc.list, so Configure gets confused about
existing functions (e.g. gethostname)" (on AIX 3)
From: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
- "Problem3: Undeclared identifier fd_set in schedule.c
Solution: edit lib/schedule.c and add
#include <sys/select.h> (line 11)" (on AIX 3)
Reported by: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
> Detect sys/select.h on Configure on and include it on
hdrs/defs.h
- "AIX Problemz: If the file for incoming mail does not exist,
v79 exits with
Can't open folder '/usr/spool/mail/root' for reading!
On v60 it displays (as expected?) a screen with no messages.
This problem semms to be platform independent."
Reported by: Bernhard Simon <bs@bsws.zid.tuwien.ac.at>
> Do do treate ENOENT error from can_open() on
mbx_sessionlock_filehandle() as error (case SESSIONLOCK_CHECK).
[ WARNING: There are quite large changes on character
set handling of terminal, and changes in the
builtin editor. Specially builtin editor
has changed almost totally. Also keyboard
input routines have changed much. So please
report new bugs which you observe...
Elmrc option displaycharset has changed
meaning, so if you have set that, you need
to remove setting and use elm.mimecharsets
or .elm/mime.charsets file instead. ]
- Implemented support for multibyte characters as
keyboard input (lib/charset_input.c). And
reimplemnted Reach (as ReadCh2) and optionally_enter
(as optionally_enter2) with that support.
- Menus are still using one byte characters and it is
assumed that input character set is equivalent of
code character set (practically equivalent of US-ASCII).
- Added ability to specify on mime.charsets and elm.mimecharsets
on ISO2022 codes for terminal character set change.
New keywords are:
other-set,
bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96,
bank-G0-94, bank-G0-94x94,
bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96,
bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96,
bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96
Value of these kaywords are space separated (usually empty)
list of intermediate bytes and final byte given on form d/d.
If there is several bytes, list must be given on quoted form.
NOTE: These *94x94 and *96x96 keywords are useful only
with "type=iso2022" character sets.
- Added files libdir/elm.terminalinfo and ~/.elm/terminal.info
for storing additional terminal information. Specially
information about charset switching. See chapter
"Additional terminal information".
- Now elm -w saves also ~/.elm/terminal.info file.
- Added option -D charset to elm. That specifies the
display charset used. For external programs (including pager
and editor) however system charset (is locale charset)
is used however, because -D does now change locale
and programs get charset information from locale.
Therefore -D option is in practice effective only for
the internal pager. Files libdir/elm.terminalinfo and
~/.elm/terminal.info tell the switching method for terminal
(and that is effective only for output charset.) For
(external) editor buffers content is converted between
display charset and system charset.
- Added elmrec option allow-charset-switching (defualt unset).
When this is set, Elm ME+ may use any charset that the terminal
supports when needed (for example paging of message which
uses some other charset which is given in
libdir/elm.terminalinfo or ~/.elm/terminal.info). Note that
this also is effective only with internal pager (and
possible on some other space where Elm ME+ itself may
display text with foreign charset.)
[ NOTICE that Elm ME+ needs information for printable
characters of display charsets. Currently there is no such
information (except for characters which maps to UNICODE
range 0-256, which Elm ME+ know). For system charset
(locale charset) Elm ME+ gets information about printable
characters from system. ]
- Elm option -D 'charset' also turns on allow-charset-switching.
- Elm option -D NOSWITCH turns off allow-charset-switching.
- To change display charset and allow switching only
between system charset (locale charset) and given
system charset use option -D =charset
- elmrc option displaycharset now specifies charset
to which elm should switch terminal. Default charset
(system charset) may be specied with elm.mimecharsets
or .elm/mime.charsets file instead.
- builtin editor is someway rewritten (it is now perhaps
little more 'full screen'). Most of old ~ commands
should still work. Does NOT handle well lines which
are longer that screen width. Also you can not add
lines between text even that you can edit (someway)
existing lines of text. Builtin editor keeps message
on memory when editing it.
- Now when is asked optionally new value (cursor on beginning
of old value)
- cursor rigth key accepts old value and moves
cursor end of value for editing
- enter accepts old value
- typing of value erases old value (so that
only typed characters are preserved)
In other words on header editing screen when editing Subject
pressing cursor rigth key causes that subject can be preserved
and new text added to end of it.
- Added support for UTF-8 charset (lib/cs_utf.c). Note that
it is not very useful, because currently Elm only knows
printable characters from Latin/1 range. See also chapter
"Charset definition".
- Removed Configure question about Default Text Charset
for outgoing messages. Result of that question was not
actually used by Elm ME+. Elmrc option text-charset
should be used instead.
- Generate elm.mimecharsets file also for systems, which does not
support locale.
- Option "alteditor" was broken (not used actually).
- Changed option "alteditor" that it have always used when
when replied mail (with including text).
- Special value EDITOR means that use current (primary) editor.
This is new default.
- Header editing screen was not displaying address when
fullname of address was with unknown character set
- Header editing screen was potentially using wrong character
set when printing address
- Support gpg on viewing of multipart/signed messages.
Requested by: Steven Pritchard <steve@silug.org>
- Default of "page-known-charsets" elm.rc variable changed
to ON.
- Be consistent on definition of macros P_ and ANSI_C
Problem noted by: Mariah Geiger <geiger@rge.com>
- Charset type "ascii-set" now read same maps than
charset type "one-byte-map", excepts that ASCII
range on maps needs not be defined (and if is defined
must be identity mapping.)
- Check return value of setuid/setgid calls.
New files:
lib/charset_input.c
lib/iso2022.c
lib/terminal.c
lib/unicode.c
lib/cs_utf.c
doc/terminal.info
doc/elmterminal.1
utils/elmterminal.c
Removed files:
src/wordwrap.c
src/softkeys.c
New tools:
elmterminal
- " The executable 'newmail' that comes with
Elm 2.4ME+ PL77, occasionally reports the following
error message:
STRING PANIC in string.c:484:convert_string
>>Bad magic number (string type)"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> elm_fprintf was called with wrong arguments on newmail.c
- Fix incorrect *_clip_* on lib/cs_binary()
- On PL73 [encode] was producing (by mistake)
text/X-ELM-encode instead of application/X-ELM-encode as
earlier versions. Return old behauviour.
- Generation of "encoded" data (application/X-ELM-encode)
was broken on PL73.
- "It has for quite some time now bugged me
that Elm expands "&" in the passwd GCOS field
to all uppercase. This is not the correct
expansion. The string should merely be capitalized.
Both the BSD finger and sendmail capitalize rather
than uppercase.
Just consider entries like this:
kim:*:10167:20:&mo Suominen:/u/kim:/bin/tcsh
This should *NOT* be displayed as "KIMmo Suominen".
I'm attaching a patch for lib/gcos_name.c that fixes
this. I have also committed this into the NetBSD
pkgsrc system for third-party software."
From: Kimmo Suominen <kim@tac.nyc.ny.us>
- "version elm2.4.ME+.76a has a little memory bug: when
reading a mbox, and if a line has less than 5 characters,
the program reads out of bounds.
Attached to this message there is a patch that fixes
the problem."
From: Jose A. Rodriguez <Jose.Rodriguez@ac.upc.es>
[ Undo Elm2.4ME+ PL76a patch before installing this patch. ]
[ This patch is branch from the main line. ]
- On PL73 [encode] was producing (by mistake)
text/X-ELM-encode instead of application/X-ELM-encode as
earlier versions. Return old behauviour.
- Generation of "encoded" data (application/X-ELM-encode)
was broken on PL73.
- Elm no longer assume that address is user's address
if fullname matchess to fulllname of address. Give
alternative addresses on alternatives elmrc option.
- Always generate subject string to header
structure to avoid crash.
- Added elmrc variable env-from-source. It
tells which information to use for envelope from
address. Possible values include:
forward-from (0) Use: "From " separator line
">From " forwarded indicator
"Return-Path:" header
from (1) Use: "From " separator line
"Return-Path:" header
return-path (2) Use: "Return-Path:" header
Setting this to value return-path requires that on
every mail have Return-Path: -header.
- "Please update the source of
http://www.ozone.fmi.fi/KEH/elm-2.4ME+.README
to also rflect the URL for filter, not just the
email address:
http://www.bolthole.com/filter/"
Requested by: Philip Brown <phil@bolthole.com>
- "When replying to, in the last elm me pl75, this "name" is
suggested :
<garbage>"
Reported by: Emmanuel BIGLER <bigler@lpmo.univ-fcomte.fr>
> Changed one %s to %S on mailmsg1.c
- Elm no longer assume that mail is from user, if username
part (only) on envelope address matches. Addresses from
elmrc option alternatives is now matches also agaist
envelope address. Use elmrc option alternatives
to specify your address if Elm now shows your name instead of
To on list.
- "Actually, no version of FreeBSD comes with intl libraries,
at least none that would make 'intl' be a valid library on
the compiler command line. Please change the Configure script
to omit intl from libswanted for any version of FreeBSD, not
just 3.2."
From: Mike Brown <mike@skew.org>
Removed files:
lib/tail_of.c
lib/addrmchusr.c
New elmrc options:
env-from-source
- Metapager generated sender address for top line
incorrectly if From: header did not existed.
- Don't put builtin definitions to elm.mimecharsets
(doc/mime.chatsets).
- Add charset type iso646-set and elmrc option
iso646-charsets.
- Configure -M updates bin/elm.mimecharsets only.
- Make output of ConfTool/GenCharmap (ie. Configure -M)
prettier.
- " I just tried to compile elm2.4.ME+.74, and I see that you
fixed the 'h_errno' problem in the 'lib/pop.c' file but didn't
in the 'lib/read_rc.c' file.
When I fixed it also in the 'lib/read_rc.c' it compiles with
no problems."
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
- "This is a strange error message I get when I try to read my
mail:
STATE PANIC in state.c:770:state_printf
>>Embedded newlines are not supported
Emergency exit taken! All temp files intact!
I have no idea what's the problem. Ih the attachment is the
mail massage that causes it to crash. "
Reported by: Bojan Bistrovic <bojanb@python.physics.odu.edu>
> Fixed format string of state_printf call.
- " It just seems to be my month for bugfinding. ;-)
My "options => sort => Subject" no longer sorts by
message subject, as far as I can tell. "
Reported by: Isaac Stoddard <u177k@gsde.hso.link.com>
> Fixed incorrect condition on subject_compare()
- Giving "something>" as address on header editing screen
caused infinite loop on Elm ME+.
- frm was giving odd error messages if mailfile pointed by
MAIL environment variable does not exists.
- Missing of subject was causing segmentation fault on
frm.
- Update percent of loaded mails when updating counter
of loaded mails. In other words now both
readdatapercentinc and readmsginc elmrc options causes
update of both numbers (counter and percent).
- Make difference on return of string_cmp() [lib/string.c]
on cases 'values equal' and 'values not comparable'.
- 'elm -w' now writes also .elm/mime.charsets file.
- Some parse errors on .elm/mime.charsets are now
considered fatal same way than errors on .elm/elmrc
file.
- "This is what happens: when I try to read the mail defined as
MIME-Version: 1.0
Content-Type: text/plain;
charset="Windows-1252"
it seems to work fine (first screen displays properly) but
when elm reaches the part which is supposed to be in
Windows-1252 charset and tries to convert it to ascii,
it crashes producing the error:
STRINGBUFFER PANIC in sb_file.c:200:sb_get_line_from_file
>>Bad charset readed from file"
Reported by: Bojan Bistrovic <bojanb@python.physics.odu.edu>
> Ignore charset alias when charset alias points
to stale definition of charset. That charset
definition may be undefined ("removed") by setting
explicit compatcharsets on user's .elm/elmrc.
- Warn if charset alias is tried to redefine as charset.
- Refresh updating counter line if it is overwritten
by error message.
- Update frm.1 manual page and generate actual patchnames for
files to FILES section.
New files:
ConfTool/iso646maps
- If end of lines on quoted-printable text is encoded
with CRLF instead of LF, quote-printable decoding
was adding CR before every character. That happened
specially with POP, because POP mails is stored by
Elm ME+ just using CRLF as end of line.
Reported by: Laura Kataja
- " I patched my PL72 tree to PL73, and reconfigured to
my previous config as default. When I typed "make", I got:
cd lib; /bin/make - all
cc -I../hdrs -O -c charset.c
cfe: Error: charset.c, line 614: Unacceptable operand of
relational operator.
if (val < 0 &&
------------^
*** Error code 1 (bu21)
make: *** [all] Error 1"
Reported by: Isaac Stoddard <u177k@gsde.hso.link.com>
> Wrong variable was used.
- Don't call metamail, if top level type disposition
is attachment (metamail ignores disposition).
That kind messages are marked with 'a' on mailbox
menu.
- Complain about unsupported locales (locale is
unsupported if not mapping information for correspond
charset exist).
- Locales marked with (unsupported) are added now
with nameless charset.
- If display character set's type is unknown (ie. locale
is unsupported), then assume that display character
set's invariant part is on same position than on character
set used by code (ie compiler). Note however that invariant
part does not include '@' character!
- Replace (unsupported) with character set name
on tables, if mime name for locale charset is
known. Unsupported status is now indicated by
missing of mapping information. Message will
be
WARNING: Locale xx_XX (charset XXXXXX) is unsupported,
will cause problems!
- " When compiling Elm 2.4.ME+ PL73 (or any version above PL67),
on AIX 4.3.2 (with gcc version 2.95.2) I receive the following
error message:
cd lib; /bin/make - all
gcc -I../hdrs -fpcc-struct-return -O -c pop.c
pop.c:15: parse error before `int'"
Reported by: Noam G. Nudelman <noam@mail.biu.ac.il>
> Seems that h_errno is macro on AIX.
New files:
lib/cs_fallback.c
[ WARNING: There are quite large changes on character set
set handling, on builtin pager and sending
messages. So please report new bugs which
you observe...
Also there is several fixes, which are just
guess (for foreign platforms: vaxult4, hpix 9.05).
They of course are totally untested. So it is
possible that they do not even compile...
This is so much changes (and some are
incomplete) so this this quite sure more buggy than
PL72. ]
- "Last known compile on our vaxult4 machine was 2.4.ME+.38.
I tried compiling 2.4.ME+.72, but then I got this error:
cc -I../hdrs -O -c parse_util.c
"../hdrs/melib.h", line 60: syntax error"
From: Geir Johannessen <joge@stud.ntnu.no>
> Guess the fix [ perhaps it does not work and is definitely
untested... ]
- Added facility to convert character set of incoming
messages to display character set.
- Added facility to convert character set of new message
to outgoing character set (text-charset) when sending mail.
- Changed semantic of charset -option. Now just not give
charset -label for outgoing messages to Content-Type -line.
Now character set is converted to that character set
(if message is pgp signed conversion is not done and
charset label is not changed either.)
- charset option is renamed to text-charset (old name is alias).
* Use text-charset=DISPLAY if conversion is not wanted.
- If after conversion text is 7-bit only and
text-charset is superset of US-ASCII (as given on
compatcharset or MIME-subset -parameter on mime.charsets
-file), US-ASCII used as charset -labeled on Content-Type -line
instead.
> So if mapping information of text-charset is incomplete
and it is only konw that text-charset (or displaycharset)
is superset of US-ASCII, then conversion produces only US-ASCII
characters and that causes also that mail is labeled to be
US-ASCII
> That also mean that on compatcharset or via MIME-subset -parameter
on mime.charsets should not specify character sets to be
supersets of US-ASCII if it is not compatible with ascii
on byte-to-byte level. ( In other words for example utf7
is NOT superset of US-ASCII on that sense. )
Read chapter "Charset definition" from later of that file.
[ In practice there is no any builting charset mappings
which are useful (make sense) with text-charset, so use
text-charset=DISPLAY
if you do not use external mapping files.
Currently there is NO support for utf7 or any other
multibyte character set (low level routines are missed).
In other words there is no charset types (paramater type)
for multibyte character sets. ]
- From: -header for outgoing mail is now printed same way
than other address headers (ie. To, CC, Reply-To and Bcc)
- Builtin pager now always use temporary file (or memory buffer).
For simplify it does not longer read directly from folder.
- Builtin pager now enligth matching line when searching with /
(TABulators are not enligthed)
- Parsed headers (fullname and comments) now carry character-set
information (they are not always just filtered to
Display Character set during parsing -- also this includes
facility to character set conversion. ]
- Same basically also apply for outgoing mail headers
> On outgoing mail <message@id> on in-reply-to -header is
handled only if it is on beginning of header.
[ Note however missing low-level routines... ]
- Added generic panic routine to elmlib.
- Added elmrc option page-known-charsets. If it is TRUE,
do not call metamail to charset for which we have some
information (even that we can't show all characters with
displaycharset). Default is FALSE (old behauviour).
- Flag as error if user gives something like [keyword
on beginning of line and keyword is not detected.
That is that user does not send mail where keyword
accidentally mistyped (and does not work as intended).
For example
[inlcude some.file text/plain 7bit]
on beginning of line.
If user wants enter that kind line to mail which really
start with [, then [ can be doubled as [[ on beginning of
line. That produces one [ character to outgoing mail.
Elm's own messages now start [ followed by space.
That is not flagged as error.
- Do not longer produce empty bodypart (or part with length
of -1 as seen on Elm) if there is [include ...] directive
on last line.
- "Can we add this patch to the Configure script? This
should help detect Solaris systems which need -lsocket
-lnsl."
From: Hon-Yin Kok <hkok@yoda.unl.edu>
[ I little modified that patch, I hope that this did not
broken it. ]
- "FreeBSD 3.2 cannot have library intl in the libswanted
list. It gets included in the final compile sentence for
elm even though there is no such library."
From: Geir Johannessen <joge@stud.ntnu.no>
- Move expand_env() to lib/expand.c from lib/read_rc.c
- Let expand() to expand only if string start with metachar
(so that it is not needed to check is string starting with
metachar, before calling expand().)
- Added expand_meta() to lib/expand.c.
> Meta expand provides:
+filename == file on mail folder directory
=filename == file on mail folder directory
%filename == file on mail folder directory
{rc}/filename == file on .elm subdirectory of home
{lib}/filename == file on Elm's global library directory
And also same epansions than expand_env():
~/filename == file on home direccory
Environment variable components
- do_expand_path() to lib/read_rc.c, strnfcpy() to lib/strfcpy.c
- Elm no longer assume that mail is from user, if fullname
matches to sender's name. Now only addresses are used to
determine if To address should be displayed instead of From
address. Addresses from elmrc option alternatives is now
matches also agaist From: -header. Use elmrc option alternatives
to specify your address if Elm now shows your name instead of
To on list.
- "Now it compiles under hpix 9.05 + gcc 2.7.2.
There is just a single warning left:
gcc -I../hdrs -fpcc-struct-return -O \
-c schedule.c -o schedule.o
schedule.c: In function `real_wait':
schedule.c:195: warning: passing arg 2 of `select'
from incompatible pointer type
schedule.c:195: warning: passing arg 3 of `select'
from incompatible pointer type"
Reported by: Emmanuel BIGLER <bigler@lpmo.univ-fcomte.fr>
> Guess the fix for HPUX [ perhaps it does not work and is
definately untested... ]
- Add support read-only folders (but not mailboxes -- they
can not be opened read-only). If lock_folders is set,
lock them with shared (or read lock) and not with exclusive
lock.
Promted by: Gertjan van Oosten <gertjan@West.NL>,
Hon-Yin Kok <hkok@yoda.unl.edu>
* "Please find attached a patch that makes ELM work with
read-only mail folders (archived mail folders are read-only
in our environment)."
From: Gertjan van Oosten <gertjan@West.NL>
[ Actually that patch is not used... ]
- "We are using elm on (the rather old platform) SunOS4.1.3_U1.
I tried the latest two versions -71 and -72, which do not
compile with gcc-2.8.1 (and -2.7.2) due to some (for this
platform) strange definition in hdrs/mbx_imp.h. There "FILE"
is used as a struct name, but this is (on this platform) a
define in stdio.h "#define FILE struct _iobuf" and therefore
crashes the compile."
From: Jan Weerts <weerts@pu.informatik.tu-darmstadt.de>
- "This is not really an elm bug, but it helps; under Linux
with libc version glibc-2.1 (RedHat 6.1 for example) elm
fails to compile since some header files have been changed.
Older versions exist in the directory
/usr/i386-glibc20-linux/include so it's necesary to add the
'-I' flags to the compiler. There's a patch in attachment
to the Configure script that checks if the directory exists
and if it does adds it to the list of c-flags."
From: Bojan Bistrovic <bojanb@physics.odu.edu>
[ I heavy modified that patch, I hope that I did not
broke it... ]
- Generate actual patchnames for files to FILES section
of elm.1 and elmcharset.1 manual pages (instead of using
/usr/local/lib always.)
- Let Configure script automatically suggest -woff 1009
to cflags on IRIX 6.5
- If Configure does not be able to generate mapping
from locale to MIME charset, mark locale as '(unknow)'
on elm.mimecharsets instead of defaulting to display
charset.
- Fix ConfTool/LocaleMap
- Configure -S now updates bin/elm.mimecharsets also.
- Mark EBCDIC as '(unsupported)'
- Fix unfolding of header on src/newmbox.c, add
unfold_header() to lib/mbox.c
- New elmrc option extra-mailbox-dir, which gives directory
on where folders are considered to be mailboxes (ie. to
they can arrive new mail when they are open.)
Prompted by: Geir Johannessen <joge@stud.ntnu.no>
New files:
hdrs/cs_imp.h
lib/string.c
lib/cs_binary.c
lib/panic.c
lib/hdrdecode.c
lib/hdrencode.c
src/id_phrase.c
lib/stringbuffer.c
hdrs/sb_imp.h
lib/sb_mem.c
lib/sb_file.c
ConfTool/charaliases.map
ConfTool/mapfiles
ConfTool/GenCharmap
Removed files:
lib/parsarpwho.c
src/returnadd.c
New elmrc options:
page-known-charsets
extra-mailbox-dir
- Elm dies (exits) after sending mail sometimes.
Reported by: Laura Kataja
- "We've had some trouble with the pgp5 support with
regards to signing messages using elm-2.4ME+70. When
trying to sign messages the error message
Pgp returned error status 7
appears and the message isn't signed. This appears to
be because a couple of pgp2 flags have made their way into
the pgp5 support. The following patch fixes things
(for me at least):"
Reported by: Greg Lewis <glewis@trc.adelaide.edu.au>
[ patch not used ]
"Ok, I see what you're saying (I didn't understand which
PGP executable was being called in the first case obviously :).
pgps, which does only signing, doesn't have the -s flag though
and neither pgpe nor pgps take a -w flag."
Reported by: Greg Lewis <glewis@trc.adelaide.edu.au>
> Dropped ws -flags from PGP_SIGNED_MESSAGE case.
[ rename() will wipe the original file (that what -w flag did.) ]
- Dropped RENAME and rename() from lib/opt_utils.c
In other words rename() is now required to be provided
by system.
- "There's a bizzare bug in last four versions of elm
(ELM 2.4ME+ PL67 - 70). It's related to the ispell:
when you use ispell, every other character I type gets
"swallowed" somehow, meaning that the ispell doesn't see
it but elm does. The effect is that you have to type every
letter twice while running ispell, and then after you're
finished all those letters get feeded to elm's menu:
Please choose one of the following options by parenthesized letter: s
e)dit message, edit h)eaders, s)end it, or f)orget it.
This isn't usually a problem since most of the time you use
space-character to skip word so it doesn't produce any erros,
but it's still a waste of time. "
Reported by: Bojan Bistrovic <bojanb@physics.odu.edu>
> Added Raw(OFF), Raw(ON) -pair around ispell.
- Reset buffer of background_read() on curses.c when
turning raw mode OFF.
- Seems that is is not allowed try another connect() after
unsuccesfully one with same socket.
> If error was EINVAL, close and reopen socket.
- Autoadd comma (',') after old addresses when adding new
address on header editing screen.
Promted by: Tom Haynes <thomas@netapp.com>,
Siegfried Schmitt <Siegfried.Schmitt@rz.uni-karlsruhe.de>
- Use on util/newmail.c same kind utime usage on lib/mbox.c
- Filter was dropped from installation and compilation
on Elm 2.4ME+ PL0 (25). Drop sources also from distribution.
Filter is maintained separately by
Philip Brown <filter@bolthole.com>
<URL: http://www.bolthole.com/filter/ >
- Header was not properly terminated on newmbox.c
after unfolding resulting duplicate last character
of header.
- add OpenBSD to a couple checks (utils/newmail.c)
- correct a time_t cast that was missed (src/mailmsg2.c)
- check for fork returning -1 in the one fork() that doesn't
do that yet
- pipes should be closed if the fork() fails (src/syscall.c)
This isn't tested, but it makes sense to me.
From: Paul Janzen <pjanzen@foatdi.harvard.edu>
- "Under HP-UX 10.20, read_rc.c needs:
extern int h_errno;"
Reported by: Zube <Zube@CS.ColoState.EDU>
- "Please find attached a patch to make newmail.c compile on
Solaris 2.x."
From: Gertjan van Oosten <gertjan@West.NL>
- "Please find attached a patch to fix an external pager bug;
if a folder has for example an incorrect Content-Length header,
ELM would screw up."
From: Gertjan van Oosten <gertjan@West.NL>
> [ Actually patch was not used. ]
- "Also, under Solaris 2.6/7, HP-UX 10.20 and
FreeBSD 3.1, if the mailbox does not exist
(i.e. /var/mail/user), elm will dump core.
If the file exists but is zero length, there
is no problem. This problem does not occur on linux
(Redhat 6.0 in my tests)."
Reported by: Zube <Zube@CS.ColoState.EDU>
- Also happened on IRIX
- bin/from.c and bin/newmail.c was trying to create
dotlock file $MAIL.lock
> Changed prepare_read_folder second argument to be
enum prepare_mode { PREPARE_NORMAL = 0,
PREPARE_NEW_ONLY = 1, PREPARE_NOLOCK = 2,
PREPARE_NEW_ONLY_NOLOCK = 3 };
- POP code now uses UIDL and remembers which messages
are really read. UIDL's of read messages
together which status is stored files with
name .username@hostname to folder (usually ~/Mail)
directory.
- "Further testing also reveals that excluding (changing
to 'undef') dotlock in the pre-configure script breaks
the build:
cc -I../hdrs -c mbox.c
mbox.c: In function `mbx_free_spool':
mbox.c:972: structure has no member named `lockfile'
Since the lockfile member is excluded from the struct in
mbx_imp.h based on the define for USE_DOTLOCK_LOCKING, and
the mbox.c file does not use ifdefs around
the various code where the lockfile member is used."
Reported by: Keith Ward <kward@panther.net>
- Fix "Would you like the domain name appended?" query.
[Broken on PL46]
- Dropped HOSTCOMPILED
- Dropped xenix special case from Configure (about uuname)
- If gethostname() and uuname() are not supported on
system, hostname must be given on system elm.rc file.
- On some systems try also use gethostbyname() to
get hostfullname and hostdomain from hostname.
If that succees, getdomainname() is not used anyway.
* Note that host's domain name is still compiled in.
-> These changes make it closer that some time in future
it is possible to do binary distributions of elm.
Notice however that there is still too much compiled in
configuration for binary distribution.
- Try use dnsdomainname (that is on Linux) to get domainname
on Configure.
"Third, I don't know if this is supposed to work this way,
but the default domain name offered is always .UUCP ; it
would be nice if the Configure shell could get the domain
name correctly (via 'dnsdomainname' for example)."
Suggested by: Bojan Bistrovic <bojanb@physics.odu.edu>
- "I've had some problems when trying to compile
ELM 2.4ME+ PL66 (25) under Linux (RedHat 6.0,
egcs-2.91.66, with "-fpcc-struct-return").
in read_rc.c, the compilation would fail with the error:
read_rc.c:79: initializer element is not constant"
Patch from: Bojan Bistrovic <bojanb@physics.odu.edu>
> Added init_debugfile() also to utils/answer.c,
utils/elmalias.c, utils/fastmail.c, utils/from.c,
utils/newalias.c, utils/newmail.c, utils/prlong.c,
utils/readmsg.c, utils/elmcharset.c
* Also reported:
"I have the following compilation error in elm-me pl66
platform : linux redhat 6.1
This bug did not sho up in pl 62 used routinely.
read_rc.c:79: initializer element is not constant"
Reported by: Emmanuel BIGLER <bigler@lpmo.univ-fcomte.fr>
"I've had this bit of a problem compiling elm-2.4+ME62.
Actually, the error has been around since the elm-2.4+ME57
stage, and probably even before then. The error involves
anyone using GNU libc 2.0 or higher. I'm using glibc-2.1.2
on my linux box, kernel 2.1.12 and 2.3.18. Compilation and
error follow:
cc -I../hdrs -O -c read_rc.c -o read_rc.o
read_rc.c:78: initializer element is not constant
line 78 in read_rc.c, has:
FILE *debugfile = stderr; /* file for debug output */
According to the Glibc FAQ, at http://sourceware.cygnus.com/glibc,
3.9. I get compiler messages "Initializer element not constant"
with stdin/stdout/stderr. Why?
{RM,AJ} Constructs like:
static FILE *InPtr = stdin;
lead to this message. This is correct behaviour with glibc since
stdin is not a constant expression. Please note that a strict
reading of ISO C does not allow above constructs.
One of the advantages of this is that you can assign to stdin,
stdout, and stderr just like any other global variable (e.g.
`stdout =my_stream;'), which can be very useful with custom
streams that you can write with libio (but beware this is not
necessarily portable). The reason to implement it this way were
versioning problems with the size of the FILE structure.
To fix those programs you've got to initialize the variable at run
time. This can be done, e.g. in main, like:
static FILE *InPtr;
int main(void)
{
InPtr = stdin;
}
or by constructors (beware this is gcc specific):
static FILE *InPtr;
static void inPtr_construct (void) __attribute__((constructor));
static void inPtr_construct (void) { InPtr = stdin; }
I've tried a number of changes like this, in the read_rc.c
program, which all gave me errors. I'm open to trying to find
the right place to make the correction, but seeing that just
about every file in the src directory uses debugfile, I'm a bit
baffled on where to add this in. If you have any ideas on how to
resolve this, I'd love to know how. Thanks in advance!"
Reported by: Brad Littlejohn <tyketto@zip.omnilinx.net>
- Added information to output of 'elm -vv' about compiled in
host's domain name and is domain part (@hostname) added to
address of From: -header (and other).
- SECURITY: print_msg() on src/syscall.c was using popen()
(without resetting egid).
- Added to start_run() (melib/src/syscall.c) ability to make
output (and error) pipe.
> Converted print_msg() on src/syscall.c to use start_run()
- Let print command to print output to screen (do not
redirect to /dev/bull -- was broken on some earlier version)
- Added new command Print text -command (P). This
prints decoded content of message.
- SECURITY: read_in_messages() on src/editmsg.c was using
popen() (without resetting egid).
> Converted read_in_messages() in src/editmsg.c to use
start_run()
[ If SAVE_GROUP_MAILBOX_ID is defined, these popen's
most likely do not cause any problem. In that situation
Elm run's on most of time with resetted egid. ]
[ Warning: This have quite much changes on folder
handling, so please report new bugs which
you observe. Also POP code is little
tested. ]
> Moved most of code from bytes() on src/file_util.c to
lib/file_util.c
> Moved save_file_stats() from src/fileio.c to lib/file_util.c
> Moved open_or_create() from src/file_util.c to lib/file_util.c
> Moved copy_to_folder() from src/file_util.c to lib/file_util.c
> Moved copy1() from src/file_util.c to lib/file_util.c
> Moved elm_chown() from src/util.c to lib/file_util.c
> Side effect is that incoming mailbox is keep locked
during reading of mails -- not just looking new size
of it
- Added lib_prompt() and lib_transient() to lib/output.c
- lib/schedule.c does I/O multiplexing with select() or poll().
> NOTE: Code using poll() is NOT TESTED
- lib/mbox.c provides access routines for folders.
Also it provodes SPOOL (mailbox) and NON_SPOOL (normal folders)
type folders.
- lib/pop.c provides POP type folders.
- POP mailboxes can be accessed by giving username@hostname
as folder name. Note however that:
- Offline reading is not supported.
In other words this code does not follow
'download and delete' -method.
However temporary file is used same way
than is used in case of unix mailbox.
- It is not possible to e)dir POP mailbox
- Automatic notification of new mails seems not
work. You need resync ($) folder instead.
- It is not possible to s)ave or C)opy to
to POP mailbox (POP does not have STORe command.)
- Elm does not remember which messages are
read and which are new (UIDL command should be
used.) However POP server may perhaps provide
artifcial Status: -header -- on some situations
information of that may be misleading (for
example in resyncing ($)).
- Messages are keep on POP mailbox until you D)elete
them and then resync ($) or quit.
- On resync ($) POP connection is closed and
reopened. Because password is not stored to
memory, it will be reasked.
- POP code is very little tested and quite sure
there may be some bugs...
- Sending of mail still happens via calling
of local mailer -- SMTP or Message
Submission protocol is not supported.
- POP code uses TCP port 110 (POP3)
- Messages from POP mailboxes are saved to folders
with POP's (= Internet's) EOLN convention. That
is CRLF. In other words thet are not converted
unix's EOLN convention which is LF only. Elm
should able to handle that (and that is more
'binary' mail firendly.) If you need mail
text without extra CRes, use 'S' (save text)
command.
- Note that it is currently explicite disallowed
$MAIL variable to be interpreted as POP mailbox
even if you put it to form username@hostname.
Also saving to '!' may end to file name username@hostname
if you have put that to elmrc variable incoming-mailbox.
- Note that elmrc variable 'mailbox' was synonym
for variable 'receivedmail' which teels to which
folder to store receiced mails (normally =received)
Now elmrc variable 'mailbox' is removed.
- New elmrc variable 'incoming-mailbox' can be
used to tell location of POP mailbox
- If you c)hange folder, opening of new folder is done
before old is leaved (so do not change from local
mailbox ($MAIL) from POP mailbox $USER@localhost
-- bad things may happen.)
- C)opy and s)ave does not use lib/mbox.c routines,
so if you try save to user@hostname, you ended to
save to file with that name!
- Lock file (.dot) is removed is removed if if it more that 10
minutes old (and mailbox is not accessed). That test is done
after when lock is tried to create to X times, where X is
given on Configure -time.
> In other words question "Should it REMOVE the lock file after
X checks? " is removed from Configure.
- Converted utils/from.c to use lib/mbox.c.
- Converted utils/newmail.c to use lib/mbox.c
- Note that utils/readmsg.c still does not use mailbox
(lib/mbox.c) routines!
- error() on src/out_utils.c auto sleeps if needed
(sleep is skipped if there is keyboard input (on some OSes))
-- transient() (via lib_transient()) may be used if wait is
not wanted.
- "I have always felt a need for an unread function in Elm.
Specifically, sometimes I want to mark a message as unread
even though I have read it in order to make it stand out the
next time I open the folder.
So when I finally had some time free I decided to make an unread
function tied to the 'U' key. The work is based on a similare
solution by bruceb@locus.com (Bruce M. Binder) way back in 1995
for the last official version of Elm.
I would be happy if you could apply the patch to elm-2.4ME+PL67.
The patch is enclosed at the end of the mail."
From: Geir Johannessen <joge@stud.ntnu.no>
- Removed unused (and broken) leapyear macro from src/date.c
- Removed extra
extern char *strpbrk();
utils/answer.c -- already defined on header files.
- Added new command Save text -command (S). This
saves or copies decoded content of message to file
or folder.
[ Undo Elm2.4ME+ PL66s patch before installing
this patch. Security fix of PL66s is included
on PL68. ]
New files:
lib/mbox.c
lib/file_util.c
lib/pop.c
hdrs/mbx_imp.h
lib/schedule.c
New elmrc options:
incoming-mailbox
- SECURITY: print_msg() on src/syscall.c was using popen()
(without resetting egid).
- Added to start_run() (melib/src/syscall.c) ability to make
output (and error) pipe.
> Converted print_msg() on src/syscall.c to use start_run()
- Let print command to print output to screen (do not
redirect to /dev/null -- was broken on some earlier version)
- SECURITY: read_in_messages() on src/editmsg.c was using
popen() (without resetting egid).
> Converted read_in_messages() in src/editmsg.c to use
start_run()
[ If SAVE_GROUP_MAILBOX_ID is defined, these popen's
most likely do not cause any problem. In that situation
Elm run's on most of time with resetted egid. ]
- Extra NotKnowPrint (875) and MailNotSaved (876)
removed from nls/C/C/C/s_elm.m.
Problem boted by: Oota Toshiya <oota@ppd.fc.nec.co.jp>
- Added utils/elmcharset.c
lib/charset.c
doc/elmcharset.1
> MIME character set (and others) can be now presented with
pointer of type charset_t. Changed charset and display_charset
to be type charset_t.
> Moved get_charset_map_info() to lib/charset.c from
lib/read_rc.c
[ Added load_charset_map_info() and implemented
get_charset_map_info() with load_charset_map_info() ]
* load_charset_map_info() now parses additional information
> Moved mime_parse_content_opts() to lib/charset.c from
melib/mime_parse.c
- On .elm/mime.charsets and {lib}/elm.mimecharsets there may
be lines like
- ISO-8859-1;MIME-subset=US-ASCII
That kind definition may be used instead of compatcharsets
elmrc option.
- Added new elmrc -variable type DT_FUNC (call function for
value). Now compatcharsets -option is that kind
(function charset_compatfunc).
- Removed rmt-install target from Makefiles
New tools:
elmcharset
- Result of have_pgp() was not checked on copy_pgp
(on fileio.c)
- Default to PGP 5 only if pgp5-dir is given.
Otherwise use pgp-version when reading PGP 5 mail.
- Some support for different PGP versions.
New elmrc options:
pgp2 (Gives path of PGP 2 binary)
pgp5-dir (Gives path of directory for PGP 5 bianries)
gpg (Gives path og Gnu PG binary)
pgp-version Gives what program to use when signing
or encrypting mail. One of 'pgp2', 'pgp5'
or 'gpg'.
Elmrc option pgp is now obsolete.
- Default action for messages which includes PGP keys is
now extract keys
- Ctrl-E still extract keys. Difference is that
uses version which is given on pgp-version
elmrc option and do not take account MIME.
- When sending encrypted mail and PGP key not found
for recipient, menu
e)dit recipient list, s)kip recipient, q)uit
is provided.
- Also if you visit pgp menu and do nothing (or fail).
Default is changed to 'p' (go again pgp menu).
> That try prevents sending mail accidentally without
encrypted if you tried to send it on encrypted form
> Added DT_LONG for elm_timeout (DT_NUM was wrong)
> Added DT_PGPVER
- Some support for multipart/encrypted on reading side.
- Support for application/pgp-encrypted protocol.
> Attachments on application/pgp-encrypted are not supported.
- If compiled with REMOVE_AT_LAST defined, there is
error 'lock.c:286: `lockfile' undeclared' error.
Reported by: bigler@jsbach.univ-fcomte.fr
- Some code moved from src/syscall.c to hdrs/syscall.c
- Some support for multipart/signed on reading side.
- Added elmrc variable "pagesigned". If set
parts with unknown protocolls are paged.
- Support for application/pgp-signature protocol.
- Use %Q on add_parameter()
New elmrc options:
pagesigned
- "Elm fails to remove the /tmp/print.xxxx file after
sending a message to the print spooler.
After a "print " command, a copy of the message is left in
/tmp as /tmp/print.xxx"
Problem noted by: Konstantinos Konstantinides <kk@StreamMachine.COM>
- Some fixes so that this compiles more cleanly on
IRIX 6.5. You still want use -woff 1009 however.
- Add support for ISO-8859-15 locales (*.ISO8859-15)
of IRIX 6.5
- Added special conversion type 'Q' (mean to quoted string)
to elm_vmessage() [lib/output.c]
- "In Configure, when testing for the sendmail version,
something (even an empty string) should be supplied on
STDIN to the $mailer. Otherwise, if $mailer is actually a
wrapper script that expects something on STDIN, it could
wait forever for input."
From: mike@hyperreal.org
> Redirected $mailer's input to /dev/null on test.
- "elm_vmessage()" wasn't correctly converting numbers
with "%d", "%x", or "%X" - there was an extra "6" in
all the format strings, so the digits 7, 8, and 9 got
converted to 6, 7, and 8. One of the few places where
software would work *better* in 2000.... :-)"
From: Guy Harris <guy@netapp.com>
- "Use "$echo" rather than "echo" in the "Configure" script,
so if it had to explicitly use "/bin/echo", it does so in
all places where it is echoing a string that's not supposed
to have an NL at the end (otherwise, you may end up with
[Type carriage return to continue] \c
with the extra "\c" at the end)."
From: Guy Harris <guy@netapp.com>
- Undo AFS patch of PL58 -- it seems cause crash...
- Added %x and %X formats to elm_vmessage (lib/output.c)
- Although doc/mime.charsets is based on IRIX 6.2,
added to it following locales from GNU locales (Linux):
cs_CZ, eu_ES, ga_IE, no@nynorsk, sr_YU
(eu_ES, ga_IE, no@nynorsk, sr_YU marked as unsupported)
- Added ConfTool/LocaleMap, ConfTool/GrepValue
- Little more intelligent generation of elm.mimecharsets
- "We are using the "fastmail" program to send mass mailings on
our internal network. For some reasons I was looking for the
possibility to set the "Precedence:"-header. But I did not find
any. Therefore I have added another option to the fastmail
program to aspecify a "Precedence:"-header."
From: Norbert Gruener <nog@MPA-Garching.MPG.DE>
- Removed I_STDLIB
now if ANSI_C is defined stdlib.h is used,
otherwise not
- Changed const keywords to CONST macros
- Close mailbox after in is read -- keeping it open
prevents mail from arriving when AFS is used.
Patch from: Norbert Gruener <nog@MPA-Garching.MPG.DE>
[ Undone in PL59 ]
- Put forward structure definitions inside of
#ifdef ANSI_C
- HP-UX gives warning
"../hdrs/elmlib.h", line 123: warning 617: Redeclaration of tag "tm" ignored.
Problem noted by: oota toshiya <oota@pes.com1.fc.nec.co.jp>
> Removed definition and changed replaced #include "elmlib.h"
with #include "headers.h" (to avoid opposite error) on:
lib/atonum.h, lib/expand.c, lib/get_tz.c, lib/getword.c,
lib/ldstate.h, lib/len_next.c, lib/mail_gets.c, lib/msgcat.c,
lib/qstrings.h, lib/safemalloc.h, lib/headers.h, lib/strmcpy.c,
lib/validname.h
- Add missing 'return 0' to buffer_to_text() on
src/hdrconfig.c
- Certain aliases expansions was causing Elm ME+
to crash on aliaslib.c
Problem noted by: Bruce Momjian <root@candle.pha.pa.us>
- Add elmrc option "convert-comment-to-fullname".
When this is set address
address (comment)
is parsed as
address (fullname)
instead. That is for compatibility to older versions
of Elm. Option "convert-comment-to-fullname" is
set by default.
- Fix compile time error if USE_DOMAIN is defined
- Fix compile time error if MMDF is defined
- Some MMDF fixes from Bob Broughton <bob.broughton@zadall.com>
for PL37. They are little modified (and untested).
* MMDF sure still do not work
New elmrc options:
convert-comment-to-fullname
WARNING: That patch is biggest so far, so there is
much changes. So expect bugs. Specially
address handling and aliases expansions
are rewritten.
NOTE: Check locale setting by running:
elm -vvvvv
- Drop translate_return() from src/addr_util.c
(not longer used)
- Drop fix_arpa_address() from src/addr_util.c
(not longer used)
- handle_reply_to() on src/reply.c was not decoding
MIME -encoding (decode_who_none was used instead of
rfc1522_decode_structured)
- Add get_alias_address_l(), do_expand_group_l(), do_get_alias_()
(and helper function _add()) to src/aliaslib.c
- Implement get_alias_address() (*) in terms of
get_alias_address_l() in src/aliaslib.c
- Drop do_expand_group(), add_name_to_list(), do_get_alias()
from src/aliaslib.c
- Moved expand_list() (*) to aliaslib.c (only used
on aliaslib.c now) from mailmsg1.c and simplified
- (*) Actually get_alias_address(), expand_list() on aliaslib.c
and build_address() on src/addr_util.c is not used any
more -- them are put inside of #if 0 ... #endif
[ get_alias_address, expand_list and build_address
is removed on PL67 ]
- Don't ask First and Last names for group aliases.
- Add build_address_l(), argv_to_expanded(),
expanded_to_edit_buffer() and
update_expanded_from_edit_buffer() to src/addr_util.c
- Add add_expanded_(), add_textual_(), zero_expanded_address()
make_surface(), free_expanded_address() helper functions
to src/addr_util.c
- Add struct mailing_headers and zero_mailing_headers()
and free_mailing_headers() functions to src/mailmsg1.c
[hdrs/me.h]
- Dropped remove_hostbang() from src/mailmsg2.c
- src/hdrcnfg.c uses now struct mailing_headers.
> Added inpval_to, expval_to, hdrproc_to,
inpval_cc, expval_cc, hdrproc_cc, inpval_bcc,
expval_bcc, hdrproc_bcc, inpval_subject,
expval_subject, hdrproc_subject, inpval_reply_to,
expval_reply_to, hdrproc_reply_to, inpval_action,
expval_action, hdrproc_action, inpval_expires,
expval_expires, inpval_priority, expval_priority,
hdrproc_priority, inpval_precedence, expval_precedence,
inpval_in_reply_to, expval_in_reply_to,
hdrproc_in_reply_to, inpval_userhdr, expval_userhdr
> Modified hdrproc_expires, hdrproc_precedence,
hdrproc_userhdr
> Added hdr_to_buffer, hdr_to_expval, buffer_to_header,
text_to_buffer, text_to_expval, buffer_to_text,
* NOTE: Now addresses are show as
fullname <address>
- address (comment) kind usage is preserved if it
is used.
- editmsg.c uses now struct mailing_headers.
> get_with_expansion() replaced with
get_addr_with_expansion() and get_text()
> Common part of these moved to new procedure get_it()
- Added have_editor() to editmsg.c
- edit_the_message() takes now arguments editor
and headers (struct mailing_headers)
- send_msg_middle() and send_msg_argv() to src/mailmsg1.c.
- Dropped send_msg() from src/mailmsg1.c
- Common part of mail() (src/mailmsg2.c) and remail()
(src/remail.c) moved to new mail_backend() (mailmsg2.c).
- Added comment field to struct addr_item. Now
addresses are parsed (lib/getaddr.c) as:
fullname <address> (comment)
- Although doc/mime.charsets is based on IRIX 6.2,
added to it following locales from GNU localdb (Linux):
de_BE, de_CH, de_LU, en_DK, en_GB, en_IE,
et_EE, fo_FO, fr_LU, gr_GR, kl_GL, nl_NO, bt-br,
ru_RU, sl_SI, lt_LT, lv_LV
(I think that bt-br is typo on GNU localdb -- should be
bt_BR I suppose. lt_LT and lv_LV I marked as unsupported
because it is uncertaing what is charset associated to them.)
- Now configure tries to do 'locale -m' for list of mapping
tables (GNU locale/localdef) and put result to elm.mimecharsets
with key like *.tablename. I hope I have understand that
'locale -m' correctly.
- Now is possible to generate $lib/elm.mimecharsets
from scratch even when it exists already.
- If I_LOCALE is defined (Elm will call setlocale()) and
message catalog routines are found, then Elm will
use system's message catalog routines without asking.
- If I_LOCALE is defined (Elm will call setlocale()),
assume that isprint() is not ASCII only (do not
ask from user if isprint() is broken).
- If I_LOCALE is defined (Elm will call setlocale()),
assume that tolower() and toupper() works without
testing, because ELm's replacement routines are
ASCII only.
- Elm -vv now prints dedination of I_LOCALE, ASCII_CTYPE
and BROKE_CTYPE also.
- If ctype routines are ASCII only, set MIME charsets to
US-ASCII without asking from user.
- Checking that isprint(), toupper(), tolower(),
[isupper(), islower()]
are called with unsigned char -values.
- Added elmrc -variable sort-thread-max-time. This controls
how long can be time (on days) between mails with can
be considered to be same thread when using threaded
sort.
- Dropped remailer stuff (and USE_REMAILER), src/remailer.c
- Dropped src/returnadd.c, removed kludge()
- Added have_printout() to src/syscall.c
- Added test to Configure to see if shared libc.so is
actually is GNU ld script (for Debian Linux 2.1).
- Added test to Configure to look look EWOULDBLOCK from
/usr/include/asm/errno.h on Linux
- Added test to Configure to look look F_SETLK from
/usr/include/asm/fcntl.h on Linux
- Changed texts and defualts about locking on Configure
- Now Configure defaults Linux 2.0 with flock locking.
On Linux 2.1 and 2.2 both flock anf fcntl locking.
On Linux 1.* Configure defaults fcntl locking.
- On sysv systems (or non-BSD systems) Configure defaults
no flock locking.
- Change default of COnfigure to not use getdomainname()
for mail domain. It gives NIS domain.
- Accept none as printer spooler name on Configure.
Note that on this case printing command must be set on
global elm.rc
- Search /var/spool/mail one candinate for mail spool directory
on Configure (for Debian Linux 2.1)
- Removed memory models question form Configure. It is
not used.
- Removed PDP11 from Configure.
New elmrc options:
sort-thread-max-time
[ Before applying this patch, undo Elm2.4ME+ PL53Y -patch. ]
* "Kari, the following headers, cause with 'g'roup reply
two instances of the same adress the reply is sent to."
Problem noted by: Roeland Th. Jansen <bengel@grobbebol.xs4all.nl>
- Added okay_address_l() to lib/okay_addr.c
- Added current_header argument to send_msg().
- Changed handle_reply_to() and get_and_expand_everyone()
to return struct addr_item array.
- Changed optimize_and_add to process struct addr_item
array.
- Added current_header argument to src/send_msg()
- Added send_msg_l() and expand_list() to src/mailmsg1.c
- Dropped get_return() call from src/alias.c
- Dropped get_return() call from src/file.c
- Dropped '%' command (get_return() call) from src/elm.c
- Dropped '%' command (get_return() call) from src/showmsg_c.c
- Removed get_return() function from src/returnadd.c
- Use okay_address_l() in lib/displaddr.c
- Removed figure_out_addressee() and lib/figadrssee.c
- Removed okay_address() from lib/okay_addr.c
-Remove uneeded initialization from utils/from.c (frm).
Already done on inet_defaults().
- Call abort() if emergency_exit() is called with
interrupt -set (for helping of debugging)
- Test that year >= 0 instead of year > 0 on
cvt_yearstr_to_yearnum(). That affects if
year 2000 is given as 00.
Year 2000 fix from: Ed Symanzik <zik@msu.edu>
- Interpret years 100 - 199 as year + 1900
(that is 2000 - 2099) in cvt_yearstr_to_yearnum().
- Closing folder twise causes error message:
Sorry, can't unlink the temp file /usr/tmp/mbox.$USER
[No such file or directory]!
Problem noted by: Jussi Kaurola <kaurola@oxygen.FMI.FI>
- Add one more buffer bounding check for gcos_name().
- Fix incorrect match on map_display_charset()
(lib/read_rc.c). May causes that display_charset
is mapped to "" string.
- Allow -A (Attach) option to work on batch mode.
- "I've put together a patch which implements a threaded
sort order for elm2.4.ME+43, which I'd like to see get
committed to the main distribution. The sort is very
similar to the existing SUBJECT sort except that the
threads appear in chronological order based on the time
sent of the first message of the thread."
From: Brian Dean <brdean@unx.sas.com>
> Sorting of REVERSE THREAD was completely broken on given
patch. I hope that I managed to fix it.
- If =received is treated as mailbox (for example because
of protection mask of folder), user if promted for
"Move read messages to "received" folder? (y/n)"
altough user is already on =received -folder.
Hitting of 'y' can cause lost of folder.
Problem noted by: Isaac Stoddard <u177k@gsde.hso.link.com>
- Added same_file() to me.h and maked it non-static on
newmbox.c
[ This patch is branch from the main line. ]
- Test that year >= 0 instead of year > 0 on
cvt_yearstr_to_yearnum(). That affects if
year 2000 is given as 00.
Year 2000 fix from: Ed Symanzik <zik@msu.edu>
- Interpret years 100 - 199 as year + 1900
(that is 2000 - 2099) in cvt_yearstr_to_yearnum().
- Closing folder twise causes error message:
Sorry, can't unlink the temp file /usr/tmp/mbox.$USER
[No such file or directory]!
Problem noted by: Jussi Kaurola <kaurola@oxygen.FMI.FI>
- "I used to get 'emergency' errors when syncing a mail
folder (via shortcut '$') and sometimes when quitting.
The function file_util.c: copy_to_fh did not have a
'return(0);' at the end to catch the case when nothing
went wrong. It was returning a random value instead.
This random return value was passed back up as a fatal
error. Adding a return at the end seems to have solved
the problem."
From: Marc Pawliger <pawliger@Adobe.COM>
- "I am still experiencing a crash when composing a message
using Elm and I hit the '~p' shortcut to print out the
message in progress. There is a NULL dereference happening
and elm crashes."
Problem noted by: Marc Pawliger <pawliger@Adobe.COM>
> Missing format string for Write_to_screen on editmsg.c.
- Removed MIME configuartion option. Now MIME support
is always compiled in.
- Added elmrc option send-mime-plain-text. When this is not
set, text/plain US-ASCII messages with encoding 7bit
are sent without MIME headers. Default is that
send-mime-plain-text set.
- Add print_EOLN(filedesc,mime_info->encoding_top) to some places.
- Do append_sig() before needs_encoding() on mailmsg.c
(case editor == builtin)
- Move writing of Content-Length -value to copy_message_across()
- cl_start, cl_end and cl_offsett moved to mime_send_t
(not a mime informatuion actually) and no longer global
information.
- Only write content-length to copy of mail (do not send it)
New elmrc options:
send-mime-plain-text
[ There is reported some problems on folder handling
on PL51. It is unclear if this fixes them. ]
- Add possibility to specify on Configure what directory
check first for programs.
Prompted by: Marc G. Fournier <marc.fournier@acadiau.ca>
- Look /usr/share/locale also from locale directory
(not only /usr/lib/locale)
Prompted by: Mike Brown <mike@hyperreal.org>
- Use more, if available (and only if Configure is
not run with -d option), to page bin/elm.mimecharsets
- MMDF support patch
From: Konstantin Kuznetsov <cvs@florin.ru>
- map_display_charset: use best match from file instead of
first match
- Reopen folder after unlink so that copy does not
go nowhere!
Problem noted by: Jacek Uminski <jaceku@tch.com.pl>
- If folder locking is used, do not unlink and link
folder, instead copy to it on leavembox.
- skip_space was uninitialized on rfc1522_decode_structured
[ Warning: This have quite much changes on folder
handling and locking, so please report
new bugs which you observe.
Before applying this patch, undo
Elm2.4ME+ PL50s -patch.
]
- Added struct folder_info and moved some variables
to it (cur_folder, cur_tempfolder, folder_type,
equivalent of mailfile, mailfile_size, lock_state,
lockfile, create_fd)
> Now copy of mailbox to /tmp is created little earlier.
> Mailbox is not opened second time for syscal locking.
- Added pgp-sign-type elmrc -variable. Possible values are
application/pgp, text/plain and text/x-pgp.
Inspired by: Will Day <willday@rom.oit.gatech.edu>
- Added elmrc option readdatapercentinc (default 5).
This tells how owten show percentage of read mailbox
in "Reading message" -text.
> Changed readmsginc elmrc options default to 100.
> Notice that actual update frequence is determined
by combination of both of these (readdatapercentinc
and readmsginc)
- Fix incorrect bound checking on putc_so_string()
(state.c)
- base64_decode was passing wrong buffer size to
state_getl
Problem noted by: Yury Yaroshevsky <yk@info.dgtu.donetsk.ua>
- Move definition of SYSCALL_LOCKING to defs.h from lock.c
- Add indication of SYSCALL_LOCKING to elm -vv output
- Remove lock-in-copy option if SYSCALL_LOCKING is
not compiled (so that elmrc is not filled with irrelevant
options)
- Added lock-folder elmrc option (available if SYSCALL_LOCKING
is compiled). Default: on
- For forward compatibility: strip text after ; on
charset= and display= -charset lines and on mime.charsets
-file (function get_charset_map_info).
- attach_save (on src/attach.c) was saving one byte too
less data when saving of attachment which do not require
decoding.
- Generation of elm.mimecharsets was not very smart.
Problem noted by: Mike Brown <mike@hyperreal.org>
New elmrc options:
pgp-sign-type
readdatapercentinc
lock-folder
[ This patch is branch from the main line. ]
- Fix incorrect bound checking on putc_so_string()
(state.c)
- SECURITY: base64_decode was passing wrong buffer size
to state_getl
Problem noted by: Yury Yaroshevsky <yk@info.dgtu.donetsk.ua>
- elm -vvvv now print names of some configuration files
- elm -vvvvv prints some configuration data (mainly
locale dependent data)
- "When I use the keys '+' or '-' in an empty attachment
list elm exits with a segmentation violation. This seems
to occur because the variable 'ptrs' points to NULL (and
'ptr_max' is equal to 0) which is not checked.
The following patch fixes this bug."
From: Henrik Pletat <pletat@informatik.hu-berlin.de>
- Added locale_init() to lib/read_rc.c and moved to
catopen and setlocale to it.
- Added mapping from LC_CTYPE locale to display_charset.
Mapping is done on file $lib/elm.mimecharsets or on
.elm/mime.charsets
- Special value DISPLAY on elmrc variable charset
means that use display_charset.
- Moved variable substitution from Configure to
ConfTool/Substitute (called automatically)
- Ctrl-U and Ctrl-D on builtin++ pager was working
inconsistently.
Problem reported by: Andrew J. Piziali <andy@piziali.dv.org>
- Put ME+ to under of CVS. Because revision numbers
changed there was need of changing header text of files.
- "It fixes a small problem with the date representation
in the upper right corner. Currently, times like
"09:08:02" are displayed as " 9: 8: 2". This is because
src/date.c uses the format "%2.2d:%2.2d:%2.2d" which is
not supported by elm_vmessage() (gets interpreted as
"%2d:%2d:%2d"). The patch changes this to "%02d:%02d:%02d"
(this is used everywhere else anyway), which fixes the
problem."
From: Gertjan van Oosten <gertjan@West.NL>
- If To: is empty and I have sender, show sender of mail
(DisplayAddrress (lib/dispaddr.c) was not correctly
detectection empty To: -header.)
- Changed to and cc field on header_rec to include
result of break_down_address
- Added to_matches and cc_matches to pattern.c
- moved and reimplemented forwarded from utils/newmail.c
and src/addr_util.c to lib/forwarded.c
- shift_lower needs const for argument
- Add buffer overflow check to stip_parens() and get_parens()
(lib/striparens.c)
- Moved main part of parse_arpa_date() to new routine
parse_date_time (lib_/parsarpdat.c) and let parse_arpa_date()
to call that routine.
- Reimplemented process_expiration_date() (src/expires.c).
Original code did not handled 4 number years and was broken
on year 2000. New code uses just parse_date_time() --
However it accepts expiration times where date part
is only given from RFC 822 date-time format.
- Now real_from() (lib/realfrom.c) assumes local timezone,
if timezone is not given, because From mailbox separator
is normally inserted locally.
- There was "multi-character character constant" -warning
coming from src/mkhdrs.c
Reported by: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
- "If you switch to the option editor screen, change
"O)utbound mail saved" from "=sent" to "=sent" (i.e.
enter the displayed character sequence), return to the
index, and then mail a message, the outgoing message
will be saved in a file named ~/=sent rather than in
~/Mail/sent. The equal sign is not getting expanded
to the user's mail folder directory."
Reported by: Andrew J. Piziali <andy@elijah.dv.org>
- "I suggest checking and accepting (extending) existing PATH"
From: Witold Witkowski <yawitkow@cyf-kr.edu.pl>
> Moved $PATH to beginning of initial PATH of Configure
- Do not treate characters > 127 as controls (allow
they on words of phrases)
- Fix name of "Forwarded message from" -text
- Split break_down_address to look_special_tokens(),
scanned_to_phrase(), scanned_to_str() routines
and reimplement break_down_address as state machine
(4 states, 6 terminals).
> Now phrase from group -syntax is ignored and
route from address is dropped.
- strtok(), strpbrk(), strstr() was declared in both
of elmlib.h and defs.h (remove later declaration).
Noted by: John Goerzen <jgoerzen@complete.org>,
Emmanuel Bigler <bigler@alpha.univ-fcomte.fr>
- Changed from field on header_rec to include
result of break_down_address (instead of just fullname).
- "From " address is stored to new env_from field
> Sorting based on sender uses first "From " address
and then parsed From: -header (fullname and then address)
> Limit with 'from' now works both of full name and address
and it uses now MIME-decoded full name. Also "From "
address is considered.
- get_return (on returnaddr.c) is simplified. Now it uses
stored (and parsed) From: -header from from field of header_rec
- Assume INTERNET (style addresses). Remove question from
Configure and all ifdefs.
- Assume USE_EMBEDDED_ADDRESS (From: and Reply-Top:). Remove
question from Configure and all ifdefs.
- Call user_init(), init_defaults() and read_rc_file() on
newmail.
- skip_envelope on melib/parse_util.c was not skipping
">From " -lines.
- Save composition filename to global variable
(so it does not need to be genrated in signal handler
for removal)
- Added lib/getaddr.c (break_down_address,
free_addr_list)
- Moved rfc822_tokenize, remove_space_tokenized,
free_rfc822tokenized from melib/parse_util.c
to lib/getaddr.c
- Reimplemented parse_arpa_who (lib/parsarpwho.c)
and get_address_from (lib/getaddrfrm.c) with
break_down_address
- Added size argument to (get_address_from)
- replace break_down_to_list (src/reply.c) with
break_down_address
- "patch-hmo-1 extends the '#' debug menu, showing
all defined message flags, in the order present
in hdrs/defs.h."
From: Helge Oldach <hmo@sep.hamburg.com>
- print attachment instead of just printing [skipping...]
message when printing from atttachment -menu
- Changes calling sequence of Write_to_screen
- Added some messages to message catalog
- Added PutLineX to curses.c
- Dropped Putline1, PutLine2, PutLine3 to favor
PutLineX
- Remove hostname initialization from fastmail,
fastmail now calls read_rc -routines
- Tweak little (add missing space) to build_header_line
- "When I'm in the attach menu before sending a mail and
I use the delete function on the LAST attachment, the
cursor diappears. Trying then to move up the cursor
elm exits with a sigmentation violation.
This error appears in several versions of elm."
From: Henrik Pletat <pletat@informatik.hu-berlin.de>
- Fix call of parse_arpa_who in figure_out_addressee, which
caused that To -address in 'frm' was truncated.
- Change days_ahead to return year in 4 numbers and simplify it.
- Some year 2000 fixes for src/date.c
- Make elm_date_str to return year in 4 numbers
[ Undo Elm2.4ME+ PL41h patch before installing this patch. ]
- Tweak little (add missing space) to build_header_line
[ Warning: This is so much changes (and some are
incomplete) so this this quite sure more buggy than
PL40. ]
- "it's not "a X-Windows" but rather "an X-Windows"; and
BTW, it's not "X-Windows" at all cause that term simply
does not exist (cf. man X). Simply replay "an X-Windows"
by "an X11". Thanks."
From: (sender's name lost)
( I managed to delete hurtta+elm Mailbox, so resend
your mails if they are sent between 1998-03-04 and
1998-04-04. )
- Added some messages to message catalog
- iprintf.c dropped (so far) -- it is not used (at least yet)
- elm_sfprintf, elm_message
> Global change: Most of sprintf calls replaced with elm_sfrpintf
- Do not longer test existence of mkdir()
- "this is another very simple fix that repairs this:
posixsig.c:89: warning: preprocessing directive not
recognized within macro arg"
From: Helge Oldach <hmo@sep.hamburg.com>
- Dropped error1, error2, error3 to favor lib_error
- Changed how menu2.c works (and therefore changed
DSN and remailer menus.)
- Tweak parsearpawho
> Now From: is not assument to be part of buffer
> from in header struct is now mime decoded
> That is now mime encoded when generating comment to
reply address.
- Handles now phrases on From: -header which uses
continuation lines
- Dropped get_real_name -- it is it is at least
equal broken than parse_arpa_who
- ' added to set of characters which need quotation because
sendmail otherwise will quote words which includes ' on
phrases -- even that ' is not special character -- and that
way destroy MIME encoding.
- MIME decoding is now done when showing values in header menu
(for address headers)
- MIME encoding also full name got from gecos field of passwd
- MIME encode also name entered to comments in header edit screen
(for address headers)
- Enumerated options
userlevel: beginner intermediate expert
noencoding: pass-7bit pass-8bit pass-binary
- Move reading of elmrc to elmlib and put elm tools to read
elmrc. This may make to some time in future to possible
to do binary distributions of elm.
> pmalloc.c moved from src/ to lib/
- Added option elm -vvv
- Add routine lib_error (lib/output.c)
- Added some messages to message catalog
- "I have a nice patch to elm-me+-2.4pl25ME+39:
If you press (l)imit and then type "thread", all messages
with the same subject are shown. A leading "Re: " is stripped.
That is usefull for (large) mailing lists, where you don't read
all messages. (It's like the thread command in most net news
readers)"
From: Christian Hammers <ch@lathspell.westend.com>
- "I have determined what the problem is. When you `bounce' a
message elm fails to strip the `From ' line from the top of
the message. This causes Smail to think that the message is
an incoming UUCP transmission. Smail uses the `From ' line
to build the new return path using a !, getting a wrong answer.
Elm should strip the `From ' from bounced messages."
From: Ian Jackson <ian@chiark.greenend.org.uk>
> Added CM_REMOVE_ENVELOPE flag to call of copy_message
in remail.c in case of INTERNET is defined
(From comments it looks that passing of "From " is done
by purpose: "For those cases when you want to have a
message continue along to another person in such a way
as they end up receiving it with the return address the
person YOU received the mail from")
- Elm -v now prints warning "Elm is not intended to be
distributed in binary form. If that is done, then it
is very likely that compile time configuration does not
match to your system."
- "The filter included in elm-2.4ME+37 also appears to
be vulnerable to the "save_embedded_address()" attack,
but not to the "get_filter_rules()" attack."
From: KSR[T] <ksrt@DEC.NET>
> I didn't used supplied patch. Instead I added bound
check to one loop in save_embedded_address (I was
added it to one loop but was missed other loop. )
> Note that Makefile will not compile ot install filter
-- that is intentionally (it was dropped because of
security problems)
- "here is another small fix relative to elm-2.4ME+37.
This is relevant for empty folders with keepempty=OFF.
Previously an empty folder was deleted *only* when this
folder was left with all (and >= 1) messages marked
'deleted'. Now an already empty folder is also deleted
upon quit or change to another folder."
From: Helge Oldach <hmo@sep.hamburg.com>
> I didn't used supplied patch. Instead I modified leave_mbox.
- Added elmrc -option "dsn-success"
- "it looks like that the help function in change folders
of this used version (2.4me+38) doesn't work."
Reported by: Roeland Th. Jansen <bengel@grobbebol.xs4all.nl>
> init_helpmsg was called with wrong number of parameters.
New elmrc options:
dsn-success
- getarpdate generated date wrongly in year 2000
- "Here's another small fix which allows elm to deal more
reasonably with empty last name/first name/comment fields
in the alias file. This is intended for situations where
people use mail addresses which already include the full
name (like: Helge.Oldach@sep.hamburg.com), so that
duplicating the last name and first name on the alias list
seems not reasonable. If one just leaves the last name/first
name/comment fields empty like in:
hmo = = Helge.Oldach@sep.hamburg.com
then the alias screen will display nothing but the alias,
which doesn't tell anything. This patch makes elm display
the actual mail address instead of an empty last name/first
name/comment field.
It also fixes the display of such empty fields when displaying
the actual address while sending a mail ("Message addressed as:
Helge.Oldach@sep.hamburg.com ()") - the empty brackets won't
appear in this case."
From: Helge Oldach <hmo@sep.hamburg.com>
- "background_wait_time should be background-wait-time in
doc/elmrc-info, otherwise the elmrc update function (elm -w)
won't copy the comment."
From: Helge Oldach <hmo@sep.hamburg.com>
- "It wasn't properly truncating the subject line if
the rest of the header was longer than 44 characters"
From: Guy Harris <guy@netapp.com>
- If msgcat.c will be compiled, don't include <nl_types.h>
In that situation always include "elm_nl_types.h"
- rfc822_tokenize, remove_space_tokenized, free_rfc822tokenized,
strmcat
- include <sys.wait.h> in defs.h
- include <sys/wait.h> in lib/posixsig.c on Ultrix V4.4
From: Bernhard Simon <bs@bsws.edvz.tuwien.ac.at>
- "The latest elm.me has a nl_types.h include which on
Digital UNIX is conflicting with a system include having
the same name, which is of course needed for proper
compilation :(."
From: Christophe Wolfhugel <wolf@pasteur.fr>
> Rename nl_types.h to elm_nl_types.h
> There was wrong number of argument in catgets
call in iprintf.c [ not currently used ]
From: Christophe Wolfhugel <wolf@pasteur.fr>
- Changes for configure to run in Dec Unix (OSF1)
"- cc -std (to have prototypes)
- nm_opts='' for DEC Unix or it gives wrong output with -p
and Configure won't see some functions (like strspn)
- signal hardcoded, because cc -E or cpp or DEC Unix does not
pass the standard defines (the ones put by cc -std) and we
will miss the signal prototype anyway :(."
From: Christophe Wolfhugel <wolf@pasteur.fr>
- Some changes that Elm compiles cleanly on Digital Unix (OSF1)
[ It was not defining __STDC__, but was complaining
if char * argument was given to unsigned char * argument
of function (and opposite) ]
- Digital Unix (OSF1) was defineing macto BSD (sig!)
Renamed BSD macro to BSD_TYPE
- "If the mail transport agent (MTA) is missing, elm
silently fails. No message is delivered and no warning or
error message is displayed."
From: Jan Prikryl <prikryl@cg.tuwien.ac.at>,
Andrew J. Piziali <andy@elijah.dv.org>
> Return status of process was decoded incorrectly.
> Also errno status was written to wrong end of report -pipe.
- Redraw screen also if old position was on screen
when new mail arrives.
- Dropped return_value_of from curses.c
- Support arrow cursor on attachment menu
- "I recently tried to run the Configure script on AIXv4.2.1 which
failed trying to extract the function names out of libc.a.
I updated the script so it will work on AIX."
From: Will Fiveash <will@austin.ibm.com>
- "Also, I am including my file locking patch so that
elm will lock a folder when trying to save or copy to it."
From: Will Fiveash <will@austin.ibm.com>
> Added elmrc option lock-in-copy, that locking is done if
this option is TRUE (default).
* NOTICE: This does not work with dot-locking
* NOTICE: This is useful only with folders which elm
treats as mailboxes, because folder are not
locked (when visited).
- Changed can_open to use my_wait and prepared for EINTR
- Dropped move_old_files_to_new()
New elmrc options:
lock-in-copy
- "I've built elm-2.4.ME+3[34] under SunOS 4.1.2 using
libc 1.1.7 and gcc-2.7.2 and can't actually open a mail
file with them. "
From: Dave Rynne <dave@funcom.ie>
- wait in can_access was not prepared for EINTR
- can_access was not using my_wait
[ And why can_access just not use access system call?
-- it used real uid and gid anyway!!!! ]
- "The run_state structure declared in me.h has a member
called "errno". However, it is unsafe to use errno as an
identifier under some Unices, e.g. when errno is a macro.
Here is a patch against PL34 which renames the struct member."
From: Jesse Thilo <jthilo@early.com>
[ It turns out that culprit is Linux libc 6 ]
- Add support for multipart/alternative. Elmrc
variable pagealternative is added. If that is TRUE (default),
and at least one subpart of multipart/alternative is displayable
metamail is not called. If that is FALSE, metamail is not called
if all subparts of multipart/alternative are displayable.
New elmrc options:
pagealternative
- Print "Elm: Unsupported locale (check $LANG)" if setlocale
fails.
Suggested by: Michael Rudolf <mich@mich.isdn.cs.tu-berlin.de>
- "I've found a bug in the Configure script for elm2.4.ME+.33:
when Configure asks for the metamail path and the path doesn't
exist elm asks you: "File ... doesn't exist. Use that name
anyway?", if you answer 'y' then metamail_path is set
to 'y'. I think that's not the desired action... :)"
From: Jose A. Rodriguez <Jose.Rodriguez@ac.upc.es>
- Add elmrc -varaible pgp. This gives path to PGP.
If "none", pgp is not called. Also checked that
pgp is executable with given path.
Suggested by: John Goerzen <jgoerzen@complete.org>
- check with can_open that debug file can be opened.
- -A (attach) option didn't used "~/.elm/mime.types" file.
Reported by: Andrew J. Piziali <andy@piziali.dv.org>
New elmrc options:
pgp
- Content-Disposition: inline; filename = "filename"
was not parsed correctly.
Reported by: Jussi Kaurola <kaurola@ozone.FMI.FI>
- Remove NIS tests from Configure. $passcat was not used
( Next section "set up shell script to do ~ expansion"
may perhaps need it, but actually it does not use it. )
Hint from: Jerzy Sobczyk <J.Sobczyk@ia.pw.edu.pl>
> Now sun is always added to from of $libswanted
- Added elmrc option background-wait-time (default 2 seconds)
If = 0 wait mailer to completion
> 0 wait background-wait-time seconds for completion
if not completed in this time, let it go to background
(completion of mailing is still reported if user have
not exited from elm in that time when mailer have completed)
Suggested by: Heiko W.Rupp <hwr@pilhuhn.de>
Daniel C. Sobral <dcs@gns.com.br>
* THIS option is supported only in POSIX systems
> Added my_wait to lib/posigsig.c
- Added VOLATILE to defs.h
> to resize_screen, redraw_screen (elm.h, headers.h)
- "When I tried to compile elm2.4.ME+.32 for Digital Unix 4.0 I got
a few compiler errors. The problem is that ANSIC/not ANSIC headers
are not in sync...
They are fixed with this patch (for lib/iprintf.c file)"
From: Jose A. Rodriguez <Jose.Rodriguez@ac.upc.es>
* Actually this (ELMCHAR, iprintf) code isn't yet in use
- "The bug was that filter truncated the "Saved folder" to
only 3 chars (out of the full path). To fix it, just change
the following line in 'utils.c' in the filter directory"
From: Yuval Shamir <yuvals@iil.intel.com>
[ Suggested fix was incorrect. ]
> Notice: filter code is not tested (and compilation
of it is commented out from Makefile in all ME+)
New elmrc options:
background-wait-time
- Incorrect Content-length: -header was causing corruption
of folders.
From: Guy Harris <guy@netapp.com>
- argv_from_to was not handled ',' in comments correctly.
Detected from report of Gary Casterline
<casterln@nature.Berkeley.EDU>
> Use rfc822_toklen instead of len_next_part
- SECURITY: strcpy -> strfcpy changes of Elm2.4ME+ PL29 (25)
was not done for curses.c in this source tree.
Bug report on List <BUGTRAQ@NETSPACE.ORG>.
From: John Goerzen <jgoerzen@happy.cs.twsu.edu>
- Some changes on curses.c (bl -- bell)
- Change output of option -v
- "If you use 'answer -u', then every user name is truncated to
three letters." ... "Change line 232 to: " ...
From: Jean-Pierre Radley <jpr@jpr.com>
[ Suggested fix was incorrect. ]
- "Configure always has had a problem on Linux systems,
extracting names in a usuable format (from /usr/lib/libc.so).
The following small change fixes this."
From: Bauke Jan Douma <bjdouma@xs4all.nl>
- "In Solaris enviroment NIS+ is now used instead of Yellow
Pages so I have modified Configure to reflect this and
allow to use niscat in the same fashion as ypcat was."
From: Jerzy Sobczyk <J.Sobczyk@ia.pw.edu.pl>
[ Undone in PL33 ]
- Compilation of filter (actions.c) fail.
Reported by: Arnout Boer <arnoutb@xs4all.nl>
- Typo mismatch in lib/strftime.c
From: Yuval Shamir <yuvals@iil.intel.com>
- [wordwrap.c, bultin editor]
"Wordwrap and delete at the
beginning of the line does not work in PL31. Fix is below."
From: "Zoltan T. Hidvegi" <hzoli@VNET.IBM.COM>
[ I didn't used supplied patch. ]
- [builtin editor] There was 'sizeof buffer' instead of
'buffer_size' in get_with_expansion()
- Add same fflush -fix to remail.c which is in mailmsg2.c
[ This patch is branch from the main line. ]
- Incorrect Content-length: -header was causing corruption
of folders.
From: Guy Harris <guy@netapp.com>
- argv_from_to was not handled ',' in comments correctly.
Detected from report of Gary Casterline
<casterln@nature.Berkeley.EDU>
> Use rfc822_toklen instead of len_next_part
- Print "Warning: BINARY data? Check Content-Type!"
when trying send binary (*) data as text in attachment
menu.
(*) binary = not fill requirements of "7bit" and "8bit".
- Convert some system_call() to use
start_run() ... wait_end() instead.
- optionally_enter() in pgp_decode.c was called without
size -argument
- "The problem appears to be that when a "FILE *" is rewound,
the underlying file is not, causing mail messages to be empty. "
Reported by: Jon Harder <Jon.Harder@mennolink.org>
[ Now input file descriptor is fflush'ed -- this should
synzronize it.
]
- "I often mail PGP-encrypted attachments to people with the
appropriate content type. If I want to review the attachment
before sending it, I go the to a)ttachments screen, select the
attachment of interest, and press <Enter>. Elm prompts me for a
pass phrase because I always encrypt using my public key along
with the recipient's. If I mistype my pass phrase, I cannot use
control-F (^F) to cause Elm to forget the cached pass phrase from
either the attachments screen or the send screen.
I wish ^F were recognized on those two screen also."
Suggested by: Andrew J. Piziali <andy@piziali.dv.org>
* Added ^F to verify_transmission, attachment menu, and to
showmsg_c.c
- mailerflags -array (argument vector) was not NULL
terminated in remail.c.
- Elm was not recognized SortBy (and aliassortby) keywords
[ strfcpy was got size of pointer instead of array size
in read_rc.c ]
Reported by: "Ralf S. Engelschall" <rse@engelschall.com>
- Fixed some error messages in read_rc.c
- "The problem is that 'case:' statement use int range, so
0xFC02 expanded to 0x0000FC02, not to 0xFFFFFC02,
but xxx->magic value is short and expanded to 0xFFFFxxxx,
so comparation is unsuccessful.
Fix is simple: direct cast to short."
From: "Andrey A. Chernov" <ache@nagual.ru>
[ I don't actually used that fix. Instead I changed magic
values to 'unsigned short' in elmlib.h. Now they
are used same way as in melib.h. ]
* Actually this (ELMCHAR) code isn't yet in use
[ Warning: This is so much changes (and some are
incomplete) so this this quite sure more buggy than
PL28. ]
- SECURITY: Elm was passing `shell command` without
quotation to shell when invoking sendmail.
Reported by: Wolfgang Ley <ley@cert.dfn.de>
from: "Computer Emergency Response Team, Germany"
<dfncert@cert.dfn.de>
(Originally from: Dirk Nimmich <nimmich@uni-muenster.de> )
> Don't use shell when calling sendmail (or other mailers)
- quote_args() dropped from strings.c
- now elm waits until sendmail returns
(and simple not put it background without checking
if mailing succees)
> Now -V option of Elm works better
- Small change in displaying of multipart messages
- (mime_decode.c) Use in_state_seekable instead of
testing magic agaist STATE_in_file
- Move state.c from src/ to melib/
- New header files melib.h and elmlib.h
- Add routine strfcat to strfcpy.c
- get_folder_type is litle more smarter to detect files
in mail directory
- d)omainze removed from header config -menu
- Don't ask shell in configure -- take shell from passwd
If passwd is used, default value for elmrc is null string
If $SHELL env variable is used, defaualt value for elmrc is
$SHELL string
- If $EDITOR env varaible is used, default value for elmrc is
$EDITOR string
- Default to p)gp if replying to pgp encoded message
(in verify_transmission -menu)
- Remove bounceback variable and bouncebk.c
- [defs.h] In IRIX define 'int32' by using 'int32_t'
Warning: If you have compiled Elm with ABI=-64
(default on IRIX64), this changes on disk
format of aliases database
* Actual use inttypes.h
(does not work if -cckr is used,
(also can't be used in IRIX 5.3 because of conflicts
with sys/types.h -- ARGH!)
- Removed references to VMS and EUNICE from Configure
- Removed I_STDARG --
now if ANSI_C is defined stdarg.h is used,
otherwise varargs.h is used
- Add do { .... } while(0) to dprint -macro
- Global change: Use strfcpy instead of strcpy
and: Use strfcat (new routine) instead of strcat
(but sprintf -calls are still untouched!)
[ Undo Elm2.4ME+ PL28s patch before installing this patch. ]
- SECURITY: Elm was passing `shell command` without
quotation to shell when invoking sendmail.
Reported by: Wolfgang Ley <ley@cert.dfn.de>
from: "Computer Emergency Response Team, Germany"
<dfncert@cert.dfn.de>
(Originally from: Dirk Nimmich <nimmich@uni-muenster.de> )
> Quote ` -character
- mailerflags was too short for DSN flags
- 'hdr -> magic = NULL;' should be 'hdr -> magic = 0;'
in parse_util.c
Noted by: "Andrew J. Piziali" <andy@piziali.dv.org>
- "Change Elm to exit after printing the error message, rather than
continuing and erasing the screen message and all, if it
encounters an error when reading your "elmrc" file."
From: Guy Harris <guy@netapp.com>
* But do not do this if in batch mode!
* Don't exit if there is errors in global elmrc!
* Let user save new .elm/elmrc with option -w
- state_read_headers was building next_header chain
incorrectly (and possible other chains also).
- add_paramater_t routine (wrapper for add_parameter)
to mime_encode.c
- Let user attach files with option -A
To get this work correctly, user needs to have
mapping file extension -> mime/type in
his .elm/elmrc
- Added field magic to mime_t and routine mime_panic.
Now it is possible to get error message MIME_PANIC
if in mime structure in memory is something wrong
(analogy to STATE PANIC and HEADER PANIC).
- Size of forwarded mail in message/rfc822 was not set
correctly in Elm2.4ME+ PL23.
- Added DSN (Delivery Status Notification) Configure
menu to verify_tranmission. You need sendmail 8.8
to get this.
- In menu of verify_transmission, show
a)attachments option also in user level = 0, if there
is attachments.
- In menu of verify_transmission, show
p)gp option also in user level = 0, if original message
was pgp -encoded (when replying).
- In menu of verify_transmission, show
D)SN option also in user level = 0 if there is dsn settings
(does not apply now).
- Adding final \n\n was badly broken in copy_message()
Reported by: Eilon Gishri <eilon@ibm.net.il>
- Try fixing handling of null bodys in read_headers()
{ newmbox.c } in some cases. Perhaps this brokes
nothing?
- rfc1522_encode_text failed to \0 terminate Subject
From: Claus Assmann <ca@informatik.uni-kiel.de>
- PGP fails to check signature if KEEPBINARY=ON
From: Heiko W. Rupp <hwr@xlink.net>
- Created new directory melib and made archive libme.a.
Some code is moved to that directory. You need to
create that directory before applying path!
- Problem with screen size (elm_LINES and elm_COLUMNS
are inconsistent).
[ I was commented out line what was comment
/* kludge for HP Window system? ... */
in PL23. VERY misleading........................
I HATE this. - K E H <hurtta@ozone.FMI.FI>
]
- Fix release month
- ks/ke capabilities are optional. They are not present
in ANSI -terminal.
From: "Andrey A. Chernov" <ache@nagual.ru>
- X-ELM-OSV was not correctly parsed
- Add a new config variable, called askpgpsig.
When set to ON, Elm will ask for a username to
sign pgp messages with.
From: Guido van Rooij <guido@gvr.win.tue.nl>
- menu2.c: ch must be int, or comparations with -1 (EOF)
and 257 (REDRAW_MARK) produce wrong results.
From: Andrey A. Chernov <ache@nagual.ru>
From: Guy Harris <guy@netapp.com>
- In "do_pipe()", "redraw" was both a variable and a label.
From: Guy Harris <guy@netapp.com>
- If you've set characters such as the word-erase or
reprint character to non-standard values, use your values,
not the standard ones.
From: Guy Harris <guy@netapp.com>
[ Added also !escaped test, because now these characters can
be printable. ]
- Moved processing of cursor keys to ReadCh
(old cursor key handling was buggy).
> HP's shoftkeys are not supported:
No options: -k -K
No elmrc variables: softkeys keypad
> Recognized keys are:
Key tercap name terminfo name
----- ----------- -------------
UP arrow ku kcuu1
DOWN arrow kd kcud1
LEFT arrow kl kcub1
RIGHT arrow kr kcuf1
PAGE UP kP kpp
PAGE DOWN kN knp
HOME kh khome
HELP %1 khlp
FIND @0 kfnd
> To get keys to use, your $TERM variable must point
termcap/terminfo definition what includes these keys.
Notice that 'vt100' does not include other than cursor
keys. You must perhaps make new definition, for example
terminal type 'vt100-plus' :-) For terminfo use 'tic' and
'infocmp' -commands.
- state operations are moved outside of #ifdef MIME ... #endif
- Added new routines state_write_headers, state_read_headers,
delete_headers, locate_header and find_header to
parse_util.c. read_header_line is now implemented with routine
state_read_hdr_line. file_read_headers is implemented with routine
state_read_headers.
> Now included RFC 822 parts have printed text
-- Start of included mail From: xxxxx
instead of
-- Start of included mail.
- Rewritten read_mime_header to use file_read_headers, mainly by
dividing it to new routine parse_mime_headers
> Rewritten rfc822_parse. Now non-mime messages inside of
message/rfc822 should be handled more correctly.
- Setting elmrc variable
require-mime-version-for-body-encoding to FALSE causes
that almost all messages are treated as MIME -messages and
MIME-Version is not required for these (in top level
or inside of message/rfc822).
- Add flag CM_REMOVE_ENVELOPE for copy_message
> make message/RFC822 attachment when forwarding with copy_message
- Make wait() in matapager restart in case of EINTR error
- Do MIME Part 2 (RFC 1522) decoding even when not MIME
even when not Mime-Version -header is present
(If you want olf behauviour, set elmrc variable
require-mime-version-for-hdr-encoding to TRUE).
Header decoding is not done if sending elm was
disabled to do MIME Part 2 (RFC 1522) encoding
(as set in elmrc variable nohdrencoding). That
information is carried in header X-ELM-OSV:
(Our standard violations).
- quoted-printable-decode was not decoding zero length part
correctly.
> Indicate with length == -1 as not set instead of length == 0
- Added symbolics values RHL_MARK_FOLDING and RHL_CHECK_HEADER
for flags of read_header_line. Now read_header_line check
header for carefully. Side effect: If there is spaces before
':' in header, them are deleted (assuming RHL_CHECK_HEADER).
- Add to mime_types[] following non-standard main content types:
x-world, model
New elmrc options:
require-mime-version-for-body-encoding
require-mime-version-for-hdr-encoding
Removed elmrc options:
softkeys
keypad
[ Warning: There is quite much changes in
user interface, so perhaps there is bugs. ]
> Changes in Makefile.SH -- remember to run
'Configure' or 'Configure -d' or 'Configure -S'
- 'ch' need to be 'int' in alias()
- 'cmd' need to be 'int' in MenuLoop()
- 'ch' need to be 'int' in generic_menu()
Problem noted by: Claus Assmann <ca@informatik.uni-kiel.de>
- There was unwanted trigraph in run_decoder()
Problem noted by: Claus Assmann <ca@informatik.uni-kiel.de>
- There was missing 'default:' in state_put()
Problem noted by: Claus Assmann <ca@informatik.uni-kiel.de>
Problem noted by: Guy Harris <guy@netapp.com>
- rename 'timeout' to 'elm_timeout' to get rid out linker warning
- rename 'filter' to 'elm_filter' to get rid out linker warning
- rename 'LINES' to 'elm_LINES' to get rid out linker warning
(These are defined also in libtermlib.so)
- rename 'COLUMNS' to 'elm_COLUMNS' to match 'elm_LINES'
- If there is Raw(ON) in parent in metapager(), then
also Raw(OFF) must be in parent
Noted by (?): Jurgen Fluk <louis@dachau.marco.de>
- Replace some getchar()s with ReadCh(REDRAW_MARK)
in syscall.c
- Replace some getchar()s with ReadCh(REDRAW_MARK)
in read_rc.c
- Replace some getchar()s with ReadCh(REDRAW_MARK)
in alias.c
- Replace some getchar() with ReadCh(REDRAW_MARK)
in utils.c
- Use type application/X-ELM-encode with
[enclode] ... [clear] if message is multipart
(Elm 2.4ME+ PL6 should know this type, but there
was error is some versions of ME+ in mime_notplain).
- mime_notplain was returning TRUE (should be FALSE)
for application/X-ELM-encode.
- The builtin++ pager clears the screen before displaying the
first screen of the message; however, the metapager wasn't
clearing the screen before running the external pager, which
left some junk on the screen.
From: Guy Harris <guy@netapp.com>
- Convert optionally_enter to use flag bits and
now it returns REDRAW_MARK in most places when redraw
is needed
- LOCK_DIR removed from Configure / config.h.SH
- Rememmber if last Configure run there was answer
'none' for additional librariers
- Some new checks in Makefile (or actually in Makefile.SH),
Configure is run lately (that confih.sh or Makefile or
config.h are not stale)
- More Configure fixes for IRIX 6.2
- PGP signed messages (with type text/plain) was not handled
correctly.
Noted by: Volker Paulsen <Volker.Paulsen@gmd.de>
- Just a short one-liner to fix the display:
When you leave the key selection menu in
pgp_mail_public_key() with `q' (i.e., don't mail a key),
this routine currently returns 0. This means that the main list
won't be redrawn and seems to be a bug.
From: Thomas Roessler <roessler@sobolev.rhein.de>
- read_number should create buffer of size SLEN, not NLEN
since it uses optionally_enter() which assumes that the
buffer has length SLEN
From: Thomas Roessler <roessler@sobolev.rhein.de>
- Additionally, one might want to have the pgp functions
in the help menu.
From: Thomas Roessler <roessler@sobolev.rhein.de>
[ There is changes of error handling of leave_mbox --
so report, if you lost mail... ]
- Look also termlib.so and curses.so in Configure
- Remove PGP test from need_meta in showmsg.c
(It was causing that metamail was not called for
multipart/signed what isn't supported.)
- Move metamail flags before PGP flags in show_message
in screen.c
- lib/safeopen.c need to be added to MANIFEST
Noted by: Keith Manley <kmanley@bits.fc.hp.com>
- Elm as acting quite oddly if ending boundary of multipart
structure was missing.
Detected from report of: Rolf Larsson <rln@ludd.luth.se>
- Add sleep_message() to out_utils.c
- Detect if there is read error in newmbox!
- Check read errors also in some other places....
- Changes in leave_mbox -- now it returns with value -2 if
it fails to leave folder
- SIGUSR1 and SIGUSR2 is anly handled when in prompt
(because otherwise we can be in wrong state --
for example in middle in resync.)
- Check in ReadCh if it was called from GetPrompt
(GetPrompt want to see EINTR error!)
- ReadCh takes now redraw flag: Either 0 or REDRAW_MARK.
Now elm is able in many places automatically redraw screen
when elm resumes after suspending.
- skip_envelope() to parse_util.c
- Use skip_envelope() in get_and_expand_everybody() and
handle_reply_to() -- now elm should not be confused
with MMDF envelope of mail
Reported by: { Unknown -- mail lost }
- Fix SIGSEGV (with application/pgp; format=mime)
- With application/pgp; format=mime in included mime type
nested structures was not parsed (actually that was causing
SIGSEGV)
- recognize application/pgp; x-action=signclear
- Add "-- Start of included mail." and "-- End of included mail."
texts.
[ This patch includes very many changes, so perhaps there
are bugs ... ]
- Clean up some of the questions in the "Configure" script.
From: Guy Harris <guy@netapp.com>
- Added a '-S' option to the Configure script to just redo the
"variable substitutions on .SH files" that the script performs
at the end. "I found this extremely useful, as I often made
changes to the config.sh (for instance, the 'optimize' flags),
and I wanted to re-create the Makefiles without running the
entire Configure script all over again."
- Also added '-h' option to report usage and available options to
Configure script.
From: Will Day <willday@rom.oit.gatech.edu>
- Add support for a "mailpermissions" variable in your "elmrc" file
that can be set to specify the permissions to be used when creating
a new mail folder. The syntax to use when specifying the permissions
is *not* numeric, it's an "ls"-style string such as "rw-rw----", and
the default is "rw-------".
From: Guy Harris <guy@netapp.com>
- (Elm)HelpViewAttach was missing from s_elm.m
- Have the NLS stuff make "s_elmalias.h" from "s_elmalias.m".
From: Guy Harris <guy@netapp.com>
- Fix up "gencat" to compile on systems that don't do ANSI C
(e.g., SunOS 4.1[.x] when using the bundled C compiler).
From: Guy Harris <guy@netapp.com>
- Some additions to help text of Elm
- Reconstruct mime_send_t. There was wrong type when multipart
message was sent and pgp was used.
Noted by: J. Porter Clark <jpc@hammer.msfc.nasa.gov>
- Added elmrc option: "quoteforward", which will let the user
restore the behavior of original elm when forwarding messages
- that is, to quote them like replies.
"I wanted this available, because usually when I forward a
message, I will comment various lines, and if it's not quoted
like a reply, my comments can be confused with the forwarded
message (and I didn't want to have to manually comment the
message every time)."
From: Will Day <willday@rom.oit.gatech.edu>
- convert mail() and send_msg() to use binary flags.
Get rid of global variable "forwarding".
- Added safeopen_rdwr() call yet some places.
"While browsing through elm me+ xyz kh's source code,
I stumbled across an invocation of tempnam() in a
somewhat insecure environment: In mailmsg2.c, it's
output is used as argument to fopen(...,"w+"). This is
dangerous, since it may allow other users to access those
temporary files."
From: Thomas Roessler <roessler@sobolev.rhein.de>
> Also use open_end_update() call, then code is cleaner
[ In suplied patch there was possibility that elm destroyes
=sent folder... ]
- Modification for Configure: On a Linux system which uses
ELF-format shared libaries, the library symbols do not have
an underscore prepended to them.
"I simply removed the [._] part from the sed expression. This
makes everything compile and run happily on my machine,
but if you want to correct this problem in your distribution,
you would probably want to keep the old rule as well, to keep
it from breaking elsewhere."
Noted by: Matthew Hunt <hunt@mph124.rh.psu.edu>
- "The second patch (re-)enables the use of the `T' key in the menu
at the end of a message (tag + next). This used to work in
earlier releases of elm."
From: J Wunsch <j@uriah.heep.sax.de>
- "I think there is a small bug in metapager.c which has the
consequence that the pager menu is sometimes displayed on the
wrong screen page. The patch below fixes this behaviour."
From: Thomas Roessler <roessler@sobolev.rhein.de>
[ This patch little questionable -- 'ti' is "string to begin
brograms that use cup" (cursor addressing) and 'te' is
"string to end programs rhat use cup" -- problem is
that xterm uses ti/te to swap screen page... ]
- "Additionally, there is still an ugly timezone bug in elm-me+;
the old patch for elm 2.4 applies cleanly to the current me+
version."
Noted by: Thomas Roessler <roessler@sobolev.rhein.de>
> Fix timezone:
"OK...here is the fix for the wierd timezone shifting.
Besides the botched month parameter, the year also was wrong.
This patch better documents the input parameters to the
lib/date_util.c procedures, and fixes get_tz_mins() to avoid
a wierd offset shifting problem. Thanks to Thomas Roessler
<roessler@sobolev.rhein.de> for chasing down the cause of the
problem."
From: Chip Rosenthal <chip@unicom.com>
- Fix dangling pointer bug in attach_viewer!
- Recognize text/x-pgp.
From: Guido van Rooij <guido@gvr.win.tue.nl>
[ + #ifdef USE_PGP added ]
> If type was text/x-pgp, don't consider case
that PGP file is binary
- Don't convert application/x-pgp* to application/pgp
in newmbox.c -- instead recognize it in mime_decode.
- Don't reset type_opts when converting text/plain to
application/pgp.
[ That change was buggy -- fixed in PL21 ]
- Move "Decrypting message..." and "Checking signature..."
messages to another place.
New elmrc options:
mailpermissions
quoteforward
- Some systems use OXTABS bit instead of TABDLY
[ Various paches for *BSD ]
From: Ollivier Robert <roberto@keltia.freenix.fr>
From: Jeff Thieleke <thieleke@lust.isca.uiowa.edu>
From: Andrey A. Chernov <ache@astral.msk.su>
- Undone HP-UX change for ANSI_C
"This is mostly incorrect. We figured out that
the problem was the -traditional flag that was included
by default when compiling with gcc."
Noted by: Jeff Thieleke <thieleke@lust.isca.uiowa.edu>
- Removed -traditional from gcc flags in Configure
"The real fix would be to remove the default CFLAGS when
compiling with gcc, since they probably aren't needed any more."
Suggested by: Jeff Thieleke <thieleke@lust.isca.uiowa.edu>
- Don't allow change a filename of forwarded mail in attachment
menu.
- If content-transfer-encoding is unknown when saving attachment,
treate it as binary.
- Don't allow change filename in attachment menu to non-existent
[ Warning: state routines are rewritten -- so look below
what to do if you get STATE PANIC message ... ]
- Add #include "headers.h" to safeopen.c to get rid
out one stupid compiler warning
Urged by: Andrew J. Piziali <andy@daldd.sc.ti.com>
- struct state is divided to two structs: struct in_state
and struct out_state. Large modifications to state
routines (state.c).
If you get message STATE PANIC: Bad magic number
compile elm with debugging -g and -DDEBUG
and run elm with -d11 and try get it repeated.
Now STATE PANIC should cause producing of core file.
Look with debugger where that STACE PANIC accured (ask
stack trace from debugger) and look also file ~/ELM:debug.info
- If terminal driver is expanding tabs, do not print
them -- instead jump to correct location
- "HP-UX apparently doesn't declare __STDC__ (like AIX),
so compiling with cc or gcc fails in src/init.c at the getgid(),
getuid() prototypes."
From: Jeff Thieleke <thieleke@icaen.uiowa.edu>
[ Undone in ME+ PL17 ]
- If you sign 8-bit mail, it will be later encoded with
quoted-printable or base64 (by elm or by sendmail).
Thus 'invalidating' because pgp_decode does not undo contet-
transfer encoding before calling PGP.
Noted by: Zoltan Hidvegi <hzoli@cs.elte.hu>
Noted by: Hans-Christoph Wirth <hansi@dianoia.mayn.de>
* Now content-transfer-encoding is decoded before bodypart
is passed to pgp (it also now work, when *.pgp file
is encoded with base64).
> That decoding is done via temporary file -- perhaps I
some time stack state routines so temporary file is not needed
and decoding of content-ttransfer-encodings are done during
reading.
> If I some day get implemented MIME/PGP then 8-bit mail is always
encoded with quoted printable and then passed to PGP for signing.
- Display text before PGP armor if elmrc variable showpgppreamble
is set (default). Binary PGP files are detected by looking first
byte (after decoding content-transfer-encoding).
- Fix to PL15 fix: "Elm fail in resyncing if mailfile is created
after initial entering to mailbox." -- previous fix can cuase
elm exiting with message
"What's this? The temp folder already exists??" and then
"Ahhhh... I give up."
Perhaps noted by: Andrew J. Piziali <andy@daldd.sc.ti.com>
- SECURITY: Elm was running PGP as setgid mail (by using popen)
when searching matching keys -- converting to use
pipe - fork - setgid (groupid) - execl
- Need pass +language=en to PGP when searching matching keys
Noted by: Boris Staeblow <balu@reido.in-berlin.de>
- Initialize last (extra) element also to NULL in DynamicArray
so that DestroyDynamicArray works (lib/dynarray.c)
-- was causing SIGSEGV in GetPGPKey
New elmrc options:
showpgppreamble
[ Undo Elm2.4ME+ PL15s patch before installing this patch. ]
- SECURITY: Elm was running PGP as setgid mail (by using popen)
when searching matching keys -- converting to use
pipe - fork - setgid (groupid) - execl
[ Warning: This is perhaps more buggy than PL14. ]
- Some changes in Makefiles, Configure
- Change of temporary mbox name, put temporary mbox to
back to temp directory (from home directory)
- can_open(filename,"sw") checks if creating of _new_ file
is possible (O_EXCL) -- and use that in leavembox.c
Side-effect: New file is created
- use isprint((unsigned char)ch) in src/curses.c
- "I removed all fopen(file, "w") where file was a filename in /tmp
and replaced these with a safeopen(file) call. These changes
should be also applied to the vanilla elm source."
- "Also there are some minor bugfixes for PL11.
Elm did not asked my PGP password when I wanted to
read a PGP encrypted mail since it wrongly thought
that the mail is only signed but not encrypted.
That's the most serious bug."
- "I add a ClearScreen() before the fork in pgp_decrypt_init()
to make the screen look clearer."
From: Zoltan Hidvegi <hzoli@cs.elte.hu>
- Routine safeopen_rdwr added to safeopen.c
- Test agaist special modes was WRONG in leavembox.c
(it was 0x7000 and it should be 07000)
- Treate files with special modes as SPOOL files (newmbox.c)
- Handle 'intelligent' way also SPOOL files what haven't in mailhome
- Restore also special modes of file if file is not executable
- Don't chown file if owner is already correct -- it resets
special modes
* With these changes it is possible to redirect sendmail aliases
to files (mode 04600) and cause that elm does not reset setgid
bit (what is required to be set, before sendmail accepts forwarding
to no world writable files).
- Multiple To: -headers was cauisng of trashing of memory
and SIGSEGV
Noted by: Richard Allen <ra@rhi.hi.is>
- Elm fail in resyncing if mailfile is created after initial
entering to mailbox.
Noted by: Miroslav Ruda <ruda@ics.muni.cz>
{ I didn't used suplied patch. }
- Elm fails to create received -folder
Noted by: Jussi Kaurola <kaurola@dionysos.FMI.FI>
- Added function open_end_update to file_util.c
- Replace iscntrl((unsigned char)*pending) with
!isprint((unsigned char)*pending) in builtin++.c
because Configure asks that is isprint
working with 8-bit values, but it does not ask about iscntrl
* Notice: Seems that someones does not agreed with interpretation
of ASCII_CTYPE definition. My interpretation is:
ASCII_CTYPE defined: isprint works only with arguments
0-127
Conclusion: We can't test that is characters in
range 128-255 printable or not, so
don't print them
ASCII_CTYPE is defined when you answer "no" to following question:
"Should Elm assume that isprint() won't break on
non-ASCII characters?"
To get 8-bit characters to work you need:
1) 8-bit clean ctype functions and macros
2) ASCII_CTYPE is not defined
3) setlocale exists (Configure have found locale.h;
that is: I_LOCALE is defined)
4) Correct locale definition (environment variable
$LANG or $LC_CTYPE usually)
Look manual page of setlocale
- If you are not using builtin(++) pager in Elm, thinks
can go more complicated -- all pagers does not use
locale definitions
- Use kill(getpid(), SIGSTOP) instead of kill(0, SIGSTOP)
so that delivering of mail does not stop when user suspends
Elm.
Reported by: Richard J. Auletta <rauletta@erebor.cudenver.edu>
New files:
lib/safeopen.c
- PGP signed (or encrypted) MIME mail was not quoted when
replying. Quick fix for pgp_decode in pgp.c. It still
perhaps have broken...
- Compiler was giving warning that 'char *' and
'unsigned char *' are not assignment-compatible
(for code in mime_encode.c)
Noted by: Arkady Altman <aya@cae.cig.mot.com>
- Include headers of forwarded message to editor
buffer even when you have noheader = ON
(that is in situation mimeforward = OFF).
That is now controlled with elmrc variable "noheaderfwd"
(default: OFF)
- Elm was getting SIGSEGV in remailer_parse_opts in remailer.c
Noted by: V Menayang <victor@slip-50-11.ots.utexas.edu>
[ Notice that this REMAILER code is still broken! ]
- remailer.c was calling finger without resetting egid!
- FreeBSD changes to utils/newmail.c also pertain to NetBSD
From: Jeff Thieleke <thieleke@icaen.uiowa.edu>
New elmrc options:
noheaderfwd
Warning: This version is probably much more buggy
than PL11 !!
- The blank line between two messages in a folder
was missing.
Noted by: Juergen Obermann <Juergen.Obermann@hrz.uni-giessen.de>
- If nohdrencoding = TRUE and there is 8bit characters in subject,
treat as there was 8bit characters in body.
From: Andrey A. Chernov <ache@astral.msk.su>
[ This does not work very well... ie. It works only when
Content-Type is Text/plain. ]
" Before RFC 1522 issued, too many users (f.e. Russian users) use
8bit chars in Subject: header field. There is a lots of 8bit
capable MUA & MTA exists now, much more then RFC1522 compatible
ones. In existent variant when you enter 8bit subject with ASCII
body result content charset stays as ASCII, it makes impossible to
recognize Subject: charset. I UNDERSTAND that my method violates
MIME slightly (no 8bit characters must be in header field) but it
is adoptation of real life practic."
- Add /usr/sbin to default path, there is sendmail on FreeBSD
- Disable national extensions of 'date'
- Add FreeBSD lock directory
- Add KOI8-R charset to user prompt, it is officially registered,
RFC1700
- Fix utime_buffer declaration for FreeBSD
- Allow mailbox editing for Expert user level only. Total disabling
of this option makes life harder for experienced users and total
enabling cause accidental 'e' hitting damage novice users mailboxes.
It seems that enabling it for Expert user leve is the best solution.
From: Andrey A. Chernov <ache@astral.msk.su>
- "I also discovered another small 'bug'... Michael Elkins changed
someday in pgp.c a get_address_from() call to a simple strcpy()
which caused my pgp not to find my secret key because of a
leading blank:
" Volker Paulsen <paulsen@gmd.de>"
^
After I changed it back to get_address_from() the leading blank
becomes removed and pgp matches the key correctly against its key
ring ."
From: Volker Paulsen <Volker.Paulsen@gmd.de>
- Add binary -flag for header_rec. No longer hack for remail.c.
- Make more clear what part of message was PGP signed or encrypted.
(Why pgp returns exit status 0 even when signature doesn not
match???)
- Some massive rewriting of copy_message. Now should decoding of
RFC 1522 encoding work correctly when replying (and forwarding).
Side effects:
- Headers which have longer than 32 KB after unfolding
are truncated
- Exact folding is not preserved
- Elm wrote incorrect Content-Length: -header when
updating Status: -header
Noted by: Juergen Obermann <Juergen.Obermann@hrz.uni-giessen.de>
[ That content-length is lightly too big and is not fixed
if it is last mail in folder (it is not big enough that
newmbox.c notices) also incorrent Content-Length: -header
causes in other situations that it is ignored. This causes
problems when "From ":s are not escaped. ]
- CM_DISPLAYING was wrong value in hdrs/defs.h
- Elm was corrupting folder by adding number to end of mail...
And therefore causes that next mail does not start
with "From " in folder.
Noted by: Volker Paulsen <Volker.Paulsen@gmd.de>
- REMAILER code does not compile.
From: Andrey A. Chernov <ache@astral.msk.su>
From: Arkady Altman <aya@cae.cig.mot.com>
- Attach viewer does not completely fill header_rec
so "lines" was uninitiazed, which may cause
"metapager()" to choose randomly whether to use the
built-in pager or not, if you haven't set "pager" to
"builtin" or "internal". Now structure is pre-initialized
completely. "lines" is set to number of bytes / 60
(not saticfactory, but actually metapager should use
number of lines in decoded message --
not in original anyway.)
Prompted by: Guy Harris <guy@netapp.com>
- In syscall.c, around line 180, the space for p
was allocated but the actual string was never built.
From: Mark Johnson <Mark.Johnson@ustc.vlsi.COM>
- At the end of a message with the builtin pager I
sometimes get the prompt "MORE (you've seen 101%):"
and I can not read the next message with
pressing the space bar.
From: Juergen Obermann <Juergen.Obermann@hrz.uni-giessen.de>
- "rfc822_reap_comments()" wasn't properly handling
Content-Type: headers like
Content-Type: Multipart/Mixed;
boundary="--Next_Part(Wed_Feb_14_09:54:49_1996)--"
because it didn't realize that the ")" in the boundary
was inside a quote, and therefore should be copied rather
than being stripped out.
From: Guy Harris <guy@netapp.com>
- It wasn't RFC 1522-decoding the name in the "From:" header
when it put in the "Forwarded message from" and
"End of forwarded message from" lines.
From: Guy Harris <guy@netapp.com>
- Put defualt disposition for attachment to be 'attachment'
when sending.
- Check that attachment is not deleted before mail is sent.
- Because copy_message is now called from metapager, it
needs two more arguments (mailfile and current_header).
I hope that this change breaks nothing!
Detected from report of: Mark Johnson <Mark.Johnson@ustc.vlsi.COM>
- Incorrect subject
- Sometimes extra newline was added when message or
body of it was copied.
> copy_message in fileio.c was gone too hairy.
Tried to reorganize it. I hope that nothing
breaks.
> Semantic of flag CM_DECODE is now changed.
> Now message is decoded before replying and forwarding
(excpet when mime_forward is true -- forwarded message
as attachment is not decoded).
> Well, now [encode] [clear] does not work when metamail
is called.
> [encode] ... [clear] is now internally handled as
application/X-ELM-encode (in MIME -message)
- Do RFC 1522 decoding only in MIME messages.
- builtin++ code in metapager was broken [encode] ... [clear]
> I simplified metapager. I hope that nothing
breaks.
> Notice that [encode] ... [clear] is broken when sending
multipart messages.
- Now also headers of message/rfc822 are prefixed when replying
- Nicer printing of folded headers (in metapager and rfc822_decode)
- Letter 'e' (= uses Elm's [encode] ... [clear]) added to status
letter of mailbox menu.
- "nohdrencoding" was in wrong place in list
- To instead of From in headers was always displayed:
From: Petr Lampa <lampa@fee.vutbr.cz>
- There was some confusion in (char *) versus (unsigned char *)
in rfc1522_encode_text.
Pointed by: Petr Lampa <lampa@fee.vutbr.cz>
- Replaced check of R_OK with ECCESS_EXISTS in can_save
in attach_menu.c
- Reordering of attach_viewer so metamail is not called
when it isn't needed (new definition of 'pagemultipart'
was broken it.)
- Message "Parsing MIME structure..." is printed
- Added to some unlink and elm_chown calls to attach_menu.c
- Now prints "Executing metamail..." if metamail is called for
display message.
- Tried fix MIME decoding of headers in copy_message
(well, it still can't work correctly.)
- MIME (RFC 1522) encoding of In-Reply-To -header
> Address headers and headers from .elm/elmheaders are still
not encoded.
- Don't try print To: address in menu if it does not exists.
[ Warning: This is perhaps more buggy than PL 3 (25). ]
* Sending of simple Text/Plain messages with quoted-printable encoding
was broken when remailer -code was added.
Noted by: Petr Lampa <lampa@fee.vutbr.cz>
- In the index screen Tag all, Delete all and Undelete all
didn't show the new status of the messages.
From: Juergen Obermann <Juergen.Obermann@hrz.uni-giessen.de>
- In readmsg the Cc-header line is always shown.
From: Juergen Obermann <Juergen.Obermann@hrz.uni-giessen.de>
[ This should be also posted to Elm Development Cordinator ]
- Add a "Status: RO" line to all outgoing messages (when the "copy"
option is turned on), so that they do not show up as "New" when you
look at a folder.
From: Pete Wenzel <pete@stc.com>
- The macro X_OK is undefined in some systems.
Use EXECUTE_ACCESS instead.
From: Gunnar Ekolin <ekolin@carlstedt.se>
> Failing to include <unistd.h>.
Test agaist I_UNISTD instead of ANSI_C.
Noted by: Petr Lampa <lampa@fee.vutbr.cz>
> Now EXECUTE_ACCESS, WRITE_ACCESS, READ_ACCESS, ACCESS_EXISTS,
EDIT_ACCESS is defined in terms of X_OK, W_OK, R_OK, F_OK
from unistd.h (if available)
- Fix definition in hdrs/mcprt.h to match with lib/mcprt.c
From: Claus Assmann <ca@informatik.uni-kiel.de>
- DisplayAddress not work (well, I really not used that patch).
That needs still reconsideration.
From: Claus Assmann <ca@informatik.uni-kiel.de>
- Mime (RFC 1522) encoding of following headers:
- From (fullname)
- Subject
- Content-Description
Encoding of In-Reply-To, To, CC or headers in
.elm/elmheaders is NOT done.
- New elmrc variable "nohdrencoding". If this variable is TRUE,
then MIME encoding of headers isn't done.
- Wrong tests with allow_no_encoding in src/mailmsg2.c.
Noted by: Petr Lampa <lampa@fee.vutbr.cz>
- Use strincmp for lib/strincmp.c instead of strcasecmp.
Noted by: Petr Lampa <lampa@fee.vutbr.cz>
- Added check for write errors in mime_encode.c
New elmrc options:
nohdrencoding
- Fix to builtin++.c SIGSEGV fix
- Really fix In-Reply-To -header
[ This is also posted to Elm Development Cordinator ]
- SIGSEGV in builtin++.c when looking full headers of mail
and Ctrl-L was hit.
- Typo in remailer.c (causes that it don't link)
From: Ollivier Robert <roberto@keltia.freenix.fr>
- Ultrix patch from comp.mail.elm
From: John Simonson <gort@wildcat.ceas.rochester.edu>,
Sydney Weinstein <syd@myxa.com>,
Bill Gianopoulos <wag@swl.msd.ray.com>
- Now Elm's Configure search for metamail -program
- DisplayAddress: Don't munge sender with get_real_name
- Elm was generating syntactically incorrect In-Reply-To -headers
- Because some peoples seems have trashed src/state.c that patch
includes file src/state.c.PL1.
If src/state.c.PL1 and src/state.c don't have identical,
use command: mv src/state.c.PL1 src/state.c
otherwise: rm src/state.c.PL1
- SIGSEGV when hitting 'G' in builtin++.c
- Added (security) patch PL24 -> PL25 and
added same kind (security) fixes for MIME code
- Version number is now formed with new style :-)
- elmrc -variable 'displaycharset' is propgated to
environment variable $MM_CHARSET when calling metamail.
Environment variable $MM_CHARSET overwrides default value
of 'displaycharset'.
- New elmrc -variable 'metamail'. So now you not need define
environment variable $NOMETAMAIL, if you want compile Elm
with MIME support, and you don't have metamail. Special values:
none Don't call metamail
metamail Call metamail, if environment variable
$NOMETAMAIL is not defined
/path Call this, if this is executable
- Meaning of elmrc -variable 'pagemultipart' is changed. If
this is FALSE (default), then call metamail if elm can't
handle all subpart of multipart -type or if type is other
than multipart/mixed, multipart/digest or multipart/report.
If 'pagemultipart' is TRUE, then always handle multipart type
without metamail (and treat unknown subtypes as multipart/mixed).
Decision can Elm handle that type, is done when message is
displayed. So there is now 'M' -letter (= metamail needed) in
multipart mails until message is displayed even when Elm can
show it (that is because that definition is recursive and
requires parsing of structure of message.)
- Multipart/digest now works correctly when viewing attachment
what we have sending and we have put type for it to be
Multipart/mixed.
- Configure now tries test if sendmail supports -B8BITMIME and
-BBINARYMIME (unlikely).
- Makefile now don't compile or install 'filter' because security
problems in it.
New elmrc options:
metamail
- New version of my Reply-To patch included
[ Old version of that patch is posted to Elm Development Cordinator ]
- Made MIME part 2 (RFC 1522) decoding more accoriding of RFC.
- Some bugfixes
V)iew digest as mailbox -command (uppercase 'v') shows
embbed mails from current message or from tagged messages.
Command is available on Subject (main) menu.
These messages must be on mime format. Only messages
under top level multiprat/digest and multipart/* are shows.
Also message is shows is top level type is message/rfc822.
On Subject menu created by V)iew digest as mailbox -command
is following commands available:
Q,q,i,x,X Return to main (or previous) index (to
previus Subjetc menu)
Following commands are shared with main Subject menu
(are availble on both menus):
! Run subshell (shell escape) [1]
< Scan current message for calendar
information
a Go to alias menu
b Bounce message
Ctrl-E Extract PGP public key from current message
Ctrl-F Forget passphrase and close cached
connections.
f Forward current message
g Group reply to current message
h View current message with headers
Ctrl-K Mail PGP public key
m Mail a message
space, Ctrl-J, Ctrl-M View current message [3]
n View current message and go to next message
Ctrl-N View current message if unread and then go
to next message
P Print text of current message
r Reply to current message
>, s Save current message or tagged messages to
folder
C Copy current message or tagged messages to
folder
S Save (copy) text of current message to file
or folder
v View (MIME) parts of current message
V View embbedded messages from current message
(digest) or form tagged messages
@ View debug screen
# "Check message" (view debug screen)
Also following "motion" commands (shared with alias menu)
are available:
FIND, / Scan mailbox or aliases for string
PAGE DOWN,
RIGHT, + Go to next page
PAGE UP,
LEFT, - Go to previous page
HOME, = Go to first message or alias
* Go to last message or alias
Ctrl-D Delete messages or aliases which match to
pattern [2]
^ Toggle deleted status of current message
or alias [2]
d Delete current message or alias [2]
J Go to next message or alias
DOWN, j go to next undeleted message or alias
K Go to previous message or alias
UP, k Go to previous undeleted message or alias
l Limit displayes messages or aliases
Ctrl-T Tag messages or aliases which match to
pattern
T Tag current message or alias and go to next
message or alias
t Tag current message or alias
U Unread current message or alias [3]
u Undelete current message or alias [2]
Ctrl-U Undetete messages or aliases which match
to pattern [2]
Ctrl-L Redraw
<digits> Go to given message or alias
[1] Folder state is no available so readmsg command do
not work.
[2] Delete status do not have effect. It is actually no
possible to delete messages from digest.
[3] Read/Unread status of messages on digest are not preserved.
A)ssembly messages command shows mailbox where messages fragments are removed from display and assembled messages are shows instead. Command is available on Subject (main) menu and on menu of V)iew digest as mailbox -command.
Commands availabe are basically same than on menu menu of V)iew digest as mailbox -command (execpt that you can not use command 'A' here.)
If elmrc option fragment-handling is set to "auto", then to message assembly mode is enetered automatically. Use command 'i' to leave message assembly mode.
For incomplete messages, text <--- message not collected ---> is shown on menu until part number 1 is arrived. It is assumes that part 1 includes all mail headers of message (ie. mail headers is not fragmented.)
Files libdir/elm.hashmarks and ~/.elm/hash.marks
hashmarks for remote servers and local directories.
Lines on these files are following kind:
@charset = character-set
[markname]
hashtype: type-name
description: Some text
other parameters
[markname]
next haskmark definition
A [markname] on file defines #markname, which
can used to refer userid@server or local directory
on folder and file browser. Hashmark defination
start with tag where hashmark name is inside of [ ]
-characters.
Hashmark types are;
- For folder browser
hashtype: remote-mailbox
hashtype: local-folder-directory
- For file browser
hashtype: local-directory
Remote mailbox have the following kind of definitions
on libdir/elm.hashmarks file:
[hashmark-name]
hashtype: remote-mailbox
description: Some text
(either "on-default-menu" or "hide")
hostname: hostname
(or ipaddr: X.X.X.X)
servicetype: (either "imap", "pop", "imaps", "pops")
verify-tls-certificate
require-tls-peer-name: name
usermap: local-userid username aaa bbbb <local-part@addr>
(or usermap-file: xxx)
Remote mailbox have following kind definations
on ~/.elm/hash.marks
[hashmark-name]
hashtype: remote-mailbox
description: Some text
on-default-menu
hostname: hostname
(or ipaddr: X.X.X.X)
servicetype: (either "imap", "pop", "imaps", "pops")
verify-tls-certificate
require-tls-peer-name: name
userid: username
from-address: aaa bcc <local-part@addr>
Local directory have following kind definations:
[hashmark-name]
hashtype: local-folder-directory
(or hashtype: local-directory)
directory: /abc
Files libdir/elm.aliases and ~/.elm/elmaliases gives
aliases for addresses and address lists.
On file there may be following definations:
[alias] Alias name
Comment: Comment text
Firstname: name
Lastname: name
Address: One address
List: addr-list
Phrase: phrase text
Group: alias-list (',' separated)
Alias defination start with "[alias]" tag.
Person alias have following kind definations:
[alias] Alias name
Comment: Comment text
Firstname: name
Lastname: name
Address: One address
Address list alias have following kind definations:
[alias] Alias name
Comment: Comment text
List: addr-list
Group alias have following kind definations:
[alias] Alias name
Comment: Comment text
Phrase: phrase text
Group: alias-list (',' separated)
MIME encoded words are used for non-ascii values.
Files libdir/elm.mailinglists and ~/.elm/mailing.lists
may give some limited mailing list information. Basically
these files give mailing list name when showmlists
is used or 'M' command is used.
Note that alternatively List-ID: header is used for mailing
list name.
On file there may be four kinds of definitions:
[to-me] ------------
[to-many] ======------
[cc-me] ============
list-name <to@match>
[list] List name
List-id: <list-id>
list-name <to@match>
List-id: <list-id>
First form redefines delimiters for showmlists
elmrc option or 'M' -command.
list-name is the mailing list name which is
used for display.
to@match matches addresses on to: -header same way
as alternatives elmrc option matches to addresses.
Same wildcard characters can be used.
Character '*' matches any number of charaters and
'?' character matches any single character.
However @ -character should be included and not
replaced with a wildcard.
list-id matched to id given on List-ID: -header.
MIME encoded words are used for non-ascii values.
Files libdir/elm.mimetypes and ~/.elm/mime.types handle
mapping from file name and file content to content type
(or media type). On file there may be three kinds of
definitions:
suffix content-type
- content-type
>offset,magic
suffix content-type
>offset,magic
suffix is file name extension after '.' on file name.
content-type is what is added to content-type -header.
offset,magic is matched agaist content of file.
When mime type is determined for file both suffix
and content of file (offset,magic) is used.
When check-type-pattern is set, content-type
and offset,magic is used to check to see
content-type is legimate.
When attachment-fix-extension is set content type
together with attachment content (offset,magic)
to determine correct extension for file when file is
saved.
Files libdir/elm.mimecharsets and ~/.elm/mime.charsets
handling mapping from current locale (LC_CTYPE) from
MIME charset value. On file there may be several kind lines:
- charset-definition
locale charset-name
locale charset-definition
- alias-definition
locale (unsupported)
locale codeset=codeset-name
locale codeset="codeset name"
First kind of line defines properties of charset.
Second kind of line defines mapping from locale to charset name.
Third kind of line defines mapping from locale to charset and
defines properties of the charset. This of kind line should be
avoided, because it leads to redefinition of the charset.
Fourth kind of line gives aliases for the charset. This does not
redefine the charset.
So in file should be only three kinds lines
- charset-definition
- alias-definition
locale charset-name
charset-definition has following forms
"charset name"; params...
charset; params...
charset-name is the name of the charset without quotes
(or ; character).
locale has following forms
LL_cc.encoding
LL_cc
*.encoding
these mappings are only used if nl_langinfo(CODESET) is not supported.
Exact matching (ie. when locale matches to LC_CTYPE) can be used to
override mapping given by nl_langinfo(CODESET).
Mapping order is
1) LC_CTYPE charset exact matching
2) value of nl_langinfo(CODESET)
If LC_CTYPE is form LL_cc.encoding (and nl_langinfo(CODESET)
is not supported) then also
3) LL_cc charset matching
4) *.encoding charset matching
params on charset definition have forms
param
param=value
param="quoted value"
params are separated by ; character.
Possible params are following
MIME-subset gives byte-to-byte subset
type gives type of charset
map gives mapping from charset
to unicode -- exact meaning
depends type of charset
alias gives alias for charset
MIBenum gives MIB enum number
codeset gives encoding name
when not valid MIME charset
and iso2022 parameters given later on.
Specially MIME-subset=US-ASCII gives compatcharsets.
Notice that MIME-subset should be used only on one-byte
character sets which do not use escaping technology.
Possible types of charsets include
unknown-charset this is default type
ascii-set specifies that bytes 0-127
map to unicode values 0-127.
This is default for charsets
which have MIME-subset=US-ASCII
given.
one-byte-map Specifies that mapping to
unicode values are given on
external file.
iso646-set Specicies 7-bit character set with
invariant part of map directly
to unicode values and and variant
part is given on map argument.
This is default for charsets
which have MIME-subset=INVARIANT
given.
utf-8 Specifies that charset uses UTF-8
encoding algorithm. And that values
0-127 map to unicode values 0-127.
Note that this type parameter without
map paramater does not define mapping
of other values to unicode.
utf-7 Specifies that charset uses UTF-7
encoding algorithm. And that values
0-127 map to unicode values 0-127.
Note that this type parameter without
map paramater does not define mapping
of other values to unicode.
imap Specifies that charset uses IMAP
variation of UTF-7 encoding algorithm.
And that values 0-127 map to unicode
values 0-127. Note that this type
parameter without map paramater does
not define mapping of other values to
unicode.
iso2022 Species that charset uses ISO 2022 codes.
euc Species that charset uses EUC encoding.
Possible map values for type ascii-set include following
builtin maps
US-ASCII
ISO-8859-1
ISO-8859-15
KOI8-R
KOI8-U
CP1251
CP1252
Possible map values for type ascii-set and one-byte-map
include following kind of names
filename File is read from directory
given on map-text-dir directory
(normally $lib/elm.map.txt)
{rc}/filename File is read from .elm subdirectory
of user's home
~/filename File is read from user's home
directory
Possible map values for types iso2022 and euc include following kind names
US-ASCII Defines mapping for ascii bank
ISO-8859-1 Defines mapping for ascii and latin1
bank
iso 2022 map list Refers to maps given on libdir/elm.iso2022sets
and ~/.elm/iso2022sets files. Maps on list
are separated by ; character. One map
name can be like iso2022 specification
bank-G0-94 1/4
or file name.
Map files should be "Format A" files from unicode.org.
These map files were not included in Elm ME+ distribution,
because on these files there were stated that
Unicode, Inc. specifically excludes the right to
re-distribute this file directly to third parties
or other organizations whether for profit or not.
Now that is changed and on these map files there are stated
that
Unicode, Inc. hereby grants the right to freely use the
information supplied in this file in the creation of
products supporting the Unicode Standard, and to make
copies of this file in any form for internal or external
distribution as long as this notice remains attached.
These map files are on charset/MAPPINGS/ISO8859 directory
on Elm ME+ distribution. These map files are parsed and
read to memory when first time referenced on elm.mimecharsets
or mime.charsets.
If you use these mappings file, you need also setting
page-known-charsets = ON
That is default. That causes that metamail does is not
called for these character sets (metamail probably does
not do any conversions and tries to print them as is.)
Possible map values for type iso646 include following
kind of names
INVARIANT (builtin)
XXXX XXXX XXXX XXXX XXXX (12 hex values)
gives unicode character for following positions
0x23, 0x24, 0x40, 0x5B, 0x5C, 0x5D, 0x5E,
0x60, 0x7B, 0x7C, 0x7D, 0x7E
Possible iso-2022 params are following
other-set
bank-94, bank-96, bank-94x94, bank-94x94, bank-96x96,
bank-G0-94, bank-G0-94x94,
bank-G1-94, bank-G1-96, bank-G1-94x94, bank-G1-96x96,
bank-G2-94, bank-G2-96, bank-G2-94x94, bank-G2-96x96,
bank-G3-94, bank-G3-96, bank-G3-94x94, bank-G3-96x96
and left/right bank definitions.
Params bank-94x94, bank-G?-94x94, bank-96x96, bank-G?-96x96
are not allowed with charset type ascii-set, one-byte-map
or iso646-set. (For these values only charset types iso2022
and euc are useful.) Parameter bank-G0-94=4/2 is added automatically
to bank specifications of charset type ascii-set.
Possible param values for iso-2022 are space separated (usually
empty) list of intermediate bytes and final byte given on form d/d.
If there is several bytes, list must be given in quoted form.
Giving of iso-2022 param does NOT itself imply that charset may
include ISO 2022 codes. Rather it means, what codes to use when
switching terminal to that character set.
Charset type=iso2022 accepts also following iso-2022 params.
initial-bank-G0-94, initial-bank-G0-94x94,
initial-bank-G1-94, initial-bank-G1-96,
initial-bank-G1-94x94, initial-bank-G1-96x96,
initial-bank-G2-94, initial-bank-G2-96,
initial-bank-G2-94x94, initial-bank-G2-96x96,
initial-bank-G3-94, initial-bank-G3-96,
initial-bank-G3-94x94, initial-bank-G3-96x96
These are similar than iso-2022 params without "initial-".
These parameters give initial assigments for banks if script
does not give assigments for banks. These parameters make
sense only for type=iso2022. Other charset types do not accept
several assigments for same bank so special initial paramaters
are not needed.
Iso2022 left/right bank definitions are following possibilities
left=bank-G0, left=bank-G1, left=bank-G2, left=bank-G3
right=bank-G1, right=bank-G2, right=bank-G2
Possible map values for type utf-8, utf-7 and imap include following
kind of names
UNICODE Specifies identify mapping to
unicode on ranges 0x0080 - 0xD7FF
and 0xF900 - 0xFFFF (*).
filename File is read from directory
given on map-text-dir directory
(normally $lib/elm.map.txt)
{rc}/filename File is read from .elm subdirectory
of user's home
~/filename File is read from user's home
directory
Map files have lines on format
start-end start-end
where first start-end gives values on given charset
and second gives corresponding unicode-values (start and
end value). Start and end should be given on hexadecimal
format.
(*) Mapping of ascii range (0000-007F) is determined
by charset type utf-8, utf-7 and imap. Surrogates
Area (D800-DFFF) and Private Use Area (E000-F8FF)
are excluded from mapping.
alias-definition have following forms
"charset name"; alias="name"...
charset; alias=name...
There may be given several aliases given on one line.
Also aliases may be given on their lines.
Alias definition lines for given charset should be after
charset-definition line for charset. If charset-definition
for given charset is given after alias definition, alias
definition does NOT follow new definition of charset.
Files libdir/elm.iso2022sets and ~/.elm/iso2022.sets
may give lists of ISO 2022 sets and correspondig maps.
Lines on these files are form
banktype "bytes" filename flag
For example
bank-G0-94 4/10 {rc}/JIS0201.TXT one-byte-map=lower
bank-G0-94x94 4/2 {rc}/JIS0208.TXT 3col=2
bank-G0-94x94 4/4 {rc}/JIS0212.TXT
Then these maps need to be referenced on
~/.elm/mime.charsets file:
- ISO-2022-JP;type=iso2022;MIBenum=39;initial-bank-G0-94=4/2;
bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2;
map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2"
(that is one line -- split in multiple lines for readability)
- ISO-2022-JP-2;type=iso2022;MIBenum=40;initial-bank-G0-94=4/2;
bank-G0-94=4/10;bank-G0-94x94=4/0;bank-G0-94x94=4/2;bank-G0-94x94=4/1;
bank-G0-94x94=4/3;bank-G0-94x94=4/4;bank-G2-96=4/1;bank-G2-96=4/6;
map="bank-G0-94 4/2;bank-G0-94 4/10;bank-G0-94x94 4/2;bank-G0-94x94 4/4"
(that is one line -- split in multiple lines for readability)
And if character sets uses two character position for 94x94 sets
on display, that must be given on ~/.elm/terminal.info file:
kterm ISO-2022/DW ISO-2022-JP
Possible flag values on iso2022.sets file are
ascii=lower Treats maps as charset type=ascii, uses range 32-127 (*)
ascii=upper Treats maps as charset type=ascii, uses range 160-255
one-byte-map=lower Treats maps as charset type=one-byte-map, uses range 32-127
one-byte-map=upper Treats maps as charset type=one-byte-map, uses range 160-255
range=lower Uses range 32-127
range=upper Uses range 160-255
3col=2
Possible filename values for iso2022.sets file are of the
same kind that map names in ~/.elm/mime.charsets file.
That is:
filename File is read from directory
given on map-text-dir directory
(normally $lib/elm.map.txt)
{rc}/filename File is read from .elm subdirectory
of user's home
~/filename File is read from user's home
directory
Map files should be "Format A" files from unicode.org.
Note that "Format A" maps for EASTASIA are on OBSOLETE
directory on unicode.org.
( http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/ )
Current data is on Unihan.txt file on UNIDATA directory.
That format is not supported.
( http://www.unicode.org/Public/UNIDATA/Unihan.txt )
(*) That is used to define ascii part (bank-G0-94=4/2)
Lines are split in several lines for readibility.
\ indicates place where line is splitted.
1) .elm/mime.charset file:
- EUC-JP;codeset="Extended_UNIX_Code_Packed_Format_for_Japanese";type=euc;\ map="bank-G0-94 4/2;bank-94x94 4/2;bank-94 4/10;bank-94x94 4/4";MIBenum=18;\ left=bank-G0;right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/2;\ initial-bank-G2-94=4/10;initial-bank-G3-94x94=4/4 - ISO-2022-KR;type=iso2022;map="bank-G0-94 4/2;bank-94x94 4/3";MIBenum=37;\ left=bank-G0;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/3 - EUC-KR;type=euc;map="bank-G0-94 4/2;bank-94x94 4/3";MIBenum=38;\ left=bank-G0;right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/3 - ISO-2022-JP;type=iso2022;map="bank-G0-94 4/2;bank-94 4/10;bank-94x94 4/2";\ MIBenum=39;left=bank-G0;initial-bank-G0-94=4/2;bank-G0-94=4/10;bank-G0-94x94=4/0;\ bank-G0-94x94=4/2 - ISO-2022-JP-2;type=iso2022;map="bank-G0-94 4/2;bank-94 4/10;bank-94x94 4/2;bank-94x94 4/4";\ MIBenum=40;left=bank-G0;right=bank-G2;initial-bank-G0-94=4/2;bank-G0-94=4/10;\ bank-G0-94x94=4/0;bank-G0-94x94=4/2;bank-G0-94x94=4/1;bank-G0-94x94=4/3;\ bank-G0-94x94=4/4;bank-G2-96=4/1;bank-G2-96=4/6 - ISO-2022-CN-EXT;type=iso2022;map="bank-G0-94 4/2;bank-94x94 4/1";\ MIBenum=105;left=bank-G0;initial-bank-G0-94=4/2;bank-G1-94x94=4/1;bank-G1-94x94=4/7;\ bank-G1-94x94=4/5;bank-G2-94x94=4/8;bank-G3-94x94=4/9;bank-G3-94x94=4/10;\ bank-G3-94x94=4/11;bank-G3-94x94=4/12;bank-G3-94x94=4/13 - GB2312;type=euc;map="bank-G0-94 4/2;bank-94x94 4/1";MIBenum=2025;left=bank-G0;\ right=bank-G1;initial-bank-G0-94=4/2;initial-bank-G1-94x94=4/1
2) .elm/iso2022.sets file:
bank-94 4/10 {rc}/JIS0201.TXT one-byte-map=lower
bank-94x94 4/2 {rc}/JIS0208.TXT 3col=2
bank-94x94 4/4 {rc}/JIS0212.TXT
bank-94x94 4/3 {rc}/KSX1001.TXT
bank-94x94 4/1 {rc}/GB2312.TXT
{rc} refers files in .elm directory!
3) .elm/terminal.info
kterm ISO-2022/DW ISO-2022-KR kterm ISO-2022/DW EUC-KR kterm ISO-2022/DW ISO-2022-JP kterm ISO-2022/DW EUC-JP kterm ISO-2022/DW ISO-2022-JP-2 kterm ISO-2022 US-ASCII kterm ISO-2022 ISO-8859-1 kterm ISO-2022/DW GB2312 kterm ISO-2022/DW ISO-2022-CN kterm ISO-2022/DW ISO-2022-CN-EXT
4) And then files
JIS0201.TXT
JIS0208.TXT
JIS0212.TXT
KSX1001.TXT
GB2312.TXT
If these files are on map-text-dir direcory (as specified on elm.rc), then elm.iso2022sets should include (instead of .elm/iso2022.sets):
bank-94 4/10 JIS0201.TXT one-byte-map=lower bank-94x94 4/2 JIS0208.TXT 3col=2 bank-94x94 4/4 JIS0212.TXT bank-94x94 4/3 KSX1001.TXT bank-94x94 4/1 GB2312.TXT
Files libdir/elm.terminalinfo and ~/.elm/terminal.info
handle terminal specific methods for switching of chartset
of terminal. In the file there may be following kinds of
lines:
term ISO-2022 charset-name
term ISO-2022 charset-definition
term ISO-2022 charset-name [ condition ]
term ISO-2022/DW charset-name
term ISO-2022/DW charset-definition
term ISO-2022/DW charset-name [ condition ]
term ISO-2022-LIKE charset-name bank-specification
term PRIVATE charset-name d/d d/d d/d
term PRIVATE charset-name [ condition ] d/d d/d d/d
term flag flag-keyword
term DW charset-name
term DW charset-name [ condition ]
term ANSI-SGR attribute
term ANSI-SGR attribute [ condition ]
where term is type of terminal (ie value of $TERM).
ISO-2022 is literal, which indicates that
next column is character set name or character set
definition as on elm.mimecharsets or mime.charsets file
and that character set switching happends as given with
other-set and bank-Gx-* attributes on character set
definition. PRIVATE literal, which indicates that
next two columns are character set name and bytes given
on d/d format for switch character set.
ISO-2022/DW literal indicates that terminal uses
same attributes than on case ISO2022 literal.
Additionally that says that 94x94 and 96x96 sets
consume two character positions on display with that
terminal. That literal is available only with charset
which have type=iso2022.
It is assumed that these escape sequences do not affect
to input (keyboard) charset of terminal (ie. do not affect
'keyboard mode' or 'keyboard language').
[ condition ] is like [ exp = exp ] where exp can be
either "quoted value" or $ENV_VAR. "quoted value" allow
also environment variables (same way than Elm ME+ allows
on pathnames.) For example that may be used on lines like
linux PRIVATE ISO-8859-15 [ $SYSFONTACM="iso15" ] 1/11 2/8 4/11 0/15
Also [ condition ] can be like [ exp =~ exp ]
Right side is treated as pattern ( * and ? are joker
characters.) For example that may be used on lines like
xterm ISO-2022 UTF-8 [ $XTERM_VERSION=~"XTerm(*)" ]
Read comments about using of these from doc/terminal.info
ISO-2022-LIKE indicates that terminal assigns private
codes for the charset. That definition do not define iso 2022
codes for the charset, but it is used than these codes are
defined for charset. For example that may be used on lines
like
vt200 ISO-2022-LIKE DEC-MCS left=bank-G0;bank-G0-94=4/2;right=bank-G2;bank-96=3/12
DW indicates for system charset that wcwidth()
function should be used to get char width.
This means that logical width of character
may be 0, 1 or 2 columns on that terminal.
On systems which have __STDC_ISO_10646__ defined,
DW flag on terminal.info works like "locale-charsets"
option if charset and terminal match.
If charset does not support calculation of visible len
and there is DW flag given for that charset and
terminal, then error message
Double wide characters are not supported
is printed.
Flag keyword xterm-title specifies that terminal supports
changing of window title and icon name in the same way as
xterm. That can be used with elmrc option set-window-title.
Flag keyword xwsh-title that terminal supports changing of
window title and icon name similar than SGI's xwsh.
ANSI-SGR indicates that terminal supports display
attributes chich are not given on termcap specification.
These attributes are following (listed attribute
name and uses codes for enable an disable them):
bold CSI 1 m CSI 22 m
dim CSI 2 m CSI 22 m
italic CSI 3 m CSI 23 m
underline CSI 4 m CSI 24 m
blinking CSI 5 m CSI 25 m
reverse CSI 7 m CSI 27 m
strikethrough CSI 9 m CSI 29 m
superscript CSI 73 m CSI 75 m
subscript CSI 74 m CSI 75 m
Files libdir/elm.tagfilter.entities and ~/.elm/.elm/tagfilter.entities
handles named character references regognized by
tagfilter. In the file there may be following kinds of
lines:
&tag; html nnnn
&tag; html 0ooo
&tag; html xhhhh
&tag; html "xxxx"
where nnnn is decimal value (must start with 1-9)
where 0ooo is octal value (must start with 0)
where xhhh is hexdecimal (must start with x)
where "xxxx" is string value (must be quoted with ")
where &tag; is entity / named character reference
which includes ending ; when matching.
where &tag is entity / named character reference
which matches if there is no ;
where html specifies that these entities are for text/html
(other keywords not currently defined)
Lines starting with # are comments
Also there can be ending # comment
on data lines.
Hit TABulator to get folder or file browser when file or folder
name is asked.
TABulator completes on prompt if elmrc option
browser-tabcomplete-prompt is set (default). Complete with
TABulator is active only if directory prefix on filename
matches current directory of folder or file broser.
If filename on prompt matches without completion to some entry
on directory, TABulator works as option browser-tabcomplete-prompt
is not set. That changes current directory of folder or
file browser.
If directory listing on folder is filtered then complete
with TABulator works agaist that listing (and not agaist
a whole listing of directory).
Characters '*' and '?' are treated as wildcards on folder
and file browser if option browser-wildcard-matching is ON
(default). Typing name with wildcard and pressing ENTER or
TABulator gives directory listing limited with that wildcard
specification. That is limited to one directory -- directory
paths can not include wildcards. Note also that it prevents
selecting file or folder names that include '?' or '*' characters.
Folder and file browser understands following special keys:
TAB Gives directory listing for that directory
name which is written to file or folder name
question prompt
or Completes filename on question prompt.
UP Moves selection up on folder listing
DOWN Moves selection down om folder listing
LEFT Removes selection from file or folder name
question prompt,
or Gives directory listing for previous directory.
RIGTH Adds selection from file or folder name
question prompt,
or Gives directory listing of current selection
(ie. selects that directory).
Enter Answers to file or folder name question.
IMAP directory can be accessed by giving username@hostname
or username@hostname:folder or username@hostname/directory
to prompt and pressing TAB key.
Note that username@hostname has three meanings:
1) Default directory (folder listing) for
username on hostname.
2) IMAP INBOX folder for username on hostname.
3) POP mailbox username on hostname.
If username@hostname is given (as itself or as prefix)
on file browser, that gives error message that remote
directories or files are not available.
Following table shows which elmrc options can refer to
remote mailboxes and prefixes which folder browser supports.
Elmrc Remote Browser
variable (3) possible prefix (1) Meaning
---------------- ---------- -------- ---------
incoming-mailbox YES ! Current incoming
mailbox
sentmail YES < "sent" folder
receivedmail YES (2) > "received" folder
dsnmail YES (2) [dsn] "dsn" folder
maildir NO = "Mail" directory
maildir NO + "Mail" directory
maildir NO % "Mail" directory
extra-mailbox-dir NO (none) Extra mailbox directory
(none) NO $ Environment variable (4)
(none) YES & Current remote IMAP server (5)
(none) NO ~/ User's home directory
(none) NO ./ Current directory
(none) NO {rc}/ .elm directory
(none) NO {lib}/ global library directory
(none) NO {etc}/ global config directory
(none) NO {bin}/ installation directory
attachment-dir NO {doc}/ Documents directory
(none) NO # Hashmark list
(none) (6) #name (7) Directory or remote
username@server
(1) If '!', '<', '>' or '[dsn]' is used as prefix, current
directory (or subfolder) separator is added
automatically after incoming, sent, received or dsn
folder. That usage is useful only with IMAP
servers, which at the same time have folders
(mailboxes) and directories (if folders which
include subfolders or mailboxes).
(2) If you put "received" / "dsn" folder to remote IMAP server,
you are forced to log in to IMAP server every time
when you leave folder or mailbox!
(3) Environment variables in these elmrc variables are
expanded before use.
(4) Environment variables are supported only with local
mailboxes or folders.
(5) Current IMAP server depends of which mailbox or
folder is open. That refers to default directory on
server.
(6) Depends on hashmark type.
(7) "name" is name of hashmark given on global
elm.hashmarks or user's .elm/hash.marks file.
Hashmark types are:
- For folder browser
hashtype: remote-mailbox
hashtype: local-folder-directory
- For file browser
hashtype: local-directory
Files libdir/elm.mailservices and ~/.elm/mail.services
specify data for remote services. Lines on these files
are following kind:
@charset = character-set
name imap parameters
name pop parameters
name submission parameters
name submissions parameters
name smtp parameters
name * parameters
name imaps parameters
name pops parameters
name smtps parameters
where name is canonical name for host; 'imap' specify that
IMAP protocol should be used for mailbox access, 'pop' specify
that POP protocol should be used for mailbox access and '*'
can be used to specify parameters without specifying type of
mailbox access, '@charset =' specifes used character set of file;
'imaps' specify that SSL/TLS should be used first and then
IMAP protocol should be used for mailbox access. 'pops' specify
SSL/TLS should be used first and then POP protocol should be
used for mailbox access.
Also 'imap' and 'pop' can use SSL/TLS to secure mailbox
access. Using of SSL/TLS requires
use-connect-library = tls
elmrc option is used. For secure mailbox access use also
verify-tls-certificate parameter with 'imaps', 'pops',
'imap' and 'pop'.
'smtp' specify that smtp protocol should be used for
mail submission and 'submission' specify that submission
protocol should be used for mail submission. Submission
protocol is similar than smtp protocol, but uses different port.
Using of smtp or submission protocol requires
use-mailer-library = smtp
elmrc option is used.
'smtps' specify that SSL/TLS should be used first and then
smtp protocol should be used for mail submission. 'smtps'
requires that explicit port is given on parameters.
Originally port 465 was reserved for smtps, but this was
revoked and that port is now reserved for "URL Rendesvous
Directory for SSM" instead.
'submissions' specify that SSL/TLS should be used first and
submission protocol should be used for mail submission.
This uses tcp port 465 by default which is reserver also for
"Message Submission over TLS protocol" or submissions.
Also 'smtp' and 'submission' can use SSL/TLS to secure
mail submission. Using of SSL/TLS requires
use-connect-library = tls
elmrc option is used. For secure mail submission
use also verify-tls-certificate parameter with 'smtp',
'submission' and 'smtps'. This paramater can
ve given either on global elm.mailservices -file
or on mailer option of global elm.rc -file.
parameters are in general following form
parameter=value; parameter=value; ...
paramater; parameter; ...
Following parameter names are recognized
alias gives alias for host
(value can be quoted)
addr gives ip-address
(or hostname) for service
port gives port for service;
may be on decimal form
or named (usually
from /etc/services)
verify-tls-certificate connection must use tls
(STARTTLS or similar) and
and server certificate
must have valid
require-tls-peer-name connection must use tls
(STARTTLS or similar) and
certificates's CN must
match. If Openssl supports
X509_check_host() this also
accepts DNS:name from
'Subject Alternative Name' (SAN)
if name is not IP address.
use-tls-checks With value "no" disables global
verify-tls-certificate
and 'require-tls-peer-name given
on use-tls elmrc option
{tag}:{paramater} Valid {tag} are these
which are given with
use-library -elmrc
option or
use-*-library -elmrc
options.
Following forms for specify of "addr" can be used:
addr=hostname
addr="hostname"
addr=ip:A.B.C.D
addr=ip:"A.B.C.D"
addr=ip:A.B.C.D/port
addr=ip:"A.B.C.D"/port
If entry's name is literal ip-address, then "addr" can not
given.
hostname is name of that host which corresponding ip-address
(or addresses) should be used, A.B.C.D is literal ip-address,
port is port number in decimal.
Avoid using addr=hostname and addr=ip:A.B.C.D forms on
same entry of mail.services file.
Literal ip-address <A.B.C.D> can be
- IPv4 address like 216.58.209.132
- IPv6 address like 2a00:1450:400f:804::2004
or IPv6 address with scope like
fe80:1450:400f:804::2004%3
IPv6 address must be given inside of quotes.
Following forms for specify of "port" can be used:
port=service
port="service"
port=ddd
service is name of that host which corresponding port
should be used, ddd is port number in decimal.
Avoid using port=service and port=ddd forms on
same entry of mail.services file.
Parameter 'verify-tls-certificate' does not check certificate
name. CN (common name) of certificate subject can be given with
"require-tls-peer-name" parameter.
If parameter "require-tls-peer-name" withot value is given,
that CN (common name) of certificate subject must match to
value given on {name} column. If Openssl supports
X509_check_host() this also accepts DNS:name from
'Subject Alternative Name' (SAN) if {name} is not IP address.
Check for "require-tls-peer-name" is currently case sensitive.
This also do not check agaist wildcards (*) on certificate
name -- * on certificate name is treated as regular character.
If Openssl supports X509_check_host(), then also wildcards
DNS:*.name from 'Subject Alternative Name' (SAN) are accepted.
Parameter 'use-tls-checks=no' do not affect to 'verify-tls-certificate'
and 'require-tls-peer-name' parameters, but only disables flags with
same name given on use-tls elmrc option.
Elmrc option use-library can be used load libraries on run time.
For example
use-library = tag1 tag2 tag3
uses libelmme-tag1.so, libelmme-tag2.so and libelmme-tag3.so
from same directory than where is libelmme-base.so. If there
is version suffix on libelmme-base.so then also for these
dynamically loaded libraries version suffix is required.
Currently elmrc option use-library is splitted to several
options
use-base-library
use-connect-library
Using of use-library causes that library is loeded on startup
and tried to relocate to these other use-*-library -options.
Libraries given on different use-*-library elmrc options are
loaded on different times, this splitting tries avoid loading
of unnecessary libraries.
Elmrc options use-*-library can be used both user elmrc and system
elm.rc file -- user specification overrides system specification
as usual.
Tags can use characters abcdefghijklmnopqrstuvwxyz0123456789-
and first 3 character must be letters.
On ~/.elm/elmrc (or on global elm.rc) there can be shared
library specific configuration. After line "tag:" config
variables refers to shared library corresponding to 'tag'.
Also "tag:variable = value" syntax is possible. For example
tls:rand-file = /home/hurtta/.rnd
is equivalent of
tls:
rand-file = /home/hurtta/.rnd
(except that "tls:rand-file" changes current section to
"tls" only temporary.)
Also on ~/.elm/mail.services (or global elm.mailservices)
there can be shared library specific configuration. See
chapter "Mail services config" for details. For example
cgate.host * tls:starttls-version=ssl
Debug output can be requested with option -d (if Elm
compiled with -DDEBUG). General form of option is
-d {class}={debugfile}:{level}
Also following forms are possible
-d {class}:{level}
-d {class}
-d {level}
-d ={debugfile}:{level}
-d option may be given several times (to specify
different output for different classes). Also same
{debugfile} can be given on different -d options.
This case {debugfile} is not opened several times.
{debugfile} is file to which (on home directory) debug
output os written. Default is {progname}:debug.info,
ie. ANSWER:debug.info, ELMALIAS:debug.info,
ELMCHARSET:debug.info, ELMTERMINAL:debug.info,
FASTMAIL:debug.info, FRM:debug.info, NEWALIAS:debug.info,
NEWMAIL:debug.info, PRLONG:debug.info, READMSG:debug.info,
ELMUNIDATA:debug.info or ELM:debug.info.
If {debugfile} name is {something}:debug.info, existing
{something}:debug.info is renamed to {progname}:debug.last.
Otherwise debug output is appended to {debugfile}.
If {class} is not given, it defaults to all classes.
Posible classes are printed to {debugfile}. Value 0
for {level} can be used to get just possible values
of {class}.
Currently possible values of {class} are:
addr imap readmsg
alias mail resolv
charset mailer screen
command mbox signal
config mem smtp
core menu stateio
digest messages system
dl mime textblock
ELM misc tls
elmpage motion ui
file net url
header pager util
headers pgp
iconv pop
elm.rc option "mailer" can be used to define mailer
type and path, which should be used. This can be
specified only on global elm.rc (not user's .elm/elmrc).
Option have form
mailer = type; params...
type can be one from following
unknown
sendmail
submitmail
execmail
NOTE: Only type sendmail is tested!
When type is "unknown" mailer is called as
path recipient1 recipient2 recipient3 ...
Following option params have accepted for type
unknown mailer
path=...
add-from=...
use-domain=...
Note that mailer which type unknown must NOT terminate
mail when line with period (.) alone is detected.
When type is "sendmail" mailer is called as
path -oi -oem sender other-options -- recipient1 recipient2 ...
where sender may be
-f address
if allow-set-sender=yes is set (and user sets return-path)
where other options can include following options
-v
-om
-B8BITMIME
-BBINARYMIME
-R full
-R hdrs
-N never
-N xxx where xxx is one or more from
success,failure,delay
When type is "sendmail" mailer is called for address verify
as
path -bv -- address
(you need set verify=yes, otherwise sendmail is not called
for verify)
This (sendmail -bv) works only when sendmail is installed as
setuid root. Starting from sendmail 8.12 sendmail is normally
installed as setgid smmsp and not as setuid root.
Sendmail is also called for verify (of envelope sender address)
if allow-set-sender=yes and verify-set-sender=yes is set.
Following option params have accepted for type
sendmail mailer
path=
add-from=
use-domain=
supported-bodytype=
supports-dsn=
verify=
When type is "submitmail" mailer is called as
path -mlrnv
Recipients are passed via standard input (one recipient per line.)
Following option params have accepted for type
submitmail mailer
path=
add-from=
use-domain=
When type is "execmail" mailer is called as
path options recipient1 recipient2 recipient3...
Where options can include
-d
-m
Following option params have accepted for type
execmail mailer
path=
add-from=
use-domain=
Posssible parameter values are following
add-from=yes Add From: -header
add-from=dont Let mailer to add From: -header
use-domain=no Do not add @hostname to address
use-domain=yes Add @hostname to local address
supported-bodytype=7bit
supported-bodytype=8bit Mailer accepts -B8BI7MIME
option
supported-bodytype=binary Mailer accepts -BBINARYMIME
option
supports-dsn=no
supports-dsn=yes Mailer accepts -R and -N options
verify=no Use default verify for address
verify=yes Call mailer for address verify
verify-set-sender=no Do not verify envelope sender
address
verify-set-sender=yes Use 'sendmail -bv {address}' to verify
envelope sender address (this works
only when sendmail is installed as
setuid root.)
elm.rc option "name-resolution" tells how default
value of elm-rc options "hostname", "hostfullname",
"hostdomain" and "mailname" elmrc variable are
generated. Following table tells rough priority
order for initialization of these options.
Preferred sources are on first on list. All
conditions are not listed.
elm.rc name-resolution option flag source ------ --------------- -------------------
hostname - elm.rc option value hostdomain - elm.rc option value hostfullname - elm.rc option value mailname - elm.rc option value
hostname gethostname gethostname() hostname uname uname(), nodename -field
hostdomain - elm.rc option "hostfullname"
values, part starting
from first '.', if on
"hostfullname" have at
least two '.'
hostname - elm.rc option "hostfullname"
values, part before
from first '.', if on
"hostfullname" have at
least two '.' (and "hostdomain"
was also set from "hostfullname")
hostname lookup gethostbyname() from elm.rc option
"hostfullname" if result does not
include '.'
hostdomain lookup gethostbyname() from elm.rc option
"hostfullname", part starting
from first '.'
hostdomain lookup gethostbyname() from elm.rc option
"hostname", part starting
from first '.'
hostfullname lookup gethostbyname() from elm.rc option
"hostname" if result does
include '.'
hostdomain - $LOCALDOMAIN environment
variable
hostdomain - $etc/domain file
hostdomain getdomainname getdomainname()
hostdomain - compiled in default from
Configure
hostfullname - derived from elm.rc options
"hostname" and "hostdomain"
mailname mailname /etc/mailname file and,
mailname - elm.rc option "hostfullname" and
elm.rc option "hostname"
mailname gethostname gethostname() and,
mailname uname uname(), nodename -field and,
mailname lookup gethostbyname() from elm.rc option
"hostfullname" or "hostname",
returned names and address
literals formed from returned
IPv4 addresses.
hostname - elm.rc option "hostfullname"
hostdomain - elm.rc option "hostfullname",
part starting from first '.'
hostname - value "localhost"
hostfullname - elm.rc option hostname +
elm.rc option "hostdomain" (may
be empty)
hostdomain - value ".localdomain"
elm.rc option option "generate-message-id" tells
how message-id should be generated for outgoing
mail. Elm ME+ does not generate Message-ID
header field if "generate-message-id" have
value "none" or if Elm ME+ can't select
"good" domain name to domain part (right
side from '@') of message-id.
Value of "generate-message-id" option is either
none Message-ID: -header field is not generated
or value have form
{localspec}@{domainspec}; {parameter}={value}...
or
{localspec}@domain.name; {parameter}={value}...
{localspec} values includes:
none Message-ID: -header field is not generated
md5 Use 16 octets md5 hash value from message
content for generating local part of message-id.
/dev/urandom Use 16 octets from /dev/urandom for
generating local part of message-id.
/proc/sys/kernel/random/uuid Use content from /proc/sys/kernel/random/uuid
as local part of message-id.
Local part of message-id is generated from 16 octets same way on both
md5 and /dev/urandom cases. Result includes 1, 2 or 4 "words" which are
separated by '.' characters (on 64-bit architecture result includes
2 "words" and 32-bit architecture result includes 4 shorter "words").
If compiler supports __int128 type, result includes only one "word"
because 16 octets fits to 128-bit.
{domainspec} values includes:
default Try following as domain part of message id
1) value of "hostfullname" elmrc option
2) mailer specific value (name of local
address of connected socket on "submission"
mailer, if connection is remote)
3) First value from "mailname" elmrc option
hostfullname Try value of "hostfullname" elmrc option as
domain part of message id
maildomain Try first value from "mailname" elmrc option as
domain part of message id
'domain.name' is any dns name which is tried as domain part of message id. This
must include at least one dot ('.'). Without dot ('.') it is interpreted as
{domainspec} keyword.
{parameter} values includes:
fallback-domain Overrides possible compile time default
domain for domain part of message id
default-cache-timeout Default timeout for cached results
of dns check for domain part of message id.
May include unit: "s" for seconds, "m"
for minutes, "h" for hours or "d" for days.
Without unit gives default cache timeout on
seconds.
check-domain Value "none" indicates that dns check is not
done and "valid-msg-id-domains" elmrc option
must be used.
check-domain Value "shared" indicates that shared routine
(resolv -module) is used for dns check.
min-domain-labels Minimun number of domain labels (0-9) separated
by '.' characters required for dns check.
Value zero (0) disables counting of labels
and rfc 822 special characters and whitespace
are not checked.
Note that '\.' does not count as label separator.
With elmrc option
use-mailer-library = resolv
possible {parameter} value includes:
check-domain Value "resolv" indicates that shared routine
from resolv -module is used for dns check.
{value} may be quoted string for "fallback-domain" and "check-domain".
A domain part of message-id either must be listed on
"valid-msg-id-domains" elmrc option or resolv -module must check that
given dns name exists. If a domain part of message-id is listed
"special-use-domains-blacklist", dns check is not done and domain part
is not accepted.
- First letter: D Deleted
E Expired
N New
O Unread
r replied
- Second letter: ! Message not downloaded
C Confidental
U Urgent
P Private (or ...)
A Action
e Uses Elm's [encode] ... [clear]
P PGP message (or ...)
S PGP signed message
K PGP public key
? MIME message with unknown
MIME version
a MIME message is attachment
M MIME message wich requires metamail
external programs (ie. may
use mailcap) or isn't yet
parsed
m Pre-MIME message wich requires metamail
or external programs
s signed message (may require metamail or
external programs)
p private (encrypted) message
f Includes message fragment
(message/partial)
o Charset of message is overrided
h On message have header errors
# Message not handled (NODATA)
d Message is delivery status notification (DSN)
Subject (main) menu:
A Assembe fragmented (message/partial) mails
-- enter message assembly mode
^E Extract PGP public keys from current message
E E)xtended command -prefix.
Ed duplication removal mode
Eo o)pen mailbox to current view
Et view t)hreads
^F Forget PGP passphrase
F toggle F)lag
I Mailing list I)nfo
Il Mail a message to a mailing list
Io Mail a message to the owner of a mailing list
Ih Mailing list help
Ia Mailing list archive
Is Subscribe a mailing list
Iu Unsubscribe a mailing list
^K Mail PGP public key(s)
P Print text of current message or tagged
messages
R Generic R)ply
Ra Reply to all
Rl Reply to a mailing list
Ro Reply to the owner of a mailing list
Rt Reply to the author of a message
S Save (copy) text of current message to file
or text of tagged messages to a folder
U Unread message (change status from read
to unread)
v View attachments in current message.
V View digest as mailbox.
After paging commands:
^K Mail PGP public key(s)
O O)verride charset
V V)iew digest as mailbox
Pre-send menu:
w view) folder
header editing screen:
d invoke e(d)itor
alternatives Accepts only ASCII characters on
PLalpha29 e-mail addresses.
browser-wildcard-matching Values are "off", "on" and
PLalpha22 "file browser".
browser-wildcard-matching Boolean values included
PLalpha40
editor, alteditor Comment character "#" truncates
PLalpha30 value. Takes "use-$EDITOR" and
"use-$VISUAL" as continuation
line flags.
incoming-mailbox Special value "none" means that
PLalpha40 incoming mailbox is not
set (opens empty mailbox).
incoming-mailbox Some special characters are detected
PLalpha45 when they are on first
position of value. This
makes expansion to same
as it is on "receivedmail"
and "sentmail" elmrc
options.
Takes "use-$MAIL" and "local-file" as
continuation line flag.
local-lockfile-pidcheck Boolean values included
PLalpha40
mail-services-lookup New values "gethostbyname" and
PLalpha41 "getaddrinfo".
mimeforward Values are "off", "on" and
PLalpha46 "auto".
receivedmail Takes "local-file" as
PLalpha45 continuation line flag.
pager Comment character "#" truncates
PLalpha30 value. Takes "use-$PAGER" as
continuation line flag.
sentmail Takes "local-file" as
PLalpha45 continuation line flag.
show-header-errors Boolean values included
PLalpha40
verify-domain Changed to enumerated type.
Boolean values included and also
values "hostname" and "shared".
Shared library libelmme-resolv.so
adds more values to this:
"resolv:mx-address", "resolv:mx"
and "resolv:any".
PLalpha40
pagemultipart PL0 If FALSE, call metamail if
elm can't handle all subpart
of multipart -type or if type is
other than multipart/mixed,
multipart/digest or
multipart/report. If TRUE then
always handle multipart type
without metamail (and treat unknown
subtypes as multipart/mixed).
readmsginc PL51 Changed default to 100
displaycharset PL78 Character set to which switch
terminal
charset (text-charset) PL73 Character set to which convert
outgoing mail text
alteditor PL78 Now used even when "editor" is
not builtin.
page-known-charsets PL79 Changed default to ON
copy PL82 Changed default to ON
promptafter PL109 Renamed to prompt-after-pager.
promptafter effects now both
prompt-after-pager and
prompt-after-metamail.
names PL123 Changed default to NO
@charset SYSTEM
address-lookup SYSTEM
alias-group-phrase -
browser-tabcomplete-prompt -
conf-merge-locking -
confirmprint -
connect-mode SYSTEM
dsnmail -
editor-al-propline -
editor-elmrc-propline -
editor-hm-propline -
editor-ml-propline -
editor-ms-propline -
editor-tfent-propline -
expires-have-time -
file-browser-show-dotfiles -
file-browser-show-protection -
file-browser-show-title -
file-browser-sortby -
folder-locking SYSTEM
generate-message-id -
imap-idle-alive-interval IMAP
ipv6-scope-id SYSTEM
last-read-fallback-locking SYSTEM
local-lockfile-pidcheck - (also introduced on
Elm 2.4ME+ PL126 (25))
mail-menu-time -
mail-services-lookup SYSTEM
mailbox-locking SYSTEM
mailcap-blacklist-programs MIME
mailcap-select-other MIME
mailcap-tempfile-lifetime MIME
mailhome-dir SYSTEM
mailhome-locking SYSTEM
mailname SYSTEM
name-lookup-cache-time SYSTEM
name-lookup-cancel SYSTEM
name-resolution SYSTEM
pager-header-display-mode -
pager-indicate-wrapping -
pager-paragraph-width -
pager-time-display -
page-tagfilter -
pagerelated MIME
pop-idle-alive-interval POP
pointflagged -
program-identification -
show-mail-quota (IMAP)
special-use-domains-blacklist -
special-use-domains-lookup -
static-hosts-max-names -
use-char-set-header-field-hack -
use-content-type-charset-for-8bit-subject-hack -
use-config-library -
use-last-read-file SYSTEM
use-tls -
user-conf-rewrite -
user-map-dir -
valid-domains -
valid-msg-id-domains -
verify-alias-domain -
verify-local-domain -
weedout-without-title -
incomingfolders -
allow-setuid -
askstore -
askkeep -
askdelete -
confirmtagsave -
editflush -
fwdattribution -
printhdrs -
savebyalias -
showmlists -
showreply -
tochars -
add-in-reply-to-phrase -
add-sender -
allow-charset-switching (MIME)
askmimeforward MIME
askpgpsig PGP
attachment-fix-extension MIME
auto-attachment MIME
auto-iso-8859 MIME
background-wait-time -
bindata -
browser-tabcomplete-prompt MIME / SYSTEM
browser-wildcard-matching MIME / SYSTEM
charset-convert-ok MIME
check-type-pattern MIME
convert-comment-to-fullname -
convert-utf-header (MIME)
dead-letter-dir -
default-folder-status -
default-mime-text-charset MIME
default-nomime-charset -
dsn-success MIME / DSN
env-from-source -
extra-mailbox-dir -
fragment-handling MIME
header-phrase-display-mode -
imap-charset IMAP
imap-connection-cache IMAP
imap-dir-sortby IMAP
imap-fast-lookup IMAP
imap-max-download-size IMAP
imap-naming-convention IMAP
imap-show-error IMAP
imap-show-greeting IMAP
imap-show-warning IMAP
imap-use-examine IMAP
incoming-mailbox (POP, IMAP)
internal-mailcaps MIME
internal-mailcap-trusted-programs MIME
internal-mailcap-prompt-trusted MIME
iso646-charsets MIME
keeppassfor PGP (new on Elm 2.4 PL24ME)
local-dir-sortby -
local-fast-lookup SYSTEM
local-fs-charset SYSTEM
local-lockfile-pidcheck SYSTEM
local-sessionlock-dir -
local-sessionlock-use-home -
locale-charsets SYSTEM
lock-in-copy -
lock-folder -
long-encoded-headers MIME
mailer -
map-bin-dir MIME / SYSTEM
map-text-dir MIME / SYSTEM
message-hide-hack -
metamail MIME
metamail-mailcaps MIME
menu-display-host -
mime-parameters MIME
mimebodykeywords MIME
mimeforward MIME (new on Elm 2.4 PL24ME)
noencoding MIME (new on Elm 2.4 PL24ME)
nohdrencoding MIME
noheaderfwd -
pagealternative MIME
page-known-charsets MIME
pagemultipart MIME (new on Elm 2.4 PL24ME)
pagesigned MIME
pgp2 PGP
pgp5 PGP
gpg PGP
pgp-encrypt-type PGP / MIME
pgp-interactive PGP
pgp-sign-type PGP / MIME
pgp-version PGP
pop-max-download-size POP
pop-show-greeting POP
prompt-after-metamail MIME
prompt-after-pager - (was: promptafter)
prompt-metamail MIME
quoteforward -
readdatapercentinc -
require-mime-version-for-body-encoding MIME
require-mime-version-for-hdr-encoding MIME
show-header-errors (MIME)
showpgppreamble PGP
showto - (new on Elm 2.4 PL24ME)
sort-thread-max-time -
text-charset MIME
thread-sortby -
unidata MIME / SYSTEM
unstable-reverse-thread -
use-library -
use-base-library -
use-connect-library -
usepgppass PGP (new on Elm 2.4 PL24ME)
utf7-encode-optional MIME
verify-domain -
verify-local-address -
charset (alias to text-charset)
hpkeypad (alias to keypad)
hpsoftkeys (alias to softkeys)
keypad -
softkeys -
textencoding MIME
bounce (alias to bounceback)
bounceback UUCP
pgp PGP (alias to pgp2)
mailbox (alias to receivedmail)
use-library (use-base-library and
use-connect-library)
forms
form (alias to forms)
--folder-selection Same as -f ''
--have-double-wide-characters
Similar than DW flag
on elm-terminalinfo
-A Attach file
-O Open url
-w Write .elm/elmrc on startup
-y Don't enter Elm if no unread mail is
pending.
--confirm-url Ask confirmation for url
--icon-name Set icon name
--title-name Set window title
--with-title Set initial window title
--mailbox-title Set combined mailbox name If several folders
is given with -f options.
-k Enable HP 2622 terminal keyboard
-K Keypad&softkeys - enable use of softkeys + "-k"
add-sender no, yes, auto
address-lookup normal, shared, gethostbyaddr, getnameinfo
auto-attachment none, application, non-text
browser-wildcard-matching off, on, file browser
convert-cr-to-newline-hack off, on-with-error, on-silent
default-folder-status Read, Old, new
editor-al-propline auto, emacs, ignore
editor-elmrc-propline auto, emacs, ignore
editor-ms-propline auto, emacs, ignore
editor-usermap-propline auto, emacs, ignore
env-from-source forward-from, from, return-path
fragment-handling none, manual, auto
header-phrase-display-mode plain, quoted
local-lockfile-pidcheck no, yes, hostname, ignore-hostname,
require-hostname
local-sessionlock-use-home never, spool, always, non-spool
mail-services-lookup hostname, shared, gethostbyname, getaddrinfo
message-hide-hack none, FOLDER INTERNAL DATA
mime-parameters plain, encoded, plain-and-encoded
mimeforward off, on, auto
name-lookup-cancel disabled, enabled, auto
noencoding pass-7bit, pass-8bit, pass-binary
pager-header-display-mode pain, bold
pager-time-display legacy, default, ...
pagerelated no, yes, single-part
pgp-encrypt-type application/pgp, text/plain, text/x-pgp
pgp-sign-type application/pgp, text/plain, text/x-pgp
pgp-version default, pgp2, pgp5, gpg
show-header-errors OFF, ON, store
show-mail-quota off, on-open
userlevel beginner, intermediate, expert
verify-domain no, yes, hostname, shared
verify-local-domain no, yes, if-remote-mailer
- Not compiled with MMDF support defined, so probably it doesn't
work (or even compile).
- This has not been tested much so there can be bad bugs.
Bug reports to: Kari E. Hurtta <elm@elmme-mailer.org>
(was hurtta+elm@posti.FMI.FI)
- Internationalized (ie. non-ASCII) domain names are not supported.
- Support for multipart/signed and multipart/encrypted (specially:
support for PGP/MIME) only in reading side. There is no support
for attachments with multipart/encrypted.
- HP's shoftkeys are no longer supported
- DECNET addresses like host::user may be interpreted as phrase
of group syntax or as route of source routed address.
- Header editing screen now uses addresses in form phrase <address>,
but because it does not require using of comma (,), multiword
phrases must be entered in quotes.
For example: "Kari Hurtta" <hurtta>
- If address includes <> or comments (), they are not aliased
expanded. So aliases must be entered as bare words.
- Addresses given as arguments to elm command should be given
as one address per argument. Giving of sevaral addresses per
one argument causes that address is misparsed if header is
edited on header editing screen.
That is:
Use: elm '"Kari Hurtta" <hurtta>' 'Admin <root>'
Don't use: elm 'Kari Hurtta <hurtta>, Admin <root>'
- p)rint command acts as P)rint text -command. So it
is currently quite useless.
p)rint command does that via readmsg -command. However
P)rint text does actually same (without readmsg).
- Some Linux libraries does not follow $LC_CTYPE when program is
setgid. Net result is that your locale is always C. That is
visible that $LC_CTYPE does not effect to locale printed by
'elm -vvvvv':
Locale (LC_CTYPE): C
Display character-set: US-ASCII
Sending character-set: US-ASCII
- All refrences iso2022 maps are parsed and read to memory.
This may cause quite big memory consumption specially because
eastern (multibyte) sets tend to be lot of characters. That
mapping information should be shared between processes to
reduce memory consuption.
- If display charset is produced by using mapping from locale
to charset where charset definition is later invalidated
("removed") by setting explicit compatcharsets on user's
.elm/elmrc, that may cause PANIC on elm's internal pager
or other problems. Invalidation happens if display charset
is on implicit compatcharsets list (because of charset
definition), but does not have explicit compatcharsets list
given by user.
- Neither Unicode didirectional algorithm nor Right-Left scripts
are supported.
- In some situations two Status headers may be generated two
Status headers -- one by IMAP deamon and one from APPENDed
message.
- When APPENDing message to IMAP folder (which is normal UNIX
mailbox format) original "From " separator line can not be
preserved -- specially it is not possible to pass envelope
sender address.
- For UTF-8 charset Elm only knows printable characters from
Latin/1 range, if unicode database (see elmrc option "unidata")
is not loaded.
- For using of ISO2022 character sets it is required that mapping
them to unicode is know -- otherwise Elm ME+ does not know which
characters are printable.
- UTF-16 surrogate pairs (D800-DFFF) are not supported on UTF-7
charset.
- Mixing of names using IMAP naming convention
(imap-naming-convention = yes)
and names using imap-charset does not work very well...
- " Regarding my message (8 Aug 2000) regarding 'newmail' on
AIX 4.3.3 in an 'aixterm' window and the 'aixterm' did not
close, indeed the problem was NOT related to 'newmail' but an
AIX bug.
IBM has release a patch, and the 'aixterm' in AIX 4.3.3 must
be update with fileset X11.apps.aixterm.4.3.3.26 (PTF
U473920) is solved to problem."
From: Noam G. Nudelman
- File /usr/share/locale/fi/charset gives charset name utf-8 on
Linux Mandrake 7.2. This causes that Configure generates
mapping
fi utf-8
to elm.mimecharsets. However that seems to have
incorrect mapping. You may want change this to
fi ISO-8859-1
( however nl_langinfo(CODESET) gives charset ISO-8859-15
but look following entry. )
- Locale 'fi' seems to have charset ISO-8859-15 according
of nl_langinfo(CODESET) on Mandrake Linux 7.2 (and probaly
others with same glibc version). However for example gnome
terminal uses font
-misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-1
and not
-misc-fixed-medium-r-normal--12-200-75-75-c-100-iso8859-15
Also KDE's konsole program seems use iso8859-1 character set
although locale is 'fi' which should have ISO-8859-15 according
of nl_langinfo (selecting "unicode" from menu seems fix that.)
Because of mismatch more correct locale is fi_FI.88591, which gives
ISO-8859-1 character set according of nl_langinfo(CODESET).
( Locale seems come from /etc/sysconfig/i18n or $HOME/.i18n )
> To enable handling of ISO-8859-1 and ISO-8859-15 character sets
on linux console, read comments from doc/terminal.info file.
- Mandrake Linux 7.2 seems set LD_PRELOAD to load
/usr/lib/libxalflaunch.so.0. That (xalf-0.4-2mdk) causes that
elm to crash on startup (actually before main() is reached.)
- kterm on Mandrake Linux 7.2 seems have (at least on my test
environment) seems get bad fontlist (*VT100*fontList) which
gives bad font for iso8859-1 -- therefore ISO-8859-1 characters
do not work.
("xrdb -query" seems report resource with name "*fontList"
-- that probably overrides "*VT100*fontList" which comes
from /usr/lib/X11/app-defaults/KTerm )
- Also note that initially kterm does NOT default to
ISO-8859-1 -- therefore ISO-8859-1 works only when
elm explicity switch to ISO-8859-1 (for example
with 'elm -D ISO-8859-1')
- When assembling message/partial MIME (RFC 2046)
requires that all headers except Content-*, Subject,
MIME-Version, Message-ID and Encrypted are copied from
initial enclosing message to assembled message. It also
requires that headers except Content-*, Subject,
MIME-Version, Message-ID and Encrypted are ignored and
dropped from enclosed message.
For now we copy only Received: -headers. Dropping extra
headers from enclosed message makes assembly more
complicated (and dropping of Received: -headers
from enclosed message do not make sense.)
- mailer=sendmail; verify=yes works only when sendmail
is installed as setuid root. Use mailer=submission instead.
* Starting from sendmail 8.12 sendmail is normally
installed as setgid smmsp and not as setuid root.
- However error message is printed only if
verify-local-address=yes is also set
- IMAP connection is stalled some times. Reason is unknown.
Kari Hurtta <elm@elmme-mailer.org>
Kari Hurtta <hurtta+elm@siilo.FMI.FI>