		CHANGES
		Last Modified: $Date$

2001/10/21

   makefml htmlify $ml_name outdir=$out_dir

	ס HTML 륳ޥ
	 Mail::HTML::Lite Ѥ롣
	 fml 4  spool2html бΤȤ褦

   Mail::HTML::Lite 
	Ȥ ID ǥå (TABLE)
	make monthly index always
		monthly_index.html
		month.YYYYMM.html

	prepare top level entrance functions:
		htmlify_file() for file
		htmlify_dir()  for directory
	
	clean up codes, documents
	
	implement _print_index_{begin,end}() and modified to use them
	
	sort location of function definition
	rename functin name:
	_print_attachment -> _print_inline_object
	_raw_text_print   -> _text_print_by_raw_mode
	
	oops, fix untie() operation to be ensured

	check target html is already processed or not
	
	bug fix _address_clean_up() syntax check
	
	check already processed or not
	you can know it by $self->is_ignore($id) method.
	
	move a lot of debug code to "if $debug > 3" in cache_message_info()

2001/10/20

   Mail::HTML::Lite 
	᡼ HTML ⥸塼
	mhonarc Τ褦˶ŤäƤϤʤɬ׽ʬʺ¤εǽϻ
	( Lite ʤ)

	cache information in .ht_hml_* in html article directory
	rewrite links using these data among articles needed to rewrite.
	links contains prev::next by ID (article ID) and prev::next by Thread.
	
	bug fix target lists to update, modified to use the result by
	evaluation_relation()
	
	clean up debug code
	more debug information

	show <META> and <LINK> information in <HEAD> if could
	new() takes charset as argument
	change _decode_mime_string() to method
	modify ifdef in_chaset_to_code() to be more suitable

	we can make index.html and thread.html
	
	Mail::HTML::Lite::new() accepts
		{ db_type => "DB_TYPE", attachment => 0::1 }

	change html_begin argument::($wh, { message => $msg });
	we can specify title in <HEAD>
	several minior changes
	
	bug fix::_address_clean_up() should check return value, which is
	address or not more rigolously.
	
	bug fix::check parent::child (attachment) process or not
	
	more and more debug info

   Mail::Message 
	
	bug fix::$InComingMessage should not local scope. modify it to
	SCALAR REF
	
	bug fix::data_in_body_part() returns whole data not the first
	512 bytes. if $size is specified as argument, return the first
	$size bytes. 
	
	feature::get_data_type_list() returns ARRAY of xxx::yyy by
	default for other method use. If under $debug mdoe, it shows
	verbose output. 

2001/10/19

   import HTML::FromText 1.005
	
   Mail::Bounce 
	Mail::Message::get_data_type_list() is changed. To sync with it,
	use $msg->get_data_type_list( { debug => 1 } ) for debug.
	
2001/10/18

   Tie::JournaledDir 
	change default unit to "day" not number (unix time).

2001/10/17

   variables
	add $confirm_keyword to $available_commands_for_stranger
	add $available_commands_for_stranger to $available_commands

   FML::Command 
	modified FML::Command uses get_attribute() in FML::Command::Attribute

   FML::Command::Attribute 
	renamed FML::Command::ACL -> FML::Command::Attribute.pm

   FML::Command::SendFile 
	support MH style arg::first, last, cur, first:\d+ and last:\d+
	
   FML::Command::User::bye 
	fix typo

   File::Sequence 
	implemente get_id() method to return the latest article id
	update document

2001/10/15

   ե륿󥰤ͭˤ

     FML::Filter::BodyCheck
     FML::Filter::HeaderCheck.pm 
	define @default_rules and use it if rules not specified
	rules() method to overwrite filtering rules

     variables
	define the following variables for filtering (FML::Filter)
		body_cksum_cache_dir
		body_filter_rules	
		body_loop_check_rules	
		header_filter_rules	
		use_body_filter		
		use_body_loop_check	
		use_header_filter	

2001/10/14

   FML::Process::Kernel 
	bug fix::we should pay attention to implisit $_ use
	
   FML::Process::Configure 
	sync style w:::Process::Command

   FML::Process::Command 
	make argument vector from $command
	relocate _parse_command_options()
	implemt _get_command_name()
	clean up
	fix typo

   FML::Command::Admin::get 
	prototype to use FML::Command::SendFile

   FML::Command
   FML::Command::*
   FML::Process::Configure
   FML::Process::Command 
	$optargs -> $command_args

