Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Elm 2.4ME+ PL101 (25) -> Elm 2.4ME+ PL102 (25)

116 views
Skip to first unread message

Kari E. Hurtta

unread,
May 28, 2003, 3:37:05 PM5/28/03
to
Archive-name: elm2.4ME+/PL102

Is available on ftp.ozone.FMI.FI
via anonymous ftp
directory KEH/
files elm-2.4ME+PL102.patch.gz
and elm-2.4ME+102.tar.gz

Is available with
<URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+PL102.patch.gz >
and <URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+102.tar.gz >
via WWW.

Is available with
<URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+102.tar.gz >
and <URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+PL102.patch.gz >

For apply patch use command
patch -p1 < {path...}/elm-2.4ME+PL102.patch
on top level directory of Elm 2.4ME+ distribution
(ie. on directory where Configure is.)

Files listed on OBSOLETE should have deleted (they are empty.)

Notice: ME+ series is not official Elm.
This patch is agaist Elm 2.4ME+ PL101 (25) ------------------------------------
Index: elm2.4.ME+.102cvs/hdrs/patchlevel.h
Prereq: 1070000000
*** elm2.4.ME+.101/hdrs/patchlevel.h 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/hdrs/patchlevel.h 2003-05-27 18:52:04.000000000 +0300
***************
*** 1,9 ****
! #define PATCHLEVEL "101 (25)"
/* Used by Configure:
! SHAREDTAG: .1.0.101
*/
! #define LAST_REPORT_TIME 1070000000
#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"
! #define VERS_DATE "Mar, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released Mar, 2003"
--- 1,9 ----
! #define PATCHLEVEL "102 (25)"
/* Used by Configure:
! SHAREDTAG: .1.0.102
*/
! #define LAST_REPORT_TIME 1080000000
#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"
! #define VERS_DATE "May, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released May, 2003"
Index: elm2.4.ME+.102cvs/README.ME+
*** elm2.4.ME+.101/README.ME+ 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/README.ME+ 2003-05-28 21:02:27.000000000 +0300
***************
*** 1,4 ****
! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.549 2003/03/20 06:49:00 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.
--- 1,4 ----
! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.572 2003/05/28 18:02:27 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.
***************
*** 13,18 ****
--- 13,597 ----
Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

+ Changes of Elm2.4ME+ PL102 (25) compared with Elm2.4ME+ PL101 (25)
+ ------------------------------------------------------------------
+
+ 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 <pdmc...@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 <rui...@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
+
+ Changes of Elm2.4ME+ PL101c (25) compared with Elm2.4ME+ PL101b (25)
+ --------------------------------------------------------------------
+
+ [ This is out of branch patch. ]
+
+ 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)
+
+ Changes of Elm2.4ME+ PL101b (25) compared with Elm2.4ME+ PL101a (25)
+ --------------------------------------------------------------------
+
+ [ This is out of branch patch. ]
+
+ 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 <pdmc...@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 <rui...@it.pt>
+
+ - Fix crash
+ ISO2022 PANIC in cs_iso2022.c:836:state_add_raw
+ >>>Value not in range 0-255
+
+ Changes of Elm2.4ME+ PL101a (25) compared with Elm2.4ME+ PL101 (25)
+ -------------------------------------------------------------------
+
+ [ This is out of branch patch. ]
+
+ 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

Changes of Elm2.4ME+ PL101 (25) compared with Elm2.4ME+ PL100 (25)
------------------------------------------------------------------
Index: elm2.4.ME+.102cvs/Configure
*** elm2.4.ME+.101/Configure 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/Configure 2003-05-25 14:19:56.000000000 +0300
***************
*** 8,14 ****
# and edit it to reflect your system. Some packages may include samples
# of config.h for certain machines, so you might look for one of those.)
#
! # $Header: /data/cvsroot/mail/elmme+/Configure,v 1.144 2003/03/19 17:48:00 hurtta Exp $
#

: sanity checks
--- 8,14 ----
# and edit it to reflect your system. Some packages may include samples
# of config.h for certain machines, so you might look for one of those.)
#
! # $Header: /data/cvsroot/mail/elmme+/Configure,v 1.145 2003/05/25 11:19:56 hurtta Exp $
#

: sanity checks
***************
*** 316,321 ****
--- 316,322 ----
d_shared_rev=''
d_dlopen_libs=''
shared_list=''
+ shared_register=''
dlopen_lib='';
rpath_opt=''
soname_opt=''
***************
*** 6404,6409 ****
--- 6405,6450 ----
)
done

+ case "$shared_register" in
+ '')
+ dflt="$shared_list"
+ ;;
+ *)
+ dflt="$shared_register"
+ ;;
+ esac
+ $cat <<EOF
+
+ These shared libraries
+ $shared_list
+ may be registered after installation, by writing to the global elm.rc file
+ varible use-library. Give list which libraries from these should be registered.
+ Give "none" if no libraries should be registered automatically.
+
+ EOF
+
+ rp="Libraries for registeration? [$dflt]"
+ echo $n "$rp $c"
+ . myread
+
+ case "$ans" in
+ none)
+ shared_register=none
+ ;;
+ *)
+ shared_register=
+ for doconfig in $ans ; do
+ if $test -r ../shared_libs/$doconfig/config.res ; then
+ shared_register="$shared_register $doconfig"
+ else
+ echo "Library $doconfig not available"
+ fi
+ done
+ echo "Will register following libraries: $shared_register"
+ echo
+ ;;
+ esac
+
fi

: the "config.over" file can be used to patch configuration changes
***************
*** 6617,6622 ****
--- 6658,6664 ----
d_shared_rev='$d_shared_rev'
d_dlopen_libs='$d_dlopen_libs'
shared_list='$shared_list'
+ shared_register='$shared_register'
d_dynamic_main='$d_dynamic_main'
dynamic_opt='$dynamic_opt'
dlopen_lib="$dlopen_lib"
Index: elm2.4.ME+.102cvs/doc/elmlibregister.1
*** /tmp/2329-very-long-file-name-NULL-comes-in-here 2003-05-28 21:40:26.000000000 +0300
--- elm2.4.ME+.102cvs/doc/elmlibregister.1 2003-05-25 16:57:45.000000000 +0300
***************
*** 0 ****
--- 1,63 ----
+ .if n \{\
+ . ds ct "
+ .\}
+ .if t \{\
+ . ds ct \\(co
+ .\}
+ .TH ELMLIBREGISTER 1L "Elm Version 2.4ME+" "Kari Hurtta"
+ .SH NAME
+ elmlibregister - Registry of elm libraries to use-library line on elm.rc
+ .SH SYNOPSIS
+ .B #LIB#/elmlibregister
+ [
+ .B \-G
+ .B \-d
+ .I "\fIclass\fR=\fIdebugfile\fR:\fIlevel\fR"
+ .B \-I
+ .B \-w
+ target-file
+ ]
+ [ libtags... ]
+ .PP
+ .SH DESCRIPTION
+ .I Elmlibregister\^
+ is a part of the
+ .B Elm 2.4ME+
+ mail system.
+ Elmlibregister checks that libraries given on use-library on elm.rc
+ (or on .elm/elmrc) are loadable.
+ 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.
+ .PP
+ Options are:
+ .TP 1.0i
+ .B " -G"
+ Read global configuration files only (by default user
+ configuration files are read.)
+ .TP
+ .B " -d \fIclass\fR=\fIdebugfile\fR:\fIlevel\fR "
+ Debug - set specified debug level - Output to "$HOME/ELMLIBREGISTER:debug.info"
+ if
+ .I debugfile
+ is not given. Has no effect unless
+ .I elmrc-write
+ was compiled with debugging enabled.
+ .TP
+ .B " -w" target-file
+ Gives file for output.
+ .TP
+ .B " -I"
+ Use system RC file (#ETC#/elm.rc) or individual RC file
+ ($HOME/.elm/elmrc) as target file.
+ .SH AUTHOR
+ Kari Hurtta
+ .SH FILES
+ #ETC#/elm.rc system RC file
+ .br
+ $HOME/.elm/elmrc individual RC file
+ .br
+ .SH BUG REPORTS TO
+ Kari Hurtta hurtt...@ozone.fmi.fi
+ .SH COPYRIGHTS
+ \fB\*(ct\fRCopyright 2003 by Kari Hurtta
Index: elm2.4.ME+.102cvs/doc/Makefile.SH
*** elm2.4.ME+.101/doc/Makefile.SH 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/doc/Makefile.SH 2003-05-28 19:43:07.000000000 +0300
***************
*** 17,23 ****
cat >Makefile <<!GROK!THIS!
#!$make
#
! # $Id: Makefile.SH,v 1.25 2003/03/17 18:42:25 hurtta Exp $
#
# Makefile for the documentation of the ELM mail system
#
--- 17,23 ----
cat >Makefile <<!GROK!THIS!
#!$make
#
! # $Id: Makefile.SH,v 1.28 2003/05/28 16:43:07 hurtta Exp $
#
# Makefile for the documentation of the ELM mail system
#
***************
*** 51,56 ****
--- 51,73 ----
PACKER = $packer
!GROK!THIS!

+
+ case "$d_dlopen_libs" in
+ define) regman="\$(MAN)/elmlibregister\$(MANEXT)"
+ regcat="\$(CATMAN)/elmlibregister\$(CATMANEXT)\$(SUFFIX)"
+ regcatman="catman/elmregister\$(CATMANEXT)\$(SUFFIX)"
+ ;;
+ *) regman=
+ regcat=
+ regcatman=
+ ;;
+ esac
+ cat >>Makefile <<!GROK!THIS!
+ REGMAN = $regman
+ REGCAT = $regcat
+ REGCATMAN = $regcatman
+
+ !GROK!THIS!
if $test "$roff" != none ; then
cat >>Makefile <<!GROK!THIS!
# List of formatted guides (obsolete)
***************
*** 88,116 ****
;;
esac

- cat >>Makefile <<!GROK!THIS!
- all:
- @if \$(TEST) $catmansrc != none; then \$(MAKE) formatted_pages ; else true ; fi
-
- install_s: \$(LIB_LIST)
- @if \$(TEST) $mansrc != none; then \$(MAKE) install_man ; else true ; fi
- @if \$(TEST) $catmansrc != none; then \$(MAKE) install_catman ; else true ; fi
-
- uninstall_s:
- \$(REG) rm \$(LIB_LIST)
- @if \$(TEST) $mansrc != none; then \
- \$(REG) rm \$(MAN_LIST) \$(MAN)/wnewmail\$(MANEXT) \$(MAN)/nfrm\$(MANEXT) \$(MAN)/elmuninstall\$(MANEXT); \
- else \
- true ; \
- fi
- @if \$(TEST) $catmansrc != none; then \
- \$(REG) rm \$(CATMAN_LIST) \$(CATMAN)/wnewmail\$(CATMANEXT)\$(SUFFIX) \$(CATMAN)/nfrm\$(CATMANEXT)\$(SUFFIX) \$(CATMAN)/elmuninstall\$(CATMANEXT)\$(SUFFIX); \
- else \
- true ; \
- fi
-
- !GROK!THIS!
-
cat >>Makefile <<'!NO!SUBS!'

# Other variables
--- 105,110 ----
***************
*** 136,142 ****
$(MAN)/elmunidata$(MANEXT) \
$(MAN)/elmstringconvert$(MANEXT) \
$(MAN)/prlong$(MANEXT) \
! $(MAN)/elmregister$(MANEXT)

# List of installed catman pages (except for wnemail.1 - handled differently)
CATMAN_LIST = $(CATMAN)/answer$(CATMANEXT)$(SUFFIX) \
--- 130,137 ----
$(MAN)/elmunidata$(MANEXT) \
$(MAN)/elmstringconvert$(MANEXT) \
$(MAN)/prlong$(MANEXT) \
! $(MAN)/elmregister$(MANEXT) \
! $(REGMAN)

# List of installed catman pages (except for wnemail.1 - handled differently)
CATMAN_LIST = $(CATMAN)/answer$(CATMANEXT)$(SUFFIX) \
***************
*** 157,163 ****
$(CATMAN)/elmunidata$(CATMANEXT)$(SUFFIX) \
$(CATMAN)/elmstringconvert$(CATMANEXT)$(SUFFIX) \
$(CATMAN)/prlong$(CATMANEXT)$(SUFFIX) \
! $(CATMAN)/elmregister$(CATMANEXT)$(SUFFIX)

# List of formatted pages for catman
FORMATTED_PAGES_LIST = catman/answer$(CATMANEXT)$(SUFFIX) \
--- 152,159 ----
$(CATMAN)/elmunidata$(CATMANEXT)$(SUFFIX) \
$(CATMAN)/elmstringconvert$(CATMANEXT)$(SUFFIX) \
$(CATMAN)/prlong$(CATMANEXT)$(SUFFIX) \
! $(CATMAN)/elmregister$(CATMANEXT)$(SUFFIX) \
! $(REGCAT)

# List of formatted pages for catman
FORMATTED_PAGES_LIST = catman/answer$(CATMANEXT)$(SUFFIX) \
***************
*** 178,184 ****
catman/elmunidata$(CATMANEXT)$(SUFFIX) \
catman/elmstringconvert$(CATMANEXT)$(SUFFIX) \
catman/prlong$(CATMANEXT)$(SUFFIX) \
! catman/elmregister$(CATMANEXT)$(SUFFIX)

# List of files installed in LIB directory
LIB_LIST = $(LIB)/elm-help.0 \
--- 174,181 ----
catman/elmunidata$(CATMANEXT)$(SUFFIX) \
catman/elmstringconvert$(CATMANEXT)$(SUFFIX) \
catman/prlong$(CATMANEXT)$(SUFFIX) \
! catman/elmregister$(CATMANEXT)$(SUFFIX) \
! $(REGCATMAN)

# List of files installed in LIB directory
LIB_LIST = $(LIB)/elm-help.0 \
***************
*** 189,194 ****
--- 186,218 ----


# Targets
+
+ !NO!SUBS!
+
+ cat >>Makefile <<!GROK!THIS!
+ all:
+ @if \$(TEST) $catmansrc != none; then \$(MAKE) formatted_pages ; else true ; fi
+
+ install_s: \$(LIB_LIST)
+ @if \$(TEST) $mansrc != none; then \$(MAKE) install_man ; else true ; fi
+ @if \$(TEST) $catmansrc != none; then \$(MAKE) install_catman ; else true ; fi
+
+ uninstall_s:
+ \$(REG) rm \$(LIB_LIST)
+ @if \$(TEST) $mansrc != none; then \
+ \$(REG) rm \$(MAN_LIST) \$(MAN)/wnewmail\$(MANEXT) \$(MAN)/nfrm\$(MANEXT) \$(MAN)/elmuninstall\$(MANEXT); \
+ else \
+ true ; \
+ fi
+ @if \$(TEST) $catmansrc != none; then \
+ \$(REG) rm \$(CATMAN_LIST) \$(CATMAN)/wnewmail\$(CATMANEXT)\$(SUFFIX) \$(CATMAN)/nfrm\$(CATMANEXT)\$(SUFFIX) \$(CATMAN)/elmuninstall\$(CATMANEXT)\$(SUFFIX); \
+ else \
+ true ; \
+ fi
+
+ !GROK!THIS!
+
+ cat >>Makefile <<'!NO!SUBS!'
# The following are no-ops
lint:
clean:
***************
*** 231,236 ****
--- 255,262 ----
$(SED) $(SUBS) < prlong.1 > prlong.1.subs
elmregister.1.subs: elmregister.1
$(SED) $(SUBS) < elmregister.1 > elmregister.1.subs
+ elmlibregister.1.subs: elmlibregister.1
+ $(SED) $(SUBS) < elmlibregister.1 > elmlibregister.1.subs


formatted_pages: catman $(FORMATTED_PAGES_LIST)
***************
*** 313,318 ****
--- 339,347 ----
$(MAN)/elmregister$(MANEXT): elmregister.1.subs
$(REG) copy -m 444 $? $@

+ $(MAN)/elmlibregister$(MANEXT): elmlibregister.1.subs
+ $(REG) copy -m 444 $? $@
+

$(MAN)/wnewmail$(MANEXT): $(MAN)/newmail$(MANEXT)
$(REG) link $? $@
***************
*** 400,405 ****
--- 429,437 ----
$(CATMAN)/elmregister$(CATMANEXT)$(SUFFIX): catman/elmregister$(CATMANEXT)$(SUFFIX)
$(REG) copy -m 444 $? $@

+ $(CATMAN)/elmlibregister$(CATMANEXT)$(SUFFIX): catman/elmlibregister$(CATMANEXT)$(SUFFIX)
+ $(REG) copy -m 444 $? $@
+
# Dependencies and rules for making catman pages
catman/answer$(CATMANEXT)$(SUFFIX): answer.1.subs
$(MANROFF) $(MANROFF_OPTS) -man $? > catman/answer$(CATMANEXT)
***************
*** 573,578 ****
--- 605,619 ----
true ; \
fi

+ catman/elmlibregister$(CATMANEXT)$(SUFFIX): elmlibregister.1.subs
+ $(MANROFF) $(MANROFF_OPTS) -man $? > catman/elmlibregister$(CATMANEXT)
+ @if $(TEST) "$(PACKED)" = y ; then \
+ $(RM) $@ ; \
+ $(PACKER) catman/elmlibregister$(CATMANEXT) ; \
+ else \
+ true ; \
+ fi
+
# Dependencies and rules for formatting guides
documentation: $(FORMATTED_LIST)

Index: elm2.4.ME+.102cvs/hdrs/elmlib.h
*** elm2.4.ME+.101/hdrs/elmlib.h 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/hdrs/elmlib.h 2003-05-25 14:19:57.000000000 +0300
***************
*** 1,7 ****
! /* $Id: elmlib.h,v 1.186 2003/03/17 16:04:00 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.186 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! /* $Id: elmlib.h,v 1.188 2003/05/25 11:19:57 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.188 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 1091,1097 ****
SESSIONLOCK_REOPEN = 1,
SESSIONLOCK_TRUNCATE = 2,
SESSIONLOCK_CHECK = 3,
! SESSIONLOCK_NONE = 4};

typedef struct folder_type * folder_type_p;

--- 1091,1100 ----
SESSIONLOCK_REOPEN = 1,
SESSIONLOCK_TRUNCATE = 2,
SESSIONLOCK_CHECK = 3,
! SESSIONLOCK_NONE = 4,
! SESSIONLOCK_NONE_CHECKNEW = 0x80 + 4 /* not actually mode */
! };
!

typedef struct folder_type * folder_type_p;

***************
*** 1421,1426 ****
--- 1424,1431 ----
#endif

#ifdef USE_DLOPEN
+ extern void test_and_set_shared P_((char **argv,
+ int will_write)); /* For elmlibregister.c */
extern int use_sharedfunc P_((char **value, int enter));

