[BACK]Return to cvsweb.cgi CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / cvsweb

Diff for /cvsweb/cvsweb.cgi between version 4.17 and 4.18

version 4.17, 2019/11/11 13:28:36 version 4.18, 2019/11/11 14:37:54
Line 69  use vars qw (
Line 69  use vars qw (
   %input $query $barequery $sortby $bydate $byrev $byauthor    %input $query $barequery $sortby $bydate $byrev $byauthor
   $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot    $bylog $byfile $defaultDiffType $logsort $cvstree $cvsroot
   $charset $output_filter    $charset $output_filter
   @command_path %CMD $allow_compress $backicon $diricon $fileicon $graphicon    @command_path %CMD $allow_compress $backicon $diricon $fileicon
   $fullname $cvstreedefault $logo $defaulttitle $address $binfileicon    $fullname $cvstreedefault $logo $defaulttitle $address $binfileicon
   $long_intro $short_instruction $shortLogLen $show_author    $long_intro $short_instruction $shortLogLen $show_author
   $tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst    $tablepadding $hr_breakable $showfunc $hr_ignwhite $hr_ignkeysubst
   $inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos    $inputTextSize $mime_types $allow_annotate $allow_markup $allow_mailtos
   $allow_log_extra $allow_dir_extra $allow_source_extra    $allow_log_extra $allow_dir_extra $allow_source_extra
   $allow_cvsgraph $cvsgraph_config $edit_option_form    $edit_option_form
   $show_subdir_lastmod $show_log_in_markup $preformat_in_markup    $show_subdir_lastmod $show_log_in_markup $preformat_in_markup
   $tabstop $state $annTable $sel @ForbiddenFiles    $tabstop $state $annTable $sel @ForbiddenFiles
   $use_descriptions %descriptions @mytz $dwhere    $use_descriptions %descriptions @mytz $dwhere
Line 158  sub openOutputFilter();
Line 158  sub openOutputFilter();
 sub doAnnotate($$);  sub doAnnotate($$);
 sub doCheckout($$$);  sub doCheckout($$$);
 sub doEnscript($$$;$);  sub doEnscript($$$;$);
 sub doGraph();  
 sub doGraphView();  
 sub cvswebMarkup($$$$$$;$);  sub cvswebMarkup($$$$$$;$);
 sub viewable($);  sub viewable($);
 sub doDiff($$$$$$);  sub doDiff($$$$$$);
Line 180  sub download_url($$;$);
Line 178  sub download_url($$;$);
 sub download_link($$$;$);  sub download_link($$$;$);
 sub display_url($$;$);  sub display_url($$;$);
 sub display_link($$;$$);  sub display_link($$;$$);
 sub graph_link($;$);  
 sub history_link($$;$);  sub history_link($$;$);
 sub toggleQuery($;$);  sub toggleQuery($;$);
 sub htmlquote($);  sub htmlquote($);
Line 213  $cvstreedefault = $logo = $defaulttitle =
Line 210  $cvstreedefault = $logo = $defaulttitle =
   $hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate =    $hr_ignkeysubst = $inputTextSize = $mime_types = $allow_annotate =
   $allow_markup = $allow_compress = $edit_option_form =    $allow_markup = $allow_compress = $edit_option_form =
   $show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup =    $show_subdir_lastmod = $show_log_in_markup = $preformat_in_markup =
   $tabstop = $use_moddate = $gzip_open = $DEBUG = $allow_cvsgraph =    $tabstop = $use_moddate = $gzip_open = $DEBUG =
   $cvsgraph_config = $cvshistory_url = $allow_tar = undef;    $cvshistory_url = $allow_tar = undef;
   
 $allow_version_select = $allow_mailtos = $allow_log_extra = 1;  $allow_version_select = $allow_mailtos = $allow_log_extra = 1;
   
Line 373  if (defined($ENV{QUERY_STRING})) {
Line 370  if (defined($ENV{QUERY_STRING})) {
 undef %input;  undef %input;
   
 my $t;  my $t;
 for my $p (qw(graph hideattic hidecvsroot hidenonreadable ignorecase ln copt  for my $p (qw(hideattic hidecvsroot hidenonreadable ignorecase ln copt
               makeimage options tarball)) {                options tarball)) {
   $t = $query{$p};    $t = $query{$p};
   if (defined($t)) {    if (defined($t)) {
     ($input{$p}) = ($t =~ /^([01]|on)$/)      ($input{$p}) = ($t =~ /^([01]|on)$/)
Line 1056  EOF
Line 1053  EOF
       $filesfound++;        $filesfound++;
   
       printf "<tr class=\"%s\">\n", ($dirrow % 2) ? 'even' : 'odd';        printf "<tr class=\"%s\">\n", ($dirrow % 2) ? 'even' : 'odd';
       printf '<td class="file"%s>', $allow_cvsgraph ? '' : ' colspan="2"';        printf '<td class="file" colspan="2">';
   
       my $icon = $isbinary ? $binfileicon : $fileicon;        my $icon = $isbinary ? $binfileicon : $fileicon;
       print $nofilelinks ? $icon : &link($icon, $url);        print $nofilelinks ? $icon : &link($icon, $url);
       print '&nbsp;', &link(htmlquote($file), $url), $attic;        print '&nbsp;', &link(htmlquote($file), $url), $attic;
       print '</td><td class="graph">', graph_link($fileurl) if $allow_cvsgraph;  
       print "</td>\n<td width=\"30\">", display_link($fileurl, $rev);        print "</td>\n<td width=\"30\">", display_link($fileurl, $rev);
       my $ageclass = 'age';        my $ageclass = 'age';
       my $age      = '';        my $age      = '';
Line 1285  elsif (-f $fullname . ',v') {
Line 1281  elsif (-f $fullname . ',v') {
     exit;      exit;
   }    }
   
   if ($allow_cvsgraph && $input{graph}) {  
     if ($input{makeimage}) {  
       doGraph();  
     } else {  
       doGraphView();  
     }  
     gzipclose();  
     exit;  
   }  
   
   &doLog($fullname);    &doLog($fullname);
 }  }
   
Line 2912  sub printLog($$$;$$)
Line 2898  sub printLog($$$;$$)
                             $fileurl, $_, $barequery, $_));                              $fileurl, $_, $barequery, $_));
       }        }
     }      }
     print ' - ', graph_link('', 'revision graph')  
       if (!$inlogview && $allow_cvsgraph);  
   }    }
   print "<br />\n";    print "<br />\n";
   
