41 lines
883 B
C
41 lines
883 B
C
/* Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
|
|
/* Copyright (c) 1988 AT&T */
|
|
/* All Rights Reserved */
|
|
|
|
/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
|
|
/* UNIX System Laboratories, Inc. */
|
|
/* The copyright notice above does not evidence any */
|
|
/* actual or intended publication of such source code. */
|
|
|
|
#ident "@(#)sccs:lib/mpwlib/dname.c 6.5"
|
|
# include "sys/types.h"
|
|
# include "macros.h"
|
|
|
|
/*
|
|
Returns directory name containing a file
|
|
(by modifying its argument).
|
|
Returns "." if current
|
|
directory; handles root correctly.
|
|
Returns its argument.
|
|
Bugs: doesn't handle null strings correctly.
|
|
*/
|
|
|
|
char *dname(p)
|
|
char *p;
|
|
{
|
|
register char *c;
|
|
register int s;
|
|
unsigned strlen();
|
|
|
|
s = size(p);
|
|
for(c = p+s-2; c > p; c--)
|
|
if(*c == '/') {
|
|
*c = '\0';
|
|
return(p);
|
|
}
|
|
if (p[0] != '/')
|
|
p[0] = '.';
|
|
p[1] = 0;
|
|
return(p);
|
|
}
|