* Makefile.am (cvs-release): Upload to ~ftp/pub/automake, not
[automake.git] / lib / Automake / General.pm
blob7ea242aac9a9200893a97499e864f0e905437217
1 # Copyright (C) 2001, 2003 Free Software Foundation, Inc.
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2, or (at your option)
6 # any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
16 # 02111-1307, USA.
18 package Automake::General;
20 use 5.005;
21 use strict;
22 use Exporter;
23 use File::Basename;
25 use vars qw (@ISA @EXPORT);
27 @ISA = qw (Exporter);
28 @EXPORT = qw (&uniq $me);
30 # Variable we share with the main package. Be sure to have a single
31 # copy of them: using `my' together with multiple inclusion of this
32 # package would introduce several copies.
33 use vars qw ($me);
34 $me = basename ($0);
36 # END
37 # ---
38 # Exit nonzero whenever closing STDOUT fails.
39 sub END
41 # This is required if the code might send any output to stdout
42 # E.g., even --version or --help. So it's best to do it unconditionally.
43 if (! close STDOUT)
45 print STDERR "$me: closing standard output: $!\n";
46 $? = 74; # EX_IOERR
47 return;
52 # @RES
53 # uniq (@LIST)
54 # ------------
55 # Return LIST with no duplicates.
56 sub uniq (@)
58 my @res = ();
59 my %seen = ();
60 foreach my $item (@_)
62 if (! exists $seen{$item})
64 $seen{$item} = 1;
65 push (@res, $item);
68 return wantarray ? @res : "@res";
72 1; # for require
74 ### Setup "GNU" style for perl-mode and cperl-mode.
75 ## Local Variables:
76 ## perl-indent-level: 2
77 ## perl-continued-statement-offset: 2
78 ## perl-continued-brace-offset: 0
79 ## perl-brace-offset: 0
80 ## perl-brace-imaginary-offset: 0
81 ## perl-label-offset: -2
82 ## cperl-indent-level: 2
83 ## cperl-brace-offset: 0
84 ## cperl-continued-brace-offset: 0
85 ## cperl-label-offset: -2
86 ## cperl-extra-newline-before-brace: t
87 ## cperl-merge-trailing-else: nil
88 ## cperl-continued-statement-offset: 2
89 ## End: