namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

-f option and read_config(), prep()



以前 (Date: Wed, 01 Dec 1999 20:00:20 +0900)に
read_config と prep() の順序を入替えた方がいい、
そうしないと $ALLOW_REGEX が効かない
     read_config();
+    my $file_base = prep();
とするのがいいと書きましたが 

  こんどは、その prep() の中に parse_option() があって、そうす
ると、-f で指定したものが read_config() に効かないという問題に
なってしまいます。

僕は

$CONFDIR/mknmz.conf
$CONFDIR/mknmzrc
$ENV{'HOME'}/.mknmzrc
$ConfigFile             ( -f に指定したもの)

  という順に読むのがいい。(後の方が上書き優先) と理解している
のですが、どちらにしても、そうはなっていない気がします。

parse_option() だけ外に出して、それから上に書いたように
複数の設定を読むようにして見ました。
---
(藤原)
--- namazu/src/mknmz.pl.in	Sat Dec 11 09:45:35 1999
+++ namazu-1999-12-14/src/mknmz.pl.in	Wed Dec 15 12:11:33 1999
@@ -68,8 +68,9 @@
     init();
     setup_magic();
     load_modules();
+    my ($output_dir, @targets) = parse_options();
     read_config();
-    my $file_base = prep();
+    my $file_base = prep($output_dir, @targets);
     load_olemodules() if ($var::Opt{'ole'});
 
     my $swap = 1;
@@ -133,18 +134,21 @@
 
 sub read_config () {
     my (@cand) = ();
-    push @cand, $ConfigFile if defined $ConfigFile;
-    push @cand, "$ENV{'HOME'}/.mknmzrc" if defined $ENV{'HOME'};
+    push @cand, "$CONFDIR/mknmz.conf" ;
     push @cand, "$CONFDIR/mknmzrc";
+    push @cand, "$ENV{'HOME'}/.mknmzrc";
+    push @cand, $ConfigFile if defined $ConfigFile;
 
+    print STDERR "Reading config file: " ;
     for my $conf (@cand) {
 	if (-f $conf) {
 	    util::vprint("conf: $conf\n");
 	    do $conf;
 	    $ConfigFile = $conf;
-	    return;
+	    print STDERR " $conf";
 	}
     }
+    print STDERR "\n"
 }
 
 sub re_exec($$$$) {
@@ -620,11 +624,10 @@
 
 sub prep () {
     my $file_base = 0;
-    my $output_dir = "";
-    my @targets = ();
+    my $output_dir = shift @_ ;
+    my @targets = @_ ;
     my @flist = ();
 
-    ($output_dir, @targets) = parse_options();
     $var::OUTPUT_DIR = $output_dir;
 
     require_modules();