--- deliantra/Deliantra-Client/DC/Main.pm 2011/12/27 09:17:27 1.2 +++ deliantra/Deliantra-Client/DC/Main.pm 2011/12/30 10:59:00 1.5 @@ -19,6 +19,7 @@ use common::sense; use Carp 'verbose'; +use Cwd (); use EV; BEGIN { *time = \&EV::time } @@ -42,7 +43,15 @@ BEGIN { $SIG{__DIE__} = sub { - return if $^S; + return if $^S; # quick reject + + # return if there are any eval contexts in the csall stack + for my $i (0..999) { + my ($sub, $is_require) = (caller $i)[3, 7] + or last; + return if $sub eq "(eval)" && !$is_require; + } + crash "CRASH/DIE: $_[0]" => 1; DC::fatal Carp::longmess "$_[0]"; } @@ -1133,7 +1142,7 @@ tooltip => "You can override the audio driver to use here. Leaving it empty will result " . "in Deliantra picking one automatically. GNU/Linux users often prefer specific " . "drivers though, and can experiment with alsa, dsp, esd, pulse, arts, nas " - . "or other system-specific drivers. Selecting the wrong driver here will simply result" + . "or other system-specific drivers. Selecting the wrong driver here will simply result " . "in no sound.", on_changed => sub { my ($self, $value) = @_; $CFG->{audio_driver} = $value; 1 } ); @@ -1843,12 +1852,12 @@ $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $Deliantra::VARDIR, tooltip => ""); $table->add_at (0, $row , new DC::UI::Label align => 1, text => "Database Directory"); $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $DC::DB::DBDIR, tooltip => ""); + $table->add_at (0, $row , new DC::UI::Label align => 1, text => "Urlader (Prebuilt)"); + $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $ENV{URLADER_VERSION}, tooltip => ""); $table->add_at (0, $row , new DC::UI::Label align => 1, text => "Branch (Prebuilt)"); - $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $::EXE_ID, tooltip => ""); + $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $ENV{URLADER_EXE_ID}, tooltip => ""); $table->add_at (0, $row , new DC::UI::Label align => 1, text => "Version (Prebuilt)"); - $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $::EXE_VER, tooltip => ""); - $table->add_at (0, $row , new DC::UI::Label align => 1, text => "Update (Prebuilt)"); - $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $::UPDPAR, tooltip => ""); + $table->add_at (1, $row++, new DC::UI::Label align => 0, text => $ENV{URLADER_EXE_VER}, tooltip => ""); } $vbox @@ -2840,8 +2849,11 @@ } } - $ENV{FONTCONFIG_FILE} = DC::find_rcfile "fonts/fonts.conf"; - $ENV{FONTCONFIG_DIR} = DC::find_rcfile "fonts"; + # fontconfig doesn't support relative paths anymore, so use abs_path and keep fingers crossed + # these are ignored under windows, for some reason, and thus set in the loader + $ENV{FONTCONFIG_FILE} = "fonts.conf"; + $ENV{FONTCONFIG_PATH} = Cwd::abs_path DC::find_rcfile "fonts"; + $ENV{FONTCONFIG_DIR} = $ENV{FONTCONFIG_PATH}; # helps with older versions { my @fonts = map DC::find_rcfile "fonts/$_", qw(