]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - progs/tic.c
ncurses 5.9 - patch 20130720
[ncurses.git] / progs / tic.c
index 717a1fb35126bbb79b2544b03907c2c810d0d933..4d265eb1fed5a1ee55ce48ab6ba3338c232c30a8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2012,2013 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            *
@@ -46,7 +46,7 @@
 #include <hashed_db.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.180 2012/12/08 22:17:22 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.186 2013/06/08 16:50:47 tom Exp $")
 
 #define STDIN_NAME "<stdin>"
 
@@ -396,13 +396,17 @@ open_tempfile(char *filename)
 static FILE *
 copy_input(FILE *source, const char *filename, char *alt_file)
 {
+    char my_altfile[PATH_MAX];
     FILE *result = 0;
-    FILE *target = open_tempfile(alt_file);
+    FILE *target = 0;
     int ch;
 
+    if (alt_file == 0)
+       alt_file = my_altfile;
+
     if (source == 0) {
        failed("copy_input (source)");
-    } else if (target == 0) {
+    } else if ((target = open_tempfile(alt_file)) == 0) {
        failed("copy_input (target)");
     } else {
        clearerr(source);
@@ -428,7 +432,7 @@ copy_input(FILE *source, const char *filename, char *alt_file)
         */
        result = fopen(alt_file, "r+");
        fclose(target);
-       to_remove = alt_file;
+       to_remove = strdup(alt_file);
     }
     return result;
 }
@@ -552,7 +556,7 @@ matches(char **needle, const char *haystack)
     return (code);
 }
 
-static const char *
+static char *
 valid_db_path(const char *nominal)
 {
     struct stat sb;
@@ -623,7 +627,7 @@ static void
 show_databases(const char *outdir)
 {
     bool specific = (outdir != 0) || getenv("TERMINFO") != 0;
-    const char *result;
+    char *result;
     const char *tried = 0;
 
     if (outdir == 0) {
@@ -631,6 +635,7 @@ show_databases(const char *outdir)
     }
     if ((result = valid_db_path(outdir)) != 0) {
        printf("%s\n", result);
+       free(result);
     } else {
        tried = outdir;
     }
@@ -638,6 +643,7 @@ show_databases(const char *outdir)
     if ((outdir = _nc_home_terminfo())) {
        if ((result = valid_db_path(outdir)) != 0) {
            printf("%s\n", result);
+           free(result);
        } else if (!specific) {
            tried = outdir;
        }
@@ -1450,6 +1456,7 @@ uses_SGR_39_49(const char *value)
 static void
 check_screen(TERMTYPE *tp)
 {
+#if NCURSES_XNAMES
     if (_nc_user_definable) {
        int have_XT = tigetflag("XT");
        int have_XM = tigetflag("XM");
@@ -1501,6 +1508,7 @@ check_screen(TERMTYPE *tp)
                _nc_warning("Expected XT to be set, given kmous");
        }
     }
+#endif
 }
 
 /*