home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / x / volume16 / X11R5-fix09 / part01 next >
Text File  |  1992-02-04  |  41KB  |  1,652 lines

  1. Path: uunet!usc!zaphod.mps.ohio-state.edu!mips!msi!dcmartin
  2. From: rws@expo.lcs.mit.edu
  3. Newsgroups: comp.sources.x
  4. Subject: v16i003: X11R5 public fix #9, Part01/01
  5. Message-ID: <1992Feb4.143840.15383@msi.com>
  6. Date: 4 Feb 92 14:38:40 GMT
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. Lines: 1639
  10. Approved: dcmartin@msi.com
  11. Originator: dcmartin@fascet
  12.  
  13. Submitted-by: rws@expo.lcs.mit.edu
  14. Posting-number: Volume 16, Issue 3
  15. Archive-name: X11R5-fix09/part01
  16.  
  17. *** 1,7 ****
  18.   /*
  19.    * Xau - X Authorization Database Library
  20.    *
  21. !  * $XConsortium: AuLock.c,v 1.7 91/04/17 10:59:27 rws Exp $
  22.    *
  23.    * Copyright 1988 Massachusetts Institute of Technology
  24.    *
  25. --- 1,7 ----
  26.   /*
  27.    * Xau - X Authorization Database Library
  28.    *
  29. !  * $XConsortium: AuLock.c,v 1.8 91/12/16 19:56:07 gildea Exp $
  30.    *
  31.    * Copyright 1988 Massachusetts Institute of Technology
  32.    *
  33. ***************
  34. *** 21,32 ****
  35.   #include <X11/Xauth.h>
  36.   #include <sys/types.h>
  37.   #include <sys/stat.h>
  38. - #ifndef X_NOT_POSIX
  39.   #include <errno.h>
  40. - #else
  41. - #include <sys/errno.h>
  42. - #endif
  43.   
  44.   #if NeedFunctionPrototypes
  45.   int
  46.   XauLockAuth (
  47. --- 21,30 ----
  48.   #include <X11/Xauth.h>
  49.   #include <sys/types.h>
  50.   #include <sys/stat.h>
  51.   #include <errno.h>
  52.   
  53. + extern int errno;
  54.   #if NeedFunctionPrototypes
  55.   int
  56.   XauLockAuth (
  57. ***************
  58. *** 50,56 ****
  59.       struct stat    statb;
  60.       long    now;
  61.       int        creat_fd = -1;
  62. -     extern int    errno;
  63.   
  64.       if (strlen (file_name) > 1022)
  65.       return LOCK_ERROR;
  66. --- 48,53 ----
  67. ***************
  68. *** 82,87 ****
  69. --- 79,88 ----
  70.       if (creat_fd != -1) {
  71.           if (link (creat_name, link_name) != -1)
  72.           return LOCK_SUCCESS;
  73. +         if (errno == ENOENT) {
  74. +         creat_fd = -1;    /* force re-creat next time around */
  75. +         continue;
  76. +         }
  77.           if (errno != EEXIST)
  78.           return LOCK_ERROR;
  79.       }
  80.  
  81. *** /tmp/,RCSt1003431    Thu Jan 23 17:34:36 1992
  82. --- mit/lib/X/Xsi/XlcLoad.c    Mon Dec 23 11:39:04 1991
  83. ***************
  84. *** 1,5 ****
  85.   /*
  86. !  * $XConsortium: XlcLoad.c,v 1.38 91/11/17 16:12:06 rws Exp $
  87.    */
  88.   
  89.   /*
  90. --- 1,5 ----
  91.   /*
  92. !  * $XConsortium: XlcLoad.c,v 1.40 91/12/23 11:37:03 rws Exp $
  93.    */
  94.   
  95.   /*
  96. ***************
  97. *** 59,64 ****
  98. --- 59,65 ----
  99.   #endif
  100.   #ifndef PATH_MAX
  101.   #include <sys/param.h>
  102. + #ifndef PATH_MAX
  103.   #ifdef MAXPATHLEN
  104.   #define PATH_MAX MAXPATHLEN
  105.   #else
  106. ***************
  107. *** 65,70 ****
  108. --- 66,72 ----
  109.   #define PATH_MAX 1024
  110.   #endif
  111.   #endif
  112. + #endif
  113.   
  114.   #ifndef XNLSPATHDEFAULT
  115.   #define XNLSPATHDEFAULT "/usr/lib/X11/nls"
  116. ***************
  117. *** 1030,1035 ****
  118. --- 1032,1038 ----
  119.       int cscode;
  120.       int dlen;
  121.   
  122. +     csid = _Xmbcsid((XLocale)state, str);
  123.       dlen = _Xmbdlen((XLocale)state, str);
  124.       if (dlen > 0) {
  125.       for (*lenp = 0; ; ) {
  126.  
  127. *** /tmp/,RCSt1003436    Thu Jan 23 17:35:35 1992
  128. --- mit/lib/X/Xsi/XLocalIM.c    Fri Dec 27 15:14:14 1991
  129. ***************
  130. *** 1,5 ****
  131.   /*
  132. !  * $XConsortium: XLocalIM.c,v 1.6 91/11/17 15:59:05 rws Exp $
  133.    */
  134.   
  135.   /*
  136. --- 1,5 ----
  137.   /*
  138. !  * $XConsortium: XLocalIM.c,v 1.8 91/12/27 15:12:20 rws Exp $
  139.    */
  140.   
  141.   /*
  142. ***************
  143. *** 55,60 ****
  144. --- 55,61 ----
  145.   #endif
  146.   #ifndef PATH_MAX
  147.   #include <sys/param.h>
  148. + #ifndef PATH_MAX
  149.   #ifdef MAXPATHLEN
  150.   #define PATH_MAX MAXPATHLEN
  151.   #else
  152. ***************
  153. *** 61,66 ****
  154. --- 62,68 ----
  155.   #define PATH_MAX 1024
  156.   #endif
  157.   #endif
  158. + #endif
  159.   
  160.   #ifdef X_NOT_STDC_ENV
  161.   extern char *getenv();
  162. ***************
  163. *** 199,205 ****
  164.   typedef struct {
  165.       char *name;
  166.       Bool (*func)();
  167. !     Bool (*init_func)();
  168.   } FuncTbl;
  169.   
  170.   static int convert_on();
  171. --- 201,207 ----
  172.   typedef struct {
  173.       char *name;
  174.       Bool (*func)();
  175. !     int (*init_func)();
  176.   } FuncTbl;
  177.   
  178.   static int convert_on();
  179. ***************
  180. *** 414,419 ****
  181. --- 416,436 ----
  182.       return (0);
  183.   }
  184.   
  185. + static int
  186. + is_state_command(xcvt, f, t)
  187. + XipLocalCvt *xcvt;
  188. + char *f, *t;
  189. + {
  190. +     if (!*f || !*t) return(0);
  191. +     if (!strcmp(f, "InitialState"))
  192. +     if (!strcmp(t, "OnState"))
  193. +         xcvt->off = False;
  194. +     else if (!strcmp(t, "OffState"))
  195. +         xcvt->off = True;
  196. +     else return(0);
  197. +     return(1);
  198. + }
  199.   static FuncTbl *
  200.   get_command(name)
  201.   char *name;
  202. ***************
  203. *** 449,455 ****
  204.       return(True);
  205.   }
  206.   
  207. ! static Bool
  208.   convert_on_init(xcvt, tbl, len)
  209.   XipLocalCvt *xcvt;
  210.   XipLocalCvtTbl *tbl;
  211. --- 466,472 ----
  212.       return(True);
  213.   }
  214.   
  215. ! static int
  216.   convert_on_init(xcvt, tbl, len)
  217.   XipLocalCvt *xcvt;
  218.   XipLocalCvtTbl *tbl;
  219. ***************
  220. *** 458,464 ****
  221.       register XipLocalKeySymTbl *to, *from, *p;
  222.   
  223.       p = (XipLocalKeySymTbl *) Xmalloc(sizeof(XipLocalKeySymTbl) * (len + 1));
  224. !     if (!to) return(False);
  225.       for (to = p, from = tbl->fromkey; len > 0; to++, from++, len--) {
  226.       to->keysym = from->keysym;
  227.       to->state = from->state;
  228. --- 475,481 ----
  229.       register XipLocalKeySymTbl *to, *from, *p;
  230.   
  231.       p = (XipLocalKeySymTbl *) Xmalloc(sizeof(XipLocalKeySymTbl) * (len + 1));
  232. !     if (!p) return(-1);
  233.       for (to = p, from = tbl->fromkey; len > 0; to++, from++, len--) {
  234.       to->keysym = from->keysym;
  235.       to->state = from->state;
  236. ***************
  237. *** 468,477 ****
  238.       xcvt->off_tbl.to.func = tbl->to.func;
  239.       xcvt->off_tbl.com = True;
  240.       xcvt->off_tbl.fromkey = p;
  241. !     return(True);
  242.   }
  243.   
  244. ! static Bool
  245.   no_filter(xcvt, tbl, len)
  246.   XipLocalCvt *xcvt;
  247.   XipLocalCvtTbl *tbl;
  248. --- 485,494 ----
  249.       xcvt->off_tbl.to.func = tbl->to.func;
  250.       xcvt->off_tbl.com = True;
  251.       xcvt->off_tbl.fromkey = p;
  252. !     return(0);
  253.   }
  254.   
  255. ! static int
  256.   no_filter(xcvt, tbl, len)
  257.   XipLocalCvt *xcvt;
  258.   XipLocalCvtTbl *tbl;
  259. ***************
  260. *** 481,490 ****
  261.   
  262.       nested_keysym = (XipLocalNestedKeySym *)
  263.         Xmalloc(sizeof(XipLocalNestedKeySym));
  264.       nested_keysym->keysym = tbl->fromkey->keysym;
  265.       nested_keysym->next = xcvt->no_filter;
  266.       xcvt->no_filter = nested_keysym;
  267. !     return(True);
  268.   }
  269.   
  270.   static Bool
  271. --- 498,508 ----
  272.   
  273.       nested_keysym = (XipLocalNestedKeySym *)
  274.         Xmalloc(sizeof(XipLocalNestedKeySym));
  275. +     if (!nested_keysym) return(-1);
  276.       nested_keysym->keysym = tbl->fromkey->keysym;
  277.       nested_keysym->next = xcvt->no_filter;
  278.       xcvt->no_filter = nested_keysym;
  279. !     return(1);
  280.   }
  281.   
  282.   static Bool
  283. ***************
  284. *** 552,557 ****
  285. --- 570,576 ----
  286.       KeySym bs;
  287.       FuncTbl *func_tbl;
  288.       int line = 0;
  289. +     int ret;
  290.   
  291.       strcpy(tmp_buf, xlc->xlc_db->lc_name);
  292.       for (p = tmp_buf; *p && *p != '@'; p++);
  293. ***************
  294. *** 580,585 ****
  295. --- 599,605 ----
  296.       cnt = 0;
  297.       cvt->nmax = 0;
  298.       cvt->no_filter = NULL;
  299. +     cvt->off = False;
  300.       while(fgets(buf, BUFSIZ, fp)) {
  301.       line++;
  302.       if(is_comment(*buf) || 
  303. ***************
  304. *** 589,595 ****
  305.           goto _err_ret;
  306.       }
  307.       if(!(cvt->tbl[cnt].fromkey = get_keysym(frombuf, &len))){
  308. !         goto _err_ret;
  309.       }
  310.       if (len > cvt->nmax) cvt->nmax = len;
  311.       if (is_command(*tobuf)) {
  312. --- 609,617 ----
  313.           goto _err_ret;
  314.       }
  315.       if(!(cvt->tbl[cnt].fromkey = get_keysym(frombuf, &len))){
  316. !         if (!is_state_command(cvt, frombuf, tobuf))
  317. !         goto _err_ret;
  318. !         continue;
  319.       }
  320.       if (len > cvt->nmax) cvt->nmax = len;
  321.       if (is_command(*tobuf)) {
  322. ***************
  323. *** 599,606 ****
  324.           cvt->tbl[cnt].to.func = func_tbl->func;
  325.           cvt->tbl[cnt].com = True;
  326.           if (func_tbl->init_func) {
  327. !         if ((*func_tbl->init_func)(cvt, &cvt->tbl[cnt], len) == False)
  328.               goto _err_ret;
  329.           }
  330.       } else {
  331.           if (is_keysym(*tobuf)) {
  332. --- 621,631 ----
  333.           cvt->tbl[cnt].to.func = func_tbl->func;
  334.           cvt->tbl[cnt].com = True;
  335.           if (func_tbl->init_func) {
  336. !         if ((ret = (*func_tbl->init_func)(cvt, &cvt->tbl[cnt], len))
  337. !              == -1)
  338.               goto _err_ret;
  339. +         else if (ret == 0)
  340. +             continue;
  341.           }
  342.       } else {
  343.           if (is_keysym(*tobuf)) {
  344. ***************
  345. *** 627,633 ****
  346.                            * (cvt->nmax + 1));
  347.       cvt->buf_cnt = 0;
  348.       cvt->bs = ((bs = XStringToKeysym("BackSpace"))? bs: 0x8);
  349. -     cvt->off = True;
  350.       fclose(fp);
  351.       return(cvt);
  352.   _err_ret:
  353. --- 652,657 ----
  354. ***************
  355. *** 659,665 ****
  356.       new->buf = (XipLocalKeySymTbl *) Xmalloc(sizeof(XipLocalKeySymTbl)
  357.                            * (new->nmax + 1));
  358.       new->buf_cnt = 0;
  359. !     new->off = True;
  360.       return(new);
  361.   }
  362.   
  363. --- 683,689 ----
  364.       new->buf = (XipLocalKeySymTbl *) Xmalloc(sizeof(XipLocalKeySymTbl)
  365.                            * (new->nmax + 1));
  366.       new->buf_cnt = 0;
  367. !     new->off = cvt->off;
  368.       return(new);
  369.   }
  370.   
  371. *** /tmp/,RCSt1003247    Thu Jan 23 16:14:53 1992
  372. --- mit/lib/Xt/sharedlib.c    Mon Jan  6 17:02:29 1992
  373. ***************
  374. *** 1,5 ****
  375.   /*
  376. !  * $XConsortium: sharedlib.c,v 1.12 91/07/23 12:22:07 rws Exp $
  377.    * 
  378.    * Copyright 1989 Massachusetts Institute of Technology
  379.    *
  380. --- 1,5 ----
  381.   /*
  382. !  * $XConsortium: sharedlib.c,v 1.14 92/01/06 17:01:45 gildea Exp $
  383.    * 
  384.    * Copyright 1989 Massachusetts Institute of Technology
  385.    *
  386. ***************
  387. *** 60,66 ****
  388. --- 60,77 ----
  389.       _XtToolkitInitialize();
  390.   }
  391.   
  392. + #if NeedFunctionPrototypes
  393.   Widget 
  394. + XtInitialize(
  395. + _Xconst char* name,
  396. + _Xconst char* classname,
  397. + XrmOptionDescRec *options,
  398. + Cardinal num_options,
  399. + int *argc,
  400. + String *argv
  401. + )
  402. + #else
  403. + Widget 
  404.   XtInitialize(name, classname, options, num_options, argc, argv)
  405.   String name, classname;
  406.   XrmOptionDescRec *options;
  407. ***************
  408. *** 67,72 ****
  409. --- 78,84 ----
  410.   Cardinal num_options;
  411.   String *argv;
  412.   int *argc;
  413. + #endif
  414.   {
  415.       extern Widget _XtInitialize();
  416.       VENDORINIT
  417. ***************
  418. *** 73,79 ****
  419. --- 85,105 ----
  420.       return _XtInitialize (name, classname, options, num_options, argc, argv);
  421.   }
  422.   
  423. + #if NeedFunctionPrototypes
  424.   Widget
  425. + XtAppInitialize(
  426. + XtAppContext * app_context_return,
  427. + _Xconst char* application_class,
  428. + XrmOptionDescRec *options,
  429. + Cardinal num_options,
  430. + int *argc_in_out,
  431. + String *argv_in_out,
  432. + String *fallback_resources,
  433. + ArgList args_in,
  434. + Cardinal num_args_in
  435. + )
  436. + #else
  437. + Widget
  438.   XtAppInitialize(app_context_return, application_class, options, num_options,
  439.           argc_in_out, argv_in_out, fallback_resources, 
  440.           args_in, num_args_in)
  441. ***************
  442. *** 84,89 ****
  443. --- 110,116 ----
  444.   int *argc_in_out;
  445.   String *argv_in_out, * fallback_resources;     
  446.   ArgList args_in;
  447. + #endif
  448.   {
  449.       extern Widget _XtAppInitialize();
  450.       VENDORINIT
  451. ***************
  452. *** 92,103 ****
  453.                    fallback_resources, args_in, num_args_in);
  454.   }
  455.   
  456. ! #if NeedFunctionPrototypes
  457.   Widget
  458. ! XtVaAppInitialize(XtAppContext *app_context_return, String application_class,
  459. !           XrmOptionDescList options, Cardinal num_options,
  460. !           int *argc_in_out, String *argv_in_out,
  461. !           String *fallback_resources, ...)
  462.   #else
  463.   Widget XtVaAppInitialize(app_context_return, application_class, options,
  464.                num_options, argc_in_out, argv_in_out,
  465. --- 119,135 ----
  466.                    fallback_resources, args_in, num_args_in);
  467.   }
  468.   
  469. ! #if NeedVarargsPrototypes
  470.   Widget
  471. ! XtVaAppInitialize(
  472. !     XtAppContext *app_context_return,
  473. !     _Xconst char* application_class,
  474. !     XrmOptionDescList options,
  475. !     Cardinal num_options,
  476. !     int *argc_in_out,
  477. !     String *argv_in_out,
  478. !     String *fallback_resources,
  479. !     ...)
  480.   #else
  481.   Widget XtVaAppInitialize(app_context_return, application_class, options,
  482.                num_options, argc_in_out, argv_in_out,
  483.  
  484. *** /tmp/,RCSt1024386    Mon Dec 23 13:18:28 1991
  485. --- mit/lib/Xt/Initialize.c    Thu Dec 19 19:32:53 1991
  486. ***************
  487. *** 1,4 ****
  488. ! /* $XConsortium: Initialize.c,v 1.199 91/07/23 12:16:38 rws Exp $ */
  489.   
  490.   /***********************************************************
  491.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  492. --- 1,4 ----
  493. ! /* $XConsortium: Initialize.c,v 1.200 91/12/19 19:30:59 rws Exp $ */
  494.   
  495.   /***********************************************************
  496.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  497. ***************
  498. *** 53,61 ****
  499.    * If used as a shared library, generate code under a different name so that
  500.    * the stub routines in sharedlib.c get loaded into the application binary.
  501.    */
  502. - #ifdef SUNSHLIB
  503. - #define _XtInherit __XtInherit
  504. - #endif
  505.   #define XtToolkitInitialize _XtToolkitInitialize
  506.   #define XtAppInitialize _XtAppInitialize
  507.   #define XtInitialize _XtInitialize
  508. --- 53,58 ----
  509. ***************
  510. *** 141,146 ****
  511. --- 138,152 ----
  512.       return len;
  513.   }
  514.   
  515. + #ifdef SUNSHLIB
  516. + void _XtInherit()
  517. + {
  518. +     extern void __XtInherit();
  519. +     __XtInherit();
  520. + }
  521. + #define _XtInherit __XtInherit
  522. + #endif
  523.   
  524.   void _XtInherit()
  525.   {
  526.  
  527. *** /tmp/,RCSt1a00686    Fri Jan  3 18:25:24 1992
  528. --- mit/lib/Xt/Destroy.c    Fri Jan  3 18:05:36 1992
  529. ***************
  530. *** 1,4 ****
  531. ! /* $XConsortium: Destroy.c,v 1.43 91/06/30 17:02:46 converse Exp $ */
  532.   
  533.   /***********************************************************
  534.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  535. --- 1,4 ----
  536. ! /* $XConsortium: Destroy.c,v 1.44 92/01/03 18:03:59 converse Exp $ */
  537.   
  538.   /***********************************************************
  539.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  540. ***************
  541. *** 124,130 ****
  542.   
  543.       parent = widget->core.parent;
  544.   
  545. !     if (parent && parent->core.num_popups) {
  546.       int i;
  547.       for (i = 0; i < parent->core.num_popups; i++) {
  548.           if (parent->core.popup_list[i] == widget) {
  549. --- 124,130 ----
  550.   
  551.       parent = widget->core.parent;
  552.   
  553. !     if (parent && XtIsWidget(parent) && parent->core.num_popups) {
  554.       int i;
  555.       for (i = 0; i < parent->core.num_popups; i++) {
  556.           if (parent->core.popup_list[i] == widget) {
  557.  
  558. *** /tmp/,RCSt1003447    Thu Jan 23 17:38:32 1992
  559. --- mit/lib/Xmu/Imakefile    Fri Dec 20 11:22:04 1991
  560. ***************
  561. *** 1,4 ****
  562. ! XCOMM $XConsortium: Imakefile,v 1.73 91/09/18 14:29:12 rws Exp $
  563.   XCOMM
  564.   XCOMM This library contains miscellaneous utility routines and is not part
  565.   XCOMM of the Xlib standard.
  566. --- 1,4 ----
  567. ! XCOMM $XConsortium: Imakefile,v 1.74 91/12/20 11:20:22 rws Exp $
  568.   XCOMM
  569.   XCOMM This library contains miscellaneous utility routines and is not part
  570.   XCOMM of the Xlib standard.
  571. ***************
  572. *** 10,18 ****
  573.   #define DoProfileLib ProfileLibXmu
  574.   #include <Library.tmpl>
  575.   
  576. ! #ifdef RsArchitecture
  577. ! REQUIREDLIBS = $(EXTENSIONSRC)/lib/libXext.a $(TOOLKITSRC)/libXt.a $(XLIBSRC)/libX11.a
  578.   #endif
  579.   
  580.   /* Since people link in Xmu without Xt, we avoid references to string data. */
  581.   #if HasSharedLibraries
  582. --- 10,22 ----
  583.   #define DoProfileLib ProfileLibXmu
  584.   #include <Library.tmpl>
  585.   
  586. ! #if defined(RsArchitecture) || SunPost411FCSLd
  587. ! #if DoNormalLib
  588. ! REQUIREDLIBS = -L../$(TOOLKITSRC) -lXt -L../$(EXTENSIONSRC)/lib -lXext -L../$(XLIBSRC) -lX11
  589. ! #else
  590. ! REQUIREDLIBS = -L$(TOOLKITSRC) -lXt -L$(EXTENSIONSRC)/lib -lXext -L$(XLIBSRC) -lX11
  591.   #endif
  592. + #endif
  593.   
  594.   /* Since people link in Xmu without Xt, we avoid references to string data. */
  595.   #if HasSharedLibraries
  596. ***************
  597. *** 152,157 ****
  598. --- 156,167 ----
  599.   #endif
  600.   
  601.   #if DoSharedLib
  602. + #if SunPost411FCSLd
  603. + libXmu.so.$(SOXMUREV): $(EXTENSIONSRC)/lib/libXext.so.$(SOXEXTREV)
  604. + $(EXTENSIONSRC)/lib/libXext.so.$(SOXEXTREV):
  605. +     cd $(EXTENSIONSRC)/lib; make libXext.so.$(SOXEXTREV)
  606. + #endif
  607.   #if DoNormalLib
  608.   SharedLibraryTarget(Xmu,$(SOXMUREV),$(OBJS),shared,..)
  609.   #else
  610.  
  611. *** /tmp/,RCSt1008492    Fri Dec 27 15:13:39 1991
  612. --- mit/lib/nls/Xsi/local_im_tbl/lt_LN.bit7    Fri Dec 27 15:12:27 1991
  613. ***************
  614. *** 1,4 ****
  615. ! # $XConsortium: lt_LN.bit7,v 1.3 91/12/11 11:01:15 rws Exp $
  616.   #
  617.   #    Conversion file for Local Input Method
  618.   #
  619. --- 1,4 ----
  620. ! # $XConsortium: lt_LN.bit7,v 1.4 91/12/27 15:10:49 rws Exp $
  621.   #
  622.   #    Conversion file for Local Input Method
  623.   #
  624. ***************
  625. *** 7,17 ****
  626. --- 7,20 ----
  627.   #    <from>[<from>...]    [<to>[<to>...]]    [{to_string}[{to_string}...]
  628.   #  or
  629.   #    <from>[<from>...]    Command
  630. + #  or
  631. + #    InitialState        OnState/OffState
  632.   #
  633.   #  from : Input keysym
  634.   #  to_keysym : Output keysym
  635.   #  to_string : Output string
  636.   #  Command : Special commad (NoFilter/ConvertOn/ConvertOff)
  637. + #  InitialState : Initial state (default is OnState)
  638.   
  639.   <Shift_L>            NoFilter
  640.   <Shift_R>            NoFilter
  641. *** /tmp/,RCSt1008492    Fri Dec 27 15:13:42 1991
  642. --- mit/lib/nls/Xsi/local_im_tbl/lt_LN.bit8    Fri Dec 27 15:12:31 1991
  643. ***************
  644. *** 1,4 ****
  645. ! # $XConsortium: lt_LN.bit8,v 1.3 91/12/11 11:01:22 rws Exp $
  646.   #
  647.   #    Conversion file for Local Input Method
  648.   #
  649. --- 1,4 ----
  650. ! # $XConsortium: lt_LN.bit8,v 1.4 91/12/27 15:11:10 rws Exp $
  651.   #
  652.   #    Conversion file for Local Input Method
  653.   #
  654. ***************
  655. *** 7,17 ****
  656. --- 7,20 ----
  657.   #    <from>[<from>...]    [<to>[<to>...]]    [{to_string}[{to_string}...]
  658.   #  or
  659.   #    <from>[<from>...]    Command
  660. + #  or
  661. + #    InitialState        OnState/OffState
  662.   #
  663.   #  from : Input keysym
  664.   #  to_keysym : Output keysym
  665.   #  to_string : Output string
  666.   #  Command : Special commad (NoFilter/ConvertOn/ConvertOff)
  667. + #  InitialState : Initial state (default is OnState)
  668.   
  669.   <Shift_L>            NoFilter
  670.   <Shift_R>            NoFilter
  671.  
  672. *** /tmp/,RCSt1K_wBIj    Wed Dec 11 19:51:50 1991
  673. --- mit/fonts/lib/font/fontfile/dirfile.c    Wed Dec 11 19:49:40 1991
  674. ***************
  675. *** 1,5 ****
  676.   /*
  677. !  * $XConsortium: dirfile.c,v 1.4 91/07/25 18:05:10 rws Exp $
  678.    *
  679.    * Copyright 1991 Massachusetts Institute of Technology
  680.    *
  681. --- 1,5 ----
  682.   /*
  683. !  * $XConsortium: dirfile.c,v 1.5 91/12/11 19:49:06 eswu Exp $
  684.    *
  685.    * Copyright 1991 Massachusetts Institute of Technology
  686.    *
  687. ***************
  688. *** 69,77 ****
  689. --- 69,82 ----
  690.           return BadFontPath;
  691.       }
  692.       dir = FontFileMakeDir(directory, i);
  693. +     if (dir == NULL) {
  694. +         fclose(file);
  695. +         return BadFontPath;
  696. +     }
  697.       dir->dir_mtime = statb.st_mtime;
  698.       while ((count = fscanf(file, "%s %[^\n]\n", file_name, font_name)) != EOF) {
  699.           if (count != 2) {
  700. +         FontFileFreeDir (dir);
  701.           fclose(file);
  702.           return BadFontPath;
  703.           }
  704. ***************
  705. *** 78,83 ****
  706. --- 83,89 ----
  707.           if (!FontFileAddFontFile (dir, font_name, file_name))
  708.           {
  709.           FontFileFreeDir (dir);
  710. +         fclose(file);
  711.           return BadFontPath;
  712.           }
  713.       }
  714. *** /tmp/,RCSt1K%YCKs    Wed Dec 11 19:51:52 1991
  715. --- mit/fonts/lib/font/fontfile/fontdir.c    Wed Dec 11 19:49:30 1991
  716. ***************
  717. *** 1,5 ****
  718.   /*
  719. !  * $XConsortium: fontdir.c,v 1.5 91/07/16 20:13:27 keith Exp $
  720.    *
  721.    * Copyright 1991 Massachusetts Institute of Technology
  722.    *
  723. --- 1,5 ----
  724.   /*
  725. !  * $XConsortium: fontdir.c,v 1.6 91/12/11 19:46:47 eswu Exp $
  726.    *
  727.    * Copyright 1991 Massachusetts Institute of Technology
  728.    *
  729. ***************
  730. *** 50,55 ****
  731. --- 50,58 ----
  732.   {
  733.       FontScalableExtraPtr   extra;
  734.   
  735. +     if (entry->name.name)
  736. +     xfree(entry->name.name);
  737.       switch (entry->type)
  738.       {
  739.       case FONT_ENTRY_SCALABLE:
  740. ***************
  741. *** 122,127 ****
  742. --- 125,131 ----
  743.   {
  744.       FontFileFreeTable (&dir->scalable);
  745.       FontFileFreeTable (&dir->nonScalable);
  746. +     xfree(dir);
  747.   }
  748.   
  749.   FontEntryPtr
  750.  
  751. *** /tmp/,RCSt1a07990    Tue Jan 21 15:40:32 1992
  752. --- mit/clients/xdm/util.c    Tue Jan 21 15:40:04 1992
  753. ***************
  754. *** 1,7 ****
  755.   /*
  756.    * xdm - display manager daemon
  757.    *
  758. !  * $XConsortium: util.c,v 1.13 91/04/17 10:06:32 rws Exp $
  759.    *
  760.    * Copyright 1988 Massachusetts Institute of Technology
  761.    *
  762. --- 1,7 ----
  763.   /*
  764.    * xdm - display manager daemon
  765.    *
  766. !  * $XConsortium: util.c,v 1.14 92/01/21 15:38:28 gildea Exp $
  767.    *
  768.    * Copyright 1988 Massachusetts Institute of Technology
  769.    *
  770. ***************
  771. *** 62,67 ****
  772. --- 62,69 ----
  773.       char    *name;
  774.   {
  775.       int    l = strlen (name);
  776. +     if (!e) return 0;
  777.   
  778.       while (*e) {
  779.           if ((int)strlen (*e) > l && !strncmp (*e, name, l) &&
  780.  
  781. *** /tmp/,RCSt1003252    Thu Jan 23 16:16:17 1992
  782. --- mit/clients/xauth/process.c    Wed Jan 22 23:39:36 1992
  783. ***************
  784. *** 1,5 ****
  785.   /*
  786. !  * $XConsortium: process.c,v 1.35 91/02/28 09:21:52 rws Exp $
  787.    *
  788.    * Copyright 1989 Massachusetts Institute of Technology
  789.    *
  790. --- 1,5 ----
  791.   /*
  792. !  * $XConsortium: process.c,v 1.41 92/01/22 23:39:12 gildea Exp $
  793.    *
  794.    * Copyright 1989 Massachusetts Institute of Technology
  795.    *
  796. ***************
  797. *** 42,48 ****
  798.   
  799.   #define SECURERPC "SUN-DES-1"
  800.   
  801. ! #define XAUTH_DEFAULT_RETRIES 2        /* just a few times */
  802.   #define XAUTH_DEFAULT_TIMEOUT 2        /* in seconds, be quick */
  803.   #define XAUTH_DEFAULT_DEADTIME 600L    /* 10 minutes in seconds */
  804.   
  805. --- 42,48 ----
  806.   
  807.   #define SECURERPC "SUN-DES-1"
  808.   
  809. ! #define XAUTH_DEFAULT_RETRIES 10    /* number of competitors we expect */
  810.   #define XAUTH_DEFAULT_TIMEOUT 2        /* in seconds, be quick */
  811.   #define XAUTH_DEFAULT_DEADTIME 600L    /* 10 minutes in seconds */
  812.   
  813. ***************
  814. *** 88,94 ****
  815.   static int do_help(), do_source(), do_info(), do_exit();
  816.   static int do_quit(), do_questionmark();
  817.   
  818. ! CommandTable command_table[] = {    /* table of known commands */
  819.       { "add",      2, 3, do_add,
  820.       "add dpyname protoname hexkey   add entry" },
  821.       { "exit",     3, 4, do_exit,
  822. --- 88,94 ----
  823.   static int do_help(), do_source(), do_info(), do_exit();
  824.   static int do_quit(), do_questionmark();
  825.   
  826. ! static CommandTable command_table[] = {    /* table of known commands */
  827.       { "add",      2, 3, do_add,
  828.       "add dpyname protoname hexkey   add entry" },
  829.       { "exit",     3, 4, do_exit,
  830. ***************
  831. *** 192,202 ****
  832.   static char *skip_space (s)
  833.       register char *s;
  834.   {
  835. -     register char c;
  836.       if (!s) return NULL;
  837.   
  838. !     for (; (c = *s) && isascii(c) && isspace(c); s++) ;
  839.       return s;
  840.   }
  841.   
  842. --- 192,201 ----
  843.   static char *skip_space (s)
  844.       register char *s;
  845.   {
  846.       if (!s) return NULL;
  847.   
  848. !     for ( ; *s && isascii(*s) && isspace(*s); s++)
  849. !     ;
  850.       return s;
  851.   }
  852.   
  853. ***************
  854. *** 204,215 ****
  855.   static char *skip_nonspace (s)
  856.       register char *s;
  857.   {
  858. -     register char c;
  859.       if (!s) return NULL;
  860.   
  861.       /* put quoting into loop if need be */
  862. !     for (; (c = *s) && isascii(c) && !isspace(c); s++) ;
  863.       return s;
  864.   }
  865.   
  866. --- 203,213 ----
  867.   static char *skip_nonspace (s)
  868.       register char *s;
  869.   {
  870.       if (!s) return NULL;
  871.   
  872.       /* put quoting into loop if need be */
  873. !     for ( ; *s && isascii(*s) && !isspace(*s); s++)
  874. !     ;
  875.       return s;
  876.   }
  877.   
  878. ***************
  879. *** 591,596 ****
  880. --- 589,595 ----
  881.   #define _signal_t void
  882.   #endif
  883.   
  884. + /* ARGSUSED */
  885.   static _signal_t die (sig)
  886.       int sig;
  887.   {
  888. ***************
  889. *** 609,615 ****
  890.       if (sig > 0) signal (sig, die);    /* re-establish signal handler */
  891.   #endif
  892.       if (verbose && xauth_modified) printf ("\r\n");
  893. !     die ();
  894.       /* NOTREACHED */
  895.   #ifdef SIGNALRETURNSINT
  896.       return -1;                /* for picky compilers */
  897. --- 608,614 ----
  898.       if (sig > 0) signal (sig, die);    /* re-establish signal handler */
  899.   #endif
  900.       if (verbose && xauth_modified) printf ("\r\n");
  901. !     die (sig);
  902.       /* NOTREACHED */
  903.   #ifdef SIGNALRETURNSINT
  904.       return -1;                /* for picky compilers */
  905. ***************
  906. *** 657,670 ****
  907.       hexvalues['e'] = hexvalues['E'] = 0xe;
  908.       hexvalues['f'] = hexvalues['F'] = 0xf;
  909.   
  910. -     exists = (access (authfilename, F_OK) == 0);
  911. -     if (exists && access (authfilename, W_OK) != 0) {
  912. -     fprintf (stderr,
  913. -      "%s:  %s not writable, changes will be ignored\n",
  914. -          ProgramName, authfilename);
  915. -     xauth_allowed = False;
  916. -     }
  917.       if (break_locks && verbose) {
  918.       printf ("Attempting to break locks on authority file %s\n",
  919.           authfilename);
  920. --- 656,661 ----
  921. ***************
  922. *** 692,697 ****
  923. --- 683,697 ----
  924.       }
  925.       }
  926.   
  927. +     /* these checks can only be done reliably after the file is locked */
  928. +     exists = (access (authfilename, F_OK) == 0);
  929. +     if (exists && access (authfilename, W_OK) != 0) {
  930. +     fprintf (stderr,
  931. +      "%s:  %s not writable, changes will be ignored\n",
  932. +          ProgramName, authfilename);
  933. +     xauth_allowed = False;
  934. +     }
  935.       original_umask = umask (0077);    /* disallow non-owner access */
  936.   
  937.       authfp = fopen (authfilename, "r");
  938. ***************
  939. *** 750,758 ****
  940.       return -1;
  941.       } 
  942.   
  943.       for (list = xauth_head; list; list = list->next) {
  944. !     XauWriteAuth (fp, list->auth);
  945.       }
  946.   
  947.       (void) fclose (fp);
  948.       return 0;
  949. --- 750,773 ----
  950.       return -1;
  951.       } 
  952.   
  953. +     /*
  954. +      * Write MIT-MAGIC-COOKIE-1 first, because R4 Xlib knows
  955. +      * only that and uses the first authorization it finds.
  956. +      */
  957.       for (list = xauth_head; list; list = list->next) {
  958. !     if (list->auth->name_length == 18
  959. !         && strncmp(list->auth->name, "MIT-MAGIC-COOKIE-1", 18) == 0)
  960. !     {
  961. !         XauWriteAuth (fp, list->auth);
  962. !     }
  963.       }
  964. +     for (list = xauth_head; list; list = list->next) {
  965. +     if (list->auth->name_length != 18
  966. +         || strncmp(list->auth->name, "MIT-MAGIC-COOKIE-1", 18) != 0)
  967. +     {
  968. +         XauWriteAuth (fp, list->auth);
  969. +     }
  970. +     }
  971.   
  972.       (void) fclose (fp);
  973.       return 0;
  974. ***************
  975. *** 829,835 ****
  976.   
  977.   static void fprintfhex (fp, len, cp)
  978.       register FILE *fp;
  979. !     int len;
  980.       char *cp;
  981.   {
  982.       unsigned char *ucp = (unsigned char *) cp;
  983. --- 844,850 ----
  984.   
  985.   static void fprintfhex (fp, len, cp)
  986.       register FILE *fp;
  987. !     unsigned int len;
  988.       char *cp;
  989.   {
  990.       unsigned char *ucp = (unsigned char *) cp;
  991. ***************
  992. *** 859,864 ****
  993. --- 874,880 ----
  994.       return;
  995.   }
  996.   
  997. + /* ARGSUSED */
  998.   static int dump_entry (inputfilename, lineno, auth, data)
  999.       char *inputfilename;
  1000.       int lineno;
  1001. ***************
  1002. *** 933,939 ****
  1003.   }
  1004.   
  1005.   
  1006. ! static int match_auth (a, b)
  1007.       register Xauth *a, *b;
  1008.   {
  1009.       return ((a->family == b->family &&
  1010. --- 949,955 ----
  1011.   }
  1012.   
  1013.   
  1014. ! static int match_auth_dpy (a, b)
  1015.       register Xauth *a, *b;
  1016.   {
  1017.       return ((a->family == b->family &&
  1018. ***************
  1019. *** 943,949 ****
  1020. --- 959,975 ----
  1021.            bcmp (a->number, b->number, a->number_length) == 0) ? 1 : 0);
  1022.   }
  1023.   
  1024. + /* return non-zero iff display and authorization type are the same */
  1025.   
  1026. + static int match_auth (a, b)
  1027. +     register Xauth *a, *b;
  1028. + {
  1029. +     return ((match_auth_dpy(a, b)
  1030. +          && a->name_length == b->name_length
  1031. +          && bcmp(a->name, b->name, a->name_length) == 0) ? 1 : 0);
  1032. + }
  1033.   static int merge_entries (firstp, second, nnewp, nreplp)
  1034.       AuthList **firstp, *second;
  1035.       int *nnewp, *nreplp;
  1036. ***************
  1037. *** 977,983 ****
  1038.       AuthList *next = b->next;    /* in case we free it */
  1039.   
  1040.       a = first;
  1041. !     while (1) {
  1042.           if (match_auth (a->auth, b->auth)) {  /* found a duplicate */
  1043.           AuthList tmp;        /* swap it in for old one */
  1044.           tmp = *a;
  1045. --- 1003,1009 ----
  1046.       AuthList *next = b->next;    /* in case we free it */
  1047.   
  1048.       a = first;
  1049. !     for (;;) {
  1050.           if (match_auth (a->auth, b->auth)) {  /* found a duplicate */
  1051.           AuthList tmp;        /* swap it in for old one */
  1052.           tmp = *a;
  1053. ***************
  1054. *** 1024,1030 ****
  1055.       int status;
  1056.       int errors = 0;
  1057.       Xauth proto;
  1058. !     AuthList *l;
  1059.   
  1060.       /*
  1061.        * iterate
  1062. --- 1050,1056 ----
  1063.       int status;
  1064.       int errors = 0;
  1065.       Xauth proto;
  1066. !     AuthList *l, *next;
  1067.   
  1068.       /*
  1069.        * iterate
  1070. ***************
  1071. *** 1039,1046 ****
  1072.           continue;
  1073.       }
  1074.       status = 0;
  1075. !     for (l = xauth_head; l; l = l->next) {
  1076. !         if (match_auth (&proto, l->auth)) {
  1077.           if (yfunc) {
  1078.               status = (*yfunc) (inputfilename, lineno,
  1079.                          l->auth, data);
  1080. --- 1065,1073 ----
  1081.           continue;
  1082.       }
  1083.       status = 0;
  1084. !     for (l = xauth_head; l; l = next) {
  1085. !         next = l->next;
  1086. !         if (match_auth_dpy (&proto, l->auth)) {
  1087.           if (yfunc) {
  1088.               status = (*yfunc) (inputfilename, lineno,
  1089.                          l->auth, data);
  1090. ***************
  1091. *** 1065,1070 ****
  1092. --- 1092,1098 ----
  1093.       return errors;
  1094.   }
  1095.   
  1096. + /* ARGSUSED */
  1097.   static int remove_entry (inputfilename, lineno, auth, data)
  1098.       char *inputfilename;
  1099.       int lineno;
  1100. ***************
  1101. *** 1073,1114 ****
  1102.   {
  1103.       int *nremovedp = (int *) data;
  1104.       AuthList **listp = &xauth_head;
  1105. !     AuthList *prev = NULL, *list = (*listp);
  1106. !     int removed = 0, notremoved = 0;
  1107.   
  1108. -     if (!list) {
  1109. -     *nremovedp = 0;
  1110. -     return 1;            /* if nothing to remove */
  1111. -     }
  1112.       /*
  1113. !      * run through list removing any records that match
  1114.        */
  1115. !     while (list) {
  1116. !     if (match_auth (list->auth, auth)) {
  1117. !         AuthList *next = list->next;          /* next one to look at */
  1118. !         if (prev) {
  1119. !         prev->next = next;               /* unlink current one */
  1120. !         } else {
  1121. !         *listp = next;                   /* bump start of list */
  1122. !         }
  1123. !         XauDisposeAuth (list->auth);                    /* free the auth */
  1124. !         free (list);                    /* free the link */
  1125. !         list = next;              /* go look at the next one */
  1126. !         removed++;
  1127. !         xauth_modified = True;
  1128. !     } else {
  1129. !         notremoved++;
  1130. !         prev = list;
  1131. !         list = list->next;
  1132. !     }
  1133. !     }
  1134. !     if (notremoved == 0) {        /* if nothing left */
  1135. !     *listp = NULL;            /* then null out list */
  1136. !     }
  1137. !     *nremovedp = removed;
  1138. !     return 0;
  1139.   }
  1140.   
  1141.   /*
  1142. --- 1101,1119 ----
  1143.   {
  1144.       int *nremovedp = (int *) data;
  1145.       AuthList **listp = &xauth_head;
  1146. !     AuthList *list;
  1147.   
  1148.       /*
  1149. !      * unlink the auth we were asked to
  1150.        */
  1151. !     while ((list = *listp)->auth != auth)
  1152. !     listp = &list->next;
  1153. !     *listp = list->next;
  1154. !     XauDisposeAuth (list->auth);                    /* free the auth */
  1155. !     free (list);                    /* free the link */
  1156. !     xauth_modified = True;
  1157. !     (*nremovedp)++;
  1158. !     return 1;
  1159.   }
  1160.   
  1161.   /*
  1162. ***************
  1163. *** 1179,1184 ****
  1164. --- 1184,1190 ----
  1165.   /*
  1166.    * questionmark
  1167.    */
  1168. + /* ARGSUSED */
  1169.   static int do_questionmark (inputfilename, lineno, argc, argv)
  1170.       char *inputfilename;
  1171.       int lineno;
  1172. ***************
  1173. *** 1524,1529 ****
  1174. --- 1530,1536 ----
  1175.    */
  1176.   static Bool alldone = False;
  1177.   
  1178. + /* ARGSUSED */
  1179.   static int do_exit (inputfilename, lineno, argc, argv)
  1180.       char *inputfilename;
  1181.       int lineno;
  1182. ***************
  1183. *** 1538,1543 ****
  1184. --- 1545,1551 ----
  1185.   /*
  1186.    * quit
  1187.    */
  1188. + /* ARGSUSED */
  1189.   static int do_quit (inputfilename, lineno, argc, argv)
  1190.       char *inputfilename;
  1191.       int lineno;
  1192. ***************
  1193. *** 1547,1555 ****
  1194.       /* allow bogus stuff */
  1195.       die (0);
  1196.       /* NOTREACHED */
  1197. - #ifdef SIGNALRETURNSINT
  1198.       return -1;                /* for picky compilers */
  1199. - #endif
  1200.   }
  1201.   
  1202.   
  1203. --- 1555,1561 ----
  1204.  
  1205. *** /tmp/,RCSt1003259    Thu Jan 23 16:18:38 1992
  1206. --- mit/clients/xterm/main.c    Mon Dec 23 17:03:02 1991
  1207. ***************
  1208. *** 1,5 ****
  1209.   #ifndef lint
  1210. ! static char *rid="$XConsortium: main.c,v 1.195 91/07/22 12:23:31 gildea Exp $";
  1211.   #endif /* lint */
  1212.   
  1213.   /*
  1214. --- 1,5 ----
  1215.   #ifndef lint
  1216. ! static char *rid="$XConsortium: main.c,v 1.199 91/12/23 17:02:24 gildea Exp $";
  1217.   #endif /* lint */
  1218.   
  1219.   /*
  1220. ***************
  1221. *** 745,751 ****
  1222.       register TScreen *screen;
  1223.       register int i, pty;
  1224.       int Xsocket, mode;
  1225. !     char *basename();
  1226.       int xerror(), xioerror();
  1227.   
  1228.       ProgramName = argv[0];
  1229. --- 745,751 ----
  1230.       register TScreen *screen;
  1231.       register int i, pty;
  1232.       int Xsocket, mode;
  1233. !     char *base_name();
  1234.       int xerror(), xioerror();
  1235.   
  1236.       ProgramName = argv[0];
  1237. ***************
  1238. *** 1022,1028 ****
  1239.   
  1240.           if (!resource.title) {
  1241.           if (command_to_exec) {
  1242. !             resource.title = basename (command_to_exec[0]);
  1243.           } /* else not reached */
  1244.           }
  1245.   
  1246. --- 1022,1028 ----
  1247.   
  1248.           if (!resource.title) {
  1249.           if (command_to_exec) {
  1250. !             resource.title = base_name (command_to_exec[0]);
  1251.           } /* else not reached */
  1252.           }
  1253.   
  1254. ***************
  1255. *** 1092,1097 ****
  1256. --- 1092,1115 ----
  1257.       }
  1258.       screen->inhibit = inhibit;
  1259.   
  1260. + #ifdef AIXV3
  1261. +     /* In AIXV3, xterms started from /dev/console have CLOCAL set.
  1262. +      * This means we need to clear CLOCAL so that SIGHUP gets sent
  1263. +      * to the slave-pty process when xterm exits. 
  1264. +      */
  1265. +     {
  1266. +         struct termio tio;
  1267. +         if(ioctl(pty, TCGETA, &tio) == -1)
  1268. +         SysError(ERROR_TIOCGETP);
  1269. +         tio.c_cflag &= ~(CLOCAL);
  1270. +         if (ioctl (pty, TCSETA, &tio) == -1)
  1271. +         SysError(ERROR_TIOCSETP);
  1272. +     }
  1273. + #endif
  1274.   #ifdef USE_SYSV_TERMIO
  1275.       if (0 > (mode = fcntl(pty, F_GETFL, 0)))
  1276.           Error();
  1277. ***************
  1278. *** 1125,1131 ****
  1279.       }
  1280.   }
  1281.   
  1282. ! char *basename(name)
  1283.   char *name;
  1284.   {
  1285.       register char *cp;
  1286. --- 1143,1149 ----
  1287.       }
  1288.   }
  1289.   
  1290. ! char *base_name(name)
  1291.   char *name;
  1292.   {
  1293.       register char *cp;
  1294. ***************
  1295. *** 1183,1188 ****
  1296. --- 1201,1224 ----
  1297.   #endif
  1298.       return 0;
  1299.   #else /* ATT else */
  1300. + #ifdef AIXV3
  1301. +     if ((*pty = open ("/dev/ptc", O_RDWR)) < 0) {
  1302. +         return 1;
  1303. +     }
  1304. +     strcpy(ttydev, ttyname(*pty));
  1305. +     return 0;
  1306. + #endif
  1307. + #ifdef sgi
  1308. +     {
  1309. +         char    *tty_name;
  1310. +         tty_name = _getpty (pty, O_RDWR, 0622, 0);
  1311. +         if (tty_name == 0)
  1312. +         return 1;
  1313. +         strcpy (ttydev, tty_name);
  1314. +         return 0;
  1315. +     }
  1316. + #endif
  1317.   #ifdef __convex__
  1318.           {
  1319.           char *pty_name, *getpty();
  1320. ***************
  1321. *** 1201,1207 ****
  1322.   #ifdef USE_GET_PSEUDOTTY
  1323.       return ((*pty = getpseudotty (&ttydev, &ptydev)) >= 0 ? 0 : 1);
  1324.   #else
  1325. ! #if defined(sgi) || (defined(umips) && defined (SYSTYPE_SYSV))
  1326.       struct stat fstat_buf;
  1327.   
  1328.       *pty = open ("/dev/ptc", O_RDWR);
  1329. --- 1237,1243 ----
  1330.   #ifdef USE_GET_PSEUDOTTY
  1331.       return ((*pty = getpseudotty (&ttydev, &ptydev)) >= 0 ? 0 : 1);
  1332.   #else
  1333. ! #if (defined(umips) && defined (SYSTYPE_SYSV))
  1334.       struct stat fstat_buf;
  1335.   
  1336.       *pty = open ("/dev/ptc", O_RDWR);
  1337. ***************
  1338. *** 1532,1539 ****
  1339.               if (tty_got_hung || errno == ENXIO || errno == EIO ||
  1340.                   errno == ENOTTY) {
  1341.                   no_dev_tty = TRUE;
  1342. - #ifdef USE_SYSV_TERMIO
  1343. -                 tio = d_tio;
  1344.   #ifdef TIOCSLTC
  1345.                   ltc = d_ltc;
  1346.   #endif    /* TIOCSLTC */
  1347. --- 1568,1573 ----
  1348. ***************
  1349. *** 1540,1554 ****
  1350.   #ifdef TIOCLSET
  1351.                   lmode = d_lmode;
  1352.   #endif    /* TIOCLSET */
  1353.   #else    /* not USE_SYSV_TERMIO */
  1354.                   sg = d_sg;
  1355.                   tc = d_tc;
  1356.                   discipline = d_disipline;
  1357. -                 ltc = d_ltc;
  1358. -                 lmode = d_lmode;
  1359.   #ifdef sony
  1360. -                 jtc = d_jtc;
  1361.                   jmode = d_jmode;
  1362.   #endif /* sony */
  1363.   #endif    /* USE_SYSV_TERMIO */
  1364.               } else {
  1365. --- 1574,1588 ----
  1366.   #ifdef TIOCLSET
  1367.                   lmode = d_lmode;
  1368.   #endif    /* TIOCLSET */
  1369. + #ifdef USE_SYSV_TERMIO
  1370. +                 tio = d_tio;
  1371.   #else    /* not USE_SYSV_TERMIO */
  1372.                   sg = d_sg;
  1373.                   tc = d_tc;
  1374.                   discipline = d_disipline;
  1375.   #ifdef sony
  1376.                   jmode = d_jmode;
  1377. +                 jtc = d_jtc;
  1378.   #endif /* sony */
  1379.   #endif    /* USE_SYSV_TERMIO */
  1380.               } else {
  1381. ***************
  1382. *** 1555,1605 ****
  1383.                   SysError(ERROR_OPDEVTTY);
  1384.               }
  1385.           } else {
  1386. !             /* get a copy of the current terminal's state */
  1387. ! #ifdef USE_SYSV_TERMIO
  1388. !                 /* SVR4 fails here if xterm started
  1389. !                from twm from xdm from /etc/rc.
  1390. !                Hence the protection for the next 3 ioctl's.
  1391. !                Something about not having a controlling tty. */
  1392. !                 if(ioctl(tty, TCGETA, &tio) == -1)
  1393. ! #ifndef SVR4
  1394. !                 SysError(ERROR_TIOCGETP);
  1395. ! #else /* SVR4 */
  1396. !                     tio = d_tio;
  1397. ! #endif /* SVR4 */
  1398.   #ifdef TIOCSLTC
  1399.               if(ioctl(tty, TIOCGLTC, <c) == -1)
  1400. - #ifndef SVR4
  1401. -                 SysError(ERROR_TIOCGLTC);
  1402. - #else /* SVR4 */
  1403.                   ltc = d_ltc;
  1404. - #endif /* SVR4 */
  1405.   #endif    /* TIOCSLTC */
  1406.   #ifdef TIOCLSET
  1407.               if(ioctl(tty, TIOCLGET, &lmode) == -1)
  1408. - #ifndef SVR4
  1409. -                 SysError(ERROR_TIOCLGET);
  1410. - #else /* SVR4 */
  1411.                   lmode = d_lmode;
  1412. - #endif /* SVR4 */
  1413.   #endif    /* TIOCLSET */
  1414.   #else    /* not USE_SYSV_TERMIO */
  1415.               if(ioctl(tty, TIOCGETP, (char *)&sg) == -1)
  1416. !                 SysError (ERROR_TIOCGETP);
  1417.               if(ioctl(tty, TIOCGETC, (char *)&tc) == -1)
  1418. !                 SysError (ERROR_TIOCGETC);
  1419.               if(ioctl(tty, TIOCGETD, (char *)&discipline) == -1)
  1420. !                 SysError (ERROR_TIOCGETD);
  1421. !             if(ioctl(tty, TIOCGLTC, (char *)<c) == -1)
  1422. !                 SysError (ERROR_TIOCGLTC);
  1423. !             if(ioctl(tty, TIOCLGET, (char *)&lmode) == -1)
  1424. !                 SysError (ERROR_TIOCLGET);
  1425.   #ifdef sony
  1426.               if(ioctl(tty, TIOCKGET, (char *)&jmode) == -1)
  1427. !                 SysError (ERROR_TIOCKGET);
  1428.               if(ioctl(tty, TIOCKGETC, (char *)&jtc) == -1)
  1429. !                 SysError (ERROR_TIOCKGETC);
  1430.   #endif /* sony */
  1431.   #endif    /* USE_SYSV_TERMIO */
  1432.               close (tty);
  1433. --- 1589,1624 ----
  1434.                   SysError(ERROR_OPDEVTTY);
  1435.               }
  1436.           } else {
  1437. !             /* Get a copy of the current terminal's state,
  1438. !              * if we can.  Some systems (e.g., SVR4 and MacII)
  1439. !              * may not have a controlling terminal at this point
  1440. !              * if started directly from xdm or xinit,     
  1441. !              * in which case we just use the defaults as above.
  1442. !              */
  1443.   #ifdef TIOCSLTC
  1444.               if(ioctl(tty, TIOCGLTC, <c) == -1)
  1445.                   ltc = d_ltc;
  1446.   #endif    /* TIOCSLTC */
  1447.   #ifdef TIOCLSET
  1448.               if(ioctl(tty, TIOCLGET, &lmode) == -1)
  1449.                   lmode = d_lmode;
  1450.   #endif    /* TIOCLSET */
  1451. + #ifdef USE_SYSV_TERMIO
  1452. +                 if(ioctl(tty, TCGETA, &tio) == -1)
  1453. +                     tio = d_tio;
  1454.   #else    /* not USE_SYSV_TERMIO */
  1455.               if(ioctl(tty, TIOCGETP, (char *)&sg) == -1)
  1456. !                     sg = d_sg;
  1457.               if(ioctl(tty, TIOCGETC, (char *)&tc) == -1)
  1458. !                     tc = d_tc;
  1459.               if(ioctl(tty, TIOCGETD, (char *)&discipline) == -1)
  1460. !                     discipline = d_disipline;
  1461.   #ifdef sony
  1462.               if(ioctl(tty, TIOCKGET, (char *)&jmode) == -1)
  1463. !                     jmode = d_jmode;
  1464.               if(ioctl(tty, TIOCKGETC, (char *)&jtc) == -1)
  1465. !                 jtc = d_jtc;
  1466.   #endif /* sony */
  1467.   #endif    /* USE_SYSV_TERMIO */
  1468.               close (tty);
  1469.  
  1470. *** /tmp/,RCSt1a24265    Mon Dec 23 17:27:16 1991
  1471. --- mit/clients/xinit/xinit.c    Mon Dec 23 17:27:00 1991
  1472. ***************
  1473. *** 1,6 ****
  1474. ! #ifndef lint
  1475. ! static char *rcsid_xinit_c = "$XConsortium: xinit.c,v 11.52 91/11/29 15:20:35 rws Exp $";
  1476. ! #endif /* lint */
  1477.   
  1478.   /* Copyright    Massachusetts Institute of Technology    1986    */
  1479.   
  1480. --- 1,4 ----
  1481. ! /* $XConsortium: xinit.c,v 11.54 91/12/23 17:26:08 gildea Exp $ */
  1482.   
  1483.   /* Copyright    Massachusetts Institute of Technology    1986    */
  1484.   
  1485. ***************
  1486. *** 49,55 ****
  1487.   #define vfork() fork()
  1488.   #endif /* SYSV and not hpux */
  1489.   
  1490. ! #ifndef X_NOT_POSIX
  1491.   #define setpgrp setpgid
  1492.   #endif
  1493.   
  1494. --- 47,55 ----
  1495.   #define vfork() fork()
  1496.   #endif /* SYSV and not hpux */
  1497.   
  1498. ! /* A/UX setpgid incorrectly removes the controlling terminal.
  1499. !    Per Posix, only setsid should do that. */
  1500. ! #if !defined(X_NOT_POSIX) && !defined(macII)
  1501.   #define setpgrp setpgid
  1502.   #endif
  1503.   
  1504.  
  1505. *** /tmp/,RCSt1000618    Thu Dec 26 15:01:42 1991
  1506. --- mit/server/ddx/cfb/cfbbresd.c    Thu Dec 26 15:01:43 1991
  1507. ***************
  1508. *** 21,27 ****
  1509.   SOFTWARE.
  1510.   
  1511.   ******************************************************************/
  1512. ! /* $XConsortium: cfbbresd.c,v 1.10 91/07/10 14:53:50 keith Exp $ */
  1513.   #include "X.h"
  1514.   #include "misc.h"
  1515.   #include "cfb.h"
  1516. --- 21,27 ----
  1517.   SOFTWARE.
  1518.   
  1519.   ******************************************************************/
  1520. ! /* $XConsortium: cfbbresd.c,v 1.11 91/12/26 14:32:45 rws Exp $ */
  1521.   #include "X.h"
  1522.   #include "misc.h"
  1523.   #include "cfb.h"
  1524. ***************
  1525. *** 66,72 ****
  1526.       andFg = rrops[0].and;
  1527.       xorBg = rrops[1].xor;
  1528.       andBg = rrops[1].and;
  1529. !     if ((thisDash = dashRemaining) > len)
  1530.       {
  1531.       thisDash = len;
  1532.       dashRemaining -= len;
  1533. --- 66,72 ----
  1534.       andFg = rrops[0].and;
  1535.       xorBg = rrops[1].xor;
  1536.       andBg = rrops[1].and;
  1537. !     if ((thisDash = dashRemaining) >= len)
  1538.       {
  1539.       thisDash = len;
  1540.       dashRemaining -= len;
  1541. ***************
  1542. *** 80,86 ****
  1543.       if (dashIndex == numInDashList) \
  1544.       dashIndex = 0; \
  1545.       dashRemaining = pDash[dashIndex]; \
  1546. !     if ((thisDash = dashRemaining) > len) \
  1547.       { \
  1548.       dashRemaining -= len; \
  1549.       thisDash = len; \
  1550. --- 80,86 ----
  1551.       if (dashIndex == numInDashList) \
  1552.       dashIndex = 0; \
  1553.       dashRemaining = pDash[dashIndex]; \
  1554. !     if ((thisDash = dashRemaining) >= len) \
  1555.       { \
  1556.       dashRemaining -= len; \
  1557.       thisDash = len; \
  1558.  
  1559. *** /tmp/,RCSt1008508    Fri Dec 27 15:13:55 1991
  1560. --- mit/doc/I18N/Xsi/Xim/LocalIM.man    Fri Dec 27 15:13:20 1991
  1561. ***************
  1562. *** 1,4 ****
  1563. ! .\" $XConsortium: LocalIM.man,v 1.3 91/12/11 15:57:44 rws Exp $
  1564.   .\" Copyright 1991 by OMRON Corp.  All Rights Reserved.
  1565.   .TH LocalIM 3X11 "Release 5" "X Version 11" "XSI FUNCTIONS"
  1566.   .SH NAME
  1567. --- 1,4 ----
  1568. ! .\" $XConsortium: LocalIM.man,v 1.4 91/12/27 15:11:47 rws Exp $
  1569.   .\" Copyright 1991 by OMRON Corp.  All Rights Reserved.
  1570.   .TH LocalIM 3X11 "Release 5" "X Version 11" "XSI FUNCTIONS"
  1571.   .SH NAME
  1572. ***************
  1573. *** 18,23 ****
  1574. --- 18,27 ----
  1575.   or
  1576.   .br
  1577.   <from>[<from>...]  Command
  1578. + .br
  1579. + or
  1580. + .br
  1581. + InitialState  OnState/OffState
  1582.   .sp
  1583.   .RE
  1584.   .IP \fBfrom\fP 1i
  1585. ***************
  1586. *** 37,47 ****
  1587.   .IP ConvertOn 1i
  1588.   If the input keysym(s) (from) is(are) pressed, the input method
  1589.   move in a conversion \fBon\fP state.
  1590. ! .IP ConvertOn 1i
  1591.   If the input keysym(s) (from) is(are) pressed, the input method
  1592.   move in a conversion \fBoff\fP state.
  1593.   .sp
  1594.   .RE
  1595.   .PP
  1596.   It is possible to omit \fIto\fP or \fIstr\fP. But either must be set.
  1597.   .PP
  1598. --- 41,55 ----
  1599.   .IP ConvertOn 1i
  1600.   If the input keysym(s) (from) is(are) pressed, the input method
  1601.   move in a conversion \fBon\fP state.
  1602. ! .IP ConvertOff 1i
  1603.   If the input keysym(s) (from) is(are) pressed, the input method
  1604.   move in a conversion \fBoff\fP state.
  1605.   .sp
  1606.   .RE
  1607. + .IP InitialState 1i
  1608. + Specifies the initial state. The second argument is OnState or
  1609. + OffState. The default state is OnState.
  1610. + .sp
  1611.   .PP
  1612.   It is possible to omit \fIto\fP or \fIstr\fP. But either must be set.
  1613.   .PP
  1614. ***************
  1615. *** 72,77 ****
  1616. --- 80,87 ----
  1617.   .SH EXAMPLE
  1618.   .sp
  1619.   .RS
  1620. + InitialState            OffState
  1621. + .br
  1622.   <Meta_L>                NoFilter
  1623.   .br
  1624.   <Execute>               ConvertOn
  1625.  
  1626. ---
  1627. -- 
  1628. Molecular Simulations, Inc.             mail: dcmartin@msi.com
  1629. 796 N. Pastoria Avenue                  uucp: uunet!dcmartin
  1630. Sunnyvale, California 94086             at&t: 408/522-9236
  1631.