*** majordomo.orig Mon Jan 19 20:10:33 1998 --- majordomo Sun May 17 02:09:24 1998 *************** *** 64,69 **** --- 64,70 ---- require "majordomo.pl"; # all sorts of general-purpose Majordomo subs require "shlock.pl"; # NNTP-style file locking require "config_parse.pl"; # functions to parse the config files + require "jcode.pl"; # for Japanized config (by yohta) print STDERR "$0: requires succeeded. Setting defaults.\n" if $DEBUG; *************** *** 963,968 **** --- 964,970 ---- if (open(LCONFIG, "$listdir/$clean_list.config")) { while () { + &jcode'convert(*_, "jis", "euc"); # for Japanized config(yohta) print REPLY $_; } print REPLY "\n#[Last updated ", *************** *** 1016,1021 **** --- 1018,1024 ---- if ($_ eq "EOF") { last; } + &jcode'convert(*_, "euc"); # for Japanized config (yohta) print NCONFIG $_, "\n"; } close(NCONFIG) || *** config_parse.pl.orig Mon Jan 19 19:44:25 1998 --- config_parse.pl Mon Jan 19 20:10:46 1998 *************** *** 148,416 **** # The text is wrapped and filled on output. %comments = ( 'welcome', ! "If set to yes, a welcome message (and optional 'intro' file) will be ! sent to the newly subscribed user.", 'announcements', ! "If set to yes, comings and goings to the list will be sent to the list ! owner. These SUBSCRIBE/UNSUBSCRIBE event announcements are informational ! only (no action is required), although it is highly recommended that they ! be monitored to watch for list abuse.", 'get_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'index_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'who_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'which_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'info_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'intro_access', ! "One of three values: open, list, closed. Open allows anyone ! access to this command and closed completely disables the ! command for everyone. List allows only list members access, ! or if restrict_post is defined, only the addresses in those ! files are allowed access.", 'advertise', ! "If the requestor email address matches one of these ! regexps, then the list will be listed ! in the output of a lists command. ! Failure to match any regexp excludes the list from ! the output. The regexps under noadvertise override these regexps.", 'comments', ! "Comment string that will be retained across config file rewrites.", 'noadvertise', ! "If the requestor name matches one of these ! regexps, then the list will not be listed ! in the output of a lists command. ! Noadvertise overrides advertise.", 'description', ! "Used as description for mailing list ! when replying to the lists command. ! There is no quoting mechanism, and ! there is only room for 50 or so ! characters.", 'subscribe_policy', ! "One of three values: open, closed, auto; plus an optional ! modifier: '+confirm'. Open allows people to subscribe themselves to ! the list. Auto allows anybody to subscribe anybody to the list without ! maintainer approval. Closed requires maintainer approval for all ! subscribe requests to the list. Adding '+confirm', ie, ! 'open+confirm', will cause majordomo to send a reply back to the ! subscriber which includes a authentication number which must be sent ! back in with another subscribe command.", 'unsubscribe_policy', ! "One of three values: open, closed, auto. Open allows people to ! unsubscribe themselves from the list. Auto allows anybody to unsubscribe ! anybody to the list without maintainer approval. The existence of the ! file .auto is the same as specifying the value auto. Closed ! requires maintainer approval for all unsubscribe requests to the ! list. In addition to the keyword, if the file .closed ! exists, it is the same as specifying the value closed. The value of ! this keyword overrides the value supplied by any existent files.", 'mungedomain', ! "If set to yes, a different method is used to determine a matching ! address. When set to yes, addresses of the form user\@dom.ain.com are ! considered equivalent to addresses of the form user\@ain.com. This ! allows a user to subscribe to a list using the domain address rather ! than the address assigned to a particular machine in the domain. This ! keyword affects the interpretation of addresses for subscribe, ! unsubscribe, and all private options.", 'admin_passwd', ! "The password for handling administrative ! tasks on the list.", 'strip', ! "When adding address to the list, strip off all ! comments etc, and put just the raw address in the ! list file. In addition to the keyword, if the file ! .strip exists, it is the same as ! specifying a yes value. That yes value is overridden ! by the value of this keyword.", 'date_info', ! "Put the last updated date for the info file at the ! top of the info file rather than having it appended ! with an info command. This is useful if the file is being ! looked at by some means other than majordomo (e.g. finger).", 'date_intro', ! "Put the last updated date for the intro file at the ! top of the intro file rather than having it appended ! with an intro command. This is useful if the file is being ! looked at by some means other than majordomo (e.g. finger).", 'moderate', ! "If yes, all postings to the list ! must be approved by the moderator.", 'moderator', ! "Send bounces to moderator instead of owner-", 'approve_passwd', ! "Password to be used in the approved header ! to allow posting to moderated list, or ! to bypass resend checks.", 'sender', ! "The envelope and sender address for the ! resent mail. This string has \"\@\" and the value ! of resend_host appended to it to make a ! complete address. For majordomo, it provides the sender address ! for the welcome mail message generated as part of the subscribe command.", 'maxlength', ! "The maximum size of an unapproved message in characters. When used ! with digest, a new digest will be automatically generated if the size ! of the digest exceeds this number of characters.", 'precedence', ! "Put a precedence header with value ! into the outgoing message.", 'reply_to', ! "Put a reply-to header with value ! into the outgoing message. If the token \$SENDER is used, then the ! address of the sender is used as the value of the reply-to header. ! This is the value of the reply-to header for digest lists.", 'restrict_post', ! "If defined, only addresses listed in these files (colon or ! space separated) can post to the mailing list. By default, ! these files are relative to the lists directory. These files ! are also checked when get_access, index_access, info_access, ! intro_access, which_access, or who_access is set to 'list'. ! This is less useful than it seems it should be since there ! is no way to create these files if you do not have access to ! the machine running resend. This mechanism will be replaced ! in a future version of majordomo/resend.", 'resend_host', ! "The host name that is appended to all address ! strings specified for resend.", 'purge_received', ! "Remove all received lines before resending the message.", 'administrivia', ! "Look for administrative requests (e.g. subscribe/unsubscribe) and forward ! them to the list maintainer instead of the list.", 'debug', ! "Don't actually forward message, just go though the motions.", 'archive_dir', ! "The directory where the mailing list archive is kept. This item does ! not currently work. Leave it blank.", 'message_fronter', ! "Text to be prepended to the beginning of all messages posted to the list. ! The text is expanded before being used. The following expansion tokens ! are defined: \$LIST - the name of the current list, \$SENDER - the ! sender as taken from the from line, \$VERSION, the version of ! majordomo. If used in a digest, only the expansion token _SUBJECTS_ is ! available, and it expands to the list of message subjects in the digest", 'message_footer', ! "Text to be appended at the end of all messages posted to the list. ! The text is expanded before being used. The following expansion tokens ! are defined: \$LIST - the name of the current list, \$SENDER - the ! sender as taken from the from line, \$VERSION, the version of ! majordomo. If used in a digest, no expansion tokens are provided", 'message_headers', ! "These headers will be appended to the headers of the posted message. ! The text is expanded before being used. The following expansion tokens ! are defined: \$LIST - the name of the current list, \$SENDER - the ! sender as taken from the from line, \$VERSION, the version of ! majordomo.", 'subject_prefix', ! "This word will be prefixed to the subject line, if it is not already ! in the subject. The text is expanded before being used. The following ! expansion tokens are defined: \$LIST - the name of the current list, ! \$SENDER - the sender as taken from the from line, \$VERSION, the ! version of majordomo.", 'taboo_headers', ! "If any of the headers matches one of these regexps, then the message ! will be bounced for review.", 'taboo_body', ! "If any line of the body matches one of these regexps, then the message ! will be bounced for review.", 'digest_volume', ! "The current volume number", 'digest_issue', ! "The issue number of the next issue", 'digest_work_dir', ! "The directory used as scratch space for digest. Don't ! change this unless you know what you are doing", 'digest_name', ! "The subject line for the digest. This string has the volume ! and issue appended to it.", 'digest_archive', ! "The directory where the digest archive is kept. This item does ! not currently work. Leave it blank.", ! 'digest_rm_footer', "The value is the name of the list that applies ! the header and footers to the messages that are received by ! digest. This allows the list supplied headers and footers to be ! stripped before the messages are included in the digest. This keyword ! is currently non operative.", 'digest_rm_fronter', ! 'Works just like digest_rm_footer, except it removes the front material. ! Just like digest_rm_footer, it is also non-operative.', 'digest_maxlines', ! "automatically generate a new digest when the size of the digest exceeds ! this number of lines.", 'digest_maxdays', ! "automatically generate a new digest when the age of the oldest article in ! the queue exceeds this number of days.", ); # match commands to their subsystem, by default only 4 subsystems --- 148,390 ---- # The text is wrapped and filled on output. %comments = ( 'welcome', ! "もし yes に設定されていたら、ようこそメッセージ(と付加的な 'intro' ファイル ! が新しく subscribe した人に送信されます", 'announcements', ! "もしyesに設定されていたら、リストへの参加とリストからの脱退が ! リストの管理人に送信されます。これらのSUBSCRIBE/UNSUBSCRIBEイ ! ベントの連絡は情報だけ(何の作業も必要ありません)ですが、リスト ! 荒らしを監視するために高く推奨されます", 'get_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'index_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'who_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'which_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'info_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'intro_access', ! "open, list, closed の 3 つの値のうち 1 つ。open は誰でもこのコ ! マンドを使うことを許可します。list はリストのメンバーにのみアク ! セスを許し、closed は完全に誰にもコマンドを使えなくします。", 'advertise', ! "要求者のメールアドレスがこれらの正規表現のひとつにマッチすれば、 ! リストは lists コマンドの出力に載せられます。どの正規表現にもマッ ! チしなければ出力から除かれます。noadvertise の正規表現は、これ ! らの正規表現を上書きします。", 'comments', ! "設定ファイルを書き換える時に保持するコメント文字列", 'noadvertise', ! "要求者の名前がこれらの正規表現の一つにマッチした場合、リストは ! lists コマンドの出力に列挙されません。noadvertise は advertise ! に優先します。", 'description', ! "lists コマンドの返事をする時に、メーリングリストの説明として使 ! われます。引用メカニズムはなく、50 文字までの部屋しかありません。", 'subscribe_policy', ! "open, closed, auto の 3 つの値から 1 つ ; そして付加的な修飾語: ! '+confirm'。open は自分自身をリストに subscribe することを許可 ! します。auto は誰でも管理人の承認なしにリストに誰でも加えること ! ができます。closed は全ての subscribe 要求に管理人の承認を必要 ! とします。'+confirm' を加えると、例えば 'open+confirm' は ! majordomo が subscribe した人に二度目の subscribe コマンドに必 ! 要な認証番号を含んだ返事を返すようにします。", 'unsubscribe_policy', ! "open, closed, auto の 3 つの値から 1 つ。open は自分自身をリス ! トから unsubscribe することを許可します。auto は誰でも管理人の ! 承認なしにリストから誰でも削ることができます。.auto ! ファイルの存在は値を auto にするのと同じことになります。closed ! はリストへの全ての unsubscribe 要求に管理人の承認を必要とするよ ! うになります。キーワードに加え .closed というファイル ! が存在すると、値に closed を指定したのと同じになります。このキー ! ワードの値は、どのファイルの存在によって与えられた値も上書きし ! ます。", 'mungedomain', ! "もし yes なら、アドレスにマッチしているかを調べるのに違った方法 ! が使われます。yes に設定された場合、user\@dom.ain.com 形式のアド ! レスは user\@ain.com と同じアドレスとして扱われます。この設定は ! ユーザにドメインの特定のマシンにつけられたアドレスではなくドメ ! インのアドレスを使ってリストに subscribe することを許可します。 ! このキーワードは subscribe, unsubscribe そして全ての非公開のオ ! プションでのアドレス解釈に作用します。", 'admin_passwd', ! "リストを管理する上での作業をするためのパスワード(訳註:そのもの)", 'strip', ! "リストにアドレスを加える時に、全てのコメントなどをはぎ取り、生 ! のアドレスのみをリストファイルに加えます。キーワードに先だって、 ! .strip というファイルが存在した場合、yes を指定したの ! と同じになります。その yes という値はこのキーワードの値によって ! 上書きされます。", 'date_info', ! "info ファイルの最終更新日を info コマンド によって付け加えられ ! るのでなく、info ファイルの先頭に付けるようにします。ファイルが ! majordomo 以外(例えば finger)から参照される場合に便利です。", 'date_intro', ! "intro ファイルの最終更新日を info コマンド によって付け加えられ ! るのでなく、info ファイルの先頭に付けるようにします。ファイルが ! majordomo 以外(例えば finger)から参照される場合に便利です。", 'moderate', ! "もし yes なら、リストに送られた全てはモデレータによる承認を受け ! なければなりません。", 'moderator', ! "bounce を owner- の代わりにモデレータに送ります。", 'approve_passwd', ! "モデレートなリストに送信を許可するための approved ヘッダ ! あるいは resend チェックをバイパスするのに使うパスワード(訳註: ! そのもの)", 'sender', ! "送信されるメールのエンベローブと送信者のアドレス。この文字列 ! は 完全なアドレスを作るために\"\@\" と resend_host の値が付加され ! ます。majordomo にとっては、これは subscribe コマンドの一部とし ! て作られるウェルカム・メール・メッセージの送信者アドレスとして ! 使われます。", 'maxlength', ! "approveされていないメッセージの最大文字数。ダイジェストにおいては、 ! ダイジェストの大きさがこの文字の数を越えた場合、新しいダイジェス ! トが自動的に作られます。", 'precedence', ! "外に出ていくメッセージの Precedence ヘッダの値としてこの値を用 ! います。", 'reply_to', ! "外に出ていくメッセージの Reply-To ヘッダにこの値を用います。 ! \$SENDER が用いられると、送信者のアドレスが Reply-To ヘッダの ! 値として使われます。この値はダイジェストリストの Reply-To ! ヘッダです。", 'restrict_post', ! "設定されると(コロンまたは空白で区切られた)ファイルのどれかに書 ! かれたアドレスからしかメーリングリストに送信できなくなります。 ! デフォルトではこれらのファイルはリストのディレクトリへの相対 ! になります。これらのファイルは get_access, index_access, info_access, ! intro_access, which_access, who_access が 'list' に設定されている ! 時にもチェックされます resend が動いているマシンにあなたがアクセ ! スできない場合これらのファイルを作ることができないので、見た目よ ! りも便利ではありません。このメカニズムは majordomo/resend の将来 ! のバージョンでは置き換えられるでしょう。", 'resend_host', ! "resend に指定する全てのアドレスに加えられるホスト名。", 'purge_received', ! "メッセージを送信する前に全ての Received 行を削除します。", 'administrivia', ! "管理上の要求(例えば subscribe/unsubscribe)を見張って、それらをリス ! トではなくリストの管理人に転送する。", 'debug', ! "実際にメッセージを送信せずに、したふりをする。", 'archive_dir', ! "メーリングリストのアーカイブが保管されるディレクトリ。この項目 ! は現在働いていません。空白のままにしてください。", 'message_fronter', ! "リストに送られたすべてのメッセージの最初に加えられる文字列で ! す。文字列は使用される前に展開されます。以下の展開されるトーク ! ンが定義されています: \$LIST - リストの名前, \$SENDER - from ! 行からとられた送信者, \$VERSION - majordomo のバージョン。ダイ ! ジェストでは _SUBJECTS_ トークンのみが使え、そのダイジェストの ! メッセージの subject のリストに展開されます。", 'message_footer', ! "リストに送られたすべてのメッセージの最後に加えられる文字列で ! す。文字列は使用される前に展開されます。以下の展開されるトーク ! ンが定義されています: \$LIST - リストの名前, \$SENDER - from ! 行からとられた送信者, \$VERSION - majordomo のバージョン。ダイ ! ジェストでは展開されるトークンは用意されません。", 'message_headers', ! "リストに送られたすべてのメッセージのヘッダに加えられる文字列 ! です。文字列は使用される前に展開されます。以下の展開されるトー ! クンが定義されています: \$LIST - リストの名前, \$SENDER - from ! 行からとられた送信者, \$VERSION - majordomo のバージョン。", 'subject_prefix', ! "この単語は Subject に既になければ、 Subject 行の先頭につけられ ! ます。文字列は使用される前に展開されます。以下の展開されるトーク ! ンが定義されています: \$LIST - リストの名前, \$SENDER - From 行か ! らとられた送信者, \$VERSION - majordomo のバージョン。", 'taboo_headers', ! "ヘッダのどれかの行がこれらの正規表現の一つにマッチした場合、メッ ! セージは再調査のために bounce に回されます。", 'taboo_body', ! "本文のどれかの行がこれらの正規表現の一つにマッチした場合、メッ ! セージは再調査のために bounce に回されます。", 'digest_volume', ! "現在の巻の番号", 'digest_issue', ! "次の号の号数", 'digest_work_dir', ! "ダイジェストのための作業に使われるディレクトリ。自分が何をして ! いるかがわかっている時以外は変更してはなりません。", 'digest_name', ! "ダイジェストの Subject 行。この文字列には巻が含まれ、号が加わります。", 'digest_archive', ! "ダイジェストのアーカイブが保管されるディレクトリ。この項目 ! は現在働いていません。空白のままにしてください。", ! 'digest_rm_footer', "この値はダイジェストによって受け取られるメッ ! セージのヘッダとフッターに使われるリストの名前です。メッセージは ! ダイジェストに含まれる前にリストに加えられたヘッダとフッタをはぎ ! とられます。このキーワードは現在使われていません。", 'digest_rm_fronter', ! 'digest_rm_footer と同じように働きますが、これは前付けを削除しま ! す。digest_rm_footer と同じように、現在使われていません。', 'digest_maxlines', ! "ダイジェストのサイズがこの行数を越えたら、自動的に ! 新しいダイジェストを作成する。", 'digest_maxdays', ! "配送を待っている最も古い記事の日数がこの日数を越えたら自動的に ! 新しいダイジェストを作成する。", ); # match commands to their subsystem, by default only 4 subsystems *************** *** 636,698 **** &main'abort( "Can't create new config file $listdir/$list.config"); print MCONFIG <'s. (undef) as default value means that the keyword is not ! # defined or used. EOS open(IN, "< $listdir/$list.config.out") || --- 610,668 ---- &main'abort( "Can't create new config file $listdir/$list.config"); print MCONFIG < の中に書かれ ! # ています。デフォルト値が(未定義)となっている場合はそのキーワードが定義 ! # されていないか、使用されないことを意味しています。 EOS open(IN, "< $listdir/$list.config.out") ||