mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
allow - modifier to append rather than prepend paths within .init definition files
This commit is contained in:
parent
d0d2ac4fa0
commit
88eea6be3a
@ -138,6 +138,10 @@ sub CTAttachMod {
|
|||||||
&CTUDebug( "post-pending '" . $_[1] . "' to " . $_[0] .
|
&CTUDebug( "post-pending '" . $_[1] . "' to " . $_[0] .
|
||||||
"\n" ) ;
|
"\n" ) ;
|
||||||
$newenv{$_[0]} = $newenv{$_[0]} . " " . $_[1] ;
|
$newenv{$_[0]} = $newenv{$_[0]} . " " . $_[1] ;
|
||||||
|
} elsif ( $envpostpendexceptions{$_[0]}{$_[1]} ) {
|
||||||
|
&CTUDebug( "post-pending (by exception) '" . $_[1] . "' to '" . $_[0] .
|
||||||
|
"'\n" ) ;
|
||||||
|
$newenv{$_[0]} = $newenv{$_[0]} . " " . $_[1] ;
|
||||||
} else {
|
} else {
|
||||||
&CTUDebug( "pre-pending '" . $_[1] . "' to " . $_[0] .
|
&CTUDebug( "pre-pending '" . $_[1] . "' to " . $_[0] .
|
||||||
"\n" ) ;
|
"\n" ) ;
|
||||||
@ -232,6 +236,7 @@ sub CTAttachCompute {
|
|||||||
local( %localdo );
|
local( %localdo );
|
||||||
local( $localdocnt ) = 0 ;
|
local( $localdocnt ) = 0 ;
|
||||||
local( %localpost );
|
local( %localpost );
|
||||||
|
local( %localpostexceptions ) = () ;
|
||||||
if ( -e $init ) {
|
if ( -e $init ) {
|
||||||
&CTUDebug( "scanning " . $_[0] . ".init\n" ) ;
|
&CTUDebug( "scanning " . $_[0] . ".init\n" ) ;
|
||||||
local( @linesplit ) ;
|
local( @linesplit ) ;
|
||||||
@ -249,19 +254,37 @@ sub CTAttachCompute {
|
|||||||
$linetmp = $linesplit[1] ;
|
$linetmp = $linesplit[1] ;
|
||||||
shift( @linesplit ) ;
|
shift( @linesplit ) ;
|
||||||
shift( @linesplit ) ;
|
shift( @linesplit ) ;
|
||||||
|
$linesplitjoin = join( " ", @linesplit ) ;
|
||||||
|
if ( $linesplit[0] eq "-" ) {
|
||||||
|
shift( @linesplit ) ;
|
||||||
|
$linesplitjoin = join( " ", @linesplit ) ;
|
||||||
|
$localpostexceptions{$linetmp}{$linesplitjoin} = 1 ;
|
||||||
|
&CTUDebug( "Creating post-pend exception for '" .
|
||||||
|
$linetmp . "':'" . $linesplitjoin . "'\n" ) ;
|
||||||
|
}
|
||||||
if ( $localmod{$linetmp} eq "" ) {
|
if ( $localmod{$linetmp} eq "" ) {
|
||||||
$localmod{$linetmp} = join( " ", @linesplit ) ;
|
$localmod{$linetmp} = $linesplitjoin ;
|
||||||
} else {
|
} else {
|
||||||
$localmod{$linetmp} = $localmod{$linetmp} . " " .
|
$localmod{$linetmp} = $localmod{$linetmp} . " " .
|
||||||
join( " ", @linesplit ) ;
|
$linesplitjoin ;
|
||||||
}
|
}
|
||||||
} elsif ( $_ =~ /^MODREL/ ) {
|
} elsif ( $_ =~ /^MODREL/ ) {
|
||||||
@linesplit = split ;
|
@linesplit = split ;
|
||||||
$linetmp = $linesplit[1] ;
|
$linetmp = $linesplit[1] ;
|
||||||
shift( @linesplit ) ;
|
shift( @linesplit ) ;
|
||||||
shift( @linesplit ) ;
|
shift( @linesplit ) ;
|
||||||
|
$postexception = 0 ;
|
||||||
foreach $loop ( @linesplit ) {
|
foreach $loop ( @linesplit ) {
|
||||||
|
if ( $loop eq "-" ) {
|
||||||
|
$postexception = 1 ;
|
||||||
|
next ;
|
||||||
|
}
|
||||||
$looptmp = $root . "/" . &CTUShellEval($loop) ;
|
$looptmp = $root . "/" . &CTUShellEval($loop) ;
|
||||||
|
if ( $postexception ) {
|
||||||
|
$localpostexceptions{$linetmp}{$looptmp} = 1 ;
|
||||||
|
&CTUDebug( "Creating post-pend exception for '" .
|
||||||
|
$linetmp . "':'" . $looptmp . "'\n" ) ;
|
||||||
|
}
|
||||||
if ( -e $looptmp ) {
|
if ( -e $looptmp ) {
|
||||||
if ( $localmod{$linetmp} eq "" ) {
|
if ( $localmod{$linetmp} eq "" ) {
|
||||||
$localmod{$linetmp} = $looptmp ;
|
$localmod{$linetmp} = $looptmp ;
|
||||||
@ -398,6 +421,7 @@ sub CTAttachCompute {
|
|||||||
foreach $item ( keys %localpost ) {
|
foreach $item ( keys %localpost ) {
|
||||||
$envpostpend{$item} = $localpost{$item} ;
|
$envpostpend{$item} = $localpost{$item} ;
|
||||||
}
|
}
|
||||||
|
%envpostpendexceptions = %localpostexceptions;
|
||||||
foreach $item ( keys %localmod ) {
|
foreach $item ( keys %localmod ) {
|
||||||
local( @splitthis ) = split( / +/, $localmod{$item} ) ;
|
local( @splitthis ) = split( / +/, $localmod{$item} ) ;
|
||||||
local( $thing ) ;
|
local( $thing ) ;
|
||||||
@ -415,6 +439,7 @@ sub CTAttachCompute {
|
|||||||
$envdo{$docnt} = $localdo{$item} ;
|
$envdo{$docnt} = $localdo{$item} ;
|
||||||
$docnt++ ;
|
$docnt++ ;
|
||||||
}
|
}
|
||||||
|
%envpostpendexceptions = () ;
|
||||||
}
|
}
|
||||||
|
|
||||||
&CTUDebug( "out of CTAttachCompute\n" ) ;
|
&CTUDebug( "out of CTAttachCompute\n" ) ;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user