From 19647809e430bc00ec7f66769295a2ef56739f79 Mon Sep 17 00:00:00 2001 From: Pascal Stumpf Date: Thu, 9 Aug 2012 23:53:47 +0200 Subject: [PATCH] OpenBSD fixes for lib/DtTerm: values.h, #ifdef's and some constants that are not defined on BSD. Also, leave out utmp stuff that does not work on BSD. Note that this terminal allocation does not work properly yet, but this will be fixed later. --- cde/lib/DtTerm/Term/TermParse.c | 6 +++++- cde/lib/DtTerm/TermPrim/TermHeader.h | 2 +- cde/lib/DtTerm/TermPrim/TermPrimGetPty-bsd.c | 6 +++++- cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h | 6 ++++++ cde/lib/DtTerm/TermPrim/TermPrimParser.c | 6 +++++- cde/lib/DtTerm/TermPrim/TermPrimSetPty.c | 11 +++++++++++ cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c | 6 ++++++ cde/lib/DtTerm/TermPrim/TermPrimSubproc.c | 6 +++--- cde/lib/DtTerm/TermPrim/TermPrimUtil.c | 2 +- 9 files changed, 43 insertions(+), 8 deletions(-) diff --git a/cde/lib/DtTerm/Term/TermParse.c b/cde/lib/DtTerm/Term/TermParse.c index 2d41043c..554c6a24 100644 --- a/cde/lib/DtTerm/Term/TermParse.c +++ b/cde/lib/DtTerm/Term/TermParse.c @@ -57,7 +57,11 @@ static char rcs_id[] = "$TOG: TermParse.c /main/3 1999/10/15 12:25:13 mgreess $" */ #undef MAXINT #endif -#include +#if defined(CSRG_BASED) +#define MAXSHORT SHRT_MAX +#else +#include +#endif #if defined(USL) || defined(__uxp__) #include diff --git a/cde/lib/DtTerm/TermPrim/TermHeader.h b/cde/lib/DtTerm/TermPrim/TermHeader.h index fcee6e3c..d955c4dc 100644 --- a/cde/lib/DtTerm/TermPrim/TermHeader.h +++ b/cde/lib/DtTerm/TermPrim/TermHeader.h @@ -44,7 +44,7 @@ #include #include -#if defined(linux) || defined(UXPArchitecture) || (defined(USL) && (OSMAJORVERSION > 1)) +#if defined(linux) || defined(UXPArchitecture) || (defined(USL) && (OSMAJORVERSION > 1)) || defined(CSRG_BASED) #define _NFILE FOPEN_MAX #endif diff --git a/cde/lib/DtTerm/TermPrim/TermPrimGetPty-bsd.c b/cde/lib/DtTerm/TermPrim/TermPrimGetPty-bsd.c index ee7fe601..b8bfd3a0 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimGetPty-bsd.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimGetPty-bsd.c @@ -166,7 +166,7 @@ static struct _pty_dirs { {PTY_null, PTY_null, PTY_null, PTY_null, PTY_null, False}, }; -#ifdef ALPHA_ARCHITECTURE +#if defined(ALPHA_ARCHITECTURE) || defined(OpenBSDArchitecture) /* Use openpty() to open Master/Slave pseudo-terminal pair */ /* Current version of openpty() uses non-STREAM device. BSD name space */ #define TTYNAMELEN 25 @@ -254,7 +254,11 @@ GetPty(char **ptySlave, char **ptyMaster) * name for the tty that everyone else will * use... */ +#if defined(XTHREADS) if (c1 = _XTtyname(ttyFd, tty_buf)) { +#else + if (c1 = _XTtyname(ttyFd)) { +#endif ttyDev = realloc(ttyDev, strlen(c1) + 1); (void) strcpy(ttyDev, c1); } diff --git a/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h b/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h index 47061d71..e5a7b776 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h +++ b/cde/lib/DtTerm/TermPrim/TermPrimOSDepI.h @@ -96,6 +96,12 @@ # define USE_TCSENDBREAK /* use tiocbreak() */ #endif /* LINUX_ARCHITECTURE */ +#ifdef OPENBSD_ARCHITECTURE +# define HAS_SETEUID /* seteuid available */ +# define HAS_SETREUID /* setreuid available */ +# define USE_TCSENDBREAK /* use tiocbreak() */ +#endif /* OPENBSD_ARCHITECTURE */ + #ifdef SUN_ARCHITECTURE # define XOR_CAPS_LOCK /* xor caps lock and shift */ # define USE_SRIOCSREDIR /* use SRIOCSREDIR ioctl for -C */ diff --git a/cde/lib/DtTerm/TermPrim/TermPrimParser.c b/cde/lib/DtTerm/TermPrim/TermPrimParser.c index 98c606b8..f3a6ab7e 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimParser.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimParser.c @@ -47,7 +47,11 @@ static char rcs_id[] = "$TOG: TermPrimParser.c /main/2 1999/10/15 12:23:41 mgree */ #undef MAXINT #endif -#include +#if defined(CSRG_BASED) +#define MAXINT INT_MAX +#else +#include +#endif #ifdef BBA #pragma BBA_IGNORE diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSetPty.c b/cde/lib/DtTerm/TermPrim/TermPrimSetPty.c index 18e84a68..49fc8c9d 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSetPty.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSetPty.c @@ -109,6 +109,17 @@ static char rcs_id[] = "$TOG: TermPrimSetPty.c /main/2 1998/04/03 17:11:24 mgree #define XTTYMODE_weras 14 #define XTTYMODE_lnext 15 #define NXTTYMODES 16 + +#if defined(CSRG_BASED) +#define TAB3 0x00000000 +#define NLDLY 0x00000000 +#define CRDLY 0x00000000 +#define TABDLY 0x00000000 +#define BSDLY 0x00000000 +#define VTDLY 0x00000000 +#define FFDLY 0x00000000 +#define CBAUD 0x00000000 +#endif typedef struct _ttyMode { char *name; diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c index 5619780d..4328bd25 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSetUtmp.c @@ -332,6 +332,7 @@ _DtTermPrimUtmpGetUtLine(int pty, char *ptyName) static char * UtmpEntryCreate(Widget w, pid_t pid, char *utmpLine) { +#if !defined(CSRG_BASED) /* XXX */ DtTermPrimitiveWidget tw = (DtTermPrimitiveWidget) w; struct termData *tpd = tw->term.tpd; struct utmp ut; @@ -489,6 +490,9 @@ UtmpEntryCreate(Widget w, pid_t pid, char *utmpLine) /* failure... */ (void) endutent(); return((char *) 0); +#else /* __OpenBSD__ */ + return(utmpLine); +#endif } /* this is a public wrapper around the previous function that runs the @@ -511,6 +515,7 @@ _DtTermPrimUtmpEntryCreate(Widget w, pid_t pid, char *utmpLine) static void UtmpEntryDestroy(Widget w, char *utmpLine) { +#if !defined(CSRG_BASED) struct utmp ut; struct utmp *utPtr; time_t now; @@ -537,6 +542,7 @@ UtmpEntryDestroy(Widget w, char *utmpLine) (void) endutent(); (void) DeleteUtmpInfo(utmpLine); +#endif /* !__OpenBSD__ */ } /* this is a public wrapper around the previous function that runs the diff --git a/cde/lib/DtTerm/TermPrim/TermPrimSubproc.c b/cde/lib/DtTerm/TermPrim/TermPrimSubproc.c index b1d706c7..207381ad 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimSubproc.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimSubproc.c @@ -38,7 +38,7 @@ static char rcs_id[] = "$TOG: TermPrimSubproc.c /main/11 1998/04/20 12:45:57 mgr #include "TermHeader.h" #include -#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_ARCHITECTURE) || defined(LINUX_ARCHITECTURE) +#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_BASED) || defined(LINUX_ARCHITECTURE) /* For TIOCSTTY definitions */ #include #endif /* ALPHA_ARCHITECTURE */ @@ -461,7 +461,7 @@ _DtTermPrimSubprocExec(Widget w, /* child... */ _DtTermProcessUnlock(); -#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_ARCHITECTURE) || defined(LINUX_ARCHITECTURE) +#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_BASED) || defined(LINUX_ARCHITECTURE) /* establish a new session for child */ setsid(); #else @@ -482,7 +482,7 @@ _DtTermPrimSubprocExec(Widget w, (void) _exit(1); } -#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_ARCHITECTURE) || defined(LINUX_ARCHITECTURE) +#if defined(ALPHA_ARCHITECTURE) || defined(CSRG_BASED) || defined(LINUX_ARCHITECTURE) /* BSD needs to do this to acquire pty as controlling terminal */ if (ioctl(pty, TIOCSCTTY, (char *)NULL) < 0) { (void) close(pty); diff --git a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c index 608171db..1d9a638d 100644 --- a/cde/lib/DtTerm/TermPrim/TermPrimUtil.c +++ b/cde/lib/DtTerm/TermPrim/TermPrimUtil.c @@ -462,7 +462,7 @@ _DtTermPrimStartLog(Widget w) ** reset signals */ (void) signal(SIGHUP, SIG_DFL); - (void) signal(SIGCLD, SIG_DFL); + (void) signal(SIGCHLD, SIG_DFL); #ifdef BBA _bA_dump(); #endif /* BBA */ -- 2.25.1