diff options
author | jkh <jkh@FreeBSD.org> | 1999-05-12 09:22:47 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1999-05-12 09:22:47 +0000 |
commit | ce6e6ffd26715c99d8a770afd5c77f219487c4f9 (patch) | |
tree | f70fa674fb26cdacac9c68f884c75218517546a5 | |
parent | b76d716b0e46a03bde2cb1977af5a3a20799b1ef (diff) | |
download | FreeBSD-src-ce6e6ffd26715c99d8a770afd5c77f219487c4f9.zip FreeBSD-src-ce6e6ffd26715c99d8a770afd5c77f219487c4f9.tar.gz |
Add some extra checks to make *sure* we got what we were told we got.
-rw-r--r-- | release/sysinstall/config.c | 26 | ||||
-rw-r--r-- | usr.sbin/sade/config.c | 26 | ||||
-rw-r--r-- | usr.sbin/sysinstall/config.c | 26 |
3 files changed, 57 insertions, 21 deletions
diff --git a/release/sysinstall/config.c b/release/sysinstall/config.c index 5262cc1..400390a 100644 --- a/release/sysinstall/config.c +++ b/release/sysinstall/config.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: config.c,v 1.130 1999/05/12 04:52:40 jkh Exp $ + * $Id: config.c,v 1.131 1999/05/12 09:02:32 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -472,6 +472,18 @@ write_root_xprofile(char *str) } } +static int +gotit(char *fname) +{ + char tmp[FILENAME_MAX]; + + snprintf(tmp, sizeof tmp, "/usr/X11R6/bin/%s", fname); + if (file_executable(tmp)) + return TRUE; + snprintf(tmp, sizeof tmp, "/usr/local/bin/%s", fname); + return file_executable(tmp); +} + int configXDesktop(dialogMenuItem *self) { @@ -483,32 +495,32 @@ configXDesktop(dialogMenuItem *self) return DITEM_FAILURE; if (!strcmp(desk, "kde")) { ret = package_add("kde"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("startkde")) write_root_xprofile("exec startkde\n"); } else if (!strcmp(desk, "gnome")) { ret = package_add("gnomecore"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("gnome-session")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("gnome-session &\nexec afterstep"); } } else if (!strcmp(desk, "afterstep")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("xterm &\nexec afterstep\n"); } else if (!strcmp(desk, "windowmaker")) { ret = package_add("windowmaker"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("wmaker.inst")) { vsystem("/usr/X11R6/bin/wmaker.inst"); write_root_xprofile("xterm &\nexec wmaker\n"); } } else if (!strcmp(desk, "enlightenment")) { ret = package_add("enlightenment"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("enlightenment")) write_root_xprofile("xterm &\nexec enlightenment\n"); } if (DITEM_STATUS(ret) == DITEM_FAILURE) diff --git a/usr.sbin/sade/config.c b/usr.sbin/sade/config.c index 5262cc1..400390a 100644 --- a/usr.sbin/sade/config.c +++ b/usr.sbin/sade/config.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: config.c,v 1.130 1999/05/12 04:52:40 jkh Exp $ + * $Id: config.c,v 1.131 1999/05/12 09:02:32 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -472,6 +472,18 @@ write_root_xprofile(char *str) } } +static int +gotit(char *fname) +{ + char tmp[FILENAME_MAX]; + + snprintf(tmp, sizeof tmp, "/usr/X11R6/bin/%s", fname); + if (file_executable(tmp)) + return TRUE; + snprintf(tmp, sizeof tmp, "/usr/local/bin/%s", fname); + return file_executable(tmp); +} + int configXDesktop(dialogMenuItem *self) { @@ -483,32 +495,32 @@ configXDesktop(dialogMenuItem *self) return DITEM_FAILURE; if (!strcmp(desk, "kde")) { ret = package_add("kde"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("startkde")) write_root_xprofile("exec startkde\n"); } else if (!strcmp(desk, "gnome")) { ret = package_add("gnomecore"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("gnome-session")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("gnome-session &\nexec afterstep"); } } else if (!strcmp(desk, "afterstep")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("xterm &\nexec afterstep\n"); } else if (!strcmp(desk, "windowmaker")) { ret = package_add("windowmaker"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("wmaker.inst")) { vsystem("/usr/X11R6/bin/wmaker.inst"); write_root_xprofile("xterm &\nexec wmaker\n"); } } else if (!strcmp(desk, "enlightenment")) { ret = package_add("enlightenment"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("enlightenment")) write_root_xprofile("xterm &\nexec enlightenment\n"); } if (DITEM_STATUS(ret) == DITEM_FAILURE) diff --git a/usr.sbin/sysinstall/config.c b/usr.sbin/sysinstall/config.c index 5262cc1..400390a 100644 --- a/usr.sbin/sysinstall/config.c +++ b/usr.sbin/sysinstall/config.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: config.c,v 1.130 1999/05/12 04:52:40 jkh Exp $ + * $Id: config.c,v 1.131 1999/05/12 09:02:32 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -472,6 +472,18 @@ write_root_xprofile(char *str) } } +static int +gotit(char *fname) +{ + char tmp[FILENAME_MAX]; + + snprintf(tmp, sizeof tmp, "/usr/X11R6/bin/%s", fname); + if (file_executable(tmp)) + return TRUE; + snprintf(tmp, sizeof tmp, "/usr/local/bin/%s", fname); + return file_executable(tmp); +} + int configXDesktop(dialogMenuItem *self) { @@ -483,32 +495,32 @@ configXDesktop(dialogMenuItem *self) return DITEM_FAILURE; if (!strcmp(desk, "kde")) { ret = package_add("kde"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("startkde")) write_root_xprofile("exec startkde\n"); } else if (!strcmp(desk, "gnome")) { ret = package_add("gnomecore"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("gnome-session")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("gnome-session &\nexec afterstep"); } } else if (!strcmp(desk, "afterstep")) { ret = package_add("afterstep"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("afterstep")) write_root_xprofile("xterm &\nexec afterstep\n"); } else if (!strcmp(desk, "windowmaker")) { ret = package_add("windowmaker"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) { + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("wmaker.inst")) { vsystem("/usr/X11R6/bin/wmaker.inst"); write_root_xprofile("xterm &\nexec wmaker\n"); } } else if (!strcmp(desk, "enlightenment")) { ret = package_add("enlightenment"); - if (DITEM_STATUS(ret) != DITEM_FAILURE) + if (DITEM_STATUS(ret) != DITEM_FAILURE && gotit("enlightenment")) write_root_xprofile("xterm &\nexec enlightenment\n"); } if (DITEM_STATUS(ret) == DITEM_FAILURE) |