From bdc04dbf8770e1f45311330822773357857c26ca Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Wed, 20 Dec 2006 17:25:00 +0000 Subject: [PATCH] * Updated setup dialog for host auth mode. * Dropped UI_NEWT mode in setup because we did not have enough control over button defaults, and because newt is not widespread enough to justify maintenance. --- citadel/configure.ac | 17 ----- citadel/setup.c | 177 +++++++------------------------------------ 2 files changed, 26 insertions(+), 168 deletions(-) diff --git a/citadel/configure.ac b/citadel/configure.ac index 9f2ef07f2..61a3cea10 100644 --- a/citadel/configure.ac +++ b/citadel/configure.ac @@ -113,7 +113,6 @@ AC_ARG_WITH(with_zlib, [ --with-zlib use zlib compression if presen AC_ARG_WITH(with_ldap, [ --with-ldap use OpenLDAP client library]) AC_ARG_WITH(with_libical, [ --with-libical use libical calendaring library]) AC_ARG_WITH(with_libsieve, [ --with-libsieve use libsieve mail sorting library]) -AC_ARG_WITH(with_newt, [ --with-newt use newt window library]) if test "x$with_db" != xno -a "x$with_db" != xyes -a "$with_db"; then db_dir="$with_db" @@ -487,22 +486,6 @@ fi -dnl Checks for the newt window library. -if test "x$with_newt" != xno ; then - AC_CHECK_HEADERS(newt.h, - [AC_CHECK_LIB(newt, newtInit, - [ok_newt=yes],, - )]) -fi - -if test "x$ok_newt" = xyes ; then - SETUP_LIBS="-lnewt $SETUP_LIBS" - AC_DEFINE(HAVE_NEWT) -fi - - - - dnl Checks for the libsieve mailbox sorting library. if test "x$with_libsieve" != xno ; then diff --git a/citadel/setup.c b/citadel/setup.c index 6e3640f69..b1c6487db 100644 --- a/citadel/setup.c +++ b/citadel/setup.c @@ -29,17 +29,11 @@ #include "tools.h" #include "citadel_dirs.h" -#ifdef HAVE_NEWT -#include -#endif - - #define MAXSETUP 5 /* How many setup questions to ask */ #define UI_TEXT 0 /* Default setup type -- text only */ #define UI_DIALOG 2 /* Use the 'dialog' program */ #define UI_SILENT 3 /* Silent running, for use in scripts */ -#define UI_NEWT 4 /* Use the "newt" window library */ #define SERVICE_NAME "citadel" #define PROTO_NAME "tcp" @@ -104,14 +98,15 @@ char *setup_text[] = { "of Citadel on the same computer and there is something else\n" "already using port 504.\n", -"Normally, a Citadel system uses a 'black box' authentication mode.\n" +"Normally, a Citadel system uses a \"black box\" authentication mode.\n" "This means that users do not have accounts or home directories on\n" "the underlying host system -- Citadel manages its own user database.\n" "However, if you wish to override this behavior, you can enable the\n" "host based authentication mode which is traditional for Unix systems.\n" -"Do you want to do this? Enter 0 for black box authentication mode,\n" -"or 1 for host authentication mode. FIXME this is badly worded,\n" -"rewrite it and offer a better dialog mode.\n" +"WARNING: do *not* change this setting once your system is installed.\n" +"\n" +"(Answer \"no\" unless you completely understand this option)\n" +"Do you want to enable host based authentication mode?\n" }; @@ -121,11 +116,6 @@ int direction; void cleanup(int exitcode) { -#ifdef HAVE_NEWT - newtCls(); - newtRefresh(); - newtFinished(); -#endif exit(exitcode); } @@ -140,14 +130,8 @@ void title(char *text) -int yesno(char *question) +int yesno(char *question, int default_value) { -#ifdef HAVE_NEWT - newtComponent form = NULL; - newtComponent yesbutton = NULL; - newtComponent nobutton = NULL; - int prompt_window_height = 0; -#endif int i = 0; int answer = 0; char buf[SIZ]; @@ -156,10 +140,15 @@ int yesno(char *question) case UI_TEXT: do { - printf("%s\nYes/No --> ", question); + printf("%s\nYes/No [%s] --> ", + question, + ( default_value ? "Yes" : "No" ) + ); fgets(buf, sizeof buf, stdin); answer = tolower(buf[0]); - if (answer == 'y') + if ((buf[0]==0) || (buf[0]==13) || (buf[0]==10)) + answer = default_value; + else if (answer == 'y') answer = 1; else if (answer == 'n') answer = 0; @@ -167,8 +156,9 @@ int yesno(char *question) break; case UI_DIALOG: - sprintf(buf, "exec %s --yesno '%s' 10 72", + sprintf(buf, "exec %s %s --yesno '%s' 15 75", getenv("CTDL_DIALOG"), + ( default_value ? "" : "--defaultno" ), question); i = system(buf); if (i == 0) { @@ -179,31 +169,6 @@ int yesno(char *question) } break; -#ifdef HAVE_NEWT - case UI_NEWT: - prompt_window_height = num_tokens(question, '\n') + 5; - newtCenteredWindow(76, prompt_window_height, "Question"); - form = newtForm(NULL, NULL, 0); - for (i=0; i 0) && (curr <= cmax)) { - newtScaleSet(scale, curr); - newtRefresh(); - } - if (curr == cmax) { - newtFormDestroy(form); - newtPopWindow(); - newtRefresh(); - } - break; -#endif - } } @@ -468,7 +381,7 @@ void install_init_scripts(void) { FILE *fp; - if (yesno("Would you like to automatically start Citadel at boot?\n") == 0) { + if (yesno("Would you like to automatically start Citadel at boot?\n", 1) == 0) { return; } @@ -560,7 +473,7 @@ void check_xinetd_entry(void) { "connect incoming telnet sessions to Citadel, bypassing the\n" "host system login: prompt. Would you like to do this?\n" ); - if (yesno(buf) == 0) { + if (yesno(buf, 1) == 0) { return; } } @@ -632,7 +545,7 @@ void disable_other_mta(char *mta) { "25, 110, and 143?\n", mta, mta, mta, mta ); - if (yesno(buf) == 0) { + if (yesno(buf, 1) == 0) { return; } } @@ -691,12 +604,6 @@ int test_server(void) { void strprompt(char *prompt_title, char *prompt_text, char *str) { -#ifdef HAVE_NEWT - newtComponent form; - char *result; - int i; - int prompt_window_height = 0; -#endif char buf[SIZ]; char setupmsg[SIZ]; char dialog_result[PATH_MAX]; @@ -735,42 +642,18 @@ void strprompt(char *prompt_title, char *prompt_text, char *str) } break; -#ifdef HAVE_NEWT - case UI_NEWT: - - prompt_window_height = num_tokens(prompt_text, '\n') + 5 ; - newtCenteredWindow(76, - prompt_window_height, - prompt_title); - form = newtForm(NULL, NULL, 0); - for (i=0; i