#include <hashed_db.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.177 2012/06/02 17:19:31 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.182 2012/12/16 00:03:12 tom Exp $")
#define STDIN_NAME "<stdin>"
static void
cleanup(void)
{
+ int rc;
+
#if NO_LEAKS
free_namelist(namelst);
#endif
fclose(tmp_fp);
if (to_remove != 0) {
#if HAVE_REMOVE
- remove(to_remove);
+ rc = remove(to_remove);
#else
- unlink(to_remove);
+ rc = unlink(to_remove);
#endif
+ if (rc != 0)
+ perror(to_remove);
}
}
if (in_name) {
if (used + 1 >= have) {
have += 132;
- namebuf = typeRealloc(char, have, namebuf);
- suffix = typeRealloc(char, have, suffix);
+ if ((namebuf = typeRealloc(char, have, namebuf)) == 0)
+ failed("put_translate namebuf");
+ if ((suffix = typeRealloc(char, have, suffix)) == 0)
+ failed("put_translate suffix");
}
if (c == '\n' || c == '@') {
namebuf[used++] = '\0';
_nc_STRCPY(filename, "/tmp/XXXXXX", PATH_MAX);
#if HAVE_MKSTEMP
{
+ int oldmask = umask(077);
int fd = mkstemp(filename);
if (fd >= 0)
result = fdopen(fd, "w");
+ umask(oldmask);
}
#else
if (tmpnam(filename) != 0)
}
}
if (pass == 1) {
- dst = typeCalloc(char *, nn + 1);
+ if ((dst = typeCalloc(char *, nn + 1)) == 0)
+ failed("make_namelist");
rewind(fp);
}
}
if (mark == '\0')
break;
}
- if (pass == 1)
- dst = typeCalloc(char *, nn + 1);
+ if (pass == 1) {
+ if ((dst = typeCalloc(char *, nn + 1)) == 0)
+ failed("make_namelist");
+ }
}
}
if (showsummary && (dst != 0)) {
return (code);
}
-static const char *
+static char *
valid_db_path(const char *nominal)
{
struct stat sb;
size_t need = strlen(nominal) + sizeof(suffix);
char *result = malloc(need);
+ if (result == 0)
+ failed("valid_db_path");
_nc_STRCPY(result, nominal, need);
if (strcmp(result + need - sizeof(suffix), suffix)) {
_nc_STRCAT(result, suffix, need);
show_databases(const char *outdir)
{
bool specific = (outdir != 0) || getenv("TERMINFO") != 0;
- const char *result;
+ char *result;
const char *tried = 0;
if (outdir == 0) {
}
if ((result = valid_db_path(outdir)) != 0) {
printf("%s\n", result);
+ free(result);
} else {
tried = outdir;
}
if ((outdir = _nc_home_terminfo())) {
if ((result = valid_db_path(outdir)) != 0) {
printf("%s\n", result);
+ free(result);
} else if (!specific) {
tried = outdir;
}
int used = 0;
int j;
+ if (result == 0)
+ failed("get_fkey_list");
+
for (j = 0; all_fkeys[j].code; j++) {
char *a = tp->Strings[all_fkeys[j].offset];
if (VALID_STRING(a)) {
char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char));
NAME_VALUE *given = get_fkey_list(tp);
+ if (check == 0)
+ failed("check_termtype");
+
for (j = 0; given[j].keycode; ++j) {
const char *a = given[j].value;
bool first = TRUE;