2001/10/13

   FML::Process::Command 
	pass $comname in $optargs
	
   FML::Command::SendFile 
	fix duplicatoin for $charset
	
   FML::Config 
	avoid infinite loop

   FML::Command::SendFile is added
	This module provides basic file sending functions

   implement command: get help summary guide
	FML::Command::SendFile based command        

2001/10/12

   FML::Command 
	remove error_nl()

   FML::Command::Admin::resign 
	->SUPER::process()

   FML::Command::Admin::subscribe 
	clean up log message, LogError() -> croak()

   FML::Command::User::subscribe 
	use reply_message_nl()

   FML::Command::User::unsubscribe 
	confirm version

   FML::Config 
	expand_variable_in_buffer can take optional $args

   FML::Credential 
	bug fix variable name

   FML::Process::Kernel 
	implement search template mechanism in reply_message_nl()
	$config->expand_variable_in_buffer() takes optional $args

   FML::Process::Command 
	use reply_message_nl()
	remove exception mechanism by $obj->error_nl();

   etc/
	define $message_message_dir
	add chaddr to $available_commands

   å
	ƥץ졼Ȥ euc-jp Ȥ

   FML::Config 
	expand_variable_in_buffer()
	expand $varname to $config->{ varname }

   FML::Process::Command 

	add _pre_scan()
	even not member need to use $confirm_keyword.
	for example, 'guide', 'subscribe', 'confirm'

	add _can_accpet_command()
	1. simple command syntax check
	2. use of this command is allowed in FML::Config or not ?
	3. Even new comer need to use commands [ guide, subscirbe, confirm ].

   enable confirmation
	FML::Confirm module Ѥޤ
	ѿ $available_commands_for_stranger 롣
	FML::Confirm provides basic functions needed for confirmation
	+ FML::Command::User::subscribe
	+ FML::Command::User::confirm
	+ FML::Confirm

   FML::Command::Admin::subscribe 
	check address is specified or not

   FML::Command::User::help 
	clean up
	expand_variables_in_file() -> prepare_file_to_return()

   FML::Process::Kernel 
	define prepare_file_to_return():
	expand $xxx variables in template (e.g. $help_file).
	1. in Japanese case, convert kanji code::iso-2022-jp -> euc
	2. expand variables::$ml_name -> elena
	3. back kanji code::euc -> iso-2022-jp
	4. return the new created template

2001/10/11

   FML::Filter::Utils
	it provides utility functions
		is_secure_command_string()
		is_valid_mail_address()

   FML::Process::Command
	it checks input by FML::Filter::Utils::is_secure_command_string()

2001/10/10

   ޥ
	get mget help ʤɤư褦ˤʤä

   FML::Config
	check defined() more

   FML::Credential
	implement is_same_address() completely.
	is_member() accpepts $args->{ address }
	define set_compare_level(), get_compare_level()

   add variables
	command_prompot	= >>>
	help_file = $message_template_dir/help
	message_template_dir = $fml_share_dir/template/$template_file_charset
	template_file_charset = $default_charset

   Mail::Delivery::SMTP
	old IO::Socket has no connected() method. modified to use our
	own socket_is_connected() method or remove connected() check. 

	Mail::Delivery::SMTP	
	+ bug fix: ensure we handle IPv6 case more restrictly  

	Mail::Delivery::Net::INET6
	+ bug fix: clear error counter
	+ check more defined($socket) or not, socket is connected    
	+ more debug log

   FML::Process::Kernel
	define prototype for reply_message_nl() for natural language
	check more defined() or not
	more debug info
	define expand_variables_in_file()
	+ expand $xxx variables in template (e.g. $help_file).

   FML::Process::Command
	bug fix: $obj->$command where $command is a command name not line.
	modified to use reply_meessage_nl()

   FML::Command
	define error_nl(), but a dummy yet now
	+ get natural language information

2001/10/09

   libexec/Standalone.pm
	check $config->{ $x } is defined() or not

   Ticket System
	consider $ticket_subject_tag_location in regexp
	change ticket_id_syntax to "$ml_name/%d" by default
	define ticket_subject_tag_location as "appended"
	change default ticket syntax 
		etc/default_config.cf.ja
		etc/defaults/tickets.cf.ja

	FML::Header::Subject
		change regexp_compile().
		quotemeta() firstly, and hack a few

   FML::Process::Command
	catch up the modification in FML::Process::Distribute.
	make command function work with replying request mail.
	disable lock()/unlock() since each command module lock/unlock
	by itself. 

   FML::Process::Distribute
	modified finish() to use queue_flush()


