From: ndparker <> Date: Sun, 18 Mar 2001 23:23:35 +0000 (+0000) Subject: fixed several bugs in all committed files, but anyway there's a lot to do further... X-Git-Url: https://git.p6c8.net/selfforum.git/commitdiff_plain/145128187279c4d4b52b8fc9b19f3f3a4d8f95b8?hp=937bd7f4ffda22265e1d6f5c4d9380ad971abb17 fixed several bugs in all committed files, but anyway there's a lot to do further... --- diff --git a/selfforum-cgi/shared/Conf/Admin.pm b/selfforum-cgi/shared/Conf/Admin.pm index 0a50ee8..0c3a469 100644 --- a/selfforum-cgi/shared/Conf/Admin.pm +++ b/selfforum-cgi/shared/Conf/Admin.pm @@ -60,8 +60,8 @@ sub read_admin_conf ($) { countMessages => $thread_view -> getAttribute ('countMessages'), sortThreads => $thread_view -> getAttribute ('sortThreads'), sortMessages => $thread_view -> getAttribute ('sortMessages'), - showThread => (($how_name eq 'showAll')?undef: - (($how_name eq 'showNone')?1: + showThread => (($how_name eq 'ShowAll')?undef: + (($how_name eq 'ShowNone')?1: ($show_how -> getFirstChild -> getData))), showPreview => $message_view -> getAttribute ('previewON'), showNA => $flags -> getAttribute ('showNA'), @@ -83,9 +83,9 @@ sub read_admin_conf ($) { voting => $messaging -> getAttribute ('callAdminVoting'), archiving => $messaging -> getAttribute ('callAdminArchiving'), byUser => $messaging -> getAttribute ('callUserAnswer'), - callByName => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Name', 0)], - callByMail => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Email', 0)], - callByIP => [map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('IpAddress', 0)]}; + callByName => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Name', 0):()], + callByMail => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('Email', 0):()], + callByIP => [$call_by_user?map {$_ -> getFirstChild -> getData} $call_by_user -> getElementsByTagName ('IpAddress', 0):()]}; # Instant my $instant = $forum -> getElementsByTagName ('InstantJob', 0) -> item (0); diff --git a/selfforum-cgi/shared/Encode/Posting.pm b/selfforum-cgi/shared/Encode/Posting.pm index 0140dfb..76463bc 100644 --- a/selfforum-cgi/shared/Encode/Posting.pm +++ b/selfforum-cgi/shared/Encode/Posting.pm @@ -48,7 +48,7 @@ sub encoded_body ($;$) { # normaler Link $posting =~ s{\[link:\s* - ((?:ftp:// # hier beginnt $1 + ((?:ftp:// # hier beginnt $1 | https?:// | about: | view-source: @@ -59,14 +59,14 @@ sub encoded_body ($;$) { | telnet:// | wais:// | prospero:// - | \.\.?/ # relativ auf dem server - | / # absolut auf dem server - | (?:[a-zA-Z.\d]+)?\?? # im forum - ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc. - ) # hier ist $1 zuende - \s*(?:\]|(\s|\(|\)|
)) # der Begrenzer (\s, ] oder Zeilenende) + | \.\.?/ # relativ auf dem server + | / # absolut auf dem server + | (?:[a-zA-Z.\d]+)?\?? # im forum + ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc. + ) # hier ist $1 zuende + \s*(?:\]|(\s|&(?!amp;)|\(|\)|
)) # der Begrenzer (\s, ] oder Zeilenende) } - {$1$2}gix; # und der Link + {$1$2}gix; # und der Link # javascript-links extra my $klammer1='\((?:[^)])*\)'; @@ -75,27 +75,27 @@ sub encoded_body ($;$) { my $klammer4="\\((?:$klammer3|(?:[^)])*)\\)"; $posting =~ s{\[link:\s* - (javascript: # hier beginnt $1 + (javascript: # hier beginnt $1 (?: - $klammer4 # Klammern bis Verschachtelungstiefe 4 (sollte reichen?) - | '[^\'\\]*(?:\\.[^\'\\]*)*' # mit ' quotierter String, J.F. sei gedankt - # im String sind Escapes zugelassen (also auch \') - # damit werden (korrekt gesetzte) Javascript-Links moeglich - | [^\s<()'\]]+)+ # auf jeden Fall kein \s und kein ] (ausser im String) - ) # hier ist $1 zuende - \s*(?:\s|\]|(\(|\)|
)) # der Begrenzer (\s, ] oder Zeilenende) + $klammer4 # Klammern bis Verschachtelungstiefe 4 (sollte reichen?) + | '[^\'\\]*(?:\\.[^\'\\]*)*' # mit ' quotierter String, J.F. sei gedankt + # im String sind Escapes zugelassen (also auch \') + # damit werden (korrekt gesetzte) Javascript-Links moeglich + | [^\s<()'\]]+)+ # auf jeden Fall kein \s und kein ] (ausser im String) + ) # hier ist $1 zuende + \s*(?:\s|\]|(\(|\)|&(?!amp;)|
)) # der Begrenzer (\s, ] oder Zeilenende) } - {$1$2}gix; # und der Link + {$1$2}gix; # und der Link # images $posting =~ s{\[image:\s* ((?:https?:// - | \.\.?/ # relativ auf dem server - | / # absolut auf dem server - | (?:[a-zA-Z.\d]+)?\?? # im forum - ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc. - ) # hier ist $1 zuende - \s*(?:\]|(\s|\(|\)|
)) # der Begrenzer (\s, ] oder Zeilenende) + | \.\.?/ # relativ auf dem server + | / # absolut auf dem server + | (?:[a-zA-Z.\d]+)?\?? # im forum + ) [^\s<'()\[\]]+ # auf jeden Fall kein \s und kein ] etc. + ) # hier ist $1 zuende + \s*(?:\]|(\s|\(|\)|&(?!amp;)|
)) # der Begrenzer (\s, ] oder Zeilenende) } {$2}gix; # und das Bild @@ -112,13 +112,13 @@ sub encoded_body ($;$) { | telnet:// | wais:// | prospero:// - | \.\.?/ # relativ auf dem server - | / # absolut auf dem server - | [a-zA-Z\d]+(?:\.html?|/) # im forum (koennen eh nur threads oder verweise - # auf tiefere verzeichnisse sein) - )[^\s<'()\]]+ # auf jeden Fall kein \s und kein ] etc. (s.o.) - ) # hier ist $1 zuende - \s*(?:\]|(\s|\(|\)|
)) # der Begrenzer (\s, ] oder Zeilenende) + | \.\.?/ # relativ auf dem server + | / # absolut auf dem server + | [a-zA-Z\d]+(?:\.html?|/) # im forum (koennen eh nur threads oder verweise + # auf tiefere verzeichnisse sein) + )[^\s<'()\]]+ # auf jeden Fall kein \s und kein ] etc. (s.o.) + ) # hier ist $1 zuende + \s*(?:\]|(\s|\(|\)|&(?!amp;)|
)) # der Begrenzer (\s, ] oder Zeilenende) } {$2}gix; diff --git a/selfforum-cgi/shared/Template/Forum.pm b/selfforum-cgi/shared/Template/Forum.pm index ab853ae..6b29a22 100644 --- a/selfforum-cgi/shared/Template/Forum.pm +++ b/selfforum-cgi/shared/Template/Forum.pm @@ -47,6 +47,7 @@ sub print_forum_as_HTML ($$$) { unless ($stat = lock_file ($mainfile)) { if ($stat == 0) { violent_unlock_file ($mainfile); + print "aha!" # ueberlastet } diff --git a/selfforum-cgi/user/config/fo_admin_default.xml b/selfforum-cgi/user/config/fo_admin_default.xml index bbdfa57..cf38cad 100644 --- a/selfforum-cgi/user/config/fo_admin_default.xml +++ b/selfforum-cgi/user/config/fo_admin_default.xml @@ -21,12 +21,12 @@ - + diff --git a/selfforum-cgi/user/fo_posting.pl b/selfforum-cgi/user/fo_posting.pl index 89e0e24..91a21a1 100644 --- a/selfforum-cgi/user/fo_posting.pl +++ b/selfforum-cgi/user/fo_posting.pl @@ -327,12 +327,16 @@ sub print_error ($;$) { ################################ sub fetch_subject () { - unless (exists ($dparam{$formdata -> {posterCategory} -> {name}}) and - exists ($dparam{$formdata -> {posterSubject} -> {name}})) { + my %must = map {$_ => 1} @{$formmust -> {exists $dparam{$formdata -> {followUp} -> {name}}?'reply':'new'}}; + + if ( ($must{posterCategory} and not exists ($dparam{$formdata -> {posterCategory} -> {name}})) or + ($must{posterSubject} and not exists ($dparam{$formdata -> {posterSubject} -> {name}}))) + { my $filename = message_path.'t'.$ftid.'.xml'; - if (lock_file ($filename)) { + if (-f $filename and lock_file ($filename)) + { my $xml = new XML::DOM::Parser -> parsefile ($filename); violent_unlock_file($filename) unless unlock_file ($filename); @@ -340,7 +344,9 @@ sub fetch_subject () { my $header = get_message_header ($mnode); $dparam{$formdata -> {posterCategory} -> {name}} = $header -> {category}; - $dparam{$formdata -> {posterSubject} -> {name}} = $header -> {subject};}} + $dparam{$formdata -> {posterSubject} -> {name}} = $header -> {subject}; + } + } } ################################