1: 2eval 'exec perl -wS $0 ${1+"$@"}' 3 if 0; 4#************************************************************************* 5# 6# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 7# 8# Copyright 2000, 2010 Oracle and/or its affiliates. 9# 10# OpenOffice.org - a multi-platform office productivity suite 11# 12# This file is part of OpenOffice.org. 13# 14# OpenOffice.org is free software: you can redistribute it and/or modify 15# it under the terms of the GNU Lesser General Public License version 3 16# only, as published by the Free Software Foundation. 17# 18# OpenOffice.org is distributed in the hope that it will be useful, 19# but WITHOUT ANY WARRANTY; without even the implied warranty of 20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21# GNU Lesser General Public License version 3 for more details 22# (a copy is included in the LICENSE file that accompanied this code). 23# 24# You should have received a copy of the GNU Lesser General Public License 25# version 3 along with OpenOffice.org. If not, see 26# <http://www.openoffice.org/license.html> 27# for a copy of the LGPLv3 License. 28# 29#************************************************************************* 30my $target_format = ""; 31my @filelist; 32#my $debug=1; 33my $debug=0; 34 35parameter_parse(@ARGV); 36print "@filelist\n" if ( $debug ); 37foreach my $onefile ( @filelist ) { 38 convert_file( $onefile ); 39} 40 41 42sub convert_file 43{ 44 my $filename = shift; 45 if ( $target_format eq "dos" ) { 46 $lineend = "\r\n"; 47 } else { 48 $lineend = "\n"; 49 } 50 open INFILE, "$filename"or die "ERROR: Couldn\'t open $filename for reading.\n"; 51 my @lines = <INFILE>; 52 close INFILE; 53 54 foreach my $oneline ( @lines ) { 55 $oneline =~ s/\r*\n*$/$lineend/; 56 } 57 58 open OUTFILE, ">$filename" or die "ERROR: Couldn\'t open $filename for writing.\n"; 59 syswrite OUTFILE, join "", @lines; 60 close OUTFILE; 61 62} 63 64sub parameter_parse 65{ 66 if ( $target_format eq "" ) { 67 $target_format = shift ; 68 usage() if ( $target_format ne "unix" && $target_format ne "dos" ); 69 usage() if ( $#_ == -1 ); 70 } 71 foreach my $param ( @_ ) { 72 if ( $param =~ "^@" ) { 73 my $filename = $param; 74 $filename =~ s/^@//; 75 open CMDFILE, "$filename" or die "ERROR: Couldn\'t open $filename for reading.\n"; 76 my @filelist = <CMDFILE>; 77 close CMDFILE; 78 parameter_parse( @filelist ); 79 } else { 80 push @filelist, $param; 81 } 82 } 83} 84 85sub usage 86{ 87 print "Convert text files to the desired lineend convention:\n"; 88 print "$0 <unix|dos> <FILE|\@filelist> [more files/lists]\n"; 89 exit 1; 90} 91 92