codestriker-commits Mailing List for Codestriker: collaborative code reviewer (Page 5)
Brought to you by:
sits
You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(58) |
Dec
(14) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(12) |
Feb
(53) |
Mar
(2) |
Apr
|
May
(36) |
Jun
(59) |
Jul
(69) |
Aug
(47) |
Sep
(54) |
Oct
(45) |
Nov
|
Dec
|
| 2006 |
Jan
(20) |
Feb
(3) |
Mar
|
Apr
(6) |
May
(13) |
Jun
(18) |
Jul
(9) |
Aug
(12) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2007 |
Jan
|
Feb
(1) |
Mar
(4) |
Apr
(1) |
May
(2) |
Jun
(7) |
Jul
(7) |
Aug
(6) |
Sep
(5) |
Oct
(2) |
Nov
(1) |
Dec
|
| 2008 |
Jan
(7) |
Feb
(13) |
Mar
(9) |
Apr
|
May
|
Jun
(50) |
Jul
(22) |
Aug
(58) |
Sep
(28) |
Oct
|
Nov
|
Dec
|
|
From: <si...@us...> - 2008-07-02 00:37:02
|
User: sits
Date: 08/07/01 17:37:01
Modified: . CHANGELOG
html codestriker.css
template/en/default viewtopicheader.html.tmpl
Log:
More CSS / html changes from Daniel for the view topic header.
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
retrieving revision 1.237
retrieving revision 1.238
diff -u -r1.237 -r1.238
--- CHANGELOG 26 Jun 2008 21:52:22 -0000 1.237
+++ CHANGELOG 2 Jul 2008 00:37:00 -0000 1.238
@@ -60,8 +60,9 @@
in either the start or end tag field.
* Updated the Codestriker CSS file significantly based on the work by
- Kannan Goundan <ca...@us...>. Also changed the
- appearance of the application to give it a more modern look.
+ Kannan Goundan <ca...@us...> ands Daniel Noll.
+ Also changed the appearance of the application to give it a more
+ modern appearance.
* Can now comment on any line of any file in the review, not just those
that are a part of the diff file.
Index: codestriker.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker.css,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- codestriker.css 1 Jul 2008 11:10:29 -0000 1.27
+++ codestriker.css 2 Jul 2008 00:37:01 -0000 1.28
@@ -161,18 +161,23 @@
/* Codestriker heading */
#header {margin-bottom: 1em; font-family: sans-serif;}
-#header .heading {background-color: #404D6C; color: white; font-size: 110%; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
+#header .heading {background-color: #404D6C; color: white; font-size: 110%; border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; border-top-right-radius: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
#header .heading a {text-decoration: none; color: white; background-color: transparent;}
/* Codestriker top-level menu */
-#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em}
+#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; border-bottom-right-radius: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em;}
/* Tabbing styles */
-TR.tab {background-color: #abd; font-family: Georgia, serif}
-TD.selected {background-color: #abd}
-TD.notselected {background-color: #cccccc}
-TD.space {background-color: white}
-A.tab {text-decoration: none}
+DIV.tabs {width: 100%; font-family: sans-serif;}
+DIV.tab {display: block; float: left; padding: 0.3em 0.4em; margin-right: 0.4em; border-top-left-radius: 5px; -moz-border-radius-topleft: 5px; border-top-right-radius: 5px; -moz-border-radius-topright: 5px;}
+DIV.tab.selected {background-color: #abd;}
+DIV.tab.selected:hover {background-color: #bce;}
+DIV.tab.notselected {background-color: #ccc;}
+DIV.tab.notselected:hover {background-color: #ddd;}
+DIV.tab A {text-decoration: none;}
+DIV.tabfloat {font-weight: bold; float: right;}
+DIV.aftertabs {left: 0; right: 0; background-color: #abd; padding: 0.3em 0.4em; font-family: sans-serif; clear: both;}
+DIV.aftertabfloat {float: right}
/* Styles for error field in comment posting tooltip. */
span.hidden {display: none}
@@ -191,8 +196,8 @@
SPAN.dir { color:#008200; }
SPAN.sym { color:#000000; }
SPAN.line { color:#555555; }
-SPAN.mark { background-color:#ffffbb;}
+SPAN.mark { background-color:#ffffbb;}
SPAN.kwa { color:#000080; font-weight:bold; }
SPAN.kwb { color:#000080; font-weight:bold; }
SPAN.kwc { color:#000000; }
-SPAN.kwd { color:#000000; }
\ No newline at end of file
+SPAN.kwd { color:#000000; }
Index: viewtopicheader.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopicheader.html.tmpl,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- viewtopicheader.html.tmpl 23 Jun 2008 10:12:16 -0000 1.11
+++ viewtopicheader.html.tmpl 2 Jul 2008 00:37:01 -0000 1.12
@@ -13,29 +13,25 @@
<p>
[% END %]
-<table cellpadding="5" cellspacing="0" border="0" width="100%">
-<tr class="tab">
- <td width="1%" nowrap class=[% IF topicview == 0 %]"notselected"[% ELSE %]"selected"[% END %]>
- <a class="tab" href="[% view_topic_url %]">Topic Text</a></td>
- <td width="1" class="space"> </td>
- <td width="1%" nowrap class=[% IF topiccomments == 0 %]"notselected"[% ELSE %]"selected"[% END %]>
- <a class="tab" href="[% view_comments_url %]">Topic Comments ([% number_comments %])</a></td>
- <td width="1" class="space"> </td>
- <td width="1%" nowrap class=[% IF topicproperties == 0 %]"notselected"[% ELSE %]"selected"[% END %]>
- <a class="tab" href="[% view_topic_properties_url %]">Topic Properties</a></td>
- <td width="1" class="space"> </td>
- <td width="1%" nowrap class=[% IF topicinfo == 0 %]"notselected"[% ELSE %]"selected"[% END %]>
- <a class="tab" href="[% view_topicinfo_url %]">Topic Information</a> </td>
- <td colspan=2 class="space" align=right><b>[% author | html_entity %]</b></td>
-</tr>
-</table>
-
-<table cellpadding="5" cellspacing="0" border="0" width="100%">
-<tr class="tab">
- <td>Topic title: <b>[% title | html_entity %]</b></td>
- <td align=right>[% document_creation_time | html_entity %]</td>
-</tr>
-</table>
+<div class="tabs">
+ <div class="tabfloat">[% author | html_entity %]</div>
+ <div class=[% IF topicview == 0 %]"tab notselected"[% ELSE %]"tab selected"[% END %]>
+ <a href="[% view_topic_url %]">Topic Text</a>
+ </div>
+ <div class=[% IF topiccomments == 0 %]"tab notselected"[% ELSE %]"tab selected"[% END %]>
+ <a href="[% view_comments_url %]">Topic Comments ([% number_comments %])</a>
+ </div>
+ <div class=[% IF topicproperties == 0 %]"tab notselected"[% ELSE %]"tab selected"[% END %]>
+ <a href="[% view_topic_properties_url %]">Topic Properties</a>
+ </div>
+ <div class=[% IF topicinfo == 0 %]"tab notselected"[% ELSE %]"tab selected"[% END %]>
+ <a href="[% view_topicinfo_url %]">Topic Information</a>
+ </div>
+</div>
+<div class="aftertabs">
+ <div class="aftertabfloat">[% document_creation_time | html_entity %]</div>
+ <div>Topic title: <b>[% title | html_entity %]</b></div>
+</div>
[%# If this topic obsoletes any other topics, show them now #%]
[% IF obsoleted_topics.size > 0 %]
|
|
From: <si...@us...> - 2008-07-01 23:09:11
|
User: sits Date: 08/07/01 16:09:10 Modified: . codestriker.conf Log: Make sorting of topic filenames the default Index: codestriker.conf =================================================================== RCS file: /cvsroot/codestriker/codestriker/codestriker.conf,v retrieving revision 1.99 retrieving revision 1.100 diff -u -r1.99 -r1.100 --- codestriker.conf 26 Jun 2008 21:52:23 -0000 1.99 +++ codestriker.conf 1 Jul 2008 23:09:10 -0000 1.100 @@ -348,10 +348,10 @@ # Indicate whether the diffs presented in a topic should be ordered by # filename. For some deployments, it is important that the order of the -# diffs are presented in the same order as it was in the file. For other -# deployments, apparently Subversion can returns diffs in an arbitrary -# order, so setting this to '1' would be useful. -$sort_diffs_by_filename = 0; +# diffs are presented in the same order as it was in the file. Subversion +# reports diffs I believe in order of modification, which makes it +# quite arbitrary, so the default is to sort. +$sort_diffs_by_filename = 1; # Bug database to update. Currently, Bugzilla, Flyspray and TestDirector # are supported, but it is straight-forward to support other bug |
|
From: <si...@us...> - 2008-07-01 11:10:31
|
User: sits
Date: 08/07/01 04:10:29
Modified: html codestriker.css
Log:
Workaround IE bug so that title appears in white.
Index: codestriker.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker.css,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- codestriker.css 27 Jun 2008 00:31:33 -0000 1.26
+++ codestriker.css 1 Jul 2008 11:10:29 -0000 1.27
@@ -162,7 +162,7 @@
/* Codestriker heading */
#header {margin-bottom: 1em; font-family: sans-serif;}
#header .heading {background-color: #404D6C; color: white; font-size: 110%; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
-#header .heading a {text-decoration: none; color: inherit; background-color: transparent;}
+#header .heading a {text-decoration: none; color: white; background-color: transparent;}
/* Codestriker top-level menu */
#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em}
|
|
From: <si...@us...> - 2008-07-01 11:08:49
|
User: sits
Date: 08/07/01 04:08:47
Modified: template/en/default viewdeltas.html.tmpl
Log:
Prepend a space to each code line for better output.
Index: viewdeltas.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewdeltas.html.tmpl,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- viewdeltas.html.tmpl 1 Jul 2008 06:02:00 -0000 1.8
+++ viewdeltas.html.tmpl 1 Jul 2008 11:08:47 -0000 1.9
@@ -65,12 +65,12 @@
<tr>
[% IF delta.new_file %]
<td>[% line.new_data_line %]</td>
- <td class="[% delta.new_file_class %]" colspan="3">[% line.new_data %]</td>
+ <td class="[% delta.new_file_class %]" colspan="3"> [% line.new_data %]</td>
[% ELSE %]
<td>[% line.old_data_line %]</td>
- <td class="[% line.old_data_class %]">[% line.old_data %]</td>
+ <td class="[% line.old_data_class %]"> [% line.old_data %]</td>
<td>[% line.new_data_line %]</td>
- <td class="[% line.new_data_class %]">[% line.new_data %]</td>
+ <td class="[% line.new_data_class %]"> [% line.new_data %]</td>
[% END %]
</tr>
[% END %]
|
|
From: <si...@us...> - 2008-07-01 10:06:47
|
User: sits
Date: 08/07/01 03:06:46
Modified: lib/Codestriker/Http Response.pm
Log:
Use a DTD which will put IE 6 and above into "standards compliant" mode, so that various CSS attributes like white-space will work.
Index: Response.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/Response.pm,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- Response.pm 23 Jun 2008 07:12:06 -0000 1.46
+++ Response.pm 1 Jul 2008 10:06:46 -0000 1.47
@@ -244,7 +244,9 @@
# Print the basic HTML header header, with the inclusion of the scripts.
- print '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
+ # Make sure a DOCTYPE is used which will put IE 6 and above into
+ # "standards-compliant mode": http://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx.
+ print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">';
print "\n";
print '<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">';
print "\n";
|
|
From: <si...@us...> - 2008-07-01 06:02:01
|
User: sits
Date: 08/06/30 23:02:00
Modified: template/en/default viewdeltas.html.tmpl
Log:
Don't bother creating links for the "Line XXX" text for now, since it just goes to the same Parallel view anyway.
Index: viewdeltas.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewdeltas.html.tmpl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- viewdeltas.html.tmpl 1 Jul 2008 06:00:15 -0000 1.7
+++ viewdeltas.html.tmpl 1 Jul 2008 06:02:00 -0000 1.8
@@ -38,18 +38,14 @@
[% IF delta.view_old_full_url != "" %]
[%# Display heading with links to retrieve the entire file #%]
<td class="line" colspan="2">
- <a href="javascript: myOpen('[% delta.view_old_full_url %]', 'Codestriker')">
Line [% delta.old_linenumber %]
- </a>
|
<a href="javascript: myOpen('[% delta.view_old_full_both_url %]', 'Codestriker')">
Parallel
</a>
</td>
<td class="line" colspan="2">
- <a href="javascript: myOpen('[% delta.view_new_full_url %]', 'Codestriker')">
Line [% delta.new_linenumber %]
- </a>
|
<a href="javascript: myOpen('[% delta.view_new_full_both_url %]', 'Codestriker')">
Parallel
|
|
From: <si...@us...> - 2008-07-01 06:00:16
|
User: sits
Date: 08/06/30 23:00:15
Modified: template/en/default viewdeltas.html.tmpl
Log:
For binary files, don't bother showing the line links, as there are no lines.
Index: viewdeltas.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewdeltas.html.tmpl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- viewdeltas.html.tmpl 11 Jun 2008 07:52:04 -0000 1.6
+++ viewdeltas.html.tmpl 1 Jul 2008 06:00:15 -0000 1.7
@@ -55,7 +55,7 @@
Parallel
</a>
</td>
- [% ELSE %]
+ [% ELSIF !delta.binary %]
[%# Just display the line numbers for the delta without any links. #%]
<td class="line" colspan="2">Line [% delta.old_linenumber %]</td>
<td class="line" colspan="2">Line [% delta.new_linenumber %]</td>
|
|
From: <si...@us...> - 2008-07-01 05:59:51
|
User: sits
Date: 08/06/30 22:59:51
Modified: lib/Codestriker/Http HighlightLineFilter.pm
Log:
Proper error handling if highlighting fails from mod_perl deployments.
Index: HighlightLineFilter.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/HighlightLineFilter.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- HighlightLineFilter.pm 20 Jun 2008 02:34:00 -0000 1.5
+++ HighlightLineFilter.pm 1 Jul 2008 05:59:50 -0000 1.6
@@ -50,7 +50,12 @@
push @args, '-f';
push @args, '-t';
push @args, $self->{tabwidth};
- Codestriker::execute_command($read_stdout_fh, undef, $self->{highlight}, @args);
+
+ # Wrap the command in an eval in case highlight fails running over the file - for
+ # example if it is an unknown file type.
+ eval {
+ Codestriker::execute_command($read_stdout_fh, undef, $self->{highlight}, @args);
+ };
if ($read_data eq "") {
# Assume this occurred because the filename was an unsupported type.
# Just return the text appropriately encoded for html output.
|
|
From: <si...@us...> - 2008-06-27 00:31:35
|
User: sits
Date: 08/06/26 17:31:33
Modified: html codestriker.css
Log:
Missing CSS for removed monospace TD elements. The fixed-width view will now display the removed "whitespace" on the right-hand side in the right colour.
Index: codestriker.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker.css,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- codestriker.css 24 Jun 2008 02:56:15 -0000 1.25
+++ codestriker.css 27 Jun 2008 00:31:33 -0000 1.26
@@ -47,6 +47,9 @@
/* Removed blank text */
TD.rb {white-space: pre; background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
+/* Removed blank text monospaced */
+TD.msrb {white-space: pre; background-color: #cccccc; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
+
/* Changed text */
TD.c {white-space: pre; background-color: #ffff77; font-family: Georgia, serif; font-size: smaller}
|
|
From: <si...@us...> - 2008-06-27 00:19:11
|
User: sits
Date: 08/06/26 17:19:10
Modified: template/en/default viewtopic.html.tmpl
Removed: lib/Codestriker/Template/Plugin CommentLine.pm
Log:
Remove the use of the CommentLine tt plugin. It was no longer used, and it was causing issues when running under mod_perl.
Index: CommentLine.pm
===================================================================
RCS file: CommentLine.pm
diff -N CommentLine.pm
--- CommentLine.pm 28 Feb 2008 11:01:58 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,78 +0,0 @@
-package Codestriker::Template::Plugin::CommentLine;
-
-# Template toolkit plugin module for outputting the anchor text
-# for a specific line.
-
-use Template::Plugin::Filter;
-use Codestriker;
-use Codestriker::Http::UrlBuilder;
-
-use base qw( Template::Plugin::Filter );
-
-# Indicate that the filter should be re-created on each filter call.
-our $DYNAMIC = 1;
-
-sub filter {
- my ($self, $text, $args, $conf) = @_;
-
- $conf = $self->merge_config($conf);
-
- # Constructor parameters.
- my $query = $conf->{query};
- my $comment_hash = %{ $conf->{comment_hash} };
- my $comment_location_map = %{ $conf->{comment_location_map} };
- my $mode = $conf->{mode};
-
- # Filter parameters.
- my $filenumber = $conf->{filenumber};
- my $line = $conf->{line};
- my $new = $conf->{new};
-
- # Determine the comment class to use.
- my $comment_class = $mode eq 'coloured' ? 'com' : 'smscom';
- my $no_comment_class = $mode eq 'coloured' ? 'nocom' : 'smsnocom';
-
- # Determine the anchor and edit URL for this line number.
- my $anchor = "$filenumber|$line|$new";
- my $edit_url = "javascript:eo('$filenumber','$line','$new')";
-
- # Set the anchor to this line number.
- my $params = {};
- $params->{name} = $anchor;
-
- # Only set the href attribute if the comment is in open state.
- if (!Codestriker::topic_readonly($self->{topic_state})) {
- $params->{href} = $edit_url;
- }
-
- # If a comment exists on this line, set span and the overlib hooks onto
- # it.
- my $comment_number = undef;
- if (exists $comment_hash{$anchor}) {
- # Determine what comment number this anchor refers to.
- $comment_number = $comment_location_map{$anchor};
-
- if (defined $comment_class) {
- $text = $query->span({-id=>"c$comment_number"}, "") .
- $query->span({-class=>$comment_class}, $text);
- }
-
- # Determine what the next comment in line is.
- my $index = -1;
- my @comment_locations = @{ $self->{comment_locations} };
- for ($index = 0; $index <= $#comment_locations; $index++) {
- last if $anchor eq $comment_locations[$index];
- }
-
- $params->{onmouseover} = "return overlib(comment_text[$index],STICKY,DRAGGABLE,ALTCUT);";
- $params->{onmouseout} = "return nd();";
- } else {
- if (defined $no_comment_class) {
- $text = $query->span({-class=>$no_comment_class}, $text);
- }
- }
-
- return $query->a($params, $text);
-}
-
-1;
Index: viewtopic.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopic.html.tmpl,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- viewtopic.html.tmpl 24 Jun 2008 04:51:30 -0000 1.51
+++ viewtopic.html.tmpl 27 Jun 2008 00:19:10 -0000 1.52
@@ -82,10 +82,6 @@
</table>
-[% USE CommentLine query = query comment_hash = comment_hash
- comment_location_map = comment_location_map
- mode = mode %]
-
<p>
<span class="general_comment">[[% add_general_comment_element %]] to topic.</span>
<p>
|
|
From: <si...@us...> - 2008-06-26 21:52:24
|
User: sits
Date: 08/06/26 14:52:23
Modified: . CHANGELOG codestriker.conf
lib/Codestriker/FileParser Parser.pm
Log:
* Introduced new configuration variable $sort_diffs_by_filename in
codestriker.conf which indicates whether the diff chunks inside a
topic should be ordered by filename. Apparently Subversion can
produce diff topics in some circumstances in arbitrary order,
where using this setting would make sense. Default is for this
setting to disabled.
Prompted by https://sourceforge.net/tracker/index.php?func=detail&aid=2003380&group_id=41136&atid=429860.
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
retrieving revision 1.236
retrieving revision 1.237
diff -u -r1.236 -r1.237
--- CHANGELOG 25 Jun 2008 07:27:12 -0000 1.236
+++ CHANGELOG 26 Jun 2008 21:52:22 -0000 1.237
@@ -65,6 +65,13 @@
* Can now comment on any line of any file in the review, not just those
that are a part of the diff file.
+
+* Introduced new configuration variable $sort_diffs_by_filename in
+ codestriker.conf which indicates whether the diff chunks inside a
+ topic should be ordered by filename. Apparently Subversion can
+ produce diff topics in some circumstances in arbitrary order,
+ where using this setting would make sense. Default is for this
+ setting to disabled.
Version 1.9.4
Index: codestriker.conf
===================================================================
RCS file: /cvsroot/codestriker/codestriker/codestriker.conf,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- codestriker.conf 23 Jun 2008 07:15:56 -0000 1.98
+++ codestriker.conf 26 Jun 2008 21:52:23 -0000 1.99
@@ -346,6 +346,13 @@
# can be changed dynamically on the view topic screen.
$default_tabwidth = 8;
+# Indicate whether the diffs presented in a topic should be ordered by
+# filename. For some deployments, it is important that the order of the
+# diffs are presented in the same order as it was in the file. For other
+# deployments, apparently Subversion can returns diffs in an arbitrary
+# order, so setting this to '1' would be useful.
+$sort_diffs_by_filename = 0;
+
# Bug database to update. Currently, Bugzilla, Flyspray and TestDirector
# are supported, but it is straight-forward to support other bug
# databases. To enable Bugzilla, set $bug_db to "bugzilla", and set
Index: Parser.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/FileParser/Parser.pm,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- Parser.pm 18 Aug 2007 04:17:19 -0000 1.24
+++ Parser.pm 26 Jun 2008 21:52:23 -0000 1.25
@@ -172,9 +172,12 @@
seek($fh, 0, 0) ||
die "Unable to seek to the start of the temporary file. $!";
- # Sort the diff chunks by filename, then old linenumber.
- @diffs = sort { $a->{filename} cmp $b->{filename} ||
- $a->{old_linenumber} <=> $b->{old_linenumber} } @diffs;
+ if (defined $Codestriker::sort_diffs_by_filename &&
+ $Codestriker::sort_diffs_by_filename) {
+ # Sort the diff chunks by filename, then old linenumber.
+ @diffs = sort { $a->{filename} cmp $b->{filename} ||
+ $a->{old_linenumber} <=> $b->{old_linenumber} } @diffs;
+ }
# Only include those files whose extension is not in
# @Codestriker::exclude_file_types, provided it is defined.
|
|
From: <si...@us...> - 2008-06-25 07:27:14
|
User: sits
Date: 08/06/25 00:27:13
Modified: . CHANGELOG
Log:
Updated to be more accurate.
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
retrieving revision 1.235
retrieving revision 1.236
diff -u -r1.235 -r1.236
--- CHANGELOG 23 Jun 2008 23:02:45 -0000 1.235
+++ CHANGELOG 25 Jun 2008 07:27:12 -0000 1.236
@@ -51,7 +51,7 @@
* Removed the "View with minimal screen width" / "View with minimal
link break" options from the view topic screen. If the browser window
- is not wide enough, lines will wrap if possible.
+ is not wide enough, a horizontal scrollbar will appear.
* Provided the ability to create topics for a specific changeset from
a Perforce repository, from Alis McCutcheon <amc...@nx...>.
|
|
From: <si...@us...> - 2008-06-24 04:51:31
|
User: sits Date: 08/06/23 21:51:30 Modified: template/en/default viewtopic.html.tmpl Log: Changed "monospace" to "fixed-width". Index: viewtopic.html.tmpl =================================================================== RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopic.html.tmpl,v retrieving revision 1.50 retrieving revision 1.51 diff -u -r1.50 -r1.51 --- viewtopic.html.tmpl 24 Jun 2008 03:26:50 -0000 1.50 +++ viewtopic.html.tmpl 24 Jun 2008 04:51:30 -0000 1.51 @@ -12,7 +12,7 @@ [%# Display the different coloured viewing modes #%] [% IF mode == "coloured" %] -| View in <a href="[% coloured_mono_mode_url %]">monospace font</a> +| View in <a href="[% coloured_mono_mode_url %]">fixed-width font</a> [% ELSIF mode == "coloured_mono" %] | View in <a href="[% coloured_mode_url %]">variable-width font</a> [% END %] |
|
From: <si...@us...> - 2008-06-24 03:26:52
|
User: sits
Date: 08/06/23 20:26:50
Modified: template/en/default listprojects.html.tmpl
editproject.html.tmpl viewtopicinfo.html.tmpl
listtopics.html.tmpl viewtopic.html.tmpl
viewtopiccomments.html.tmpl editcomment.html.tmpl
viewtopicproperties.html.tmpl createtopic.html.tmpl
createproject.html.tmpl search.html.tmpl
metricsreport.html.tmpl viewtopicfile.html.tmpl
Log:
Updated help links to new documentation.
Index: listprojects.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/listprojects.html.tmpl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- listprojects.html.tmpl 23 Jun 2008 10:12:16 -0000 1.25
+++ listprojects.html.tmpl 24 Jun 2008 03:26:50 -0000 1.26
@@ -1,7 +1,7 @@
[%# Display a list of projects #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x370.html" subtitle="Project List" %]
+ closehead = 1 help = "x378.html" subtitle="Project List" %]
[%# Display any "feedback" to the user if necessary. #%]
[% IF feedback != '' %]
Index: editproject.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/editproject.html.tmpl,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- editproject.html.tmpl 23 Jun 2008 10:12:16 -0000 1.26
+++ editproject.html.tmpl 24 Jun 2008 03:26:50 -0000 1.27
@@ -1,7 +1,7 @@
[%# Screen for the edit project form. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x370.html" subtitle = "Edit Project" %]
+ closehead = 1 help = "x378.html" subtitle = "Edit Project" %]
<script language="JavaScript">
Index: viewtopicinfo.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopicinfo.html.tmpl,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- viewtopicinfo.html.tmpl 10 Aug 2006 11:29:05 -0000 1.23
+++ viewtopicinfo.html.tmpl 24 Jun 2008 03:26:50 -0000 1.24
@@ -4,7 +4,7 @@
[% PROCESS viewtopicheader.html.tmpl version = version topicview = 0
topicproperties = 0 topiccomments = 0 topicinfo = 1 closehead = 1
- help = "x637.html" %]
+ help = "x649.html" %]
[%# Create a form to allow the topic's metrics to be changed #%]
[% SET metric_input_exists = 0 %]
Index: listtopics.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/listtopics.html.tmpl,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- listtopics.html.tmpl 23 Jun 2008 10:12:16 -0000 1.43
+++ listtopics.html.tmpl 24 Jun 2008 03:26:50 -0000 1.44
@@ -1,7 +1,7 @@
[%# Screen for show a list of topics. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x339.html" subtitle = "Topic List" %]
+ closehead = 1 help = "x347.html" subtitle = "Topic List" %]
[%# Display any "feedback" to the user if necessary. #%]
[% IF feedback != '' %]
Index: viewtopic.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopic.html.tmpl,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- viewtopic.html.tmpl 24 Jun 2008 02:56:15 -0000 1.49
+++ viewtopic.html.tmpl 24 Jun 2008 03:26:50 -0000 1.50
@@ -2,7 +2,7 @@
<body onload="view_topic_on_load_handler();">
[% PROCESS viewtopicheader.html.tmpl version = version
- help = "x504.html#VIEW-TOPIC" topicview = 1 topicproperties = 0
+ help = "x516.html#VIEW-TOPIC" topicview = 1 topicproperties = 0
topiccomments = 0 topicinfo = 0 closehead = 0 %]
<p>
Index: viewtopiccomments.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopiccomments.html.tmpl,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- viewtopiccomments.html.tmpl 29 Jun 2007 12:58:06 -0000 1.28
+++ viewtopiccomments.html.tmpl 24 Jun 2008 03:26:50 -0000 1.29
@@ -4,7 +4,7 @@
[% USE FormatWhitespace tabwidth = tabwidth %]
[% PROCESS viewtopicheader.html.tmpl version = version
- help = "x602.html" topicview = 0 topicproperties = 0 topiccomments = 1
+ help = "x614.html" topicview = 0 topicproperties = 0 topiccomments = 1
topicinfo = 0 closehead = 1 %]
<SCRIPT type="text/javascript">
Index: editcomment.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/editcomment.html.tmpl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- editcomment.html.tmpl 23 Jun 2008 10:12:16 -0000 1.25
+++ editcomment.html.tmpl 24 Jun 2008 03:26:50 -0000 1.26
@@ -118,7 +118,7 @@
[%# Screen for the add comment form. #%]
-[% PROCESS header.html.tmpl displaymenu = 0 version = version help = "x504.html#ADD-COMMENT" subtitle = "Add Comment" %]
+[% PROCESS header.html.tmpl displaymenu = 0 version = version help = "x516.html#ADD-COMMENT" subtitle = "Add Comment" %]
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr class="tlh">
Index: viewtopicproperties.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopicproperties.html.tmpl,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- viewtopicproperties.html.tmpl 23 Feb 2008 02:28:09 -0000 1.26
+++ viewtopicproperties.html.tmpl 24 Jun 2008 03:26:50 -0000 1.27
@@ -5,7 +5,7 @@
[% PROCESS viewtopicheader.html.tmpl version = version topicview = 0
topiccomments = 0 topicinfo = 0 topicproperties = 1 closehead = 1
- help = "x624.html" %]
+ help = "x636.html" %]
<script type="text/javascript">
<!--
Index: createtopic.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/createtopic.html.tmpl,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- createtopic.html.tmpl 23 Jun 2008 10:12:16 -0000 1.53
+++ createtopic.html.tmpl 24 Jun 2008 03:26:50 -0000 1.54
@@ -1,7 +1,7 @@
[%# Screen for the create topic form. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x394.html" subtitle = "Create New Topic" %]
+ closehead = 1 help = "x402.html" subtitle = "Create New Topic" %]
[%# Display any "feedback" to the user if necessary. #%]
[% IF feedback != '' %]
Index: createproject.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/createproject.html.tmpl,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- createproject.html.tmpl 23 Jun 2008 10:12:16 -0000 1.25
+++ createproject.html.tmpl 24 Jun 2008 03:26:50 -0000 1.26
@@ -1,7 +1,7 @@
[%# Screen for the create project form. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x370.html" subtitle = "Create new Project" %]
+ closehead = 1 help = "x378.html" subtitle = "Create new Project" %]
[%# Display any "feedback" to the user if necessary. #%]
[% IF feedback != '' %]
Index: search.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/search.html.tmpl,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- search.html.tmpl 23 Jun 2008 10:12:16 -0000 1.34
+++ search.html.tmpl 24 Jun 2008 03:26:50 -0000 1.35
@@ -1,7 +1,7 @@
[%# Screen for search topics. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help = "x656.html" subtitle = "Find Topics" %]
+ closehead = 1 help = "x668.html" subtitle = "Find Topics" %]
<FORM METHOD="post" ENCTYPE="application/x-www-form-urlencoded">
Index: metricsreport.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/metricsreport.html.tmpl,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- metricsreport.html.tmpl 23 Jun 2008 10:12:16 -0000 1.20
+++ metricsreport.html.tmpl 24 Jun 2008 03:26:50 -0000 1.21
@@ -1,7 +1,7 @@
[%# Screen for the metrics report. #%]
[% PROCESS header.html.tmpl version = version displaymenu = 1
- closehead = 1 help ="x692.html" subtitle = "Metrics Report" %]
+ closehead = 1 help ="x704.html" subtitle = "Metrics Report" %]
<!-- "" -->
Index: viewtopicfile.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopicfile.html.tmpl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- viewtopicfile.html.tmpl 23 Jun 2008 10:12:16 -0000 1.2
+++ viewtopicfile.html.tmpl 24 Jun 2008 03:26:50 -0000 1.3
@@ -1,6 +1,6 @@
[%# Screen for displaying a complete file from a topic. #%]
-[% PROCESS header.html.tmpl version = version displaymenu = 1
+[% PROCESS header.html.tmpl version = version displaymenu = 1 help = "x516.html#VIEW-FILE"
closehead = 1 subtitle = "View Topic File" %]
[% PROCESS viewdeltas.html.tmpl deltas = deltas %]
|
|
From: <si...@us...> - 2008-06-24 03:16:20
|
User: sits
Date: 08/06/23 20:16:16
Modified: doc codestriker.sgml
Log:
Updated documentation.
Index: codestriker.sgml
===================================================================
RCS file: /cvsroot/codestriker/codestriker/doc/codestriker.sgml,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- codestriker.sgml 23 Feb 2008 02:17:15 -0000 1.67
+++ codestriker.sgml 24 Jun 2008 03:16:16 -0000 1.68
@@ -889,28 +889,17 @@
</para>
</sect2>
<sect2>
- <title>Default View Topic Line Break Mode</title>
+ <title>Source Code Hihglighting</title>
<para>
- As explained by the comments in the configuration file, it
- is possible to set the default view topic line break mode,
- by setting the <varname>$default_topic_br_mode</varname>
- variable. There is usually no need to change the default
- setting unless you regularly review code with very long
- lines.
+ Source code highlighting will be performed if the Highlight
+ program is installed.
<programlisting>
-# The default line break viewing mode to use in the URL when viewing a
-# topic. Can be either $LINE_BREAK_NORMAL_MODE or $LINE_BREAK_ASSIST_MODE.
-# Using $LINE_BREAK_ASSIST_MODE indicates that extra line breaks may be
-# used in the topic display if the review has very long code lines. Using
-# $LINE_BREAK_NORMAL_MODE will ensure that the display matches the line
-# breaks present in the code. The line break mode can also be changed
-# dynamically in the view topic screen. There is usually no need to
-# change this setting unless you regularly review code with very long
-# lines.
-$LINE_BREAK_NORMAL_MODE = 1;
-$LINE_BREAK_ASSIST_MODE = 2;
-
-$default_topic_br_mode = $LINE_BREAK_NORMAL_MODE;
+# Location of the highlight binary, which is used for highlighting source code.
+# Available from http://www.andre-simon.de/. If this is not set, no syntax
+# highlighting will be performed.
+$highlighter = '';
+#$highlighter = '/usr/bin/highlight';
+#$highlighter = 'C:/Program Files (x86)/WinHighlight/highlight.exe';
</programlisting>
</para>
</sect2>
@@ -1920,6 +1909,12 @@
Here 132 is the change-number. This should be substituted
with the change-number that you want to review.
</para>
+ <para>
+ It is also possible to create Perforce topics from already committed
+ code. Simply enter the change number into either the "Start tag" or
+ "End tag" field, and set "Module" to be //, which corresponds to the
+ root of the depot.
+ </para>
</sect2>
<sect2>
<title>Creating ClearCase Diff Topics</title>
|
|
From: <si...@us...> - 2008-06-24 02:56:16
|
User: sits
Date: 08/06/23 19:56:15
Modified: lib/Codestriker/Http DeltaRenderer.pm TabToNbspLineFilter.pm
lib/Codestriker/Action ViewTopic.pm
html codestriker.css
template/en/default viewtopic.html.tmpl
Removed: lib/Codestriker/Http LineBreakLineFilter.pm
Log:
Use CSS for space formatting rather than
Index: DeltaRenderer.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/DeltaRenderer.pm,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DeltaRenderer.pm 23 Jun 2008 07:12:06 -0000 1.14
+++ DeltaRenderer.pm 24 Jun 2008 02:56:15 -0000 1.15
@@ -13,7 +13,6 @@
use Codestriker::Http::HtmlEntityLineFilter;
use Codestriker::Http::TabToNbspLineFilter;
-use Codestriker::Http::LineBreakLineFilter;
use Codestriker::Http::HighlightLineFilter;
use Codestriker::Http::HighlightedLxrLineFilter;
use Codestriker::Http::NonHighlightedLxrLineFilter;
@@ -61,14 +60,12 @@
@{$self->{line_filters}} = ();
if (defined $Codestriker::highlighter && $Codestriker::highlighter ne '') {
push @{$self->{line_filters}}, Codestriker::Http::HighlightLineFilter->new($Codestriker::highlighter, $tabwidth);
- push @{$self->{line_filters}}, Codestriker::Http::LineBreakLineFilter->new();
if (defined $lxr_config) {
push @{$self->{line_filters}}, Codestriker::Http::HighlightedLxrLineFilter->new($lxr_config);
}
} else {
push @{$self->{line_filters}}, Codestriker::Http::HtmlEntityLineFilter->new();
push @{$self->{line_filters}}, Codestriker::Http::TabToNbspLineFilter->new($tabwidth);
- push @{$self->{line_filters}}, Codestriker::Http::LineBreakLineFilter->new();
if (defined $lxr_config) {
push @{$self->{line_filters}}, Codestriker::Http::NonHighlightedLxrLineFilter->new($lxr_config);
}
Index: TabToNbspLineFilter.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/TabToNbspLineFilter.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TabToNbspLineFilter.pm 20 Jun 2008 02:34:00 -0000 1.3
+++ TabToNbspLineFilter.pm 24 Jun 2008 02:56:15 -0000 1.4
@@ -32,7 +32,7 @@
my ($self, $text) = @_;
my $tabwidth = $self->{tabwidth};
- 1 while $text =~ s/\t+/' ' x
+ 1 while $text =~ s/\t+/' ' x
(length($&) * $tabwidth - length($`) % $tabwidth)/eo;
return $text;
Index: LineBreakLineFilter.pm
===================================================================
RCS file: LineBreakLineFilter.pm
diff -N LineBreakLineFilter.pm
--- LineBreakLineFilter.pm 20 Jun 2008 02:34:00 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-###############################################################################
-# Codestriker: Copyright (c) 2001, 2002 David Sitsky. All rights reserved.
-# si...@us...
-#
-# This program is free software; you can redistribute it and modify it under
-# the terms of the GPL.
-
-# Line filter for handling line-breaks.
-# entities.
-
-package Codestriker::Http::LineBreakLineFilter;
-
-use strict;
-
-use Codestriker::Http::LineFilter;
-
-@Codestriker::Http::LineBreakLineFilter::ISA =
- ("Codestriker::Http::LineFilter");
-
-sub new {
- my ($type) = @_;
-
- my $self = Codestriker::Http::LineFilter->new();
- return bless $self, $type;
-}
-
-# Convert the spaces appropriately for line-breaking.
-sub _filter {
- my ($self, $text) = @_;
-
- # Replace more than one space with the appropriate number of line breaks.
- # Ensure a real space is left there so if necessary, the browser can
- # perform wrapping.
- $text =~ s/( [ ]+)/' ' . (' ' x (length($1)-1))/eog;
-
- return $text;
-}
-
-1;
Index: ViewTopic.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Action/ViewTopic.pm,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- ViewTopic.pm 19 Jun 2008 03:33:51 -0000 1.62
+++ ViewTopic.pm 24 Jun 2008 02:56:15 -0000 1.63
@@ -164,7 +164,7 @@
# Set template variables relating to coloured mode.
if ($mode == $Codestriker::COLOURED_MODE) {
$vars->{'mode'} = 'coloured';
- } elsif ($mode == $Codestrikier::COLOURED_MONO_MODE) {
+ } elsif ($mode == $Codestriker::COLOURED_MONO_MODE) {
$vars->{'mode'} = 'coloured_mono';
} else {
$vars->{'mode'} = 'unknown';
Index: codestriker.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker.css,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- codestriker.css 23 Jun 2008 10:12:16 -0000 1.24
+++ codestriker.css 24 Jun 2008 02:56:15 -0000 1.25
@@ -15,52 +15,52 @@
TD.line {background-color: #99cccc; font-family: Georgia, serif; font-size: medium}
/* Normal text */
-TD.n {font-family: Georgia, serif; font-size: smaller}
+TD.n {white-space: pre; font-family: Georgia, serif; font-size: smaller}
/* Normal text monospaced */
-TD.msn {font-family: monospace; font-size: smaller}
+TD.msn {white-space: pre; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Added text */
-TD.a {background-color: #abd; font-family: Georgia, serif; font-size: smaller}
+TD.a {white-space: pre; background-color: #abd; font-family: Georgia, serif; font-size: smaller}
/* Added text monospaced */
-TD.msa {background-color: #abd; font-family: monospace; font-size: smaller}
+TD.msa {white-space: pre; background-color: #abd; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Added file */
TD.af {background-color: #abd}
/* Added blank text */
-TD.ab {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
+TD.ab {white-space: pre; background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
/* Added blank text monospaced */
-TD.msab {background-color: #cccccc; font-family: monospace; font-size: smaller}
+TD.msab {white-space: pre; background-color: #cccccc; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Removed text */
-TD.r {background-color: #ff9999; font-family: Georgia, serif; font-size: smaller}
+TD.r {white-space: pre; background-color: #ff9999; font-family: Georgia, serif; font-size: smaller}
/* Removed text monospaced */
-TD.msr {background-color: #ff9999; font-family: monospace; font-size: smaller}
+TD.msr {white-space: pre; background-color: #ff9999; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Removed file */
TD.rf {background-color: #ff9999}
/* Removed blank text */
-TD.rb {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
+TD.rb {white-space: pre; background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
/* Changed text */
-TD.c {background-color: #ffff77; font-family: Georgia, serif; font-size: smaller}
+TD.c {white-space: pre; background-color: #ffff77; font-family: Georgia, serif; font-size: smaller}
/* Changed text monospaced */
-TD.msc {background-color: #ffff77; font-family: monospace; font-size: smaller}
+TD.msc {white-space: pre; background-color: #ffff77; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Changed file */
TD.cf {background-color: #ffff77}
/* Changed blank text */
-TD.cb {background-color: #eeee77; font-family: Georgia, serif; font-size: smaller}
+TD.cb {white-space: pre; background-color: #eeee77; font-family: Georgia, serif; font-size: smaller}
/* Changed blank text monospaced */
-TD.mscb {background-color: #eeee77; font-family: monospace; font-size: smaller}
+TD.mscb {white-space: pre; background-color: #eeee77; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
/* Table of contents links */
A.toc { font-family: Georgia, serif; font-size: smaller}
@@ -70,30 +70,30 @@
A.toc:link:hover { text-decoration: underline; }
/* Line number with comment */
-A.comment { color: #ff0000; font-family: Georgia, serif; font-size: smaller}
+A.comment { color: #ff0000; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
A.comment:link { color: ff0000; text-decoration: none }
A.comment:visited { color: inherit; text-decoration: none }
A.comment:visited:hover { text-decoration: underline; }
A.comment:link:hover { text-decoration: underline; }
/* Line number with no comment */
-A.nocom { font-family: Georgia, serif; font-size: smaller}
+A.nocom { font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: smaller}
A.nocom:link { color: inherit; text-decoration: none }
A.nocom:visited { color: inherit; text-decoration: none }
A.nocom:visited:hover { text-decoration: underline; }
A.nocom:link:hover { text-decoration: underline; }
/* Monospaced line with added text */
-SPAN.msa {background-color: #abd; font-family: monospace; font-size: medium}
+SPAN.msa {background-color: #abd; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: medium}
/* Monospaced line with removed text */
-SPAN.msr {background-color: #ff9999; font-family: monospace; font-size: medium}
+SPAN.msr {background-color: #ff9999; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: medium}
/* Monospaced line with changed text */
-SPAN.msc {background-color: #ffff77; font-family: monospace; font-size: medium}
+SPAN.msc {background-color: #ffff77; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: medium}
/* Monospaced line with normal text */
-SPAN.ms {font-family: monospace; font-size: medium}
+SPAN.ms {font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace; font-size: medium}
/* Monospaced line number with comment */
SPAN.mscom {color: #ff0000; font-family: monospace; font-size: medium}
@@ -138,9 +138,9 @@
/* Style comment listings. */
TR.comments {background-color: #abd; font-family: Georgia, serif} /* space */
TR.commenth {background-color: #cccccc; font-family: Georgia, serif} /* header */
-TR.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
-TD.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
-TR.commentc {background-color: #eeeeee; font-family: monospace} /* context */
+TR.commentb {background-color: #eeeeee; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace} /* comment body */
+TD.commentb {background-color: #eeeeee; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace} /* comment body */
+TR.commentc {background-color: #eeeeee; font-family: Consolas, "Nimbus Mono L", LucidaConsole, "Bitstream Vera Sans Mono", monospace} /* context */
/* Style for topic title headings. */
Index: viewtopic.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopic.html.tmpl,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- viewtopic.html.tmpl 23 Jun 2008 10:12:16 -0000 1.48
+++ viewtopic.html.tmpl 24 Jun 2008 02:56:15 -0000 1.49
@@ -87,7 +87,7 @@
mode = mode %]
<p>
-<span class="general_comment">[% add_general_comment_element %] to topic.</span>
+<span class="general_comment">[[% add_general_comment_element %]] to topic.</span>
<p>
[%# Render the delta header in the footer if only one file is being viewed. #%]
@@ -104,7 +104,7 @@
</table>
<p>
-<span class="general_comment">[% add_general_comment_element %] to topic.</span>
+<span class="general_comment">[[% add_general_comment_element %]] to topic.</span>
[% PROCESS trailer.html.tmpl %]
|
|
From: <si...@us...> - 2008-06-23 23:02:45
|
User: sits
Date: 08/06/23 16:02:45
Modified: . CHANGELOG
Log:
Indicate that comments can be added to any line.
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
retrieving revision 1.234
retrieving revision 1.235
diff -u -r1.234 -r1.235
--- CHANGELOG 23 Jun 2008 22:44:03 -0000 1.234
+++ CHANGELOG 23 Jun 2008 23:02:45 -0000 1.235
@@ -62,6 +62,9 @@
* Updated the Codestriker CSS file significantly based on the work by
Kannan Goundan <ca...@us...>. Also changed the
appearance of the application to give it a more modern look.
+
+* Can now comment on any line of any file in the review, not just those
+ that are a part of the diff file.
Version 1.9.4
|
|
From: <si...@us...> - 2008-06-23 22:44:04
|
User: sits
Date: 08/06/23 15:44:03
Modified: . CHANGELOG
Log:
Updated to reflect CSS work.
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/codestriker/codestriker/CHANGELOG,v
retrieving revision 1.233
retrieving revision 1.234
diff -u -r1.233 -r1.234
--- CHANGELOG 21 Jun 2008 11:10:41 -0000 1.233
+++ CHANGELOG 23 Jun 2008 22:44:03 -0000 1.234
@@ -59,12 +59,9 @@
as the module name, and 12736 (the changeset number) can be set
in either the start or end tag field.
-* Added a new CSS file as a part of the distribution which provides a
- bluish scheme, called codestriker-bluish.css is the html directory.
- This CSS file can be set from within codestriker.conf and was
- contributed by Kannan Goundan <ca...@us...>.
- The ability to easily change which CSS file to use was submitted by
- rob...@us....
+* Updated the Codestriker CSS file significantly based on the work by
+ Kannan Goundan <ca...@us...>. Also changed the
+ appearance of the application to give it a more modern look.
Version 1.9.4
|
|
From: <si...@us...> - 2008-06-23 22:40:19
|
User: sits
Date: 08/06/23 15:40:18
Modified: lib/Codestriker/Action ListTopics.pm
Log:
Make sure the URL to the topic is set correctly.
Index: ListTopics.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Action/ListTopics.pm,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- ListTopics.pm 20 Jun 2008 04:27:15 -0000 1.32
+++ ListTopics.pm 23 Jun 2008 22:40:18 -0000 1.33
@@ -133,8 +133,7 @@
my $template_topic = {};
$template_topic->{'view_topic_url'} =
- $url_builder->view_url($topic->{topicid}, -1, $mode,
- $Codestriker::default_topic_br_mode);
+ $url_builder->view_url($topic->{topicid}, -1, $mode);
$template_topic->{'description'} = $topic->{description};
|
|
From: <si...@us...> - 2008-06-23 22:38:48
|
User: sits
Date: 08/06/23 15:38:47
Removed: bin highlight.css log_accum.pl.html log_accum.pl.xml
test.pl zot.html
Log:
Removing files which should not have been committed.
Index: highlight.css
===================================================================
RCS file: highlight.css
diff -N highlight.css
--- highlight.css 23 Jun 2008 10:12:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-/* Style definition file generated by highlight 2.6.10, http://www.andre-simon.de/ */
-
-/* Highlighting theme definition: */
-
-body.hl { background-color:#ffffff; }
-pre.hl { color:#000000; background-color:#ffffff; font-size:10pt; font-family:'Courier New';}
-.hl.num { color:#2928ff; }
-.hl.esc { color:#ff00ff; }
-.hl.str { color:#ff0000; }
-.hl.dstr { color:#818100; }
-.hl.slc { color:#838183; font-style:italic; }
-.hl.com { color:#838183; font-style:italic; }
-.hl.dir { color:#008200; }
-.hl.sym { color:#000000; }
-.hl.line { color:#555555; }
-.hl.mark { background-color:#ffffbb;}
-.hl.kwa { color:#000000; font-weight:bold; }
-.hl.kwb { color:#830000; }
-.hl.kwc { color:#000000; font-weight:bold; }
-.hl.kwd { color:#010181; }
-
Index: log_accum.pl.html
===================================================================
RCS file: log_accum.pl.html
diff -N log_accum.pl.html
--- log_accum.pl.html 23 Jun 2008 10:12:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,615 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
-<title>log_accum.pl</title>
-<link rel="stylesheet" type="text/css" href="highlight.css">
-</head>
-<body class="hl">
-<pre class="hl"><span class="hl slc">#!/usr/bin/perl</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Perl filter to handle the log messages from the checkin of files in</span>
-<span class="hl slc"># a directory. This script will group the lists of files by log</span>
-<span class="hl slc"># message, and mail a single consolidated log message at the end of</span>
-<span class="hl slc"># the commit.</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># This file assumes a pre-commit checking program that leaves the</span>
-<span class="hl slc"># names of the first and last commit directories in a temporary file.</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Contributed by David Hampton <hampton@cisco.com></span>
-<span class="hl slc"># Roy Fielding removed useless code and added log/mail of new files</span>
-<span class="hl slc"># Ken Coar added special processing (i.e., no diffs) for binary files</span>
-<span class="hl slc"># Jon Stevens added a few new features and cleaned up some of the</span>
-<span class="hl slc"># output</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># David Sitsky modified this slightly so that it also creates a new</span>
-<span class="hl slc"># codestriker topic automatically.</span>
-
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Setup instructions</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Create a directory $CVSROOT/commitlogs and allow</span>
-<span class="hl slc"># the cvs process to write to it.</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Edit the options below.</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Configurable options</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Where do you want the RCS ID and delta info?</span>
-<span class="hl slc"># 0 = none,</span>
-<span class="hl slc"># 1 = in mail only,</span>
-<span class="hl slc"># 2 = rcsids in both mail and logs.</span>
-<span class="hl slc">#</span>
-<span class="hl kwb">$rcsidinfo</span> <span class="hl sym">=</span> <span class="hl num">2</span><span class="hl sym">;</span>
-
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Constants</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-<span class="hl kwb">$STATE_NONE</span> <span class="hl sym">=</span> <span class="hl num">0</span><span class="hl sym">;</span>
-<span class="hl kwb">$STATE_CHANGED</span> <span class="hl sym">=</span> <span class="hl num">1</span><span class="hl sym">;</span>
-<span class="hl kwb">$STATE_ADDED</span> <span class="hl sym">=</span> <span class="hl num">2</span><span class="hl sym">;</span>
-<span class="hl kwb">$STATE_REMOVED</span> <span class="hl sym">=</span> <span class="hl num">3</span><span class="hl sym">;</span>
-<span class="hl kwb">$STATE_LOG</span> <span class="hl sym">=</span> <span class="hl num">4</span><span class="hl sym">;</span>
-
-<span class="hl kwb">$TMPDIR</span> <span class="hl sym">=</span> <span class="hl kwb">$ENV</span><span class="hl sym">{</span><span class="hl str">'TMPDIR'</span><span class="hl sym">} ||</span> <span class="hl str">'/tmp'</span><span class="hl sym">;</span>
-<span class="hl kwb">$FILE_PREFIX</span> <span class="hl sym">=</span> <span class="hl str">'#cvs.'</span><span class="hl sym">;</span>
-
-<span class="hl kwb">$LAST_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}lastdir"</span><span class="hl sym">;</span>
-<span class="hl kwb">$CHANGED_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.changed"</span><span class="hl sym">;</span>
-<span class="hl kwb">$ADDED_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.added"</span><span class="hl sym">;</span>
-<span class="hl kwb">$REMOVED_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.removed"</span><span class="hl sym">;</span>
-<span class="hl kwb">$LOG_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.log"</span><span class="hl sym">;</span>
-<span class="hl kwb">$BRANCH_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.branch"</span><span class="hl sym">;</span>
-<span class="hl kwb">$SUMMARY_FILE</span> <span class="hl sym">=</span> <span class="hl str">"$TMPDIR/${FILE_PREFIX}files.summary"</span><span class="hl sym">;</span>
-
-<span class="hl kwb">$CVSROOT</span> <span class="hl sym">=</span> <span class="hl kwb">$ENV</span><span class="hl sym">{</span><span class="hl str">'CVSROOT'</span><span class="hl sym">};</span>
-
-<span class="hl kwb">$CVSBIN</span> <span class="hl sym">=</span> <span class="hl str">'/usr/bin'</span><span class="hl sym">;</span>
-<span class="hl kwb">$PATH</span> <span class="hl sym">=</span> <span class="hl str">"$PATH:/bin:/usr/bin"</span><span class="hl sym">;</span>
-<span class="hl kwb">$MAIL_CMD</span> <span class="hl sym">=</span> <span class="hl str">"| /usr/lib/sendmail -i -t"</span><span class="hl sym">;</span>
-<span class="hl kwb">$MAIL_TO</span> <span class="hl sym">=</span> <span class="hl str">'engineering@localhost.localdomain'</span><span class="hl sym">;</span>
-<span class="hl kwb">$MAIL_FROM</span> <span class="hl sym">=</span> <span class="hl str">"$ENV{'USER'}\@localhost.localdomain"</span><span class="hl sym">;</span>
-<span class="hl kwb">$SUBJECT_PRE</span> <span class="hl sym">=</span> <span class="hl str">'CVS update:'</span><span class="hl sym">;</span>
-
-<span class="hl slc"># Codestriker-specific imports.</span>
-<span class="hl kwa">use</span> lib <span class="hl str">'/var/www/codestriker-1.8.4/bin'</span><span class="hl sym">;</span>
-<span class="hl kwa">use</span> <span class="hl kwd">CodestrikerClient</span><span class="hl sym">;</span>
-
-<span class="hl slc"># Codestriker specific parameters for topic creation.</span>
-<span class="hl kwb">$CODESTRIKER_URL</span> <span class="hl sym">=</span> <span class="hl str">'http://localhost/codestriker/codestriker.pl'</span><span class="hl sym">;</span>
-<span class="hl kwb">$CODESTRIKER_PROJECT</span> <span class="hl sym">=</span> <span class="hl str">'Project CVS'</span><span class="hl sym">;</span>
-<span class="hl kwb">$CODESTRIKER_REPOSITORY</span> <span class="hl sym">=</span> <span class="hl str">'/var/lib/cvs'</span><span class="hl sym">;</span>
-<span class="hl kwb">$CODESTRIKER_REVIEWERS</span> <span class="hl sym">=</span> <span class="hl str">'engineering@localhost.localdomain'</span><span class="hl sym">;</span>
-<span class="hl kwb">$CODESTRIKER_CC</span> <span class="hl sym">=</span> <span class="hl str">''</span><span class="hl sym">;</span>
-
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Subroutines</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-
-<span class="hl kwa">sub</span> format_names <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$dir</span><span class="hl sym">,</span> <span class="hl kwb">@files</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@lines</span><span class="hl sym">);</span>
-
- <span class="hl kwb">$lines</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">] =</span> <span class="hl kwd">sprintf</span><span class="hl sym">(</span><span class="hl str">" %-08s"</span><span class="hl sym">,</span> <span class="hl kwb">$dir</span><span class="hl sym">);</span>
- <span class="hl kwa">foreach</span> <span class="hl kwb">$file</span> <span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">) {</span>
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwd">length</span><span class="hl sym">(</span><span class="hl kwb">$lines</span><span class="hl sym">[</span><span class="hl kwb">$#lines</span><span class="hl sym">]) +</span> <span class="hl kwd">length</span><span class="hl sym">(</span><span class="hl kwb">$file</span><span class="hl sym">) ></span> <span class="hl num">60</span><span class="hl sym">) {</span>
- <span class="hl kwb">$lines</span><span class="hl sym">[++</span><span class="hl kwb">$#lines</span><span class="hl sym">] =</span> <span class="hl kwd">sprintf</span><span class="hl sym">(</span><span class="hl str">" %8s"</span><span class="hl sym">,</span> <span class="hl str">" "</span><span class="hl sym">);</span>
- <span class="hl sym">}</span>
- <span class="hl kwb">$lines</span><span class="hl sym">[</span><span class="hl kwb">$#lines</span><span class="hl sym">] .=</span> <span class="hl str">" "</span><span class="hl sym">.</span><span class="hl kwb">$file</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
- <span class="hl kwb">@lines</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> cleanup_tmpfiles <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">);</span>
-
- <span class="hl kwd">opendir</span><span class="hl sym">(</span>DIR<span class="hl sym">,</span> <span class="hl kwb">$TMPDIR</span><span class="hl sym">);</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">,</span> <span class="hl kwd">grep</span><span class="hl sym">(/^${</span>FILE_PREFIX<span class="hl sym">}.*</span>\<span class="hl sym">.${</span>id<span class="hl sym">}$/,</span> <span class="hl kwd">readdir</span><span class="hl sym">(</span>DIR<span class="hl sym">)));</span>
- <span class="hl kwd">closedir</span><span class="hl sym">(</span>DIR<span class="hl sym">);</span>
- <span class="hl kwa">foreach</span> <span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">) {</span>
- unlink <span class="hl str">"$TMPDIR/$_"</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> write_logfile <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">@lines</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">">$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span> <span class="hl sym">(</span><span class="hl str">"Cannot open log file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>FILE <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@lines</span><span class="hl sym">),</span> <span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> append_to_file <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">$dir</span><span class="hl sym">,</span> <span class="hl kwb">@files</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">) {</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@lines</span><span class="hl sym">) = &</span><span class="hl kwd">format_names</span><span class="hl sym">(</span><span class="hl kwb">$dir</span><span class="hl sym">,</span> <span class="hl kwb">@files</span><span class="hl sym">);</span>
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">">>$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span> <span class="hl sym">(</span><span class="hl str">"Cannot open file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>FILE <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@lines</span><span class="hl sym">),</span> <span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
- <span class="hl sym">}</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> write_line <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">$line</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">">$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span><span class="hl sym">(</span><span class="hl str">"Cannot open file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>FILE <span class="hl kwb">$line</span><span class="hl sym">,</span> <span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> append_line <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">$line</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">">>$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span><span class="hl sym">(</span><span class="hl str">"Cannot open file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>FILE <span class="hl kwb">$line</span><span class="hl sym">,</span> <span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> read_line <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$line</span><span class="hl sym">);</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">"<$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span><span class="hl sym">(</span><span class="hl str">"Cannot open file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwb">$line</span> <span class="hl sym">= <</span>FILE<span class="hl sym">>;</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
- <span class="hl kwd">chomp</span><span class="hl sym">(</span><span class="hl kwb">$line</span><span class="hl sym">);</span>
- <span class="hl kwb">$line</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> read_file <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">$leader</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">) = ();</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">"<$filename"</span><span class="hl sym">) ||</span> <span class="hl kwa">return</span> <span class="hl sym">();</span>
- <span class="hl kwa">while</span> <span class="hl sym">(<</span>FILE<span class="hl sym">>) {</span>
- <span class="hl kwd">chomp</span><span class="hl sym">;</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">,</span> <span class="hl kwd">sprintf</span><span class="hl sym">(</span><span class="hl str">" %-10s %s"</span><span class="hl sym">,</span> <span class="hl kwb">$leader</span><span class="hl sym">,</span> <span class="hl kwb">$_</span><span class="hl sym">));</span>
- <span class="hl kwb">$leader</span> <span class="hl sym">=</span> <span class="hl str">""</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
- <span class="hl kwb">@text</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> read_logfile <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$filename</span><span class="hl sym">,</span> <span class="hl kwb">$leader</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">) = ();</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>FILE<span class="hl sym">,</span> <span class="hl str">"<$filename"</span><span class="hl sym">) ||</span> <span class="hl kwd">die</span> <span class="hl sym">(</span><span class="hl str">"Cannot open log file $filename: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwa">while</span> <span class="hl sym">(<</span>FILE<span class="hl sym">>) {</span>
- <span class="hl kwd">chomp</span><span class="hl sym">;</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">,</span> <span class="hl kwb">$leader</span><span class="hl sym">.</span><span class="hl kwb">$_</span><span class="hl sym">);</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>FILE<span class="hl sym">);</span>
- <span class="hl kwb">@text</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc">#</span>
-<span class="hl slc"># do an 'cvs -Qn status' on each file in the arguments, and extract info.</span>
-<span class="hl slc">#</span>
-<span class="hl kwa">sub</span> change_summary <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$out</span><span class="hl sym">,</span> <span class="hl kwb">@filenames</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@revline</span><span class="hl sym">);</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$file</span><span class="hl sym">,</span> <span class="hl kwb">$rev</span><span class="hl sym">,</span> <span class="hl kwb">$rcsfile</span><span class="hl sym">,</span> <span class="hl kwb">$line</span><span class="hl sym">);</span>
-
- <span class="hl kwa">while</span> <span class="hl sym">(</span><span class="hl kwb">@filenames</span><span class="hl sym">) {</span>
- <span class="hl kwb">$file</span> <span class="hl sym">=</span> shift <span class="hl kwb">@filenames</span><span class="hl sym">;</span>
-
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl str">"$file"</span> <span class="hl kwa">eq</span> <span class="hl str">""</span><span class="hl sym">) {</span>
- <span class="hl kwa">next</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>RCS<span class="hl sym">,</span> <span class="hl str">"-|"</span><span class="hl sym">) ||</span> exec <span class="hl str">"$CVSBIN/cvs"</span><span class="hl sym">,</span> <span class="hl str">'-Qn'</span><span class="hl sym">,</span> <span class="hl str">'status'</span><span class="hl sym">,</span> <span class="hl kwb">$file</span><span class="hl sym">;</span>
-
- <span class="hl kwb">$rev</span> <span class="hl sym">=</span> <span class="hl str">""</span><span class="hl sym">;</span>
- <span class="hl kwb">$delta</span> <span class="hl sym">=</span> <span class="hl str">""</span><span class="hl sym">;</span>
- <span class="hl kwb">$rcsfile</span> <span class="hl sym">=</span> <span class="hl str">""</span><span class="hl sym">;</span>
-
-
- <span class="hl kwa">while</span> <span class="hl sym">(<</span>RCS<span class="hl sym">>) {</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^[</span> <span class="hl esc">\t</span><span class="hl sym">]*</span>Repository revision<span class="hl sym">/) {</span>
- <span class="hl kwd">chomp</span><span class="hl sym">;</span>
- <span class="hl kwb">@revline</span> <span class="hl sym">=</span> <span class="hl kwd">split</span><span class="hl sym">(</span><span class="hl str">' '</span><span class="hl sym">,</span> <span class="hl kwb">$_</span><span class="hl sym">);</span>
- <span class="hl kwb">$rev</span> <span class="hl sym">=</span> <span class="hl kwb">$revline</span><span class="hl sym">[</span><span class="hl num">2</span><span class="hl sym">];</span>
- <span class="hl kwb">$rcsfile</span> <span class="hl sym">=</span> <span class="hl kwb">$revline</span><span class="hl sym">[</span><span class="hl num">3</span><span class="hl sym">];</span>
- <span class="hl kwb">$rcsfile</span> <span class="hl sym">=~</span> s<span class="hl sym">,^</span><span class="hl kwb">$CVSROOT</span><span class="hl sym">/,,;</span>
- <span class="hl kwb">$rcsfile</span> <span class="hl sym">=~</span> s<span class="hl sym">/,</span>v<span class="hl sym">$//;</span>
- <span class="hl sym">}</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>RCS<span class="hl sym">);</span>
-
-
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$rev</span> <span class="hl kwa">ne</span> <span class="hl str">''</span> <span class="hl sym">&&</span> <span class="hl kwb">$rcsfile</span> <span class="hl kwa">ne</span> <span class="hl str">''</span><span class="hl sym">) {</span>
- <span class="hl kwd">open</span><span class="hl sym">(</span>RCS<span class="hl sym">,</span> <span class="hl str">"-|"</span><span class="hl sym">) ||</span> exec <span class="hl str">"$CVSBIN/cvs"</span><span class="hl sym">,</span> <span class="hl str">'-Qn'</span><span class="hl sym">,</span> <span class="hl str">'log'</span><span class="hl sym">,</span> <span class="hl str">"-r$rev"</span><span class="hl sym">,</span> <span class="hl kwb">$file</span><span class="hl sym">;</span>
- <span class="hl kwa">while</span> <span class="hl sym">(<</span>RCS<span class="hl sym">>) {</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>date<span class="hl sym">:/) {</span>
- <span class="hl kwd">chomp</span><span class="hl sym">;</span>
- <span class="hl kwb">$delta</span> <span class="hl sym">=</span> <span class="hl kwb">$_</span><span class="hl sym">;</span>
- <span class="hl kwb">$delta</span> <span class="hl sym">=~</span> s<span class="hl sym">/^.*;//;</span>
- <span class="hl kwb">$delta</span> <span class="hl sym">=~</span> s<span class="hl sym">/^[</span>\s<span class="hl sym">]+</span>lines<span class="hl sym">://;</span>
- <span class="hl sym">}</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>RCS<span class="hl sym">);</span>
- <span class="hl sym">}</span>
-
- <span class="hl kwb">$diff</span> <span class="hl sym">=</span> <span class="hl str">"</span><span class="hl esc">\n\n</span><span class="hl str">"</span><span class="hl sym">;</span>
-
- <span class="hl slc">#</span>
- <span class="hl slc"># Get the differences between this and the previous revision,</span>
- <span class="hl slc"># being aware that new files always have revision '1.1' and</span>
- <span class="hl slc"># new branches always end in '.n.1'.</span>
- <span class="hl slc">#</span>
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$rev</span> <span class="hl sym">=~ /^(.*)</span>\<span class="hl sym">.([</span><span class="hl num">0</span><span class="hl sym">-</span><span class="hl num">9</span><span class="hl sym">]+)$/) {</span>
- <span class="hl kwb">$prev</span> <span class="hl sym">=</span> <span class="hl kwb">$2</span> <span class="hl sym">-</span> <span class="hl num">1</span><span class="hl sym">;</span>
- <span class="hl kwb">$prev_rev</span> <span class="hl sym">=</span> <span class="hl kwb">$1</span> <span class="hl sym">.</span> <span class="hl str">'.'</span> <span class="hl sym">.</span> <span class="hl kwb">$prev</span><span class="hl sym">;</span>
-
- <span class="hl kwb">$prev_rev</span> <span class="hl sym">=~</span> s<span class="hl sym">/</span>\<span class="hl sym">.[</span><span class="hl num">0</span><span class="hl sym">-</span><span class="hl num">9</span><span class="hl sym">]+</span>\<span class="hl num">.0</span><span class="hl sym">$//;</span><span class="hl slc"># Truncate if first rev on branch</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>DIFF<span class="hl sym">,</span> <span class="hl str">"-|"</span><span class="hl sym">)</span>
- <span class="hl sym">||</span> exec <span class="hl str">"$CVSBIN/cvs"</span><span class="hl sym">,</span> <span class="hl str">'-Qn'</span><span class="hl sym">,</span> <span class="hl str">'diff'</span><span class="hl sym">,</span> <span class="hl str">'-uN'</span><span class="hl sym">,</span>
- <span class="hl str">"-r$prev_rev"</span><span class="hl sym">,</span> <span class="hl str">"-r$rev"</span><span class="hl sym">,</span> <span class="hl kwb">$file</span><span class="hl sym">;</span>
-
- <span class="hl kwa">while</span> <span class="hl sym">(<</span>DIFF<span class="hl sym">>) {</span>
- <span class="hl kwb">$diff</span> <span class="hl sym">.=</span> <span class="hl kwb">$_</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>DIFF<span class="hl sym">);</span>
- <span class="hl kwb">$diff</span> <span class="hl sym">.=</span> <span class="hl str">"</span><span class="hl esc">\n\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-
- <span class="hl sym">&</span><span class="hl kwd">append_line</span><span class="hl sym">(</span><span class="hl kwb">$out</span><span class="hl sym">,</span> <span class="hl kwb">$diff</span><span class="hl sym">);</span>
- <span class="hl sym">}</span>
-<span class="hl sym">}</span>
-
-
-<span class="hl kwa">sub</span> build_header <span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$header</span><span class="hl sym">);</span>
- delete <span class="hl kwb">$ENV</span><span class="hl sym">{</span><span class="hl str">'TZ'</span><span class="hl sym">};</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$sec</span><span class="hl sym">,</span><span class="hl kwb">$min</span><span class="hl sym">,</span><span class="hl kwb">$hour</span><span class="hl sym">,</span><span class="hl kwb">$mday</span><span class="hl sym">,</span><span class="hl kwb">$mon</span><span class="hl sym">,</span><span class="hl kwb">$year</span><span class="hl sym">) =</span> <span class="hl kwd">localtime</span><span class="hl sym">(</span>time<span class="hl sym">);</span>
-
- <span class="hl kwb">$header</span> <span class="hl sym">=</span> <span class="hl kwd">sprintf</span><span class="hl sym">(</span><span class="hl str">" User: %-8s</span><span class="hl esc">\n</span> <span class="hl str">Date: %02d/%02d/%02d %02d:%02d:%02d"</span><span class="hl sym">,</span>
- <span class="hl kwb">$cvs_user</span><span class="hl sym">,</span> <span class="hl kwb">$year%100</span><span class="hl sym">,</span> <span class="hl kwb">$mon</span><span class="hl sym">+</span><span class="hl num">1</span><span class="hl sym">,</span> <span class="hl kwb">$mday</span><span class="hl sym">,</span>
- <span class="hl kwb">$hour</span><span class="hl sym">,</span> <span class="hl kwb">$min</span><span class="hl sym">,</span> <span class="hl kwb">$sec</span><span class="hl sym">);</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc"># !!! Mailing-list and history file mappings here !!!</span>
-<span class="hl kwa">sub</span> mlist_map
-<span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$path</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$path</span> <span class="hl sym">=~ /^([^</span>\<span class="hl sym">/]+)/) {</span> <span class="hl kwa">return</span> <span class="hl kwb">$1</span><span class="hl sym">; }</span>
- <span class="hl kwa">else</span> <span class="hl sym">{</span> <span class="hl kwa">return</span> <span class="hl str">'apache'</span><span class="hl sym">; }</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> do_changes_file
-<span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$category</span><span class="hl sym">,</span> <span class="hl kwb">@text</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$changes</span><span class="hl sym">);</span>
-
- <span class="hl kwb">$changes</span> <span class="hl sym">=</span> <span class="hl str">"$CVSROOT/CVSROOT/commitlogs/$category"</span><span class="hl sym">;</span>
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwd">open</span><span class="hl sym">(</span>CHANGES<span class="hl sym">,</span> <span class="hl str">">>$changes"</span><span class="hl sym">)) {</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>CHANGES <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@text</span><span class="hl sym">),</span> <span class="hl str">"</span><span class="hl esc">\n\n</span><span class="hl str">"</span><span class="hl sym">);</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>CHANGES<span class="hl sym">);</span>
- <span class="hl sym">}</span>
- <span class="hl kwa">else</span> <span class="hl sym">{</span>
- warn <span class="hl str">"Cannot open $changes: $!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-<span class="hl sym">}</span>
-
-<span class="hl kwa">sub</span> mail_notification
-<span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
-
-<span class="hl slc"># print "Mailing the commit message...\n";</span>
-
- <span class="hl kwd">open</span><span class="hl sym">(</span>MAIL<span class="hl sym">,</span> <span class="hl kwb">$MAIL_CMD</span><span class="hl sym">);</span>
- <span class="hl kwc">print</span> MAIL <span class="hl str">"From: $MAIL_FROM</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl kwc">print</span> MAIL <span class="hl str">"To: $MAIL_TO</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl kwc">print</span> MAIL <span class="hl str">"Subject: $SUBJECT_PRE $ARGV[0]</span><span class="hl esc">\n\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl kwc">print</span><span class="hl sym">(</span>MAIL <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@text</span><span class="hl sym">));</span>
- <span class="hl kwd">close</span><span class="hl sym">(</span>MAIL<span class="hl sym">);</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc"># Create a Codestriker topic. The topic title will be the</span>
-<span class="hl slc"># first line of the log message prefixed with "CVS commit: ".</span>
-<span class="hl slc"># The topic description is the entire log message.</span>
-<span class="hl slc"># Return the URL of the created topic if successful, otherwise</span>
-<span class="hl slc"># undef.</span>
-<span class="hl kwa">sub</span> codestriker_create_topic
-<span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$user</span><span class="hl sym">,</span> <span class="hl kwb">$log_ref</span><span class="hl sym">,</span> <span class="hl kwb">$diff_ref</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@log</span><span class="hl sym">) =</span> @<span class="hl sym">{</span><span class="hl kwb">$log_ref</span><span class="hl sym">};</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@diff</span><span class="hl sym">) =</span> @<span class="hl sym">{</span><span class="hl kwb">$diff_ref</span><span class="hl sym">};</span>
-
- <span class="hl kwc">my</span> <span class="hl kwb">$topic_title</span> <span class="hl sym">=</span> <span class="hl str">"CVS commit: "</span> <span class="hl sym">.</span><span class="hl kwb">$log</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">];</span>
- <span class="hl kwc">my</span> <span class="hl kwb">$topic_description</span> <span class="hl sym">=</span> <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@log</span><span class="hl sym">);</span>
- <span class="hl kwc">my</span> <span class="hl kwb">$bug_ids</span> <span class="hl sym">=</span> <span class="hl kwb">$topic_description</span><span class="hl sym">;</span>
-
- <span class="hl slc"># Truncate the title if necessary.</span>
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwd">length</span><span class="hl sym">(</span><span class="hl kwb">$topic_title</span><span class="hl sym">) ></span> <span class="hl num">57</span><span class="hl sym">) {</span>
- <span class="hl kwb">$topic_title</span> <span class="hl sym">=</span> <span class="hl kwd">substr</span><span class="hl sym">(</span><span class="hl kwb">$topic_title</span><span class="hl sym">,</span> <span class="hl num">0</span><span class="hl sym">,</span> <span class="hl num">57</span><span class="hl sym">) .</span> <span class="hl str">"..."</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-
- <span class="hl slc"># Check for any matching Bug id text.</span>
- <span class="hl kwc">my</span> <span class="hl kwb">@bugs</span> <span class="hl sym">= ();</span>
- <span class="hl kwb">$bug_ids</span> <span class="hl sym">=~</span> s<span class="hl sym">/.*[</span>Bb<span class="hl sym">][</span>Uu<span class="hl sym">][</span>Gg<span class="hl sym">]:</span>?<span class="hl sym">(</span>\d<span class="hl sym">+)</span><span class="hl esc">\b</span><span class="hl sym">.*/</span><span class="hl kwb">$1</span> <span class="hl sym">/</span><span class="hl kwd">g</span><span class="hl sym">;</span>
- <span class="hl kwa">while</span> <span class="hl sym">(</span><span class="hl kwb">$bug_ids</span> <span class="hl sym">=~ /</span><span class="hl esc">\b</span><span class="hl sym">[</span>Bb<span class="hl sym">][</span>Uu<span class="hl sym">][</span>Gg<span class="hl sym">]:</span>?\s<span class="hl sym">*(</span>\d<span class="hl sym">+)</span><span class="hl esc">\b</span><span class="hl sym">/</span>g<span class="hl sym">) {</span>
- push <span class="hl kwb">@bugs</span><span class="hl sym">,</span> <span class="hl kwb">$1</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-
- <span class="hl kwc">my</span> <span class="hl kwb">$client</span> <span class="hl sym">=</span> CodestrikerClient<span class="hl sym">-></span><span class="hl kwd">new</span><span class="hl sym">(</span><span class="hl kwb">$CODESTRIKER_URL</span><span class="hl sym">);</span>
- <span class="hl kwa">return</span> <span class="hl kwb">$client</span><span class="hl sym">-></span><span class="hl kwd">create_topic</span><span class="hl sym">({</span>
- topic_title <span class="hl sym">=></span> <span class="hl kwb">$topic_title</span><span class="hl sym">,</span>
- topic_description <span class="hl sym">=></span> <span class="hl kwb">$topic_description</span><span class="hl sym">,</span>
- project_name <span class="hl sym">=></span> <span class="hl kwb">$CODESTRIKER_PROJECT</span><span class="hl sym">,</span>
- repository <span class="hl sym">=></span> <span class="hl kwb">$CODESTRIKER_REPOSITORY</span><span class="hl sym">,</span>
- bug_ids <span class="hl sym">=></span> <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">", "</span><span class="hl sym">,</span> <span class="hl kwb">@bugs</span><span class="hl sym">),</span>
- email <span class="hl sym">=></span> <span class="hl kwb">$MAIL_FROM</span><span class="hl sym">,</span>
- reviewers <span class="hl sym">=></span> <span class="hl kwb">$CODESTRIKER_REVIEWERS</span><span class="hl sym">,</span>
- cc <span class="hl sym">=></span> <span class="hl kwb">$CODESTRIKER_CC</span><span class="hl sym">,</span>
- topic_text <span class="hl sym">=></span> <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">,</span> <span class="hl kwb">@diff</span><span class="hl sym">)</span>
- <span class="hl sym">});</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc">## process the command line arguments sent to this script</span>
-<span class="hl slc">## it returns an array of files, %s, sent from the loginfo</span>
-<span class="hl slc">## command</span>
-<span class="hl kwa">sub</span> process_argv
-<span class="hl sym">{</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@argv</span><span class="hl sym">) =</span> <span class="hl kwb">@_</span><span class="hl sym">;</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">@files</span><span class="hl sym">);</span>
- <span class="hl kwc">local</span><span class="hl sym">(</span><span class="hl kwb">$arg</span><span class="hl sym">);</span>
-<span class="hl slc"># print "Processing log script arguments...\n";</span>
-
- <span class="hl kwa">while</span> <span class="hl sym">(</span><span class="hl kwb">@argv</span><span class="hl sym">) {</span>
- <span class="hl kwb">$arg</span> <span class="hl sym">=</span> shift <span class="hl kwb">@argv</span><span class="hl sym">;</span>
-
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$arg</span> <span class="hl kwa">eq</span> <span class="hl str">'-u'</span><span class="hl sym">) {</span>
- <span class="hl kwb">$cvs_user</span> <span class="hl sym">=</span> shift <span class="hl kwb">@argv</span><span class="hl sym">;</span>
- <span class="hl sym">}</span> <span class="hl kwa">else</span> <span class="hl sym">{</span>
- <span class="hl sym">(</span><span class="hl kwb">$donefiles</span><span class="hl sym">) &&</span> die <span class="hl str">"Too many arguments!</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl sym">;</span>
- <span class="hl kwb">$donefiles</span> <span class="hl sym">=</span> <span class="hl num">1</span><span class="hl sym">;</span>
- <span class="hl kwb">$ARGV</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">] =</span> <span class="hl kwb">$arg</span><span class="hl sym">;</span>
- <span class="hl kwb">@files</span> <span class="hl sym">=</span> <span class="hl kwd">split</span><span class="hl sym">(</span><span class="hl str">' '</span><span class="hl sym">,</span> <span class="hl kwb">$arg</span><span class="hl sym">);</span>
- <span class="hl sym">}</span>
- <span class="hl sym">}</span>
- <span class="hl kwa">return</span> <span class="hl kwb">@files</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc">#############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Main Body</span>
-<span class="hl slc">#</span>
-<span class="hl slc">############################################################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Setup environment</span>
-<span class="hl slc">#</span>
-<span class="hl kwd">umask</span> <span class="hl sym">(</span><span class="hl num">002</span><span class="hl sym">);</span>
-
-<span class="hl slc">#</span>
-<span class="hl slc"># Initialize basic variables</span>
-<span class="hl slc">#</span>
-<span class="hl kwb">$id</span> <span class="hl sym">=</span> <span class="hl kwd">getpgrp</span><span class="hl sym">();</span>
-<span class="hl kwb">$state</span> <span class="hl sym">=</span> <span class="hl kwb">$STATE_NONE</span><span class="hl sym">;</span>
-<span class="hl kwb">$cvs_user</span> <span class="hl sym">=</span> <span class="hl kwb">$ENV</span><span class="hl sym">{</span><span class="hl str">'USER'</span><span class="hl sym">} ||</span> getlogin <span class="hl sym">|| (</span><span class="hl kwd">getpwuid</span><span class="hl sym">($<))[</span><span class="hl num">0</span><span class="hl sym">] ||</span> <span class="hl kwd">sprintf</span><span class="hl sym">(</span><span class="hl str">"uid#%d"</span><span class="hl sym">,$<);</span>
-<span class="hl kwb">@files</span> <span class="hl sym">=</span> <span class="hl kwd">process_argv</span><span class="hl sym">(</span><span class="hl kwb">@ARGV</span><span class="hl sym">);</span>
-<span class="hl kwb">@path</span> <span class="hl sym">=</span> <span class="hl kwd">split</span><span class="hl sym">(</span><span class="hl str">'/'</span><span class="hl sym">,</span> <span class="hl kwb">$files</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">]);</span>
-<span class="hl kwb">$repository</span> <span class="hl sym">=</span> <span class="hl kwb">$path</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">];</span>
-<span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$#path</span> <span class="hl sym">==</span> <span class="hl num">0</span><span class="hl sym">) {</span>
- <span class="hl kwb">$dir</span> <span class="hl sym">=</span> <span class="hl str">"."</span><span class="hl sym">;</span>
-<span class="hl sym">}</span> <span class="hl kwa">else</span> <span class="hl sym">{</span>
- <span class="hl kwb">$dir</span> <span class="hl sym">=</span> <span class="hl kwd">join</span><span class="hl sym">(</span><span class="hl str">'/'</span><span class="hl sym">,</span> <span class="hl kwb">@path</span><span class="hl sym">[</span><span class="hl num">1</span><span class="hl sym">..</span><span class="hl kwb">$#path</span><span class="hl sym">]);</span>
-<span class="hl sym">}</span>
-<span class="hl slc">#print("ARGV - ", join(":", @ARGV), "\n");</span>
-<span class="hl slc">#print("files - ", join(":", @files), "\n");</span>
-<span class="hl slc">#print("path - ", join(":", @path), "\n");</span>
-<span class="hl slc">#print("dir - ", $dir, "\n");</span>
-<span class="hl slc">#print("id - ", $id, "\n");</span>
-
-<span class="hl slc">#</span>
-<span class="hl slc"># Map the repository directory to a name for commitlogs.</span>
-<span class="hl slc">#</span>
-<span class="hl kwb">$mlist</span> <span class="hl sym">= &</span><span class="hl kwd">mlist_map</span><span class="hl sym">(</span><span class="hl kwb">$files</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">]);</span>
-
-<span class="hl slc">##########################</span>
-<span class="hl slc"># Uncomment the following if we ever have per-repository cvs mail</span>
-
-<span class="hl slc"># if (defined($mlist)) {</span>
-<span class="hl slc"># $MAIL_TO = $mlist . '-cvs';</span>
-<span class="hl slc"># }</span>
-<span class="hl slc"># else { undef $MAIL_TO; }</span>
-
-<span class="hl slc">##########################</span>
-<span class="hl slc">#</span>
-<span class="hl slc"># Check for a new directory first. This will always appear as a</span>
-<span class="hl slc"># single item in the argument list, and an empty log message.</span>
-<span class="hl slc">#</span>
-<span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$ARGV</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">] =~ /</span>New directory<span class="hl sym">/) {</span>
- <span class="hl kwb">$header</span> <span class="hl sym">= &</span><span class="hl kwd">build_header</span><span class="hl sym">;</span>
- <span class="hl kwb">@text</span> <span class="hl sym">= ();</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">,</span> <span class="hl kwb">$header</span><span class="hl sym">);</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">,</span> <span class="hl str">""</span><span class="hl sym">);</span>
- <span class="hl kwd">push</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">,</span> <span class="hl str">" "</span><span class="hl sym">.</span><span class="hl kwb">$ARGV</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">]);</span>
- <span class="hl sym">&</span><span class="hl kwd">do_changes_file</span><span class="hl sym">(</span><span class="hl kwb">$mlist</span><span class="hl sym">,</span> <span class="hl kwb">@text</span><span class="hl sym">);</span>
- <span class="hl sym">&</span><span class="hl kwd">mail_notification</span><span class="hl sym">(</span><span class="hl kwb">@text</span><span class="hl sym">)</span> <span class="hl kwa">if</span> <span class="hl kwd">defined</span><span class="hl sym">(</span><span class="hl kwb">$MAIL_TO</span><span class="hl sym">);</span>
- exit <span class="hl num">0</span><span class="hl sym">;</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc">#</span>
-<span class="hl slc"># Iterate over the body of the message collecting information.</span>
-<span class="hl slc">#</span>
-<span class="hl kwa">while</span> <span class="hl sym">(<</span>STDIN<span class="hl sym">>) {</span>
- <span class="hl kwd">chomp</span><span class="hl sym">;</span> <span class="hl slc"># Drop the newline</span>
-
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>Revision\<span class="hl sym">/</span>Branch<span class="hl sym">:/) {</span>
- s<span class="hl sym">,^</span>Revision<span class="hl sym">/</span>Branch<span class="hl sym">:,,;</span>
- <span class="hl kwd">push</span> <span class="hl sym">(</span><span class="hl kwb">@branch_lines</span><span class="hl sym">,</span> split<span class="hl sym">);</span>
- <span class="hl kwa">next</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
-<span class="hl slc"># next if (/^[ \t]+Tag:/ && $state != $STATE_LOG);</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>Modified Files<span class="hl sym">/) {</span> <span class="hl kwb">$state</span> <span class="hl sym">=</span> <span class="hl kwb">$STATE_CHANGED</span><span class="hl sym">;</span> <span class="hl kwa">next</span><span class="hl sym">; }</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>Added Files<span class="hl sym">/) {</span> <span class="hl kwb">$state</span> <span class="hl sym">=</span> <span class="hl kwb">$STATE_ADDED</span><span class="hl sym">;</span> <span class="hl kwa">next</span><span class="hl sym">; }</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>Removed Files<span class="hl sym">/) {</span> <span class="hl kwb">$state</span> <span class="hl sym">=</span> <span class="hl kwb">$STATE_REMOVED</span><span class="hl sym">;</span> <span class="hl kwa">next</span><span class="hl sym">; }</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>Log Message<span class="hl sym">/) {</span> <span class="hl kwb">$state</span> <span class="hl sym">=</span> <span class="hl kwb">$STATE_LOG</span><span class="hl sym">;</span> <span class="hl kwa">next</span><span class="hl sym">; }</span>
- s<span class="hl sym">/[</span> <span class="hl esc">\t\n</span><span class="hl sym">]+$//;</span> <span class="hl slc"># delete trailing space</span>
-
- <span class="hl kwd">push</span> <span class="hl sym">(</span><span class="hl kwb">@changed_files</span><span class="hl sym">,</span> split<span class="hl sym">)</span> <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$state</span> <span class="hl sym">==</span> <span class="hl kwb">$STATE_CHANGED</span><span class="hl sym">);</span>
- <span class="hl kwd">push</span> <span class="hl sym">(</span><span class="hl kwb">@added_files</span><span class="hl sym">,</span> split<span class="hl sym">)</span> <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$state</span> <span class="hl sym">==</span> <span class="hl kwb">$STATE_ADDED</span><span class="hl sym">);</span>
- <span class="hl kwd">push</span> <span class="hl sym">(</span><span class="hl kwb">@removed_files</span><span class="hl sym">,</span> split<span class="hl sym">)</span> <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$state</span> <span class="hl sym">==</span> <span class="hl kwb">$STATE_REMOVED</span><span class="hl sym">);</span>
- <span class="hl kwa">if</span> <span class="hl sym">(</span><span class="hl kwb">$state</span> <span class="hl sym">==</span> <span class="hl kwb">$STATE_LOG</span><span class="hl sym">) {</span>
- <span class="hl kwa">if</span> <span class="hl sym">(/^</span>PR<span class="hl sym">:$/</span>i <span class="hl sym">||</span>
- <span class="hl sym">/^</span>Reviewed by<span class="hl sym">:$/</span>i <span class="hl sym">||</span>
- <span class="hl sym">/^</span>Submitted by<span class="hl sym">:$/</span>i <span class="hl sym">||</span>
- <span class="hl sym">/^</span>Obtained from<span class="hl sym">:$/</span>i<span class="hl sym">) {</span>
- <span class="hl kwa">next</span><span class="hl sym">;</span>
- <span class="hl sym">}</span>
- <span class="hl kwd">push</span> <span class="hl sym">(</span><span class="hl kwb">@log_lines</span><span class="hl sym">,</span> <span class="hl kwb">$_</span><span class="hl sym">);</span>
- <span class="hl sym">}</span>
-<span class="hl sym">}</span>
-
-<span class="hl slc">#</span>
-<span class="hl slc"># Strip leading and trailing blank lines from the log message. Also</span>
-<span class="hl slc"># compress multiple blank lines in the body of the message down to a</span>
-<span class="hl slc"># single blank line.</span>
-<span class="hl slc"># (Note, this only does the mail and changes log, not the rcs log).</span>
-<span class="hl slc">#</span>
-<span class="hl kwa">while</span> <span class="hl sym">(</span><span class="hl kwb">$#log_lines</span> <span class="hl sym">> -</span><span class="hl num">1</span><span class="hl sym">) {</span>
- <span class="hl kwa">last if</span> <span class="hl sym">(</span><span class="hl kwb">$log_lines</span><span class="hl sym">[</span><span class="hl num">0</span><span class="hl sym">]</span> <span class="hl kwa">ne</span> <span class="hl str">""</span><span class="hl sym">);</span>
- <span class="hl kwd">shift</span><span class="hl sym">(</span><span class="hl kwb">@log_lines</span><span class="hl sym">);</span>
-<span class="hl sym">}</span>
-<span class="hl kwa">while</span> <span class="hl sym">(</span><span class="hl kwb">$#log_lines</span> <span class="hl sym">> -</span><span class="hl num">1</span><span class="hl sym">) {</span>
...
[truncated message content] |
|
From: <si...@us...> - 2008-06-23 10:12:20
|
User: sits
Date: 08/06/23 03:12:16
Modified: template/en/default listprojects.html.tmpl
editproject.html.tmpl listtopics.html.tmpl
submitnewcomment.html.tmpl viewtopic.html.tmpl
editcomment.html.tmpl viewtopicheader.html.tmpl
createtopic.html.tmpl createproject.html.tmpl
search.html.tmpl metricsreport.html.tmpl
header.html.tmpl submitnewtopic.html.tmpl
viewtopicfile.html.tmpl
html codestriker.css
Added: bin log_accum.pl.xml highlight.css log_accum.pl.html
test.pl zot.html
Log:
More CSS changes.
Index: log_accum.pl.xml
===================================================================
RCS file: log_accum.pl.xml
diff -N log_accum.pl.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ log_accum.pl.xml 23 Jun 2008 10:12:15 -0000 1.1
@@ -0,0 +1,628 @@
+<?xml version="1.0"?>
+<document>
+<title>log_accum.pl</title>
+<style>
+ <bgcolor value="eeeeee" />
+ <font size="8" family="Courier New" />
+ <class name="def" color="000000" bold="false" italic="false" underline="false" />
+ <class name="num" color="800080" bold="true" italic="false" underline="false" />
+ <class name="esc" color="ff00ff" bold="true" italic="false" underline="false" />
+ <class name="str" color="a68500" bold="false" italic="false" underline="false" />
+ <class name="dstr" color="0000ff" bold="false" italic="false" underline="false" />
+ <class name="slc" color="f27900" bold="false" italic="false" underline="false" />
+ <class name="com" color="ff8000" bold="false" italic="false" underline="false" />
+ <class name="dir" color="0080c0" bold="true" italic="false" underline="false" />
+ <class name="sym" color="ff0080" bold="true" italic="false" underline="false" />
+ <class name="line" color="303030" bold="false" italic="false" underline="false" />
+ <class name="kwa" color="bb7977" bold="true" italic="false" underline="false" />
+ <class name="kwb" color="8080c0" bold="true" italic="false" underline="false" />
+ <class name="kwc" color="0080c0" bold="false" italic="false" underline="false" />
+ <class name="kwd" color="004466" bold="false" italic="false" underline="false" />
+</style>
+<source>
+<def></def><slc>#!/usr/bin/perl</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Perl filter to handle the log messages from the checkin of files in</slc><br />
+<def></def><slc># a directory. This script will group the lists of files by log</slc><br />
+<def></def><slc># message, and mail a single consolidated log message at the end of</slc><br />
+<def></def><slc># the commit.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># This file assumes a pre-commit checking program that leaves the</slc><br />
+<def></def><slc># names of the first and last commit directories in a temporary file.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Contributed by David Hampton <ha...@ci...></slc><br />
+<def></def><slc># Roy Fielding removed useless code and added log/mail of new files</slc><br />
+<def></def><slc># Ken Coar added special processing (i.e., no diffs) for binary files</slc><br />
+<def></def><slc># Jon Stevens added a few new features and cleaned up some of the</slc><br />
+<def></def><slc># output</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># David Sitsky modified this slightly so that it also creates a new</slc><br />
+<def></def><slc># codestriker topic automatically.</slc><br />
+<def></def><br />
+<slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Setup instructions</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Create a directory $CVSROOT/commitlogs and allow</slc><br />
+<def></def><slc># the cvs process to write to it.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Edit the options below.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Configurable options</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Where do you want the RCS ID and delta info?</slc><br />
+<def></def><slc># 0 = none,</slc><br />
+<def></def><slc># 1 = in mail only,</slc><br />
+<def></def><slc># 2 = rcsids in both mail and logs.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwb>$rcsidinfo</kwb> <def></def><sym>=</sym> <def></def><num>2</num><def></def><sym>;</sym><br />
+<def></def><br />
+<slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Constants</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><kwb>$STATE_NONE</kwb> <def></def><sym>=</sym> <def></def><num>0</num><def></def><sym>;</sym><br />
+<def></def><kwb>$STATE_CHANGED</kwb> <def></def><sym>=</sym> <def></def><num>1</num><def></def><sym>;</sym><br />
+<def></def><kwb>$STATE_ADDED</kwb> <def></def><sym>=</sym> <def></def><num>2</num><def></def><sym>;</sym><br />
+<def></def><kwb>$STATE_REMOVED</kwb> <def></def><sym>=</sym> <def></def><num>3</num><def></def><sym>;</sym><br />
+<def></def><kwb>$STATE_LOG</kwb> <def></def><sym>=</sym> <def></def><num>4</num><def></def><sym>;</sym><br />
+<def></def><br />
+<kwb>$TMPDIR</kwb> <def></def><sym>=</sym> <def></def><kwb>$ENV</kwb><def></def><sym>{</sym><def></def><str>'TMPDIR'</str><def></def><sym>} ||</sym> <def></def><str>'/tmp'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$FILE_PREFIX</kwb> <def></def><sym>=</sym> <def></def><str>'#cvs.'</str><def></def><sym>;</sym><br />
+<def></def><br />
+<kwb>$LAST_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}lastdir"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$CHANGED_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.changed"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$ADDED_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.added"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$REMOVED_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.removed"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$LOG_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.log"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$BRANCH_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.branch"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$SUMMARY_FILE</kwb> <def></def><sym>=</sym> <def></def><str>"$TMPDIR/${FILE_PREFIX}files.summary"</str><def></def><sym>;</sym><br />
+<def></def><br />
+<kwb>$CVSROOT</kwb> <def></def><sym>=</sym> <def></def><kwb>$ENV</kwb><def></def><sym>{</sym><def></def><str>'CVSROOT'</str><def></def><sym>};</sym><br />
+<def></def><br />
+<kwb>$CVSBIN</kwb> <def></def><sym>=</sym> <def></def><str>'/usr/bin'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$PATH</kwb> <def></def><sym>=</sym> <def></def><str>"$PATH:/bin:/usr/bin"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$MAIL_CMD</kwb> <def></def><sym>=</sym> <def></def><str>"| /usr/lib/sendmail -i -t"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$MAIL_TO</kwb> <def></def><sym>=</sym> <def></def><str>'eng...@lo...'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$MAIL_FROM</kwb> <def></def><sym>=</sym> <def></def><str>"$ENV{'USER'}\@localhost.localdomain"</str><def></def><sym>;</sym><br />
+<def></def><kwb>$SUBJECT_PRE</kwb> <def></def><sym>=</sym> <def></def><str>'CVS update:'</str><def></def><sym>;</sym><br />
+<def></def><br />
+<slc># Codestriker-specific imports.</slc><br />
+<def></def><kwa>use</kwa> <def>lib</def> <str>'/var/www/codestriker-1.8.4/bin'</str><def></def><sym>;</sym><br />
+<def></def><kwa>use</kwa> <def></def><kwd>CodestrikerClient</kwd><def></def><sym>;</sym><br />
+<def></def><br />
+<slc># Codestriker specific parameters for topic creation.</slc><br />
+<def></def><kwb>$CODESTRIKER_URL</kwb> <def></def><sym>=</sym> <def></def><str>'http://localhost/codestriker/codestriker.pl'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$CODESTRIKER_PROJECT</kwb> <def></def><sym>=</sym> <def></def><str>'Project CVS'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$CODESTRIKER_REPOSITORY</kwb> <def></def><sym>=</sym> <def></def><str>'/var/lib/cvs'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$CODESTRIKER_REVIEWERS</kwb> <def></def><sym>=</sym> <def></def><str>'eng...@lo...'</str><def></def><sym>;</sym><br />
+<def></def><kwb>$CODESTRIKER_CC</kwb> <def></def><sym>=</sym> <def></def><str>''</str><def></def><sym>;</sym><br />
+<def></def><br />
+<slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Subroutines</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><br />
+<kwa>sub</kwa> <def>format_names</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@files</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@lines</kwb><def></def><sym>);</sym><br />
+<def></def><br />
+ <kwb>$lines</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>] =</sym> <def></def><kwd>sprintf</kwd><def></def><sym>(</sym><def></def><str>" %-08s"</str><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>);</sym><br />
+<def></def> <kwa>foreach</kwa> <def></def><kwb>$file</kwb> <def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>) {</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwd>length</kwd><def></def><sym>(</sym><def></def><kwb>$lines</kwb><def></def><sym>[</sym><def></def><kwb>$#lines</kwb><def></def><sym>]) +</sym> <def></def><kwd>length</kwd><def></def><sym>(</sym><def></def><kwb>$file</kwb><def></def><sym>) ></sym> <def></def><num>60</num><def></def><sym>) {</sym><br />
+<def></def> <kwb>$lines</kwb><def></def><sym>[++</sym><def></def><kwb>$#lines</kwb><def></def><sym>] =</sym> <def></def><kwd>sprintf</kwd><def></def><sym>(</sym><def></def><str>" %8s"</str><def></def><sym>,</sym> <def></def><str>" "</str><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwb>$lines</kwb><def></def><sym>[</sym><def></def><kwb>$#lines</kwb><def></def><sym>] .=</sym> <def></def><str>" "</str><def></def><sym>.</sym><def></def><kwb>$file</kwb><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwb>@lines</kwb><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>cleanup_tmpfiles</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>);</sym><br />
+<def></def><br />
+ <kwd>opendir</kwd><def></def><sym>(</sym><def>DIR</def><sym>,</sym> <def></def><kwb>$TMPDIR</kwb><def></def><sym>);</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>,</sym> <def></def><kwd>grep</kwd><def></def><sym>(/^${</sym><def>FILE_PREFIX</def><sym>}.*</sym><def>\</def><sym>.${</sym><def>id</def><sym>}$/,</sym> <def></def><kwd>readdir</kwd><def></def><sym>(</sym><def>DIR</def><sym>)));</sym><br />
+<def></def> <kwd>closedir</kwd><def></def><sym>(</sym><def>DIR</def><sym>);</sym><br />
+<def></def> <kwa>foreach</kwa> <def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>) {</sym><br />
+<def> unlink</def> <str>"$TMPDIR/$_"</str><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>write_logfile</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>@lines</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>">$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd> <def></def><sym>(</sym><def></def><str>"Cannot open log file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>FILE</def> <kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@lines</kwb><def></def><sym>),</sym> <def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>append_to_file</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@files</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>) {</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@lines</kwb><def></def><sym>) = &</sym><def></def><kwd>format_names</kwd><def></def><sym>(</sym><def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@files</kwb><def></def><sym>);</sym><br />
+<def></def> <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>">>$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd> <def></def><sym>(</sym><def></def><str>"Cannot open file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>FILE</def> <kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@lines</kwb><def></def><sym>),</sym> <def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>write_line</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>$line</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>">$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd><def></def><sym>(</sym><def></def><str>"Cannot open file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>FILE</def> <kwb>$line</kwb><def></def><sym>,</sym> <def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>append_line</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>$line</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>">>$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd><def></def><sym>(</sym><def></def><str>"Cannot open file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>FILE</def> <kwb>$line</kwb><def></def><sym>,</sym> <def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>read_line</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$line</kwb><def></def><sym>);</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>"<$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd><def></def><sym>(</sym><def></def><str>"Cannot open file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwb>$line</kwb> <def></def><sym>= <</sym><def>FILE</def><sym>>;</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>(</sym><def></def><kwb>$line</kwb><def></def><sym>);</sym><br />
+<def></def> <kwb>$line</kwb><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>read_file</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>$leader</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>) = ();</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>"<$filename"</str><def></def><sym>) ||</sym> <def></def><kwa>return</kwa> <def></def><sym>();</sym><br />
+<def></def> <kwa>while</kwa> <def></def><sym>(<</sym><def>FILE</def><sym>>) {</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>;</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>,</sym> <def></def><kwd>sprintf</kwd><def></def><sym>(</sym><def></def><str>" %-10s %s"</str><def></def><sym>,</sym> <def></def><kwb>$leader</kwb><def></def><sym>,</sym> <def></def><kwb>$_</kwb><def></def><sym>));</sym><br />
+<def></def> <kwb>$leader</kwb> <def></def><sym>=</sym> <def></def><str>""</str><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def> <kwb>@text</kwb><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>read_logfile</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$filename</kwb><def></def><sym>,</sym> <def></def><kwb>$leader</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>) = ();</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>FILE</def><sym>,</sym> <def></def><str>"<$filename"</str><def></def><sym>) ||</sym> <def></def><kwd>die</kwd> <def></def><sym>(</sym><def></def><str>"Cannot open log file $filename: $!</str><esc>\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwa>while</kwa> <def></def><sym>(<</sym><def>FILE</def><sym>>) {</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>;</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>,</sym> <def></def><kwb>$leader</kwb><def></def><sym>.</sym><def></def><kwb>$_</kwb><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>FILE</def><sym>);</sym><br />
+<def></def> <kwb>@text</kwb><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># do an 'cvs -Qn status' on each file in the arguments, and extract info.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>sub</kwa> <def>change_summary</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$out</kwb><def></def><sym>,</sym> <def></def><kwb>@filenames</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@revline</kwb><def></def><sym>);</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$file</kwb><def></def><sym>,</sym> <def></def><kwb>$rev</kwb><def></def><sym>,</sym> <def></def><kwb>$rcsfile</kwb><def></def><sym>,</sym> <def></def><kwb>$line</kwb><def></def><sym>);</sym><br />
+<def></def><br />
+ <kwa>while</kwa> <def></def><sym>(</sym><def></def><kwb>@filenames</kwb><def></def><sym>) {</sym><br />
+<def></def> <kwb>$file</kwb> <def></def><sym>=</sym> <def>shift</def> <kwb>@filenames</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwa>if</kwa> <def></def><sym>(</sym><def></def><str>"$file"</str><def></def> <kwa>eq</kwa> <def></def><str>""</str><def></def><sym>) {</sym><br />
+<def></def> <kwa>next</kwa><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>RCS</def><sym>,</sym> <def></def><str>"-|"</str><def></def><sym>) ||</sym> <def>exec</def> <str>"$CVSBIN/cvs"</str><def></def><sym>,</sym> <def></def><str>'-Qn'</str><def></def><sym>,</sym> <def></def><str>'status'</str><def></def><sym>,</sym> <def></def><kwb>$file</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwb>$rev</kwb> <def></def><sym>=</sym> <def></def><str>""</str><def></def><sym>;</sym><br />
+<def></def> <kwb>$delta</kwb> <def></def><sym>=</sym> <def></def><str>""</str><def></def><sym>;</sym><br />
+<def></def> <kwb>$rcsfile</kwb> <def></def><sym>=</sym> <def></def><str>""</str><def></def><sym>;</sym><br />
+<def></def><br />
+<br />
+ <kwa>while</kwa> <def></def><sym>(<</sym><def>RCS</def><sym>>) {</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^[</sym> <def></def><esc>\t</esc><def></def><sym>]*</sym><def>Repository revision</def><sym>/) {</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>;</sym><br />
+<def></def> <kwb>@revline</kwb> <def></def><sym>=</sym> <def></def><kwd>split</kwd><def></def><sym>(</sym><def></def><str>' '</str><def></def><sym>,</sym> <def></def><kwb>$_</kwb><def></def><sym>);</sym><br />
+<def></def> <kwb>$rev</kwb> <def></def><sym>=</sym> <def></def><kwb>$revline</kwb><def></def><sym>[</sym><def></def><num>2</num><def></def><sym>];</sym><br />
+<def></def> <kwb>$rcsfile</kwb> <def></def><sym>=</sym> <def></def><kwb>$revline</kwb><def></def><sym>[</sym><def></def><num>3</num><def></def><sym>];</sym><br />
+<def></def> <kwb>$rcsfile</kwb> <def></def><sym>=~</sym> <def>s</def><sym>,^</sym><def></def><kwb>$CVSROOT</kwb><def></def><sym>/,,;</sym><br />
+<def></def> <kwb>$rcsfile</kwb> <def></def><sym>=~</sym> <def>s</def><sym>/,</sym><def>v</def><sym>$//;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>RCS</def><sym>);</sym><br />
+<def></def><br />
+<br />
+ <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$rev</kwb> <def></def><kwa>ne</kwa> <def></def><str>''</str><def></def> <sym>&&</sym> <def></def><kwb>$rcsfile</kwb> <def></def><kwa>ne</kwa> <def></def><str>''</str><def></def><sym>) {</sym><br />
+<def></def> <kwd>open</kwd><def></def><sym>(</sym><def>RCS</def><sym>,</sym> <def></def><str>"-|"</str><def></def><sym>) ||</sym> <def>exec</def> <str>"$CVSBIN/cvs"</str><def></def><sym>,</sym> <def></def><str>'-Qn'</str><def></def><sym>,</sym> <def></def><str>'log'</str><def></def><sym>,</sym> <def></def><str>"-r$rev"</str><def></def><sym>,</sym> <def></def><kwb>$file</kwb><def></def><sym>;</sym><br />
+<def></def> <kwa>while</kwa> <def></def><sym>(<</sym><def>RCS</def><sym>>) {</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>date</def><sym>:/) {</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>;</sym><br />
+<def></def> <kwb>$delta</kwb> <def></def><sym>=</sym> <def></def><kwb>$_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwb>$delta</kwb> <def></def><sym>=~</sym> <def>s</def><sym>/^.*;//;</sym><br />
+<def></def> <kwb>$delta</kwb> <def></def><sym>=~</sym> <def>s</def><sym>/^[</sym><def>\s</def><sym>]+</sym><def>lines</def><sym>://;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>RCS</def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><br />
+ <kwb>$diff</kwb> <def></def><sym>=</sym> <def></def><str>"</str><esc>\n\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def><br />
+ <slc>#</slc><br />
+<def></def> <slc># Get the differences between this and the previous revision,</slc><br />
+<def></def> <slc># being aware that new files always have revision '1.1' and</slc><br />
+<def></def> <slc># new branches always end in '.n.1'.</slc><br />
+<def></def> <slc>#</slc><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$rev</kwb> <def></def><sym>=~ /^(.*)</sym><def>\</def><sym>.([</sym><def></def><num>0</num><def></def><sym>-</sym><def></def><num>9</num><def></def><sym>]+)$/) {</sym><br />
+<def></def> <kwb>$prev</kwb> <def></def><sym>=</sym> <def></def><kwb>$2</kwb> <def></def><sym>-</sym> <def></def><num>1</num><def></def><sym>;</sym><br />
+<def></def> <kwb>$prev_rev</kwb> <def></def><sym>=</sym> <def></def><kwb>$1</kwb> <def></def><sym>.</sym> <def></def><str>'.'</str><def></def> <sym>.</sym> <def></def><kwb>$prev</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwb>$prev_rev</kwb> <def></def><sym>=~</sym> <def>s</def><sym>/</sym><def>\</def><sym>.[</sym><def></def><num>0</num><def></def><sym>-</sym><def></def><num>9</num><def></def><sym>]+</sym><def>\</def><num>.0</num><def></def><sym>$//;</sym><def></def><slc># Truncate if first rev on branch</slc><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>DIFF</def><sym>,</sym> <def></def><str>"-|"</str><def></def><sym>)</sym><br />
+<def></def> <sym>||</sym> <def>exec</def> <str>"$CVSBIN/cvs"</str><def></def><sym>,</sym> <def></def><str>'-Qn'</str><def></def><sym>,</sym> <def></def><str>'diff'</str><def></def><sym>,</sym> <def></def><str>'-uN'</str><def></def><sym>,</sym><br />
+<def></def> <str>"-r$prev_rev"</str><def></def><sym>,</sym> <def></def><str>"-r$rev"</str><def></def><sym>,</sym> <def></def><kwb>$file</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwa>while</kwa> <def></def><sym>(<</sym><def>DIFF</def><sym>>) {</sym><br />
+<def></def> <kwb>$diff</kwb> <def></def><sym>.=</sym> <def></def><kwb>$_</kwb><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>DIFF</def><sym>);</sym><br />
+<def></def> <kwb>$diff</kwb> <def></def><sym>.=</sym> <def></def><str>"</str><esc>\n\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><br />
+ <sym>&</sym><def></def><kwd>append_line</kwd><def></def><sym>(</sym><def></def><kwb>$out</kwb><def></def><sym>,</sym> <def></def><kwb>$diff</kwb><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<br />
+<kwa>sub</kwa> <def>build_header</def> <sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$header</kwb><def></def><sym>);</sym><br />
+<def> delete</def> <kwb>$ENV</kwb><def></def><sym>{</sym><def></def><str>'TZ'</str><def></def><sym>};</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$sec</kwb><def></def><sym>,</sym><def></def><kwb>$min</kwb><def></def><sym>,</sym><def></def><kwb>$hour</kwb><def></def><sym>,</sym><def></def><kwb>$mday</kwb><def></def><sym>,</sym><def></def><kwb>$mon</kwb><def></def><sym>,</sym><def></def><kwb>$year</kwb><def></def><sym>) =</sym> <def></def><kwd>localtime</kwd><def></def><sym>(</sym><def>time</def><sym>);</sym><br />
+<def></def><br />
+ <kwb>$header</kwb> <def></def><sym>=</sym> <def></def><kwd>sprintf</kwd><def></def><sym>(</sym><def></def><str>" User: %-8s</str><esc>\n</esc> <str>Date: %02d/%02d/%02d %02d:%02d:%02d"</str><def></def><sym>,</sym><br />
+<def></def> <kwb>$cvs_user</kwb><def></def><sym>,</sym> <def></def><kwb>$year%100</kwb><def></def><sym>,</sym> <def></def><kwb>$mon</kwb><def></def><sym>+</sym><def></def><num>1</num><def></def><sym>,</sym> <def></def><kwb>$mday</kwb><def></def><sym>,</sym><br />
+<def></def> <kwb>$hour</kwb><def></def><sym>,</sym> <def></def><kwb>$min</kwb><def></def><sym>,</sym> <def></def><kwb>$sec</kwb><def></def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc># !!! Mailing-list and history file mappings here !!!</slc><br />
+<def></def><kwa>sub</kwa> <def>mlist_map</def><br />
+<sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$path</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$path</kwb> <def></def><sym>=~ /^([^</sym><def>\</def><sym>/]+)/) {</sym> <def></def><kwa>return</kwa> <def></def><kwb>$1</kwb><def></def><sym>; }</sym><br />
+<def></def> <kwa>else</kwa> <def></def><sym>{</sym> <def></def><kwa>return</kwa> <def></def><str>'apache'</str><def></def><sym>; }</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>do_changes_file</def><br />
+<sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$category</kwb><def></def><sym>,</sym> <def></def><kwb>@text</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$changes</kwb><def></def><sym>);</sym><br />
+<def></def><br />
+ <kwb>$changes</kwb> <def></def><sym>=</sym> <def></def><str>"$CVSROOT/CVSROOT/commitlogs/$category"</str><def></def><sym>;</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwd>open</kwd><def></def><sym>(</sym><def>CHANGES</def><sym>,</sym> <def></def><str>">>$changes"</str><def></def><sym>)) {</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>CHANGES</def> <kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@text</kwb><def></def><sym>),</sym> <def></def><str>"</str><esc>\n\n</esc><str>"</str><def></def><sym>);</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>CHANGES</def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwa>else</kwa> <def></def><sym>{</sym><br />
+<def> warn</def> <str>"Cannot open $changes: $!</str><esc>\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<kwa>sub</kwa> <def>mail_notification</def><br />
+<sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+<slc># print "Mailing the commit message...\n";</slc><br />
+<def></def><br />
+ <kwd>open</kwd><def></def><sym>(</sym><def>MAIL</def><sym>,</sym> <def></def><kwb>$MAIL_CMD</kwb><def></def><sym>);</sym><br />
+<def></def> <kwc>print</kwc> <def>MAIL</def> <str>"From: $MAIL_FROM</str><esc>\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <kwc>print</kwc> <def>MAIL</def> <str>"To: $MAIL_TO</str><esc>\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <kwc>print</kwc> <def>MAIL</def> <str>"Subject: $SUBJECT_PRE $ARGV[0]</str><esc>\n\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <kwc>print</kwc><def></def><sym>(</sym><def>MAIL</def> <kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@text</kwb><def></def><sym>));</sym><br />
+<def></def> <kwd>close</kwd><def></def><sym>(</sym><def>MAIL</def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc># Create a Codestriker topic. The topic title will be the</slc><br />
+<def></def><slc># first line of the log message prefixed with "CVS commit: ".</slc><br />
+<def></def><slc># The topic description is the entire log message.</slc><br />
+<def></def><slc># Return the URL of the created topic if successful, otherwise</slc><br />
+<def></def><slc># undef.</slc><br />
+<def></def><kwa>sub</kwa> <def>codestriker_create_topic</def><br />
+<sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$user</kwb><def></def><sym>,</sym> <def></def><kwb>$log_ref</kwb><def></def><sym>,</sym> <def></def><kwb>$diff_ref</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@log</kwb><def></def><sym>) =</sym> <def>@</def><sym>{</sym><def></def><kwb>$log_ref</kwb><def></def><sym>};</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@diff</kwb><def></def><sym>) =</sym> <def>@</def><sym>{</sym><def></def><kwb>$diff_ref</kwb><def></def><sym>};</sym><br />
+<def></def><br />
+ <kwc>my</kwc> <def></def><kwb>$topic_title</kwb> <def></def><sym>=</sym> <def></def><str>"CVS commit: "</str><def></def> <sym>.</sym><def></def><kwb>$log</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>];</sym><br />
+<def></def> <kwc>my</kwc> <def></def><kwb>$topic_description</kwb> <def></def><sym>=</sym> <def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@log</kwb><def></def><sym>);</sym><br />
+<def></def> <kwc>my</kwc> <def></def><kwb>$bug_ids</kwb> <def></def><sym>=</sym> <def></def><kwb>$topic_description</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <slc># Truncate the title if necessary.</slc><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwd>length</kwd><def></def><sym>(</sym><def></def><kwb>$topic_title</kwb><def></def><sym>) ></sym> <def></def><num>57</num><def></def><sym>) {</sym><br />
+<def></def> <kwb>$topic_title</kwb> <def></def><sym>=</sym> <def></def><kwd>substr</kwd><def></def><sym>(</sym><def></def><kwb>$topic_title</kwb><def></def><sym>,</sym> <def></def><num>0</num><def></def><sym>,</sym> <def></def><num>57</num><def></def><sym>) .</sym> <def></def><str>"..."</str><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><br />
+ <slc># Check for any matching Bug id text.</slc><br />
+<def></def> <kwc>my</kwc> <def></def><kwb>@bugs</kwb> <def></def><sym>= ();</sym><br />
+<def></def> <kwb>$bug_ids</kwb> <def></def><sym>=~</sym> <def>s</def><sym>/.*[</sym><def>Bb</def><sym>][</sym><def>Uu</def><sym>][</sym><def>Gg</def><sym>]:</sym><def>?</def><sym>(</sym><def>\d</def><sym>+)</sym><def></def><esc>\b</esc><def></def><sym>.*/</sym><def></def><kwb>$1</kwb> <def></def><sym>/</sym><def></def><kwd>g</kwd><def></def><sym>;</sym><br />
+<def></def> <kwa>while</kwa> <def></def><sym>(</sym><def></def><kwb>$bug_ids</kwb> <def></def><sym>=~ /</sym><def></def><esc>\b</esc><def></def><sym>[</sym><def>Bb</def><sym>][</sym><def>Uu</def><sym>][</sym><def>Gg</def><sym>]:</sym><def>?\s</def><sym>*(</sym><def>\d</def><sym>+)</sym><def></def><esc>\b</esc><def></def><sym>/</sym><def>g</def><sym>) {</sym><br />
+<def> push</def> <kwb>@bugs</kwb><def></def><sym>,</sym> <def></def><kwb>$1</kwb><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><br />
+ <kwc>my</kwc> <def></def><kwb>$client</kwb> <def></def><sym>=</sym> <def>CodestrikerClient</def><sym>-></sym><def></def><kwd>new</kwd><def></def><sym>(</sym><def></def><kwb>$CODESTRIKER_URL</kwb><def></def><sym>);</sym><br />
+<def></def> <kwa>return</kwa> <def></def><kwb>$client</kwb><def></def><sym>-></sym><def></def><kwd>create_topic</kwd><def></def><sym>({</sym><br />
+<def> topic_title</def> <sym>=></sym> <def></def><kwb>$topic_title</kwb><def></def><sym>,</sym><br />
+<def> topic_description</def> <sym>=></sym> <def></def><kwb>$topic_description</kwb><def></def><sym>,</sym><br />
+<def> project_name</def> <sym>=></sym> <def></def><kwb>$CODESTRIKER_PROJECT</kwb><def></def><sym>,</sym><br />
+<def> repository</def> <sym>=></sym> <def></def><kwb>$CODESTRIKER_REPOSITORY</kwb><def></def><sym>,</sym><br />
+<def> bug_ids</def> <sym>=></sym> <def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>", "</str><def></def><sym>,</sym> <def></def><kwb>@bugs</kwb><def></def><sym>),</sym><br />
+<def> email</def> <sym>=></sym> <def></def><kwb>$MAIL_FROM</kwb><def></def><sym>,</sym><br />
+<def> reviewers</def> <sym>=></sym> <def></def><kwb>$CODESTRIKER_REVIEWERS</kwb><def></def><sym>,</sym><br />
+<def> cc</def> <sym>=></sym> <def></def><kwb>$CODESTRIKER_CC</kwb><def></def><sym>,</sym><br />
+<def> topic_text</def> <sym>=></sym> <def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>"</str><esc>\n</esc><str>"</str><def></def><sym>,</sym> <def></def><kwb>@diff</kwb><def></def><sym>)</sym><br />
+<def></def> <sym>});</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>## process the command line arguments sent to this script</slc><br />
+<def></def><slc>## it returns an array of files, %s, sent from the loginfo</slc><br />
+<def></def><slc>## command</slc><br />
+<def></def><kwa>sub</kwa> <def>process_argv</def><br />
+<sym>{</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@argv</kwb><def></def><sym>) =</sym> <def></def><kwb>@_</kwb><def></def><sym>;</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>@files</kwb><def></def><sym>);</sym><br />
+<def></def> <kwc>local</kwc><def></def><sym>(</sym><def></def><kwb>$arg</kwb><def></def><sym>);</sym><br />
+<def></def><slc># print "Processing log script arguments...\n";</slc><br />
+<def></def><br />
+ <kwa>while</kwa> <def></def><sym>(</sym><def></def><kwb>@argv</kwb><def></def><sym>) {</sym><br />
+<def></def> <kwb>$arg</kwb> <def></def><sym>=</sym> <def>shift</def> <kwb>@argv</kwb><def></def><sym>;</sym><br />
+<def></def><br />
+ <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$arg</kwb> <def></def><kwa>eq</kwa> <def></def><str>'-u'</str><def></def><sym>) {</sym><br />
+<def></def> <kwb>$cvs_user</kwb> <def></def><sym>=</sym> <def>shift</def> <kwb>@argv</kwb><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym> <def></def><kwa>else</kwa> <def></def><sym>{</sym><br />
+<def></def> <sym>(</sym><def></def><kwb>$donefiles</kwb><def></def><sym>) &&</sym> <def>die</def> <str>"Too many arguments!</str><esc>\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def></def> <kwb>$donefiles</kwb> <def></def><sym>=</sym> <def></def><num>1</num><def></def><sym>;</sym><br />
+<def></def> <kwb>$ARGV</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>] =</sym> <def></def><kwb>$arg</kwb><def></def><sym>;</sym><br />
+<def></def> <kwb>@files</kwb> <def></def><sym>=</sym> <def></def><kwd>split</kwd><def></def><sym>(</sym><def></def><str>' '</str><def></def><sym>,</sym> <def></def><kwb>$arg</kwb><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwa>return</kwa> <def></def><kwb>@files</kwb><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Main Body</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc>############################################################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Setup environment</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwd>umask</kwd> <def></def><sym>(</sym><def></def><num>002</num><def></def><sym>);</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Initialize basic variables</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwb>$id</kwb> <def></def><sym>=</sym> <def></def><kwd>getpgrp</kwd><def></def><sym>();</sym><br />
+<def></def><kwb>$state</kwb> <def></def><sym>=</sym> <def></def><kwb>$STATE_NONE</kwb><def></def><sym>;</sym><br />
+<def></def><kwb>$cvs_user</kwb> <def></def><sym>=</sym> <def></def><kwb>$ENV</kwb><def></def><sym>{</sym><def></def><str>'USER'</str><def></def><sym>} ||</sym> <def>getlogin</def> <sym>|| (</sym><def></def><kwd>getpwuid</kwd><def></def><sym>($<))[</sym><def></def><num>0</num><def></def><sym>] ||</sym> <def></def><kwd>sprintf</kwd><def></def><sym>(</sym><def></def><str>"uid#%d"</str><def></def><sym>,$<);</sym><br />
+<def></def><kwb>@files</kwb> <def></def><sym>=</sym> <def></def><kwd>process_argv</kwd><def></def><sym>(</sym><def></def><kwb>@ARGV</kwb><def></def><sym>);</sym><br />
+<def></def><kwb>@path</kwb> <def></def><sym>=</sym> <def></def><kwd>split</kwd><def></def><sym>(</sym><def></def><str>'/'</str><def></def><sym>,</sym> <def></def><kwb>$files</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>]);</sym><br />
+<def></def><kwb>$repository</kwb> <def></def><sym>=</sym> <def></def><kwb>$path</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>];</sym><br />
+<def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$#path</kwb> <def></def><sym>==</sym> <def></def><num>0</num><def></def><sym>) {</sym><br />
+<def></def> <kwb>$dir</kwb> <def></def><sym>=</sym> <def></def><str>"."</str><def></def><sym>;</sym><br />
+<def></def><sym>}</sym> <def></def><kwa>else</kwa> <def></def><sym>{</sym><br />
+<def></def> <kwb>$dir</kwb> <def></def><sym>=</sym> <def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>'/'</str><def></def><sym>,</sym> <def></def><kwb>@path</kwb><def></def><sym>[</sym><def></def><num>1</num><def></def><sym>..</sym><def></def><kwb>$#path</kwb><def></def><sym>]);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><slc>#print("ARGV - ", join(":", @ARGV), "\n");</slc><br />
+<def></def><slc>#print("files - ", join(":", @files), "\n");</slc><br />
+<def></def><slc>#print("path - ", join(":", @path), "\n");</slc><br />
+<def></def><slc>#print("dir - ", $dir, "\n");</slc><br />
+<def></def><slc>#print("id - ", $id, "\n");</slc><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Map the repository directory to a name for commitlogs.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwb>$mlist</kwb> <def></def><sym>= &</sym><def></def><kwd>mlist_map</kwd><def></def><sym>(</sym><def></def><kwb>$files</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>]);</sym><br />
+<def></def><br />
+<slc>##########################</slc><br />
+<def></def><slc># Uncomment the following if we ever have per-repository cvs mail</slc><br />
+<def></def><br />
+<slc># if (defined($mlist)) {</slc><br />
+<def></def><slc># $MAIL_TO = $mlist . '-cvs';</slc><br />
+<def></def><slc># }</slc><br />
+<def></def><slc># else { undef $MAIL_TO; }</slc><br />
+<def></def><br />
+<slc>##########################</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><slc># Check for a new directory first. This will always appear as a</slc><br />
+<def></def><slc># single item in the argument list, and an empty log message.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$ARGV</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>] =~ /</sym><def>New directory</def><sym>/) {</sym><br />
+<def></def> <kwb>$header</kwb> <def></def><sym>= &</sym><def></def><kwd>build_header</kwd><def></def><sym>;</sym><br />
+<def></def> <kwb>@text</kwb> <def></def><sym>= ();</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>,</sym> <def></def><kwb>$header</kwb><def></def><sym>);</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>,</sym> <def></def><str>""</str><def></def><sym>);</sym><br />
+<def></def> <kwd>push</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>,</sym> <def></def><str>" "</str><def></def><sym>.</sym><def></def><kwb>$ARGV</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>]);</sym><br />
+<def></def> <sym>&</sym><def></def><kwd>do_changes_file</kwd><def></def><sym>(</sym><def></def><kwb>$mlist</kwb><def></def><sym>,</sym> <def></def><kwb>@text</kwb><def></def><sym>);</sym><br />
+<def></def> <sym>&</sym><def></def><kwd>mail_notification</kwd><def></def><sym>(</sym><def></def><kwb>@text</kwb><def></def><sym>)</sym> <def></def><kwa>if</kwa> <def></def><kwd>defined</kwd><def></def><sym>(</sym><def></def><kwb>$MAIL_TO</kwb><def></def><sym>);</sym><br />
+<def> exit</def> <num>0</num><def></def><sym>;</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Iterate over the body of the message collecting information.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>while</kwa> <def></def><sym>(<</sym><def>STDIN</def><sym>>) {</sym><br />
+<def></def> <kwd>chomp</kwd><def></def><sym>;</sym> <def></def><slc># Drop the newline</slc><br />
+<def></def><br />
+ <kwa>if</kwa> <def></def><sym>(/^</sym><def>Revision\</def><sym>/</sym><def>Branch</def><sym>:/) {</sym><br />
+<def> s</def><sym>,^</sym><def>Revision</def><sym>/</sym><def>Branch</def><sym>:,,;</sym><br />
+<def></def> <kwd>push</kwd> <def></def><sym>(</sym><def></def><kwb>@branch_lines</kwb><def></def><sym>,</sym> <def>split</def><sym>);</sym><br />
+<def></def> <kwa>next</kwa><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><slc># next if (/^[ \t]+Tag:/ && $state != $STATE_LOG);</slc><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>Modified Files</def><sym>/) {</sym> <def></def><kwb>$state</kwb> <def></def><sym>=</sym> <def></def><kwb>$STATE_CHANGED</kwb><def></def><sym>;</sym> <def></def><kwa>next</kwa><def></def><sym>; }</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>Added Files</def><sym>/) {</sym> <def></def><kwb>$state</kwb> <def></def><sym>=</sym> <def></def><kwb>$STATE_ADDED</kwb><def></def><sym>;</sym> <def></def><kwa>next</kwa><def></def><sym>; }</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>Removed Files</def><sym>/) {</sym> <def></def><kwb>$state</kwb> <def></def><sym>=</sym> <def></def><kwb>$STATE_REMOVED</kwb><def></def><sym>;</sym> <def></def><kwa>next</kwa><def></def><sym>; }</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>Log Message</def><sym>/) {</sym> <def></def><kwb>$state</kwb> <def></def><sym>=</sym> <def></def><kwb>$STATE_LOG</kwb><def></def><sym>;</sym> <def></def><kwa>next</kwa><def></def><sym>; }</sym><br />
+<def> s</def><sym>/[</sym> <def></def><esc>\t\n</esc><def></def><sym>]+$//;</sym> <def></def><slc># delete trailing space</slc><br />
+<def></def><br />
+ <kwd>push</kwd> <def></def><sym>(</sym><def></def><kwb>@changed_files</kwb><def></def><sym>,</sym> <def>split</def><sym>)</sym> <def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$state</kwb> <def></def><sym>==</sym> <def></def><kwb>$STATE_CHANGED</kwb><def></def><sym>);</sym><br />
+<def></def> <kwd>push</kwd> <def></def><sym>(</sym><def></def><kwb>@added_files</kwb><def></def><sym>,</sym> <def>split</def><sym>)</sym> <def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$state</kwb> <def></def><sym>==</sym> <def></def><kwb>$STATE_ADDED</kwb><def></def><sym>);</sym><br />
+<def></def> <kwd>push</kwd> <def></def><sym>(</sym><def></def><kwb>@removed_files</kwb><def></def><sym>,</sym> <def>split</def><sym>)</sym> <def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$state</kwb> <def></def><sym>==</sym> <def></def><kwb>$STATE_REMOVED</kwb><def></def><sym>);</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$state</kwb> <def></def><sym>==</sym> <def></def><kwb>$STATE_LOG</kwb><def></def><sym>) {</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(/^</sym><def>PR</def><sym>:$/</sym><def>i</def> <sym>||</sym><br />
+<def></def> <sym>/^</sym><def>Reviewed by</def><sym>:$/</sym><def>i</def> <sym>||</sym><br />
+<def></def> <sym>/^</sym><def>Submitted by</def><sym>:$/</sym><def>i</def> <sym>||</sym><br />
+<def></def> <sym>/^</sym><def>Obtained from</def><sym>:$/</sym><def>i</def><sym>) {</sym><br />
+<def></def> <kwa>next</kwa><def></def><sym>;</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def> <kwd>push</kwd> <def></def><sym>(</sym><def></def><kwb>@log_lines</kwb><def></def><sym>,</sym> <def></def><kwb>$_</kwb><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Strip leading and trailing blank lines from the log message. Also</slc><br />
+<def></def><slc># compress multiple blank lines in the body of the message down to a</slc><br />
+<def></def><slc># single blank line.</slc><br />
+<def></def><slc># (Note, this only does the mail and changes log, not the rcs log).</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>while</kwa> <def></def><sym>(</sym><def></def><kwb>$#log_lines</kwb> <def></def><sym>> -</sym><def></def><num>1</num><def></def><sym>) {</sym><br />
+<def></def> <kwa>last if</kwa> <def></def><sym>(</sym><def></def><kwb>$log_lines</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>]</sym> <def></def><kwa>ne</kwa> <def></def><str>""</str><def></def><sym>);</sym><br />
+<def></def> <kwd>shift</kwd><def></def><sym>(</sym><def></def><kwb>@log_lines</kwb><def></def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><kwa>while</kwa> <def></def><sym>(</sym><def></def><kwb>$#log_lines</kwb> <def></def><sym>> -</sym><def></def><num>1</num><def></def><sym>) {</sym><br />
+<def></def> <kwa>last if</kwa> <def></def><sym>(</sym><def></def><kwb>$log_lines</kwb><def></def><sym>[</sym><def></def><kwb>$#log_lines</kwb><def></def><sym>]</sym> <def></def><kwa>ne</kwa> <def></def><str>""</str><def></def><sym>);</sym><br />
+<def></def> <kwd>pop</kwd><def></def><sym>(</sym><def></def><kwb>@log_lines</kwb><def></def><sym>);</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><kwa>for</kwa> <def></def><sym>(</sym><def></def><kwb>$i</kwb> <def></def><sym>=</sym> <def></def><kwb>$#log_lines</kwb><def></def><sym>;</sym> <def></def><kwb>$i</kwb> <def></def><sym>></sym> <def></def><num>0</num><def></def><sym>;</sym> <def></def><kwb>$i</kwb><def></def><sym>--) {</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>((</sym><def></def><kwb>$log_lines</kwb><def></def><sym>[</sym><def></def><kwb>$i</kwb> <def></def><sym>-</sym> <def></def><num>1</num><def></def><sym>]</sym> <def></def><kwa>eq</kwa> <def></def><str>""</str><def></def><sym>) && (</sym><def></def><kwb>$log_lines</kwb><def></def><sym>[</sym><def></def><kwb>$i</kwb><def></def><sym>]</sym> <def></def><kwa>eq</kwa> <def></def><str>""</str><def></def><sym>)) {</sym><br />
+<def></def> <kwd>splice</kwd><def></def><sym>(</sym><def></def><kwb>@log_lines</kwb><def></def><sym>,</sym> <def></def><kwb>$i</kwb><def></def><sym>,</sym> <def></def><num>1</num><def></def><sym>);</sym><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Find the log file that matches this log message</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>for</kwa> <def></def><sym>(</sym><def></def><kwb>$i</kwb> <def></def><sym>=</sym> <def></def><num>0</num><def></def><sym>; ;</sym> <def></def><kwb>$i</kwb><def></def><sym>++) {</sym><br />
+<def></def> <kwa>last if</kwa> <def></def><sym>(! -</sym><def>e</def> <str>"$LOG_FILE.$i.$id"</str><def></def><sym>);</sym><br />
+<def></def> <kwb>@text</kwb> <def></def><sym>= &</sym><def></def><kwd>read_logfile</kwd><def></def><sym>(</sym><def></def><str>"$LOG_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><str>""</str><def></def><sym>);</sym><br />
+<def></def> <kwa>last if</kwa> <def></def><sym>(</sym><def></def><kwb>$#text</kwb> <def></def><sym>== -</sym><def></def><num>1</num><def></def><sym>);</sym><br />
+<def></def> <kwa>last if</kwa> <def></def><sym>(</sym><def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>" "</str><def></def><sym>,</sym> <def></def><kwb>@log_lines</kwb><def></def><sym>)</sym> <def></def><kwa>eq</kwa> <def></def><kwd>join</kwd><def></def><sym>(</sym><def></def><str>" "</str><def></def><sym>,</sym> <def></def><kwb>@text</kwb><def></def><sym>));</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Spit out the information gathered in this pass.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><sym>&</sym><def></def><kwd>write_logfile</kwd><def></def><sym>(</sym><def></def><str>"$LOG_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><kwb>@log_lines</kwb><def></def><sym>);</sym><br />
+<def></def><sym>&</sym><def></def><kwd>append_to_file</kwd><def></def><sym>(</sym><def></def><str>"$BRANCH_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@branch_lines</kwb><def></def><sym>);</sym><br />
+<def></def><sym>&</sym><def></def><kwd>append_to_file</kwd><def></def><sym>(</sym><def></def><str>"$ADDED_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@added_files</kwb><def></def><sym>);</sym><br />
+<def></def><sym>&</sym><def></def><kwd>append_to_file</kwd><def></def><sym>(</sym><def></def><str>"$CHANGED_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@changed_files</kwb><def></def><sym>);</sym><br />
+<def></def><sym>&</sym><def></def><kwd>append_to_file</kwd><def></def><sym>(</sym><def></def><str>"$REMOVED_FILE.$i.$id"</str><def></def><sym>,</sym> <def></def><kwb>$dir</kwb><def></def><sym>,</sym> <def></def><kwb>@removed_files</kwb><def></def><sym>);</sym><br />
+<def></def><kwa>if</kwa> <def></def><sym>(</sym><def></def><kwb>$rcsidinfo</kwb><def></def><sym>) {</sym><br />
+<def></def> <sym>&</sym><def></def><kwd>change_summary</kwd><def></def><sym>(</sym><def></def><str>"$SUMMARY_FILE.$i.$id"</str><def></def><sym>,</sym><br />
+<def></def> <sym>(</sym><def></def><kwb>@changed_files</kwb><def></def><sym>,</sym> <def></def><kwb>@added_files</kwb><def></def><sym>,</sym> <def></def><kwb>@removed_files</kwb><def></def><sym>));</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># Check whether this is the last directory. If not, quit.</slc><br />
+<def></def><slc>#</slc><br />
+<def></def><kwa>if</kwa> <def></def><sym>(-</sym><def>e</def> <str>"$LAST_FILE.$id"</str><def></def><sym>) {</sym><br />
+<def></def> <kwb>$_</kwb> <def></def><sym>= &</sym><def></def><kwd>read_line</kwd><def></def><sym>(</sym><def></def><str>"$LAST_FILE.$id"</str><def></def><sym>);</sym><br />
+<def></def> <kwb>$tmpfiles</kwb> <def></def><sym>=</sym> <def></def><kwb>$files</kwb><def></def><sym>[</sym><def></def><num>0</num><def></def><sym>];</sym><br />
+<def></def> <kwb>$tmpfiles</kwb> <def></def><sym>=~</sym> <def>s</def><sym>,([^</sym><def>a</def><sym>-</sym><def>zA</def><sym>-</sym><def>Z0</def><sym>-</sym><def></def><num>9</num><def>_</def><sym>/]),</sym><def></def><esc>\\</esc><def></def><kwb>$1</kwb><def></def><sym>,</sym><def></def><kwd>g</kwd><def></def><sym>;</sym><br />
+<def></def> <kwa>if</kwa> <def></def><sym>(!</sym> <def></def><kwd>grep</kwd><def></def><sym>(/</sym><def></def><kwb>$tmpfiles</kwb><def></def><sym>$/,</sym> <def></def><kwb>$_</kwb><def></def><sym>)) {</sym><br />
+<def></def> <kwc>print</kwc> <def></def><str>"More commits to come...</str><esc>\n</esc><str>"</str><def></def><sym>;</sym><br />
+<def> exit</def> <num>0</num><br />
+<def></def> <sym>}</sym><br />
+<def></def><sym>}</sym><br />
+<def></def><br />
+<slc>#</slc><br />
+<def></def><slc># This is it. The commits are all finished. Lump everything together</slc><br />
+<def></def><slc># into a single message, fire a copy off to the mailing list, and drop</slc><...
[truncated message content] |
|
From: <si...@us...> - 2008-06-23 07:31:27
|
User: sits
Date: 08/06/23 00:31:26
Modified: template/en/default header.html.tmpl
Log:
More CSS changes.
Index: header.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/header.html.tmpl,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- header.html.tmpl 29 Jun 2007 07:13:59 -0000 1.15
+++ header.html.tmpl 23 Jun 2008 07:31:26 -0000 1.16
@@ -5,25 +5,21 @@
[%# Header HTML code to appear on each screen, after <body> tag. #%]
-<table width="100%" border="0">
-<tr>
- <td class="heading">
- <a class="heading" href="[% list_url | html_entity %]">[% main_title | html_entity %]</a>
- </td>
-</tr>
-</table>
+<div id="header">
+ <div class="heading">
+ <a href="[% list_url | html_entity %]">[% main_title | html_entity %]</a>
+ </div>
-[% IF displaymenu != 0 %]
-<p>
-<div class="menu">
- <a href="[% list_url | html_entity %]">List all open topics</a>
- [% IF list_open_topics_in_project_url != "" %]
- | <a href="[% list_open_topics_in_project_url | html_entity %]">List open topics in project</a>
+ [% IF displaymenu != 0 %]
+ <div class="menu">
+ <a href="[% list_url | html_entity %]">List all open topics</a>
+ [% IF list_open_topics_in_project_url != "" %]
+ | <a href="[% list_open_topics_in_project_url | html_entity %]">List open topics in project</a>
+ [% END %]
+ | <a href="[% create_topic_url | html_entity %]">Create new topic</a>
+ [% IF searchlist_enabled != 0 %] | <a href="[% search_url | html_entity %]">Search</a> [% END %]
+ [% IF help != "" %] | <a href="[% doc_url | html_entity %]/[% help %]">Help</a>[% END %]
+ </div>
[% END %]
- | <a href="[% create_topic_url | html_entity %]">Create new topic</a>
- [% IF searchlist_enabled != 0 %] | <a href="[% search_url | html_entity %]">Search</a> [% END %]
- [% IF help != "" %] | <a href="[% doc_url | html_entity %]/[% help %]">Help</a>[% END %]
</div>
-[% END %]
-<hr />
|
|
From: <si...@us...> - 2008-06-23 07:27:23
|
User: sits
Date: 08/06/23 00:27:22
Modified: template/en/default viewtopicheader.html.tmpl
Log:
More CSS changes.
Index: viewtopicheader.html.tmpl
===================================================================
RCS file: /cvsroot/codestriker/codestriker/template/en/default/viewtopicheader.html.tmpl,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- viewtopicheader.html.tmpl 29 Jun 2007 07:13:59 -0000 1.9
+++ viewtopicheader.html.tmpl 23 Jun 2008 07:27:22 -0000 1.10
@@ -26,7 +26,7 @@
<td width="1" class="space"> </td>
<td width="1%" nowrap class=[% IF topicinfo == 0 %]"notselected"[% ELSE %]"selected"[% END %]>
<a class="tab" href="[% view_topicinfo_url %]">Topic Information</a> </td>
- <td colspan=2 bgcolor="#eeeeee" align=right><b>[% author | html_entity %]</b></td>
+ <td colspan=2 class="space" align=right><b>[% author | html_entity %]</b></td>
</tr>
</table>
|
|
From: <si...@us...> - 2008-06-23 07:15:58
|
User: sits
Date: 08/06/23 00:15:57
Modified: . codestriker.conf
html codestriker.css
Removed: html codestriker-bluish.css
Log:
Make the new CSS file the default.
Index: codestriker.conf
===================================================================
RCS file: /cvsroot/codestriker/codestriker/codestriker.conf,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -r1.97 -r1.98
--- codestriker.conf 21 Jun 2008 10:55:57 -0000 1.97
+++ codestriker.conf 23 Jun 2008 07:15:56 -0000 1.98
@@ -94,10 +94,9 @@
# If codestriker is installed differently to that described in the README file
# (for example on the sourceforge servers), it may be necessary to explicitly
# specify the location of the codestriker_css as a URL. This can also be
-# used for specifying a different CSS file to use, for example,
-# codestriker-bluish.css which is a part of the codestriker distribution.
-$codestriker_css = 'codestriker.css';
-#$codestriker_css = 'codestriker-bluish.css';
+# used for specifying a different CSS file to use in the html directory.
+#$codestriker_css = 'codestriker.css';
+#$codestriker_css = 'codestriker-alternative.css';
# Valid repositories which may be selected at the create topic screen.
# The order shown here is the order presented in the option list. Most
Index: codestriker.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker.css,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- codestriker.css 18 Jun 2008 05:37:46 -0000 1.22
+++ codestriker.css 23 Jun 2008 07:15:56 -0000 1.23
@@ -1,40 +1,42 @@
/* CSS for codestriker */
-BODY {background-color: #ffffff;}
+BODY {background-color: #fff;}
+
+H1 {font-family: Tahoma, Verdana, Bitstream Vera Sans, sans-serif;}
/* Links */
-A:link {color: blue;}
-A:visited {color: purple;}
+A:link {color: #081020;}
+A:visited {color: #101828;}
/* File heading */
-TD.file {background-color: #cccccc; font-family: Helvetica, Arial; font-size: medium}
+TD.file {background-color: #cccccc; font-family: Georgia, serif; font-size: medium}
/* Line heading */
-TD.line {background-color: #99cccc; font-family: Helvetica, Arial; font-size: medium}
+TD.line {background-color: #99cccc; font-family: Georgia, serif; font-size: medium}
/* Normal text */
-TD.n {font-family: Helvetica, Arial; font-size: smaller}
+TD.n {font-family: Georgia, serif; font-size: smaller}
/* Normal text monospaced */
TD.msn {font-family: monospace; font-size: smaller}
/* Added text */
-TD.a {background-color: #aaffaa; font-family: Helvetica, Arial; font-size: smaller}
+TD.a {background-color: #abd; font-family: Georgia, serif; font-size: smaller}
/* Added text monospaced */
-TD.msa {background-color: #aaffaa; font-family: monospace; font-size: smaller}
+TD.msa {background-color: #abd; font-family: monospace; font-size: smaller}
/* Added file */
-TD.af {background-color: #aaffaa}
+TD.af {background-color: #abd}
/* Added blank text */
-TD.ab {background-color: #cccccc; font-family: Helvetica, Arial; font-size: smaller}
+TD.ab {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
/* Added blank text monospaced */
TD.msab {background-color: #cccccc; font-family: monospace; font-size: smaller}
/* Removed text */
-TD.r {background-color: #ff9999; font-family: Helvetica, Arial; font-size: smaller}
+TD.r {background-color: #ff9999; font-family: Georgia, serif; font-size: smaller}
/* Removed text monospaced */
TD.msr {background-color: #ff9999; font-family: monospace; font-size: smaller}
@@ -43,10 +45,10 @@
TD.rf {background-color: #ff9999}
/* Removed blank text */
-TD.rb {background-color: #cccccc; font-family: Helvetica, Arial; font-size: smaller}
+TD.rb {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
/* Changed text */
-TD.c {background-color: #ffff77; font-family: Helvetica, Arial; font-size: smaller}
+TD.c {background-color: #ffff77; font-family: Georgia, serif; font-size: smaller}
/* Changed text monospaced */
TD.msc {background-color: #ffff77; font-family: monospace; font-size: smaller}
@@ -54,23 +56,28 @@
/* Changed file */
TD.cf {background-color: #ffff77}
-/* Patch file */
-TD.pf {background-color: #ffff77}
-
/* Changed blank text */
-TD.cb {background-color: #eeee77; font-family: Helvetica, Arial; font-size: smaller}
+TD.cb {background-color: #eeee77; font-family: Georgia, serif; font-size: smaller}
/* Changed blank text monospaced */
TD.mscb {background-color: #eeee77; font-family: monospace; font-size: smaller}
/* Line number with comment */
-SPAN.comment {color: #ff0000; font-family: Helvetica, Arial; font-size: smaller}
+A.comment { color: #ff0000; font-family: Georgia, serif; font-size: smaller}
+A.comment:link { color: ff0000; text-decoration: none }
+A.comment:visited { color: inherit; text-decoration: none }
+A.comment:visited:hover { text-decoration: underline; }
+A.comment:link:hover { text-decoration: underline; }
/* Line number with no comment */
-SPAN.nocom {font-family: Helvetica, Arial; font-size: smaller}
+A.nocom { font-family: Georgia, serif; font-size: smaller}
+A.nocom:link { color: inherit; text-decoration: none }
+A.nocom:visited { color: inherit; text-decoration: none }
+A.nocom:visited:hover { text-decoration: underline; }
+A.nocom:link:hover { text-decoration: underline; }
/* Monospaced line with added text */
-SPAN.msa {background-color: #aaffaa; font-family: monospace; font-size: medium}
+SPAN.msa {background-color: #abd; font-family: monospace; font-size: medium}
/* Monospaced line with removed text */
SPAN.msr {background-color: #ff9999; font-family: monospace; font-size: medium}
@@ -83,20 +90,23 @@
/* Monospaced line number with comment */
SPAN.mscom {color: #ff0000; font-family: monospace; font-size: medium}
+SPAN.mscom:link { color: inherit; text-decoration: none }
+SPAN.mscom:visited { color: inherit; text-decoration: none }
+SPAN.mscom:visited:hover { text-decoration: underline; }
+SPAN.mscom:link:hover { text-decoration: underline; }
+
/* Monospaced line number with no comment */
SPAN.msnocom {font-family: monospace; font-size: medium}
-
-/* Smaller monospaced line number with comment */
-SPAN.smscom {color: #ff0000; font-family: monospace; font-size: smaller}
-
-/* Smaller monospaced line number with no comment */
-SPAN.smsnocom {font-family: monospace; font-size: smaller}
+SPAN.msnocom:link { color: inherit; text-decoration: none }
+SPAN.msnocom:visited { color: inherit; text-decoration: none }
+SPAN.msnocom:visited:hover { text-decoration: underline; }
+SPAN.msnocom:link:hover { text-decoration: underline; }
/* File heading */
-SPAN.file_comment {background-color: #cccccc; font-family: Helvetica, Arial; font-size: medium; color: #ff0000}
+SPAN.file_comment {background-color: #cccccc; font-family: Georgia, serif; font-size: medium; color: #ff0000}
/* General heading */
-SPAN.general_comment {color: #000000; font-family: Helvetica, Arial}
+SPAN.general_comment {color: #ff0000}
/* Style used for rendering data within popup window */
PRE.ms {font-family: monospace; font-size: medium}
@@ -104,13 +114,13 @@
/* Styles to use for topic list display */
/* Topic list heading */
-TR.tlh {background-color: #aaffaa; font-family: Helvetica, Arial}
+TR.tlh {background-color: #abd; font-family: Georgia, serif}
/* Topic list row type 1 */
-TR.tl1 {background-color: #cccccc; font-family: Helvetica, Arial}
+TR.tl1 {background-color: #cccccc; font-family: Georgia, serif}
/* Topic list row type 1 */
-TR.tl2 {background-color: #eeeeee; font-family: Helvetica, Arial}
+TR.tl2 {background-color: #eeeeee; font-family: Georgia, serif}
/* Colour to use for matching identifier */
A.fid:link { color: inherit; text-decoration: none }
@@ -119,8 +129,8 @@
A.fid:link:hover { text-decoration: underline; }
/* Style comment listings. */
-TR.comments {background-color: #aaffaa; font-family: Helvetica, Arial} /* space */
-TR.commenth {background-color: #cccccc; font-family: Helvetica, Arial} /* header */
+TR.comments {background-color: #abd; font-family: Georgia, serif} /* space */
+TR.commenth {background-color: #cccccc; font-family: Georgia, serif} /* header */
TR.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
TD.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
TR.commentc {background-color: #eeeeee; font-family: monospace} /* context */
@@ -128,29 +138,30 @@
/* Style for topic title headings. */
/* Topic title heading */
-TR.tth {background-color: #aaffaa; font-family: Helvetica, Arial}
-TD.tth {background-color: #aaffaa; font-family: Helvetica, Arial}
+TR.tth {background-color: #abd; font-family: Georgia, serif}
+TD.tth {background-color: #abd; font-family: Georgia, serif}
/* Topic title row type 0 */
-TR.tt0 {background-color: #cccccc; font-family: Helvetica, Arial}
-TD.tt0 {background-color: #cccccc; font-family: Helvetica, Arial}
+TR.tt0 {background-color: #cccccc; font-family: Georgia, serif}
+TD.tt0 {background-color: #cccccc; font-family: Georgia, serif}
/* Topic title row type 1 */
-TR.tt1 {background-color: #eeeeee; font-family: Helvetica, Arial}
-TD.tt1 {background-color: #eeeeee; font-family: Helvetica, Arial}
+TR.tt1 {background-color: #eeeeee; font-family: Georgia, serif}
+TD.tt1 {background-color: #eeeeee; font-family: Georgia, serif}
/* Codestriker heading */
-TD.heading {text-align: center; background-color: #000000; font-family: Helvetica, Arial; font-size: x-large}
-A.heading {text-decoration: none; color: #ffffff}
+#header {margin-bottom: 1em; font-family: sans-serif;}
+#header .heading {background-color: #404D6C; color: white; font-size: 110%; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
+#header .heading a {text-decoration: none; color: inherit; background-color: transparent;}
/* Codestriker top-level menu */
-DIV.menu {font-family: Helvetica, Arial}
+#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em}
/* Tabbing styles */
-TR.tab {background-color: #aaffaa; font-family: Helvetica, Arial}
-TD.selected {background-color: #aaffaa}
+TR.tab {background-color: #abd; font-family: Georgia, serif}
+TD.selected {background-color: #abd}
TD.notselected {background-color: #cccccc}
-TD.space {background-color: #eeeeee}
+TD.space {background-color: white}
A.tab {text-decoration: none}
/* Styles for error field in comment posting tooltip. */
@@ -174,4 +185,4 @@
SPAN.kwa { color:#000080; font-weight:bold; }
SPAN.kwb { color:#000080; font-weight:bold; }
SPAN.kwc { color:#000000; }
-SPAN.kwd { color:#000000; }
\ No newline at end of file
+SPAN.kwd { color:#000000; }
\ No newline at end of file
Index: codestriker-bluish.css
===================================================================
RCS file: codestriker-bluish.css
diff -N codestriker-bluish.css
--- codestriker-bluish.css 23 Jun 2008 07:12:06 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,188 +0,0 @@
-/* CSS for codestriker */
-
-BODY {background-color: #fff;}
-
-H1 {font-family: Tahoma, Verdana, Bitstream Vera Sans, sans-serif;}
-
-/* Links */
-A:link {color: #081020;}
-A:visited {color: #101828;}
-
-/* File heading */
-TD.file {background-color: #cccccc; font-family: Georgia, serif; font-size: medium}
-
-/* Line heading */
-TD.line {background-color: #99cccc; font-family: Georgia, serif; font-size: medium}
-
-/* Normal text */
-TD.n {font-family: Georgia, serif; font-size: smaller}
-
-/* Normal text monospaced */
-TD.msn {font-family: monospace; font-size: smaller}
-
-/* Added text */
-TD.a {background-color: #abd; font-family: Georgia, serif; font-size: smaller}
-
-/* Added text monospaced */
-TD.msa {background-color: #abd; font-family: monospace; font-size: smaller}
-
-/* Added file */
-TD.af {background-color: #abd}
-
-/* Added blank text */
-TD.ab {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
-
-/* Added blank text monospaced */
-TD.msab {background-color: #cccccc; font-family: monospace; font-size: smaller}
-
-/* Removed text */
-TD.r {background-color: #ff9999; font-family: Georgia, serif; font-size: smaller}
-
-/* Removed text monospaced */
-TD.msr {background-color: #ff9999; font-family: monospace; font-size: smaller}
-
-/* Removed file */
-TD.rf {background-color: #ff9999}
-
-/* Removed blank text */
-TD.rb {background-color: #cccccc; font-family: Georgia, serif; font-size: smaller}
-
-/* Changed text */
-TD.c {background-color: #ffff77; font-family: Georgia, serif; font-size: smaller}
-
-/* Changed text monospaced */
-TD.msc {background-color: #ffff77; font-family: monospace; font-size: smaller}
-
-/* Changed file */
-TD.cf {background-color: #ffff77}
-
-/* Changed blank text */
-TD.cb {background-color: #eeee77; font-family: Georgia, serif; font-size: smaller}
-
-/* Changed blank text monospaced */
-TD.mscb {background-color: #eeee77; font-family: monospace; font-size: smaller}
-
-/* Line number with comment */
-A.comment { color: #ff0000; font-family: Georgia, serif; font-size: smaller}
-A.comment:link { color: ff0000; text-decoration: none }
-A.comment:visited { color: inherit; text-decoration: none }
-A.comment:visited:hover { text-decoration: underline; }
-A.comment:link:hover { text-decoration: underline; }
-
-/* Line number with no comment */
-A.nocom { font-family: Georgia, serif; font-size: smaller}
-A.nocom:link { color: inherit; text-decoration: none }
-A.nocom:visited { color: inherit; text-decoration: none }
-A.nocom:visited:hover { text-decoration: underline; }
-A.nocom:link:hover { text-decoration: underline; }
-
-/* Monospaced line with added text */
-SPAN.msa {background-color: #abd; font-family: monospace; font-size: medium}
-
-/* Monospaced line with removed text */
-SPAN.msr {background-color: #ff9999; font-family: monospace; font-size: medium}
-
-/* Monospaced line with changed text */
-SPAN.msc {background-color: #ffff77; font-family: monospace; font-size: medium}
-
-/* Monospaced line with normal text */
-SPAN.ms {font-family: monospace; font-size: medium}
-
-/* Monospaced line number with comment */
-SPAN.mscom {color: #ff0000; font-family: monospace; font-size: medium}
-SPAN.mscom:link { color: inherit; text-decoration: none }
-SPAN.mscom:visited { color: inherit; text-decoration: none }
-SPAN.mscom:visited:hover { text-decoration: underline; }
-SPAN.mscom:link:hover { text-decoration: underline; }
-
-/* Monospaced line number with no comment */
-SPAN.msnocom {font-family: monospace; font-size: medium}
-SPAN.msnocom:link { color: inherit; text-decoration: none }
-SPAN.msnocom:visited { color: inherit; text-decoration: none }
-SPAN.msnocom:visited:hover { text-decoration: underline; }
-SPAN.msnocom:link:hover { text-decoration: underline; }
-
-/* File heading */
-SPAN.file_comment {background-color: #cccccc; font-family: Georgia, serif; font-size: medium; color: #ff0000}
-
-/* General heading */
-SPAN.general_comment {color: #ff0000}
-
-/* Style used for rendering data within popup window */
-PRE.ms {font-family: monospace; font-size: medium}
-
-/* Styles to use for topic list display */
-
-/* Topic list heading */
-TR.tlh {background-color: #abd; font-family: Georgia, serif}
-
-/* Topic list row type 1 */
-TR.tl1 {background-color: #cccccc; font-family: Georgia, serif}
-
-/* Topic list row type 1 */
-TR.tl2 {background-color: #eeeeee; font-family: Georgia, serif}
-
-/* Colour to use for matching identifier */
-A.fid:link { color: inherit; text-decoration: none }
-A.fid:visited { color: inherit; text-decoration: none }
-A.fid:visited:hover { text-decoration: underline; }
-A.fid:link:hover { text-decoration: underline; }
-
-/* Style comment listings. */
-TR.comments {background-color: #abd; font-family: Georgia, serif} /* space */
-TR.commenth {background-color: #cccccc; font-family: Georgia, serif} /* header */
-TR.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
-TD.commentb {background-color: #eeeeee; font-family: monospace} /* comment body */
-TR.commentc {background-color: #eeeeee; font-family: monospace} /* context */
-
-/* Style for topic title headings. */
-
-/* Topic title heading */
-TR.tth {background-color: #abd; font-family: Georgia, serif}
-TD.tth {background-color: #abd; font-family: Georgia, serif}
-
-/* Topic title row type 0 */
-TR.tt0 {background-color: #cccccc; font-family: Georgia, serif}
-TD.tt0 {background-color: #cccccc; font-family: Georgia, serif}
-
-/* Topic title row type 1 */
-TR.tt1 {background-color: #eeeeee; font-family: Georgia, serif}
-TD.tt1 {background-color: #eeeeee; font-family: Georgia, serif}
-
-/* Codestriker heading */
-#header {margin-bottom: 1em; font-family: sans-serif;}
-#header .heading {background-color: #404D6C; color: white; font-size: 110%; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
-#header .heading a {text-decoration: none; color: inherit; background-color: transparent;}
-
-/* Codestriker top-level menu */
-#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em}
-
-/* Tabbing styles */
-TR.tab {background-color: #abd; font-family: Georgia, serif}
-TD.selected {background-color: #abd}
-TD.notselected {background-color: #cccccc}
-TD.space {background-color: white}
-A.tab {text-decoration: none}
-
-/* Styles for error field in comment posting tooltip. */
-span.hidden {display: none}
-span.error {display: inline; color: red}
-
-span.feedback {color: red;}
-span.obsolete-header {color: red; font-weight: bold;}
-
-/* Styles for highlight program. */
-SPAN.num { color:#0000ff; }
-SPAN.esc { color:#000080; font-weight:bold; }
-SPAN.str { color:#008000; font-weight:bold; }
-SPAN.dstr { color:#008000; font-weight:bold; }
-SPAN.slc { color:#008080; }
-SPAN.com { color:#008080; }
-SPAN.dir { color:#008200; }
-SPAN.sym { color:#000000; }
-SPAN.line { color:#555555; }
-SPAN.mark { background-color:#ffffbb;}
-SPAN.kwa { color:#000080; font-weight:bold; }
-SPAN.kwb { color:#000080; font-weight:bold; }
-SPAN.kwc { color:#000000; }
-SPAN.kwd { color:#000000; }
\ No newline at end of file
|
|
From: <si...@us...> - 2008-06-23 07:12:07
|
User: sits
Date: 08/06/23 00:12:06
Modified: lib/Codestriker/Http DeltaRenderer.pm Response.pm
html codestriker-bluish.css
Log:
More CSS-related changes.
Index: DeltaRenderer.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/DeltaRenderer.pm,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- DeltaRenderer.pm 20 Jun 2008 02:34:00 -0000 1.13
+++ DeltaRenderer.pm 23 Jun 2008 07:12:06 -0000 1.14
@@ -108,13 +108,9 @@
# it.
my %comment_hash = %{ $self->{comment_hash} };
my %comment_location_map = %{ $self->{comment_location_map} };
- my $comment_number = undef;
my $query = $self->{query};
if (exists $comment_hash{$anchor}) {
- # Determine what comment number this anchor refers to.
- $comment_number = $comment_location_map{$anchor};
- $text = $query->span({-id=>"c$comment_number"}, "") .
- $query->span({-class=>"comment"}, $text);
+ $params->{class} = "comment";
# Determine what the next comment in line is.
my $index = -1;
@@ -127,7 +123,7 @@
"return overlib(comment_text[$index],STICKY,DRAGGABLE,ALTCUT);";
$params->{onmouseout} = "return nd();";
} else {
- $text = $query->span({-class=>"nocom"}, $text);
+ $params->{class} = "nocom";
}
return $query->a($params, $text);
@@ -333,7 +329,8 @@
} elsif (! defined $old_data && defined $new_data) {
$render_old_colour = $old_notpresent_col;
}
-
+
+ my %comment_location_map = %{ $self->{comment_location_map} };
my $line = {};
if (defined $old_data) {
$line->{old_data} = $old_data;
Index: Response.pm
===================================================================
RCS file: /cvsroot/codestriker/codestriker/lib/Codestriker/Http/Response.pm,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- Response.pm 23 Jun 2008 01:26:01 -0000 1.45
+++ Response.pm 23 Jun 2008 07:12:06 -0000 1.46
@@ -365,7 +365,7 @@
$previous_url .= '#' . $previous;
$overlib_html .= "<a href=\"javascript:window.location=\\'$previous_url\\'; ";
if ($fview == -1 || $fview == $previous_fview) {
- $overlib_html .= "overlib(comment_text[$previous_index], STICKY, DRAGGABLE, ALTCUT, FIXX, getEltPageLeft(getElt(\\'c$previous_index\\')), FIXY, getEltPageTop(getElt(\\'c$previous_index\\'))); ";
+ $overlib_html .= "overlib(comment_text[$previous_index], STICKY, DRAGGABLE, ALTCUT, FIXX, getEltPageLeft(getElt(\\'$previous\\')), FIXY, getEltPageTop(getElt(\\'$previous\\'))); ";
}
$overlib_html .= "void(0);\">Previous</a>";
}
@@ -380,7 +380,7 @@
$next_url .= '#' . $next;
$overlib_html .= "<a href=\"javascript:window.location=\\'$next_url\\'; ";
if ($fview == -1 || $fview == $next_fview) {
- $overlib_html .= "overlib(comment_text[$next_index], STICKY, DRAGGABLE, ALTCUT, FIXX, getEltPageLeft(getElt(\\'c$next_index\\')), FIXY, getEltPageTop(getElt(\\'c$next_index\\'))); ";
+ $overlib_html .= "overlib(comment_text[$next_index], STICKY, DRAGGABLE, ALTCUT, FIXX, getEltPageLeft(getElt(\\'$next\\')), FIXY, getEltPageTop(getElt(\\'$next\\'))); ";
}
$overlib_html .= "void(0);\">Next</a>";
}
Index: codestriker-bluish.css
===================================================================
RCS file: /cvsroot/codestriker/codestriker/html/codestriker-bluish.css,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- codestriker-bluish.css 22 Jun 2008 23:01:29 -0000 1.2
+++ codestriker-bluish.css 23 Jun 2008 07:12:06 -0000 1.3
@@ -63,10 +63,18 @@
TD.mscb {background-color: #eeee77; font-family: monospace; font-size: smaller}
/* Line number with comment */
-SPAN.comment {color: #ff0000; font-family: Georgia, serif; font-size: smaller}
+A.comment { color: #ff0000; font-family: Georgia, serif; font-size: smaller}
+A.comment:link { color: ff0000; text-decoration: none }
+A.comment:visited { color: inherit; text-decoration: none }
+A.comment:visited:hover { text-decoration: underline; }
+A.comment:link:hover { text-decoration: underline; }
/* Line number with no comment */
-SPAN.nocom {font-family: Georgia, serif; font-size: smaller}
+A.nocom { font-family: Georgia, serif; font-size: smaller}
+A.nocom:link { color: inherit; text-decoration: none }
+A.nocom:visited { color: inherit; text-decoration: none }
+A.nocom:visited:hover { text-decoration: underline; }
+A.nocom:link:hover { text-decoration: underline; }
/* Monospaced line with added text */
SPAN.msa {background-color: #abd; font-family: monospace; font-size: medium}
@@ -82,14 +90,17 @@
/* Monospaced line number with comment */
SPAN.mscom {color: #ff0000; font-family: monospace; font-size: medium}
+SPAN.mscom:link { color: inherit; text-decoration: none }
+SPAN.mscom:visited { color: inherit; text-decoration: none }
+SPAN.mscom:visited:hover { text-decoration: underline; }
+SPAN.mscom:link:hover { text-decoration: underline; }
+
/* Monospaced line number with no comment */
SPAN.msnocom {font-family: monospace; font-size: medium}
-
-/* Smaller monospaced line number with comment */
-SPAN.smscom {color: #ff0000; font-family: monospace; font-size: smaller}
-
-/* Smaller monospaced line number with no comment */
-SPAN.smsnocom {font-family: monospace; font-size: smaller}
+SPAN.msnocom:link { color: inherit; text-decoration: none }
+SPAN.msnocom:visited { color: inherit; text-decoration: none }
+SPAN.msnocom:visited:hover { text-decoration: underline; }
+SPAN.msnocom:link:hover { text-decoration: underline; }
/* File heading */
SPAN.file_comment {background-color: #cccccc; font-family: Georgia, serif; font-size: medium; color: #ff0000}
@@ -139,17 +150,18 @@
TD.tt1 {background-color: #eeeeee; font-family: Georgia, serif}
/* Codestriker heading */
-TD.heading {text-align: center; background-color: #246; font-family: Georgia, serif; font-size: x-large}
-A.heading {text-decoration: none; color: #ffffff; background-color: transparent;}
+#header {margin-bottom: 1em; font-family: sans-serif;}
+#header .heading {background-color: #404D6C; color: white; font-size: 110%; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; margin: 0; padding: 0.5em; vertical-align: bottom; font-weight: bold;}
+#header .heading a {text-decoration: none; color: inherit; background-color: transparent;}
/* Codestriker top-level menu */
-DIV.menu {font-family: Georgia, serif}
+#header .menu {font-size: 85%; border-left: 1px solid silver; border-right: 1px solid silver; border-bottom: 1px solid silver; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; padding: 0.5em}
/* Tabbing styles */
TR.tab {background-color: #abd; font-family: Georgia, serif}
TD.selected {background-color: #abd}
TD.notselected {background-color: #cccccc}
-TD.space {background-color: #eeeeee}
+TD.space {background-color: white}
A.tab {text-decoration: none}
/* Styles for error field in comment posting tooltip. */
|