v02i078: X11 Release 3, Patch4
Mike Wexler
mikew at wyse.wyse.com
Sat Jan 7 11:41:25 AEST 1989
Submitted-by: Xstuff service <xstuff at EXPO.LCS.MIT.EDU>
Posting-number: Volume 2, Issue 78
Archive-name: x11.3/patch4
[I had some problems applying this patch. Some of the SCCS headers
didn't match. Also the patch to xterm.man didn't work very well.
Your mileage may vary. -mcw]
This patch fixes problems in the following files:
clients/xterm/Imakefile add comment about -DWTMP and -DLASTLOG
clients/xterm/Tekproc.c fix menu action problems that abort xterm
clients/xterm/VTPrsTbl.c added support for DECID sequence ESC Z
clients/xterm/VTparse.def added support for DECID sequence ESC Z
clients/xterm/VTparse.h added support for DECID sequence ESC Z
clients/xterm/button.c fixed extend selection bugs and core dump
clients/xterm/charproc.c ESC Z and pointer escape sequences
clients/xterm/main.c utmp bug and optional WTMP and LASTLOG
clients/xterm/misc.c fix error message and cleanup
clients/xterm/screen.c fix resizing window with selection bug
clients/xterm/xterm.man no longer using vtsingle or vtbold
Apply these fixes from the top of your X sources as follows:
% patch -p0 <fix4
*** /tmp/,RCSt1a11316 Fri Jan 6 10:48:49 1989
--- clients/xterm/Imakefile Wed Jan 4 14:33:17 1989
***************
*** 24,29 ****
--- 24,30 ----
#else
#define GettyProgram /* as nothing */
#endif
+ /* add -DWTMP and -DLASTLOG if you want them */
DEFINES = -DMODEMENU -DUTMP -DBcopy=bcopy GettyProgram
SRCS1 = button.c charproc.c cursor.c data.c input.c \
main.c menu.c misc.c screen.c scrollbar.c tabs.c \
*** /tmp/,RCSt1a11350 Fri Jan 6 10:49:02 1989
--- clients/xterm/Tekproc.c Wed Jan 4 12:01:42 1989
***************
*** 1,5 ****
/*
! * $XConsortium: Tekproc.c,v 1.44 88/11/16 13:45:06 rws Exp $
*
* Warning, there be crufty dragons here.
*/
--- 1,5 ----
/*
! * $XConsortium: Tekproc.c,v 1.47 89/01/04 12:01:34 jim Exp $
*
* Warning, there be crufty dragons here.
*/
***************
*** 121,127 ****
#define unput(c) *Tpushback++ = c
#ifndef lint
! static char rcs_id[] = "$XConsortium: Tekproc.c,v 1.44 88/11/16 13:45:06 rws Exp $";
#endif /* lint */
static XPoint *T_box[TEKNUMFONTS] = {
--- 121,127 ----
#define unput(c) *Tpushback++ = c
#ifndef lint
! static char rcs_id[] = "$XConsortium: Tekproc.c,v 1.47 89/01/04 12:01:34 jim Exp $";
#endif /* lint */
static XPoint *T_box[TEKNUMFONTS] = {
***************
*** 679,685 ****
register int border = 2 * screen->border;
register double d;
! XClearWindow(screen->display, TWindow(screen));
TWidth(screen) = w->core.width - border;
THeight(screen) = w->core.height - border;
TekScale(screen) = (double)TWidth(screen) / TEKWIDTH;
--- 679,685 ----
register int border = 2 * screen->border;
register double d;
! if (TWindow(screen)) XClearWindow(screen->display, TWindow(screen));
TWidth(screen) = w->core.width - border;
THeight(screen) = w->core.height - border;
TekScale(screen) = (double)TWidth(screen) / TEKWIDTH;
***************
*** 1166,1173 ****
if ((XValue&pr) || (YValue&pr))
sizehints.flags |= USSize|USPosition;
else sizehints.flags |= PSize|PPosition;
! tw->core.width = sizehints.width = width;
! tw->core.height = sizehints.height = height;
if ((WidthValue&pr) || (HeightValue&pr))
sizehints.flags |= USSize;
else sizehints.flags |= PSize;
--- 1166,1173 ----
if ((XValue&pr) || (YValue&pr))
sizehints.flags |= USSize|USPosition;
else sizehints.flags |= PSize|PPosition;
! sizehints.width = width;
! sizehints.height = height;
if ((WidthValue&pr) || (HeightValue&pr))
sizehints.flags |= USSize;
else sizehints.flags |= PSize;
***************
*** 1305,1310 ****
--- 1305,1311 ----
tek->count = 0;
tek->ptr = tek->data;
Tpushback = Tpushb;
+ Tbptr = Tbuffer;
screen->cur_X = 0;
screen->cur_Y = TEKHOME;
line_pt = Tline;
*** /tmp/,RCSt1a11362 Fri Jan 6 10:49:06 1989
--- clients/xterm/VTPrsTbl.c Wed Jan 4 13:37:47 1989
***************
*** 1,5 ****
/*
! * $XConsortium: VTPrsTbl.c,v 1.2 88/09/06 17:07:40 jim Exp $
*/
--- 1,5 ----
/*
! * $XConsortium: VTPrsTbl.c,v 1.3 89/01/04 13:37:41 jim Exp $
*/
***************
*** 29,41 ****
*/
#ifndef lint
! static char *rcsid_VTparsetable_c = "$XConsortium: VTPrsTbl.c,v 1.2 88/09/06 17:07:40 jim Exp $";
#endif /* lint */
#include "VTparse.h"
#ifndef lint
! static char rcs_id[] = "$XConsortium: VTPrsTbl.c,v 1.2 88/09/06 17:07:40 jim Exp $";
#endif /* lint */
/*
* Stupid Apollo C preprocessor can't handle long lines. So... To keep
* it happy, we put each onto a seperate line.... Sigh...
--- 29,42 ----
*/
#ifndef lint
! static char *rcsid_VTparsetable_c = "$XConsortium: VTPrsTbl.c,v 1.3 89/01/04 13:37:41 jim Exp $";
#endif /* lint */
#include "VTparse.h"
#ifndef lint
! static char rcs_id[] = "$XConsortium: VTPrsTbl.c,v 1.3 89/01/04 13:37:41 jim Exp $";
#endif /* lint */
+
/*
* Stupid Apollo C preprocessor can't handle long lines. So... To keep
* it happy, we put each onto a seperate line.... Sigh...
***************
*** 807,813 ****
/* X Y Z [ */
CASE_GROUND_STATE,
CASE_GROUND_STATE,
! CASE_GROUND_STATE,
CASE_CSI_STATE,
/* \ ] ^ _ */
CASE_GROUND_STATE,
--- 808,814 ----
/* X Y Z [ */
CASE_GROUND_STATE,
CASE_GROUND_STATE,
! CASE_DECID,
CASE_CSI_STATE,
/* \ ] ^ _ */
CASE_GROUND_STATE,
*** /tmp/,RCSt1a11371 Fri Jan 6 10:49:10 1989
--- clients/xterm/VTparse.def Wed Jan 4 13:37:49 1989
***************
*** 1,5 ****
#
! # $XConsortium: VTparse.def,v 1.2 88/09/06 14:35:13 jim Exp $
#
# List of symbols that need to be defined for VTparse.h. If you need to
# change any of the CASE_ macros, make the change here and rerun the command
--- 1,5 ----
#
! # $XConsortium: VTparse.def,v 1.3 89/01/04 13:37:48 jim Exp $
#
# List of symbols that need to be defined for VTparse.h. If you need to
# change any of the CASE_ macros, make the change here and rerun the command
***************
*** 73,75 ****
--- 73,76 ----
CASE_XTERM_SAVE
CASE_XTERM_RESTORE
CASE_XTERM_TITLE
+ CASE_DECID
*** /tmp/,RCSt1a11377 Fri Jan 6 10:49:12 1989
--- clients/xterm/VTparse.h Wed Jan 4 13:37:50 1989
***************
*** 1,5 ****
/*
! * $XConsortium: VTparse.h,v 1.3 88/09/06 17:07:45 jim Exp $
*/
--- 1,5 ----
/*
! * $XConsortium: VTparse.h,v 1.4 89/01/04 13:37:49 jim Exp $
*/
***************
*** 109,111 ****
--- 109,112 ----
#define CASE_XTERM_SAVE 64
#define CASE_XTERM_RESTORE 65
#define CASE_XTERM_TITLE 66
+ #define CASE_DECID 67
*** /tmp/,RCSt1a11389 Fri Jan 6 10:49:21 1989
--- clients/xterm/button.c Thu Jan 5 12:49:10 1989
***************
*** 1,5 ****
/*
! * $XConsortium: button.c,v 1.24 88/11/16 13:48:39 rws Exp $
*/
--- 1,5 ----
/*
! * $XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $
*/
***************
*** 35,41 ****
J. Gettys.
*/
#ifndef lint
! static char rcs_id[] = "$XConsortium: button.c,v 1.24 88/11/16 13:48:39 rws Exp $";
#endif /* lint */
#include <X11/Xos.h>
#include <X11/Xlib.h>
--- 35,41 ----
J. Gettys.
*/
#ifndef lint
! static char rcs_id[] = "$XConsortium: button.c,v 1.32 89/01/05 12:47:45 swick Exp $";
#endif /* lint */
#include <X11/Xos.h>
#include <X11/Xlib.h>
***************
*** 130,143 ****
static int replyToEmacs;
! static Boolean SendMousePosition(w, event)
Widget w;
! XEvent* event; /* must be XButtonEvent* */
{
register TScreen *screen = &((XtermWidget)w)->screen;
if (screen->send_mouse_pos == 0) return False;
#define KeyModifiers \
(event->xbutton.state & (ShiftMask | LockMask | ControlMask | Mod1Mask | \
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask ))
--- 130,146 ----
static int replyToEmacs;
! Boolean SendMousePosition(w, event)
Widget w;
! XEvent* event;
{
register TScreen *screen = &((XtermWidget)w)->screen;
if (screen->send_mouse_pos == 0) return False;
+ if (event->type != ButtonPress && event->type != ButtonRelease)
+ return False;
+
#define KeyModifiers \
(event->xbutton.state & (ShiftMask | LockMask | ControlMask | Mod1Mask | \
Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask ))
***************
*** 149,156 ****
switch (screen->send_mouse_pos) {
case 1: /* X10 compatibility sequences */
! if (event->type == ButtonPress && KeyModifiers == 0) {
! EditorButton(event);
return True;
}
return False;
--- 152,160 ----
switch (screen->send_mouse_pos) {
case 1: /* X10 compatibility sequences */
! if (KeyModifiers == 0) {
! if (event->type == ButtonPress)
! EditorButton(event);
return True;
}
return False;
***************
*** 196,206 ****
case RIGHTEXTENSION :
ExtendExtend(event->xmotion.x, event->xmotion.y);
break;
! default :
! /* Should get here rarely when everything
! fixed with windows and the event mgr */
! /* fprintf(stderr, "Race mouse motion\n");
! */ break;
}
}
--- 200,208 ----
case RIGHTEXTENSION :
ExtendExtend(event->xmotion.x, event->xmotion.y);
break;
! case NORMAL :
! /* will get here if send_mouse_pos != 0 */
! break;
}
}
***************
*** 344,349 ****
--- 346,352 ----
String *params; /* selections in precedence order */
Cardinal *num_params;
{
+ if (SendMousePosition(w, event)) return;
_GetSelection(w, event->xbutton.time, params, *num_params);
}
***************
*** 503,508 ****
--- 506,512 ----
TScreen *screen = &((XtermWidget)w)->screen;
int row, col, coord;
+ if (SendMousePosition(w, event)) return;
firstValidRow = 0;
lastValidRow = screen->max_row;
SetSelectUnit(event->xbutton.time, selectUnit);
***************
*** 576,595 ****
ScrollSelection(screen, amount)
register TScreen* screen;
! int amount;
{
/* Sent by scrollbar stuff, so amount never takes selection out of
saved text */
startRRow += amount; endRRow += amount;
startSRow += amount; endSRow += amount;
rawRow += amount;
screen->startHRow += amount;
screen->endHRow += amount;
}
! PointToRowCol(y, x, r, c)
register int y, x;
int *r, *c;
/* Convert pixel coordinates to character coordinates.
--- 580,656 ----
ScrollSelection(screen, amount)
register TScreen* screen;
! register int amount;
{
+ register int minrow = -screen->savedlines;
+
/* Sent by scrollbar stuff, so amount never takes selection out of
saved text */
+ /* XXX - the preceeding is false; cat /etc/termcap (or anything
+ larger than the number of saved lines plus the screen height) and then
+ hit extend select */
+
startRRow += amount; endRRow += amount;
startSRow += amount; endSRow += amount;
rawRow += amount;
screen->startHRow += amount;
screen->endHRow += amount;
+
+ if (startRRow < minrow) {
+ startRRow = minrow;
+ startRCol = 0;
+ }
+ if (endRRow < minrow) {
+ endRRow = minrow;
+ endRCol = 0;
+ }
+ if (startSRow < minrow) {
+ startSRow = minrow;
+ startSCol = 0;
+ }
+ if (endSRow < minrow) {
+ endSRow = minrow;
+ endSCol = 0;
+ }
+ if (rawRow < minrow) {
+ rawRow = minrow;
+ rawCol = 0;
+ }
+ if (screen->startHRow < minrow) {
+ screen->startHRow = minrow;
+ screen->startHCol = 0;
+ }
+ if (screen->endHRow < minrow) {
+ screen->endHRow = minrow;
+ screen->endHCol = 0;
+ }
+ screen->startHCoord = Coordinate (screen->startHRow, screen->startHCol);
+ screen->endHCoord = Coordinate (screen->endHRow, screen->endHCol);
}
! ResizeSelection (screen, rows, cols)
! TScreen *screen;
! int rows, cols;
! {
! rows--; /* decr to get 0-max */
! cols--;
!
! if (startRRow > rows) startRRow = rows;
! if (startSRow > rows) startSRow = rows;
! if (endRRow > rows) endRRow = rows;
! if (endSRow > rows) endSRow = rows;
! if (rawRow > rows) rawRow = rows;
!
! if (startRCol > cols) startRCol = cols;
! if (startSCol > cols) startSCol = cols;
! if (endRCol > cols) endRCol = cols;
! if (endSCol > cols) endSCol = cols;
! if (rawCol > cols) rawCol = cols;
! }
!
! static PointToRowCol(y, x, r, c)
register int y, x;
int *r, *c;
/* Convert pixel coordinates to character coordinates.
***************
*** 820,829 ****
register int i, j;
GC tempgc;
! if (frow < 0) frow = 0;
! if (trow < 0) trow = 0;
! if (frow > screen->max_row) frow = screen->max_row;
! if (trow > screen->max_row) trow = screen->max_row;
if (frow == trow && fcol == tcol)
return;
--- 881,897 ----
register int i, j;
GC tempgc;
! if (frow < 0)
! frow = fcol = 0;
! else if (frow > screen->max_row)
! return; /* nothing to do, since trow >= frow */
!
! if (trow < 0)
! return; /* nothing to do, since frow <= trow */
! else if (trow > screen->max_row) {
! trow = screen->max_row;
! tcol = screen->max_col+1;
! }
if (frow == trow && fcol == tcol)
return;
*** /tmp/,RCSt1a11409 Fri Jan 6 10:49:31 1989
--- clients/xterm/charproc.c Wed Jan 4 15:49:55 1989
***************
*** 1,5 ****
/*
! * $XConsortium: charproc.c,v 1.62 88/11/16 18:15:34 rws Exp $
*/
--- 1,5 ----
/*
! * $XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $
*/
***************
*** 134,140 ****
#define doinput() (bcnt-- > 0 ? *bptr++ : in_put())
#ifndef lint
! static char rcs_id[] = "$XConsortium: charproc.c,v 1.62 88/11/16 18:15:34 rws Exp $";
#endif /* lint */
static long arg;
--- 134,140 ----
#define doinput() (bcnt-- > 0 ? *bptr++ : in_put())
#ifndef lint
! static char rcs_id[] = "$XConsortium: charproc.c,v 1.64 89/01/04 13:37:50 jim Exp $";
#endif /* lint */
static long arg;
***************
*** 646,651 ****
--- 646,654 ----
param[3]-1, param[4]-2);
break;
+ case CASE_DECID:
+ param[0] = -1; /* Default ID parameter */
+ /* Fall through into ... */
case CASE_DA1:
/* DA1 */
if (param[0] <= 0) { /* less than means DEFAULT */
***************
*** 2908,2912 ****
String *params; /* unused */
Cardinal *param_count; /* unused */
{
! /* do nothing */
}
--- 2911,2916 ----
String *params; /* unused */
Cardinal *param_count; /* unused */
{
! /* do nothing, but check for funny escape sequences */
! (void) SendMousePosition(w, event);
}
*** /tmp/,RCSt1a11505 Fri Jan 6 10:50:12 1989
--- clients/xterm/main.c Wed Jan 4 14:33:58 1989
***************
*** 1,5 ****
#ifndef lint
! static char rcs_id[] = "$XConsortium: main.c,v 1.97 88/11/07 11:16:34 jim Exp $";
#endif /* lint */
/*
--- 1,5 ----
#ifndef lint
! static char rcs_id[] = "$XConsortium: main.c,v 1.99 89/01/04 14:33:47 jim Exp $";
#endif /* lint */
/*
***************
*** 102,109 ****
--- 102,126 ----
#endif /* apollo */
#include <utmp.h>
+ #ifdef LASTLOG
+ #include <lastlog.h>
+ #endif
#include <sys/param.h> /* for NOFILE */
+ #ifndef UTMP_FILENAME
+ #define UTMP_FILENAME "/etc/utmp"
+ #endif
+ #ifndef LASTLOG_FILENAME
+ #define LASTLOG_FILENAME "/usr/adm/lastlog" /* only on BSD systems */
+ #endif
+ #ifndef WTMP_FILENAME
+ #if defined(SYSV) || defined(macII)
+ #define WTMP_FILENAME "/etc/wtmp"
+ #else
+ #define WTMP_FILENAME "/usr/adm/wtmp"
+ #endif
+ #endif
+
#include "ptyx.h"
#include "data.h"
#include "error.h"
***************
*** 220,226 ****
extern void endpwent();
extern struct passwd *fgetpwent();
#else /* not USE_SYSV_UTMP */
! static char etc_utmp[] = "/etc/utmp";
#endif /* USE_SYSV_UTMP */
static char *get_ty;
--- 237,249 ----
extern void endpwent();
extern struct passwd *fgetpwent();
#else /* not USE_SYSV_UTMP */
! static char etc_utmp[] = UTMP_FILENAME;
! #ifdef LASTLOG
! static char etc_lastlog[] = LASTLOG_FILENAME;
! #endif
! #ifdef WTMP
! static char etc_wtmp[] = WTMP_FILENAME;
! #endif
#endif /* USE_SYSV_UTMP */
static char *get_ty;
***************
*** 1130,1135 ****
--- 1153,1161 ----
struct passwd *pw = NULL;
#ifdef UTMP
struct utmp utmp;
+ #ifdef LASTLOG
+ struct lastlog lastlog;
+ #endif /* LASTLOG */
#endif /* UTMP */
extern int Exit();
char *getenv();
***************
*** 1704,1718 ****
(pw = getpwuid(screen->uid)) &&
(i = open(etc_utmp, O_WRONLY)) >= 0) {
bzero((char *)&utmp, sizeof(struct utmp));
! (void) strcpy(utmp.ut_line, ttydev + strlen("/dev/"));
! (void) strcpy(utmp.ut_name, pw->pw_name);
! (void) strcpy(utmp.ut_host,
! XDisplayString (screen->display));
time(&utmp.ut_time);
lseek(i, (long)(tslot * sizeof(struct utmp)), 0);
write(i, (char *)&utmp, sizeof(struct utmp));
added_utmp_entry = True;
close(i);
} else
tslot = -tslot;
}
--- 1730,1775 ----
(pw = getpwuid(screen->uid)) &&
(i = open(etc_utmp, O_WRONLY)) >= 0) {
bzero((char *)&utmp, sizeof(struct utmp));
! (void) strncpy(utmp.ut_line,
! ttydev + strlen("/dev/"),
! sizeof(utmp.ut_line));
! (void) strncpy(utmp.ut_name, pw->pw_name,
! sizeof(utmp.ut_name));
! (void) strncpy(utmp.ut_host,
! XDisplayString (screen->display),
! sizeof(utmp.ut_host));
time(&utmp.ut_time);
lseek(i, (long)(tslot * sizeof(struct utmp)), 0);
write(i, (char *)&utmp, sizeof(struct utmp));
+ close(i);
added_utmp_entry = True;
+ #ifdef WTMP
+ if (term->misc.login_shell &&
+ (i = open(etc_wtmp, O_WRONLY|O_APPEND)) >= 0) {
+ write(i, (char *)&utmp,
+ sizeof(struct utmp));
close(i);
+ }
+ #endif /* WTMP */
+ #ifdef LASTLOG
+ if (term->misc.login_shell &&
+ (i = open(etc_lastlog, O_WRONLY)) >= 0) {
+ bzero((char *)&lastlog,
+ sizeof (struct lastlog));
+ (void) strncpy(lastlog.ll_line, ttydev +
+ sizeof("/dev"),
+ sizeof (lastlog.ll_line));
+ (void) strncpy(lastlog.ll_host,
+ XDisplayString (screen->display),
+ sizeof (lastlog.ll_host));
+ time(&lastlog.ll_time);
+ lseek(i, (long)(screen->uid *
+ sizeof (struct lastlog)), 0);
+ write(i, (char *)&lastlog,
+ sizeof (struct lastlog));
+ close(i);
+ }
+ #endif /* LASTLOG */
} else
tslot = -tslot;
}
***************
*** 2020,2025 ****
--- 2077,2092 ----
lseek(i, (long)(tslot * sizeof(struct utmp)), 0);
write(i, (char *)&utmp, sizeof(struct utmp));
close(i);
+ #ifdef WTMP
+ if (term->misc.login_shell &&
+ (i = open(etc_wtmp, O_WRONLY | O_APPEND)) >= 0) {
+ (void) strncpy(utmp.ut_line, ttydev +
+ sizeof("/dev"), sizeof (utmp.ut_line));
+ time(&utmp.ut_time);
+ write(i, (char *)&utmp, sizeof(struct utmp));
+ close(i);
+ }
+ #endif /* WTMP */
}
#endif /* USE_SYSV_UTMP */
#endif /* UTMP */
*** /tmp/,RCSt1a11555 Fri Jan 6 10:50:27 1989
--- clients/xterm/misc.c Wed Jan 4 12:25:20 1989
***************
*** 1,5 ****
/*
! * $XConsortium: misc.c,v 1.28 88/11/17 16:07:46 rws Exp $
*/
--- 1,5 ----
/*
! * $XConsortium: misc.c,v 1.29 89/01/04 12:25:17 jim Exp $
*/
***************
*** 45,50 ****
--- 45,51 ----
#include "wait.ic"
#include "waitmask.ic"
#include <X11/Shell.h>
+ #include <X11/Xmu.h>
extern char *malloc();
extern char *mktemp();
***************
*** 53,59 ****
extern void abort();
#ifndef lint
! static char rcs_id[] = "$XConsortium: misc.c,v 1.28 88/11/17 16:07:46 rws Exp $";
#endif /* lint */
xevents()
--- 54,60 ----
extern void abort();
#ifndef lint
! static char rcs_id[] = "$XConsortium: misc.c,v 1.29 89/01/04 12:25:17 jim Exp $";
#endif /* lint */
xevents()
***************
*** 880,893 ****
Display *d;
register XErrorEvent *ev;
{
! char buffer[BUFSIZ];
! XGetErrorText(d, ev->error_code, buffer, BUFSIZ);
! fprintf(stderr, "%s: %s\n", xterm_name, buffer);
! fprintf(stderr, "Request code %d, minor code %d, serial #%ld, resource id %ld\n",
! ev->request_code, ev->minor_code, ev->serial, (long)ev->resourceid);
! _cleanup();
! abort();
! /* Exit(ERROR_XERROR); */
}
/*ARGSUSED*/
--- 881,889 ----
Display *d;
register XErrorEvent *ev;
{
! fprintf (stderr, "%s: warning, error event receieved:\n", xterm_name);
! (void) XmuPrintDefaultErrorMessage (d, ev, stderr);
! Exit (ERROR_XERROR);
}
/*ARGSUSED*/
*** /tmp/,RCSt1a11588 Fri Jan 6 10:50:37 1989
--- clients/xterm/screen.c Tue Jan 3 16:18:12 1989
***************
*** 1,5 ****
/*
! * $XConsortium: screen.c,v 1.9 88/11/07 11:34:48 jim Exp $
*/
#include <X11/copyright.h>
--- 1,5 ----
/*
! * $XConsortium: screen.c,v 1.10 89/01/03 16:18:06 jim Exp $
*/
#include <X11/copyright.h>
***************
*** 30,36 ****
/* screen.c */
#ifndef lint
! static char rcs_id[] = "$XConsortium: screen.c,v 1.9 88/11/07 11:34:48 jim Exp $";
#endif /* lint */
#include <X11/Xlib.h>
--- 30,36 ----
/* screen.c */
#ifndef lint
! static char rcs_id[] = "$XConsortium: screen.c,v 1.10 89/01/03 16:18:06 jim Exp $";
#endif /* lint */
#include <X11/Xlib.h>
***************
*** 526,531 ****
--- 526,532 ----
screen->fullVwin.fullheight = height;
screen->fullVwin.fullwidth = width;
+ ResizeSelection (screen, rows, cols);
#ifdef sun
#ifdef TIOCSSIZE
/* Set tty's idea of window size */
*** /tmp/,RCSt1a11640 Fri Jan 6 10:50:55 1989
--- clients/xterm/xterm.man Wed Jan 4 15:51:15 1989
***************
*** 337,343 ****
.TP 8
.B \-fn \fIfont\fP
This option specifies the font to be used for displaying normal text. The
! default is ``vtsingle.''
.TP 8
.B \-name \fIname\fP
This option specifies the application name under which resources are to be
--- 337,343 ----
.TP 8
.B \-fn \fIfont\fP
This option specifies the font to be used for displaying normal text. The
! default is \fIfixed\fP.
.TP 8
.B \-name \fIname\fP
This option specifies the application name under which resources are to be
***************
*** 410,417 ****
Specifies whether or not synthetic key and button events (generated using
the X protocol SendEvent request) should be interpreted or discarded.
The default is ``false'' meaning they are discarded. Note that allowing
! such events creates a very large security hole (imagine someone sending
! your idle shell the key events for ``rm -fr *'').
.sp
.TP 8
.B "alwaysHighlight (\fPclass\fB AlwaysHighlight)"
--- 410,416 ----
Specifies whether or not synthetic key and button events (generated using
the X protocol SendEvent request) should be interpreted or discarded.
The default is ``false'' meaning they are discarded. Note that allowing
! such events creates a very large security hole.
.sp
.TP 8
.B "alwaysHighlight (\fPclass\fB AlwaysHighlight)"
***************
*** 818,823 ****
--- 817,830 ----
correctly (in the new colors), to minimize the probability of
spoofing. You can also bring up the menu again and make sure that a check
mark appears next to the entry.
+ .PP
+ \fBSecure Keyboard\fP mode will be disabled automatically if your xterm
+ window becomes iconified (or otherwise unmapped), or if you start up
+ a reparenting window manager (that places a title bar or other decoration
+ around the window) while in \fBSecure Keyboard\fP mode. (This is a
+ feature of the X protocol not easily overcome.) When this happens,
+ the foreground and background colors will be switched back and the bell
+ will sound in warning.
.SH "CHARACTER CLASSES"
Clicking the middle mouse button twice in rapid succession will cause all
characters of the same class (e.g. letters, white space, punctuation) to be
--
Mike Wexler(wyse!mikew) Phone: (408)433-1000 x1330
Moderator of comp.sources.x
More information about the Comp.sources.x
mailing list