extern void seed_rand_bits P_((const char *buf, int size,
Index: elm2.4.ME+.102cvs/hdrs/hdr_imp.h
*** elm2.4.ME+.101/hdrs/hdr_imp.h 2002-06-06 18:55:55.000000000 +0300
--- elm2.4.ME+.102cvs/hdrs/hdr_imp.h 2003-04-22 21:34:57.000000000 +0300
***************
*** 28,33 ****
--- 28,39 ----
int demime,
charset_t defcharset,
int replace));
+ int add_replyto_hdr P_((struct mailing_headers * headers,
+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));
int add_user_hdr P_((struct mailing_headers * headers,
header_ptr X,
const char *value,
Index: elm2.4.ME+.102cvs/hdrs/mbx_imp.h
*** elm2.4.ME+.101/hdrs/mbx_imp.h 2002-06-06 18:55:55.000000000 +0300
--- elm2.4.ME+.102cvs/hdrs/mbx_imp.h 2003-05-09 18:24:37.000000000 +0300
***************
*** 1,7 ****
! /* $Id: mbx_imp.h,v 1.61 2002/06/05 17:34:35 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.61 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! /* $Id: mbx_imp.h,v 1.62 2003/05/09 15:24:37 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.62 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 353,358 ****
--- 353,361 ----
FILE *fh_temp; /* current folder */
FILE *fh_folder; /* current folder */

+ #define FLAG1_CHECKNEW 0x01
+ int flags1; /* Set by sessionlock_folder() */
+
union {
struct SPOOL {
int lock_state;
Index: elm2.4.ME+.102cvs/hdrs/s_elmrc.h
*** elm2.4.ME+.101/hdrs/s_elmrc.h 2002-01-26 13:14:45.000000000 +0200
--- elm2.4.ME+.102cvs/hdrs/s_elmrc.h 2003-05-25 14:19:57.000000000 +0300
***************
*** 11,13 ****
--- 11,14 ----
#define ElmrcSavedAuto 0x9
#define ElmrcNoBothwI 0xa
#define ElmrcSavedAutoWrite 0xb
+ #define ElmrcSavedAutoLIB 0xc
Index: elm2.4.ME+.102cvs/hdrs/s_from.h
*** elm2.4.ME+.101/hdrs/s_from.h 2002-01-26 13:14:45.000000000 +0200
--- elm2.4.ME+.102cvs/hdrs/s_from.h 2003-05-09 19:13:44.000000000 +0300
***************
*** 7,14 ****
#define FromCouldntExpandFilename 0x5
#define FromNotRegularFile 0x6
#define FromNoMail 0x7
! #define FromCouldntOpenFolder 0x8
! #define FromCouldntOpenFolderPlural 0x9
#define FromStringNoMail 0xa
#define FromNoMesgInFolder 0xb
#define FromNoExplainMail 0xc
--- 7,14 ----
#define FromCouldntExpandFilename 0x5
#define FromNotRegularFile 0x6
#define FromNoMail 0x7
! #define FromCouldntOpenX 0x8
! #define FromCouldntOpenFolderOrMailbox 0x9
#define FromStringNoMail 0xa
#define FromNoMesgInFolder 0xb
#define FromNoExplainMail 0xc
***************
*** 38,40 ****
--- 38,43 ----
#define FromReadOrUnread 0x24
#define FromUnknown 0x25
#define FromArgsIngoringDebug 0x26
+ #define FromNotMailbox 0x27
+ #define FromNoMesgInMailbox 0x28
+ #define FromNoExplainMessagesMbox 0x29
Index: elm2.4.ME+.102cvs/hdrs/s_me.h
*** elm2.4.ME+.101/hdrs/s_me.h 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/hdrs/s_me.h 2003-05-25 14:19:57.000000000 +0300
***************
*** 315,317 ****
--- 315,321 ----
#define MeMailcapRunningOK 0x14f
#define MeUnknownTerminalFlag 0x150
#define MeFailLink 0x151
+ #define MeLibraryRegistered 0x152
+ #define MeLibraryUnRegistered 0x153
+ #define MeLibraryAvailable 0x154
+ #define MeLibraryUnavailable 0x155
Index: elm2.4.ME+.102cvs/lib/charset.c
*** elm2.4.ME+.101/lib/charset.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/charset.c 2003-05-17 19:13:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: charset.c,v 1.70 2002/11/10 11:25:31 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.70 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: charset.c,v 1.71 2003/05/17 16:13:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.71 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 985,990 ****
--- 985,991 ----
new_vals.MIBenum = 0;
}

+ free(val); val = NULL;

} else if (0 == strcmp(opt,"MIME-subset")) {
reallocation_needed = 1;
Index: elm2.4.ME+.102cvs/lib/cs_iso2022.c
*** elm2.4.ME+.101/lib/cs_iso2022.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/cs_iso2022.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: cs_iso2022.c,v 1.31 2002/07/29 17:34:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.31 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: cs_iso2022.c,v 1.32 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.32 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 2185,2191 ****

if (-1 != x) {
struct iso2022_setid ID;
- int setnum;
char *c = NULL;

if (x < 0 ||
--- 2185,2190 ----
***************
*** 2205,2211 ****
"Bad initial_bank (bank number)",
0);

! setnum=set_initial_bank(&c,ID,output_state,NULL,0,0);

if (c) {
int l = strlen(c);
--- 2204,2210 ----
"Bad initial_bank (bank number)",
0);

! set_initial_bank(&c,ID,output_state,NULL,0,0);

if (c) {
int l = strlen(c);
***************
*** 2282,2288 ****
int char_added = 0;

if (*need_reset) {
- int i;

RESET_ROUTINE(ret,len,alloced,output_state,iso2022_info);

--- 2281,2286 ----
Index: elm2.4.ME+.102cvs/lib/debug.c
*** elm2.4.ME+.101/lib/debug.c 2002-06-06 18:55:56.000000000 +0300
--- elm2.4.ME+.102cvs/lib/debug.c 2003-05-17 19:13:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: debug.c,v 1.18 2002/06/01 12:58:16 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.18 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: debug.c,v 1.19 2003/05/17 16:13:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.19 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 134,139 ****
--- 134,141 ----
char * match_filename = NULL;
struct class_level_pair C;

+ struct class_level_pair *tmp1;
+
DEBUG_VAR(temp,__FILE__,"");

char * ptr;
***************
*** 208,219 ****

if (home[0])
init_debug(X);
! debug_list = X;
}

! X->match = safe_realloc(X->match,
! (1 + X->match_count) * sizeof (X->match[0]));
! X->match[X->match_count++] = C;

if (!debug_list)
atexit(close_all);
--- 210,237 ----

if (home[0])
init_debug(X);
!
!
! debug_list = X;
}

!
! /* safe_realloc() calls DPRINT and therefore may refere X->match
! before it is assigned .. so we do not use safe_realloc()
! on here ... */
!
! tmp1 = realloc(X->match,
! (1 + X->match_count) * sizeof (X->match[0]));
!
! if (tmp1) {
! X->match = tmp1;
! X->match[X->match_count++] = C;
! } else {
! debug_action_call(&temp,
! "Can't alloc memory for class %s at debug level %d (size %d)\n",
! C.class,C.level,
! (1 + X->match_count) * sizeof (X->match[0]));
! }

if (!debug_list)
atexit(close_all);
Index: elm2.4.ME+.102cvs/lib/expand.c
*** elm2.4.ME+.101/lib/expand.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/lib/expand.c 2003-04-12 11:16:23.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: expand.c,v 1.15 2003/02/17 17:36:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.15 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: expand.c,v 1.16 2003/04/12 08:16:23 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.16 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 87,93 ****
int len, p;
char envname_buf[SLEN];

! if ((len = strcspn(src, "/")) == 0)
len = strlen(src);
src += len;
strnfcpy(envname_buf, envname_front, len,
--- 87,93 ----
int len, p;
char envname_buf[SLEN];

! if ((len = strcspn(src, "/@")) == 0)
len = strlen(src);
src += len;
strnfcpy(envname_buf, envname_front, len,
Index: elm2.4.ME+.102cvs/lib/getaddr.c
*** elm2.4.ME+.101/lib/getaddr.c 2002-01-26 13:14:45.000000000 +0200
--- elm2.4.ME+.102cvs/lib/getaddr.c 2003-05-17 19:13:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: getaddr.c,v 1.19 2001/06/06 18:08:59 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.19 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: getaddr.c,v 1.20 2003/05/17 16:13:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.20 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 672,682 ****
free(ptr->addr);
ptr->addr = NULL;

! free(ptr->fullname);
! ptr->fullname = NULL;

! free(ptr->comment);
! ptr->comment = NULL;
}
free(list);
}
--- 672,680 ----
free(ptr->addr);
ptr->addr = NULL;

! free_string(& (ptr->fullname));

! free_string (& (ptr->comment));
}
free(list);
}
Index: elm2.4.ME+.102cvs/lib/hdrdecode.c
*** elm2.4.ME+.101/lib/hdrdecode.c 2002-01-26 13:14:46.000000000 +0200
--- elm2.4.ME+.102cvs/lib/hdrdecode.c 2003-05-17 19:13:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: hdrdecode.c,v 1.10 2001/08/25 11:56:56 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: hdrdecode.c,v 1.11 2003/05/17 16:13:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.11 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 280,285 ****
--- 280,286 ----
/* Now compine strings */
newresult = cat_strings(ret,ok,1);
free_string(&ret);
+ free_string(&ok);
ret = newresult;


***************
*** 352,357 ****
--- 353,359 ----
/* Now compine strings */
newresult = cat_strings(ret,ok,1);
free_string(&ret);
+ free_string(&ok);
ret = newresult;

last_char = 0;
***************
*** 416,421 ****
--- 418,424 ----
/* Now compine strings */
newresult = cat_strings(ret,ok,1);
free_string(&ret);
+ free_string(&ok);
ret = newresult;

if (nostore) {
Index: elm2.4.ME+.102cvs/lib/headers.c
*** elm2.4.ME+.101/lib/headers.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/headers.c 2003-04-22 21:34:57.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: headers.c,v 1.22 2002/12/10 20:11:17 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.22 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: headers.c,v 1.24 2003/04/22 18:34:57 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.24 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 416,422 ****
{ "Comments", hdr_decode_from_text, no_add_to_mail_hdr },
{ "Return-path", hdr_decode_from_comment, add_env_from_hdr },
{ "Received", hdr_decode_from_comment, no_add_to_mail_hdr },
! { "Reply-To", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "From", hdr_decode_from_addr, add_from_hdr },
{ "Sender", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Resent-Reply-To", hdr_decode_from_addr, no_add_to_mail_hdr },
--- 416,422 ----
{ "Comments", hdr_decode_from_text, no_add_to_mail_hdr },
{ "Return-path", hdr_decode_from_comment, add_env_from_hdr },
{ "Received", hdr_decode_from_comment, no_add_to_mail_hdr },
! { "Reply-To", hdr_decode_from_addr, add_replyto_hdr },
{ "From", hdr_decode_from_addr, add_from_hdr },
{ "Sender", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Resent-Reply-To", hdr_decode_from_addr, no_add_to_mail_hdr },
***************
*** 473,481 ****
{ "Sensitivity", hdr_decode_from_comment, no_add_to_mail_hdr },

/* Our non-standard headers */
! { "X-ELM-OSV", hdr_decode_from_comment },
! { "X-Mailer", hdr_decode_from_text },
! { "Content-Name", hdr_decode_from_text },

/* Tailer */
{ NULL, hdr_decode_from_raw, no_add_to_mail_hdr }
--- 473,481 ----
{ "Sensitivity", hdr_decode_from_comment, no_add_to_mail_hdr },

/* Our non-standard headers */
! { "X-ELM-OSV", hdr_decode_from_comment, no_add_to_mail_hdr },
! { "X-Mailer", hdr_decode_from_text, no_add_to_mail_hdr },
! { "Content-Name", hdr_decode_from_text, no_add_to_mail_hdr },

/* Tailer */
{ NULL, hdr_decode_from_raw, no_add_to_mail_hdr }
Index: elm2.4.ME+.102cvs/lib/imap.c
*** elm2.4.ME+.101/lib/imap.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/imap.c 2003-05-17 19:13:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: imap.c,v 1.97 2002/11/30 20:34:51 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.97 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: imap.c,v 1.99 2003/05/17 16:13:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.99 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 4862,4867 ****
--- 4862,4868 ----

folder -> p->fh_temp = NULL;
folder -> p->fh_folder = NULL;
+ folder ->p->flags1 = 0;

folder -> p->a.imap_mbx.Ch = create_connection(&IMAP_connection);
folder -> p->a.imap_mbx.Ch->f = folder; /* Back link */
***************
*** 5699,5706 ****
"mbx_copy_envelope_imap: real_from() failed with generated separator line: %s\n",
tmp));

! if (data)
! free(data);
data = NULL;

goto clean;
--- 5700,5706 ----
"mbx_copy_envelope_imap: real_from() failed with generated separator line: %s\n",
tmp));

! free(data);
data = NULL;

goto clean;
***************
*** 5716,5729 ****
if (!mbx_copy_line_to_temp(folder,data,l)) {
status = 0;

! if (data)
! free(data);
data = NULL;

goto clean;
}
read_state_ptr -> fbytes += l;
read_state_ptr -> linecounter++;
}

read_state_ptr->a.imap_mbx.data_idx = 0;
--- 5716,5731 ----
if (!mbx_copy_line_to_temp(folder,data,l)) {
status = 0;

! free(data);
data = NULL;

goto clean;
}
read_state_ptr -> fbytes += l;
read_state_ptr -> linecounter++;
+
+ free(data);
+ data = NULL;
}

read_state_ptr->a.imap_mbx.data_idx = 0;
***************
*** 5795,5800 ****
--- 5797,5803 ----
memcpy(*buffer,
ref->header + read_state_ptr->a.imap_mbx.data_idx,
*len);
+ (*buffer)[*len] = '\0';

DPRINT(Debug,65,(&Debug,
"imap_got_header_line=1: len=%d, buffer=%.*s",
***************
*** 5928,5933 ****
--- 5931,5942 ----
}

hide:
+ if (buffer1) {
+ DPRINT(Debug,11,(&Debug, " ... Freeing buffer1=%s\n",buffer1));
+ free(buffer1);
+ buffer1 = NULL;
+ }
+
if (!imap_got_header_line(folder,read_state_ptr,&buffer1,&len1,ref)) {
status = 0;
goto clean;
Index: elm2.4.ME+.102cvs/lib/iso2022.c
*** elm2.4.ME+.101/lib/iso2022.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/iso2022.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: iso2022.c,v 1.20 2002/07/29 09:00:39 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.20 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: iso2022.c,v 1.21 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.21 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 1827,1833 ****
left_right = 1;

if (left_right >= 0) {
- enum iso2022_bank bank = bank_unspecified;

for (i= 0; iso2022_banks[i].keyword; i++)
if (0 == strcmp(iso2022_banks[i].keyword,value))
--- 1827,1832 ----
Index: elm2.4.ME+.102cvs/lib/localmbx.c
*** elm2.4.ME+.101/lib/localmbx.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/localmbx.c 2003-05-11 23:42:43.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: localmbx.c,v 1.57 2002/12/11 17:58:05 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.57 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: localmbx.c,v 1.59 2003/05/11 20:42:43 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.59 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
***************
*** 2036,2041 ****
--- 2036,2043 ----

folder ->p->fh_temp = NULL;
folder ->p->fh_folder = NULL;
+ folder ->p->flags1 = 0;
+
}

static void mbx_init_spool P_((struct folder_info *folder));
***************
*** 2055,2060 ****
--- 2057,2063 ----
bzero((void *)folder -> p,sizeof (struct private_data));
folder ->p->fh_temp = NULL;
folder ->p->fh_folder = NULL;
+ folder ->p->flags1 = 0;

folder -> p -> a.spool.lock_state = OFF;
#ifdef USE_DOTLOCK_LOCKING
***************
*** 3156,3180 ****
read_state_ptr -> linecounter = 0; /* Linecounter of current
message */
entry->offset = read_state_ptr -> fbytes; /* Offset of current message */
- entry->status = VISIBLE | UNREAD; /* Default status of message */

! switch(def_folder_status) {
! case FOLDER_STATUS_READ:
! entry->status = VISIBLE;
! break;
! case FOLDER_STATUS_OLD:
! entry->status = VISIBLE | UNREAD;
! break;
! case FOLDER_STATUS_NEW:
! entry->status = VISIBLE | NEW | UNREAD;
! break;
! default:
! DPRINT(Debug,1,(&Debug,
! "default-folder-status=%d BAD\n",
! def_folder_status));
}
- DPRINT(Debug,11,(&Debug, " status=%x -- def_folder_status=%d\n",
- entry->status,entry->status));

if (!mbx_read_buffered_line(folder,read_state_ptr,
&buffer,&len)) {
--- 3159,3192 ----
read_state_ptr -> linecounter = 0; /* Linecounter of current
message */
entry->offset = read_state_ptr -> fbytes; /* Offset of current message */

!
! if ( FLAG1_CHECKNEW & folder -> p -> flags1 ) {
! /* Really treat as mailbox and not as folder ... */
! entry->status = VISIBLE | NEW | UNREAD; /* Default status of message */
!
! } else {
!
! entry->status = VISIBLE | UNREAD; /* Default status of message */
!
! switch(def_folder_status) {
! case FOLDER_STATUS_READ:
! entry->status = VISIBLE;
! break;
! case FOLDER_STATUS_OLD:
! entry->status = VISIBLE | UNREAD;
! break;
! case FOLDER_STATUS_NEW:
! entry->status = VISIBLE | NEW | UNREAD;
! break;
! default:
! DPRINT(Debug,1,(&Debug,
! "default-folder-status=%d BAD\n",
! def_folder_status));
! }
! DPRINT(Debug,11,(&Debug, " status=%x -- def_folder_status=%d\n",
! entry->status,entry->status));
}

if (!mbx_read_buffered_line(folder,read_state_ptr,
&buffer,&len)) {
Index: elm2.4.ME+.102cvs/lib/mbox.c
*** elm2.4.ME+.101/lib/mbox.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/mbox.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mbox.c,v 1.43 2002/12/08 14:30:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.43 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mbox.c,v 1.46 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.46 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
***************
*** 874,879 ****
--- 874,883 ----
new_folder -> folder_type->init_it(new_folder);
}

+ /* HACK */
+ if (new_folder->p)
+ new_folder->p->flags1 = 0;
+
#if 0
DPRINT(Debug,1,(&Debug,
"New folder %s type %s temp file %s (%s)\n",
***************
*** 991,996 ****
--- 995,1020 ----
folder,folder->cur_folder_sys,folder -> folder_type,
folder->folder_type->type_name));

+ /* HACK */
+
+ if (folder->p)
+ folder->p->flags1 = 0;
+
+ switch (mode) {
+ case SESSIONLOCK_NONE_CHECKNEW:
+
+ if (folder->p)
+ folder->p->flags1 |= FLAG1_CHECKNEW;
+ else {
+ DPRINT(Debug,10,(&Debug,
+ "sessionlock_folder: SESSIONLOCK_NONE_CHECKNEW unsupported\n"));
+
+ }
+
+ mode = SESSIONLOCK_NONE;
+ break;
+ }
+
ret = folder->folder_type->sessionlock_it(folder,mode);

DPRINT(Debug,10,(&Debug,
***************
*** 1342,1348 ****


if (status > 0) {
! header_list_ptr parsed_headers;

DPRINT(Debug,12,(&Debug,
"prepare_message_access: hdr %ld body %ld\n",
--- 1366,1372 ----


if (status > 0) {
! header_list_ptr parsed_headers = NULL;

DPRINT(Debug,12,(&Debug,
"prepare_message_access: hdr %ld body %ld\n",
***************
*** 1356,1362 ****
DPRINT(Debug,10,(&Debug,
"prepare_message_access: parse_header callback failed (%d)\n",
status));
! goto fail2;
}

status = parse_body(folder,read_state_ptr,entry,parsed_headers,counter);
--- 1380,1386 ----
DPRINT(Debug,10,(&Debug,
"prepare_message_access: parse_header callback failed (%d)\n",
status));
! goto fail3;
}

status = parse_body(folder,read_state_ptr,entry,parsed_headers,counter);
***************
*** 1365,1370 ****
--- 1389,1398 ----
"prepare_message_access: parse_body callback failed (%d)\n",
status));
}
+ fail3:
+ if (parsed_headers) {
+ delete_headers(&parsed_headers);
+ }
}
fail2:

Index: elm2.4.ME+.102cvs/lib/outheaders.c
*** elm2.4.ME+.101/lib/outheaders.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/outheaders.c 2003-04-22 21:34:57.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: outheaders.c,v 1.10 2002/07/04 15:40:37 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: outheaders.c,v 1.11 2003/04/22 18:34:57 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.11 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 401,406 ****
--- 401,442 ----
}

#ifdef ANSI_C
+ hdr_add_to_mailing_hdr add_replyto_hdr;
+ #endif
+ int add_replyto_hdr(headers,X,value,demime,defcharset,replace)
+ struct mailing_headers * headers;
+ header_ptr X;
+ CONST char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int j;
+
+ struct addr_item * TMP;
+
+ TMP = break_down_address(value,demime,defcharset);
+
+ if (replace)
+ free_expanded_address(&(headers->reply_to));
+
+ for (j = 0; TMP[j].addr && TMP[j].fullname; j++) {
+ int pos = add_expanded_addr_(&(headers->reply_to),
+ TMP[j].addr,
+ TMP[j].fullname,
+ TMP[j].comment);
+ struct string *s = make_surface_addr(TMP[j]);
+ add_textual_addr_(&(headers->reply_to),s,pos,1);
+ free_string(&s);
+ }
+
+ free_addr_items(TMP);
+
+ return 1;
+ }
+
+
+ #ifdef ANSI_C
hdr_add_to_mailing_hdr add_env_from_hdr;
#endif
int add_env_from_hdr(headers,X,value,demime,defcharset,replace)
Index: elm2.4.ME+.102cvs/lib/pop.c
*** elm2.4.ME+.101/lib/pop.c 2002-06-06 18:55:57.000000000 +0300
--- elm2.4.ME+.102cvs/lib/pop.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: pop.c,v 1.42 2002/06/01 12:58:17 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.42 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: pop.c,v 1.44 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.44 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 887,892 ****
--- 887,893 ----

folder ->p->fh_temp = NULL;
folder ->p->fh_folder = NULL;
+ folder ->p->flags1 = 0;

zero_remote_account(&(folder -> p->a.pop_mbx.C));

***************
*** 2530,2536 ****
int i;
for (i = 0; i < rs->a.pop_mbx.rfc822_size_count; i++)
rs->a.pop_mbx.rfc822_size_vector[i] = -1;
! rs->a.pop_mbx.uidl_vector = NULL;
}
rs->a.pop_mbx.rfc822_size_count = 0;
}
--- 2531,2538 ----
int i;
for (i = 0; i < rs->a.pop_mbx.rfc822_size_count; i++)
rs->a.pop_mbx.rfc822_size_vector[i] = -1;
! free(rs->a.pop_mbx.rfc822_size_vector);
! rs->a.pop_mbx.rfc822_size_vector = NULL;
}
rs->a.pop_mbx.rfc822_size_count = 0;
}
Index: elm2.4.ME+.102cvs/lib/rc_handle.c
*** elm2.4.ME+.101/lib/rc_handle.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/rc_handle.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: rc_handle.c,v 1.11 2002/12/08 14:30:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.11 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
****************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: rc_handle.c,v 1.12 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.12 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
****************************************************************************
***************
*** 1127,1133 ****
fieldname,val,recursive));
}

