aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/calcurse.h1
-rw-r--r--src/io.c6
-rw-r--r--src/utils.c15
3 files changed, 20 insertions, 2 deletions
diff --git a/src/calcurse.h b/src/calcurse.h
index 1443964..b94da61 100644
--- a/src/calcurse.h
+++ b/src/calcurse.h
@@ -875,6 +875,7 @@ long now (void);
char *nowstr (void);
long mystrtol (const char *);
void print_bool_option_incolor (WINDOW *, unsigned, int, int);
+const char *get_tempdir (void);
char *new_tempfile (const char *, int);
void erase_note (char **, enum eraseflg);
int parse_date (char *, enum datefmt, int *, int *, int *,
diff --git a/src/io.c b/src/io.c
index 2588a29..09c2934 100644
--- a/src/io.c
+++ b/src/io.c
@@ -220,7 +220,8 @@ get_export_stream (enum export_type type)
(void)snprintf (stream_name, BUFSIZ, "%s/calcurse.%s", home,
file_ext[type]);
else
- (void)snprintf (stream_name, BUFSIZ, "/tmp/calcurse.%s", file_ext[type]);
+ (void)snprintf (stream_name, BUFSIZ, "%s/calcurse.%s", get_tempdir (),
+ file_ext[type]);
while (stream == NULL)
{
@@ -2854,10 +2855,11 @@ io_import_data (enum import_type type, struct conf *conf, char *stream_name)
struct io_file *
io_log_init (void)
{
- const char *logprefix = "/tmp/calcurse_log.";
+ char logprefix[BUFSIZ];
char *logname;
struct io_file *log;
+ snprintf (logprefix, BUFSIZ, "%s/calcurse_log.", get_tempdir ());
logname = new_tempfile (logprefix, NOTESIZ);
RETVAL_IF (logname == NULL, 0,
_("Warning: could not create temporary log file, Aborting..."));
diff --git a/src/utils.c b/src/utils.c
index a39b7df..949b1b7 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -545,6 +545,21 @@ print_bool_option_incolor (WINDOW *win, unsigned option, int pos_y, int pos_x)
wins_doupdate ();
}
+
+/*
+ * Get the name of the default directory for temporary files.
+ */
+const char *
+get_tempdir (void)
+{
+ if (getenv ("TMPDIR"))
+ return getenv ("TMPDIR");
+ else if (P_tmpdir)
+ return P_tmpdir;
+ else
+ return "/tmp";
+}
+
/*
* Create a new unique file, and return a newly allocated string which contains
* the random part of the file name.