2001/10/08

   ᡼ǤΥޥɤαǽˤ(ץȥ)
	add a lot of debug messages

	* Affcted modules:
		FML::Command
		FML::Process::Command
		FML::Process::Distribute
		FML::Process::Kernel
		FML::Process::Switch

	* newly added:
		FML::Command::User::help

	* test tools:
		regress/simulation/test-ctl.sh
		regress/testmails/text=plain.command

   FML::Command
   FML::Process::Kernel
	more debug info

   FML::Process::Distribute
	log ACL error

   FML::Process::Switch
	enable "loader --ctladdr" behaves as libexec/command
	more debug messages
	modify style e.g. eval q## -> eval q{} et. al.

   regress/simulation/test-ctl.sh 
	added simple command mode emulator

   regress/simulation/perlcheck 
	add -I ../../fml/libexec

   libexec/loader
	die() -> croak()
	define missing default value in initialization
	remove obsolete variable: $libexec_dir
	eval()-fiy more
	fix error message
	show $@ in error
	fix typo

   fix: more severe initialization check 
	FML::Credential


2001/09/23

   Mail::Message
	implement get_encoding_mechanism() in Mail::Message. 

	implement get_offset(): return offset information in the data.
	return value is	ARRAY.

	return encoding type for specified Mail::Message not whole mail. 
	The return value is one of base64, quoted-printable or undef. 

	Modified Files:
		fml/lib/Mail/Message.pm
		fml/doc/ja/tutorial/module/Mail::Message.sgml
		regress/message/dump.pl

   塼ȥꥢ
	module  ˴ؤ뿷ѡȤ
	module/ ǥ쥯ȥ
		Mail::Message
		IO::Adapter
	ΥץȥפѰդ롣
	Υǥ쥯ȥǤϳƥ⥸塼ξܺ٤ʻȤˤĤ
	ҤΡ

   FML::Filter
	fml 4.0.x εǽ򤭤ȼ롣
	 륹åϽ
	XXX ǡ͡ĤǤ촹ǽ 

	Utils ؿŬʥ⥸塼ذư
	move clean_up_buffer() and compare_euc_string() to
	FML::Filter::BodyCheck and FML::Language::Japanese::Utils
	respectively to remove FML::Filter::Utils.

	MS GUID Ƚ̤롼

2001/09/22

   FML/Config.pm
	if ($ENV{'debug'}) { ... debug ...;}

   TinyScheduler.pm
   FML/Command/Admin/edit.pm
	modified to use File::Spec

2001/09/18

   errormail collection
	add netscape messaging server 3.54 sample
	thanks PR for Toshimi Aoki <toshi@kinotrope.co.jp>

2001/09/17

   IO::Adapter

     * IO::Adapter::{DBI,MySQL,RDBMS}.pm
	rename: $self->{ _driver } -> $self->{ _model_specific_driver } 
	dynamically load DBD:mysql

	move replace(), getline() and get_nextvalue() to DBI.pm 
	since these functions are MI (Map Independent).

	implement setpos(), getpos() and eof() in MySQL.pm 
	since these functions is dependent on map type (MD).

	RDBMS.pm is not used now, so removed.

     * IO/Adapter.pm
	change replace()
	o fix typo: s/regexp/replace/
	o fix case insensitive search when $show_all is on
	o call md_find (md == map dependent, function) if defined
	o enabled to call md_XXX()
		define AUTOLOAD() to hook up md_XXX() functions
		XXX For example, md_XXX() should be implemented at
		XXX IO::Adapter::SQL::toymodel.pm

     * IO/Adapter/SQL/toymodel.pm
	rename: fetch_and_cache_address_list -> fetch_all  
	implement md_find()


2001/09/13

   FML::Process::QueueManager
	send() can take queue id as the argument

   FML::Process::Kernel
	more friendly error message

	implement queue_flush($queue): This flush C<$queue>, that is,
	send mail specified by C<$queue>.  It uses
	FML::Process::QueueManager module.

   FML::Config.pm
	define FIRSTKEY and NEXTKEY for complete hash emulation

   FML::Command::Admin	桼ѥޥɷ
		commit prototype
		makefml uses this class

