/* Various processing of names.
Copyright (C) 1988, 1992, 1994, 1996, 1997, 1998, 1999, 2000, 2001,
- 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+ 2003, 2004, 2005, 2006, 2007 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 the
- Free Software Foundation; either version 2, or (at your option) any later
+ Free Software Foundation; either version 3, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but
static storage and can't be relied upon across two calls.
If CHANGE_DIRS is true, treat any entries of type NELT_CHDIR as
- the request to change to the given directory. If filename_terminator
- is NUL, CHANGE_DIRS is effectively always false.
-
+ the request to change to the given directory.
+
Entries of type NELT_FMASK cause updates of the matching_flags
value. */
struct name_elt *
const char *source;
char *cursor;
- if (filename_terminator == '\0')
- change_dirs = 0;
-
while (name_index != names)
{
struct name_elt *ep;
if (allocated_size == 0)
{
allocated_size = offsetof (struct name, name) + NAME_FIELD_SIZE + 1;
- buffer = xmalloc (allocated_size);
- /* FIXME: This memset is overkill, and ugly... */
- memset (buffer, 0, allocated_size);
+ buffer = xzalloc (allocated_size);
}
while ((ep = name_next_elt (0)) && ep->type == NELT_CHDIR)
len = strlen (p->file_name);
for (cursor = namelist; cursor; cursor = cursor->next)
{
- if (cursor->matching_flags /* FIXME: check this */
- || (!WASFOUND (cursor) && cursor->name[0])
+ if ((cursor->name[0] && !WASFOUND (cursor))
|| (len >= cursor->length && ISSLASH (p->file_name[cursor->length])))
return false;
}
add_hierarchy_to_namelist (struct name *name, dev_t device)
{
char *file_name = name->name;
- char *buffer = get_directory_contents (file_name, device);
+ const char *buffer = get_directory_contents (file_name, device);
if (! buffer)
name->dir_contents = "\0\0\0\0";
: NAME_FIELD_SIZE);
char *namebuf = xmalloc (allocated_length + 1);
/* FIXME: + 2 above? */
- char *string;
+ const char *string;
size_t string_length;
int change_dir = name->change_dir;
if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2]))
return 1;
- do
+ while (! ISSLASH (*p))
{
if (! *p++)
return 0;
}
- while (! ISSLASH (*p));
}
}