AC_ARG_WITH(CC, [ --with-CC C compiler to use],
[case $with_CC in
- yes) echo "Must give --with-CC an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-CC an argument."])
;;
- no) echo "Illegal argument: --without-CC."
- exit 1
+ no) AC_MSG_ERROR(["illegal argument: --without-CC."])
;;
*) CC=$with_CC
;;
AC_ARG_WITH(incpath, [ --with-incpath additional places to look for include files],
[case $with_incpath in
- yes) echo "Must give --with-incpath an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-incpath an argument."])
;;
- no) echo "Sorry, --without-incpath not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-incpath not supported."])
;;
*) echo "Adding ${with_incpath} to CPPFLAGS"
for i in ${with_incpath}; do
AC_ARG_WITH(libpath, [ --with-libpath additional places to look for libraries],
[case $with_libpath in
- yes) echo "Must give --with-libpath an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-libpath an argument."])
;;
- no) echo "Sorry, --without-libpath not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-libpath not supported."])
;;
*) echo "Adding ${with_libpath} to LDFLAGS"
for i in ${with_libpath}; do
AC_ARG_WITH(libraries, [ --with-libraries additional libraries to link with],
[case $with_libraries in
- yes) echo "Must give --with-libraries an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-libraries an argument."])
;;
- no) echo "Sorry, --without-libraries not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-libraries not supported."])
;;
*) echo "Adding ${with_libraries} to LIBS"
for i in ${with_libraries}; do
AC_MSG_CHECKING(whether to use shadow/passwd file authentication)
AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-passwd does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["Sorry, --with-passwd does not take an argument."])
;;
esac])
AC_ARG_WITH(skey, [ --with-skey enable S/Key support ],
[case $with_skey in
yes) if test -n "$with_opie"; then
- AC_MSG_WARN(cannot use both S/Key and OPIE)
- exit 1
+ AC_MSG_ERROR(["cannot use both S/Key and OPIE"])
fi
AC_DEFINE(HAVE_SKEY)
AC_MSG_CHECKING(whether to try S/Key authentication)
AC_ARG_WITH(opie, [ --with-opie enable OPIE support ],
[case $with_opie in
yes) if test -n "$with_skey"; then
- AC_MSG_WARN(cannot use both S/Key and OPIE)
- exit 1
+ AC_MSG_ERROR(["cannot use both S/Key and OPIE"])
fi
AC_DEFINE(HAVE_OPIE)
AC_MSG_CHECKING(whether to try NRL OPIE authentication)
AC_MSG_RESULT(yes)
;;
no) ;;
- *) echo "Sorry, --with-long-otp-prompt does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-long-otp-prompt does not take an argument."])
;;
esac])
AC_MSG_RESULT(yes)
;;
no) ;;
- *) echo "Sorry, --with-kerb4 does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-kerb4 does not take an argument."])
;;
esac])
AC_MSG_RESULT(yes)
;;
no) ;;
- *) echo "Sorry, --with-kerb5 does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-kerb5 does not take an argument."])
;;
esac])
AUTH_OBJS="aix_auth.o"
;;
no) ;;
- *) echo "Sorry, --with-authenticate does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-authenticate does not take an argument."])
;;
esac])
AUTH_OBJS="pam.o"
;;
no) ;;
- *) echo "Sorry, --with-pam does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-pam does not take an argument."])
;;
esac])
AUTH_OBJS="${AUTH_OBJS} afs.o"
;;
no) ;;
- *) echo "Sorry, --with-AFS does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-AFS does not take an argument."])
;;
esac])
AUTH_OBJS="${AUTH_OBJS} dce.o"
;;
no) ;;
- *) echo "Sorry, --with-DCE does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-DCE does not take an argument."])
;;
esac])
no|none) AC_DEFINE(NO_LECTURE)
AC_MSG_RESULT(no)
;;
- *) echo "Unknown argument to --with-lecture: $with_lecture"
- exit 1
+ *) AC_MSG_ERROR(["unknown argument to --with-lecture: $with_lecture"])
;;
esac], [AC_MSG_RESULT(yes)])
-AC_MSG_CHECKING(whether sudo should log via syslog or to a file)
+AC_MSG_CHECKING(whether sudo should log via syslog or to a file by default)
AC_ARG_WITH(logging, [ --with-logging log via syslog, file, or both],
[case $with_logging in
- yes) echo "Must give --with-logging an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-logging an argument."])
;;
- no) echo "Sorry, --without-logging not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-logging not supported."])
;;
syslog) AC_DEFINE(LOGGING, SLOG_SYSLOG)
AC_MSG_RESULT(syslog)
both) AC_DEFINE(LOGGING, SLOG_BOTH)
AC_MSG_RESULT(both)
;;
- *) echo "Unknown argument to --with-logging: $with_logging"
- exit 1
+ *) AC_MSG_ERROR(["unknown argument to --with-logging: $with_logging"])
;;
esac], [AC_DEFINE(LOGGING, SLOG_SYSLOG) AC_MSG_RESULT(syslog)])
AC_MSG_CHECKING(which syslog facility sudo should log with)
AC_ARG_WITH(logfac, [ --with-logfac syslog facility to log with (default is local2)],
[case $with_logfac in
- yes) echo "Must give --with-logfac an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-logfac an argument."])
;;
- no) echo "Sorry, --without-logfac not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-logfac not supported."])
;;
- *) AC_DEFINE_UNQUOTED(LOGFAC, "$with_logfac")
+ authpriv|auth|daemon|user|local0|local1|local2|local3|local4|local5|local6|local7) AC_DEFINE_UNQUOTED(LOGFAC, "$with_logfac")
AC_MSG_RESULT([$with_logfac])
;;
+ *) AC_MSG_ERROR(["$with_logfac is not a supported syslog facility."])
+ ;;
esac], [AC_DEFINE_UNQUOTED(LOGFAC, "local2") AC_MSG_RESULT("local2")])
AC_MSG_CHECKING(at which syslog priority to log commands)
AC_ARG_WITH(goodpri, [ --with-goodpri syslog priority for commands (def is notice)],
[case $with_goodpri in
- yes) echo "Must give --with-goodpri an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-goodpri an argument."])
;;
- no) echo "Sorry, --without-goodpri not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-goodpri not supported."])
;;
- *) AC_DEFINE_UNQUOTED(LOGFAC, "$with_goodpri")
+ alert|crit|debug|emerg|err|info|notice|warning) AC_DEFINE_UNQUOTED(PRI_SUCCESS, "$with_goodpri")
AC_MSG_RESULT([$with_goodpri])
;;
+ *) AC_MSG_ERROR(["$with_goodpri is not a supported syslog priority."])
+ ;;
esac], [AC_DEFINE_UNQUOTED(PRI_SUCCESS, "notice") AC_MSG_RESULT("notice")])
AC_MSG_CHECKING(at which syslog priority to log failures)
AC_ARG_WITH(badpri, [ --with-badpri syslog priority for failures (def is LOG_ALERT)],
[case $with_badpri in
- yes) echo "Must give --with-badpri an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-badpri an argument."])
;;
- no) echo "Sorry, --without-badpri not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-badpri not supported."])
;;
- *) AC_DEFINE_UNQUOTED(LOGFAC, "$with_badpri")
+ alert|crit|debug|emerg|err|info|notice|warning) AC_DEFINE_UNQUOTED(PRI_FAILURE, "$with_badpri")
AC_MSG_RESULT([$with_badpri])
;;
+ *) AC_MSG_ERROR([$with_badpri is not a supported syslog priority.])
+ ;;
esac], [AC_DEFINE_UNQUOTED(PRI_FAILURE, "alert") AC_MSG_RESULT("alert")])
AC_ARG_WITH(logpath, [ --with-logpath path to the sudo log file],
[case $with_logpath in
- yes) echo "Must give --with-logpath an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-logpath an argument."])
;;
- no) echo "Sorry, --without-logpath not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-logpath not supported."])
;;
esac])
AC_MSG_CHECKING(how long a line in the log file should be)
AC_ARG_WITH(loglen, [ --with-loglen maximum length of a log file line (default is 80)],
[case $with_loglen in
- yes) echo "Must give --with-loglen an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-loglen an argument."])
;;
- no) echo "Sorry, --without-loglen not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-loglen not supported."])
;;
[[0-9]]*) AC_DEFINE_UNQUOTED(MAXLOGFILELEN, $with_loglen)
AC_MSG_RESULT([$with_loglen])
;;
- *) echo "You must enter a number, not $with_loglen"
- exit 1
+ *) AC_MSG_ERROR(["you must enter a number, not $with_loglen"])
;;
esac], [AC_DEFINE(MAXLOGFILELEN, 80) AC_MSG_RESULT(80)])
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-ignore-dot does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-ignore-dot does not take an argument."])
;;
esac], AC_MSG_RESULT(no))
AC_MSG_CHECKING(who should get the mail that sudo sends)
AC_ARG_WITH(mailto, [ --with-mailto who should get sudo mail (default is "root")],
[case $with_mailto in
- yes) echo "Must give --with-mailto an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-mailto an argument."])
;;
- no) echo "Sorry, --without-mailto not supported."
+ no) AC_MSG_ERROR(["--without-mailto not supported."])
;;
*) AC_DEFINE_UNQUOTED(MAILTO, "$with_mailto")
AC_MSG_RESULT([$with_mailto])
AC_ARG_WITH(mailsubject, [ --with-mailsubject subject of sudo mail],
[case $with_mailsubject in
- yes) echo "Must give --with-mailsubject an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-mailsubject an argument."])
;;
no) echo "Sorry, --without-mailsubject not supported."
;;
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Unknown argument to --with-mail-if-no-user: $with_mail_if_no_user"
- exit 1
+ *) AC_MSG_ERROR(["unknown argument to --with-mail-if-no-user: $with_mail_if_no_user"])
;;
esac], [AC_DEFINE(SEND_MAIL_WHEN_NO_USER) AC_MSG_RESULT(yes)])
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Unknown argument to --with-mail-if-no-host: $with_mail_if_no_host"
- exit 1
+ *) AC_MSG_ERROR(["unknown argument to --with-mail-if-no-host: $with_mail_if_no_host"])
;;
esac], AC_MSG_RESULT(no))
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Unknown argument to --with-mail-if-noperms: $with_mail_if_noperms"
- exit 1
+ *) AC_MSG_ERROR(["unknown argument to --with-mail-if-noperms: $with_mail_if_noperms"])
;;
esac], AC_MSG_RESULT(no))
AC_MSG_CHECKING(for bad password prompt)
AC_ARG_WITH(passprompt, [ --with-passprompt default password prompt],
[case $with_passprompt in
- yes) echo "Must give --with-passprompt an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-passprompt an argument."])
;;
no) echo "Sorry, --without-passprompt not supported."
;;
AC_MSG_CHECKING(for bad password message)
AC_ARG_WITH(badpass-message, [ --with-badpass-message message the user sees when the password is wrong],
[case $with_badpass_message in
- yes) echo "Must give --with-badpass-message an argument."
- exit 1
+ yes) AC_MSG_ERROR(["Must give --with-badpass-message an argument."])
;;
no) echo "Sorry, --without-badpass-message not supported."
;;
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-fqdn does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-fqdn does not take an argument."])
;;
esac], AC_MSG_RESULT(no))
AC_ARG_WITH(timedir, [ --with-timedir path to the sudo timestamp dir],
[case $with_timedir in
- yes) echo "Must give --with-timedir an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-timedir an argument."])
;;
- no) echo "Sorry, --without-timedir not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-timedir not supported."])
;;
esac])
AC_ARG_WITH(sudoers-mode, [ --with-sudoers-mode mode of sudoers file (defaults to 0440)],
[case $with_sudoers_mode in
- yes) echo "Must give --with-sudoers-mode an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-sudoers-mode an argument."])
;;
- no) echo "Sorry, --without-sudoers-mode not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-sudoers-mode not supported."])
;;
[[1-9]]*) SUDOERS_MODE=0${with_sudoers_mode}
;;
0*) SUDOERS_MODE=$with_sudoers_mode
;;
- *) echo "You must use a numeric uid, not a name."
- exit 1
+ *) AC_MSG_ERROR(["you must use a numeric uid, not a name."])
;;
esac])
AC_ARG_WITH(sudoers-uid, [ --with-sudoers-uid uid that owns sudoers file (defaults to 0)],
[case $with_sudoers_uid in
- yes) echo "Must give --with-sudoers-uid an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-sudoers-uid an argument."])
;;
- no) echo "Sorry, --without-sudoers-uid not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-sudoers-uid not supported."])
;;
[[0-9]]*) SUDOERS_UID=$with_sudoers_uid
;;
- *) echo "You must use a numeric uid, not a name."
- exit 1
+ *) AC_MSG_ERROR(["you must use a numeric uid, not a name."])
;;
esac])
AC_ARG_WITH(sudoers-gid, [ --with-sudoers-gid gid that owns sudoers file (defaults to 0)],
[case $with_sudoers_gid in
- yes) echo "Must give --with-sudoers-gid an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-sudoers-gid an argument."])
;;
- no) echo "Sorry, --without-sudoers-gid not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-sudoers-gid not supported."])
;;
[[0-9]]*) SUDOERS_GID=$with_sudoers_gid
;;
- *) echo "You must use a numeric gid, not a name."
- exit 1
+ *) AC_MSG_ERROR(["you must use a numeric gid, not a name."])
;;
esac])
AC_ARG_WITH(umask, [ --with-umask umask with which the prog should run (default is 0022)
--without-umask Preserves the umask of the user invoking sudo.],
[case $with_umask in
- yes) echo "Must give --with-umask an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-umask an argument."])
;;
no) AC_MSG_RESULT(user)
;;
[[0-9]]*) AC_DEFINE_UNQUOTED(SUDO_UMASK, $with_umask)
AC_MSG_RESULT([$with_umask])
;;
- *) echo "You must enter a numeric mask."
- exit 1
+ *) AC_MSG_ERROR(["you must enter a numeric mask."])
;;
esac], [AC_DEFINE(SUDO_UMASK, 0022) AC_MSG_RESULT(0022)])
AC_MSG_CHECKING(for default user to run commands as)
AC_ARG_WITH(runas-default, [ --with-runas-default User to run commands as (default is "root"],
[case $with_runas_default in
- yes) echo "Must give --with-runas-default an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-runas-default an argument."])
;;
- no) echo "Sorry, --without-runas-default not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-runas-default not supported."])
;;
*) AC_DEFINE_UNQUOTED(RUNAS_DEFAULT, "$with_runas_default")
AC_MSG_RESULT([$with_runas_default])
AC_ARG_WITH(exempt, [ --with-exempt=group no passwd needed for users in this group],
[case $with_exempt in
- yes) echo "Must give --with-exempt an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-exempt an argument."])
;;
- no) echo "Sorry, --without-exempt not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-exempt not supported."])
;;
*) AC_DEFINE_UNQUOTED(EXEMPTGROUP, "$with_exempt")
AC_MSG_CHECKING(for group to be exempt from password)
AC_MSG_CHECKING(for editor that visudo should use)
AC_ARG_WITH(editor, [ --with-editor=path Default editor for visudo (defaults to vi)],
[case $with_editor in
- yes) echo "Must give --with-editor an argument."
- exit 1
+ yes) AC_MSG_ERROR(["must give --with-editor an argument."])
;;
- no) echo "Sorry, --without-editor not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-editor not supported."])
;;
*) AC_DEFINE_UNQUOTED(EDITOR, "$with_editor")
AC_MSG_RESULT([$with_editor])
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-env-editor does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-env-editor does not take an argument."])
;;
esac], AC_MSG_RESULT(no))
yes) AC_DEFINE(TRIES_FOR_PASSWORD, 3)
AC_MSG_RESULT(3)
;;
- no) echo "Sorry, --without-editor not supported."
- exit 1
+ no) AC_MSG_ERROR(["--without-editor not supported."])
;;
[[1-9]]*) AC_DEFINE_UNQUOTED(TRIES_FOR_PASSWORD, $with_passwd_tries)
AC_MSG_RESULT([$with_passwd_tries])
;;
- *) echo "You must enter the numer of tries, > 0"
- exit 1
+ *) AC_MSG_ERROR(["you must enter the numer of tries, > 0"])
;;
esac], [AC_DEFINE(TRIES_FOR_PASSWORD, 3) AC_MSG_RESULT(3)])
[[0-9]]*) AC_DEFINE_UNQUOTED(TIMEOUT, $with_timeout)
AC_MSG_RESULT([$with_timeout])
;;
- *) echo "You must enter the numer of minutes."
- exit 1
+ *) AC_MSG_ERROR(["you must enter the numer of minutes."])
;;
esac], [AC_DEFINE(TIMEOUT, 5) AC_MSG_RESULT(5)])
[[0-9]]*) AC_DEFINE_UNQUOTED(PASSWORD_TIMEOUT, $with_password_timeout)
AC_MSG_RESULT([$with_password_timeout])
;;
- *) echo "You must enter the numer of minutes."
- exit 1
+ *) AC_MSG_ERROR(["you must enter the numer of minutes."])
;;
esac], [AC_DEFINE(PASSWORD_TIMEOUT, 5) AC_MSG_RESULT(5)])
;;
no) AC_MSG_RESULT(execvp)
;;
- *) echo "Sorry, --with-execv does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-execv does not take an argument."])
;;
esac], AC_MSG_RESULT(execvp))
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-tty-tickets does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-tty-tickets does not take an argument."])
;;
esac], AC_MSG_RESULT(no))
;;
no) AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-insults does not take an argument."])
;;
esac], AC_MSG_RESULT(no))
with_goons_insults=yes
;;
no) ;;
- *) echo "Sorry, --with-all-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-all-insults does not take an argument."])
;;
esac])
yes) AC_DEFINE(CLASSIC_INSULTS)
;;
no) ;;
- *) echo "Sorry, --with-classic-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-classic-insults does not take an argument."])
;;
esac])
yes) AC_DEFINE(CSOPS_INSULTS)
;;
no) ;;
- *) echo "Sorry, --with-csops-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-csops-insults does not take an argument."])
;;
esac])
yes) AC_DEFINE(HAL_INSULTS)
;;
no) ;;
- *) echo "Sorry, --with-hal-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-hal-insults does not take an argument."])
;;
esac])
yes) AC_DEFINE(GOONS_INSULTS)
;;
no) ;;
- *) echo "Sorry, --with-goons-insults does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-goons-insults does not take an argument."])
;;
esac])
no) AC_DEFINE(STUB_LOAD_INTERFACES)
AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --with-interfaces does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--with-interfaces does not take an argument."])
;;
esac], AC_MSG_RESULT(yes))
no) AC_DEFINE(NO_ROOT_SUDO)
AC_MSG_RESULT(no)
;;
- *) echo "Sorry, --enable-root-sudo does not take an argument."
- exit 1
+ *) AC_MSG_ERROR(["--enable-root-sudo does not take an argument."])
;;
esac
], AC_MSG_RESULT(yes))
if test "$CHECKSIA" = "true"; then
AC_CHECK_FUNC(sia_ses_init, AC_DEFINE(HAVE_SIA) [
if test -n "$with_skey" -o -n "$with_opie" -o -n "$with_otp_only" -o -n "$with_long_otp_prompt" -o -n "$with_SecurID" -o -n "$with_fwtk" -o -n "$with_kerb4" -o -n "$with_kerb5" -o -n "$with_pam" -o -n "$with_AFS" -o -n "$with_DCE"; then
- echo "Sorry, you cannot mix SIA and other authentication schemes. You can turn off SIA support via the --disable-sia option"
- exit 1
+ AC_MSG_ERROR(["you cannot mix SIA and other authentication schemes. You can turn off SIA support via the --disable-sia option"])
fi]; CHECKSHADOW=false)
fi
if test "$CHECKSHADOW" = "true"; then
if test "$with_passwd" = "no"; then
AC_DEFINE(WITHOUT_PASSWD)
if test -z "$AUTH_OBJS"; then
- AC_MSG_ERROR([Error: no authentication methods defined.])
+ AC_MSG_ERROR([no authentication methods defined.])
fi
else
if test -n "$SECUREWARE"; then