! for (p = val; (*p || start_val) && !quit_flag; p++) {
char * value = NULL;

/* Quarantee that we do not advance bast of \0 */
--- 1127,1133 ----
fieldname,val,recursive));
}

! for (p = val; !quit_flag && (*p || start_val); p++) {
char * value = NULL;

/* Quarantee that we do not advance bast of \0 */
Index: elm2.4.ME+.102cvs/lib/read_rc.c
*** elm2.4.ME+.101/lib/read_rc.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/lib/read_rc.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: read_rc.c,v 1.114 2003/03/19 17:48:00 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.114 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: read_rc.c,v 1.115 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.115 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
***************
*** 112,118 ****
int clear_pages = 0; /* flag: act like "page" (more -c)? */
int title_messages = 1; /* flag: title message display? */

! nl_catd elm_msg_cat = 0; /* message catalog */

char username[SLEN] = {0}; /* return address name! */
char home[SLEN] = {0}; /* home directory of user */
--- 112,122 ----
int clear_pages = 0; /* flag: act like "page" (more -c)? */
int title_messages = 1; /* flag: title message display? */

! nl_catd elm_msg_cat = 0; /* message catalog */
! /* WARNING: Elm's version uses 0 as failure
! System uses (nl_catd) -1 as failure !
! */
!

char username[SLEN] = {0}; /* return address name! */
char home[SLEN] = {0}; /* home directory of user */
***************
*** 398,431 ****
static int locale_error = 0;

void locale_init () {
-
#ifdef I_LOCALE
! char *res;

! if (setlocale(LC_ALL, "") == NULL) {
! lib_error(FRM("Elm: Unsupported locale (check $LANG)\n"));
! if (setlocale(LC_CTYPE,"") != NULL) {
! lib_error(FRM("Elm: ... but succeed setting of LC_CTYPE\n"));
! } else {
! lib_error(FRM("Elm: ... check also $LC_CTYPE\n"));
! }
! locale_error = 1;
! }
#endif

! elm_msg_cat = catopen("elm2.4me+", 0);

#ifdef I_LOCALE
! res = setlocale(LC_CTYPE,NULL);
! if (!res) {
! lib_error(FRM("Elm: Unable to get current locale (LC_CTYPE)\n"));
! locale_error = 1;
! } else
! strfcpy(display_locale,res, sizeof display_locale);
#endif

#ifdef HAVE_CODESET
! res = nl_langinfo(CODESET);

if (!res) {
lib_error(FRM("Elm: Unable to get CODESET for current locale\n"));
--- 402,452 ----
static int locale_error = 0;

void locale_init () {
#ifdef I_LOCALE
! char *res;
! #endif
!
! DPRINT(Debug,9,(&Debug,
! "locale_init: called = %d\n",
! locale_init_called));
!
! #ifdef I_LOCALE

! if (setlocale(LC_ALL, "") == NULL) {
! lib_error(FRM("Elm: Unsupported locale (check $LANG)\n"));
! if (setlocale(LC_CTYPE,"") != NULL) {
! lib_error(FRM("Elm: ... but succeed setting of LC_CTYPE\n"));
! } else {
! lib_error(FRM("Elm: ... check also $LC_CTYPE\n"));
! }
! locale_error = 1;
! }
#endif
+
+ /* WARNING: Elm's version uses 0 as failure
+ * System uses (nl_catd) -1 as failure !
+ */

!
! elm_msg_cat = catopen("elm2.4me+", 0);
! if (0 == elm_msg_cat ||
! (nl_catd) -1 == elm_msg_cat) {
! DPRINT(Debug,9,(&Debug,
! "locale_init: catopen elm2.4me+ failed\n"));
! }
! /* NOTE: elm_msg_cat 'leaks' on end of program ... */

#ifdef I_LOCALE
! res = setlocale(LC_CTYPE,NULL);
! if (!res) {
! lib_error(FRM("Elm: Unable to get current locale (LC_CTYPE)\n"));
! locale_error = 1;
! } else
! strfcpy(display_locale,res, sizeof display_locale);
#endif

#ifdef HAVE_CODESET
! res = nl_langinfo(CODESET);

if (!res) {
lib_error(FRM("Elm: Unable to get CODESET for current locale\n"));
Index: elm2.4.ME+.102cvs/lib/safemalloc.c
*** elm2.4.ME+.101/lib/safemalloc.c 2002-01-26 13:14:46.000000000 +0200
--- elm2.4.ME+.102cvs/lib/safemalloc.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: safemalloc.c,v 1.9 2001/06/14 18:25:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.9 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: safemalloc.c,v 1.11 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.11 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 90,97 ****
void safe_free(x)
malloc_t x;
{
- int i;
- char *p = x;
DPRINT(Debug,100,(&Debug,
"(safe)free(%p) ",x));

--- 90,95 ----
***************
*** 101,112 ****
"** FREE OF NULL POINTER\n"));
}

- for (i = 0; i < 30 && p && p[i]; i++) {
- DPRINT(Debug,100,(&Debug,
- "%c",
- isascii(p[i]) && isprint(p[i]) ? p[i] : '?'));
- }
-
free(x);
DPRINT(Debug,100,(&Debug,
"\n"));
--- 99,104 ----
Index: elm2.4.ME+.102cvs/lib/savefolder.c
*** elm2.4.ME+.101/lib/savefolder.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/lib/savefolder.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: savefolder.c,v 1.71 2003/02/28 10:48:14 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.71 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: savefolder.c,v 1.72 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.72 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
***************
*** 2231,2236 ****
--- 2231,2239 ----
{
(*dir)->type->browser_free_it(*dir);
clear_dir_vector(*dir);
+
+ if ((*dir)->selection)
+ clear_dir_selection(*dir);

if ((*dir)->dirname)
free_string(&((*dir)->dirname));
Index: elm2.4.ME+.102cvs/lib/service_list.c
*** elm2.4.ME+.101/lib/service_list.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/service_list.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: service_list.c,v 1.22 2002/06/30 13:52:06 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.22 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: service_list.c,v 1.23 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.23 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 910,915 ****
--- 910,918 ----
free((*Y)->option_list);
(*Y)->option_list = NULL;
(*Y)->option_count = 0;
+
+ /* Temporary entry is malloced ... */
+ free(*Y);
}
/* If not temporary, we assume that this entry is on list
and therefore that does not produce dangling pointer
Index: elm2.4.ME+.102cvs/lib/shared.c
*** elm2.4.ME+.101/lib/shared.c 2002-06-06 18:55:58.000000000 +0300
--- elm2.4.ME+.102cvs/lib/shared.c 2003-05-27 21:54:13.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: shared.c,v 1.42 2002/04/01 17:09:47 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.42 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: shared.c,v 1.47 2003/05/27 18:54:13 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.47 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 778,783 ****
--- 778,853 ----
return ret;
}

+ /* For elmlibregister.c -- if argv is NULL only check current list */
+ void test_and_set_shared (argv, will_write)
+ char **argv;
+ int will_write;
+ {
+ int i;
+
+ /* 1) Load current libraries */
+
+ load_shared_libs();
+
+ if (argv) {
+
+ /* 2) Test explicity argument list ....
+ */
+
+ int j;
+
+ for (j = 0; argv[j]; j++) {
+ struct ImpInfo * I;
+ int idx;
+
+ if (!tag_ok(argv[j])) {
+ lib_error(CATGETS(elm_msg_cat, MeSet,
+ MeInvalidUseLib,
+ "use-library: %s: Invalid name"),
+ argv[j]);
+ continue;
+ }
+
+ I = give_impinfo(argv[j]);
+ idx = I - use_library_list;
+
+ /* Assume valid */
+ use_library_list[idx].valid = 1;
+ load_code(idx); /* Test validity */
+
+ if (use_library_list[idx].valid) {
+ if (will_write)
+ lib_error(CATGETS(elm_msg_cat, MeSet,
+ MeLibraryRegistered,
+ "Library %s registered"),
+ argv[j]);
+ else
+ lib_error(CATGETS(elm_msg_cat, MeSet,
+ MeLibraryAvailable,
+ "Library %s is available"),
+ argv[j]);
+ }
+ }
+ }
+
+ for (i = 0; i < use_library_list_count; i++) {
+ if (!use_library_list[i].valid) {
+ if (will_write)
+ lib_error(CATGETS(elm_msg_cat, MeSet,
+ MeLibraryUnRegistered,
+ "Library %s unregistered"),
+ use_library_list[i].tag);
+ else
+ lib_error(CATGETS(elm_msg_cat, MeSet,
+ MeLibraryUnavailable,
+ "Library %s is unavailable"),
+ use_library_list[i].tag);
+
+
+ }
+ }
+ }
+
struct POP_capa_libs {
char * capa;
char * capa_args;
***************
*** 1147,1152 ****
--- 1217,1230 ----
int * imap_capa_libcount;
{
if (*imap_capa_libs) {
+ int i;
+
+ for (i = 0; i < *imap_capa_libcount; i++) {
+ if ((*imap_capa_libs)[i].capa) {
+ free((*imap_capa_libs)[i].capa);
+ (*imap_capa_libs)[i].capa = NULL;
+ }
+ }
free(*imap_capa_libs);
*imap_capa_libs = NULL;
*imap_capa_libcount = 0;
***************
*** 1323,1328 ****
--- 1401,1410 ----
fprintf(F,"%s:\n",
use_library_list[i].tag);

+ DPRINT(Debug,8,(&Debug, " -- library %s -- %d options\n",
+ use_library_list[i].tag,
+ use_library_list[i].rc_option_count));
+
for (x = 0; x < use_library_list[i].rc_option_count; x++) {
int local_value;

***************
*** 1353,1363 ****
local_value =
use_library_list[i].rc_options[x].flags & FL_LOCAL;

! if (!valid_rc_type(use_library_list[i].rc_options[x].dt_type))
panic("RC PANIC",__FILE__,__LINE__,
"print_local_shared_options",
"Bad config item type",0);
!
use_library_list[i].
rc_options[x].dt_type->
print_value(F,
--- 1435,1452 ----
local_value =
use_library_list[i].rc_options[x].flags & FL_LOCAL;

! if (!valid_rc_type(use_library_list[i].rc_options[x].dt_type)) {
! DPRINT(Debug,1,(&Debug,
! "shlib/option %d -- \"%s\" BAD, flags=%0x (library=%s)\n",
! x,use_library_list[i].rc_options[x].name,
! save_info[x].flags,
! use_library_list[i].tag
! ));
!
panic("RC PANIC",__FILE__,__LINE__,
"print_local_shared_options",
"Bad config item type",0);
! }
use_library_list[i].
rc_options[x].dt_type->
print_value(F,
Index: elm2.4.ME+.102cvs/lib/streamsched.c
*** elm2.4.ME+.101/lib/streamsched.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/lib/streamsched.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.28 2002/12/10 20:11:17 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.28 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.29 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.29 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 180,185 ****
--- 180,190 ----
close(ss->this_stack[stack_idx].simple->socket);
ss->this_stack[stack_idx].simple->socket = -1;
}
+
+ ss->this_stack[stack_idx].simple->type = NULL;
+
+ free(ss->this_stack[stack_idx].simple);
+ ss->this_stack[stack_idx].simple = NULL;
}

static int ss_StreamNoAction P_((struct streamsched *ss, int stack_idx));
Index: elm2.4.ME+.102cvs/lib/terminal.c
*** elm2.4.ME+.101/lib/terminal.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/lib/terminal.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: terminal.c,v 1.35 2003/02/16 18:30:21 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.35 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: terminal.c,v 1.36 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.36 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 1423,1431 ****


if (-1 != x) {
- int n;
struct iso2022_setid ID;
- char * c = NULL;

if (x < 0 ||
x >= sizeof (iso2022_info->sets) /
--- 1423,1429 ----
***************
*** 1444,1450 ****
"Bad initial_bank (bank number)",
0);

! n = set_initial_bank(&ret,ID,terminal_info,NULL,0,0);

}
}
--- 1442,1448 ----
"Bad initial_bank (bank number)",
0);

! set_initial_bank(&ret,ID,terminal_info,NULL,0,0);

}
}
***************
*** 1573,1579 ****
int size;
int maybe_signal;
{
- int i;
int setpos = -1;

if (ID.bank < 0 || ID.bank >= ISO2022_BANK_NUM)
--- 1571,1576 ----
Index: elm2.4.ME+.102cvs/Makefile-1.SH
*** elm2.4.ME+.101/Makefile-1.SH 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/Makefile-1.SH 2003-05-25 14:19:57.000000000 +0300
***************
*** 27,33 ****
echo "Extracting Makefile-1 (with variable substitutions)"
cat >Makefile-1 <<!GROK!THIS!
#!$make
! # $Id: Makefile-1.SH,v 1.3 2003/03/17 18:55:52 hurtta Exp $
#
#
# Makefile for the ELM (ME+) mail program.
--- 27,33 ----
echo "Extracting Makefile-1 (with variable substitutions)"
cat >Makefile-1 <<!GROK!THIS!
#!$make
! # $Id: Makefile-1.SH,v 1.4 2003/05/25 11:19:57 hurtta Exp $
#
#
# Makefile for the ELM (ME+) mail program.
***************
*** 55,61 ****
uninstall_s:
$(REG) rm $(LOCALETARG) $(LIB)/elm.map.bin/unidata.bin

! install_s: $(LIB) $(ETC) $(STAGE) $(ETC)/elm.rc $(LOCALETARG) $(LIB)/elm.map.bin/unidata.bin

$(ETC)/elm.rc: $(LIB)/elmrc-write doc/elmrc-info
$(REG) {$(LIB)/elmrc-write} -G -I -C {doc/elmrc-info}
--- 55,62 ----
uninstall_s:
$(REG) rm $(LOCALETARG) $(LIB)/elm.map.bin/unidata.bin

! install_s: $(LIB) $(ETC) $(STAGE) $(ETC)/elm.rc $(LOCALETARG) \
! $(LIB)/elm.map.bin/unidata.bin libreg

$(ETC)/elm.rc: $(LIB)/elmrc-write doc/elmrc-info
$(REG) {$(LIB)/elmrc-write} -G -I -C {doc/elmrc-info}
***************
*** 90,93 ****
$(STAGEP):
$(REG) mkdir $(STAGEP)

! !NO!SUBS!
\ No newline at end of file
--- 91,120 ----
$(STAGEP):
$(REG) mkdir $(STAGEP)

! !NO!SUBS!
!
!
! case "$d_dlopen_libs" in
! define)
! aa=
! if $test "$shared_register" != none ; then
! aa="$shared_register"
! fi
! cat >>Makefile-1 <<!SUBS!
!
! # Register new libraries and unregister removed libraries
! # Also libraries which are not loadable are unregistered
! libreg:
! \$(REG) {\$(LIB)/elmlibregister} -G -I $aa
! !SUBS!
!
! ;;
! *)
!
! cat >>Makefile-1 <<'!NO!SUBS!'
!
! !NO!SUBS!
! libreg:
!
! ;;
! esac
Index: elm2.4.ME+.102cvs/Makefile.SH
*** elm2.4.ME+.101/Makefile.SH 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/Makefile.SH 2003-05-18 09:52:49.000000000 +0300
***************
*** 21,27 ****
echo "Extracting Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.14 2003/03/17 11:36:20 hurtta Exp $
#
# Makefile for the entire ELM mail system
#
--- 21,27 ----
echo "Extracting Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.16 2003/05/18 06:52:49 hurtta Exp $
#
# Makefile for the entire ELM mail system
#
***************
*** 72,77 ****
--- 72,86 ----
uninstall: config.h config.sh installer
bin/elmregister master $(MAKE) $(MJ) $(MFLAGS) uninstall_s

+ # Helper target for testing
+ install_libs: config.h config.sh hdrs/sysdefs.h Makefile installer all
+ bin/elmregister master $(MAKE) $(MJ) $(MFLAGS) install_libs_s
+ bin/elmregister replay
+
+ install_libs_s: config.h config.sh hdrs/sysdefs.h
+ cd lib; $(MAKE) $(MJ) $(MFLAGS) install_s
+ cd shared_libs; $(MAKE) $(MJ) $(MFLAGS) install_s
+
# Targets that are simply executed in each subordinate makefile as is
all install_s uninstall_s lint clean: config.h config.sh hdrs/sysdefs.h Makefile
cd lib; $(MAKE) $(MJ) $(MFLAGS) $@
Index: elm2.4.ME+.102cvs/MANIFEST
*** elm2.4.ME+.101/MANIFEST 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/MANIFEST 2003-05-25 16:57:44.000000000 +0300
***************
*** 352,354 ****
--- 352,357 ----
utils/reghelper.c
hdrs/reghelper.h
doc/elmregister.1
+ utils/elmlibregister.c
+ doc/elmlibregister.1
+ doc/elmlibregister.1
Index: elm2.4.ME+.102cvs/melib/mailcap.c
*** elm2.4.ME+.101/melib/mailcap.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/melib/mailcap.c 2003-05-25 19:06:46.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mailcap.c,v 1.4 2003/03/18 20:20:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.4 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mailcap.c,v 1.8 2003/05/25 16:06:46 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.8 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 60,67 ****

struct agv1 {
enum arg_type { mv_literal,
! mv_filename, mv_type, mv_parameter } type;
!

struct arg {
int arg_len;
--- 60,68 ----

struct agv1 {
enum arg_type { mv_literal,
! mv_filename, mv_type, mv_parameter,
! mv_environ /* Environment variable inside of " */
! } type;

struct arg {
int arg_len;
***************
*** 620,625 ****
--- 621,656 ----
switch (entry_state) {
case mcES_arg:

+ if (mv_environ == arg_type) {
+
+ if(isascii(c) && isalpha(c)) {
+ /* OK */
+
+ } else if ('/' == c ||
+ '"' == c ||
+ ' ' == c ||
+ '\t' == c) {
+
+ /* Variable terminated ...
+ let next condition check it ...
+ */
+
+ arg_type = mv_literal;
+ add_mailcap_vector(vector,vector_count,arg_type,-1);
+
+ } else {
+
+ DPRINT(Debug,2,(&Debug,
+ "mailcap %s, line %d -- character %c unsupported on $\n",
+ mailcaps[mailcap_idx],
+ linenum,c));
+
+ entry_state = mcES_error;
+ break;
+
+ }
+
+ }

if (mv_literal == arg_type) {
/* Check unsupported characters --
***************
*** 630,645 ****

case '\'':

! if ( 0 == is_shell_quoted)
! is_shell_quoted = '\'';
! else if ( '\'' == is_shell_quoted)
is_shell_quoted = 0;

/* Quarantee that there is argument -- even when
'' was given
*/
add_mailcap_vector(vector,vector_count,arg_type,-1);
! break;

case '"':

--- 661,676 ----

case '\'':

! if ( 0 == is_shell_quoted)
! is_shell_quoted = '\'';
! else if ( '\'' == is_shell_quoted)
is_shell_quoted = 0;

/* Quarantee that there is argument -- even when
'' was given
*/
add_mailcap_vector(vector,vector_count,arg_type,-1);
! goto out_1; /* DO not add quote to string */

case '"':

***************
*** 652,659 ****
"" was given
*/
add_mailcap_vector(vector,vector_count,arg_type,-1);
! break;
!

case '#':
case '&':
--- 683,689 ----
"" was given
*/
add_mailcap_vector(vector,vector_count,arg_type,-1);
! goto out_1; /* DO not add quote to string */

case '#':
case '&':
***************
*** 676,681 ****
--- 706,740 ----
break; /* WAS OK */

case '$':
+
+ if ('"' == is_shell_quoted) {
+ /* variables inside of " are OK */
+
+ c = getc(F);
+
+ if (isascii(c) && isalpha(c)) {
+
+ arg_type = mv_environ;
+ add_mailcap_vector(vector,vector_count,arg_type,
+ -1);
+
+ /* c is added later */
+
+ break; /* OK */
+ } else {
+ DPRINT(Debug,2,(&Debug,
+ "mailcap %s, line %d -- shell special $%c unsupported\n",
+ mailcaps[mailcap_idx],
+ linenum,c));
+
+ entry_state = mcES_error;
+ break;
+ }
+
+ }
+
+
+
case '`':


***************
*** 706,711 ****
--- 765,773 ----
} else
add_mailcap_vector(vector,vector_count,
arg_type,c);
+
+ out_1:
+
break;

case mcES_keyword:
***************
*** 774,780 ****
if (mcES_error == entry_state) {
unsupported++;
} else if (mcES_arg == entry_state &&
! mv_literal == arg_type &&
is_shell_quoted) {
DPRINT(Debug,2,(&Debug,
"mailcap %s, line %d -- Shell quote %c not terminated before ;",
--- 836,844 ----
if (mcES_error == entry_state) {
unsupported++;
} else if (mcES_arg == entry_state &&
! (mv_literal == arg_type ||
! mv_environ == arg_type)
! &&
is_shell_quoted) {
DPRINT(Debug,2,(&Debug,
"mailcap %s, line %d -- Shell quote %c not terminated before ;",
***************
*** 879,884 ****
--- 943,950 ----
arg_free(&string);
free_mailcap_vector(&vector,&vector_count);

+ fclose(F);
+
}

mailcaps_readed = 1;
***************
*** 911,916 ****
--- 977,983 ----
switch(subvector[i].type) {
int tmp,l,l2;
CONST char *ma, *mi;
+ char *e;
char buffer[STRING];

case mv_literal:
***************
*** 922,927 ****
--- 989,1012 ----
ret[retlen] = '\0';
break;

+ case mv_environ:
+ e = getenv(subvector[i].arg.arg);
+ if (!e) {
+ DPRINT(Debug,12,(&Debug,
+ "make_mailcap_arg: Environ variable $%s not found, treating as \"\"\n",
+ subvector[i].arg.arg));
+ e = "";
+ }
+ l = strlen(e);
+
+ tmp = retlen + l;
+ ret = safe_realloc(ret,tmp+1);
+
+ memcpy(ret+retlen,e,l);
+ retlen = tmp;
+ ret[retlen] = '\0';
+ break;
+
case mv_filename:

if (fn_seen)
***************
*** 1108,1125 ****
*/


! /* This block is probably no required... */
! rewind(file_handle);
#ifdef _POSIX_VERSION
/* Synzronize underlying file descriptor */
! fflush(file_handle);
#else
! seek(fileno(file_handle),0,0);
#endif

! r = start_run(&RS,flags,argv,
! fn_seen && x->needsterminal ? -1 : fileno(file_handle),
! -1);

if (!r) {
if (raw)
--- 1193,1214 ----
*/


!
! if (file_handle) {
! /* This block is probably no required... */
! rewind(file_handle);
#ifdef _POSIX_VERSION
/* Synzronize underlying file descriptor */
! fflush(file_handle);
#else
! seek(fileno(file_handle),0,0);
#endif

! r = start_run(&RS,flags,argv,
! fn_seen && x->needsterminal ? -1 : fileno(file_handle),
! -1);
! } else
! r = start_run(&RS,flags,argv,-1,-1);

if (!r) {
if (raw)
Index: elm2.4.ME+.102cvs/melib/mime_decode.c
*** elm2.4.ME+.101/melib/mime_decode.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/melib/mime_decode.c 2003-04-25 23:25:40.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mime_decode.c,v 1.52 2002/12/08 14:30:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.52 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mime_decode.c,v 1.53 2003/04/25 20:25:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.53 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 309,318 ****
if (astext && *p == '\r')
store_ch = *p;
else {
if (*p == '\n' && astext && s_out->EOLN_is_CRLF)
state_putc('\r',s_out);

! state_putc(*p,s_out);
}
if (*p == '\n') {
nl = TRUE;
--- 309,321 ----
if (astext && *p == '\r')
store_ch = *p;
else {
+ unsigned char ch;
+
if (*p == '\n' && astext && s_out->EOLN_is_CRLF)
state_putc('\r',s_out);

! ch = *p;
! state_putc(ch,s_out);
}
if (*p == '\n') {
nl = TRUE;
Index: elm2.4.ME+.102cvs/melib/mime_parse.c
*** elm2.4.ME+.101/melib/mime_parse.c 2002-12-15 12:00:25.000000000 +0200
--- elm2.4.ME+.102cvs/melib/mime_parse.c 2003-05-09 08:57:38.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mime_parse.c,v 1.37 2002/12/08 14:30:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.37 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mime_parse.c,v 1.38 2003/05/09 05:57:38 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.38 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 421,427 ****
trg->parser_data = NULL;
trg->handler_data = NULL;

! copy_parser_data(& (trg->parser_data), src->parser_data);

if (src->description) {
trg->description = dup_string(src->description);
--- 421,434 ----
trg->parser_data = NULL;
trg->handler_data = NULL;

! if (src->parser_data) {
! copy_parser_data(& (trg->parser_data), src->parser_data);
! } else {
! DPRINT(Debug,3,(&Debug,
! "mime_t_copy(src=%p,trg=%p): src->parser_data == NULL !\n",trg,src));
!
! }
!

if (src->description) {
trg->description = dup_string(src->description);
Index: elm2.4.ME+.102cvs/melib/mpar_leaf.c
*** elm2.4.ME+.101/melib/mpar_leaf.c 2002-03-20 09:04:48.000000000 +0200
--- elm2.4.ME+.102cvs/melib/mpar_leaf.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mpar_leaf.c,v 1.3 2002/03/19 17:18:07 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.3 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mpar_leaf.c,v 1.4 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.4 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 10,16 ****
--- 10,18 ----
#include "melib.h"
#include "mpar_imp.h"

+ #if 0
DEBUG_VAR(Debug,__FILE__,"mime");
+ #endif

#if ANSI_C
#define S_(x) static x;
Index: elm2.4.ME+.102cvs/melib/parse_util.c
*** elm2.4.ME+.101/melib/parse_util.c 2002-06-06 18:55:59.000000000 +0300
--- elm2.4.ME+.102cvs/melib/parse_util.c 2003-05-17 19:13:41.000000000 +0300
***************
*** 1,8 ****
! static char rcsid[] = "@(#)$Id: parse_util.c,v 1.20 2002/04/01 17:09:47 hurtta Exp $";


/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.20 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,8 ----
! static char rcsid[] = "@(#)$Id: parse_util.c,v 1.21 2003/05/17 16:13:41 hurtta Exp $";


/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.21 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 246,251 ****
--- 246,252 ----
*/
state_nlputs("\n",s);
}
+ free_string(&buffer);
}

void state_write_headers(s,hdr,filter,flag,demime,defcharset)
Index: elm2.4.ME+.102cvs/nls/C/C/C/s_elmrc.m
*** elm2.4.ME+.101/nls/C/C/C/s_elmrc.m 2002-01-26 13:14:46.000000000 +0200
--- elm2.4.ME+.102cvs/nls/C/C/C/s_elmrc.m 2003-05-25 14:19:57.000000000 +0300
***************
*** 21,23 ****
--- 21,25 ----
10 Can't specify both -w and -I options!
$ #SavedAutoWrite
11 # Saved automatically by ELMRC-WRITE %s\n#\n\n
+ $ #SavedAutoLIB
+ 12 # Saved automatically by ELMLIBREGISTER %s\n#\n\n
Index: elm2.4.ME+.102cvs/nls/C/C/C/s_from.m
*** elm2.4.ME+.101/nls/C/C/C/s_from.m 2002-01-26 13:14:46.000000000 +0200
--- elm2.4.ME+.102cvs/nls/C/C/C/s_from.m 2003-05-09 19:13:44.000000000 +0300
***************
*** 13,22 ****
6 "%s" is not a regular file!\n
$ #NoMail
7 No mail.\n
! $ #CouldntOpenFolder
! 8 Couldn't open folder "%s".\n
! $ #CouldntOpenFolderPlural
! 9 Couldn't open folders "%s" or "%s".\n
$ #StringNoMail
10 %s no mail.\n
$ #NoMesgInFolder
--- 13,22 ----
6 "%s" is not a regular file!\n
$ #NoMail
7 No mail.\n
! $ #CouldntOpenX
! 8 Couldn't open %s "%s".\n
! $ #CouldntOpenFolderOrMailbox
! 9 Couldn't open folder "%s" or mailbox "%s".\n
$ #StringNoMail
10 %s no mail.\n
$ #NoMesgInFolder
***************
*** 88,90 ****
--- 88,96 ----
37 unknown
$ #ArgsIngoringDebug
38 Warning: system created without debugging enabled - request ignored\n
+ $ #NotMailbox
+ 39 WARNING: %s is folder, not mailbox!\n Delivery of new mail to folder when it is open may corrupt it
+ $ #NoMesgInMailbox
+ 40 No messages in that mailbox!\n
+ $ #NoExplainMessagesMbox
+ 41 No %s messages in that mailbox.\n
Index: elm2.4.ME+.102cvs/nls/C/C/C/s_me.m
*** elm2.4.ME+.101/nls/C/C/C/s_me.m 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/nls/C/C/C/s_me.m 2003-05-25 14:19:57.000000000 +0300
***************
*** 635,637 ****
--- 635,645 ----
336 Unknown terminal flag %s (file %s)
$ #FailLink
337 Failed to link %s to %s
+ $ #LibraryRegistered
+ 338 Library %s registered
+ $ #LibraryUnRegistered
+ 339 Library %s unregistered
+ $ #LibraryAvailable
+ 340 Library %s is available
+ $ #LibraryUnavailable
+ 341 Library %s is unavailable
Index: elm2.4.ME+.102cvs/shared_libs/smtp/smtp.c
*** elm2.4.ME+.101/shared_libs/smtp/smtp.c 2002-12-15 12:00:26.000000000 +0200
--- elm2.4.ME+.102cvs/shared_libs/smtp/smtp.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: smtp.c,v 1.39 2002/11/10 11:25:31 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.39 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: smtp.c,v 1.40 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.40 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 1110,1120 ****
--- 1110,1125 ----
lib_error(FRM("Connection to %s server failed"),
((*C)->head->p.p1->SMTP_flags & SMTP_submission) ?
"Submission" : "SMTP");
+
+ free(from); from = NULL;
+
free_mail_send_state(C);
return 0; /* FAIL */
}
smtp_command_reset((*C)->head->p.p1);

+ free(from); from = NULL;
+
if ((*C)->addrs) {
int i;
int fail = 0;
Index: elm2.4.ME+.102cvs/src/addr_util.c
*** elm2.4.ME+.101/src/addr_util.c 2002-06-06 18:55:59.000000000 +0300
--- elm2.4.ME+.102cvs/src/addr_util.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: addr_util.c,v 1.35 2002/06/06 07:46:33 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.35 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: addr_util.c,v 1.36 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.36 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 458,464 ****
expanded->addrs[ptr->pos].comment);
ADD_TEXTUAL(result,temp,pos,1);

! free(temp);
} else {
DPRINT(Debug,1,
(&Debug,
--- 458,464 ----
expanded->addrs[ptr->pos].comment);
ADD_TEXTUAL(result,temp,pos,1);

! free_string(&temp);
} else {
DPRINT(Debug,1,
(&Debug,
Index: elm2.4.ME+.102cvs/src/attach_menu.c
*** elm2.4.ME+.101/src/attach_menu.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/src/attach_menu.c 2003-05-09 08:57:38.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: attach_menu.c,v 1.49 2003/02/28 09:08:19 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.49 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: attach_menu.c,v 1.50 2003/05/09 05:57:38 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.50 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 1896,1912 ****
goto out;


! if (col + strlen(Encoding) +3 >= Width)
! goto out;

! x = Width - strlen(Encoding) -3;
! while (col < x) {
! Writechar(' ');
! col++;
}

- PutLine0(row, x, Encoding);
-
out:
if (is_cur && has_highlighting && ! arrow_cursor)
EndInverse();
--- 1896,1916 ----
goto out;


! if (col + strlen(Encoding) +3 >= Width) {
! if (Width-col-7 < 1)
! goto out;
! PutLineX(row, col+1, FRM("%.*s..."),
! Width-col-7,Encoding);
! } else {
! x = Width - strlen(Encoding) -3;
! while (col < x) {
! Writechar(' ');
! col++;
! }

! PutLine0(row, x, Encoding);
}

out:
if (is_cur && has_highlighting && ! arrow_cursor)
EndInverse();
Index: elm2.4.ME+.102cvs/src/builtin++.c
*** elm2.4.ME+.101/src/builtin++.c 2002-06-06 18:55:59.000000000 +0300
--- elm2.4.ME+.102cvs/src/builtin++.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: builtin++.c,v 1.17 2002/06/01 12:58:18 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.17 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: builtin++.c,v 1.18 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.18 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************
*** 118,123 ****
--- 118,124 ----

/* Current line for outputting and position on it ... */
struct string * buffer = NULL;
+ int ret = '\0';
int X = 0;
struct string * search_pattern = NULL; /* Last seach string */

***************
*** 368,374 ****
case '+':
case PAGEDOWN_MARK:
if (is_end) {
! return (' ');
}
break;
case HOME_MARK:
--- 369,376 ----
case '+':
case PAGEDOWN_MARK:
if (is_end) {
! ret = ' ';
! goto finish;
}
break;
case HOME_MARK:
***************
*** 522,530 ****
quit:
case EOF:
default:
! return (ch == 'q' || ch == 'x' ? 0 : ch);
}
}
}


--- 524,540 ----
quit:
case EOF:
default:
! ret = (ch == 'q' || ch == 'x' ? 0 : ch);
! goto finish;
}
}
+
+ finish:
+ if (buffer)
+ free_string (&buffer);
+ DPRINT(Debug,9,(&Debug,
+ "builtin++ returning %c\n",ret));
+ return ret;
}


Index: elm2.4.ME+.102cvs/src/elm.c
*** elm2.4.ME+.101/src/elm.c 2002-06-06 18:56:00.000000000 +0300
--- elm2.4.ME+.102cvs/src/elm.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: elm.c,v 1.42 2002/04/01 17:09:48 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.42 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: elm.c,v 1.43 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.43 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 106,111 ****
--- 106,126 ----

#if DEBUG
init_debugfile("ELM");
+
+ /* HACK ....
+ uSER may want enable debug output for locale_init()
+
+ This gives wrong result if some options value start
+ with "-d"
+ */
+
+ for (i = 1; i < argc; i++) {
+ if ('-' == argv[i][0] &&
+ 'd' == argv[i][1] &&
+ argv[i][2]) {
+ set_debugging(& (argv[i][2]));
+ }
+ }
#endif

locale_init();
Index: elm2.4.ME+.102cvs/src/fileio.c
*** elm2.4.ME+.101/src/fileio.c 2002-06-06 18:56:00.000000000 +0300
--- elm2.4.ME+.102cvs/src/fileio.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: fileio.c,v 1.49 2002/06/01 12:58:18 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.49 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: fileio.c,v 1.50 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.50 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 1327,1336 ****
--- 1327,1343 ----
}

}
+
+ if (all_headers)
+ delete_headers(&all_headers);
+
return 1;

fail:

+ if (all_headers)
+ delete_headers(&all_headers);
+
return 0;

}
Index: elm2.4.ME+.102cvs/src/hdrconfg.c
*** elm2.4.ME+.101/src/hdrconfg.c 2002-12-15 12:00:26.000000000 +0200
--- elm2.4.ME+.102cvs/src/hdrconfg.c 2003-04-09 17:22:17.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: hdrconfg.c,v 1.25 2002/11/30 20:34:51 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.25 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: hdrconfg.c,v 1.27 2003/04/09 14:22:17 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.27 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 1245,1251 ****
}

free_it:
! free(ptr);
return ret_val;
}

--- 1245,1251 ----
}

free_it:
! free_string(ptr);
return ret_val;
}

***************
*** 1407,1413 ****
}

free_it:
! free(ptr);
return ret_val;
}

--- 1407,1413 ----
}

free_it:
! free_string(ptr);
return ret_val;
}

***************
*** 1704,1710 ****
}

free_it:
! free(ptr);
return ret_val;
}

