(***********************************************************************

Name:           BaseName.Pas
Version:        1.0

    This software has been placed into the public domain by Digital
                        Equipment Corporation.


DISCLAIMER:

The information herein is subject to change without  notice  and  should
not be construed as a commitment by Digital Equipment Corporation.

Digital Equipment Corporation assumes no responsibility for the  use  or
reliability  of  this  software.   This  software  is  provided "as is,"
without any warranty of any kind, express or implied.  Digital Equipment
Corporation  will  not  be liable in any event for any damages including
any loss of data, profit, or savings, claims against  the  user  by  any
other  party,  or  any other incidental or consequential damages arising
out of the use of, or inability to use, this software, even  if  Digital
Equipment Corporation is advised of the possibility of such damage.

DEFECT REPORTING AND SUGGESTIONS:

Please send reports of defects or suggestions for  improvement  directly
to the author:

       Brian Hetrick
       Digital Equipment Corporation
       110 Spit Brook Road  ZKO1-3/J10
       Nashua NH  03062-2698

Do NOT file a Software Performance Report on  this  software,  call  the
Telephone  Support  Center regarding this software, contact your Digital
Field Office  regarding  this  software,  or  use  any  other  mechanism
provided for Digital's supported and warranted software.


FACILITY:

   TURBO Pascal MS-DOS support routines

ABSTRACT:

   Obtains the last component of a path specification

ENVIRONMENT:

   MS-DOS V2.0 or later, compiled with  Borland  International's  TURBO
   Pascal V3.0 or later.

AUTHOR: Brian Hetrick, CREATION DATE: 2 December 1986.

MODIFIED BY:

       Brian Hetrick, 02-Dec-86: Version 1.0
 000 - Original creation of module.

***********************************************************************)
{.PA}
(*
*  INCLUDE FILES:
*)

(*
*  LABEL DECLARATIONS:
*)

(*
*  CONSTANT DECLARATIONS:
*)

(*
*  TYPE DECLARATIONS:
*)

TYPE

   BaseNamePath = STRING [255];

(*
*  OWN STORAGE:
*)

(*
*  TABLE OF CONTENTS:
*)
{.PA}
FUNCTION BaseName
  (    PathSpec : BaseNamePath) : BaseNamePath;

(***********************************************************************

FUNCTIONAL DESCRIPTION:

   Extracts the last component of a path specification.  The components
   of a path specification are separated by colons  (:),  slashes  (/),
   and back slashes (\).

FORMAL PARAMETERS:

   Path.mt.r - The path specification from which the base name is to be
       extracted.

RETURN VALUE:

   The base name of the path specification.

IMPLICIT INPUTS:

   None.

IMPLICIT OUTPUTS:

   None.

SIDE EFFECTS:

   None.

***********************************************************************)

   VAR

       HoldIndex : INTEGER;
       ScanIndex : INTEGER;
       ThisChar  : CHAR;

   BEGIN

   HoldIndex := 1;

   FOR ScanIndex := 1 TO Length (PathSpec)
   DO
       BEGIN

       ThisChar := PathSpec [ScanIndex];

       IF (ThisChar = ':') OR
          (ThisChar = '/') OR
          (ThisChar = '\')
       THEN

           HoldIndex := ScanIndex + 1

       END;

   BaseName := Copy (PathSpec, HoldIndex,
       Length (PathSpec) - HoldIndex + 1)

   END;