/* 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); }