');
for($l=$i+1;$l<$len;$l++) {
if(ereg(" Revision Changes Path", $contents[$l]))
@@ -141,103 +173,188 @@ cvs -d :pserver:guest@mozdev.org:/cvs co
if(ereg(" User:", $contents[$l]))
break;
- $checkins = eregi_replace("((https|http|mailto|ftp):\/\/[^[:space:]<>]{1,})",
- '
\\1', htmlspecialchars($contents[$l]));
+ $checkins = eregi_replace("((https|http|mailto|ftp):\/\/[^[:space:]<>]{1,})",
+ "
\\1", htmlspecialchars($contents[$l]));
+
+ $checkins = eregi_replace("(bug[\ ]+[#%]?[0-9]{1,})", "
\\1",$checkins);
+
+ $checkins = eregi_replace('"bug[\ ]+[#%]?', '"http://' . HOST . '/bugs/show_bug.cgi?id=', $checkins);
// ' Added: www/img background.png'
// ' Modified: www cdn.css'
// ' Removed: www/protected sources.html'
- // ' www/compact index.html' ?
-
- if ( ereg("((Added|Modified|Removed):)", $checkins) || ereg("[[:space:]]{9}", $checkins) )
- {
+ // ' www/compact index.html'
+ // ' mozpos/downloads - New directory'
- $identifier = trim(substr($checkins, 0, 15)); // echo $identifier . '
';
+ if ( ereg("^[[:space:]]{1,3}Log\:", $checkins) ) {
+ $idRemoved = false; $_log_section = true;
+ $checkins = LOG_DIVS . $checkins;
+ }
- $checkins = substr($checkins, 15); // echo $checkins . '
';
+ if ( ereg("^[[:space:]]{1,3}((Added|Modified|Removed):)", $checkins) || ereg("^[[:space:]]{9}", $checkins) ||
+ strstr($checkins, "New directory")
+ ) {
- // find first non-space character
- // if > 16, chances are the files are in the directory defined in the previous line ?
+ if ( !strstr($checkins, "New directory") ) {
+ $identifier = trim(substr($checkins, 0, 15)); // may change to group
- $_16 = strpos($checkins, ' '); // echo '$_16 ' . $_16 . '
';
+ $checkins = substr($checkins, 15);
- $_path = substr( $checkins, 0, $_16); // echo $_path . '
';
+ $_New_directory = false;
+ }
+ else {
+ $checkins = str_replace('- New directory', '-_New_directory', $checkins);
- // if ( $_16 > 16 ) // not going to happen frequently : )
- $checkins = ereg_replace('[[:space:]]{1,}', ' ', trim( substr ( $checkins, $_16 ) ) );
+ $webcvs = 'http://www.' . HOST . '/source/browse';
- $__path = trim($_path);
+ unset($identifier);
- if ( !empty( $__path ) )
- {
- $chkA1 = $_path;
+ $_New_directory = true;
}
+ $_16 = strpos($checkins, ' ');
+
+ $_path = substr( $checkins, 0, $_16);
+
+ $checkins = ereg_replace('[[:space:]]{1,}', ' ',
+ trim( substr ( $checkins, $_16 ) ) );
+
$checkinsA = explode(' ', $checkins);
unset($checkins);
for($z=0; $z < count($checkinsA); ++$z)
- {
$checkinsA[$z] = trim($checkinsA[$z]);
- }
if ( !empty($identifier) )
- $checkins = $identifier;
+ $checkins = '
' . $identifier . '';
- if ( !empty($_path))
- {
- $webcvs = 'http://www.mozdev.org/source/browse/' . $project; // reset important !
+ if ( !empty($_path)) {
+ // reset, important !
+ $webcvs = 'http://www.' . HOST . '/source/browse/' . $project;
$webcvs .= '/' . $_path;
- $_path_ = $_path;
- $checkins .= '
' . $_path . '';
+ $checkins .= '
' . $_path . '';
}
- for($y=0; $y < count($checkinsA); ++$y)
- {
+ $Y = count($checkinsA);
- if( !isset($_tagged))
- {
- $_tagged = ereg('Tag:', $checkinsA[$y]);
- $_tagtracker = 1;
- }
+ for($y=0; $y < $Y; ++$y) {
- if(!($_tagged && $_tagtracker <= 2))
- {
- $checkins .= '
';
- }
+ if ( ereg('Tag:', $checkinsA[$y]) || ereg('Tag:', $checkinsA[$y-1]) || $_tag ||
+ strstr($checkinsA[$y], '-_New_directory')
+ )
+ $TAG = true;
else
- {
- $checkins .= ' '; ++$_tagtracker;
+ $TAG = false;
+
+ $checkins .= ' ';
+ }
+
+ if ( !$_New_directory && !$TAG ) {
+ $checkins .= ''; // $project / $_path
+ $_webcvs = str_replace('http://www.' . HOST . '/source/browse/', '', $webcvs);
+
+ if ( strlen($_webcvs) > 15 )
+ $checkins .= substr($_webcvs, 0, 12) . '...' . substr($_webcvs, strrpos($_webcvs, '/'));
+ else
+ $checkins .= $_webcvs;
+
+ if( $identifier == 'Removed:' || $idRemoved )
+ $checkins .= '/Attic';
+
+ $checkins .= '/';
}
+ $checkinsA[$y] = str_replace('-_New_directory', '- New directory', $checkinsA[$y]);
+
$checkins .= $checkinsA[$y];
- if(!($_tagged && $_tagtracker <= 2)): $checkins .= ''; endif;
+ if (ereg("Tag\:$", trim($checkinsA[$y])) &&
+ empty($checkinsA[$y+1]))
+ $_tag = true;
+ else
+ $_tag = false;
+
+ if (!$TAG)
+ $checkins .= '';
+
+ $checkins .= '';
}
+ if ($_New_directory)
+ $checkins .= LOG_DIVS;
+
+ if ( $identifier == 'Removed:' || $idRemoved )
+ $idRemoved = true;
+ else
+ $idRemoved = false;
+
}
- $result[$r] .= '
' . $checkins .
- "
\n"; // what
+ $checkins = trim( str_replace('
', ' ', $checkins) );
+
+ if ( !ereg('^' . $checkins;
+// what
+ if ( !empty( $checkins ) )
+ $result[$r] .= $checkins . "