SF.net SVN: geany:[2989] trunk/scripts

ntrel at users.sourceforge.net ntrel at xxxxx
Wed Sep 24 11:23:03 UTC 2008


Revision: 2989
          http://geany.svn.sourceforge.net/geany/?rev=2989&view=rev
Author:   ntrel
Date:     2008-09-24 11:23:02 +0000 (Wed, 24 Sep 2008)

Log Message:
-----------
Add 2 scripts from Daniel Richard G. to replace C++ line comments and to show a summary of gcc warnings.

Added Paths:
-----------
    trunk/scripts/fix-cxx-comments.pl
    trunk/scripts/warning-summary.pl

Added: trunk/scripts/fix-cxx-comments.pl
===================================================================
--- trunk/scripts/fix-cxx-comments.pl	                        (rev 0)
+++ trunk/scripts/fix-cxx-comments.pl	2008-09-24 11:23:02 UTC (rev 2989)
@@ -0,0 +1,78 @@
+#!/usr/bin/env perl
+# fix-cxx-comments.pl
+# Copyright (c) 2008, Daniel Richard G. <skunk(at)iskunk(dot)org>
+#
+#       Redistribution and use in source and binary forms, with or without
+#       modification, are permitted provided that the following conditions are
+#       met:
+#
+#       * Redistributions of source code must retain the above copyright
+#         notice, this list of conditions and the following disclaimer.
+#       * Redistributions in binary form must reproduce the above
+#         copyright notice, this list of conditions and the following disclaimer
+#         in the documentation and/or other materials provided with the
+#         distribution.
+#       * Neither the name of the author nor the names of
+#         contributors may be used to endorse or promote products derived from
+#         this software without specific prior written permission.
+#
+#       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#       "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#       A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#       OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+use warnings;
+
+sub xform($$$)
+{
+	my ($a, $b, $c) = @_;
+
+	$a =~ s!///!/**!;
+	$b =~ s!(\a\s*)///!$1 **!g;
+	$c =~ s!///! **!;
+
+	$a =~ s!//!/*!;
+	$b =~ s!(\a\s*)//!$1 *!g;
+	$c =~ s!//! *!;
+
+	$c .= ' */';
+
+	return $a . $b . $c . "\a";
+}
+
+sub fix_cxx_comments()
+{
+	s/\r//g;	# This is Unix, not DOS
+	s/[\t ]+$//g;	# Remove trailing whitespace
+	s/\n/\a/g;	# Convert file to single line
+
+	# Process multi-line comments:
+	# $1 = first line of comment, $3 = last line, $2 = lines in between
+	s! (\a\s*//[^\a]*) ((?:\a\s*//[^\a]*)*) (\a\s*//[^\a]*)\a !xform($1,$2,$3)!egx;
+
+	# Process /// single-line comments
+	s! (\a\s*)///(\s?)([^\a]*)\a !$1/**$2$3$2*/\a!gx;
+	s! (\s+)///(\s?)([^\a]*)\a !$1/**$2$3$2*/\a!gx;
+
+	# Process // single-line comments
+	s! (\a\s*)//(\s?)([^\a]*)\a !$1/*$2$3$2*/\a!gx;
+	s! (\s+)//(\s?)([^\a]*)\a !$1/*$2$3$2*/\a!gx;
+
+	s/\a/\n/g;	# Convert back to multiple lines
+}
+
+{
+	local $/;
+	$_ = <>;
+	fix_cxx_comments();
+	print;
+}
+


Property changes on: trunk/scripts/fix-cxx-comments.pl
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native

Added: trunk/scripts/warning-summary.pl
===================================================================
--- trunk/scripts/warning-summary.pl	                        (rev 0)
+++ trunk/scripts/warning-summary.pl	2008-09-24 11:23:02 UTC (rev 2989)
@@ -0,0 +1,78 @@
+#!/usr/bin/env perl
+# warning-summary.pl
+# Copyright (c) 2008, Daniel Richard G. <skunk(at)iskunk(dot)org>
+#
+#       Redistribution and use in source and binary forms, with or without
+#       modification, are permitted provided that the following conditions are
+#       met:
+#
+#       * Redistributions of source code must retain the above copyright
+#         notice, this list of conditions and the following disclaimer.
+#       * Redistributions in binary form must reproduce the above
+#         copyright notice, this list of conditions and the following disclaimer
+#         in the documentation and/or other materials provided with the
+#         distribution.
+#       * Neither the name of the author nor the names of
+#         contributors may be used to endorse or promote products derived from
+#         this software without specific prior written permission.
+#
+#       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#       "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#       LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#       A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#       OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#       SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#       LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#       THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#       (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#       OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+use strict;
+use warnings;
+
+use encoding 'utf8';
+
+binmode(STDIN, ":utf8");
+
+open(OUT, "| sort | uniq -c | sort -nr");
+binmode(OUT, ":utf8");
+
+while (<>)
+{
+	/warning:/ || next;
+	/near initialization for/ && next;
+	/shadowed declaration is here/ && next;
+	/\(this will be reported only once per input file\)/ && next;
+
+	s/^.*: warning: //g;
+
+	tr/\x{2018}\x{2019}/''/;
+
+	s/\barg(ument|) \d+\b/arg$1 N/g;
+
+	s/\b(type|function|variable|enumeration value|declaration of|argument N of|parameter|type of|type of bit-field|prototype for) '[^']+'/$1 'blah'/g;
+
+	s/"[^"]+" (is not defined)/"BLAH" $1/g;
+
+	s/'[^']+' (defined but not used)/'blah' $1/g;
+
+	s/format '%\w+'/format '%blah'/g;
+
+	s/'%\w+' printf format/'%blah' printf format/g;
+
+	s/'\d+'/'NNN'/g;
+
+	s/'[^']+' (declared 'static' but never defined)/'blah' $1/g;
+
+	s/(missing braces around initializer for) '\w+'/$1 'blah'/g;
+
+	s/(missing initializer for member) '\w+::\w+'/$1 'Foo::bar'/g;
+
+	print OUT;
+}
+
+close(OUT);
+
+# end warning-summary.pl
+


Property changes on: trunk/scripts/warning-summary.pl
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list