From a8af2bd86b01e22a0595dec1b5973202f668de61 Mon Sep 17 00:00:00 2001 From: Mark Murray Date: Sun, 2 May 1999 08:55:27 +0000 Subject: [PATCH] This routine was "use"ing File::Basename. This commit removes that "use" and replaces it with equivalent inline code. The reason is that Perl has some very nasty circular dependancies, and I am trying to get the System Perl upgraded by one maintenance level. The basic rule, until I can find a way to solve this, is that the build tools MAY NOT use any library code; it must all be inline. --- sys/kern/makedevops.pl | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/sys/kern/makedevops.pl b/sys/kern/makedevops.pl index ce428e5e372..8b991b7984b 100644 --- a/sys/kern/makedevops.pl +++ b/sys/kern/makedevops.pl @@ -34,6 +34,8 @@ # From @(#)vnode_if.sh 8.1 (Berkeley) 6/10/93 # From @(#)makedevops.sh 1.1 1998/06/14 13:53:12 dfr Exp $ # From @(#)makedevops.sh ?.? 1998/10/05 +# +# $Id$ # # Script to produce device front-end sugar. @@ -47,8 +49,6 @@ $keepcurrentdir = 1; $line_width = 80; -use File::Basename; - # Process the command line # while ( $arg = shift @ARGV ) { @@ -395,3 +395,31 @@ sub format_line { return $rline . $line; } + +# This routine is a crude replacement for one in File::Basename. We +# cannot use any library code because it fouls up the Perl bootstrap +# when we update a perl version. MarkM + +sub fileparse { + my ($filename, @suffix) = @_; + my ($dir, $name, $type, $i); + + $type = ''; + foreach $i (@suffix) { + if ($filename =~ m|$i$|) { + $filename =~ s|$i$||; + $type = $i; + } + } + if ($filename =~ m|/|) { + $filename =~ m|([^/]*)$|; + $name = $1; + $dir = $filename; + $dir =~ s|$name$||; + } + else { + $dir = ''; + $name = $filename; + } + ($name, $dir, $type); +}