#!/usr/bin/perl

# process multi file targets
foreach (@ARGV) {
	my $file = $_;
	my $data = "";

# grep file to $data
open(fh, "<$file");
while (<fh>) { $data .= $_; }
close(fh);

# /******************************************************************
# *
# *
# *
# ******************************************************************/
#$data =~ s/
#\n+
#\/\*\*{10,100}\n
#(\s*[|\*]+\s*\n){1,5}
#\s*[\\]*\*{10,100}\/\s*
#\n+
#/\n/gs;


### part 1.1
qq(
cui/source/options/fontsubs.cxx:/*********************************************************************/
cui/source/options/fontsubs.cxx-/*                                                                   */
cui/source/options/fontsubs.cxx:/*********************************************************************/

cui/source/tabpages/dstribut.cxx:/*************************************************************************
cui/source/tabpages/dstribut.cxx-|*
cui/source/tabpages/dstribut.cxx-|*
cui/source/tabpages/dstribut.cxx-|*
cui/source/tabpages/dstribut.cxx-\************************************************************************/
);
#$data =~ s/\n+\/\*[\*=+-]{10,100}[\/]?\s*\n(\s*[|\*\/]+\s*(\s+\*\/)?\n){1,5}\s*[\/\\]*[\*=+-]{10,100}\/\s*\n+/\n\n/gs;

### part 1.2
qq(
offapi/com/sun/star/form/ErrorEvent.idl:/*=============================================================================
offapi/com/sun/star/form/ErrorEvent.idl-
offapi/com/sun/star/form/ErrorEvent.idl-=============================================================================*/
);
#$data =~ s/\n+\/\*[\*=+-]{10,100}\s*\n(\s*\n){1,5}\s*[\/\\]*[\*=+-]{10,100}\/\s*\n+/\n\n/gs;

### part 2
qq(
comphelper/source/misc/sequenceashashmap.cxx:/*-----------------------------------------------
comphelper/source/misc/sequenceashashmap.cxx-    04.11.2003 08:30
comphelper/source/misc/sequenceashashmap.cxx------------------------------------------------*/
);
#$data =~ s/\n+\/\*[\*=+-]{10,100}\s*\n(\s*[0-9\.]{10}(\s+[0-9:]{5})?\n){1,5}\s*[\/\\]*[\*=+-]{10,100}\/\s*\n+/\n\n/gs;


### part 3.1
qq(
framework/inc/macros/debug/event.hxx:    //_________________________________________________________________________________________________________________
framework/inc/macros/debug/event.hxx:    //  includes
framework/inc/macros/debug/event.hxx:    //_________________________________________________________________________________________________________________

//_______________________________________________
// includes of own project

framework/source/layoutmanager/helpers.cxx:// my own includes
framework/source/layoutmanager/helpers.cxx:// interface includes
framework/source/layoutmanager/helpers.cxx:// other includes
framework/source/layoutmanager/helpers.hxx:// my own includes
framework/source/layoutmanager/helpers.hxx:// interface includes
framework/source/layoutmanager/helpers.hxx:// other includes

framework/source/loadenv/loadenv.cxx:// includes of own project
framework/source/loadenv/loadenv.cxx:// includes of uno interface
framework/source/loadenv/loadenv.cxx:// includes of an other project

//____________________________________________________________________________________________________________
//  my own includes
//____________________________________________________________________________________________________________

//____________________________________________________________________________________________________________
//  namespace
//____________________________________________________________________________________________________________

//____________________________________________________________________________________________________________
//  defines
//____________________________________________________________________________________________________________

//____________________________________________________________________________________________________________
//  classes
//____________________________________________________________________________________________________________
);
#$data =~ s/\n+(\s*\/\/\s*[\/\*=+_-]{0,200}\s*\n)?[\t ]*\/\/\s*((other )?include[s]?|(my )?own includes?|includes? of other projects|includes? of (my )?(own )?project|interface includes?|includes? of an other project|includes? of uno interface|includes? of own modules|includes? of interfaces|includes? of external modules|uno includes?|local includes?|includes? for parent class.*?|includes? for member variables)[\t ]*\n([\t ]*\/\/\s*[\/\*=+_-]{0,200}\s*\n+)?/\n\n/gs;
$data =~ s/\n+(\s*\/\/\s*[\/\*=+_-]{0,200}\s*\n)?[\t ]*\/\/\s*((other )?include[s]?|(my )?own includes?|includes? of other projects|includes? of (my )?(own )?project|interface includes?|includes? of an other project|includes? of uno interface|includes? of own modules|includes? of interfaces|includes? of external modules|uno includes?|local includes?|includes? for parent class.*?|includes? for member variables|namespace|defines|public const|definitions|classes|deklarations|declarations|const|(non )?exported const|(non )?exported definitions|(non )?exported declarations)[\t ]*\n([\t ]*\/\/\s*[\/\*=+_-]{0,200}\s*\n+)?/\n\n/gs;

### part 3.2
qq(
vcl/inc/generic/gensys.h:// -=-= includes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/inc/unx/saldisp.hxx:// -=-= #includes =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/inc/unx/salframe.h:// -=-= #includes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
vcl/inc/unx/salvd.h:// -=-= #includes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
svtools/inc/svtools/imagemgr.hrc:// includes ******************************************************************
svtools/inc/svtools/imagemgr.hxx:// includes ******************************************************************
svtools/source/contnr/fileview.src: // includes ------------------------------------------------------------------
);
$data =~ s/\n+\s*\/\/\s*[\*=+\~\#_ -]*\s*includes?\s*[\*=+\~\#_-]+\s*\n+/\n\n/gs;









# write file
open(fh, ">$file");
print fh $data;
close(fh);

}




#### documentation of box types ####
$a = qq(

framework/source/fwe/classes/addonsoptions.cxx://*****************************************************************************************************************
framework/source/fwe/classes/addonsoptions.cxx-//  public method
framework/source/fwe/classes/addonsoptions.cxx://*****************************************************************************************************************

extensions/workben/testpgp.cxx:/*========================================================================
extensions/workben/testpgp.cxx- *
extensions/workben/testpgp.cxx- * DataSource_Impl interface.
extensions/workben/testpgp.cxx- *
extensions/workben/testpgp.cxx- *======================================================================*/

cui/source/tabpages/autocdlg.src:/**************************************************************************/
cui/source/tabpages/autocdlg.src-/*                                                                        */
cui/source/tabpages/autocdlg.src-/*  TabDialog RID_OFA_AUTOCORR_DLG                                        */
cui/source/tabpages/autocdlg.src-/*                                                                        */
cui/source/tabpages/autocdlg.src:/**************************************************************************/

cui/source/options/optinet2.cxx:/********************************************************************/
cui/source/options/optinet2.cxx-/*                                                                  */
cui/source/options/optinet2.cxx-/*  SvxSecurityTabPage                                             */
cui/source/options/optinet2.cxx-/*                                                                  */
cui/source/options/optinet2.cxx:/********************************************************************/

cui/source/tabpages/connect.cxx:/*************************************************************************
cui/source/tabpages/connect.cxx-|*
cui/source/tabpages/connect.cxx-|* dialog for changing connectors
cui/source/tabpages/connect.cxx-|*
cui/source/tabpages/connect.cxx-\************************************************************************/

fpicker/source/office/iodlg.cxx://***************************************************************************
fpicker/source/office/iodlg.cxx-// ControlChain_Impl
fpicker/source/office/iodlg.cxx://***************************************************************************

vcl/unx/generic/window/salframe.cxx:// -=-= #defines -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/unx/generic/window/salframe.cxx:// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/unx/generic/window/salframe.cxx:// -=-= C++ statics =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/unx/generic/window/salframe.cxx:// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
vcl/unx/generic/window/salframe.cxx:// -=-= SalFrame / X11SalFrame =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


);

