- * terminated, the game continues. Since this program may often be run
- * setuid to gain access to privileged files, care is taken that the shell
- * is run with the user's REAL user id, and not the effective user id.
- * The effective user id is restored after the shell completes.
- */
-
-void
-md_shell(shell)
- char *shell;
-{
- int w;
-
- if (!fork()) {
- int uid;
-
- uid = getuid();
- setuid(uid);
- execl(shell, shell, 0);
- }
- wait(&w);
-}
-
-/* If you have a viable curses/termlib library, then use it and don't bother
- * implementing the routines below. And don't compile with -DCURSES.
- */
-
-#ifdef CURSES
-
-/* md_cbreak_no_echo_nonl:
- *
- * This routine sets up some terminal characteristics. The tty-driver
- * must be told to:
- * 1.) Not echo input.
- * 2.) Transmit input characters immediately upon typing. (cbreak mode)
- * 3.) Move the cursor down one line, without changing column, and
- * without generating a carriage-return, when it
- * sees a line-feed. This is only necessary if line-feed is ever
- * used in the termcap 'do' (cursor down) entry, in which case,
- * your system should must have a way of accomplishing this.
- *
- * When the parameter 'on' is true, the terminal is set up as specified
- * above. When this parameter is false, the terminal is restored to the
- * original state.
- *
- * Raw mode should not to be used. Keyboard signals/events/interrupts should
- * be sent, although they are not strictly necessary. See notes in
- * md_heed_signals().
- *
- * This function must be implemented for rogue to run properly if the
- * program is compiled with CURSES defined to use the enclosed curses
- * emulation package. If you are not using this, then this routine is
- * totally unnecessary.
- *
- * Notice that information is saved between calls. This is used to
- * restore the terminal to an initial saved state.