2001/08/26

   FML::Credential
	implement has_address_in_map() method and is_member() uses this. 
	has_address_in_map() searches the address in the specified map.

   IO::Adapter 饹
	touch() ᥽åɤɲ
	XXX file װʳǤ̵̣ߡ

   FML::Command:: 饹κƹ

	FML::Command.pm		FML::Command 饹ʲؤ
	FML::Command::ACL	ACL
	FML::Command::Utils	ޤ
	FML::Command::User	桼ѥޥɷ
	FML::Command::Admin	桼ѥޥɷ

		newml edit ʤɤ Admin Τ

2001/08/24

  regress/
	add&enable FML::Config {+,-}= overload test tools

2001/08/23

   FML::Config γĥ
	postfix style Τʤĥ

	ѿ̾ += 
	ѿ̾ -= 
	ǡͤ­Ǥޤ

	:
		x  = a b c d
		x -= b
		
		x = a c d

		x  = a b c d
		x += e
		
		x = a b c d e
		ʤɤȤʤ롣

2001/08/22

   clean up
	File::Spec Ȥ褦ѹ


2001/08/21

   Tie::JournaledDir 饹
   Tie::JournaledFile  clean up

	Tie::JournaledDir 饹ϥåȤƤǥ쥯ȥȤ
	ʣĤΥե֤˻Ȥޤ
	줾Υե Tie::JournaledFile Ȥäƥޤ

	ˤ auto expiration 򤹤 Journaled å¸
	ޤ

	add Tie::JournaledDir which wraps Tie::JournaledFile and uses some
	directory as cache area. 

	add/update test tools for Tie::Journaled{File,Dir} modules.

	clean up Tie::JournaledFile
	o remove header in the cache file
	o $self->{ 'key' }
	o $debug is on if $ENV{'debug'} is defined.
	o more carefull check of whether the value is defined or not.
	o quotemeta() for pre search key in find()
	o rename grep() to find()

2001/08/19

  ե륿ɤβ
	ԥ᡼뤫ݤȽꥳɤ򤭤줤ˤ

		Τ signature ѤȽꤹ륳¾
		Utils.pm ⤭줤ˤʤɤä
		

2001/08/06

  ե륿
	clean up 

  fml/lib/
  fml/etc/
	ѿ̾ѹ򤹤롣s/header_check/header_loop_check/
	롼ץåǤ뤳Ȥѿ̾ΤǤϤäꤵ

  IO::Adapter

	IO::Adapter
		set @ISA = qw(IO::Adapter::ErrorStatus) to call error_set()
		check $@ before call configure()
		add more debug codes

	IO::Adapter::MySQL
		ᥤʬ 	IO::Adapter::SQL:: ʲذܤ
		IO::Adapter::MySQL ñʤեȥɤˤ

2001/08/02

   Mail::Message
	bug fix wrong handling of "\n" at the last of part

2001/07/31

   rename FML::NL to FML::Language

   Mail::Bounce class

	ʲΥѥϤǤ褦ˤʤäϤǤ
		Lotus Notes
		pakeo.ne.jp
		jp-r.ne.jp (ۤȤ?)

	Mail::Bounce::Language::Japanese
		ܸ¸ѡ

   Mail::Bounce::DSN

	call again $self->address_clean_up($addr, $addr)
	gives $addr itself as a hint of fixing broken address
	domain part of $addr may match someting e.g. nifty.ne.jp, webtv.ne.jp.

   Mail::Bounce.pm
   Mail::Bounce::FixBrokenAddress.pm 

	use Mail::Bounce::FixBrokenAddress to clean up address

	Mail::Bounce::FixBrokenAddress class provides irrgular
	address handlings, so handles domain/MTA specific addresses.
	For example, nifty.ne.jp, webtv.ne.jp, ...

2001/07/30

   Mail::Bounce class

        pick up Reporting-MTA and Received-From-MTA in DSN

	clean up documentation
	add error examples

	modify Mail::Bounce::$module return "hints" to caller
	(Mail::Bounce class). 

2001/07/19

   add errormail samples

	freeserve.ne.jp
	webtv.ne.jp

2001/07/15

   ѿ

	pid  _pid ѹ

   FML::Config

	enable read and write configuration file

	Ȥ¸Ĥ postfix ե
	ɤ߽񤭤ǽˤ褦

2001/07/15

   Υեߤ:)

$FML: CHANGES.txt,v 1.24 2001/10/21 08:02:08 fukachan Exp $