--- 1704,1710 ----
}

free_it:
! free_string(ptr);
return ret_val;
}

Index: elm2.4.ME+.102cvs/src/in_utils.c
*** elm2.4.ME+.101/src/in_utils.c 2002-12-15 12:00:26.000000000 +0200
--- elm2.4.ME+.102cvs/src/in_utils.c 2003-05-17 19:13:42.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: in_utils.c,v 1.23 2002/12/08 14:30:43 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.23 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: in_utils.c,v 1.24 2003/05/17 16:13:42 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.24 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 911,916 ****
--- 911,917 ----
}
if (str) {
strfcpy(string,str,size);
+ free(str); str = NULL;
} else
string[0] = '\0';

***************
*** 918,923 ****
--- 919,928 ----
"optionally_enter=%d string=%s\n",
ret,string));

+
+ if (buffer)
+ free_string(&buffer);
+
return(ret);
}

Index: elm2.4.ME+.102cvs/src/newmbox.c
*** elm2.4.ME+.101/src/newmbox.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/src/newmbox.c 2003-05-09 15:46:58.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: newmbox.c,v 1.66 2003/02/16 14:50:38 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.66 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: newmbox.c,v 1.67 2003/05/09 12:46:58 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.67 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 836,841 ****
--- 836,842 ----
#else
sleep(5);
#endif
+ Raw_OFF(1); /* Raw(OFF) and reprint error message */
leave(0);
}

Index: elm2.4.ME+.102cvs/src/showmsg.c
*** elm2.4.ME+.101/src/showmsg.c 2002-12-15 12:00:26.000000000 +0200
--- elm2.4.ME+.102cvs/src/showmsg.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: showmsg.c,v 1.23 2002/12/08 14:30:43 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.23 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: showmsg.c,v 1.25 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.25 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 225,232 ****


