home *** CD-ROM | disk | FTP | other *** search
- /* RCS -- $Header: /u2/dvadura/src/generic/dmake/src/RCS/basename.c,v 1.1 91/05/06 15:23:04 dvadura Exp $
- -- SYNOPSIS -- return pointer to last pathname component
- --
- -- DESCRIPTION
- -- take a file name like /fred/foo/hoe/mary.k, and return the 'mary.k'
- -- portion
- --
- -- AUTHOR
- -- Dennis Vadura, dvadura@watdragon.uwaterloo.ca
- -- CS DEPT, University of Waterloo, Waterloo, Ont., Canada
- --
- -- COPYRIGHT
- -- Copyright (c) 1990 by Dennis Vadura. All rights reserved.
- --
- -- This program is free software; you can redistribute it and/or
- -- modify it under the terms of the GNU General Public License
- -- (version 1), as published by the Free Software Foundation, and
- -- found in the file 'LICENSE' included with this distribution.
- --
- -- This program is distributed in the hope that it will be useful,
- -- but WITHOUT ANY WARRANTY; without even the implied warrant 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.
- --
- -- LOG
- -- $Log: basename.c,v $
- * Revision 1.1 91/05/06 15:23:04 dvadura
- * dmake Release Version 3.7
- *
- */
-
- #include "extern.h"
-
- PUBLIC char*
- basename( path )
- char *path;
- {
- char *p;
- char *q;
-
- if( *(q = path) ) {
- for(; *(p=_strpbrk(q, DirBrkStr)) != '\0'; q = p+1 );
- if( !*q ) {
- for( p=q-1; p != path; --p )
- if( strchr( DirBrkStr, *p ) == NIL(char) ) return( p+1 );
- return( strchr(DirBrkStr, *p)?path:(p+1) );
- }
- path = q;
- }
- return( path );
- }
-