$NetBSD: patch-ae,v 1.10 2018/11/30 17:30:24 nia Exp $ - Use pseudo-terminal multiplexor on NetBSD. - Use ctype.h functions correctly. --- src/command.c.orig 2006-06-26 18:01:20.000000000 +0000 +++ src/command.c @@ -556,7 +556,7 @@ get_pty(void) ptydev = ttydev = _getpty(&fd, O_RDWR | O_NDELAY, 0622, 0); if (ptydev == NULL) goto Failed; -#elif defined (__svr4__) || defined(__CYGWIN32__) || defined(__lnx21__) +#elif defined (__svr4__) || defined(__CYGWIN32__) || defined(__lnx21__) || defined(__NetBSD__) { extern char *ptsname(); @@ -1251,9 +1251,9 @@ init_command(char *argv[]) meta_char = (Options & Opt_meta8 ? 0x80 : 033); if (rs_modifier && strlen(rs_modifier) == 4 - && toupper(*rs_modifier) == 'M' - && toupper(rs_modifier[1]) == 'O' - && toupper(rs_modifier[2]) == 'D') + && toupper((unsigned char)*rs_modifier) == 'M' + && toupper((unsigned char)rs_modifier[1]) == 'O' + && toupper((unsigned char)rs_modifier[2]) == 'D') switch (rs_modifier[3]) { case '2': ModXMask = Mod2Mask; @@ -1329,13 +1329,13 @@ init_xlocale(void) for (s = tmp; *s; s++) { char *end, *next_s; - for (; *s && isspace(*s); s++) + for (; *s && isspace((unsigned char)*s); s++) /* */ ; if (!*s) break; for (end = s; (*end && (*end != ',')); end++) /* */ ; - for (next_s = end--; ((end >= s) && isspace(*end)); end--) + for (next_s = end--; ((end >= s) && isspace((unsigned char)*end)); end--) /* */ ; *++end = '\0'; if (*s) { @@ -1367,13 +1367,13 @@ init_xlocale(void) unsigned short i; char *end, *next_s; - for (; *s && isspace(*s); s++) + for (; *s && isspace((unsigned char)*s); s++) /* */ ; if (!*s) break; for (end = s; (*end && (*end != ',')); end++) /* */ ; - for (next_s = end--; ((end >= s) && isspace(*end));) + for (next_s = end--; ((end >= s) && isspace((unsigned char)*end));) *end-- = 0; if (!strcmp(s, "OverTheSpot"))