/* dirname.c -- return all but the last element in a path
- Copyright (C) 1990, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+ Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
size_t
dir_len (char const *path)
{
- size_t prefix_length = FILESYSTEM_PREFIX_LEN (path);
+ size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (path);
size_t length;
/* Strip the basename and any redundant slashes before it. */
dir_name (char const *path)
{
size_t length = dir_len (path);
- int append_dot = (length == FILESYSTEM_PREFIX_LEN (path));
+ bool append_dot = (length == FILE_SYSTEM_PREFIX_LEN (path));
char *newpath = xmalloc (length + append_dot + 1);
memcpy (newpath, path, length);
if (append_dot)
/* stripslash.c -- remove redundant trailing slashes from a file name
- Copyright (C) 1990, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1990, 2001, 2003, 2004 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "dirname.h"
/* Remove trailing slashes from PATH.
- Return nonzero if a trailing slash was removed.
+ Return true if a trailing slash was removed.
This is useful when using filename completion from a shell that
adds a "/" after directory names (such as tcsh and bash), because
the Unix rename and rmdir system calls return an "Invalid argument" error
when given a path that ends in "/" (except for the root directory). */
-int
+bool
strip_trailing_slashes (char *path)
{
char *base = base_name (path);
char *base_lim = base + base_len (base);
- int had_slash = *base_lim;
+ bool had_slash = (*base_lim != '\0');
*base_lim = '\0';
return had_slash;
}