1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
##---------------------------------------------------------------------------##
## File:
## @(#) ewhutil.pl 1.5 97/04/23 13:38:51 @(#)
## Author:
## Earl Hood ehood@medusa.acs.uci.edu
## Description:
## Generic utility routines
##---------------------------------------------------------------------------##
## Copyright (C) 1996,1997 Earl Hood, ehood@medusa.acs.uci.edu
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##---------------------------------------------------------------------------##
##---------------------------------------------------------------------------
## Remove duplicates in an array.
##
sub remove_dups {
local(*array) = shift;
local(%dup);
@array = grep($dup{$_}++ < 1, @array);
%dup = ();
}
##---------------------------------------------------------------------------
## numerically() is used to tell 'sort' to sort by numbers.
##
sub numerically {
$a <=> $b;
}
##---------------------------------------------------------------------------
## "Entify" special characters
##
sub htmlize { # Older name
local($txt) = $_[0];
$txt =~ s/&/\&/g; $txt =~ s/>/>/g; $txt =~ s/</</g;
$txt;
}
sub entify { # Newer name
local($txt) = $_[0];
$txt =~ s/&/\&/g; $txt =~ s/>/>/g; $txt =~ s/</</g;
$txt;
}
## commentize entifies the '-' character to avoid problems when a
## string will be included in a comment declaration
sub commentize {
local($txt) = $_[0];
$txt =~ s/-/\-/g;
$txt;
}
##---------------------------------------------------------------------------
## Copy a file.
##
sub cp {
local($src, $dst) = @_;
open(SRC, $src) || die("ERROR: Unable to open $src\n");
open(DST, "> $dst") || die("ERROR: Unable to create $dst\n");
print DST <SRC>;
close(SRC);
close(DST);
}
##---------------------------------------------------------------------------
## Remove a directory (or file)
##
sub rmdir {
local($file) = shift;
if (-d $file) {
local(@files) = ();
if (!opendir(DIR, $file)) {
warn qq{Warning: Unable to open "$file"\n};
return 0;
}
@files = grep(!/^(\.|\..)$/i, readdir(DIR));
closedir(DIR);
foreach (@files) {
&rmdir($file . $'DIRSEP . $_);
}
if (!rmdir($file)) {
warn qq{Warning: Unable to remove "$file": $!\n};
return 0;
}
} else {
if (!unlink($file)) {
warn qq{Warning: Unable to delete "$file": $!\n};
return 0;
}
}
1;
}
##---------------------------------------------------------------------------
## Translate html string back to regular string
##
sub dehtmlize {
local($str) = shift;
$str =~ s/\</</g;
$str =~ s/\>/>/g;
$str =~ s/\&/\&/g;
$str;
}
##---------------------------------------------------------------------------
## Escape special characters in string for URL use.
##
sub urlize {
local($url) = shift;
$url =~ s/([^\w])/sprintf("%%%X",unpack("C",$1))/ge;
$url;
}
##---------------------------------------------------------------------------##
1;
|