if (q >= list_len) {
- int i;
- int x = 0;

PutLineX(elm_LINES-1,1,
CATGETS(elm_msg_cat, ElmSet, ElmMailcapQuit,
--- 225,230 ----
***************
*** 370,375 ****
--- 368,382 ----
failure:

if (list) {
+ int i;
+
+ for (i = 0; i < list_len; i++) {
+ if (list[i].printable_command) {
+ free(list[i].printable_command);
+ list[i].printable_command = NULL;
+ }
+ }
+
free(list);
list = NULL;
}
Index: elm2.4.ME+.102cvs/utils/elmlibregister.c
*** /tmp/2329-very-long-file-name-NULL-comes-in-here 2003-05-28 21:40:26.000000000 +0300
--- elm2.4.ME+.102cvs/utils/elmlibregister.c 2003-05-25 14:19:57.000000000 +0300
***************
*** 0 ****
--- 1,404 ----
+ static char rcsid[] = "@(#)$Id: elmlibregister.c,v 1.2 2003/05/25 11:19:57 hurtta Exp $";
+
+ /******************************************************************************
+ * The Elm (ME+) Mail System - $Revision: 1.2 $ $State: Exp $
+ *
+ * Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
+ *****************************************************************************
+ * Some code based on ../src/save_optc.c
+ * That code was following copyright:
+ *
+ * The Elm Mail System
+ *
+ * Copyright (c) 1988-1992 USENET Community Trust
+ * Copyright (c) 1986,1987 Dave Taylor
+ *****************************************************************************/
+
+ #include "elmutil.h"
+ #include "s_me.h"
+ #include "s_elm.h"
+ #include "s_elmrc.h"
+
+ #include "rc_imp.h"
+ #include "save_opts.h"
+
+ #include "reghelper.h"
+
+ DEBUG_VAR(Debug,__FILE__,"util");
+
+ extern char *optarg;
+ extern int optind;
+
+ int register_fd = -1;
+ char * program_name = "elmrc-write";
+
+ int main(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ int err = 0;
+ int global = 0;
+ int c;
+ int write_default = 0;
+ char * targetfile = NULL;
+ FILE * commentfile = NULL;
+
+ int x;
+
+ #if DEBUG
+ init_debugfile("ELMLIBREGISTER");
+ #endif
+ locale_init();
+
+ REGHELPER_INIT(argv[0]);
+
+ while ((c = getopt(argc, argv, "GId:w:C:")) != EOF) {
+
+ switch(c) {
+ case 'G':
+ global++;
+ break;
+
+ case 'I':
+ write_default++;
+ break;
+
+ case 'd':
+ #if DEBUG
+ set_debugging(optarg);
+ #else
+ lib_error(CATGETS(elm_msg_cat, ElmSet, ElmArgsIngoringDebug,
+ "Warning: system created without debugging enabled - request ignored\n"));
+ #endif
+ break;
+
+ case 'w' :
+ targetfile = optarg;
+ if (0 != access(targetfile,WRITE_ACCESS)) {
+ int errcode = errno;
+
+ if (errcode != ENOENT) {
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotWriteable,
+ "File %.50s is not writeable: %s"),
+ targetfile, error_description(errcode));
+ err++;
+ goto fail;
+ }
+ }
+ break;
+
+ case 'C':
+ if (0 != access(optarg,READ_ACCESS)) {
+ int errcode = errno;
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotReadable,
+ "File %.50s is not readable: %s"),
+ optarg, error_description(errcode));
+ err++;
+ goto fail;
+ }
+
+ commentfile = fopen(optarg,"r");
+ if (!commentfile) {
+ int errcode = errno;
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotReadable,
+ "File %.50s is not readable: %s"),
+ optarg, error_description(errcode));
+ err++;
+ goto fail;
+
+ }
+ break;
+
+ case '?':
+ err = 1;
+ goto fail;
+ }
+
+ }
+
+ user_init();
+ init_defaults();
+
+ elm_sfprintf(version_buff, sizeof version_buff,
+ FRM("%s PL%s"), VERSION, PATCHLEVEL);
+
+
+ #ifdef DEBUG
+ {
+ int d = panic_dprint("\n\
+ ======================================================\n\
+ Debug output of the ELMLIBREGISTER program (version %s).\n",
+ version_buff);
+
+ if (d >= 50) {
+ #if 0
+ panic_dprint("WARNING: Edit manually out sensitive information from that file!\n");
+
+ lower_prompt("WARNING: Debug file may include passwords -- edit it!");
+ error_sleep(5+sleepmsg);
+ #endif
+ }
+ }
+ #endif
+
+ if (!global)
+ read_rc_file(0);
+
+
+ if (optind < argc) {
+ test_and_set_shared(& argv[optind] , targetfile || write_default);
+ } else {
+ /* NO libraries .. only check current .... */
+ test_and_set_shared( NULL , targetfile || write_default);
+ }
+
+ for (x = 0; x < NUMBER_OF_SAVEABLE_OPTIONS; x++) {
+ if (0 == strcmp(save_info[x].name,"use-library"))
+ save_info[x].flags |= FL_CHANGED | FL_LOCAL;
+ }
+
+ if (!commentfile) {
+ commentfile = fopen(ELMRC_INFO,"r");
+ if (!commentfile)
+ lib_error(CATGETS(elm_msg_cat, ElmrcSet,
+ ElmrcSavingWithoutComments,
+ "Warning: saving without comments! Can't get to %s."),
+ ELMRC_INFO);
+ }
+
+ if (targetfile && write_default) {
+ lib_error(CATGETS(elm_msg_cat, ElmrcSet, ElmrcNoBothwI,
+ "Can't specify both -w and -I options!"));
+ err++;
+ goto fail;
+
+ }
+ if (write_default)
+ targetfile = global ? system_rc_file : user_rc_file;
+
+
+ if (targetfile) {
+ char * tmp = elm_message(FRM("%s.N"),targetfile);
+ int errcode = can_open(tmp,"w");
+ int x;
+ FILE *f;
+
+
+ if (errcode) {
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotWriteable,
+ "File %.50s is not writeable: %s"),
+ tmp, error_description(errcode));
+
+ err++;
+ free(tmp);
+ goto fail;
+ }
+ f = fopen(tmp,"w");
+ if (!f) {
+ int errcode = errno;
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotWriteable,
+ "File %.50s is not writeable: %s"),
+ tmp, error_description(errcode));
+
+ err++;
+ free(tmp);
+ goto fail;
+ }
+
+ elm_fprintf(f,
+ CATGETS(elm_msg_cat, ElmrcSet, ElmrcSavedAutoLIB,
+ "# Saved automatically by ELMLIBREGISTER %s\n#\n\n"),
+ version_buff);
+
+
+ if (commentfile) {
+ char line_buffer[SLEN];
+ int x;
+ int len;
+ int local_value;
+ int skip = 1;
+
+ while (0 < (len =
+ mail_gets(line_buffer, sizeof line_buffer,
+ commentfile))) {
+
+ int y = 0;
+
+
+ if (line_buffer[len-1] != '\n') {
+ DPRINT(Debug,1,(&Debug,
+ "Too long line (read len=%d): %s\n",
+ len,line_buffer));
+ break;
+ }
+ line_buffer[--len] = '\0';
+ if (0 == len)
+ continue;
+
+ if ('#' == line_buffer[0] || whitespace(line_buffer[0])) {
+
+ if (strncmp(line_buffer, "#$HDR", 5) == 0) {
+ skip = 0;
+ continue;
+ }
+
+ if (skip)
+ continue;
+
+ /* Copy initial comments */
+
+ fprintf(f,"%s\n",line_buffer);
+ continue;
+ }
+ skip = 1;
+
+
+ for (x = 0; x < NUMBER_OF_SAVEABLE_OPTIONS; x++) {
+ y = strcmp(line_buffer, save_info[x].name);
+ if (y <= 0)
+ break;
+ }
+
+ if (x >= NUMBER_OF_SAVEABLE_OPTIONS || y != 0) {
+
+ DPRINT(Debug,15,(&Debug,
+ "Skipping option %s ... \n",
+ line_buffer));
+
+ continue;
+ }
+
+ if (global &&
+ ! (save_info[x].flags & FL_CHANGED) &&
+ ! (save_info[x].flags & FL_SYS)) {
+ DPRINT(Debug,15,(&Debug,
+ "Skipping user option %s ... \n",
+ line_buffer));
+
+ continue;
+ }
+
+ if (!global &&
+ (save_info[x].flags & FL_SYS)) {
+ DPRINT(Debug,15,(&Debug,
+ "Skipping system option %s ... \n",
+ line_buffer));
+
+ continue;
+ }
+
+ fprintf(f,"\n");
+
+ /* Copy comments */
+ while (0 < (len =
+ mail_gets(line_buffer, sizeof line_buffer,
+ commentfile))) {
+ if ('#' != line_buffer[0])
+ break;
+ fputs(line_buffer,f);
+ }
+
+ if (global)
+ local_value = save_info[x].flags & FL_CHANGED;
+ else
+ local_value = save_info[x].flags & FL_LOCAL;
+ if (!valid_rc_type(save_info[x].dt_type))
+ panic("RC PANIC",__FILE__,__LINE__,"main",
+ "Bad config item type",0);
+
+ save_info[x].dt_type->print_value(f,
+ & save_info[x],
+ !local_value);
+
+
+ save_info[x].flags |= FL_SAVED;
+ }
+ }
+
+ for (x = 0; x < NUMBER_OF_SAVEABLE_OPTIONS; x++) {
+ int local_value;
+
+
+ if (save_info[x].flags & FL_SAVED)
+ continue;
+
+ if (global &&
+ ! (save_info[x].flags & FL_CHANGED) &&
+ ! (save_info[x].flags & FL_SYS)) {
+ DPRINT(Debug,15,(&Debug,
+ "Skipping user option %s ... \n",
+ save_info[x].name));
+
+ continue;
+ }
+
+ if (!global &&
+ (save_info[x].flags & FL_SYS)) {
+ DPRINT(Debug,15,(&Debug,
+ "Skipping system option %s ... \n",
+ save_info[x].name));
+
+ continue;
+ }
+
+ fprintf(f,"\n");
+
+ if (global)
+ local_value = save_info[x].flags & FL_CHANGED;
+ else
+ local_value = save_info[x].flags & FL_LOCAL;
+ if (!valid_rc_type(save_info[x].dt_type))
+ panic("RC PANIC",__FILE__,__LINE__,"main",
+ "Bad config item type",0);
+
+ save_info[x].dt_type->print_value(f,
+ & save_info[x],
+ !local_value);
+ }
+
+ print_local_shared_options(f,global);
+
+ if (EOF == fclose(f)) {
+ int errcode = errno;
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotWriteable,
+ "File %.50s is not writeable: %s"),
+ tmp, error_description(errcode));
+
+ err++;
+ free(tmp);
+ goto fail;
+ }
+ if (0 != rename(tmp,targetfile)) {
+ int errcode = errno;
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeFileNotRenamed,
+ "Failed to rename temporary file to %.50s: %.30s"),
+ targetfile, error_description(errcode));
+
+ err++;
+ free(tmp);
+ goto fail;
+ }
+
+ log_config(targetfile);
+
+ free(tmp);
+ }
+
+ fail:
+ if (commentfile)
+ fclose(commentfile);
+
+ if (err)
+ lib_error(CATGETS(elm_msg_cat, MeSet, MeProgFailed,
+ "%s failed; exit code=%d"),
+ argv[0],err);
+
+ return err;
+ }
+
+ /*
+ * Local Variables:
+ * mode:c
+ * c-basic-offset:4
+ * End:
+ */
Index: elm2.4.ME+.102cvs/utils/elmregister.c
*** elm2.4.ME+.101/utils/elmregister.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/utils/elmregister.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: elmregister.c,v 1.6 2003/03/17 18:42:25 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.6 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: elmregister.c,v 1.9 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.9 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 959,966 ****
char *argv[];
int x;
{
- char buffer[ MAX_PIPE_LOG];
- char *ptr;

int read_pipe;
int t;
--- 959,964 ----
***************
*** 1425,1431 ****
program_name,src,trg);

if (0 == mkdir(trg,0755)) {
- int r = 0;

fprintf(stderr,
"%s: Directory %s created\n",
--- 1423,1428 ----
***************
*** 1937,1943 ****

char buffer[ MAX_PIPE_LOG];
char *ptr;
- int n;

int j;

--- 1934,1939 ----
***************
*** 2012,2018 ****
0 == strcmp("link", argv[x])) {
char buffer[ MAX_PIPE_LOG];
char *ptr;
- int n;

char * translated [2];
char * relative [2];
--- 2008,2013 ----
***************
*** 2355,2361 ****

char buffer[ MAX_PIPE_LOG];
char *ptr;
- int n;

int L = 4;

--- 2350,2355 ----
***************
*** 2431,2437 ****
int *mode;
int *is_dir;
{
- int l;

struct passwd * p = NULL;
struct group * g = NULL;
--- 2425,2430 ----
***************
*** 2445,2452 ****
exit(1); /* FAILURE */
}

- l = strlen(ptr->arg_ptrs[0])+ L + 2;
-
*src = make_rooted(ptr,ptr->arg_ptrs[0],installer_root);

if (ptr->user_ptr && 0 != strcmp(ptr->user_ptr,"-")) {
--- 2438,2443 ----
***************
*** 2573,2579 ****
for (ptr = entry->log; ptr < entry->log + entry->log_count; ptr++) {

char * src = NULL;
- int l = 0;

uid_t id_user = (uid_t)-1;
gid_t id_group = (gid_t)-1;
--- 2564,2569 ----
***************
*** 2792,2803 ****
LI->entries[i].log_count; ptr++) {

switch (ptr->command_letter) {
- char *trg;

case '\0': /* ENTRY DELETED */
break;

case '{':
case 'F':
case 'C':
case 'M':
--- 2782,2793 ----
LI->entries[i].log_count; ptr++) {

switch (ptr->command_letter) {

case '\0': /* ENTRY DELETED */
break;

case '{':
+ case 's':
case 'F':
case 'C':
case 'M':
***************
*** 2825,2831 ****
case 'R':
/* remove ... */
break;
!
default:
fprintf(stderr,
"%s: [on_current] Bad command letter: %c \n",
--- 2815,2822 ----
case 'R':
/* remove ... */
break;
!
!
default:
fprintf(stderr,
"%s: [on_current] Bad command letter: %c \n",
***************
*** 2865,2871 ****
fprintf(stderr,
"%s: (%s) Keeping link %s from old version (was %s)\n",
program_name,source->filename,ptr->arg_ptrs[1],
! ptr->arg_ptrs[2]
);
continue;
}
--- 2856,2862 ----
fprintf(stderr,
"%s: (%s) Keeping link %s from old version (was %s)\n",
program_name,source->filename,ptr->arg_ptrs[1],
! ptr->arg_ptrs[0]
);
continue;
}
***************
*** 3254,3261 ****
char * src = NULL;
char * trg;

- int l = 0;
-
uid_t id_user = (uid_t)-1;
gid_t id_group = (gid_t)-1;
int mode;
--- 3245,3250 ----
***************
*** 3409,3415 ****
{
struct stat X;
struct log_instance * target = NULL;
! int j,i;
int r = 0;

struct log_instance LI_source;
--- 3398,3404 ----
{
struct stat X;
struct log_instance * target = NULL;
! int i;
int r = 0;

struct log_instance LI_source;
***************
*** 3498,3504 ****
}

if (0 != strcmp(installer_root,"/")) {
- char *X;
int i;
int t;

--- 3487,3492 ----
Index: elm2.4.ME+.102cvs/utils/from.c
*** elm2.4.ME+.101/utils/from.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/utils/from.c 2003-05-09 19:13:44.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: from.c,v 1.41 2003/03/17 16:04:00 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.41 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: from.c,v 1.45 2003/05/09 16:13:44 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.45 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************
*** 246,251 ****
--- 246,252 ----
struct folder_info *folder = NULL;
struct read_folder_state * read_state_ptr = NULL;
CONST char *msg;
+ enum sessionlock_mode m;

/* copy next argument into infile */

***************
*** 286,293 ****

if (access(infile,ACCESS_EXISTS) == -1) {
lib_error(CATGETS(elm_msg_cat,
! FromSet,FromCouldntOpenFolderPlural,
! "Couldn't open folders \"%s\" or \"%s\".\n"),
argv[optind], infile);
continue; /* let's try the next file */
}
--- 287,294 ----

if (access(infile,ACCESS_EXISTS) == -1) {
lib_error(CATGETS(elm_msg_cat,
! FromSet,FromCouldntOpenFolderOrMailbox,
! "Couldn't open folder \"%s\" or mailbox \"%s\".\n"),
argv[optind], infile);
continue; /* let's try the next file */
}
***************
*** 325,333 ****
if (!folder)
continue;

! if (!sessionlock_folder(folder,SESSIONLOCK_NONE)) {
! lib_error(CATGETS(elm_msg_cat,FromSet,FromCouldntOpenFolder,
! "Couldn't open folder \"%s\".\n"), infile);
goto clean;
}

--- 326,351 ----
if (!folder)
continue;

! m = SESSIONLOCK_NONE;
! if ((selct == NEW_MSG) &&
! FOLDER_FILE == get_folder_mode(folder) &&
! FOLDER_STATUS_NEW != def_folder_status) {
!
!
! lib_error(CATGETS(elm_msg_cat,
! FromSet,FromNotMailbox,
! "WARNING: %s is folder, not mailbox!\n Delivery of new mail to folder when it is open may corrupt it.\n"),
! infile);
!
!
! m = SESSIONLOCK_NONE_CHECKNEW;
! }
!
!
! if (!sessionlock_folder(folder,m)) {
! CONST char * X = folder_type(folder);
! lib_error(CATGETS(elm_msg_cat,FromSet,FromCouldntOpenX,
! "Couldn't open %s \"%s\".\n"), X,infile);
goto clean;
}

***************
*** 361,370 ****
"%s no mail.\n"),
whos_mail(infile, realname));
else
! if (!summarize)
! printf(catgets(elm_msg_cat,FromSet,
! FromNoMesgInFolder,
! "No messages in that folder!\n"));
}
else
/* no selected messages then? */
--- 379,395 ----
"%s no mail.\n"),
whos_mail(infile, realname));
else
! if (!summarize) {
! if (get_folder_mode(folder) & FOLDER_MBOX)
! printf(catgets(elm_msg_cat,FromSet,
! FromNoMesgInMailbox,
! "No messages in that mailbox!\n"));
!
! else
! printf(catgets(elm_msg_cat,FromSet,
! FromNoMesgInFolder,
! "No messages in that folder!\n"));
! }
}
else
/* no selected messages then? */
***************
*** 375,385 ****
whos_mail(infile, realname),
explain(selct,NEG));
else
! if (!summarize)
! printf(catgets(elm_msg_cat,
! FromSet,FromNoExplainMessages,
! "No %s messages in that folder.\n"),
! explain(selct,NEG));
}
else
/* there's mail, but we just want a one-liner */
--- 400,417 ----
whos_mail(infile, realname),
explain(selct,NEG));
else
! if (!summarize) {
! if (get_folder_mode(folder) & FOLDER_MBOX)
! printf(catgets(elm_msg_cat,
! FromSet,FromNoExplainMessagesMbox,
! "No %s messages in that mailbox.\n"),
! explain(selct,NEG));
! else
! printf(catgets(elm_msg_cat,
! FromSet,FromNoExplainMessages,
! "No %s messages in that folder.\n"),
! explain(selct,NEG));
! }
}
else
/* there's mail, but we just want a one-liner */
Index: elm2.4.ME+.102cvs/utils/Makefile.SH
*** elm2.4.ME+.101/utils/Makefile.SH 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/utils/Makefile.SH 2003-05-25 20:29:02.000000000 +0300
***************
*** 16,22 ****
echo "Extracting utils/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # @(#)$Id: Makefile.SH,v 1.29 2003/03/17 11:36:21 hurtta Exp $
#
# Makefile for the Elm system utilities
#
--- 16,22 ----
echo "Extracting utils/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # @(#)$Id: Makefile.SH,v 1.31 2003/05/25 17:29:02 hurtta Exp $
#
# Makefile for the Elm system utilities
#
***************
*** 59,66 ****
--- 59,82 ----
*) strobj="../lib/strstr.o"
;;
esac
+ case "$d_dlopen_libs" in
+ define) regshared="\$(BIN)/elmlibregister-shared"
+ regnoshared="\$(LIB)/elmlibregister"
+ regsharedbin="\$(BIN)/elmlibregister"
+ regsharedobj=elmlibregister.o
+ ;;
+ *) regshared=
+ regnoshared=
+ regsharedbin=
+ regsharedobj=
+ ;;
+ esac
cat >>Makefile <<!GROK!THIS!
STROBJ = $strobj
+ REGSHARED = $regshared
+ REGNOSHARED = $regnoshared
+ REGSHAREDBIN = $regsharedbin
+ REGSHAREDOBJ = $regsharedobj
!GROK!THIS!

if $test "$d_shared" = "$define" ; then
***************
*** 78,84 ****
$(BIN)/elmrc-write-shared \
$(BIN)/elmterminal-shared \
$(BIN)/elmunidata-shared \
! $(BIN)/elmstringconvert-shared

# NOTE: No shared version for elmregister!
!NO!SUBS!
--- 94,101 ----
$(BIN)/elmrc-write-shared \
$(BIN)/elmterminal-shared \
$(BIN)/elmunidata-shared \
! $(BIN)/elmstringconvert-shared \
! $(REGSHARED)

# NOTE: No shared version for elmregister!
!NO!SUBS!
***************
*** 122,128 ****
$(LIB)/elmterminal \
$(LIB)/elmunidata \
$(LIB)/elmregister \
! $(LIB)/elmuninstall


# List of programs in bin directory
--- 139,146 ----
$(LIB)/elmterminal \
$(LIB)/elmunidata \
$(LIB)/elmregister \
! $(LIB)/elmuninstall \
! $(REGNOSHARED)


# List of programs in bin directory
***************
*** 144,150 ****
$(BIN)/elmunidata \
$(BIN)/elmstringconvert \
$(BIN)/elmregister \
! $(SHLIST)

# List of programs to $(LINT) - only C programs
LINT_LIST = answer_lint \
--- 162,169 ----
$(BIN)/elmunidata \
$(BIN)/elmstringconvert \
$(BIN)/elmregister \
! $(REGSHAREDBIN) \
! $(SHLIST)

# List of programs to $(LINT) - only C programs
LINT_LIST = answer_lint \
***************
*** 170,176 ****
elmterminal.o \
elmunidata.o \
elmstringconvert.o \
! elmregister.o

# Lists of source and object files for each C program
ANSWER_SRC = answer.c
--- 189,196 ----
elmterminal.o \
elmunidata.o \
elmstringconvert.o \
! elmregister.o \
! $(REGSHAREDOBJ)

# Lists of source and object files for each C program
ANSWER_SRC = answer.c
***************
*** 199,205 ****
ELMUNIDATA_OBJ = elmunidata.o reghelper.o
ELMSCONV_SRC = elmstringconvert.c
ELMSCONV_OBJ = elmstringconvert.o
!

# Standard targets
all: objects $(BINARY_LIST)
--- 219,225 ----
ELMUNIDATA_OBJ = elmunidata.o reghelper.o
ELMSCONV_SRC = elmstringconvert.c
ELMSCONV_OBJ = elmstringconvert.o
! ELMLIBREG_OBJ = elmlibregister.o reghelper.o

# Standard targets
all: objects $(BINARY_LIST)
***************
*** 246,251 ****
--- 266,274 ----
elmstringconvert.o: $(INCLDIR)/elmutil.h $(INCLDIR)/s_me.h $(INCLDIR)/s_elm.h
elmregister.o: $(INCLDIR)/defs_major.h $(INCLDIR)/patchlevel.h $(INCLDIR)/reghelper.h
reghelper.o: $(INCLDIR)/defs_major.h $(INCLDIR)/patchlevel.h $(INCLDIR)/reghelper.h
+ elmlibregister.o: $(INCLDIR)/elmutil.h $(INCLDIR)/s_me.h $(INCLDIR)/s_elm.h \
+ $(INCLDIR)/rc_imp.h $(INCLDIR)/save_opts.h $(INCLDIR)/s_elmrc.h \
+ $(INCLDIR)/reghelper.h

checkalias: checkalias.SH ; sh $?
listalias: listalias.SH ; sh $?
***************
*** 323,329 ****
cd ../lib; $(MAKE) strstr.o

$(BIN)/elmregister: elmregister.o reghelper.o ../lib/putenv.o $(STROBJ)
! $(CC) $(LFLAGS) -o $@ elmregister.o reghelper.o ../lib/putenv.o $(STROBJ)

# Rules to make shell scripts in bin directory
$(BIN)/checkalias: checkalias
--- 346,355 ----
cd ../lib; $(MAKE) strstr.o

$(BIN)/elmregister: elmregister.o reghelper.o ../lib/putenv.o $(STROBJ)
! $(CC) $(LFLAGS) -o $@ elmregister.o reghelper.o \
! ../lib/putenv.o $(STROBJ)
! $(BIN)/elmlibregister: $(ELMLIBREG_OBJ) ../lib/libutil.a
! $(CC) $(LFLAGS) -o $@ $(ELMLIBREG_OBJ) ../lib/libutil.a $(LIB2)

