From 3a5a346cb543c4494274273b8f0a7f417db2d582 Mon Sep 17 00:00:00 2001 From: Zygo Blaxell Date: Sat, 10 Sep 2022 21:34:28 -0400 Subject: [PATCH] From https://www.jwz.org/xscreensaver/xscreensaver-6.05.1.tar.gz -rw-rw-r-- 1 zblaxell zblaxell 26110057 Sep 10 14:31 xscreensaver-6.05.1.tar.gz 1eb3ba5bd21494a8e64d5098702936c3c75499e2 xscreensaver-6.05.1.tar.gz --- OSX/XScreenSaverConfigSheet.m | 6 +++++- hacks/xscreensaver-getimage.c | 14 ++++++++++++++ utils/grabclient.c | 1 + utils/version.h | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/OSX/XScreenSaverConfigSheet.m b/OSX/XScreenSaverConfigSheet.m index f3ee1994..fceae573 100644 --- a/OSX/XScreenSaverConfigSheet.m +++ b/OSX/XScreenSaverConfigSheet.m @@ -699,7 +699,11 @@ static void layout_group (NSView *group, BOOL horiz_p); } while (opts_array[0].option) { - if (!strcmp (opts_array[0].option, buf)) { + const char *s1 = opts_array[0].option; + const char *s2 = buf; + if (s1[0] == '-' && s1[1] == '-') s1++; /* -x and --x are the same */ + if (s2[0] == '-' && s2[1] == '-') s2++; + if (!strcmp (s1, s2)) { const char *ret = 0; if (opts_array[0].argKind == XrmoptionNoArg) { diff --git a/hacks/xscreensaver-getimage.c b/hacks/xscreensaver-getimage.c index 333890a8..04b7b58b 100644 --- a/hacks/xscreensaver-getimage.c +++ b/hacks/xscreensaver-getimage.c @@ -2030,6 +2030,20 @@ main (int argc, char **argv) random_image_p = get_boolean_resource(dpy, "chooseRandomImages", "Boolean"); image_directory = get_string_resource (dpy, "imageDirectory", "String"); + if (!strncmp (image_directory, "~/", 2)) + { + const char *home = getenv("HOME"); + if (home && *home) + { + char *s2 = (char *) + malloc (strlen(image_directory) + strlen(home) + 10); + strcpy (s2, home); + strcat (s2, image_directory + 1); + free (image_directory); + image_directory = s2; + } + } + progname = argv[0] = oprogname; for (i = 1; i < argc; i++) diff --git a/utils/grabclient.c b/utils/grabclient.c index 58db732d..b7e50e03 100644 --- a/utils/grabclient.c +++ b/utils/grabclient.c @@ -829,6 +829,7 @@ load_random_image_cocoa (Screen *screen, Window window, Drawable drawable, # ifndef HAVE_IPHONE if (filep) + /* On macOS, get_string_resource() already expanded "~/". */ dir = get_string_resource (dpy, "imageDirectory", "ImageDirectory"); if (!dir || !*dir) diff --git a/utils/version.h b/utils/version.h index f3394c90..2aa5671d 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,4 +1,4 @@ static const char screensaver_id[] = "@(#)xscreensaver 6.05 (09-Sep-2022), by Jamie Zawinski (jwz@jwz.org)"; #define XSCREENSAVER_VERSION "6.05" -#define XSCREENSAVER_RELEASED 1662750000 +#define XSCREENSAVER_RELEASED 1662834403 -- 2.39.5