43 lines
		
	
	
		
			953 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			953 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* dirname - extract the directory name from a path	Author: Peter Holzer */
 | 
						|
 | 
						|
/* Dirname -- extract directory part from a path name
 | 
						|
 *
 | 
						|
 * Peter Holzer (hp@vmars.tuwien.ac.at)
 | 
						|
 *
 | 
						|
 * $Log$
 | 
						|
 * Revision 1.1  2005/04/21 14:55:21  beng
 | 
						|
 * Initial revision
 | 
						|
 *
 | 
						|
 * Revision 1.1.1.1  2005/04/20 13:33:30  beng
 | 
						|
 * Initial import of minix 2.0.4
 | 
						|
 *
 | 
						|
 * Revision 1.1  1994/02/12  16:15:02  hjp
 | 
						|
 * Initial revision
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#include <string.h>
 | 
						|
#include <stdio.h>
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
  char *p;
 | 
						|
  char *path;
 | 
						|
 | 
						|
  if (argc != 2) {
 | 
						|
	fprintf(stderr, "Usage: %s path\n", argv[0]);
 | 
						|
	return(1);
 | 
						|
  }
 | 
						|
  path = argv[1];
 | 
						|
  p = path + strlen(path);
 | 
						|
  while (p > path && p[-1] == '/') p--;	/* trailing slashes */
 | 
						|
  while (p > path && p[-1] != '/') p--;	/* last component */
 | 
						|
  while (p > path && p[-1] == '/') p--;	/* trailing slashes */
 | 
						|
  if (p == path) {
 | 
						|
	printf(path[0] == '/' ? "/\n" : ".\n");
 | 
						|
  } else {
 | 
						|
	printf("%.*s\n", (int) (p - path), path);
 | 
						|
  }
 | 
						|
  return(0);
 | 
						|
}
 |