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

Diff for /cvsweb/cvsweb.cgi between version 3.23 and 3.24

version 3.23, 2000/09/19 19:57:58 version 3.24, 2000/09/19 20:07:16
Line 90  sub fatal($$);
Line 90  sub fatal($$);
 sub redirect($);  sub redirect($);
 sub safeglob($);  sub safeglob($);
 sub getMimeTypeFromSuffix($);  sub getMimeTypeFromSuffix($);
   sub head($;$);
   sub scan_directives(@);
 sub doAnnotate($$);  sub doAnnotate($$);
 sub doCheckout($$);  sub doCheckout($$);
 sub cvswebMarkup($$$);  sub cvswebMarkup($$$);
Line 1075  sub getMimeTypeFromSuffix($) {
Line 1077  sub getMimeTypeFromSuffix($) {
 }  }
   
 ###############################  ###############################
   # read first lines like head(1)
   ###############################
   sub head($;$) {
       my $fh = $_[0];
       my $linecount = $_[1] || 10;
   
       my @buf;
   
       if ($linecount > 0) {
           my $i;
           for ($i = 0; !eof($fh) && $i < $linecount; $i++) {
               push @buf, scalar <$fh>;
           }
       } else {
           @buf = <$fh>;
       }
   
       @buf;
   }
   
   ###############################
   # scan vim and Emacs directives
   ###############################
   sub scan_directives(@) {
       my $ts = undef;
   
       for (@_) {
           $ts = $1 if /\b(?:ts|tabstop|tab-width)[:=]\s*([1-9]\d*)\b/;
       }
   
       ('tabstop' => $ts);
   }
   
   ###############################
 # show Annotation  # show Annotation
 ###############################  ###############################
 sub doAnnotate($$) {  sub doAnnotate($$) {
Line 1175  sub doAnnotate($$) {
Line 1211  sub doAnnotate($$) {
     else {      else {
         print "<pre>";          print "<pre>";
     }      }
     while (<$reader>) {  
       # prefetch several lines
       my @buf = head($reader);
   
       my %d = scan_directives(@buf);
   
       while (@buf || !eof($reader)) {
           $_ = @buf ? shift @buf : <$reader>;
   
         my @words = split;          my @words = split;
         # Adding one is for the (single) space which follows $words[0].          # Adding one is for the (single) space which follows $words[0].
         my $rest = substr ($_, length ($words[0]) + 1);          my $rest = substr ($_, length ($words[0]) + 1);
Line 1209  sub doAnnotate($$) {
Line 1253  sub doAnnotate($$) {
   
             print "<b>" if ($isCurrentRev);              print "<b>" if ($isCurrentRev);
             printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr);              printf ("%8s%s%8s %4d:", $revprint, ($isCurrentRev ? "|" : " "), $usrprint, $lineNr);
             print spacedHtmlText($line);              print spacedHtmlText($line, $d{'tabstop'});
             print "</b>" if ($isCurrentRev);              print "</b>" if ($isCurrentRev);
         }          }
         elsif ($words[0] eq "ok") {          elsif ($words[0] eq "ok") {
Line 1352  sub cvswebMarkup($$$) {
Line 1396  sub cvswebMarkup($$$) {
             $input{only_with_tag};              $input{only_with_tag};
     }      }
     print "</td></tr></table>";      print "</td></tr></table>";
     my @content = <$filehandle>;  
     my $url = download_url($fileurl, $revision, $mimetype);      my $url = download_url($fileurl, $revision, $mimetype);
     print "<HR noshade>";      print "<HR noshade>";
     if ($mimetype =~ /^image/) {      if ($mimetype =~ /^image/) {
Line 1363  sub cvswebMarkup($$$) {
Line 1406  sub cvswebMarkup($$$) {
     }      }
     else {      else {
         print "<PRE>";          print "<PRE>";
         foreach (@content) {  
             print spacedHtmlText($_);          # prefetch several lines
           my @buf = head($filehandle);
   
           my %d = scan_directives(@buf);
   
           while (@buf || !eof($filehandle)) {
               $_ = @buf ? shift @buf : <$filehandle>;
   
               print spacedHtmlText($_, $d{'tabstop'});
         }          }
         print "</PRE>";          print "</PRE>";
     }      }
Line 2254  sub flush_diff_rows($$$$) {
Line 2305  sub flush_diff_rows($$$$) {
 # human_readable_diff(String revision_to_return_to);  # human_readable_diff(String revision_to_return_to);
 ##  ##
 sub human_readable_diff($){  sub human_readable_diff($){
   my ($i,$difftxt, $where_nd, $filename, $pathname, $scriptwhere_nd);    my ($difftxt, $where_nd, $filename, $pathname, $scriptwhere_nd);
   my ($fh, $rev) = @_;    my ($fh, $rev) = @_;
   my ($date1, $date2, $r1d, $r2d, $r1r, $r2r, $rev1, $rev2, $sym1, $sym2);    my ($date1, $date2, $r1d, $r2d, $r1r, $r2r, $rev1, $rev2, $sym1, $sym2);
   my (@rightCol, @leftCol);    my (@rightCol, @leftCol);
Line 2308  sub human_readable_diff($){
Line 2359  sub human_readable_diff($){
   # cascading style sheets because we've to set the    # cascading style sheets because we've to set the
   # font and color for each row. anyone ...?    # font and color for each row. anyone ...?
   ####    ####
   while (<$fh>) {  
       $difftxt = $_;  
   
     # prefetch several lines
     my @buf = head($fh);
   
     my %d = scan_directives(@buf);
   
     while (@buf || !eof($fh)) {
         $difftxt = @buf ? shift @buf : <$fh>;
   
       if ($difftxt =~ /^@@/) {        if ($difftxt =~ /^@@/) {
           ($oldline,$newline,$funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/;            ($oldline,$newline,$funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/;
           print  "<tr bgcolor=\"$diffcolorHeading\"><td width=\"50%\">";            print  "<tr bgcolor=\"$diffcolorHeading\"><td width=\"50%\">";
Line 2326  sub human_readable_diff($){
Line 2383  sub human_readable_diff($){
       }        }
       else {        else {
           ($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/;            ($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/;
           $_ = spacedHtmlText ($rest);            $_ = spacedHtmlText($rest, $d{'tabstop'});
   
           # Add fontface, size            # Add fontface, size
           $_ = "$fs&nbsp;$_$fe";            $_ = "$fs&nbsp;$_$fe";

Legend:
Removed from v.3.23  
changed lines
  Added in v.3.24

CVSweb