xfree86 3.1.2Cb - 1996/2/10 - T.Dickey (dickey@clark.net)
This patch fixes the remaining problems that I had making xterm run with x11r5,
as well as a couple of other bugs. It follows my patch from yesterday, that
added ifdef's for some of the input-method resources.
+ corrected ifdef's that suppress the input-method code (doesn't
exist in my x11r5, and xterm works adequately without it).
+ corrected fallback definition for 'Select()' macro (oops: I'd
copied the wrong text...)
+ moved the declarations for the fd_set variables to data.[ch]
+ corrected an ifdef in resize.c (sunos 4.x doesn't have termcap.h)
+ corrected (in main.c) some unused/orphaned variables.
--------------------------------------------------------------------------------
Tekproc.c | 10 ----------
charproc.c | 9 ++-------
data.h | 11 +++++++++++
input.c | 7 +++++++
main.c | 18 +---!!!!!!!!!!!!!!
resize.c | 2 !!
6 files changed, 21 insertions, 20 deletions, 16 modifications
--------------------------------------------------------------------------------
Index: Tekproc.c
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/Tekproc.c Tue Jan 30 15:59:20 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/Tekproc.c Sat Feb 10 19:02:58 1996
***************
*** 65,77 ****
#include <X11/Shell.h>
#include <X11/Xmu/CharSet.h>
- #if XtSpecificationRelease >= 6
- #include <X11/Xpoll.h>
- #else
- #define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
- #define XFD_COPYSET(src,dst) bcopy((src)->fds_bits, (dst)->fds_bits, sizeof(fd_set))
- #endif
-
#include <stdio.h>
#include <errno.h>
#include <setjmp.h>
--- 65,70 ----
***************
*** 122,130 ****
extern void exit();
extern long time(); /* included in <time.h> by Xos.h */
#endif
- extern fd_set Select_mask;
- extern fd_set X_mask;
- extern fd_set pty_mask;
#include "xterm.h"
--- 115,120 ----
Index: charproc.c
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/charproc.c Fri Feb 9 21:29:53 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/charproc.c Sat Feb 10 19:02:58 1996
***************
*** 66,75 ****
#if XtSpecificationRelease >= 6
#include <X11/Xaw/XawImP.h>
- #include <X11/Xpoll.h>
- #else
- #define Select(n,r,w,e,t) select(0,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
- #define XFD_COPYSET(src,dst) bcopy((src)->fds_bits, (dst)->fds_bits, sizeof(fd_set))
#endif
#include <stdio.h>
--- 66,71 ----
***************
*** 120,128 ****
extern XtAppContext app_con;
extern Widget toplevel;
extern char *ProgramName;
- extern fd_set Select_mask;
- extern fd_set X_mask;
- extern fd_set pty_mask;
static int LoadNewFont PROTO((TScreen *screen, char *nfontname, char *bfontname, Bool doresize, int fontnum));
static int finput PROTO((void));
--- 116,121 ----
***************
*** 2851,2856 ****
--- 2844,2851 ----
#if XtSpecificationRelease >= 6
VTInitI18N();
+ #else
+ term->screen.xic = NULL;
#endif
set_cursor_gcs (screen);
Index: data.h
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/data.h Tue Jan 16 15:43:01 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/data.h Sat Feb 10 19:02:58 1996
***************
*** 24,29 ****
--- 24,36 ----
* SOFTWARE.
*/
+ #if XtSpecificationRelease >= 6
+ #include <X11/Xpoll.h>
+ #else
+ #define Select(n,r,w,e,t) select(n,(fd_set*)r,(fd_set*)w,(fd_set*)e,(struct timeval *)t)
+ #define XFD_COPYSET(src,dst) bcopy((src)->fds_bits, (dst)->fds_bits, sizeof(fd_set))
+ #endif
+
extern TekLink *TekRefresh;
extern XPoint T_box2[];
extern XPoint T_box3[];
***************
*** 54,59 ****
--- 61,70 ----
extern int errno;
extern int max_plus1;
extern int switchfb[];
+
+ extern fd_set Select_mask;
+ extern fd_set X_mask;
+ extern fd_set pty_mask;
extern int waitingForTrackInfo;
Index: input.c
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/input.c Wed Jan 17 14:16:01 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/input.c Sat Feb 10 19:02:58 1996
***************
*** 86,95 ****
--- 86,102 ----
int nbytes;
KeySym keysym = 0;
ANSI reply;
+
+ #if XtSpecificationRelease >= 6
Status status_return;
nbytes = XmbLookupString (screen->xic, event, strbuf, STRBUFSIZE,
&keysym, &status_return);
+ #else
+ static XComposeStatus compose_status = {NULL, 0};
+ nbytes = XLookupString (event, strbuf, STRBUFSIZE,
+ &keysym, &compose_status);
+ #endif
string = &strbuf[0];
reply.a_pintro = 0;
Index: main.c
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/main.c Tue Jan 30 15:59:20 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/main.c Sat Feb 10 19:11:44 1996
***************
*** 1593,1604 ****
#endif
#ifndef AMOEBA
#ifdef MINIX
! if ((mode = fcntl(pty, F_GETFD, 0)) == -1)
Error(1);
mode |= FD_ASYNCHIO;
! if (fcntl(pty, F_SETFD, mode) == -1)
Error(1);
! nbio_register(pty);
#else /* !MINIX */
#ifdef USE_SYSV_TERMIO
if (0 > (mode = fcntl(screen->respond, F_GETFL, 0)))
--- 1593,1604 ----
#endif
#ifndef AMOEBA
#ifdef MINIX
! if ((mode = fcntl(screen->respond, F_GETFD, 0)) == -1)
Error(1);
mode |= FD_ASYNCHIO;
! if (fcntl(screen->respond, F_SETFD, mode) == -1)
Error(1);
! nbio_register(screen->respond);
#else /* !MINIX */
#ifdef USE_SYSV_TERMIO
if (0 > (mode = fcntl(screen->respond, F_GETFL, 0)))
***************
*** 3655,3662 ****
Exit(n)
int n;
{
- register TScreen *screen = &term->screen;
- int pty = term->screen.respond; /* file descriptor of pty */
#ifdef UTMP
#ifdef USE_SYSV_UTMP
#ifdef SVR4
--- 3655,3660 ----
***************
*** 3698,3704 ****
(void) setutent();
utptr = getutid(&utmp);
/* write it out only if it exists, and the pid's match */
! if (utptr && (utptr->ut_pid == screen->pid)) {
utptr->ut_type = DEAD_PROCESS;
#ifdef SVR4
utmp.ut_session = getsid(0);
--- 3696,3702 ----
(void) setutent();
utptr = getutid(&utmp);
/* write it out only if it exists, and the pid's match */
! if (utptr && (utptr->ut_pid == term->screen.pid)) {
utptr->ut_type = DEAD_PROCESS;
#ifdef SVR4
utmp.ut_session = getsid(0);
***************
*** 3727,3733 ****
}
#else /* not USE_SYSV_UTMP */
register int wfd;
- register int i;
struct utmp utmp;
if (!resource.utmpInhibit && added_utmp_entry &&
--- 3725,3730 ----
***************
*** 3739,3744 ****
--- 3736,3742 ----
#ifdef WTMP
if (term->misc.login_shell &&
(wfd = open(etc_wtmp, O_WRONLY | O_APPEND)) >= 0) {
+ register int i;
(void) strncpy(utmp.ut_line, ttydev +
sizeof("/dev"), sizeof (utmp.ut_line));
time(&utmp.ut_time);
***************
*** 3750,3760 ****
#endif /* USE_SYSV_UTMP */
#endif /* UTMP */
#ifndef AMOEBA
! close(pty); /* close explicitly to avoid race with slave side */
#endif
#ifdef ALLOWLOGGING
! if(screen->logging)
! CloseLog(screen);
#endif
#ifndef AMOEBA
--- 3748,3758 ----
#endif /* USE_SYSV_UTMP */
#endif /* UTMP */
#ifndef AMOEBA
! close(term->screen.respond); /* close explicitly to avoid race with slave side */
#endif
#ifdef ALLOWLOGGING
! if(term->screen.logging)
! CloseLog(&term->screen);
#endif
#ifndef AMOEBA
Index: resize.c
*** /build/x11r6/XFree86-3.1.2Cb-960209/xc/programs/xterm/resize.c Sun Jan 14 14:18:01 1996
--- /build/x11r6/XFree86-current/xc/programs/xterm/resize.c Sat Feb 10 19:02:58 1996
***************
*** 220,226 ****
#ifdef USE_TERMCAP
static char *strindex PROTO((char *s1, char *s2));
! #ifndef __NetBSD__
#include <termcap.h>
#else
#include <curses.h>
--- 220,226 ----
#ifdef USE_TERMCAP
static char *strindex PROTO((char *s1, char *s2));
! #if !defined(__NetBSD__) && !(defined(sun) && !defined(SVR4))
#include <termcap.h>
#else
#include <curses.h>