mirror of
https://github.com/netbirdio/systray.git
synced 2026-05-22 17:08:41 -07:00
linux: use TMPDIR to store icons if defined
TMPDIR is the canonical environment variable in Unix and POSIX that should be used to specify a temporary directory: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03 Let's use it if is defined to store temporary icon files and default to '/tmp' if is not defined.
This commit is contained in:
+9
-2
@@ -48,9 +48,16 @@ void _unlink_temp_file() {
|
||||
|
||||
// runs in main thread, should always return FALSE to prevent gtk to execute it again
|
||||
gboolean do_set_icon(gpointer data) {
|
||||
GBytes* bytes = (GBytes*)data;
|
||||
_unlink_temp_file();
|
||||
strcpy(temp_file_name, "/tmp/systray_XXXXXX");
|
||||
char *tmpdir = getenv("TMPDIR");
|
||||
if (NULL == tmpdir) {
|
||||
tmpdir = "/tmp";
|
||||
}
|
||||
strncpy(temp_file_name, tmpdir, PATH_MAX-1);
|
||||
strncat(temp_file_name, "/systray_XXXXXX", PATH_MAX-1);
|
||||
temp_file_name[PATH_MAX-1] = '\0';
|
||||
|
||||
GBytes* bytes = (GBytes*)data;
|
||||
int fd = mkstemp(temp_file_name);
|
||||
if (fd == -1) {
|
||||
printf("failed to create temp icon file %s: %s\n", temp_file_name, strerror(errno));
|
||||
|
||||
Reference in New Issue
Block a user