diff -urN gns-2.20.org/config.awk gns-2.20/config.awk --- gns-2.20.org/config.awk Sat Aug 26 01:28:22 2000 +++ gns-2.20/config.awk Thu Apr 12 23:11:10 2001 @@ -63,6 +63,7 @@ PERLCMD = "perl"; NKFCMD = "nkf"; NKFCODE = "-j"; + NKFINNERCODE = "-e"; # hachi add. MAILCMD = "mail"; CHMODCMD = "chmod go+w"; diff -urN gns-2.20.org/config.awk~ gns-2.20/config.awk~ --- gns-2.20.org/config.awk~ Thu Jan 1 09:00:00 1970 +++ gns-2.20/config.awk~ Sat Aug 26 01:28:22 2000 @@ -0,0 +1,78 @@ +#!/usr/bin/awk +#### ◇コンフィグレーションスクリプト config.awk V2.10 +#### Copyright 1998,1999,2000 GORRY. +#### mailto: gorry@hauN.org +#### +#### テスト済ターゲットはFreeBSDのみ。 +#### +#### History: +#### 2000/07/05 V2.10 設定可能項目を追加。 +#### 2000/01/12 V2.01 GETDIRに対応。 +#### 1999/09/30 V2.00 新規作成。 + +BEGIN { + # postmail.awkでの発信先メールアドレス + # 発信するかどうかはconfig.phの$FLAG_POSTMAILに記録 + MAILTO = "yourmail@yourhost.net"; + + # recvmail.awkでの受信メールアドレス + # この文字列を含むメールアドレスで発信されたメールのみ更新対象とする + # 空("")ならすべてのメールが対象となる。 + MAILFROM = "yourmail@yourhost.net"; + + # postmail.awk, recvmail.awkでのSubject + # このSubjectのメールのみ更新対象とする + MAILSUBJECT = "@@GNS-POSTMAIL"; + + # 0以外でrecvmail.awkでの追加受信を許可する + MAILADD = 0; + + # ダイジェスト掲載日数(本日を含む) + DIGESTDAYS = 4; + + # !0で記述のない日付を表示 + PRINTNOEXISTDAY = !0; + + # パス区切り文字 + SLASH = "/"; + if ( match( ENVIRON["PATH"], "\\\\" ) || # PATHのパス記号に合わせる + match( ENVIRON["PATH"], "\\" ) ) { # (for mawk) + SLASH = "\\"; + } + + # 日記入力ディレクトリ(日記ソースを格納する) + GETDIR = ".."; + + # 日記出力ディレクトリ + PUTDIR = ".."; + + # テンポラリディレクトリ + TMPDIR = "tmp"; + + # 保存データディレクトリ + KEEPDIR = "keep"; + + # ダイジェストファイル名 + DIGESTNAME = "digestdiary.html"; + + # 最新更新日付記録ファイル名 + LASTUPLOADNAME = "lastupload"; + + # 各コマンド名 + AWKCMD = "awk"; + PERLCMD = "perl"; + NKFCMD = "nkf"; + NKFCODE = "-j"; + MAILCMD = "mail"; + CHMODCMD = "chmod go+w"; + + PATH = ENVIRON["PATH"]; # path + if ( PATH == "" ) PATH = ENVIRON["Path"]; # path + if ( PATH == "" ) PATH = ENVIRON["path"]; # path + if ( match( PATH, "\\\\" ) || # Win32ならPATHに"\"が含まれるはず + match( PATH, "\\" ) ) { # (for mawk) + NKFCODE = "-s"; # nkfの出力はS-JISにする +# NKFCODE = "-j"; # iso-2022-jp出力したければこちらを使う + CHMODCMD = "echo>nul"; # chmodは無効 + } +} diff -urN gns-2.20.org/mkd.awk gns-2.20/mkd.awk --- gns-2.20.org/mkd.awk Tue Nov 7 15:08:24 2000 +++ gns-2.20/mkd.awk Thu Apr 12 22:05:30 2001 @@ -4,6 +4,8 @@ #### mailto: gorry@hauN.org #### #### History: +#### 2001/04/12 V2.20j hachi patch add. JISコードのマスタファイル対応 +#### #### 2000/11/07 V2.20 パラメータ置換データベース設置。 #### 2000/09/25 V2.12 @closeが正しく処理されないバグを修正。 #### 2000/08/25 V2.10 @s1・@s2を追加。 @@ -158,10 +160,20 @@ } ######################################################################## +### ファイル存在チェック +## hachi add. #2.20j +# +function is_existfile(f ,ret) { + ret=(getline < f) + close(f) + return (ret>=0) +} + +######################################################################## ### 1日分のマスタファイルを得る ## 同時に段落タグ置換作業を行なう # -function GetDiary( year, month, date, wday, part , line, sectionmode, nsection, fin, sections ) +function GetDiary( year, month, date, wday, part , line, sectionmode, nsection, fin, sections, cmd, dtmp ) { PARAM_WEATHER = ""; PARAM_TOPIC = ""; @@ -175,7 +187,18 @@ sections="abcdefghijklmnopqrstuvwxyz"; # print fin; - while ( (getline line 0 ) { + # hachi add. #2.20j + # 一度文字コードを変更したものを + # テンポラリファイルに出力してそちらからマスタファイルを読む + dtmp = TMPDIR SLASH "%tmp999.out"; + if ( !is_existfile(fin) ) { + CloseSection( sectionmode ); + return; + } + cmd = NKFCMD " -s " fin "> " dtmp; + system(cmd); + + while ( (getline line 0 ) { sub( "\r", "", line ); if ( length(line) <= 0 ) { if ( sectionmode == 1 ) { @@ -264,7 +287,7 @@ DIARYLINE[DIARYLINES++] = line; } CloseSection( sectionmode ); - close( fin ); + close( dtmp ); } ########################################################################