# Rules to make shell scripts in bin directory
$(BIN)/checkalias: checkalias
***************
*** 423,434 ****
$(BIN)/prlong-shared: $(PRLONG_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(PRLONG_OBJ) ../shlib/libelmme-base.so $(LIB2)

! $(BIN)/elmcharset-shared: $(ELMCHARSET_OBJ) ../lib/libutil.a
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMCHARSET_OBJ) ../shlib/libelmme-base.so $(LIB2)

! $(BIN)/elmrc-write-shared: $(ELMRCWRITE_OBJ) ../lib/libutil.a
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMRCWRITE_OBJ) ../shlib/libelmme-base.so $(LIB2)

$(BIN)/elmterminal-shared: $(ELMTERMINAL_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMTERMINAL_OBJ) ../shlib/libelmme-base.so $(LIB2)

--- 449,463 ----
$(BIN)/prlong-shared: $(PRLONG_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(PRLONG_OBJ) ../shlib/libelmme-base.so $(LIB2)

! $(BIN)/elmcharset-shared: $(ELMCHARSET_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMCHARSET_OBJ) ../shlib/libelmme-base.so $(LIB2)

! $(BIN)/elmrc-write-shared: $(ELMRCWRITE_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMRCWRITE_OBJ) ../shlib/libelmme-base.so $(LIB2)

+ $(BIN)/elmlibregister-shared: $(ELMLIBREG_OBJ) ../shlib/libelmme-base.so
+ $(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMLIBREG_OBJ) ../shlib/libelmme-base.so $(LIB2)
+
$(BIN)/elmterminal-shared: $(ELMTERMINAL_OBJ) ../shlib/libelmme-base.so
$(CC) $(LFLAGS) -o $@ $(RPATH) $(ELMTERMINAL_OBJ) ../shlib/libelmme-base.so $(LIB2)

***************
*** 481,486 ****
--- 510,519 ----
$(LIB)/elmunidata: $(BIN)/elmunidata-shared
$(REG) copy -m 555 $? $@

+
+ $(LIB)/elmlibregister: $(BIN)/elmlibregister-shared
+ $(REG) copy -m 555 $? $@
+
!NO!SUBS!

else
***************
*** 523,528 ****
--- 556,564 ----
$(LIB)/elmrc-write: $(BIN)/elmrc-write
$(REG) copy -m 555 $? $@

+ $(LIB)/elmlibregister: $(BIN)/elmlibregister
+ $(REG) copy -m 555 $? $@
+
$(LIB)/elmterminal: $(BIN)/elmterminal
$(REG) copy -m 555 $? $@

Index: elm2.4.ME+.102cvs/utils/reghelper.c
*** elm2.4.ME+.101/utils/reghelper.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102cvs/utils/reghelper.c 2003-05-26 18:19:04.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: reghelper.c,v 1.2 2003/03/17 11:36:22 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.2 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----
! static char rcsid[] = "@(#)$Id: reghelper.c,v 1.3 2003/05/26 15:19:04 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.3 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************
*** 111,117 ****
int l_target = strlen(target_r);
int l_user = strlen(user);
int l_group = strlen(group);
- int n;

char buffer[ MAX_PIPE_LOG];
char *ptr;
--- 111,116 ----
***************
*** 165,171 ****
n = write(fd,buffer,L);

if (n < 0) {
- int err = errno;

if (EINTR == errno)
goto again;
--- 164,169 ----

Kari E. Hurtta

unread,
Jul 30, 2003, 5:59:33 AM7/30/03
to
Archive-name: elm2.4ME+/PL102a

Is available on ftp.ozone.FMI.FI
via anonymous ftp
directory KEH/

file elm-2.4ME+PL102a.patch.gz

Is available with
<URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+PL102a.patch.gz >
via WWW.

Is available with
<URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+PL102a.patch.gz >
via WWW.

For apply patch use command

patch -p1 < {path...}/elm-2.4ME+PL102a.patch


on top level directory of Elm 2.4ME+ distribution
(ie. on directory where Configure is.)

This is out of branch patch.

Notice: ME+ series is not official Elm.
This patch is agaist Elm 2.4ME+ PL102 (25) ------------------------------------
Index: elm2.4.ME+.102acvs/hdrs/patchlevel.h
Prereq: 1080000000
*** elm2.4.ME+.102/hdrs/patchlevel.h 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.102acvs/hdrs/patchlevel.h 2003-07-30 11:09:21.000000000 +0300
***************
*** 1,9 ****


! #define PATCHLEVEL "102 (25)"
/* Used by Configure:

SHAREDTAG: .1.0.102
*/
! #define LAST_REPORT_TIME 1080000000
#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"
! #define VERS_DATE "May, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released May, 2003"

--- 1,9 ----
! #define PATCHLEVEL "102a (25)"
/* Used by Configure:
SHAREDTAG: .1.0.102
*/
! #define LAST_REPORT_TIME 1080000200

#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"

! #define VERS_DATE "Jul, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released Jul, 2003"
Index: elm2.4.ME+.102acvs/README.ME+
*** elm2.4.ME+.102/README.ME+ 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.102acvs/README.ME+ 2003-07-30 11:08:22.000000000 +0300
***************
*** 1,4 ****


! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.572 2003/05/28 18:02:27 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.
--- 1,4 ----

! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.573.2.3 2003/07/30 08:08:22 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.
***************
*** 13,18 ****

--- 13,49 ----


Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

+

+ Changes of Elm2.4ME+ PL102a (25) compared with Elm2.4ME+ PL102 (25)
+ ------------------------------------------------------------------
+

+ [ This is out of branch patch. ]
+

+ 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
+ <k...@corp.cirrus.com>
+ > That happened when mimeforward = YES. Changed
+ mime_t_clear() to take attention to unlink flag.
+
+

Changes of Elm2.4ME+ PL102 (25) compared with Elm2.4ME+ PL101 (25)

------------------------------------------------------------------

Index: elm2.4.ME+.102acvs/lib/remote_mbx.c
*** elm2.4.ME+.102/lib/remote_mbx.c 2002-06-06 18:55:58.000000000 +0300
--- elm2.4.ME+.102acvs/lib/remote_mbx.c 2003-07-29 22:27:46.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: remote_mbx.c,v 1.42 2002/04/01 17:09:47 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.42 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: remote_mbx.c,v 1.42.28.1 2003/07/29 19:27:46 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.42.28.1 $ $State: Exp $


*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************

*** 411,420 ****

for (idx2 = 0; idx2 < se->port_count && 0 == r; idx2++) {
ra->hostaddr.sin.sin_port =
! htons(se->port_list[idx]);
r = connect_one_IN(ra,&cur_socket,&last_error);
if (r > 0)
! *got = se->port_list[idx];
}
} else {
int idx2;
--- 411,420 ----

for (idx2 = 0; idx2 < se->port_count && 0 == r; idx2++) {
ra->hostaddr.sin.sin_port =
! htons(se->port_list[idx2]);
r = connect_one_IN(ra,&cur_socket,&last_error);
if (r > 0)
! *got = se->port_list[idx2];
}
} else {
int idx2;
Index: elm2.4.ME+.102acvs/melib/mime_decode.c
*** elm2.4.ME+.102/melib/mime_decode.c 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.102acvs/melib/mime_decode.c 2003-07-28 09:10:33.000000000 +0300
***************
*** 1,7 ****


! static char rcsid[] = "@(#)$Id: mime_decode.c,v 1.53 2003/04/25 20:25:40 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.53 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: mime_decode.c,v 1.53.4.1 2003/07/28 06:10:33 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.53.4.1 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************

*** 1032,1038 ****
} else
flags |= subflag;
goto done;
! } else if (get_type_flags(p->TYPE) == MIME_TYPE_MULTIPART &&
pagemultipart) {
DPRINT(Debug,11,(&Debug,
"multipart_selector(%p) -- type: %p=%s/%s "
--- 1032,1038 ----
} else
flags |= subflag;
goto done;
! } else if (get_major_type_code(p->TYPE) == MIME_TYPE_MULTIPART &&
pagemultipart) {
DPRINT(Debug,11,(&Debug,
"multipart_selector(%p) -- type: %p=%s/%s "
Index: elm2.4.ME+.102acvs/melib/mime_parse.c
*** elm2.4.ME+.102/melib/mime_parse.c 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.102acvs/melib/mime_parse.c 2003-07-30 11:23:54.000000000 +0300
***************
*** 1,7 ****


! static char rcsid[] = "@(#)$Id: mime_parse.c,v 1.38 2003/05/09 05:57:38 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.38 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: mime_parse.c,v 1.38.4.1 2003/07/30 08:23:54 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.38.4.1 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************

*** 27,33 ****
mt->offset = mt->begin_offset = 0;
mt->length = -1;
mt->encoding = ENCODING_7BIT;
- mt->unlink = 0;
mt->TYPE = give_media_type2(MIME_TYPE_TEXT,"plain",0);
if (!mt->TYPE)
mime_panic(__FILE__,__LINE__,"mime_t_clear",
--- 27,32 ----
***************
*** 51,59 ****
free (mt->disposition_opts);
mt->disposition_opts = NULL;

! if (mt->pathname)
free (mt->pathname);
mt->pathname = NULL;
if (mt->dispname)
free_string(& (mt->dispname));

--- 50,81 ----
free (mt->disposition_opts);
mt->disposition_opts = NULL;

! if (mt->pathname) {
! if (mt->unlink) {
! DPRINT(Debug,15,(&Debug,
! "mime_t_clear: %s marked for unlink\n",
! mt->pathname));
!
! if (0 == unlink(mt->pathname)) {
! DPRINT(Debug,14,(&Debug,
! "mime_t_clear: %s unlinked\n",
! mt->pathname));
! }
! }
!
free (mt->pathname);
+
+ } else {
+ if (mt->unlink) {
+ DPRINT(Debug,3,(&Debug,
+ "mime_t_clear: ERROR: Pathname marked for unlink, but no pathname\n"));
+ }
+ }
+
mt->pathname = NULL;
+
+ mt->unlink = 0;
+
if (mt->dispname)
free_string(& (mt->dispname));

Index: elm2.4.ME+.102acvs/src/curses.c
*** elm2.4.ME+.102/src/curses.c 2003-04-24 18:52:20.000000000 +0300
--- elm2.4.ME+.102acvs/src/curses.c 2003-06-13 19:28:45.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: curses.c,v 1.36 2003/02/16 12:58:17 hurtta Exp $";

/*****************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.36 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************

--- 1,7 ----
! static char rcsid[] = "@(#)$Id: curses.c,v 1.37 2003/06/13 16:28:45 hurtta Exp $";

/*****************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.37 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>

******************************************************************************
***************
*** 1596,1602 ****
int do_tite = (state & NO_TITE) == 0;
int do_charset = (state & NO_CHARSET) == 0;

! state = state & ~NO_TITE;

SIGDPRINT(Debug,4,(&Debug,
"curses: Raw: state=%d do_tite=%d do_charset=%d\n",
--- 1596,1602 ----
int do_tite = (state & NO_TITE) == 0;
int do_charset = (state & NO_CHARSET) == 0;

! state = state & ~NO_TITE & ~NO_CHARSET;

SIGDPRINT(Debug,4,(&Debug,
"curses: Raw: state=%d do_tite=%d do_charset=%d\n",

Kari E. Hurtta

unread,
Sep 27, 2003, 2:00:08 PM9/27/03
to
Archive-name: elm2.4ME+/PL107a

Is available on ftp.ozone.FMI.FI
via anonymous ftp
directory KEH/

file elm-2.4ME+PL107.patcha.gz


Is available with
<URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+PL107a.patch.gz >
via WWW.

Is available with
<URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+PL107a.patch.gz >

For apply patch use command=20
patch -p1 < {path...}/elm-2.4ME+PL107a.patch


on top level directory of Elm 2.4ME+ distribution
(ie. on directory where Configure is.)

Notice: ME+ series is not official Elm.
This patch is agaist Elm 2.4ME+ PL107 (25) --------------------------------
Index: elm2.4.ME+.107a-cvs/hdrs/patchlevel.h
Prereq: 1094000000
*** elm2.4.ME+.107/hdrs/patchlevel.h 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.107a-cvs/hdrs/patchlevel.h 2003-09-27 18:48:46.000000000 +0300
***************
*** 1,8 ****
! #define PATCHLEVEL "107 (25)"
/* Used by Configure:
SHAREDTAG: .1.0.107
*/
! #define LAST_REPORT_TIME 1094000000


#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"

#define VERS_DATE "Sep, 2003" /* for elm -v option */
#define WHAT_STRING \
--- 1,8 ----
! #define PATCHLEVEL "107a (25)"
/* Used by Configure:
SHAREDTAG: .1.0.107
*/
! #define LAST_REPORT_TIME 1096000000


#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"

#define VERS_DATE "Sep, 2003" /* for elm -v option */
#define WHAT_STRING \
Index: elm2.4.ME+.107a-cvs/README.ME+
*** elm2.4.ME+.107/README.ME+ 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.107a-cvs/README.ME+ 2003-09-27 19:47:42.000000000 +0300
***************
*** 1,4 ****
! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.638 2003/09/05 19:13:12 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.
--- 1,4 ----

! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.645 2003/09/27 16:47:42 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.
***************

*** 13,115 ****


Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

Changes of Elm2.4ME+ PL107 (25) compared with Elm2.4ME+ PL106 (25)
------------------------------------------------------------------

Note: You must create directory
! charset/MAPPINGS/MICSFT
before applying this patch!

! SUMMARY: This release fixes some charset definations,
! 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

Changes of Elm2.4ME+ PL106 (25) compared with Elm2.4ME+ PL105 (25)
------------------------------------------------------------------

! 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 <no...@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 <no...@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.

Changes of Elm2.4ME+ PL105 (25) compared with Elm2.4ME+ PL104 (25)
------------------------------------------------------------------
--- 13,133 ----


Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

+ Changes of Elm2.4ME+ PL107a (25) compared with Elm2.4ME+ PL107 (25)
+ ------------------------------------------------------------------
+
+ 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 <forw...@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.
+
Changes of Elm2.4ME+ PL107 (25) compared with Elm2.4ME+ PL106 (25)
------------------------------------------------------------------

Note: You must create directory
! charset/MAPPINGS/MICSFT
before applying this patch!

! SUMMARY: This release fixes some charset definations,
! 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

Changes of Elm2.4ME+ PL106 (25) compared with Elm2.4ME+ PL105 (25)
------------------------------------------------------------------

! 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 <no...@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 <no...@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.

Changes of Elm2.4ME+ PL105 (25) compared with Elm2.4ME+ PL104 (25)
------------------------------------------------------------------
***************
*** 168,176 ****
- 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 usefull folder
! state information.)

Changes of Elm2.4ME+ PL104 (25) compared with Elm2.4ME+ PL103 (25)
------------------------------------------------------------------
--- 186,194 ----
- 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 usefull folder
! state information.)

Changes of Elm2.4ME+ PL104 (25) compared with Elm2.4ME+ PL103 (25)
------------------------------------------------------------------
***************
*** 8413,8421 ****

term ISO-2022 charset-name
term ISO-2022 charset-definition
! term ISO-2022/DW charset-name
term ISO-2022/DW charset-definition
! 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

--- 8431,8439 ----

term ISO-2022 charset-name
term ISO-2022 charset-definition
! term ISO-2022/DW charset-name
term ISO-2022/DW charset-definition
! 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

***************
*** 8451,8463 ****

Read commensts about using of these from doc/terminal.info

! ISO-2022-LIKE indicates that terminal assign private
! codes for charset. That defination do not define iso 2022
! codes for 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


Flag keyword xterm-title specifies that terminal supports
--- 8469,8481 ----

Read commensts about using of these from doc/terminal.info

! ISO-2022-LIKE indicates that terminal assign private
! codes for charset. That defination do not define iso 2022
! codes for 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


Flag keyword xterm-title specifies that terminal supports
Index: elm2.4.ME+.107a-cvs/lib/streamsched.c
*** elm2.4.ME+.107/lib/streamsched.c 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.107a-cvs/lib/streamsched.c 2003-09-26 19:06:17.000000000 +0300
***************
*** 1,7 ****


! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.29 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.29 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.31 2003/09/26 16:06:17 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.31 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/

***************
*** 122,128 ****
if (n < 0) {
err = errno;
DPRINT(Debug,8,(&Debug,
! "ss_ReadFromSocket: read error %s (errno %d)\n",
error_description(err),err));
}

--- 122,128 ----
if (n < 0) {
err = errno;
DPRINT(Debug,8,(&Debug,
! "ss_WriteToSocket: read error %s (errno %d)\n",
error_description(err),err));
}

***************
*** 871,880 ****
if (ss->error_state) {

/* Let's hope that read_callback is available ... */
! DPRINT(Debug,4,(&Debug,
! " ... [%s] Signaling on error state: %s\n",
! Ident,ss->error_state));
! call_user_read_callback(ss);
}
}

--- 871,887 ----
if (ss->error_state) {

/* Let's hope that read_callback is available ... */
! if ( ss_noaction_routine == ss->read_act) {
! DPRINT(Debug,4,(&Debug,
! " ... [%s] Can't signal on error state: %s\n",
! Ident,ss->error_state));
!
! } else {
! DPRINT(Debug,4,(&Debug,
! " ... [%s] Signaling on error state: %s\n",
! Ident,ss->error_state));
! call_user_read_callback(ss);
! }
}
}

Index: elm2.4.ME+.107a-cvs/src/elm.c
*** elm2.4.ME+.107/src/elm.c 2003-08-11 11:21:18.000000000 +0300
--- elm2.4.ME+.107a-cvs/src/elm.c 2003-09-14 19:35:19.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: elm.c,v 1.56 2003/08/11 06:53:24 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.56 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: elm.c,v 1.57 2003/09/14 16:35:19 hurtta Exp $";

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.57 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 1204,1212 ****
Write_to_screen(CATGETS(elm_msg_cat, ElmSet,
ElmOptions,
"Options"));
! if((i=options(current_mailbox)) > 0)
get_page(current, current_mailbox);
! else if(i < 0)
leave(0, &current_mailbox);
redraw++; /* always fix da screen... */
}
--- 1204,1213 ----
Write_to_screen(CATGETS(elm_msg_cat, ElmSet,
ElmOptions,
"Options"));
! if((i=options(current_mailbox)) > 0) {
! current = get_current(current_mailbox);
get_page(current, current_mailbox);
! } else if(i < 0)
leave(0, &current_mailbox);
redraw++; /* always fix da screen... */
}
Index: elm2.4.ME+.107a-cvs/src/newmbox.c
*** elm2.4.ME+.107/src/newmbox.c 2003-08-16 09:58:21.000000000 +0300
--- elm2.4.ME+.107a-cvs/src/newmbox.c 2003-09-27 18:38:22.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: newmbox.c,v 1.71 2003/08/14 14:14:22 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.71 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: newmbox.c,v 1.76 2003/09/27 15:38:22 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.76 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 248,254 ****
{
int initialize = mode == COUNT_initialize;

! int width = elm_COLUMNS - 52;

if (initialize) {
counter->truncated_name = NULL;
--- 248,256 ----
{
int initialize = mode == COUNT_initialize;

! int width = elm_COLUMNS - 52
! - ((skipcount >= 10000) ? 1 : 0)
! - ((count >= 10000) ? 1 : 0);

if (initialize) {
counter->truncated_name = NULL;
***************
*** 295,307 ****
PutLineX(counter->count_x, counter->count_y,
FRM("%d (%02d%%) "), count,percent);

! if (skipcount > 0 || percent2 >= 0)
! PutLineX(counter->count_x, counter->count_y+12,
CATGETS(elm_msg_cat, ElmSet,
ElmSkippingInMessage,
" %d (%02d%%) skipped "),
! skipcount,percent2);
!
if (COUNT_finalize == mode) {
CarriageReturn();

--- 297,315 ----
PutLineX(counter->count_x, counter->count_y,
FRM("%d (%02d%%) "), count,percent);

! if (skipcount > 0 || percent2 >= 0) {
! int add = 12 - ((skipcount >= 100) ? 1 : 0)
! - ((skipcount >= 1000) ? 1 : 0)
! + ((count >= 10000) ? 1 : 0);
!
!
! PutLineX(counter->count_x, counter->count_y+add,
CATGETS(elm_msg_cat, ElmSet,
ElmSkippingInMessage,
" %d (%02d%%) skipped "),
! skipcount,percent2);
! }
!
if (COUNT_finalize == mode) {
CarriageReturn();

Kari E. Hurtta

unread,
Oct 12, 2003, 6:40:56 AM10/12/03
to
Archive-name: elm2.4ME+/PL108

Is available on ftp.ozone.FMI.FI
via anonymous ftp
directory KEH/

files elm-2.4ME+PL108.patch.gz
and elm-2.4ME+108.tar.gz

Is available with
<URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+PL108.patch.gz >
and <URL: http://www.ozone.FMI.FI/KEH/elm-2.4ME+108.tar.gz >
via WWW.

Is available with
<URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+108.tar.gz >
and <URL: http://personal.inet.fi/atk/elmme/elm-2.4ME+PL108.patch.gz >

For apply patch use command

patch -p1 < {path...}/elm-2.4ME+PL108.patch


on top level directory of Elm 2.4ME+ distribution
(ie. on directory where Configure is.)

Notice: ME+ series is not official Elm.
This patch is agaist Elm 2.4ME+ PL107 (25) --------------------------------

Note: You must create directory src/screen before applying this patch!

Undo Elm2.4ME+ PL107a (25) patch before applying this patch.

For apply patch use command

patch -p1 < {path...}/this-file


on top level directory of Elm 2.4ME+ distribution
(ie. on directory where Configure is.)

Index: elm2.4.ME+.108-cvs/hdrs/patchlevel.h


Prereq: 1094000000
*** elm2.4.ME+.107/hdrs/patchlevel.h 2003-09-05 23:33:17.000000000 +0300

--- elm2.4.ME+.108-cvs/hdrs/patchlevel.h 2003-10-12 11:47:41.000000000 +0300
***************
*** 1,9 ****
! #define PATCHLEVEL "107 (25)"
/* Used by Configure:
! SHAREDTAG: .1.0.107


*/
! #define LAST_REPORT_TIME 1094000000

#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"

! #define VERS_DATE "Sep, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released Sep, 2003"
--- 1,9 ----
! #define PATCHLEVEL "108 (25)"
/* Used by Configure:
! SHAREDTAG: .1.0.108
*/
! #define LAST_REPORT_TIME 1097000000


#define BUG_REPORT_ADDR "Kari Hurtta <hurtt...@ozone.FMI.FI>"

! #define VERS_DATE "Oct, 2003" /* for elm -v option */
#define WHAT_STRING \
! "@(#) Version 2.4(ME+), USENET supported version, released Oct, 2003"
Index: elm2.4.ME+.108-cvs/README.ME+


*** elm2.4.ME+.107/README.ME+ 2003-09-05 23:33:17.000000000 +0300

--- elm2.4.ME+.108-cvs/README.ME+ 2003-10-12 11:47:40.000000000 +0300
***************
*** 1,4 ****
! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.638 2003/09/05 19:13:12 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.
--- 1,4 ----

! $Header: /data/cvsroot/mail/elmme+/README.ME+,v 1.654 2003/10/12 08:47:40 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.
***************

*** 13,115 ****


Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

--- 13,210 ----


Version Elm2.4 PL24 ME8b is based on version Elm2.4 PL24.
Version Elm2.4ME+ PLx (25) includes patch of version Elm2.4 PL25.

+ Changes of Elm2.4ME+ PL108 (25) compared with Elm2.4ME+ PL107 (25)
+ ------------------------------------------------------------------
+
+ 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 <forw...@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 divizion be zero when opening non existing
+ (or empty?) mailbox.
+ From: Darren Reed <ava...@caligula.anu.edu.au>
+ ( Divizion 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
+
+ Changes of Elm2.4ME+ PL107a (25) compared with Elm2.4ME+ PL107 (25)
+ ------------------------------------------------------------------
+

--- 263,271 ----


- 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 usefull folder
! state information.)

Changes of Elm2.4ME+ PL104 (25) compared with Elm2.4ME+ PL103 (25)
------------------------------------------------------------------
***************
*** 8413,8421 ****

term ISO-2022 charset-name
term ISO-2022 charset-definition
! term ISO-2022/DW charset-name
term ISO-2022/DW charset-definition
! 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

--- 8508,8516 ----



term ISO-2022 charset-name
term ISO-2022 charset-definition
! term ISO-2022/DW charset-name
term ISO-2022/DW charset-definition
! 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

***************
*** 8451,8463 ****

Read commensts about using of these from doc/terminal.info

! ISO-2022-LIKE indicates that terminal assign private
! codes for charset. That defination do not define iso 2022
! codes for 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


Flag keyword xterm-title specifies that terminal supports

--- 8546,8558 ----



Read commensts about using of these from doc/terminal.info

! ISO-2022-LIKE indicates that terminal assign private
! codes for charset. That defination do not define iso 2022
! codes for 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


Flag keyword xterm-title specifies that terminal supports

***************
*** 8924,8929 ****
--- 9019,9026 ----
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
local-fast-lookup -
Index: elm2.4.ME+.108-cvs/doc/elmrc-info
*** elm2.4.ME+.107/doc/elmrc-info 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/doc/elmrc-info 2003-10-11 11:42:10.000000000 +0300
***************
*** 1,4 ****
! #@(#)$Id: elmrc-info,v 1.53 2003/08/04 14:58:56 hurtta Exp $
# Elm Version 2.4ME+
#
#$HDR - magic line to mark comments to put at top of user's elmrc file.
--- 1,4 ----
! #@(#)$Id: elmrc-info,v 1.54 2003/10/11 08:42:10 hurtta Exp $
# Elm Version 2.4ME+
#
#$HDR - magic line to mark comments to put at top of user's elmrc file.
***************
*** 775,781 ****
# List of mailcaps for internal mailcap support (without metmail).
# List may be space or ':' seperated. Separate values may be quoted.
# Set value to "none" to disable internal mailcap support.
! # See also: metamail-mailcaps

metamail-mailcaps
# List of mailcaps for metamail. List may be space or ':' seperated. Separate
--- 775,792 ----
# List of mailcaps for internal mailcap support (without metmail).
# List may be space or ':' seperated. Separate values may be quoted.
# Set value to "none" to disable internal mailcap support.
! # See also: metamail-mailcaps, internal-mailcap-trusted-programs
!
! internal-mailcap-trusted-programs
! # List of programs which are executed by default when using internal
! # mailcap. Programs given on test= are always executed without
! # prompting.
! # See also: internal-mailcap-prompt-trusted, internal-mailcaps
!
! internal-mailcap-prompt-trusted
! # If set, Mailcap program selection -screen is shown even when
! # all programs asked on screen are executed by default
! # See also: internal-mailcap-trusted-programs

metamail-mailcaps
# List of mailcaps for metamail. List may be space or ':' seperated. Separate
Index: elm2.4.ME+.108-cvs/hdrs/defs.h
*** elm2.4.ME+.107/hdrs/defs.h 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/defs.h 2003-10-01 20:34:34.000000000 +0300
***************
*** 1,7 ****
! /* $Id: defs.h,v 1.38 2003/08/04 14:58:56 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.38 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>

******************************************************************************
--- 1,7 ----
! /* $Id: defs.h,v 1.39 2003/10/01 17:34:34 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.39 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 309,316 ****
--- 309,319 ----
/* find tab stops preceding or following a given column position 'a', where
* the column position starts counting from 1, NOT 0!
* The external integer "tabspacing" must be declared to use this. */
+
+ /*
#define prev_tab(a) (((((a-1)/tabspacing))*tabspacing)+1)
#define next_tab(a) (((((a-1)/tabspacing)+1)*tabspacing)+1)
+ */

#define no_ret(s) { register int xyz; /* varname is for lint */ \
for (xyz=strlen(s)-1; xyz >= 0 && \
Index: elm2.4.ME+.108-cvs/hdrs/elm_curses.h
*** elm2.4.ME+.107/hdrs/elm_curses.h 2003-04-24 18:52:20.000000000 +0300
--- /tmp/4773-very-long-file-name-NULL-comes-in-here--XXXXXXXXX 2003-10-12 12:40:39.000000000 +0300
***************
*** 1,78 ****
- /* $Id: elm_curses.h,v 1.8 2003/02/16 10:01:26 hurtta Exp $ */
-
- /******************************************************************************
- * The Elm (ME+) Mail System - $Revision: 1.8 $ $State: Exp $
- *
- * Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
- ******************************************************************************
- * The Elm Mail System
- *
- * Copyright (c) 1988-1992 USENET Community Trust
- * Copyright (c) 1986,1987 Dave Taylor
- ****************************************************************************/
-
- #define OFF 0
- #define ON 1
-
- extern int ClearScreen P_((void)),
- CleartoEOLN P_((void)),
- CleartoEOS P_((void)),
- MoveCursor P_((int, int)),
- StartBold P_((void)),
- EndBold P_((void)),
- StartUnderline P_((void)),
- EndUnderline P_((void)),
- StartHalfbright P_((void)),
- EndHalfbright P_((void)),
- StartInverse P_((void)),
- EndInverse P_((void)),
- RawState P_((void));
-
- /* This must be called before anything else!! */
- extern int InitScreen P_((void));
-
- extern void ScreenSize P_((int *lines, int *columns));
- extern void Write_to_screen P_((
- CONST char *format, CONST char *msg, ...
- ));
- extern void PutLine0 P_((int, int, CONST char *));
- extern void PutLineX P_((int, int, CONST char *, CONST char *, ...));
-
- extern void Writechar P_((int ch));
-
- extern int ReadCh P_((int));
- extern struct charset_state * ReadCh2 P_((int flags));
- extern void SetXYLocation P_((int x, int y));
- extern void CarriageReturn P_((void));
- extern void NewLine P_((void));
- extern void Raw P_((int state));
- extern void transmit_functions P_((int newstate));
- extern void GetXYLocation P_((int *x,int *y));
-
- extern int set_display_charset P_((charset_t set, int silent));
- extern void switch_display_charset P_((int to_display));
- extern charset_t * give_display_charsets P_((charset_t *storage,
- int max));
-
- extern int set_terminal_titles P_((char *title,char *icon));
-
- /* May be called from signal handler
- to_display = 0 -- suspended
- = 1 -- as set
- = 2 -- exiting
- */
- extern void switch_title P_((int to_display));
-
-
-
- extern struct string *curses_printable_clip P_((struct string *S,int *pos,int len,
- int *visible_len,int max_visible));
-
-
- #if POLL_METHOD
- int error_sleep P_((int seconds));
- #endif
- extern int raw_off_called P_((void));
- extern void WriteRaw P_((const char *str));
- extern void FlushBuffer P_((void));
-
--- 0 ----
Index: elm2.4.ME+.108-cvs/hdrs/elm.h
*** elm2.4.ME+.107/hdrs/elm.h 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/elm.h 2003-10-01 20:34:34.000000000 +0300
***************
*** 1,7 ****
! /* $Id: elm.h,v 1.16 2003/07/29 18:46:17 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.16 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************

--- 1,7 ----
! /* $Id: elm.h,v 1.17 2003/10/01 17:34:34 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.17 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>

******************************************************************************
***************
*** 26,32 ****
*/

#include "elmlib.h"
- #include "elm_curses.h"

/******** static character string containing the version number *******/

--- 26,31 ----
Index: elm2.4.ME+.108-cvs/hdrs/elmlib.h
*** elm2.4.ME+.107/hdrs/elmlib.h 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/elmlib.h 2003-10-11 14:35:49.000000000 +0300
***************
*** 1,7 ****
! /* $Id: elmlib.h,v 1.193 2003/08/19 14:34:12 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.193 $ $State: Exp $


*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! /* $Id: elmlib.h,v 1.196 2003/10/11 11:35:49 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.196 $ $State: Exp $


*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************

*** 806,811 ****
--- 806,813 ----
extern char metamail_path[SLEN]; /* Metamail path or "none" if no metamail */
extern PATH metamail_mailcaps; /* mailcaps for metamail */
extern PATH internal_mailcaps; /* mailcaps for internal handler */
+ extern PATH internal_mailcap_t_programs; /* Execute program without asking */
+ extern int internal_mailcap_t_prompt; /* ... really? */
extern int metoo; /* flag: copy me on mail to alias? */
extern int mimeforward;
extern int mime_body_keywords; /* flag: if false the body is not parsed for keywords */
***************
*** 1111,1116 ****
--- 1113,1121 ----

/* lib/mbox.c */

+ #define OFF 0
+ #define ON 1
+
typedef struct header_list * header_list_ptr;

enum sessionlock_mode { SESSIONLOCK_NORMAL = 0,
***************
*** 2127,2133 ****
/* WARNING: May return codes > MIME_TYPE_VIDEO if unknow or bad type */
extern enum mime_major_type get_major_type_code P_((media_type_t T));
extern CONST char * get_major_type_name P_((media_type_t T));
!

#define MIME_RFC822 1
#define MIME_MIXED 2
--- 2132,2138 ----
/* WARNING: May return codes > MIME_TYPE_VIDEO if unknow or bad type */
extern enum mime_major_type get_major_type_code P_((media_type_t T));
extern CONST char * get_major_type_name P_((media_type_t T));
! extern CONST char * get_major_type_name2 P_((enum mime_major_type m));

#define MIME_RFC822 1
#define MIME_MIXED 2
***************
*** 2140,2145 ****
--- 2145,2152 ----
extern int get_type_flags P_((media_type_t T));
extern CONST char * get_subtype_name P_((media_type_t T));

+ extern enum mime_major_type give_major_type P_(( const char * major,
+ int create));

extern media_type_t give_media_type P_(( const char * major,
const char * minor,
Index: elm2.4.ME+.108-cvs/hdrs/elmutil.h
*** elm2.4.ME+.107/hdrs/elmutil.h 2002-01-26 13:14:45.000000000 +0200
--- elm2.4.ME+.108-cvs/hdrs/elmutil.h 2003-10-01 20:34:34.000000000 +0300
***************
*** 1,7 ****
! /* $Id: elmutil.h,v 1.9 2001/06/16 10:40:36 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.9 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----

! /* $Id: elmutil.h,v 1.10 2003/10/01 17:34:34 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 23,29 ****

#include "patchlevel.h"
#include "elmlib.h"
- #include "elm_curses.h"

/******** static character string containing the version number *******/

--- 23,28 ----
Index: elm2.4.ME+.108-cvs/hdrs/hdr_imp.h
*** elm2.4.ME+.107/hdrs/hdr_imp.h 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/hdr_imp.h 2003-10-05 19:07:27.000000000 +0300
***************
*** 28,39 ****
--- 28,63 ----


int demime,
charset_t defcharset,
int replace));

+ int add_to_hdr P_((struct mailing_headers * headers,


+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));

+ int add_cc_hdr P_((struct mailing_headers * headers,


+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));

+ int add_bcc_hdr P_((struct mailing_headers * headers,


+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));
int add_replyto_hdr P_((struct mailing_headers * headers,

header_ptr X,
const char *value,

int demime,
charset_t defcharset,
int replace));

+ int add_subject_hdr P_((struct mailing_headers * headers,


+ header_ptr X,
+ const char *value,
+ int demime,
+ charset_t defcharset,
+ int replace));
int add_user_hdr P_((struct mailing_headers * headers,
header_ptr X,
const char *value,

Index: elm2.4.ME+.108-cvs/hdrs/headers.h
*** elm2.4.ME+.107/hdrs/headers.h 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/headers.h 2003-10-01 20:34:34.000000000 +0300
***************
*** 1,7 ****
! /* $Id: headers.h,v 1.18 2003/07/29 18:46:17 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.18 $ $State: Exp $
*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>

******************************************************************************
--- 1,7 ----
! /* $Id: headers.h,v 1.19 2003/10/01 17:34:34 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.19 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 17,28 ****
#include <setjmp.h>

#include "elmlib.h"
- #include "elm_curses.h"

#include "mime.h"
! /*
! #include "me.h"
! */
/******** global variables accessable by all pieces of the program *******/


--- 17,25 ----
#include <setjmp.h>

#include "elmlib.h"

#include "mime.h"
!
/******** global variables accessable by all pieces of the program *******/


Index: elm2.4.ME+.108-cvs/hdrs/me.h
*** elm2.4.ME+.107/hdrs/me.h 2003-08-11 11:21:18.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/me.h 2003-10-05 19:07:27.000000000 +0300
***************
*** 1,7 ****
! /* $Id: me.h,v 1.74 2003/08/10 10:03:35 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.74 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
--- 1,7 ----

! /* $Id: me.h,v 1.76 2003/10/05 16:07:27 hurtta Exp $ */

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.76 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*
***************

*** 653,659 ****
charset_t hdr_charset));
extern void edit_headers P_((struct mailing_headers *headers,
struct mailer_info *mailer_info,
! charset_t hdr_charset));

extern struct string *hdr_to_expval P_((struct expanded_address addrs));
extern void hdr_to_buffer P_((struct expanded_address addrs,
--- 653,660 ----
charset_t hdr_charset));
extern void edit_headers P_((struct mailing_headers *headers,
struct mailer_info *mailer_info,
! charset_t hdr_charset,
! int hdr_encondig_supported));

extern struct string *hdr_to_expval P_((struct expanded_address addrs));
extern void hdr_to_buffer P_((struct expanded_address addrs,
***************
*** 674,679 ****
--- 675,681 ----

/* editmsg.c */

+ extern int have_editor P_((char *editor));
extern int edit_the_message P_((char *filename,
int already_has_text,
struct mailing_headers * headers,
***************
*** 970,975 ****
--- 972,1046 ----
extern int have_partial P_((struct MailboxView *parent_mailbox));


+ /* screen/screen.c */
+
+ extern int InitScreen P_((void));
+ extern void ScreenSize P_((int *lines, int *columns));
+ extern void Writechar P_((int ch));
+ extern void Write_to_screen P_((CONST char *format, CONST char *msg, ...));
+ extern void PutLine0 P_((int x, int y, CONST char *line));
+ extern void PutLineX P_((int line , int col, CONST char *, CONST char *, ...));
+ extern int CleartoEOLN P_((void));
+ extern int CleartoEOS P_((void));
+ extern int RawState P_((void));
+ extern void Raw P_((int state));
+ extern struct charset_state * ReadCh2 P_((int flags));
+ extern int ReadCh P_((int flags));
+ extern void GetXYLocation P_((int *x,int *y));
+ extern int ClearScreen P_((void));
+ extern int MoveCursor P_((int row, int col));
+ extern void CarriageReturn P_((void));
+ extern void NewLine P_((void));
+ extern int StartBold P_((void));
+ extern int EndBold P_((void));
+ extern int StartInverse P_((void));
+ extern int EndInverse P_((void));
+ extern int ClearScreen P_((void));
+ extern int get_tabspacing P_((void));
+ extern int StartUnderline P_((void));
+ extern int EndUnderline P_((void));
+ extern int StartHalfbright P_((void));
+ extern int EndHalfbright P_((void));
+
+ /* screen/curses.c */
+
+ extern void WriteRaw P_((const char *str));
+ extern struct string *curses_printable_clip P_((struct string *S,
+ int *pos,
+ int len,
+ int *visible_len,
+ int max_visible));
+ extern int raw_off_called P_((void));
+ extern void transmit_functions P_((int newstate));
+ extern void InvalidateLocation P_((void));
+
+ /* screen/curs_input.c */
+
+ #if POLL_METHOD
+ extern int error_sleep P_((int seconds));
+ #endif
+
+ /* screen/termcharcharset.c */
+
+ extern charset_t * give_display_charsets P_((charset_t *storage,
+ int max));
+
+ extern int set_display_charset P_((charset_t set,
+ int silent));
+ extern void switch_display_charset P_((int to_display));
+
+
+ /* screen/termtitle.c */
+
+ extern int set_terminal_titles P_((char *title,
+ char *icon));
+ extern void switch_title P_((int to_display));
+
+
+ /* screen/termbuffer.c */
+
+ extern void FlushBuffer P_((void));
+
/*
* Local Variables:
* mode:c
Index: elm2.4.ME+.108-cvs/hdrs/save_opts.h
*** elm2.4.ME+.107/hdrs/save_opts.h 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/save_opts.h 2003-10-11 11:42:10.000000000 +0300
***************
*** 1,7 ****
! /* @(#)$Id: save_opts.h,v 1.71 2003/08/04 14:58:57 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.71 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
--- 1,7 ----

! /* @(#)$Id: save_opts.h,v 1.72 2003/10/11 08:42:10 hurtta Exp $ */

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.72 $ $State: Exp $
*

* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
******************************************************************************
***************

*** 309,314 ****
--- 309,318 ----
#endif
{"incoming-mailbox", -1L,ZZZ_DT_STR(raw_defaultfile),
sizeof raw_defaultfile, NULL },
+ {"internal-mailcap-prompt-trusted", -1L,
+ ZZZ_DT_BOL(&internal_mailcap_t_prompt), 0, NULL },
+ {"internal-mailcap-trusted-programs",
+ -1L,ZZZ_DT_PATH(&internal_mailcap_t_programs), 0, NULL},
{"internal-mailcaps", -1L,ZZZ_DT_PATH(&internal_mailcaps), 0, NULL},
{"iso646-charsets", -1L,ZZZ_DT_FUNC(charset_iso646func),0, NULL},
{"keep", -1L,ZZZ_DT_SYN("keepempty"), 0, NULL},
Index: elm2.4.ME+.108-cvs/hdrs/s_elm.h
*** elm2.4.ME+.107/hdrs/s_elm.h 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.108-cvs/hdrs/s_elm.h 2003-10-05 19:07:27.000000000 +0300
***************
*** 1078,1080 ****
--- 1078,1087 ----
#define ElmAssemble 0x851
#define ElmNotCollected 0x852
#define ElmSearchingInMessageDone 0x853
+ #define ElmHdrmenuInstruct1 0x854
+ #define ElmHdrmenuInstruct1NoShell 0x855
+ #define ElmHdrEditComment 0x856
+ #define ElmHdrEditCommentEnc 0x857
+ #define ElmHdrEditCommentNo 0x858
+ #define ElmHdrNotSupported 0x859
+ #define ElmHdrGarbage 0x85a
Index: elm2.4.ME+.108-cvs/lib/headers.c
*** elm2.4.ME+.107/lib/headers.c 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.108-cvs/lib/headers.c 2003-10-05 19:07:27.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: headers.c,v 1.26 2003/09/02 18:52:44 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.26 $ $State: Exp $


*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: headers.c,v 1.27 2003/10/05 16:07:27 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.27 $ $State: Exp $
*

* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
***************

*** 412,418 ****

static struct header_info header_types[] = {
/* From STD 11 (RFC 822): */
! { "Subject", hdr_decode_from_text, no_add_to_mail_hdr },


{ "Comments", hdr_decode_from_text, no_add_to_mail_hdr },
{ "Return-path", hdr_decode_from_comment, add_env_from_hdr },
{ "Received", hdr_decode_from_comment, no_add_to_mail_hdr },

--- 412,418 ----

static struct header_info header_types[] = {
/* From STD 11 (RFC 822): */
! { "Subject", hdr_decode_from_text, add_subject_hdr },


{ "Comments", hdr_decode_from_text, no_add_to_mail_hdr },
{ "Return-path", hdr_decode_from_comment, add_env_from_hdr },
{ "Received", hdr_decode_from_comment, no_add_to_mail_hdr },

***************
*** 424,434 ****
{ "Resent-Sender", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Date", hdr_decode_from_comment, no_add_to_mail_hdr },
{ "Resent-Date", hdr_decode_from_comment, no_add_to_mail_hdr },
! { "To", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Resent-To", hdr_decode_from_addr, no_add_to_mail_hdr },
! { "cc", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Resent-cc", hdr_decode_from_addr, no_add_to_mail_hdr },
! { "bcc", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Resent-bcc", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Message-ID", hdr_decode_from_comment, no_add_to_mail_hdr },
{ "Resent-Message-ID", hdr_decode_from_comment, no_add_to_mail_hdr },
--- 424,434 ----
{ "Resent-Sender", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Date", hdr_decode_from_comment, no_add_to_mail_hdr },
{ "Resent-Date", hdr_decode_from_comment, no_add_to_mail_hdr },
! { "To", hdr_decode_from_addr, add_to_hdr },
{ "Resent-To", hdr_decode_from_addr, no_add_to_mail_hdr },
! { "cc", hdr_decode_from_addr, add_cc_hdr },
{ "Resent-cc", hdr_decode_from_addr, no_add_to_mail_hdr },
! { "bcc", hdr_decode_from_addr, add_bcc_hdr },
{ "Resent-bcc", hdr_decode_from_addr, no_add_to_mail_hdr },
{ "Message-ID", hdr_decode_from_comment, no_add_to_mail_hdr },
{ "Resent-Message-ID", hdr_decode_from_comment, no_add_to_mail_hdr },
Index: elm2.4.ME+.108-cvs/lib/Makefile.SH
*** elm2.4.ME+.107/lib/Makefile.SH 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/lib/Makefile.SH 2003-10-01 20:34:34.000000000 +0300
***************
*** 46,52 ****
echo "Extracting lib/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.85 2003/07/24 16:29:51 hurtta Exp $
#
# Makefile for the ELM mail program.
#
--- 46,52 ----
echo "Extracting lib/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.86 2003/10/01 17:34:34 hurtta Exp $
#
# Makefile for the ELM mail program.
#
***************
*** 372,382 ****
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/elm.h: $(INCLDIR)/elm_curses.h $(INCLDIR)/defs.h $(INCLDIR)/melib.h
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/headers.h: $(INCLDIR)/elm_curses.h $(INCLDIR)/defs.h $(INCLDIR)/elmlib.h $(INCLDIR)/me.h
$(CHMOD) u+w $@
$(TOUCH) $@

--- 372,382 ----
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/elm.h: $(INCLDIR)/defs.h $(INCLDIR)/melib.h
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/headers.h: $(INCLDIR)/defs.h $(INCLDIR)/elmlib.h $(INCLDIR)/me.h
$(CHMOD) u+w $@
$(TOUCH) $@

Index: elm2.4.ME+.108-cvs/lib/mediatype.c
*** elm2.4.ME+.107/lib/mediatype.c 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/lib/mediatype.c 2003-10-12 09:42:38.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mediatype.c,v 1.7 2003/08/04 14:58:57 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.7 $ $State: Exp $


*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: mediatype.c,v 1.10 2003/10/12 06:42:38 hurtta Exp $";

/******************************************************************************


! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/

***************
*** 136,141 ****
--- 136,153 ----
return major_type_list[T->major_type_index].name;
}

+ CONST char * get_major_type_name2(m)
+ enum mime_major_type m;
+ {
+ if (m < 0 || m >= major_type_count)
+ panic("MEDIA TYPE PANIC",__FILE__,__LINE__,"get_major_type_name2",
+ "Bad major_type_index",0);
+
+ return major_type_list[m].name;
+ }
+
+
+
int get_type_flags(T)
media_type_t T;
{
***************
*** 171,190 ****
return T->subtype;
}

! media_type_t give_media_type(major,minor,create)
const char * major;
- const char * minor;
int create;
{
int i;

for (i = 0; i < major_type_count; i++)
if (0 == istrcmp(major,major_type_list[i].name))
break;

if (i >= major_type_count) {
if (!create)
! return NULL;

if (!MAJOR_TYPE_MALLOCED) {
major_type_list = safe_malloc((major_type_count+1) *
--- 183,205 ----
return T->subtype;
}

! enum mime_major_type give_major_type(major,create)
const char * major;
int create;
{
int i;

+ if (NULL != strchr(major,'/'))
+ panic("MEDIA TYPE PANIC",__FILE__,__LINE__,"give_major_type",
+ "Bad major type",0);
+
for (i = 0; i < major_type_count; i++)
if (0 == istrcmp(major,major_type_list[i].name))
break;

if (i >= major_type_count) {
if (!create)
! return MIME_TYPE_UNKNOWN;

if (!MAJOR_TYPE_MALLOCED) {
major_type_list = safe_malloc((major_type_count+1) *
***************
*** 205,214 ****
i = major_type_count++;

DPRINT(Debug,10,(&Debug,
! "give_media_type: Created major type %d: %s\n",
i,major_type_list[i].name));
}
! return give_media_type2((enum mime_major_type)i,minor,create);
}

media_type_t give_media_type2(major_type_code,minor,create)
--- 220,244 ----
i = major_type_count++;

DPRINT(Debug,10,(&Debug,
! "give_major_type: Created major type %d: %s\n",
i,major_type_list[i].name));
}
!
! return (enum mime_major_type)i;
! }
!
! media_type_t give_media_type(major,minor,create)
! const char * major;
! const char * minor;
! int create;
! {
!
! enum mime_major_type I1 = give_major_type(major,create);
!
! if (MIME_TYPE_UNKNOWN == I1)
! return NULL;
!
! return give_media_type2(I1,minor,create);
}

media_type_t give_media_type2(major_type_code,minor,create)
Index: elm2.4.ME+.108-cvs/lib/outheaders.c
*** elm2.4.ME+.107/lib/outheaders.c 2003-05-28 21:49:27.000000000 +0300
--- elm2.4.ME+.108-cvs/lib/outheaders.c 2003-10-05 19:07:27.000000000 +0300
***************
*** 1,7 ****


! static char rcsid[] = "@(#)$Id: outheaders.c,v 1.11 2003/04/22 18:34:57 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.11 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: outheaders.c,v 1.12 2003/10/05 16:07:27 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.12 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>

*****************************************************************************/
***************
*** 400,405 ****
--- 400,515 ----
return 1;
}

+
+ #ifdef ANSI_C
+ hdr_add_to_mailing_hdr add_to_hdr;
+ #endif
+ int add_to_hdr(headers,X,value,demime,defcharset,replace)


+ struct mailing_headers * headers;
+ header_ptr X;
+ CONST char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int j;
+
+ struct addr_item * TMP;
+
+ TMP = break_down_address(value,demime,defcharset);
+
+ if (replace)

+ free_expanded_address(&(headers->to));


+
+ for (j = 0; TMP[j].addr && TMP[j].fullname; j++) {

+ int pos = add_expanded_addr_(&(headers->to),


+ TMP[j].addr,
+ TMP[j].fullname,
+ TMP[j].comment);
+ struct string *s = make_surface_addr(TMP[j]);

+ add_textual_addr_(&(headers->to),s,pos,1);


+ free_string(&s);
+ }
+
+ free_addr_items(TMP);
+
+ return 1;
+ }
+
+
+ #ifdef ANSI_C

+ hdr_add_to_mailing_hdr add_cc_hdr;
+ #endif
+ int add_cc_hdr(headers,X,value,demime,defcharset,replace)


+ struct mailing_headers * headers;
+ header_ptr X;
+ CONST char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int j;
+
+ struct addr_item * TMP;
+
+ TMP = break_down_address(value,demime,defcharset);
+
+ if (replace)

+ free_expanded_address(&(headers->cc));


+
+ for (j = 0; TMP[j].addr && TMP[j].fullname; j++) {

+ int pos = add_expanded_addr_(&(headers->cc),


+ TMP[j].addr,
+ TMP[j].fullname,
+ TMP[j].comment);
+ struct string *s = make_surface_addr(TMP[j]);

+ add_textual_addr_(&(headers->cc),s,pos,1);


+ free_string(&s);
+ }
+
+ free_addr_items(TMP);
+
+ return 1;
+ }
+
+
+ #ifdef ANSI_C

+ hdr_add_to_mailing_hdr add_bcc_hdr;
+ #endif
+ int add_bcc_hdr(headers,X,value,demime,defcharset,replace)


+ struct mailing_headers * headers;
+ header_ptr X;
+ CONST char *value;
+ int demime;
+ charset_t defcharset;
+ int replace;
+ {
+ int j;
+
+ struct addr_item * TMP;
+
+ TMP = break_down_address(value,demime,defcharset);
+
+ if (replace)

+ free_expanded_address(&(headers->bcc));


+
+ for (j = 0; TMP[j].addr && TMP[j].fullname; j++) {

+ int pos = add_expanded_addr_(&(headers->bcc),


+ TMP[j].addr,
+ TMP[j].fullname,
+ TMP[j].comment);
+ struct string *s = make_surface_addr(TMP[j]);

+ add_textual_addr_(&(headers->bcc),s,pos,1);


+ free_string(&s);
+ }
+
+ free_addr_items(TMP);
+
+ return 1;
+ }
+
+
+
#ifdef ANSI_C

hdr_add_to_mailing_hdr add_replyto_hdr;
#endif
***************
*** 471,476 ****
--- 581,609 ----
}


+ /* This replaces always */
+ #ifdef ANSI_C
+ hdr_add_to_mailing_hdr add_subject_hdr;
+ #endif
+
+ int add_subject_hdr(headers,X,value,demime,defcharset,replace)


+ struct mailing_headers * headers;
+ header_ptr X;

+ const char *value;


+ int demime;
+ charset_t defcharset;
+ int replace;
+ {

+ if (headers->subject)
+ free_string( & (headers->subject) );
+
+ headers->subject =
+ hdr_to_string(HDR_TEXT,value,defcharset,demime);


+
+ return 1;
+ }
+
+

#ifdef ANSI_C
hdr_add_to_mailing_hdr add_user_hdr;
***************
*** 485,497 ****
int replace;
{
if (replace) {
int i;
for (i = 0; i < headers->user_header_count; i++) {
! if (headers->user_header[i].value)
! free_string(&(headers->user_header[i].value));
! headers->user_header[i].name = NULL;
}
! headers->user_header_count = 0;
}

headers->user_header = safe_realloc(headers->user_header,
--- 618,648 ----
int replace;
{
if (replace) {
+
+ /* Only replace header with same name */
+
int i;
+ int count = 0;
+
for (i = 0; i < headers->user_header_count; i++) {
!
! if (X == headers->user_header[i].name) {
!
! if (headers->user_header[i].value)
! free_string(&(headers->user_header[i].value));
! headers->user_header[i].name = NULL;
! } else {
! headers->user_header[count] = headers->user_header[i];
!
! if (count != i) {
! headers->user_header[i].value = NULL;
! headers->user_header[i].name = NULL;
! }
! count++;
! }
!
}
! headers->user_header_count = count;
}

headers->user_header = safe_realloc(headers->user_header,
Index: elm2.4.ME+.108-cvs/lib/read_rc.c
*** elm2.4.ME+.107/lib/read_rc.c 2003-08-16 09:58:21.000000000 +0300
--- elm2.4.ME+.108-cvs/lib/read_rc.c 2003-10-11 11:42:11.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: read_rc.c,v 1.117 2003/08/15 19:54:56 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.117 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: read_rc.c,v 1.118 2003/10/11 08:42:11 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.118 $ $State: Exp $


*
* Modified by: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************
***************

*** 264,269 ****
--- 264,276 ----
NULL, 0,NULL
};

+ PATH internal_mailcap_t_programs = {
+ 0,
+ NULL, 0, NULL
+ };
+ int internal_mailcap_t_prompt = 0;
+
+
int metoo = 0; /* flag: copy me on mail to alias? */
int mime_body_keywords = TRUE; /* flag: parse body looking for encode */
/* keywords */
Index: elm2.4.ME+.108-cvs/lib/streamsched.c


*** elm2.4.ME+.107/lib/streamsched.c 2003-05-28 21:49:27.000000000 +0300

--- elm2.4.ME+.108-cvs/lib/streamsched.c 2003-09-26 19:06:17.000000000 +0300
***************
*** 1,7 ****


! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.29 2003/05/17 16:13:41 hurtta Exp $";

/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.29 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/
--- 1,7 ----

! static char rcsid[] = "@(#)$Id: streamsched.c,v 1.31 2003/09/26 16:06:17 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.31 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/

Index: elm2.4.ME+.108-cvs/Makefile.SH
*** elm2.4.ME+.107/Makefile.SH 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/Makefile.SH 2003-10-01 20:34:33.000000000 +0300
***************


*** 21,27 ****
echo "Extracting Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make

! # $Id: Makefile.SH,v 1.17 2003/07/24 16:29:51 hurtta Exp $


#
# Makefile for the entire ELM mail system
#
--- 21,27 ----
echo "Extracting Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make

! # $Id: Makefile.SH,v 1.18 2003/10/01 17:34:33 hurtta Exp $


#
# Makefile for the entire ELM mail system
#
***************

*** 87,92 ****
--- 87,93 ----
cd melib; $(MAKE) $(MJ) $(MFLAGS) $@
cd shared_libs; $(MAKE) $(MJ) $(MFLAGS) $@
cd src/messages; $(MAKE) $(MJ) $(MFLAGS) $@
+ cd src/screen; $(MAKE) $(MJ) $(MFLAGS) $@
cd src; $(MAKE) $(MJ) $(MFLAGS) $@
cd utils; $(MAKE) $(MJ) $(MFLAGS) $@
cd doc; $(MAKE) $(MJ) $(MFLAGS) $@
Index: elm2.4.ME+.108-cvs/MANIFEST
*** elm2.4.ME+.107/MANIFEST 2003-09-05 23:33:17.000000000 +0300
--- elm2.4.ME+.108-cvs/MANIFEST 2003-10-01 20:34:33.000000000 +0300
***************
*** 41,47 ****
doc/printmail.1
doc/readmsg.1
doc/tmac.n
- hdrs/elm_curses.h
hdrs/defs.h
hdrs/elm.h
hdrs/elmutil.h
--- 41,46 ----
***************
*** 149,155 ****
src/attach_menu.c
src/builtin++.c
src/calendar.c
- src/curses.c
src/date.c
src/delete.c
src/edit.c
--- 148,153 ----
***************
*** 380,382 ****
--- 378,389 ----
charset/MAPPINGS/MICSFT/CP1256.TXT
charset/MAPPINGS/MICSFT/CP1257.TXT
charset/MAPPINGS/MICSFT/CP1258.TXT
+ 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
+ src/screen/curses.c
Index: elm2.4.ME+.108-cvs/melib/mailcap.c
*** elm2.4.ME+.107/melib/mailcap.c 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/melib/mailcap.c 2003-10-11 14:35:49.000000000 +0300
***************
*** 1,7 ****
! static char rcsid[] = "@(#)$Id: mailcap.c,v 1.9 2003/08/01 08:22:11 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.9 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/

--- 1,7 ----
! static char rcsid[] = "@(#)$Id: mailcap.c,v 1.10 2003/10/11 11:35:49 hurtta Exp $";



/******************************************************************************
! * The Elm (ME+) Mail System - $Revision: 1.10 $ $State: Exp $
*
* Author: Kari Hurtta <hurtt...@ozone.FMI.FI>
*****************************************************************************/

***************
*** 465,470 ****
--- 465,471 ----
struct mailcap_entry Entry; /* Temporary storage */
int unsupported = 0;
media_type_t T = NULL;
+ enum mime_major_type T_major = MIME_TYPE_UNKNOWN;

zero_mailcap_entry(&Entry);
arg_zero(&keyword);
***************
*** 538,544 ****
linenum,mailcaps[mailcap_idx]);

unsupported++;
! } else if (mcES_error == entry_state || !T) {
unsupported++;
} else
process_field(mailcaps[mailcap_idx],linenum,
--- 539,546 ----
linenum,mailcaps[mailcap_idx]);

unsupported++;
! } else if (mcES_error == entry_state ||
! !T && T_major == MIME_TYPE_UNKNOWN) {
unsupported++;
} else
process_field(mailcaps[mailcap_idx],linenum,
***************
*** 560,573 ****
entry->type = handle_mailcap_entry;
entry->p.mailcap = mailcap;

! register_mt_handler(T,entry);

! DPRINT(Debug,4,(&Debug,
! "Mailcap entry for %s/%s added (%s:%d)\n",
! get_major_type_name(T),
! get_subtype_name(T),
! mailcaps[mailcap_idx],
! linenum));

} else {
DPRINT(Debug,2,(&Debug,
--- 562,587 ----
entry->type = handle_mailcap_entry;
entry->p.mailcap = mailcap;

! if (T) {
! register_mt_handler(T,entry);
!
! DPRINT(Debug,4,(&Debug,
! "Mailcap entry for %s/%s added (%s:%d)\n",
! get_major_type_name(T),
! get_subtype_name(T),
! mailcaps[mailcap_idx],
! linenum));
! } else {
! register_mt_defhandler(T_major,entry);
!
! DPRINT(Debug,4,(&Debug,
! "Mailcap entry for default %s/* added (%s:%d)\n",
! get_major_type_name2(T_major),
! mailcaps[mailcap_idx],
! linenum));

!
! }

} else {
DPRINT(Debug,2,(&Debug,
***************
*** 578,583 ****
--- 592,598 ----

unsupported = 0;
T = NULL;
+ T_major = MIME_TYPE_UNKNOWN;

arg_free(&keyword);
arg_free(&string);
***************
*** 824,831 ****
c++;
}

! if (!c || 0 == strcmp(c,"*"))
unsupported++; /* Wild cards are not supported */
else
T = give_media_type(keyword.arg,c,1);
}
--- 839,848 ----
c++;
}

! if (!c)
unsupported++; /* Wild cards are not supported */
+ else if (0 == strcmp(c,"*"))
+ T_major = give_major_type(keyword.arg,1);
else
T = give_media_type(keyword.arg,c,1);
}
Index: elm2.4.ME+.108-cvs/melib/Makefile.SH
*** elm2.4.ME+.107/melib/Makefile.SH 2003-08-05 10:27:06.000000000 +0300
--- elm2.4.ME+.108-cvs/melib/Makefile.SH 2003-10-01 20:34:34.000000000 +0300
***************
*** 16,22 ****
echo "Extracting melib/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.16 2003/08/04 14:58:57 hurtta Exp $
# Makefile for the ELM mail program.
#
# Variables
--- 16,22 ----
echo "Extracting melib/Makefile (with variable substitutions)"
cat >Makefile <<!GROK!THIS!
#!$make
! # $Id: Makefile.SH,v 1.17 2003/10/01 17:34:34 hurtta Exp $
# Makefile for the ELM mail program.
#
# Variables
***************
*** 101,111 ****
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/elm.h: $(INCLDIR)/elm_curses.h $(INCLDIR)/defs.h $(INCLDIR)/melib.h
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/headers.h: $(INCLDIR)/elm_curses.h $(INCLDIR)/defs.h \
$(INCLDIR)/me.h $(INCLDIR)/elmlib.h
$(CHMOD) u+w $@
$(TOUCH) $@
--- 101,111 ----
$(CHMOD) u+w $@
$(TOUCH) $@

! $(INCLDIR)/elm.h: $(INCLDIR)/de