version 1.11, 2006/06/27 21:47:15
|
version 1.13.2.1, 2006/10/13 19:11:05
|
Line 40 my $loncapa_max_wait_time = 13;
|
Line 40 my $loncapa_max_wait_time = 13;
|
|
|
require Exporter; |
require Exporter; |
our @ISA = qw (Exporter); |
our @ISA = qw (Exporter); |
our @EXPORT = qw(&escape_LaTeX &add_get_param &escape &unescape &tie_domain_hash &untie_domain_hash &tie_user_hash &untie_user_hash &propath); |
our @EXPORT = qw(&add_get_param &escape &unescape &tie_domain_hash &untie_domain_hash &tie_user_hash &untie_user_hash &propath); |
my %perlvar; |
my %perlvar; |
|
|
# Escape a LaTeX string of special characters that according to LaTeX line by line |
|
# pg 9 are: # $ % & \ ^ _ { } ~ These are escaped by prepending a \ |
|
# |
|
sub escape_LaTeX { |
|
my ($string) = @_; |
|
$string =~ s/[\#\$\%\&\\^_{}]/\\$&/g; |
|
return $string; |
|
} |
|
|
|
|
|
# Inputs are a url, and a hash ref of |
# Inputs are a url, and a hash ref of |
Line 277 sub _do_hash_untie {
|
Line 269 sub _do_hash_untie {
|
return undef; |
return undef; |
} |
} |
# If this is compressed, we will actually need an exclusive lock |
# If this is compressed, we will actually need an exclusive lock |
if (-e "$file_prefix.db.gz") { |
if (-e "$file_prefix.db.gz" |
|
|| !-e "$file_prefix.db.old" ) { |
if (!&flock_sym(LOCK_EX)) { |
if (!&flock_sym(LOCK_EX)) { |
&clean_sym(); |
&clean_sym(); |
return undef; |
return undef; |
Line 302 sub _do_hash_untie {
|
Line 295 sub _do_hash_untie {
|
system("gunzip $file_prefix.hist.gz"); |
system("gunzip $file_prefix.hist.gz"); |
} |
} |
} |
} |
|
if (!-e "$file_prefix.db.old") { |
|
my $dump_db = '/home/httpd/perl/debug/dump_db_static_32'; |
|
my $create_db = '/home/httpd/perl/debug/create_db_dynamic_64'; |
|
my $file = "$file_prefix.db"; |
|
&main::logthis("Converting $file"); |
|
if (!-x $dump_db) { |
|
&clean_symb(); |
|
&main::logthis("$dump_db unexecutable"); |
|
return; |
|
} |
|
if (!-x $create_db) { |
|
&clean_symb(); |
|
&main::logthis("$create_db unexecutable"); |
|
return; |
|
} |
|
system("$dump_db -f $file|$create_db -f $file.new"); |
|
if (!-e "$file.new") { |
|
&clean_symb(); |
|
&main::logthis("conversion faile $file.new doesn't exist"); |
|
return; |
|
} |
|
rename($file,"$file.old"); |
|
rename("$file.new","$file"); |
|
} |
# Change access mode to non-blocking |
# Change access mode to non-blocking |
$how=$how|&GDBM_NOLOCK(); |
$how=$how|&GDBM_NOLOCK(); |
# Go ahead and tie the hash |
# Go ahead and tie the hash |
return &_do_hash_tie($file_prefix,$namespace,$how,$loghead,$what); |
my $result = |
|
&_do_hash_tie($file_prefix,$namespace,$how,$loghead,$what); |
|
if (!$result) { |
|
&clean_sym(); |
|
} |
|
return $result; |
} |
} |
|
|
sub flock_sym { |
sub flock_sym { |