Przeglądaj źródła

Implementing fallbacks when special dirs don't behave as expected #44

This solves https://todo.sr.ht/~martijnbraam/Megapixels/44 , seems need
in sxmo (at least for me).
Maarten van Gompel 4 lat temu
rodzic
commit
ea20aa26fb
1 zmienionych plików z 17 dodań i 4 usunięć
  1. 17 4
      process_pipeline.c

+ 17 - 4
process_pipeline.c

@@ -357,10 +357,23 @@ process_capture_burst(cairo_surface_t *thumb)
 	char timestamp[30];
 	strftime(timestamp, 30, "%Y%m%d%H%M%S", &tim);
 
-	sprintf(capture_fname,
-		"%s/IMG%s",
-		g_get_user_special_dir(G_USER_DIRECTORY_PICTURES),
-		timestamp);
+	if (g_get_user_special_dir(G_USER_DIRECTORY_PICTURES) != NULL) {
+		sprintf(capture_fname,
+			"%s/IMG%s",
+			g_get_user_special_dir(G_USER_DIRECTORY_PICTURES),
+			timestamp);
+	} else if (getenv("XDG_PICTURES_DIR") != NULL) {
+		sprintf(capture_fname,
+			"%s/IMG%s",
+			getenv("XDG_PICTURES_DIR"),
+			timestamp);
+	} else {
+		sprintf(capture_fname,
+			"%s/Pictures/IMG%s",
+			getenv("HOME"),
+			timestamp);
+	}
+
 
 	// Start post-processing the captured burst
 	g_print("Post process %s to %s.ext\n", burst_dir, capture_fname);