home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume18 / X11R5-fix10 / part02 < prev    next >
Text File  |  1992-07-20  |  40KB  |  1,395 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!europa.asd.contel.com!darwin.sura.net!mips!msi!dcmartin
  3. From: rws@EXPO.LCS.MIT.EDU (Bob Scheifler)
  4. Subject: v18i035: X11R5 public fix #10, Part02/02
  5. Message-ID: <1992Jul20.154638.2350@msi.com>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. References: <csx-18i034-X11R5-fix10@uunet.UU.NET>
  10. Date: Mon, 20 Jul 1992 15:46:38 GMT
  11. Approved: dcmartin@msi.com
  12. Lines: 1381
  13.  
  14. Submitted-by: rws@EXPO.LCS.MIT.EDU (Bob Scheifler)
  15. Posting-number: Volume 18, Issue 35
  16. Archive-name: X11R5-fix10/part02
  17.  
  18. #!/bin/sh
  19. # this is part.02 (part 2 of a multipart archive)
  20. # do not concatenate these parts, unpack them in order with /bin/sh
  21. # file fix-10 continued
  22. #
  23. if test ! -r _shar_seq_.tmp; then
  24.     echo 'Please unpack part 1 first!'
  25.     exit 1
  26. fi
  27. (read Scheck
  28.  if test "$Scheck" != 2; then
  29.     echo Please unpack part "$Scheck" next!
  30.     exit 1
  31.  else
  32.     exit 0
  33.  fi
  34. ) < _shar_seq_.tmp || exit 1
  35. if test ! -f _shar_wnt_.tmp; then
  36.     echo 'x - still skipping fix-10'
  37. else
  38. echo 'x - continuing file fix-10'
  39. sed 's/^X//' << 'SHAR_EOF' >> 'fix-10' &&
  40. X          sizep->flags |= PBaseSize;
  41. X          if (w->wm.base_width == XtUnspecifiedShellInt)
  42. X          w->wm.base_width = 0;
  43. --- 1104,1112 ----
  44. X          || sizep->max_aspect.y != XtUnspecifiedShellInt) {
  45. X          sizep->flags |= PAspect;
  46. X      }
  47. !     if (sizep->flags & PBaseSize
  48. !         || w->wm.base_width != XtUnspecifiedShellInt
  49. !         || w->wm.base_height != XtUnspecifiedShellInt) {
  50. X          sizep->flags |= PBaseSize;
  51. X          if (w->wm.base_width == XtUnspecifiedShellInt)
  52. X          w->wm.base_width = 0;
  53. ***************
  54. *** 1112,1124 ****
  55. X          if (w->wm.base_height == XtUnspecifiedShellInt)
  56. X          w->wm.base_height = 0;
  57. X      }
  58. !     if (sizep->width_inc != XtUnspecifiedShellInt
  59. X          || sizep->height_inc != XtUnspecifiedShellInt) {
  60. X          if (sizep->width_inc < 1) sizep->width_inc = 1;
  61. X          if (sizep->height_inc < 1) sizep->height_inc = 1;
  62. X          sizep->flags |= PResizeInc;
  63. X      }
  64. !     if (sizep->max_width != XtUnspecifiedShellInt
  65. X          || sizep->max_height != XtUnspecifiedShellInt) {
  66. X          sizep->flags |= PMaxSize;
  67. X          if (sizep->max_width == XtUnspecifiedShellInt)
  68. --- 1113,1127 ----
  69. X          if (w->wm.base_height == XtUnspecifiedShellInt)
  70. X          w->wm.base_height = 0;
  71. X      }
  72. !     if (sizep->flags & PResizeInc
  73. !         || sizep->width_inc != XtUnspecifiedShellInt
  74. X          || sizep->height_inc != XtUnspecifiedShellInt) {
  75. X          if (sizep->width_inc < 1) sizep->width_inc = 1;
  76. X          if (sizep->height_inc < 1) sizep->height_inc = 1;
  77. X          sizep->flags |= PResizeInc;
  78. X      }
  79. !     if (sizep->flags & PMaxSize
  80. !         || sizep->max_width != XtUnspecifiedShellInt
  81. X          || sizep->max_height != XtUnspecifiedShellInt) {
  82. X          sizep->flags |= PMaxSize;
  83. X          if (sizep->max_width == XtUnspecifiedShellInt)
  84. ***************
  85. *** 1126,1133 ****
  86. X          if (sizep->max_height == XtUnspecifiedShellInt)
  87. X          sizep->max_height = BIGSIZE;
  88. X      }
  89. !     if(sizep->min_width != XtUnspecifiedShellInt
  90. !        || sizep->min_height != XtUnspecifiedShellInt) {
  91. X          sizep->flags |= PMinSize;
  92. X          if (sizep->min_width == XtUnspecifiedShellInt)
  93. X          sizep->min_width = 1;
  94. --- 1129,1137 ----
  95. X          if (sizep->max_height == XtUnspecifiedShellInt)
  96. X          sizep->max_height = BIGSIZE;
  97. X      }
  98. !     if (sizep->flags & PMinSize
  99. !         || sizep->min_width != XtUnspecifiedShellInt
  100. !         || sizep->min_height != XtUnspecifiedShellInt) {
  101. X          sizep->flags |= PMinSize;
  102. X          if (sizep->min_width == XtUnspecifiedShellInt)
  103. X          sizep->min_width = 1;
  104. ***************
  105. *** 1766,1777 ****
  106. X      _SetWMSizeHints((WMShellWidget)w);
  107. X      }
  108. X  
  109. !     if (w->shell.override_redirect) return XtGeometryDone;
  110. X  
  111. X      /* If no non-stacking bits are set, there's no way to tell whether
  112. X         or not this worked, so assume it did */
  113. X  
  114. !     if (!(mask & ~(CWStackMode | CWSibling))) return XtGeometryDone;
  115. X  
  116. X      if (wm && ((WMShellWidget)w)->wm.wait_for_wm == FALSE) {
  117. X          /* the window manager is sick
  118. --- 1770,1781 ----
  119. X      _SetWMSizeHints((WMShellWidget)w);
  120. X      }
  121. X  
  122. !     if (w->shell.override_redirect) return XtGeometryYes;
  123. X  
  124. X      /* If no non-stacking bits are set, there's no way to tell whether
  125. X         or not this worked, so assume it did */
  126. X  
  127. !     if (!(mask & ~(CWStackMode | CWSibling))) return XtGeometryYes;
  128. X  
  129. X      if (wm && ((WMShellWidget)w)->wm.wait_for_wm == FALSE) {
  130. X          /* the window manager is sick
  131. ***************
  132. *** 1818,1824 ****
  133. X              w->shell.client_specified |= _XtShellPositionValid;
  134. X          }
  135. X          else w->shell.client_specified &= ~_XtShellPositionValid;
  136. !         return XtGeometryDone;
  137. X          }
  138. X      } else if (!wm ||
  139. X             (event.type == ClientMessage &&
  140. --- 1822,1828 ----
  141. X              w->shell.client_specified |= _XtShellPositionValid;
  142. X          }
  143. X          else w->shell.client_specified &= ~_XtShellPositionValid;
  144. !         return XtGeometryYes;
  145. X          }
  146. X      } else if (!wm ||
  147. X             (event.type == ClientMessage &&
  148. ***************
  149. *** 1830,1836 ****
  150. X          w->core.x = event.xclient.data.s[0];
  151. X          w->core.y = event.xclient.data.s[1];
  152. X          w->shell.client_specified |= _XtShellPositionValid;
  153. !         return XtGeometryDone;
  154. X      } else XtAppWarningMsg(XtWidgetToApplicationContext((Widget)w),
  155. X                     "internalError", "shell", XtCXtToolkitError,
  156. X                     "Shell's window manager interaction is broken",
  157. --- 1834,1840 ----
  158. X          w->core.x = event.xclient.data.s[0];
  159. X          w->core.y = event.xclient.data.s[1];
  160. X          w->shell.client_specified |= _XtShellPositionValid;
  161. !         return XtGeometryYes;
  162. X      } else XtAppWarningMsg(XtWidgetToApplicationContext((Widget)w),
  163. X                     "internalError", "shell", XtCXtToolkitError,
  164. X                     "Shell's window manager interaction is broken",
  165. ***************
  166. *** 1948,1956 ****
  167. X      }
  168. X  #undef NEQ
  169. X  
  170. !      if (set_prop && nwmshell->wm.transient != owmshell->wm.transient) {
  171. X           if (nwmshell->wm.transient) {
  172. X          if (!XtIsTransientShell(new) &&
  173. X              nwmshell->wm.wm_hints.window_group != 
  174. X                 XtUnspecifiedWindowGroup)
  175. X              XSetTransientForHint(XtDisplay(new), XtWindow(new),
  176. --- 1952,1962 ----
  177. X      }
  178. X  #undef NEQ
  179. X  
  180. !      if (XtIsRealized(new) &&
  181. !         nwmshell->wm.transient != owmshell->wm.transient) {
  182. X           if (nwmshell->wm.transient) {
  183. X          if (!XtIsTransientShell(new) &&
  184. +             !nwmshell->shell.override_redirect &&
  185. X              nwmshell->wm.wm_hints.window_group != 
  186. X                 XtUnspecifiedWindowGroup)
  187. X              XSetTransientForHint(XtDisplay(new), XtWindow(new),
  188. ***************
  189. *** 1973,1982 ****
  190. X      TransientShellWidget new = (TransientShellWidget)newW;
  191. X      
  192. X      if (XtIsRealized(newW)
  193. !     && ((new->transient.transient_for != old->transient.transient_for)
  194. !         || (new->transient.transient_for == NULL
  195. !         && (new->wm.wm_hints.window_group
  196. !             != old->wm.wm_hints.window_group)))) {
  197. X  
  198. X      _SetTransientForHint(new, True);
  199. X      }
  200. --- 1979,1989 ----
  201. X      TransientShellWidget new = (TransientShellWidget)newW;
  202. X      
  203. X      if (XtIsRealized(newW)
  204. !     && ((new->wm.transient && !old->wm.transient)
  205. !         || ((new->transient.transient_for != old->transient.transient_for)
  206. !         || (new->transient.transient_for == NULL
  207. !             && (new->wm.wm_hints.window_group
  208. !             != old->wm.wm_hints.window_group))))) {
  209. X  
  210. X      _SetTransientForHint(new, True);
  211. X      }
  212. *** /tmp/,RCSt1029904    Tue Mar 17 11:40:32 1992
  213. --- mit/lib/Xt/Geometry.c    Tue Feb 11 17:14:44 1992
  214. ***************
  215. *** 1,4 ****
  216. ! /* $XConsortium: Geometry.c,v 1.54 91/09/23 11:09:45 converse Exp $ */
  217. X  
  218. X  /***********************************************************
  219. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  220. --- 1,4 ----
  221. ! /* $XConsortium: Geometry.c,v 1.55 92/02/11 17:13:18 converse Exp $ */
  222. X  
  223. X  /***********************************************************
  224. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  225. ***************
  226. *** 68,74 ****
  227. X      XtGeometryResult returnCode;
  228. X      Widget parent = widget->core.parent;
  229. X      XtGeometryMask    changeMask;
  230. !     Boolean managed, parentRealized;
  231. X      XWindowChanges changes;
  232. X  
  233. X      *clear_rect_obj = FALSE;
  234. --- 68,74 ----
  235. X      XtGeometryResult returnCode;
  236. X      Widget parent = widget->core.parent;
  237. X      XtGeometryMask    changeMask;
  238. !     Boolean managed, parentRealized, rgm = False;
  239. X      XWindowChanges changes;
  240. X  
  241. X      *clear_rect_obj = FALSE;
  242. ***************
  243. *** 84,89 ****
  244. --- 84,90 ----
  245. X          if (  ext->version == XtShellExtensionVersion
  246. X            && ext->record_size == sizeof(ShellClassExtensionRec)) {
  247. X          manager = ext->root_geometry_manager;
  248. +         rgm = True;
  249. X          } else {
  250. X          String params[1];
  251. X          Cardinal num_params = 1;
  252. ***************
  253. *** 215,220 ****
  254. --- 216,224 ----
  255. X      }
  256. X  
  257. X      if (XtIsWidget(widget)) {    /* reconfigure the window (if needed) */
  258. +     if (rgm) return returnCode;
  259. X      if (changes.x != widget->core.x) {
  260. X           changeMask |= CWX;
  261. X           changes.x = widget->core.x;
  262. *** /tmp/,RCSt1029924    Tue Mar 17 11:41:32 1992
  263. --- mit/lib/Xt/Convert.c    Thu Feb 27 17:09:51 1992
  264. ***************
  265. *** 1,4 ****
  266. ! /* $XConsortium: Convert.c,v 1.63 91/11/26 13:54:29 converse Exp $ */
  267. X  
  268. X  /***********************************************************
  269. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  270. --- 1,4 ----
  271. ! /* $XConsortium: Convert.c,v 1.65 92/02/27 17:08:12 converse Exp $ */
  272. X  
  273. X  /***********************************************************
  274. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  275. ***************
  276. *** 64,70 ****
  277. X      ConverterPtr rec;
  278. X      int i;
  279. X      XtCacheType cache_type;
  280. !     for (i = CONVERTHASHSIZE; --i >- 0; ) {
  281. X          for (rec = *globalConverterTable++; rec; rec = rec->next) {
  282. X          cache_type = rec->cache_type;
  283. X          if (rec->do_ref_count)
  284. --- 64,70 ----
  285. X      ConverterPtr rec;
  286. X      int i;
  287. X      XtCacheType cache_type;
  288. !     for (i = CONVERTHASHSIZE; --i >= 0; ) {
  289. X          for (rec = *globalConverterTable++; rec; rec = rec->next) {
  290. X          cache_type = rec->cache_type;
  291. X          if (rec->do_ref_count)
  292. ***************
  293. *** 738,747 ****
  294. --- 738,755 ----
  295. X      {
  296. X      Heap *heap;
  297. X      XtPointer closure = NULL;
  298. +     unsigned int supplied_size = to->size;
  299. X      Boolean do_ref = cP->do_ref_count && cache_ref_return;
  300. X      Boolean do_free = False;
  301. X      Boolean retval =
  302. X          (*(XtTypeConverter)converter)(dpy, args, &num_args, from, to, &closure);
  303. +     if (retval == False && supplied_size < to->size) {
  304. +         /* programmer error: caller must allocate sufficient storage */
  305. +         *cache_ref_return = NULL;
  306. +         return False;
  307. +     }
  308. X      if ((cP->cache_type == XtCacheNone) || do_ref) {
  309. X          heap = NULL;
  310. X          do_free = True;
  311. *** /tmp/,RCSt1029964    Tue Mar 17 11:44:10 1992
  312. --- mit/lib/Xt/Event.c    Fri Feb 21 15:56:45 1992
  313. ***************
  314. *** 1,4 ****
  315. ! /* $XConsortium: Event.c,v 1.135 91/10/25 13:19:23 converse Exp $ */
  316. X  
  317. X  /***********************************************************
  318. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  319. --- 1,4 ----
  320. ! /* $XConsortium: Event.c,v 1.136 92/02/21 15:54:06 converse Exp $ */
  321. X  
  322. X  /***********************************************************
  323. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  324. ***************
  325. *** 510,516 ****
  326. X  
  327. X  #define EHMAXSIZE 25 /* do not make whopping big */
  328. X  
  329. ! static void CallEventHandlers(widget, event, mask)
  330. X      Widget     widget;
  331. X      XEvent    *event;
  332. X      EventMask  mask;
  333. --- 510,516 ----
  334. X  
  335. X  #define EHMAXSIZE 25 /* do not make whopping big */
  336. X  
  337. ! static Boolean CallEventHandlers(widget, event, mask)
  338. X      Widget     widget;
  339. X      XEvent    *event;
  340. X      EventMask  mask;
  341. ***************
  342. *** 551,556 ****
  343. --- 551,557 ----
  344. X      (*(proc[i]))(widget, closure[i], event, &cont_to_disp);
  345. X      if (numprocs > EHMAXSIZE)
  346. X      XtFree((char *)proc);
  347. +     return cont_to_disp;
  348. X  }
  349. X  
  350. X  static Region nullRegion;
  351. ***************
  352. *** 574,579 ****
  353. --- 575,581 ----
  354. X      XEvent nextEvent;
  355. X      Boolean was_dispatched = XtDidNothing;
  356. X      Boolean call_tm = XtDidNothing;
  357. +     Boolean cont_to_disp;
  358. X  
  359. X      if (XFilterEvent(event, XtWindow(widget)))
  360. X      return XtDidFilter;
  361. ***************
  362. *** 652,657 ****
  363. --- 654,661 ----
  364. X      if (widget->core.tm.translations &&
  365. X      (mask & widget->core.tm.translations->eventMask))
  366. X      call_tm = XtDidDispatch;
  367. +     cont_to_disp = True;
  368. X      p=widget->core.event_table;
  369. X      if (p) {
  370. X      if (p->next) {
  371. ***************
  372. *** 673,682 ****
  373. X          }
  374. X          if (numprocs) {
  375. X          if (p) {
  376. !             CallEventHandlers(widget, event, mask);
  377. X          } else {
  378. X              int i;
  379. -             Boolean cont_to_disp = True;
  380. X              for (i = 0; i < numprocs && cont_to_disp; i++)
  381. X              (*(proc[i]))(widget, closure[i], event, &cont_to_disp);
  382. X          }
  383. --- 677,685 ----
  384. X          }
  385. X          if (numprocs) {
  386. X          if (p) {
  387. !             cont_to_disp = CallEventHandlers(widget, event, mask);
  388. X          } else {
  389. X              int i;
  390. X              for (i = 0; i < numprocs && cont_to_disp; i++)
  391. X              (*(proc[i]))(widget, closure[i], event, &cont_to_disp);
  392. X          }
  393. ***************
  394. *** 683,694 ****
  395. X          was_dispatched = XtDidDispatch;
  396. X          }
  397. X      } else if (mask & p->mask) {
  398. X          was_dispatched = XtDidDispatch;
  399. -         (*p->proc)(widget, p->closure, event, &was_dispatched);
  400. -         was_dispatched = XtDidDispatch;
  401. X      }
  402. X      }
  403. !     if (call_tm)
  404. X      _XtTranslateEvent(widget, event);
  405. X      return (was_dispatched|call_tm);
  406. X  }
  407. --- 686,696 ----
  408. X          was_dispatched = XtDidDispatch;
  409. X          }
  410. X      } else if (mask & p->mask) {
  411. +         (*p->proc)(widget, p->closure, event, &cont_to_disp);
  412. X          was_dispatched = XtDidDispatch;
  413. X      }
  414. X      }
  415. !     if (call_tm && cont_to_disp)
  416. X      _XtTranslateEvent(widget, event);
  417. X      return (was_dispatched|call_tm);
  418. X  }
  419. *** /tmp/,RCSt1029986    Tue Mar 17 11:45:45 1992
  420. --- mit/lib/Xt/TranslateI.h    Mon Feb 24 17:44:54 1992
  421. ***************
  422. *** 1,4 ****
  423. ! /* $XConsortium: TranslateI.h,v 1.42 91/06/14 17:58:41 converse Exp $ */
  424. X  
  425. X  /***********************************************************
  426. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  427. --- 1,4 ----
  428. ! /* $XConsortium: TranslateI.h,v 1.43 92/02/24 17:42:20 converse Exp $ */
  429. X  
  430. X  /***********************************************************
  431. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  432. ***************
  433. *** 59,64 ****
  434. --- 59,65 ----
  435. X  typedef struct _LateBindings {
  436. X      unsigned int knot:1;
  437. X      unsigned int pair:1;
  438. +     unsigned short ref_count;    /* garbage collection */
  439. X      KeySym keysym;
  440. X  } LateBindings, *LateBindingsPtr;
  441. X  
  442. *** /tmp/,RCSt1000106    Tue Mar 17 11:47:21 1992
  443. --- mit/lib/Xt/TMparse.c    Thu Mar  5 18:49:55 1992
  444. ***************
  445. *** 1,4 ****
  446. ! /* $XConsortium: TMparse.c,v 1.123 91/07/28 11:52:14 swick Exp $ */
  447. X  
  448. X  /***********************************************************
  449. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  450. --- 1,4 ----
  451. ! /* $XConsortium: TMparse.c,v 1.128 92/03/05 18:48:55 converse Exp $ */
  452. X  
  453. X  /***********************************************************
  454. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  455. ***************
  456. *** 528,533 ****
  457. --- 528,535 ----
  458. X          *lateBindings = temp;
  459. X          temp[count].knot = notL;
  460. X          temp[count].pair = pair;
  461. +     if (count == 0)
  462. +         temp[count].ref_count = 1;
  463. X          temp[count++].keysym = keysymL;
  464. X          if (keysymR){
  465. X              temp[count].knot = notR;
  466. ***************
  467. *** 1012,1019 ****
  468. X      EventPtr event;
  469. X      Boolean* error;
  470. X  {
  471. -     char atomName[1000], *start;
  472. X      ScanWhitespace(str);
  473. X  
  474. X      if (*str == ',' || *str == ':') {
  475. --- 1014,1019 ----
  476. ***************
  477. *** 1021,1026 ****
  478. --- 1021,1027 ----
  479. X      event->event.eventCode = 0L;
  480. X          event->event.eventCodeMask = 0L;
  481. X      } else {
  482. +     char *start, atomName[1000];
  483. X      start = str;
  484. X      while (
  485. X          *str != ','
  486. ***************
  487. *** 1037,1043 ****
  488. X      bcopy(start, atomName, str-start);
  489. X      atomName[str-start] = '\0';
  490. X      event->event.eventCode = XrmStringToQuark(atomName);
  491. -     event->event.eventCodeMask = ~0L;
  492. X      event->event.matchEvent = _XtMatchAtom;
  493. X      }
  494. X      return str;
  495. --- 1038,1043 ----
  496. ***************
  497. *** 1046,1055 ****
  498. X  static ModifierMask buttonModifierMasks[] = {
  499. X      0, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask
  500. X  };
  501. X  
  502. ! static String ParseEvent(str, event,error)
  503. X      register String str;
  504. X      EventPtr    event;
  505. X      Boolean* error;
  506. X  {
  507. X      Cardinal    tmEvent;
  508. --- 1046,1058 ----
  509. X  static ModifierMask buttonModifierMasks[] = {
  510. X      0, Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask
  511. X  };
  512. + static String ParseRepeat();
  513. X  
  514. ! static String ParseEvent(str, event, reps, plus, error)
  515. X      register String str;
  516. X      EventPtr    event;
  517. +     int*    reps;
  518. +     Boolean*    plus;
  519. X      Boolean* error;
  520. X  {
  521. X      Cardinal    tmEvent;
  522. ***************
  523. *** 1070,1075 ****
  524. --- 1073,1082 ----
  525. X           return PanicModeRecovery(str);
  526. X      }
  527. X      else str++;
  528. +     if (*str == '(') {
  529. +     str = ParseRepeat(str, reps, plus, error);
  530. +     if (*error) return str;
  531. +     }
  532. X      str = (*(events[tmEvent].parseDetail))(
  533. X          str, events[tmEvent].closure, event,error);
  534. X      if (*error) return str;
  535. ***************
  536. *** 1136,1141 ****
  537. --- 1143,1156 ----
  538. X      return str;
  539. X  }
  540. X  
  541. + static EventSeqRec timerEventRec = {
  542. +     {0, 0, NULL, _XtEventTimerEventType, 0L, 0L, NULL},
  543. +     /* (StatePtr) -1 */ NULL,
  544. +     NULL,
  545. +     NULL
  546. + };
  547. X  static void RepeatDown(eventP, reps, actionsP)
  548. X      EventPtr *eventP;
  549. X      int reps;
  550. ***************
  551. *** 1146,1158 ****
  552. X      EventPtr upEvent = &upEventRec;
  553. X      register int i;
  554. X  
  555. -     static EventSeqRec timerEventRec = {
  556. -     {0, 0,NULL, _XtEventTimerEventType, 0L, 0L,NULL},
  557. -     /* (StatePtr) -1 */ NULL,
  558. -     NULL,
  559. -     NULL
  560. -     };
  561. X      downEvent = event = *eventP;
  562. X      *upEvent = *downEvent;
  563. X      upEvent->event.eventType = ((event->event.eventType == ButtonPress) ?
  564. --- 1161,1166 ----
  565. ***************
  566. *** 1163,1168 ****
  567. --- 1171,1179 ----
  568. X      upEvent->event.modifiers
  569. X          |= buttonModifierMasks[event->event.eventCode];
  570. X  
  571. +     if (event->event.lateModifiers)
  572. +     event->event.lateModifiers->ref_count += (reps - 1) * 2;
  573. X      for (i=1; i<reps; i++) {
  574. X  
  575. X      /* up */
  576. ***************
  577. *** 1197,1209 ****
  578. X      EventPtr upEvent = &upEventRec;
  579. X      register int i;
  580. X  
  581. -     static EventSeqRec timerEventRec = {
  582. -     {0, 0,NULL, _XtEventTimerEventType, 0L, 0L,NULL},
  583. -     /* (StatePtr) -1 */ NULL,
  584. -     NULL,
  585. -     NULL
  586. -     };
  587. X      downEvent = event = *eventP;
  588. X      *upEvent = *downEvent;
  589. X      upEvent->event.eventType = ((event->event.eventType == ButtonPress) ?
  590. --- 1208,1213 ----
  591. ***************
  592. *** 1214,1219 ****
  593. --- 1218,1226 ----
  594. X      upEvent->event.modifiers
  595. X          |= buttonModifierMasks[event->event.eventCode];
  596. X  
  597. +     if (event->event.lateModifiers)
  598. +     event->event.lateModifiers->ref_count += reps * 2 - 1;
  599. X      for (i=0; i<reps; i++) {
  600. X  
  601. X      if (i > 0) {
  602. ***************
  603. *** 1251,1263 ****
  604. X      EventPtr upEvent = &upEventRec;
  605. X      register int i;
  606. X  
  607. -     static EventSeqRec timerEventRec = {
  608. -     {0, 0,NULL, _XtEventTimerEventType, 0L, 0L,NULL},
  609. -     /* (StatePtr) -1 */ NULL,
  610. -     NULL,
  611. -     NULL
  612. -     };
  613. X      /* the event currently sitting in *eventP is an "up" event */
  614. X      /* we want to make it a "down" event followed by an "up" event, */
  615. X      /* so that sequence matching on the "state" side works correctly. */
  616. --- 1258,1263 ----
  617. ***************
  618. *** 1272,1277 ****
  619. --- 1272,1280 ----
  620. X      downEvent->event.modifiers
  621. X          &= ~buttonModifierMasks[event->event.eventCode];
  622. X  
  623. +     if (event->event.lateModifiers)
  624. +     event->event.lateModifiers->ref_count += reps * 2 - 1;
  625. X      /* up */
  626. X      event->next = XtNew(EventSeqRec);
  627. X      event = event->next;
  628. ***************
  629. *** 1311,1323 ****
  630. X      EventPtr upEvent = &upEventRec;
  631. X      register int i;
  632. X  
  633. -     static EventSeqRec timerEventRec = {
  634. -     {0, 0,NULL, _XtEventTimerEventType, 0L, 0L,NULL},
  635. -     /* (StatePtr) -1 */ NULL,
  636. -     NULL,
  637. -     NULL
  638. -     };
  639. X      /* the event currently sitting in *eventP is an "up" event */
  640. X      /* we want to make it a "down" event followed by an "up" event, */
  641. X      /* so that sequence matching on the "state" side works correctly. */
  642. --- 1314,1319 ----
  643. ***************
  644. *** 1332,1337 ****
  645. --- 1328,1336 ----
  646. X      downEvent->event.modifiers
  647. X          &= ~buttonModifierMasks[event->event.eventCode];
  648. X  
  649. +     if (event->event.lateModifiers)
  650. +     event->event.lateModifiers->ref_count += reps * 2;
  651. X      for (i=0; i<reps; i++) {
  652. X  
  653. X      /* up */
  654. ***************
  655. *** 1366,1371 ****
  656. --- 1365,1373 ----
  657. X  
  658. X      tempEvent = event = *eventP;
  659. X  
  660. +     if (event->event.lateModifiers)
  661. +     event->event.lateModifiers->ref_count += reps - 1;
  662. X      for (i=1; i<reps; i++) {
  663. X      event->next = XtNew(EventSeqRec);
  664. X      event = event->next;
  665. ***************
  666. *** 1386,1391 ****
  667. --- 1388,1396 ----
  668. X  
  669. X      tempEvent = event = *eventP;
  670. X  
  671. +     if (event->event.lateModifiers)
  672. +     event->event.lateModifiers->ref_count += reps - 1;
  673. X      for (i=1; i<reps; i++) {
  674. X      event->next = XtNew(EventSeqRec);
  675. X      event = event->next;
  676. ***************
  677. *** 1423,1445 ****
  678. X      }
  679. X  }
  680. X  
  681. ! static String ParseRepeat(str, eventP, actionsP)
  682. X      register String str;
  683. !     EventPtr *eventP;
  684. !     ActionPtr **actionsP;
  685. X  {
  686. -     int reps;
  687. -     Boolean plus = FALSE;
  688. -     String right_paren;
  689. X  
  690. X      /*** Parse the repetitions, for double click etc... ***/
  691. !     if (*str != '(') return str;
  692. X      str++;
  693. !     right_paren = str;
  694. !     ScanFor(right_paren, ')');
  695. !     if (isascii(*str) && isdigit(*str)) {
  696. X      String start = str;
  697. !     char repStr[100];
  698. X      int len;
  699. X  
  700. X      ScanNumeric(str);
  701. --- 1428,1446 ----
  702. X      }
  703. X  }
  704. X  
  705. ! static String ParseRepeat(str, reps, plus, error)
  706. X      register String str;
  707. !     int    *reps;
  708. !     Boolean *plus, *error;
  709. X  {
  710. X  
  711. X      /*** Parse the repetitions, for double click etc... ***/
  712. !     if (*str != '(' || !(isdigit(str[1]) || str[1] == '+' || str[1] == ')'))
  713. !     return str;
  714. X      str++;
  715. !     if (isdigit(*str)) {
  716. X      String start = str;
  717. !     char repStr[7];
  718. X      int len;
  719. X  
  720. X      ScanNumeric(str);
  721. ***************
  722. *** 1447,1464 ****
  723. X      if (len < sizeof repStr) {
  724. X          bcopy(start, repStr, len);
  725. X          repStr[len] = '\0';
  726. !         reps = StrToNum(repStr);
  727. X      } else {
  728. !         Syntax ("Repeat count too large; ignored.", "");
  729. !         return right_paren;
  730. X      }
  731. !     } else {
  732. X      Syntax("Missing repeat count.","");
  733. !     return right_paren;
  734. X      }
  735. X  
  736. X      if (*str == '+') {
  737. !     plus = TRUE;
  738. X      str++;
  739. X      }
  740. X      if (*str == ')')
  741. --- 1448,1468 ----
  742. X      if (len < sizeof repStr) {
  743. X          bcopy(start, repStr, len);
  744. X          repStr[len] = '\0';
  745. !         *reps = StrToNum(repStr);
  746. X      } else {
  747. !         Syntax("Repeat count too large.", "");
  748. !         *error = True;
  749. !         return str;
  750. X      }
  751. !     }
  752. !     if (*reps == 0) {
  753. X      Syntax("Missing repeat count.","");
  754. !     *error = True;
  755. !     return str;
  756. X      }
  757. X  
  758. X      if (*str == '+') {
  759. !     *plus = TRUE;
  760. X      str++;
  761. X      }
  762. X      if (*str == ')')
  763. ***************
  764. *** 1465,1475 ****
  765. X      str++;
  766. X      else {
  767. X      Syntax("Missing ')'.","");
  768. !     return right_paren;
  769. X      }
  770. X  
  771. -     if (reps > 1 || plus) RepeatEvent(eventP, reps, plus, actionsP);
  772. X      return str;
  773. X  }
  774. X  
  775. --- 1469,1477 ----
  776. X      str++;
  777. X      else {
  778. X      Syntax("Missing ')'.","");
  779. !     *error = True;
  780. X      }
  781. X  
  782. X      return str;
  783. X  }
  784. X  
  785. ***************
  786. *** 1525,1530 ****
  787. --- 1527,1535 ----
  788. X               }
  789. X               else str++;
  790. X      } else {
  791. +         int reps = 0;
  792. +         Boolean plus = False;
  793. X              event = XtNew(EventRec);
  794. X              event->event = nullEvent;
  795. X              event->state = /* (StatePtr) -1 */ NULL;
  796. ***************
  797. *** 1531,1541 ****
  798. X              event->next = NULL;
  799. X              event->actions = NULL;
  800. X  
  801. !         str = ParseEvent(str, event,error);
  802. X              if (*error) return str;
  803. X          *nextEvent = event;
  804. X          *actionsP = &event->actions;
  805. !         str = ParseRepeat(str, &event, actionsP);
  806. X          nextEvent = &event->next;
  807. X      }
  808. X      ScanWhitespace(str);
  809. --- 1536,1547 ----
  810. X              event->next = NULL;
  811. X              event->actions = NULL;
  812. X  
  813. !         str = ParseEvent(str, event, &reps, &plus, error);
  814. X              if (*error) return str;
  815. X          *nextEvent = event;
  816. X          *actionsP = &event->actions;
  817. !         if (reps > 1 || plus)
  818. !         RepeatEvent(&event, reps, plus, actionsP);
  819. X          nextEvent = &event->next;
  820. X      }
  821. X      ScanWhitespace(str);
  822. *** /tmp/,RCSt1000130    Tue Mar 17 11:48:45 1992
  823. --- mit/lib/Xt/TMstate.c    Thu Feb 27 17:06:01 1992
  824. ***************
  825. *** 1,4 ****
  826. ! /* $XConsortium: TMstate.c,v 1.159 91/12/03 16:33:34 converse Exp $ */
  827. X  /*LINTLIBRARY*/
  828. X  
  829. X  /***********************************************************
  830. --- 1,4 ----
  831. ! /* $XConsortium: TMstate.c,v 1.161 92/02/27 17:04:04 converse Exp $ */
  832. X  /*LINTLIBRARY*/
  833. X  
  834. X  /***********************************************************
  835. ***************
  836. *** 299,305 ****
  837. X           * late modifiers. If there isn't a match we use the
  838. X           * parser's copy
  839. X           */
  840. !         if (event->lateModifiers) {
  841. X              XtFree((char *)event->lateModifiers);
  842. X              event->lateModifiers = NULL;
  843. X          }
  844. --- 299,306 ----
  845. X           * late modifiers. If there isn't a match we use the
  846. X           * parser's copy
  847. X           */
  848. !         if (event->lateModifiers &&
  849. !             --event->lateModifiers->ref_count == 0) {
  850. X              XtFree((char *)event->lateModifiers);
  851. X              event->lateModifiers = NULL;
  852. X          }
  853. ***************
  854. *** 396,409 ****
  855. X      TMModifierMatch    modMatch;
  856. X      TMEventPtr         eventSeq;
  857. X  {
  858. !     if (typeMatch->eventCodeMask) {    /* first time? */
  859. !     typeMatch->eventCode = XInternAtom( eventSeq->xev->xany.display,
  860. !                         XrmQuarkToString(typeMatch->eventCode),
  861. !                         False
  862. !                       );
  863. !     typeMatch->eventCodeMask = 0L;
  864. !     }
  865. !     return (typeMatch->eventCode == eventSeq->event.eventCode);
  866. X  }
  867. X  
  868. X  #define IsOn(vec,idx) ((vec)[(idx)>>3] & (1 << ((idx) & 7)))
  869. --- 397,408 ----
  870. X      TMModifierMatch    modMatch;
  871. X      TMEventPtr         eventSeq;
  872. X  {
  873. !     Atom    atom;
  874. !     atom = XInternAtom(eventSeq->xev->xany.display, 
  875. !                XrmQuarkToString(typeMatch->eventCode),
  876. !                False);
  877. !     return (atom == eventSeq->event.eventCode);
  878. X  }
  879. X  
  880. X  #define IsOn(vec,idx) ((vec)[(idx)>>3] & (1 << ((idx) & 7)))
  881. *** /tmp/,RCSt1000448    Tue Mar 17 12:03:39 1992
  882. --- mit/lib/Xaw/Panner.c    Tue Mar  3 13:54:13 1992
  883. ***************
  884. *** 1,5 ****
  885. X  /*
  886. !  * $XConsortium: Panner.c,v 1.43 91/08/26 10:53:17 gildea Exp $
  887. X   *
  888. X   * Copyright 1989 Massachusetts Institute of Technology
  889. X   *
  890. --- 1,5 ----
  891. X  /*
  892. !  * $XConsortium: Panner.c,v 1.45 92/03/03 13:52:26 converse Exp $
  893. X   *
  894. X   * Copyright 1989 Massachusetts Institute of Technology
  895. X   *
  896. ***************
  897. *** 483,490 ****
  898. X   *****************************************************************************/
  899. X  
  900. X  
  901. ! static void Initialize (greq, gnew)
  902. X      Widget greq, gnew;
  903. X  {
  904. X      PannerWidget req = (PannerWidget) greq, new = (PannerWidget) gnew;
  905. X      Dimension defwidth, defheight;
  906. --- 483,492 ----
  907. X   *****************************************************************************/
  908. X  
  909. X  
  910. ! static void Initialize (greq, gnew, args, num_args)
  911. X      Widget greq, gnew;
  912. +     ArgList args;
  913. +     Cardinal *num_args;
  914. X  {
  915. X      PannerWidget req = (PannerWidget) greq, new = (PannerWidget) gnew;
  916. X      Dimension defwidth, defheight;
  917. ***************
  918. *** 531,537 ****
  919. X          gotpm = TRUE;
  920. X      }
  921. X      }
  922. !     (*gw->core.widget_class->core_class.superclass->core_class.realize)
  923. X        (gw, valuemaskp, attr);
  924. X  
  925. X      if (gotpm) XFreePixmap (XtDisplay(gw), pm);
  926. --- 533,539 ----
  927. X          gotpm = TRUE;
  928. X      }
  929. X      }
  930. !     (*pannerWidgetClass->core_class.superclass->core_class.realize)
  931. X        (gw, valuemaskp, attr);
  932. X  
  933. X      if (gotpm) XFreePixmap (XtDisplay(gw), pm);
  934. ***************
  935. *** 599,606 ****
  936. X  
  937. X  
  938. X  /* ARGSUSED */
  939. ! static Boolean SetValues (gcur, greq, gnew)
  940. X      Widget gcur, greq, gnew;
  941. X  {
  942. X      PannerWidget cur = (PannerWidget) gcur;
  943. X      PannerWidget new = (PannerWidget) gnew;
  944. --- 601,610 ----
  945. X  
  946. X  
  947. X  /* ARGSUSED */
  948. ! static Boolean SetValues (gcur, greq, gnew, args, num_args)
  949. X      Widget gcur, greq, gnew;
  950. +     ArgList args;
  951. +     Cardinal *num_args;
  952. X  {
  953. X      PannerWidget cur = (PannerWidget) gcur;
  954. X      PannerWidget new = (PannerWidget) gnew;
  955. *** /tmp/,RCSt1000745    Tue Mar 17 15:21:29 1992
  956. --- mit/clients/xterm/Imakefile    Wed Mar 11 17:36:06 1992
  957. ***************
  958. *** 1,4 ****
  959. ! XCOMM $XConsortium: Imakefile,v 1.55 91/09/22 11:40:47 rws Exp $
  960. X  XCOMM
  961. X  XCOMM                         Attention xterm porters
  962. X  XCOMM
  963. --- 1,4 ----
  964. ! XCOMM $XConsortium: Imakefile,v 1.56 92/03/11 17:35:22 gildea Exp $
  965. X  XCOMM
  966. X  XCOMM                         Attention xterm porters
  967. X  XCOMM
  968. ***************
  969. *** 20,26 ****
  970. X           PTYLIB = -lpucc
  971. X  #endif
  972. X  
  973. !    MAIN_DEFINES = -DUTMP $(TTYGROUPDEF) $(PUCCPTYDDEF)
  974. X     MISC_DEFINES = /* -DALLOWLOGFILEEXEC */
  975. X  
  976. X            SRCS1 = button.c charproc.c cursor.c data.c input.c \
  977. --- 20,31 ----
  978. X           PTYLIB = -lpucc
  979. X  #endif
  980. X  
  981. !  OSMAJORVERSION = OSMajorVersion
  982. !  OSMINORVERSION = OSMinorVersion
  983. !    MAIN_DEFINES = -DUTMP $(TTYGROUPDEF) $(PUCCPTYDDEF) \
  984. !           -DOSMAJORVERSION=$(OSMAJORVERSION) \
  985. !           -DOSMINORVERSION=$(OSMINORVERSION)
  986. X     MISC_DEFINES = /* -DALLOWLOGFILEEXEC */
  987. X  
  988. X            SRCS1 = button.c charproc.c cursor.c data.c input.c \
  989. *** /tmp/,RCSt1000549    Tue Mar 17 12:09:36 1992
  990. --- mit/clients/xterm/main.c    Wed Mar 11 17:37:01 1992
  991. ***************
  992. *** 1,5 ****
  993. X  #ifndef lint
  994. ! static char *rid="$XConsortium: main.c,v 1.199 91/12/23 17:02:24 gildea Exp $";
  995. X  #endif /* lint */
  996. X  
  997. X  /*
  998. --- 1,5 ----
  999. X  #ifndef lint
  1000. ! static char *rid="$XConsortium: main.c,v 1.200 92/03/11 17:36:12 gildea Exp $";
  1001. X  #endif /* lint */
  1002. X  
  1003. X  /*
  1004. ***************
  1005. *** 1208,1214 ****
  1006. X      strcpy(ttydev, ttyname(*pty));
  1007. X      return 0;
  1008. X  #endif
  1009. ! #ifdef sgi
  1010. X      {
  1011. X          char    *tty_name;
  1012. X  
  1013. --- 1208,1214 ----
  1014. X      strcpy(ttydev, ttyname(*pty));
  1015. X      return 0;
  1016. X  #endif
  1017. ! #if defined(sgi) && OSMAJORVERSION >= 4
  1018. X      {
  1019. X          char    *tty_name;
  1020. X  
  1021. ***************
  1022. *** 1237,1243 ****
  1023. X  #ifdef USE_GET_PSEUDOTTY
  1024. X      return ((*pty = getpseudotty (&ttydev, &ptydev)) >= 0 ? 0 : 1);
  1025. X  #else
  1026. ! #if (defined(umips) && defined (SYSTYPE_SYSV))
  1027. X      struct stat fstat_buf;
  1028. X  
  1029. X      *pty = open ("/dev/ptc", O_RDWR);
  1030. --- 1237,1243 ----
  1031. X  #ifdef USE_GET_PSEUDOTTY
  1032. X      return ((*pty = getpseudotty (&ttydev, &ptydev)) >= 0 ? 0 : 1);
  1033. X  #else
  1034. ! #if (defined(sgi) && OSMAJORVERSION < 4) || (defined(umips) && defined (SYSTYPE_SYSV))
  1035. X      struct stat fstat_buf;
  1036. X  
  1037. X      *pty = open ("/dev/ptc", O_RDWR);
  1038. *** /tmp/,RCSt1000569    Tue Mar 17 12:10:45 1992
  1039. --- mit/clients/xterm/misc.c    Fri Mar 13 17:04:37 1992
  1040. ***************
  1041. *** 1,5 ****
  1042. X  /*
  1043. !  *    $XConsortium: misc.c,v 1.90 91/07/25 17:59:05 rws Exp $
  1044. X   */
  1045. X  
  1046. X  /*
  1047. --- 1,5 ----
  1048. X  /*
  1049. !  *    $XConsortium: misc.c,v 1.92 92/03/13 17:02:08 gildea Exp $
  1050. X   */
  1051. X  
  1052. X  /*
  1053. ***************
  1054. *** 254,262 ****
  1055. X                     (event->detail == NotifyPointer) ? INWINDOW :
  1056. X                                    FOCUS);
  1057. X          if (screen->grabbedKbd && (event->mode == NotifyUngrab)) {
  1058. -             screen->grabbedKbd = FALSE;
  1059. -             ReverseVideo(term);
  1060. X              XBell(screen->display, 100);
  1061. X          }
  1062. X      }
  1063. X  }
  1064. --- 254,263 ----
  1065. X                     (event->detail == NotifyPointer) ? INWINDOW :
  1066. X                                    FOCUS);
  1067. X          if (screen->grabbedKbd && (event->mode == NotifyUngrab)) {
  1068. X              XBell(screen->display, 100);
  1069. +             ReverseVideo(term);
  1070. +             screen->grabbedKbd = FALSE;
  1071. +             update_securekbd();
  1072. X          }
  1073. X      }
  1074. X  }
  1075. ***************
  1076. *** 570,576 ****
  1077. X  
  1078. X      cp = screen->TekEmu ? Tbptr : bptr;
  1079. X      if((i = cp - screen->logstart) > 0)
  1080. !         write(screen->logfd, screen->logstart, i);
  1081. X      screen->logstart = screen->TekEmu ? Tbuffer : buffer;
  1082. X  }
  1083. X  
  1084. --- 571,577 ----
  1085. X  
  1086. X      cp = screen->TekEmu ? Tbptr : bptr;
  1087. X      if((i = cp - screen->logstart) > 0)
  1088. !         write(screen->logfd, (char *)screen->logstart, i);
  1089. X      screen->logstart = screen->TekEmu ? Tbuffer : buffer;
  1090. X  }
  1091. X  
  1092. *** /tmp/,RCSt1000589    Tue Mar 17 12:12:00 1992
  1093. --- mit/clients/xterm/charproc.c    Fri Mar 13 18:01:33 1992
  1094. ***************
  1095. *** 1,5 ****
  1096. X  /*
  1097. !  * $XConsortium: charproc.c,v 1.173 91/07/22 11:32:49 gildea Exp $
  1098. X   */
  1099. X  
  1100. X  /*
  1101. --- 1,5 ----
  1102. X  /*
  1103. !  * $XConsortium: charproc.c,v 1.176 92/03/13 18:00:30 gildea Exp $
  1104. X   */
  1105. X  
  1106. X  /*
  1107. ***************
  1108. *** 1253,1259 ****
  1109. X      if (select_mask & pty_mask && eventMode == NORMAL) {
  1110. X          if (screen->logging)
  1111. X          FlushLog(screen);
  1112. !         bcnt = read(screen->respond, bptr = buffer, BUF_SIZE);
  1113. X          if (bcnt < 0) {
  1114. X          if (errno == EIO)
  1115. X              Cleanup (0);
  1116. --- 1253,1259 ----
  1117. X      if (select_mask & pty_mask && eventMode == NORMAL) {
  1118. X          if (screen->logging)
  1119. X          FlushLog(screen);
  1120. !         bcnt = read(screen->respond, (char *)(bptr = buffer), BUF_SIZE);
  1121. X          if (bcnt < 0) {
  1122. X          if (errno == EIO)
  1123. X              Cleanup (0);
  1124. ***************
  1125. *** 1508,1513 ****
  1126. --- 1508,1514 ----
  1127. X          switch (param[i]) {
  1128. X          case 1:            /* DECCKM            */
  1129. X              (*func)(&termw->keyboard.flags, CURSOR_APL);
  1130. +             update_appcursor();
  1131. X              break;
  1132. X          case 2:            /* ANSI/VT52 mode        */
  1133. X              if (func == bitset) {
  1134. ***************
  1135. *** 1587,1593 ****
  1136. X                  screen->send_mouse_pos = 0;
  1137. X              break;
  1138. X          case 38:        /* DECTEK            */
  1139. !             if(func == bitset & !(screen->inhibit & I_TEK)) {
  1140. X                  if(screen->logging) {
  1141. X                      FlushLog(screen);
  1142. X                      screen->logstart = Tbuffer;
  1143. --- 1588,1594 ----
  1144. X                  screen->send_mouse_pos = 0;
  1145. X              break;
  1146. X          case 38:        /* DECTEK            */
  1147. !             if(func == bitset && !(screen->inhibit & I_TEK)) {
  1148. X                  if(screen->logging) {
  1149. X                      FlushLog(screen);
  1150. X                      screen->logstart = Tbuffer;
  1151. ***************
  1152. *** 1812,1818 ****
  1153. X          case 44:        /* margin bell            */
  1154. X              if(!(screen->marginbell = screen->save_modes[12]))
  1155. X                  screen->bellarmed = -1;
  1156. !             update_visualbell();
  1157. X              break;
  1158. X          case 45:        /* reverse wraparound    */
  1159. X              termw->flags &= ~REVERSEWRAP;
  1160. --- 1813,1819 ----
  1161. X          case 44:        /* margin bell            */
  1162. X              if(!(screen->marginbell = screen->save_modes[12]))
  1163. X                  screen->bellarmed = -1;
  1164. !             update_marginbell();
  1165. X              break;
  1166. X          case 45:        /* reverse wraparound    */
  1167. X              termw->flags &= ~REVERSEWRAP;
  1168. ***************
  1169. *** 2149,2158 ****
  1170. X  }
  1171. X  
  1172. X  
  1173. ! static void VTInitialize (request, new)
  1174. !    XtermWidget request, new;
  1175. X  {
  1176. X     int i;
  1177. X     /* Zero out the entire "screen" component of "new" widget,
  1178. X        then do field-by-field assigment of "screen" fields
  1179. X        that are named in the resource list. */
  1180. --- 2150,2165 ----
  1181. X  }
  1182. X  
  1183. X  
  1184. ! /* ARGSUSED */
  1185. ! static void VTInitialize (wrequest, wnew, args, num_args)
  1186. !    Widget wrequest, wnew;
  1187. !    ArgList args;
  1188. !    Cardinal *num_args;
  1189. X  {
  1190. +    XtermWidget request = (XtermWidget) wrequest;
  1191. +    XtermWidget new     = (XtermWidget) wnew;
  1192. X     int i;
  1193. X     /* Zero out the entire "screen" component of "new" widget,
  1194. X        then do field-by-field assigment of "screen" fields
  1195. X        that are named in the resource list. */
  1196. ***************
  1197. *** 2402,2408 ****
  1198. X      screen->bot_marg = screen->max_row = Height(screen) /
  1199. X                  screen->fullVwin.f_height - 1;
  1200. X  
  1201. !     screen->sc.row = screen->sc.col = screen->sc.flags = NULL;
  1202. X  
  1203. X      /* Mark screen buffer as unallocated.  We wait until the run loop so
  1204. X         that the child process does not fork and exec with all the dynamic
  1205. --- 2409,2415 ----
  1206. X      screen->bot_marg = screen->max_row = Height(screen) /
  1207. X                  screen->fullVwin.f_height - 1;
  1208. X  
  1209. !     screen->sc.row = screen->sc.col = screen->sc.flags = 0;
  1210. X  
  1211. X      /* Mark screen buffer as unallocated.  We wait until the run loop so
  1212. X         that the child process does not fork and exec with all the dynamic
  1213. ***************
  1214. *** 2411,2417 ****
  1215. X      if (!tekWidget)            /* if not called after fork */
  1216. X        screen->buf = screen->allbuf = NULL;
  1217. X  
  1218. !     screen->do_wrap = NULL;
  1219. X      screen->scrolls = screen->incopy = 0;
  1220. X      set_vt_box (screen);
  1221. X  
  1222. --- 2418,2424 ----
  1223. X      if (!tekWidget)            /* if not called after fork */
  1224. X        screen->buf = screen->allbuf = NULL;
  1225. X  
  1226. !     screen->do_wrap = 0;
  1227. X      screen->scrolls = screen->incopy = 0;
  1228. X      set_vt_box (screen);
  1229. X  
  1230. ***************
  1231. *** 2641,2647 ****
  1232. X      term->flags &= ~ORIGIN;
  1233. X      if(full) {
  1234. X          TabReset (term->tabs);
  1235. !         term->keyboard.flags = NULL;
  1236. X          update_appcursor();
  1237. X          update_appkeypad();
  1238. X          screen->gsets[0] = 'B';
  1239. --- 2648,2654 ----
  1240. X      term->flags &= ~ORIGIN;
  1241. X      if(full) {
  1242. X          TabReset (term->tabs);
  1243. !         term->keyboard.flags = 0;
  1244. X          update_appcursor();
  1245. X          update_appkeypad();
  1246. X          screen->gsets[0] = 'B';
  1247. *** /tmp/,RCSt1029848    Tue Mar 17 11:36:12 1992
  1248. --- mit/clients/editres/widgets.c    Tue Feb 11 11:49:17 1992
  1249. ***************
  1250. *** 1,5 ****
  1251. X  /*
  1252. !  * $XConsortium: widgets.c,v 1.19 91/12/06 17:20:00 dave Exp $
  1253. X   *
  1254. X   * Copyright 1989 Massachusetts Institute of Technology
  1255. X   *
  1256. --- 1,5 ----
  1257. X  /*
  1258. !  * $XConsortium: widgets.c,v 1.20 92/02/11 11:44:24 dave Exp $
  1259. X   *
  1260. X   * Copyright 1989 Massachusetts Institute of Technology
  1261. X   *
  1262. ***************
  1263. *** 835,840 ****
  1264. --- 835,842 ----
  1265. X      WNode * node = (WNode *) ptr;
  1266. X      NameInfo *old_name, *name = node->resources->res_box->name_info;
  1267. X      
  1268. +     global_resource_box_up = FALSE;
  1269. X      XtFree((XtPointer) node->resources->res_box);
  1270. X      node->resources->res_box = NULL;
  1271. X  
  1272. *** /tmp/,RCSt1029866    Tue Mar 17 11:37:36 1992
  1273. --- mit/clients/editres/handler.c    Tue Feb 11 11:49:22 1992
  1274. ***************
  1275. *** 1,5 ****
  1276. X  /*
  1277. !  * $XConsortium: handler.c,v 1.25 91/10/09 17:36:13 dave Exp $
  1278. X   *
  1279. X   * Copyright 1989 Massachusetts Institute of Technology
  1280. X   *
  1281. --- 1,5 ----
  1282. X  /*
  1283. !  * $XConsortium: handler.c,v 1.26 92/02/11 11:45:31 dave Exp $
  1284. X   *
  1285. X   * Copyright 1989 Massachusetts Institute of Technology
  1286. X   *
  1287. ***************
  1288. *** 561,569 ****
  1289. X  XtPointer shell_ptr, junk;
  1290. X  {
  1291. X      Widget shell = (Widget) shell_ptr;
  1292. -     if (streq(XtName(shell), RESOURCE_BOX))
  1293. -     global_resource_box_up = FALSE;
  1294. X  
  1295. X      XtPopdown(shell);
  1296. X      XtDestroyWidget(shell);
  1297. --- 561,566 ----
  1298. *** /tmp/,RCSt1029944    Tue Mar 17 11:42:43 1992
  1299. --- mit/clients/xauth/process.c    Tue Feb 18 18:05:08 1992
  1300. ***************
  1301. *** 1,5 ****
  1302. X  /*
  1303. !  * $XConsortium: process.c,v 1.41 92/01/22 23:39:12 gildea Exp $
  1304. X   *
  1305. X   * Copyright 1989 Massachusetts Institute of Technology
  1306. X   *
  1307. --- 1,5 ----
  1308. X  /*
  1309. !  * $XConsortium: process.c,v 1.42 92/02/18 18:05:00 gildea Exp $
  1310. X   *
  1311. X   * Copyright 1989 Massachusetts Institute of Technology
  1312. X   *
  1313. ***************
  1314. *** 330,348 ****
  1315. X  {
  1316. X      char *s;
  1317. X      register char *cp;
  1318. !     char buf[2];
  1319. X  
  1320. X      cp = s = malloc (n);
  1321. X      if (!cp) return 0;
  1322. X  
  1323. X      while (n > 0) {
  1324. !     if ((buf[0] = getinput (fp)) == EOF || buf[0] == '\n' ||
  1325. !         (buf[1] = getinput (fp)) == EOF || buf[1] == '\n') {
  1326. X          free (s);
  1327. X          return 0;
  1328. X      }
  1329. !     *cp = (char) ((hexvalues[(unsigned int)buf[0]] * 16) + 
  1330. !               hexvalues[(unsigned int)buf[1]]);
  1331. X      cp++;
  1332. X      n--;
  1333. X      }
  1334. --- 330,347 ----
  1335. X  {
  1336. X      char *s;
  1337. X      register char *cp;
  1338. !     int c1, c2;
  1339. X  
  1340. X      cp = s = malloc (n);
  1341. X      if (!cp) return 0;
  1342. X  
  1343. X      while (n > 0) {
  1344. !     if ((c1 = getinput (fp)) == EOF || c1 == '\n' ||
  1345. !         (c2 = getinput (fp)) == EOF || c2 == '\n') {
  1346. X          free (s);
  1347. X          return 0;
  1348. X      }
  1349. !     *cp = (char) ((hexvalues[c1] * 16) + hexvalues[c2]);
  1350. X      cp++;
  1351. X      n--;
  1352. X      }
  1353. SHAR_EOF
  1354. echo 'File fix-10 is complete' &&
  1355. chmod 0644 fix-10 ||
  1356. echo 'restore of fix-10 failed'
  1357. Wc_c="`wc -c < 'fix-10'`"
  1358. test 85909 -eq "$Wc_c" ||
  1359.     echo 'fix-10: original size 85909, current size' "$Wc_c"
  1360. rm -f _shar_wnt_.tmp
  1361. fi
  1362. rm -f _shar_seq_.tmp
  1363. echo You have unpacked the last part
  1364. exit 0
  1365. -- 
  1366. ---
  1367. Senior Systems Scientist        mail: dcmartin@msi.com
  1368. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  1369. 796 North Pastoria Avenue        at&t: 408/522-9236
  1370.