# Emulate the POSIX basename command to extract just the last component
# of a pathname, deleting any suffix, if specified.
# Usage: basename string [ suffix ]
# Copyright (c) 1996-2012 by Hamilton Laboratories. All rights reserved.
proc basename( string, suffix )
local base, i, j
if ( $#string == 0 ) then
echo -2 basename: No file or directory specified.
@ status = 1
return
end
if ( $#string > 1 ) then
echo -2 basename: Only one file or directory should be specified.
@ status = 1
end
@ base = $string:t
if (base == "") @ base = "\"
if (suffix == "" && suffix != base) return base
@ i = strlen(base)
@ j = strlen(suffix)
return i > j && lower(substr(base, i - j + 1)) == lower(suffix) ? ^
substr(base, 1, i - j) : base
end
basename $argv
|