スクリプトは Wed Apr 28 21:35:55 2004 に開始しました bash-2.05$ cat CVS/Root :ext:toyoda@www.gfd-dennou.org:/GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot bash-2.05$ cvs checkout CVSROOT cvs server: Updating CVSROOT U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg bash-2.05$ cd CVSROOT/ bash-2.05$ ls CVS commitinfo cvswrappers loginfo notify taginfo checkoutlist config editinfo modules rcsinfo verifymsg bash-2.05$ mv ~/tmp/force-euc.pl . bash-2.05$ cat force-euc.pl #!/usr/bin/perl # forcesjis.pl - test the text is pure sjis (not including hankaku katakana) $BinaryPattern = '\.(BMP|CHM|CUR|DAT|DLL|DOC|EXE|GIF|ICO|JPG|LIB|PNG|WAV)$'; for $arg (@ARGV) { if (-d $arg) { # chdir($arg) || warn("cannot chdir to $arg ($!)\n"); next; } if ($arg =~ m/$BinaryPattern/i) { warn("filename $arg seems to be binary: check skipped\n"); next; } open(FILE, $arg) || (warn("cannot open $arg ($!)\n"), next); $ARGV = $arg; while () { for ($i = 0; $i < length($_); $i++) { $c = substr($_, $i, 1); if ($c =~ /[\t\n\r\x20-\x7E\xA1-\xFE]/) { next; } &barf('Broken EUC', $_); } } } exit 0; sub barf { print STDERR "$ARGV: " if $ARGV ne '-'; warn @_, ". Only EUC-JP or ASCII allowed.\n"; exit 1; } bash-2.05$ ls CVS config force-euc.pl notify verifymsg checkoutlist cvswrappers loginfo rcsinfo commitinfo editinfo modules taginfo bash-2.05$ cvs add force-euc.pl cvs server: scheduling file `force-euc.pl' for addition cvs server: use 'cvs commit' to add this file permanently bash-2.05$ ed checkoutlist 493 $ # comment lines begin with '#' a force-euc.pl . w 506 q bash-2.05$ cvs commit -m 'code checker installed' cvs commit: Examining . Checking in checkoutlist; /GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot/CVSROOT/checkoutlist,v <-- checkoutlist new revision: 1.2; previous revision: 1.1 done RCS file: /GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot/CVSROOT/force-euc.pl,v done Checking in force-euc.pl; /GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot/CVSROOT/force-euc.pl,v <-- force-euc.pl initial revision: 1.1 done cvs server: Rebuilding administrative file database bash-2.05$ ls CVS config force-euc.pl notify verifymsg checkoutlist cvswrappers loginfo rcsinfo commitinfo editinfo modules taginfo bash-2.05$ ed verifymsg 1026 $ # repository. a DEFAULT /usr/bin/perl $CVSROOT/CVSROOT/force-euc.pl . w 1078 q bash-2.05$ ed commitinfo 760 $ # in addition to the first matching regex or "DEFAULT". a DEFAULT /usr/bin/perl $CVSROOT/$ CVSROOT/force-euc.pl . w 812 q bash-2.05$ cvs commit -m 'checker forced' cvs commit: Examining . Checking in commitinfo; /GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot/CVSROOT/commitinfo,v <-- commitinfo new revision: 1.2; previous revision: 1.1 done Checking in verifymsg; /GFD_Dennou_Club/dc-arch/prepri/00inprep/gt3review/cvsroot/CVSROOT/verifymsg,v <-- verifymsg new revision: 1.2; previous revision: 1.1 done cvs server: Rebuilding administrative file database bash-2.05$ スクリプトは Wed Apr 28 21:59:16 2004 に終了しました