mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-08-03 17:59:07 -04:00
202 lines
4.6 KiB
Plaintext
202 lines
4.6 KiB
Plaintext
$NetBSD: patch-ae,v 1.4 2013/11/24 05:53:52 dholland Exp $
|
|
|
|
- avoid union wait
|
|
- force termios on all modern systems
|
|
- declare void functions void
|
|
- avoid implicit int
|
|
- don't declare own errno
|
|
- fix os conditionals (apparently with respect to VMS)
|
|
- call execl() and execlp() correctly
|
|
- don't synthesize vsprintf with fake arguments
|
|
- use ctype.h functions correctly
|
|
|
|
--- main.c.orig 2002-01-09 00:41:11.000000000 +0000
|
|
+++ main.c
|
|
@@ -239,8 +239,18 @@ static Bool IsPts = False;
|
|
#ifdef SVR4
|
|
#define USE_POSIX_WAIT
|
|
#endif
|
|
+#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
|
|
+ defined(__DragonFly__) || defined(__linux__)
|
|
+#ifndef USE_POSIX_WAIT
|
|
+#define USE_POSIX_WAIT
|
|
+#endif
|
|
+#ifndef USE_TERMIOS
|
|
+#define USE_TERMIOS
|
|
+#endif
|
|
+#endif
|
|
|
|
#include <stdio.h>
|
|
+#include <stdarg.h>
|
|
#include <errno.h>
|
|
#include <setjmp.h>
|
|
|
|
@@ -583,6 +593,8 @@ static int tslot;
|
|
#endif /* USE_SYSV_UTMP */
|
|
static jmp_buf env;
|
|
|
|
+static void spawn (void);
|
|
+
|
|
char *ProgramName;
|
|
Boolean sunFunctionKeys;
|
|
|
|
@@ -805,9 +817,9 @@ static char *message[] = {
|
|
"will be started. Options that start with a plus sign (+) restore the default.",
|
|
NULL};
|
|
|
|
-#ifndef USE_TERMIOS
|
|
-static remove_termcap_entry ();
|
|
-#endif
|
|
+/*#ifndef USE_TERMIOS*/
|
|
+static void remove_termcap_entry (char *, const char *);
|
|
+/*#endif*/
|
|
|
|
static int abbrev (tst, cmp)
|
|
char *tst, *cmp;
|
|
@@ -816,7 +828,7 @@ static int abbrev (tst, cmp)
|
|
return ((len >= 2) && (!strncmp(tst, cmp, len)));
|
|
}
|
|
|
|
-static Syntax (badOption)
|
|
+static void Syntax (badOption)
|
|
char *badOption;
|
|
{
|
|
struct _options *opt;
|
|
@@ -842,13 +854,13 @@ static Syntax (badOption)
|
|
exit (1);
|
|
}
|
|
|
|
-static Version ()
|
|
+static void Version ()
|
|
{
|
|
printf("%s %s %s %s\n", HANTERM_PRODUCT, HANTERM_VERSION,
|
|
HANTERM_RELEASE, HANTERM_RELEASEDATE);
|
|
exit (0);
|
|
}
|
|
-static Help ()
|
|
+static void Help ()
|
|
{
|
|
struct _options *opt;
|
|
char **cpp;
|
|
@@ -960,6 +972,7 @@ XtActionsRec actionProcs[] = {
|
|
|
|
Atom wm_delete_window;
|
|
|
|
+int
|
|
main (argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
@@ -1527,7 +1540,8 @@ char **argv;
|
|
if (ioctl (pty, FIONBIO, (char *)&mode) == -1) SysError (ERROR_FIONBIO);
|
|
#endif /* USE_SYSV_TERMIO */
|
|
|
|
-#if defined(linux)||defined(SVR4)||(defined(hpux)&&OSMAJORVERSION>=10)
|
|
+
|
|
+#ifndef VMS
|
|
pty_mask = pty;
|
|
X_mask = Xsocket;
|
|
FD_ZERO(&Select_mask);
|
|
@@ -1566,6 +1580,7 @@ char *name;
|
|
* has problems, we can re-enter this function and get another one.
|
|
*/
|
|
|
|
+int
|
|
get_pty (pty)
|
|
int *pty;
|
|
{
|
|
@@ -1730,6 +1745,7 @@ int pty_search(pty)
|
|
return 1;
|
|
}
|
|
|
|
+void
|
|
get_terminal ()
|
|
/*
|
|
* sets up X and initializes the terminal structure except for term.buf.fildes.
|
|
@@ -1854,7 +1870,7 @@ void first_map_occurred ()
|
|
#endif /* USE_HANDSHAKE else !USE_HANDSHAKE */
|
|
|
|
|
|
-spawn ()
|
|
+static void spawn (void)
|
|
/*
|
|
* Inits pty and tty and forks a login process.
|
|
* Does not close fd Xsocket.
|
|
@@ -2983,10 +2999,10 @@ spawn ()
|
|
|
|
#ifdef USE_LOGIN_DASH_P
|
|
if (term->misc.login_shell && pw && added_utmp_entry)
|
|
- execl (bin_login, "login", "-p", "-f", pw->pw_name, 0);
|
|
+ execl (bin_login, "login", "-p", "-f", pw->pw_name, (void *)NULL);
|
|
#endif
|
|
execlp (ptr, (term->misc.login_shell ? shname_minus : shname),
|
|
- 0);
|
|
+ (void *)NULL);
|
|
|
|
/* Exec failed. */
|
|
fprintf (stderr, "%s: Could not exec %s!\n", xterm_name, ptr);
|
|
@@ -3235,6 +3251,7 @@ Exit(n)
|
|
}
|
|
|
|
/* ARGSUSED */
|
|
+void
|
|
resize(screen, TermName, oldtc, newtc)
|
|
TScreen *screen;
|
|
char *TermName;
|
|
@@ -3329,18 +3346,20 @@ static SIGNAL_T reapchild (n)
|
|
}
|
|
|
|
/* VARARGS1 */
|
|
-consolepr(fmt,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)
|
|
-char *fmt;
|
|
+void
|
|
+consolepr(const char *fmt, ...)
|
|
{
|
|
- extern int errno;
|
|
extern char *SysErrorMsg();
|
|
int oerrno;
|
|
int f;
|
|
char buf[ BUFSIZ ];
|
|
+ va_list ap;
|
|
|
|
oerrno = errno;
|
|
strcpy(buf, "hanterm: ");
|
|
- sprintf(buf+strlen(buf), fmt, x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);
|
|
+ va_start(ap, fmt);
|
|
+ vsnprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), fmt, ap);
|
|
+ va_end(ap);
|
|
strcat(buf, ": ");
|
|
strcat(buf, SysErrorMsg (oerrno));
|
|
strcat(buf, "\n");
|
|
@@ -3356,10 +3375,8 @@ char *fmt;
|
|
}
|
|
|
|
|
|
-#ifndef USE_TERMIOS
|
|
-static remove_termcap_entry (buf, str)
|
|
- char *buf;
|
|
- char *str;
|
|
+/*#ifndef USE_TERMIOS*/
|
|
+static void remove_termcap_entry (char *buf, const char *str)
|
|
{
|
|
register char *strinbuf;
|
|
|
|
@@ -3377,7 +3394,7 @@ static remove_termcap_entry (buf, str)
|
|
}
|
|
return;
|
|
}
|
|
-#endif
|
|
+/*#endif*/
|
|
|
|
/*
|
|
* parse_tty_modes accepts lines of the following form:
|
|
@@ -3396,7 +3413,8 @@ static int parse_tty_modes (s, modelist)
|
|
int count = 0;
|
|
|
|
while (1) {
|
|
- while (*s && isascii(*s) && isspace(*s)) s++;
|
|
+ while (*s && isascii((unsigned char)*s) && isspace((unsigned char)*s))
|
|
+ s++;
|
|
if (!*s) return count;
|
|
|
|
for (mp = modelist; mp->name; mp++) {
|