Line 3046  sub printLog($$$;$$)
Line 3030  sub printLog($$$;$$)
 }  }
   
   
 #  
 # Generates the HTML view for CvsGraph.  
 #  
 sub doGraphView()  
 {  
   (my $pathname = $where) =~ s|[^/]*$||;  
   (my $filename = $where) =~ s|^.*/||;  
   
   navigateHeader($scriptwhere, $pathname, $filename, undef, 'graph');  
   
   my $title = 'Revision graph of ' . htmlquote($pathname . $filename);  
   my $mapname = 'CvsGraphMap';  
   
   printf(<<EOF, $title, $mapname, $cvstree, $title);  
 <h3 style="text-align: center">%s</h3>  
 <div style="text-align: center"><img border="0" usemap="#%s" src="?cvsroot=%s;graph=1;makeimage=1" alt="%s" />  
 EOF  
   
   # Remove any pre-existing tag/branch names from branch links.  
   (my $notag_query = $barequery) =~ s/;+only_with_tag=.*?(?=;|$)//g;  
   
   my @graph_cmd =  
     ($CMD{cvsgraph},  
      '-r', $cvsroot,  
      '-m', $pathname,  
      '-i',  
      '-M', $mapname,  
      '-x', 'x',  
      "-Omap_branch_href=\"href=\\\"./?only_with_tag=%(%t%)$notag_query\\\"\"",  
      "-Omap_rev_href=\"href=\\\"?rev=%(%R%)$barequery\\\"\"",  
      "-Omap_diff_href=\"href=\\\"%(%F%).diff" .  
      "?r1=%(%P%);r2=%(%R%)$barequery\\\"\"",  
      );  
   push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;  
   push(@graph_cmd, $filename . ',v');  
   
   local *CVSGRAPH_OUT;  
   my ($h, $err) =  
     startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);  
   fatal('500 Internal Error', $err) unless $h;  
   
   # Browser compatibility kludge: many browsers do not support client side  
   # image maps where the <map> element contains only the id attribute.  Let's  
   # add the corresponding name attribute to it on the fly.  
   while (<CVSGRAPH_OUT>) {  
     s/(<map\s+id="([^"]+)")\s*>/$1 name="$2">/;  
     print;  
   }  
   
   $h->finish();  
   print "</div>\n";  
   
   html_footer();  
 }  
   
   
 #  
 # Generates a graph using CvsGraph.  
 #  
 sub doGraph()  
 {  
   (my $pathname = $where) =~ s|[^/]*$||;  
   (my $filename = $where) =~ s|^.*/||;  
   
   http_header('image/png');  
   
   my @graph_cmd = ($CMD{cvsgraph}, '-r', $cvsroot, '-m', $pathname);  
   push(@graph_cmd, '-c', $cvsgraph_config) if $cvsgraph_config;  
   push(@graph_cmd, $filename . ',v');  
   
   local *CVSGRAPH_OUT;  
   my ($h, $err) =  
     startproc(\@graph_cmd, \"", '>pipe', \*CVSGRAPH_OUT);  
   fatal('500 Internal Error', $err) unless $h;  
   {  
     local $/ = undef;  
     binmode(\*STDOUT);  
     print <CVSGRAPH_OUT>;  
   }  
   $h->finish();  
 }  
   
   
 sub doLog($)  sub doLog($)
 {  {
   my ($fullname) = @_;    my ($fullname) = @_;
Line 3153  sub doLog($)
Line 3054  sub doLog($)
     &clickablePath($upwhere, 1), "</b>\n</p>\n";      &clickablePath($upwhere, 1), "</b>\n</p>\n";
   print "<p>\n ";    print "<p>\n ";
   print &link('Request diff between arbitrary revisions', '#diff');    print &link('Request diff between arbitrary revisions', '#diff');
   print ' - ', &graph_link('', 'Display revisions graphically')  
     if $allow_cvsgraph;  
   if ($cvshistory_url) {    if ($cvshistory_url) {
     (my $d = $upwhere) =~ s|/+$||;      (my $d = $upwhere) =~ s|/+$||;
     print ' - ', history_link($d, $filename);      print ' - ', history_link($d, $filename);
Line 3919  sub display_link($$;$$)
Line 3818  sub display_link($$;$$)
   return sprintf('<a href="%s" class="display-link">%s</a>',    return sprintf('<a href="%s" class="display-link">%s</a>',
                  display_url($url, $revision, $mtype) . $barequery,                   display_url($url, $revision, $mtype) . $barequery,
                  htmlquote($textlink));                   htmlquote($textlink));
 }  
   
 #  
 # Expects the passed in URL to be URI escaped, and without a query string.  
 # The passed in link text should be already HTML escaped as appropriate.  
 #  
 sub graph_link($;$)  
 {  
   my ($url, $text) = @_;  
   $text ||= $graphicon;  
   return sprintf('<a href="%s?graph=1%s">%s</a>', $url, $barequery, $text);  
 }  }
   
 #  #

Legend:
Removed from v.4.17  
changed lines
  Added in v.4.18

CVSweb