/*
* prompter.c -- simple prompting editor front-end
*
- * $Id$
- *
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
#include <signal.h>
#include <setjmp.h>
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# ifdef HAVE_TERMIO_H
-# include <termio.h>
-# else
-# include <sgtty.h>
-# endif
-#endif
+#include <termios.h>
#define QUOTE '\\'
};
-#ifdef HAVE_TERMIOS_H
static struct termios tio;
-# define ERASE tio.c_cc[VERASE]
-# define KILL tio.c_cc[VKILL]
-# define INTR tio.c_cc[VINTR]
-#else
-# ifdef HAVE_TERMIO_H
-static struct termio tio;
-# define ERASE tio.c_cc[VERASE]
-# define KILL tio.c_cc[VKILL]
-# define INTR tio.c_cc[VINTR]
-# else
-static struct sgttyb tio;
-static struct tchars tc;
-# define ERASE tio.sg_erase
-# define KILL tio.sg_kill
-# define INTR tc.t_intrc
-# endif
-#endif
+#define ERASE tio.c_cc[VERASE]
+#define KILL tio.c_cc[VKILL]
+#define INTR tio.c_cc[VINTR]
static int wtuser = 0;
static int sigint = 0;
int getln (char *, int);
static int chrcnv (char *);
static void chrdsp (char *, char);
-static RETSIGTYPE intrser (int);
+static void intrser (int);
int
* Are we changing the kill or erase character?
*/
if (killp || erasep) {
-#ifdef HAVE_TERMIOS_H
cc_t save_erase, save_kill;
-#else
- int save_erase, save_kill;
-#endif
/* get the current terminal attributes */
-#ifdef HAVE_TERMIOS_H
tcgetattr(0, &tio);
-#else
-# ifdef HAVE_TERMIO_H
- ioctl(0, TCGETA, &tio);
-# else
- ioctl (0, TIOCGETP, (char *) &tio);
- ioctl (0, TIOCGETC, (char *) &tc);
-# endif
-#endif
/* save original kill, erase character for later */
save_kill = KILL;
ERASE = erasep ? chrcnv (erasep) : save_erase;
/* set the new terminal attributes */
-#ifdef HAVE_TERMIOS_H
tcsetattr(0, TCSADRAIN, &tio);
-#else
-# ifdef HAVE_TERMIO_H
- ioctl(0, TCSETAW, &tio);
-# else
- ioctl (0, TIOCSETN, (char *) &tio);
-# endif
-#endif
/* print out new kill erase characters */
chrdsp ("erase", ERASE);
if (i == -1) {
abort:
if (killp || erasep) {
-#ifdef HAVE_TERMIOS_H
tcsetattr(0, TCSADRAIN, &tio);
-#else
-# ifdef HAVE_TERMIO
- ioctl (0, TCSETA, &tio);
-# else
- ioctl (0, TIOCSETN, (char *) &tio);
-# endif
-#endif
}
unlink (tmpfil);
done (1);
SIGNAL (SIGINT, SIG_IGN);
if (killp || erasep) {
-#ifdef HAVE_TERMIOS_H
tcsetattr(0, TCSADRAIN, &tio);
-#else
-# ifdef HAVE_TERMIO_H
- ioctl (0, TCSETAW, &tio);
-# else
- ioctl (0, TIOCSETN, (char *) &tio);
-# endif
-#endif
}
if ((fdi = open (tmpfil, O_RDONLY)) == NOTOK)
}
-static RETSIGTYPE
+static void
intrser (int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL (SIGINT, intrser);
-#endif
+ NMH_UNUSED (i);
if (wtuser)
longjmp (sigenv, NOTOK);