/****************************************************************************
- * Copyright (c) 2006-2010,2011 Free Software Foundation, Inc. *
+ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <hashed_db.h>
#endif
-MODULE_ID("$Id: db_iterator.c,v 1.22 2011/11/27 01:32:34 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.28 2012/01/21 23:56:17 tom Exp $")
#define HaveTicDirectory _nc_globals.have_tic_directory
#define KeepTicDirectory _nc_globals.keep_tic_directory
if (*text != '\0') {
char *last = my_blob + strlen(my_blob);
if (last != my_blob)
- *last++ = ':';
+ *last++ = NCURSES_PATHSEP;
strcpy(last, text);
}
}
{
bool result = FALSE;
- if (stat(name, sb) == 0 && sb->st_size) {
+ if (stat(name, sb) == 0
+ && (S_ISDIR(sb->st_mode) || S_ISREG(sb->st_mode))) {
result = TRUE;
}
#if USE_HASHED_DB
else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) {
char temp[PATH_MAX];
sprintf(temp, "%s%s", name, DBM_SUFFIX);
- if (stat(temp, sb) == 0 && sb->st_size) {
+ if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode)) {
result = TRUE;
}
}
#endif
-
return result;
}
result = TRUE;
} else {
DBDIRS n;
- for (n = 0; n < dbdLAST; ++n) {
+ for (n = (DBDIRS) 0; n < dbdLAST; ++n) {
if (my_vars[n].name != 0
&& update_getenv(my_vars[n].name, n)) {
result = TRUE;
values[dbdHome] = _nc_home_terminfo();
(void) cache_getenv("HOME", dbdHome);
values[dbdEnvList] = cache_getenv("TERMINFO_DIRS", dbdEnvList);
+
#endif
#if USE_TERMCAP
values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2);
*/
blobsize = 2;
for (j = 0; my_blob[j] != '\0'; ++j) {
- if (my_blob[j] == ':')
+ if (my_blob[j] == NCURSES_PATHSEP)
++blobsize;
}
my_list = typeCalloc(char *, blobsize);
k = 0;
my_list[k++] = my_blob;
for (j = 0; my_blob[j] != '\0'; ++j) {
- if (my_blob[j] == ':') {
+ if (my_blob[j] == NCURSES_PATHSEP) {
my_blob[j] = '\0';
my_list[k++] = &my_blob[j + 1];
}
for (j = 0; my_list[j] != 0; ++j) {
#ifdef TERMINFO
if (*my_list[j] == '\0')
- my_list[j] = TERMINFO;
+ my_list[j] = strdup(TERMINFO);
#endif
for (k = 0; k < j; ++k) {
if (!strcmp(my_list[j], my_list[k])) {