home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume18 / X11R5-fix10 / part01 next >
Text File  |  1992-07-20  |  53KB  |  1,778 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: v18i034: X11R5 public fix #10, Part01/02
  5. Message-ID: <csx-18i034-X11R5-fix10@uunet.UU.NET>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. Date: Mon, 20 Jul 1992 15:46:12 GMT
  10. Approved: dcmartin@msi.com
  11. Lines: 1765
  12.  
  13. Submitted-by: rws@EXPO.LCS.MIT.EDU (Bob Scheifler)
  14. Posting-number: Volume 18, Issue 34
  15. Archive-name: X11R5-fix10/part01
  16.  
  17. Fix 10 corrects the following problems:
  18.  
  19. config: new SunOS ld (post-4.1.1 or 4.1.2) is still causing stupid problems
  20. Xlib: XrmGetQSearchList fails if db has only terminal resources
  21. Xlib: _XcmsResolveColorString fails to apply white adjust procedure
  22. Xlib: CIELuv conversion sometimes off by factor of 100
  23. Xlib: XListFonts gets lost if font name length >= 128 chars
  24. Xlib: GC flushing doesn't give extension access to dirty bits
  25. Xlib: (Xsi) XCreateFontSet doesn't free work area
  26. Xlib: (Xsi) XwcLookupString discards partial conversions
  27. Xlib: (Xsi) XOpenIM fails when network is disabled
  28. Xlib: (Xsi) UDC area incorrect in ja_JP.ujis
  29. Xlib: (Xsi) cannot draw JISX0212/CNS11643 2nd plane character
  30. Xlib: (Ximp) XGetICValues wrong for Area, AreaNeeded, SpotLocation
  31. Xlib: (Ximp) error in parsing CT extended segment
  32. Xt: shell RootGeometryManager missing resize in GeometryDone case
  33. Xt: shell RootGeometryManager does not implement Done semantics
  34. Xt: caching of failed conversions causes problems
  35. Xt: SetValues on override and transient resources has problems
  36. Xt: fails to set some WM_NORMAL_HINTS fields to reasonable values
  37. Xt: event handler setting cont_to_dispatch = False does not stop TM actions
  38. Xt: hangs while parsing certain translations
  39. Xt: fails to parse productions with event count and detail
  40. Xt: fails parsing translations with atom details on multiple displays
  41. Xt: obscure typo involving converters & multiple application contexts
  42. Xaw: Panner realize method envelops superclass method incorrectly
  43. xterm: public patch 9 introduced SGI pty problems
  44. xterm: fails to update menu when keyboard grab is forcibly deactivated
  45. xterm: ESC seq not updating App Cursor Keys menu
  46. xterm: restore ESC seq not updating Margin Bell menu
  47. xauth: use of getchar fails on some systems
  48. editres: will sometimes refuse to pop up the resource box
  49.  
  50. #!/bin/sh
  51. # This is a shell archive (produced by shar 3.50)
  52. # To extract the files from this archive, save it to a file, remove
  53. # everything above the "!/bin/sh" line above, and type "sh file_name".
  54. #
  55. # made 07/20/1992 15:42 UTC by dcmartin@fascet
  56. # Source directory /home/fascet/dcmartin/csx/src/tmp
  57. #
  58. # existing files will NOT be overwritten unless -c is specified
  59. #
  60. # This is part 1 of a multipart archive                                    
  61. # do not concatenate these parts, unpack them in order with /bin/sh        
  62. #
  63. # This shar contains:
  64. # length  mode       name
  65. # ------ ---------- ------------------------------------------
  66. #  85909 -rw-r--r-- fix-10
  67. #
  68. if test -r _shar_seq_.tmp; then
  69.     echo 'Must unpack archives in sequence!'
  70.     echo Please unpack part `cat _shar_seq_.tmp` next
  71.     exit 1
  72. fi
  73. # ============= fix-10 ==============
  74. if test -f 'fix-10' -a X"$1" != X"-c"; then
  75.     echo 'x - skipping fix-10 (File already exists)'
  76.     rm -f _shar_wnt_.tmp
  77. else
  78. > _shar_wnt_.tmp
  79. echo 'x - extracting fix-10 (Text)'
  80. sed 's/^X//' << 'SHAR_EOF' > 'fix-10' &&
  81. XFrom: Bob Scheifler <rws@expo.lcs.mit.edu>
  82. Subject: v17i110: X11R5-fix10, Part01/01
  83. Newsgroups: comp.sources.x
  84. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  85. Approved: dcmartin@msi.com
  86. X
  87. Submitted-by: Bob Scheifler <rws@expo.lcs.mit.edu>
  88. Posting-number: Volume 17, Issue 110
  89. Archive-name: X11R5-fix10/part01
  90. X
  91. To apply this patch:
  92. X
  93. cd to the top of the source tree (to the directory containing the "mit"
  94. and "contrib" subdirectories) and do:
  95. X    patch -p -s < ThisFile
  96. Patch will work silently unless an error occurs.
  97. If you want to watch patch do its thing, leave out the "-s" argument to patch.
  98. X
  99. If you are running SunOS 4.1.2, change OSTeenyVersion in mit/config/sun.cf to
  100. have a value of 2.
  101. X
  102. Finally, to rebuild after applying this patch, cd to the "mit" subdirectory
  103. and do (if you are on a Sun running SunOS 4.1.2, or are running SunOS 4.1.1
  104. and have set SunPost411FCSLd to YES (see Patch #9)):
  105. X    make Everything >& every.log
  106. or do (if you are on an SGI or Cray):
  107. X    make Everything >& every.log
  108. otherwise do:
  109. X    make -k >& make.log
  110. X
  111. Brief notes on what this patch fixes:
  112. X
  113. config: new SunOS ld (post-4.1.1 or 4.1.2) is still causing stupid problems
  114. XXlib: XrmGetQSearchList fails if db has only terminal resources
  115. XXlib: _XcmsResolveColorString fails to apply white adjust procedure
  116. XXlib: CIELuv conversion sometimes off by factor of 100
  117. XXlib: XListFonts gets lost if font name length >= 128 chars
  118. XXlib: GC flushing doesn't give extension access to dirty bits
  119. XXlib: (Xsi) XCreateFontSet doesn't free work area
  120. XXlib: (Xsi) XwcLookupString discards partial conversions
  121. XXlib: (Xsi) XOpenIM fails when network is disabled
  122. XXlib: (Xsi) UDC area incorrect in ja_JP.ujis
  123. XXlib: (Xsi) cannot draw JISX0212/CNS11643 2nd plane character
  124. XXlib: (Ximp) XGetICValues wrong for Area, AreaNeeded, SpotLocation
  125. XXlib: (Ximp) error in parsing CT extended segment
  126. XXt: shell RootGeometryManager missing resize in GeometryDone case
  127. XXt: shell RootGeometryManager does not implement Done semantics
  128. XXt: caching of failed conversions causes problems
  129. XXt: SetValues on override and transient resources has problems
  130. XXt: fails to set some WM_NORMAL_HINTS fields to reasonable values
  131. XXt: event handler setting cont_to_dispatch = False does not stop TM actions
  132. XXt: hangs while parsing certain translations
  133. XXt: fails to parse productions with event count and detail
  134. XXt: fails parsing translations with atom details on multiple displays
  135. XXt: obscure typo involving converters & multiple application contexts
  136. XXaw: Panner realize method envelops superclass method incorrectly
  137. xterm: public patch 9 introduced SGI pty problems
  138. xterm: fails to update menu when keyboard grab is forcibly deactivated
  139. xterm: ESC seq not updating App Cursor Keys menu
  140. xterm: restore ESC seq not updating Margin Bell menu
  141. xauth: use of getchar fails on some systems
  142. editres: will sometimes refuse to pop up the resource box
  143. X
  144. X
  145. Prereq: public-patch-9
  146. X
  147. *** /tmp/,RCSt1001439    Wed Mar 18 12:16:10 1992
  148. --- mit/bug-report    Wed Mar 18 12:16:45 1992
  149. ***************
  150. *** 2,8 ****
  151. X  Subject: [area]: [synopsis]   [replace with actual area and short description]
  152. X  
  153. X  VERSION:
  154. !     R5, public-patch-9
  155. X      [MIT public patches will edit this line to indicate the patch level]
  156. X  
  157. X  CLIENT MACHINE and OPERATING SYSTEM:
  158. --- 2,8 ----
  159. X  Subject: [area]: [synopsis]   [replace with actual area and short description]
  160. X  
  161. X  VERSION:
  162. !     R5, public-patch-10
  163. X      [MIT public patches will edit this line to indicate the patch level]
  164. X  
  165. X  CLIENT MACHINE and OPERATING SYSTEM:
  166. *** /tmp/,RCSt1001488    Wed Mar 18 13:14:29 1992
  167. --- mit/config/sun.cf    Wed Mar 18 13:14:30 1992
  168. ***************
  169. *** 1,9 ****
  170. ! XCOMM platform:  $XConsortium: sun.cf,v 1.71 91/12/20 11:18:34 rws Exp $
  171. X  
  172. X  #define OSName            SunOS 4.1.1
  173. X  XCOMM operating system:  OSName
  174. X  #define OSMajorVersion    4
  175. X  #define OSMinorVersion    1
  176. X  
  177. X  #if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1)
  178. X  /* We do not guarantee this will work */
  179. --- 1,10 ----
  180. ! XCOMM platform:  $XConsortium: sun.cf,v 1.72.1.1 92/03/18 13:13:37 rws Exp $
  181. X  
  182. X  #define OSName            SunOS 4.1.1
  183. X  XCOMM operating system:  OSName
  184. X  #define OSMajorVersion    4
  185. X  #define OSMinorVersion    1
  186. + #define OSTeenyVersion    1
  187. X  
  188. X  #if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1)
  189. X  /* We do not guarantee this will work */
  190. ***************
  191. *** 11,18 ****
  192. X  #define StandardDefines   -DNOSTDHDRS
  193. X  #endif
  194. X  
  195. ! /* You ALSO need this if you have Sun ld patch 100170-06 to 4.1.1 */
  196. ! #if OSMajorVersion == 4 && OSMinorVersion > 1
  197. X  #define SunPost411FCSLd      YES
  198. X  #endif
  199. X  
  200. --- 12,19 ----
  201. X  #define StandardDefines   -DNOSTDHDRS
  202. X  #endif
  203. X  
  204. ! /* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */
  205. ! #if OSMajorVersion == 4 && (OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1))
  206. X  #define SunPost411FCSLd      YES
  207. X  #endif
  208. X  
  209. *** /tmp/,RCSt1000717    Tue Mar 17 14:59:21 1992
  210. --- mit/config/sunLib.tmpl    Tue Mar 17 14:59:24 1992
  211. ***************
  212. *** 1,4 ****
  213. ! XCOMM $XConsortium: sunLib.tmpl,v 1.14 91/12/20 11:19:05 rws Exp $
  214. X  
  215. X  /*
  216. X   * SunOS shared library template
  217. --- 1,4 ----
  218. ! XCOMM $XConsortium: sunLib.tmpl,v 1.14.1.1 92/03/17 14:58:46 rws Exp $
  219. X  
  220. X  /*
  221. X   * SunOS shared library template
  222. ***************
  223. *** 48,54 ****
  224. X  /* Sun shared libraries are deficient in link semantics */
  225. X          DEPXMULIB = _UseCat($(USRLIBDIR),$(XMUSRC),/libXmu.sa.$(SOXMUREV))
  226. X         XMULIBONLY = _Use(-lXmu,-L$(XMUSRC) -lXmu)
  227. !            XMULIB = _Use(-lXmu,-L$(XMUSRC) -lXmu -L$(TOOLKITSRC))
  228. X  #if !defined(UseInstalled) && !defined(XawClientLibs)
  229. X  #define XawClientLibs $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
  230. X  #endif
  231. --- 48,54 ----
  232. X  /* Sun shared libraries are deficient in link semantics */
  233. X          DEPXMULIB = _UseCat($(USRLIBDIR),$(XMUSRC),/libXmu.sa.$(SOXMUREV))
  234. X         XMULIBONLY = _Use(-lXmu,-L$(XMUSRC) -lXmu)
  235. !            XMULIB = _Use(-lXmu,-L$(XMUSRC) -lXmu -L$(TOOLKITSRC) -L$(EXTENSIONSRC)/lib -L$(XLIBSRC))
  236. X  #if !defined(UseInstalled) && !defined(XawClientLibs)
  237. X  #define XawClientLibs $(XAWLIB) $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
  238. X  #endif
  239. *** /tmp/,RCSt1029830    Tue Mar 17 11:34:54 1992
  240. --- mit/lib/X/Xrm.c    Fri Jan 10 17:25:50 1992
  241. ***************
  242. *** 1,5 ****
  243. X  /*
  244. !  * $XConsortium: Xrm.c,v 1.70 91/11/21 19:18:45 rws Exp $
  245. X   */
  246. X  
  247. X  /***********************************************************
  248. --- 1,5 ----
  249. X  /*
  250. !  * $XConsortium: Xrm.c,v 1.72 92/01/10 14:21:12 rws Exp $
  251. X   */
  252. X  
  253. X  /***********************************************************
  254. ***************
  255. *** 1004,1009 ****
  256. --- 1004,1010 ----
  257. X   *    Arguments: db - the database.
  258. X   *                 str - a pointer to the string containing the database.
  259. X   *                 filename - source filename, if any.
  260. +  *                 doall - whether to do all lines or just one
  261. X   */
  262. X  
  263. X  /*
  264. ***************
  265. *** 1019,1028 ****
  266. X  
  267. X  static void GetIncludeFile();
  268. X  
  269. ! static void GetDatabase(db, str, filename)
  270. X      XrmDatabase db;
  271. X      register char *str;
  272. X      char *filename;
  273. X  {
  274. X      register char *ptr;
  275. X      register XrmBits bits = 0;
  276. --- 1020,1030 ----
  277. X  
  278. X  static void GetIncludeFile();
  279. X  
  280. ! static void GetDatabase(db, str, filename, doall)
  281. X      XrmDatabase db;
  282. X      register char *str;
  283. X      char *filename;
  284. +     Bool doall;
  285. X  {
  286. X      register char *ptr;
  287. X      register XrmBits bits = 0;
  288. ***************
  289. *** 1039,1044 ****
  290. --- 1041,1047 ----
  291. X      XrmBinding bindings[LIST_SIZE];
  292. X      XrmValue value;
  293. X      Bool only_pcs;
  294. +     Bool dolines;
  295. X  
  296. X      if (!db)
  297. X      return;
  298. ***************
  299. *** 1048,1054 ****
  300. X  
  301. X      (*db->methods->mbinit)(db->mbstate);
  302. X      str--;
  303. !     while (!is_EOF(bits)) {
  304. X  
  305. X      /*
  306. X       * First: Remove extra whitespace. 
  307. --- 1051,1059 ----
  308. X  
  309. X      (*db->methods->mbinit)(db->mbstate);
  310. X      str--;
  311. !     dolines = True;
  312. !     while (!is_EOF(bits) && dolines) {
  313. !     dolines = doall;
  314. X  
  315. X      /*
  316. X       * First: Remove extra whitespace. 
  317. ***************
  318. *** 1441,1447 ****
  319. X  #endif
  320. X  {
  321. X      if (!*pdb) *pdb = NewDatabase();
  322. !     GetDatabase(*pdb, line, (char *)NULL);
  323. X  }
  324. X  
  325. X  #if NeedFunctionPrototypes
  326. --- 1446,1452 ----
  327. X  #endif
  328. X  {
  329. X      if (!*pdb) *pdb = NewDatabase();
  330. !     GetDatabase(*pdb, line, (char *)NULL, False);
  331. X  }
  332. X  
  333. X  #if NeedFunctionPrototypes
  334. ***************
  335. *** 1455,1461 ****
  336. X      XrmDatabase     db;
  337. X  
  338. X      db = NewDatabase();
  339. !     GetDatabase(db, data, (char *)NULL);
  340. X      return db;
  341. X  }
  342. X  
  343. --- 1460,1466 ----
  344. X      XrmDatabase     db;
  345. X  
  346. X      db = NewDatabase();
  347. !     GetDatabase(db, data, (char *)NULL, True);
  348. X      return db;
  349. X  }
  350. X  
  351. ***************
  352. *** 1520,1526 ****
  353. X      }
  354. X      if (!(str = ReadInFile(realfname)))
  355. X      return;
  356. !     GetDatabase(db, str, realfname);
  357. X      Xfree(str);
  358. X  }
  359. X  
  360. --- 1525,1531 ----
  361. X      }
  362. X      if (!(str = ReadInFile(realfname)))
  363. X      return;
  364. !     GetDatabase(db, str, realfname, True);
  365. X      Xfree(str);
  366. X  }
  367. X  
  368. ***************
  369. *** 1539,1545 ****
  370. X      return (XrmDatabase)NULL;
  371. X  
  372. X      db = NewDatabase();
  373. !     GetDatabase(db, str, filename);
  374. X      Xfree(str);
  375. X      return db;
  376. X  }
  377. --- 1544,1550 ----
  378. X      return (XrmDatabase)NULL;
  379. X  
  380. X      db = NewDatabase();
  381. !     GetDatabase(db, str, filename, True);
  382. X      Xfree(str);
  383. X      return db;
  384. X  }
  385. ***************
  386. *** 1567,1573 ****
  387. X          *target = db = NewDatabase();
  388. X      } else
  389. X      db = NewDatabase();
  390. !     GetDatabase(db, str, filename);
  391. X      Xfree(str);
  392. X      if (!override)
  393. X      XrmCombineDatabase(db, target, False);
  394. --- 1572,1578 ----
  395. X          *target = db = NewDatabase();
  396. X      } else
  397. X      db = NewDatabase();
  398. !     GetDatabase(db, str, filename, True);
  399. X      Xfree(str);
  400. X      if (!override)
  401. X      XrmCombineDatabase(db, target, False);
  402. ***************
  403. *** 2127,2134 ****
  404. X      if (db) {
  405. X      table = db->table;
  406. X      if (*names) {
  407. !         if (table && !table->leaf &&
  408. !         SearchNEntry(table, names, classes, &closure))
  409. X          return False;
  410. X      } else {
  411. X          if (table && !table->leaf)
  412. --- 2132,2143 ----
  413. X      if (db) {
  414. X      table = db->table;
  415. X      if (*names) {
  416. !         if (table && !table->leaf) {
  417. !         if (SearchNEntry(table, names, classes, &closure))
  418. !             return False;
  419. !         } else if (table && table->hasloose &&
  420. !                AppendLooseLEntry((LTable)table, names, classes,
  421. !                      &closure))
  422. X          return False;
  423. X      } else {
  424. X          if (table && !table->leaf)
  425. ***************
  426. *** 2393,2402 ****
  427. X          if (table && !table->leaf) {
  428. X          if (GetNEntry(table, names, classes, &closure))
  429. X              return True;
  430. !         table = table->next;
  431. !         }
  432. !         if (table && table->hasloose &&
  433. !         GetLooseVEntry((LTable)table, names, classes, &closure))
  434. X          return True;
  435. X      } else {
  436. X          if (table && !table->leaf)
  437. --- 2402,2409 ----
  438. X          if (table && !table->leaf) {
  439. X          if (GetNEntry(table, names, classes, &closure))
  440. X              return True;
  441. !         } else if (table && table->hasloose &&
  442. !                GetLooseVEntry((LTable)table, names, classes, &closure))
  443. X          return True;
  444. X      } else {
  445. X          if (table && !table->leaf)
  446. *** /tmp/,RCSt1000469    Tue Mar 17 12:04:43 1992
  447. --- mit/lib/X/CIELuv.c    Tue Mar  3 14:16:34 1992
  448. ***************
  449. *** 1,4 ****
  450. ! /* $XConsortium: CIELuv.c,v 1.9 91/07/25 01:07:28 rws Exp $" */
  451. X  
  452. X  /*
  453. X   * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
  454. --- 1,4 ----
  455. ! /* $XConsortium: CIELuv.c,v 1.10 92/03/03 14:15:02 rws Exp $" */
  456. X  
  457. X  /*
  458. X   * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
  459. ***************
  460. *** 366,372 ****
  461. X      Luv_return.L_star = 
  462. X          (pColor->spec.CIEuvY.Y < 0.008856)
  463. X          ?
  464. !         (pColor->spec.CIEuvY.Y * 9.0329)
  465. X          :
  466. X          ((XcmsFloat)(XCMS_CUBEROOT(pColor->spec.CIEuvY.Y) * 116.0) - 16.0);
  467. X      tmpVal = 13.0 * (Luv_return.L_star / 100.0);
  468. --- 366,372 ----
  469. X      Luv_return.L_star = 
  470. X          (pColor->spec.CIEuvY.Y < 0.008856)
  471. X          ?
  472. !         (pColor->spec.CIEuvY.Y * 903.29)
  473. X          :
  474. X          ((XcmsFloat)(XCMS_CUBEROOT(pColor->spec.CIEuvY.Y) * 116.0) - 16.0);
  475. X      tmpVal = 13.0 * (Luv_return.L_star / 100.0);
  476. *** /tmp/,RCSt1000489    Tue Mar 17 12:06:40 1992
  477. --- mit/lib/X/XFontNames.c    Tue Mar  3 14:22:26 1992
  478. ***************
  479. *** 1,4 ****
  480. ! /* $XConsortium: XFontNames.c,v 11.25 91/01/29 08:39:45 rws Exp $ */
  481. X  /* Copyright    Massachusetts Institute of Technology    1986    */
  482. X  
  483. X  /*
  484. --- 1,4 ----
  485. ! /* $XConsortium: XFontNames.c,v 11.26 92/03/03 14:21:22 rws Exp $ */
  486. X  /* Copyright    Massachusetts Institute of Technology    1986    */
  487. X  
  488. X  /*
  489. ***************
  490. *** 68,79 ****
  491. X      /*
  492. X       * unpack into null terminated strings.
  493. X       */
  494. !     length = *ch;
  495. X      *ch = 1; /* make sure it is non-zero for XFreeFontNames */
  496. X      for (i = 0; i < rep.nFonts; i++) {
  497. X          flist[i] = ch + 1;  /* skip over length */
  498. X          ch += length + 1;  /* find next length ... */
  499. !         length = *ch;
  500. X          *ch = '\0';  /* and replace with null-termination */
  501. X      }
  502. X      }
  503. --- 68,79 ----
  504. X      /*
  505. X       * unpack into null terminated strings.
  506. X       */
  507. !     length = *(unsigned char *)ch;
  508. X      *ch = 1; /* make sure it is non-zero for XFreeFontNames */
  509. X      for (i = 0; i < rep.nFonts; i++) {
  510. X          flist[i] = ch + 1;  /* skip over length */
  511. X          ch += length + 1;  /* find next length ... */
  512. !         length = *(unsigned char *)ch;
  513. X          *ch = '\0';  /* and replace with null-termination */
  514. X      }
  515. X      }
  516. *** /tmp/,RCSt1000509    Tue Mar 17 12:07:37 1992
  517. --- mit/lib/X/XCrGC.c    Wed Mar  4 09:23:07 1992
  518. ***************
  519. *** 1,4 ****
  520. ! /* $XConsortium: XCrGC.c,v 11.36 91/04/14 13:53:01 rws Exp $ */
  521. X  /* Copyright    Massachusetts Institute of Technology    1986    */
  522. X  
  523. X  /*
  524. --- 1,4 ----
  525. ! /* $XConsortium: XCrGC.c,v 11.38 92/03/04 09:22:18 rws Exp $ */
  526. X  /* Copyright    Massachusetts Institute of Technology    1986    */
  527. X  
  528. X  /*
  529. ***************
  530. *** 47,52 ****
  531. --- 47,54 ----
  532. X      4        /* dashes (list [4,4]) */
  533. X  };
  534. X  
  535. + static void _XGenerateGCList();
  536. X  GC XCreateGC (dpy, d, valuemask, values)
  537. X       register Display *dpy;
  538. X       Drawable d;        /* Window or Pixmap for which depth matches */
  539. ***************
  540. *** 80,88 ****
  541. X          _XGenerateGCList (dpy, gc, (xReq *) req);
  542. X      ext = dpy->ext_procs;
  543. X      while (ext) {        /* call out to any extensions interested */
  544. !     if (ext->create_GC != NULL) (*ext->create_GC)(dpy, gc, &ext->codes);
  545. X      ext = ext->next;
  546. X      }    
  547. X      UnlockDisplay(dpy);
  548. X      SyncHandle();
  549. X      return (gc);
  550. --- 82,91 ----
  551. X          _XGenerateGCList (dpy, gc, (xReq *) req);
  552. X      ext = dpy->ext_procs;
  553. X      while (ext) {        /* call out to any extensions interested */
  554. !     if (ext->create_GC) (*ext->create_GC)(dpy, gc, &ext->codes);
  555. X      ext = ext->next;
  556. X      }    
  557. +     gc->dirty = 0L; /* allow extensions to see dirty bits */
  558. X      UnlockDisplay(dpy);
  559. X      SyncHandle();
  560. X      return (gc);
  561. ***************
  562. *** 90,99 ****
  563. X  
  564. X  /*
  565. X   * GenerateGCList looks at the GC dirty bits, and appends all the required
  566. !  * long words to the request being generated.  Clears the dirty bits in
  567. !  * the GC.
  568. X   */
  569. X  
  570. X  _XGenerateGCList (dpy, gc, req)
  571. X      register Display *dpy;
  572. X      xReq *req;
  573. --- 93,102 ----
  574. X  
  575. X  /*
  576. X   * GenerateGCList looks at the GC dirty bits, and appends all the required
  577. !  * long words to the request being generated.
  578. X   */
  579. X  
  580. + static void
  581. X  _XGenerateGCList (dpy, gc, req)
  582. X      register Display *dpy;
  583. X      xReq *req;
  584. ***************
  585. *** 145,151 ****
  586. X  
  587. X      nvalues <<= 2;
  588. X      Data32 (dpy, (long *) values, nvalues);
  589. -     gc->dirty = 0L;
  590. X  
  591. X      }
  592. X  
  593. --- 148,153 ----
  594. ***************
  595. *** 315,323 ****
  596. X          _XGenerateGCList (dpy, gc, (xReq *) req);
  597. X      ext = dpy->ext_procs;
  598. X      while (ext) {        /* call out to any extensions interested */
  599. !         if (ext->flush_GC != NULL) (*ext->flush_GC)(dpy, gc, &ext->codes);
  600. X          ext = ext->next;
  601. X      }    
  602. X      }
  603. X  }
  604. X  
  605. --- 317,326 ----
  606. X          _XGenerateGCList (dpy, gc, (xReq *) req);
  607. X      ext = dpy->ext_procs;
  608. X      while (ext) {        /* call out to any extensions interested */
  609. !         if (ext->flush_GC) (*ext->flush_GC)(dpy, gc, &ext->codes);
  610. X          ext = ext->next;
  611. X      }    
  612. +     gc->dirty = 0L; /* allow extensions to see dirty bits */
  613. X      }
  614. X  }
  615. X  
  616. *** /tmp/,RCSt1000428    Tue Mar 17 12:02:16 1992
  617. --- mit/lib/X/XcmsColNm.c    Tue Mar  3 12:17:04 1992
  618. ***************
  619. *** 1,4 ****
  620. ! /* $XConsortium: XcmsColNm.c,v 1.24 91/11/06 17:55:19 rws Exp $" */
  621. X  
  622. X  /*
  623. X   * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
  624. --- 1,4 ----
  625. ! /* $XConsortium: XcmsColNm.c,v 1.25 92/03/03 12:16:07 rws Exp $" */
  626. X  
  627. X  /*
  628. X   * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
  629. ***************
  630. *** 1014,1022 ****
  631. X              ScreenWhitePointOfCCC(ccc), result_format,
  632. X              pColor_exact_return, 1, (Bool *)NULL));
  633. X          } else {
  634. !         if (_XcmsDIConvertColors(ccc, pColor_exact_return,
  635. !             &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
  636. !             return(XcmsFailure);
  637. X          }
  638. X          return (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
  639. X              result_format, (Bool *)NULL));
  640. --- 1014,1024 ----
  641. X              ScreenWhitePointOfCCC(ccc), result_format,
  642. X              pColor_exact_return, 1, (Bool *)NULL));
  643. X          } else {
  644. !         if (pColor_exact_return->format != XcmsCIEXYZFormat) {
  645. !             if (_XcmsDIConvertColors(ccc, pColor_exact_return,
  646. !                 &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
  647. !             return(XcmsFailure);
  648. !             }
  649. X          }
  650. X          return (_XcmsDDConvertColors(ccc, pColor_exact_return, 1,
  651. X              result_format, (Bool *)NULL));
  652. ***************
  653. *** 1025,1044 ****
  654. X          /*
  655. X           * Target format is Device-Independent
  656. X           *    Therefore, DI --> DI conversion
  657. -          *
  658. -          * Since DI->DI, we don't apply WhiteAdjustProc.
  659. X           */
  660. !         if (_XcmsEqualWhitePts(ccc,
  661. X              &dbWhitePt, pClientWhitePt)) {
  662. !         return (_XcmsDIConvertColors(ccc, pColor_exact_return,
  663. !             &dbWhitePt, 1, result_format));
  664. X          } else {
  665. !         if (_XcmsDIConvertColors(ccc, pColor_exact_return,
  666. !             &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
  667. !             return(XcmsFailure);
  668. X          }
  669. !         return(_XcmsDIConvertColors(ccc, pColor_exact_return,
  670. !             pClientWhitePt, 1, result_format));
  671. X          }
  672. X      }
  673. X      }
  674. --- 1027,1080 ----
  675. X          /*
  676. X           * Target format is Device-Independent
  677. X           *    Therefore, DI --> DI conversion
  678. X           */
  679. !         if (ccc->whitePtAdjProc && !_XcmsEqualWhitePts(ccc,
  680. X              &dbWhitePt, pClientWhitePt)) {
  681. !         /*
  682. !          * The calling routine wants to resolve this color
  683. !          * in terms if it's white point (i.e. Client White Point).
  684. !          * Therefore, apply white adjustment for the displacement
  685. !          * between dbWhitePt to clientWhitePt.
  686. !          */
  687. !         return((*ccc->whitePtAdjProc)(ccc, &dbWhitePt,
  688. !             pClientWhitePt, result_format,
  689. !             pColor_exact_return, 1, (Bool *)NULL));
  690. !         } else if (_XcmsEqualWhitePts(ccc,
  691. !             &dbWhitePt, pClientWhitePt)) {
  692. !         /*
  693. !          * Can use either dbWhitePt or pClientWhitePt to
  694. !          * convert to the result_format.
  695. !          */
  696. !         if (pColor_exact_return->format == result_format) {
  697. !             return(XcmsSuccess);
  698. !         } else {
  699. !             return (_XcmsDIConvertColors(ccc, pColor_exact_return,
  700. !                 &dbWhitePt, 1, result_format));
  701. !         }
  702. X          } else {
  703. !         /*
  704. !          * Need to convert to a white point independent color
  705. !          * space (let's choose CIEXYZ) then convert to the
  706. !          * target color space.  Why? Lets assume that
  707. !          * pColor_exact_return->format and result format
  708. !          * are white point dependent format (e.g., CIELUV, CIELAB,
  709. !          * TekHVC ... same or any combination). If so, we'll
  710. !          * need to convert the color with dbWhitePt to an absolute
  711. !          * spec (i.e.  non-white point dependent) then convert that
  712. !          * absolute value with clientWhitePt to the result_format.
  713. !          */
  714. !         if (pColor_exact_return->format != XcmsCIEXYZFormat) {
  715. !             if (_XcmsDIConvertColors(ccc, pColor_exact_return,
  716. !                 &dbWhitePt, 1, XcmsCIEXYZFormat) == XcmsFailure) {
  717. !             return(XcmsFailure);
  718. !             }
  719. X          }
  720. !         if (result_format == XcmsCIEXYZFormat) {
  721. !             return(XcmsSuccess);
  722. !         } else {
  723. !             return(_XcmsDIConvertColors(ccc, pColor_exact_return,
  724. !                 pClientWhitePt, 1, result_format));
  725. !         }
  726. X          }
  727. X      }
  728. X      }
  729. *** /tmp/,RCSt1000153    Tue Mar 17 11:52:11 1992
  730. --- mit/lib/X/Xsi/ProtoFlt.c    Tue Mar  3 10:02:26 1992
  731. ***************
  732. *** 1,5 ****
  733. X  /*
  734. !  * $XConsortium: ProtoFlt.c,v 1.25 91/12/02 16:50:26 rws Exp $
  735. X   */
  736. X  
  737. X  /*
  738. --- 1,5 ----
  739. X  /*
  740. !  * $XConsortium: ProtoFlt.c,v 1.26 92/03/03 10:01:17 rws Exp $
  741. X   */
  742. X  
  743. X  /*
  744. ***************
  745. *** 95,101 ****
  746. X          ret = _XConvertCTToMB(ic->mb, (unsigned char *)ic->ct_buf, length,
  747. X                    mbuf, &mb_len, &scanned_bytes,
  748. X                    (_State *)NULL);
  749. !         if (ret == Success) {
  750. X  #ifdef macII
  751. X          wc_len = 0;
  752. X  #else
  753. --- 95,101 ----
  754. X          ret = _XConvertCTToMB(ic->mb, (unsigned char *)ic->ct_buf, length,
  755. X                    mbuf, &mb_len, &scanned_bytes,
  756. X                    (_State *)NULL);
  757. !         if (ret >= 0) {
  758. X  #ifdef macII
  759. X          wc_len = 0;
  760. X  #else
  761. ***************
  762. *** 106,112 ****
  763. X              return;
  764. X          }
  765. X  #endif
  766. !         if (ret != Success) {
  767. X          return;
  768. X          }
  769. X      } else {
  770. --- 106,112 ----
  771. X              return;
  772. X          }
  773. X  #endif
  774. !         if (ret < 0) {
  775. X          return;
  776. X          }
  777. X      } else {
  778. ***************
  779. *** 256,262 ****
  780. X          ret = _XConvertCTToMB(ic->mb, (unsigned char *)ic->ct_buf,
  781. X                        length, mbuf, &mb_len, &scanned_bytes,
  782. X                        (_State *)NULL);
  783. !         if (ret == Success) {
  784. X  #ifdef macII
  785. X              wc_len = 0;
  786. X  #else
  787. --- 256,262 ----
  788. X          ret = _XConvertCTToMB(ic->mb, (unsigned char *)ic->ct_buf,
  789. X                        length, mbuf, &mb_len, &scanned_bytes,
  790. X                        (_State *)NULL);
  791. !         if (ret >= 0) {
  792. X  #ifdef macII
  793. X              wc_len = 0;
  794. X  #else
  795. ***************
  796. *** 267,273 ****
  797. X              return;
  798. X          }
  799. X  #endif
  800. !         if (ret != Success) {
  801. X              return;
  802. X          }
  803. X          } else {
  804. --- 267,273 ----
  805. X              return;
  806. X          }
  807. X  #endif
  808. !         if (ret < 0) {
  809. X              return;
  810. X          }
  811. X          } else {
  812. *** /tmp/,RCSt1000172    Tue Mar 17 11:52:21 1992
  813. --- mit/lib/X/Xsi/XConnIM.c    Tue Mar  3 10:03:10 1992
  814. ***************
  815. *** 1,5 ****
  816. X  /*
  817. !  * $XConsortium: XConnIM.c,v 1.16 91/08/12 17:22:22 rws Exp $
  818. X   */
  819. X  
  820. X  /*
  821. --- 1,5 ----
  822. X  /*
  823. !  * $XConsortium: XConnIM.c,v 1.17 92/03/03 10:02:09 rws Exp $
  824. X   */
  825. X  
  826. X  /*
  827. ***************
  828. *** 61,69 ****
  829. X      im->fd = -1;
  830. X      return(False);
  831. X  #else
  832. - #ifdef    UNIXCONN
  833. -     char        hostname[256];    /* My host name buffer */
  834. - #endif
  835. X      char        im_hostname[256];/* Input manager host name buffer */
  836. X      Atom        actual_type;
  837. X      int            actual_format;
  838. --- 61,66 ----
  839. ***************
  840. *** 84,89 ****
  841. --- 81,87 ----
  842. X      ximNormalReply    reply;
  843. X      unsigned long    i;
  844. X      unsigned short    s;
  845. +     int            inet_ok = 0;
  846. X  
  847. X      im->fd = -1;
  848. X      /*
  849. ***************
  850. *** 109,123 ****
  851. X      if (im->major_version != XIM_MAJOR_VERSION) return(False);
  852. X      if (!(im->minor_version >= XIM_MINOR_VERSION)) return(False);
  853. X  
  854. ! #ifdef    UNIXCONN
  855. !     if (gethostname(hostname, 256) < 0) {
  856. !     hostname[0] = '\0';
  857. X      }
  858. X      /*
  859. !      * If the hostname of gethostname is null or the hostname of the input
  860. !      * manager is null, attempts to open UNIX domain socket.
  861. X       */
  862. !     if ((hostname[0] == '\0') || (im_hostname[0] == '\0')) {
  863. X      saddr.sun_family = AF_UNIX;
  864. X      strcpy(saddr.sun_path, XIM_UNIX_PATH);
  865. X      if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
  866. --- 107,136 ----
  867. X      if (im->major_version != XIM_MAJOR_VERSION) return(False);
  868. X      if (!(im->minor_version >= XIM_MINOR_VERSION)) return(False);
  869. X  
  870. ! #ifdef TCPCONN
  871. !     /*
  872. !      * Attempts to open INET domain socket.
  873. !      */
  874. !     if (hp = gethostbyname(im_hostname)) {
  875. !     bzero((char *)&saddr_in, (int)sizeof(saddr_in));
  876. !     bcopy(hp->h_addr, (char *)&saddr_in.sin_addr, hp->h_length);
  877. !     saddr_in.sin_family = AF_INET;
  878. !     saddr_in.sin_port = htons(port);
  879. !     if ((sd = socket(AF_INET, SOCK_STREAM, 0)) >= 0) {
  880. !         if (connect(sd, &saddr_in, sizeof(saddr_in)) >= 0) {
  881. !         inet_ok = 1;
  882. !         } else {
  883. !         close(sd);
  884. !         sd = -1;
  885. !         }
  886. !     }
  887. X      }
  888. + #endif
  889. + #ifdef    UNIXCONN
  890. X      /*
  891. !      * Attempts to open UNIX domain socket.
  892. X       */
  893. !     if (inet_ok == 0) {
  894. X      saddr.sun_family = AF_UNIX;
  895. X      strcpy(saddr.sun_path, XIM_UNIX_PATH);
  896. X      if ((sd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
  897. ***************
  898. *** 127,156 ****
  899. X          close(sd);
  900. X          return(False);
  901. X      }
  902. -     } else {
  903. - #endif    /* UNIXCONN */
  904. - #ifdef TCPCONN
  905. -     /*
  906. -      * Attempts to open INET domain socket.
  907. -      */
  908. -     if ((hp = gethostbyname(im_hostname)) == NULL) {
  909. -         return(False);
  910. -     }
  911. -     bzero((char *)&saddr_in, (int)sizeof(saddr_in));
  912. -     bcopy(hp->h_addr, (char *)&saddr_in.sin_addr, hp->h_length);
  913. -     saddr_in.sin_family = AF_INET;
  914. -     saddr_in.sin_port = htons(port);
  915. -     if ((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  916. -         return(False);
  917. -     }
  918. -     if (connect(sd, &saddr_in, sizeof(saddr_in)) < 0) {
  919. -         close(sd);
  920. -         return(False);
  921. -     }
  922. - #endif
  923. - #ifdef    UNIXCONN
  924. X      }
  925. X  #endif    /* UNIXCONN */
  926. X  
  927. X      /*
  928. X       * Send the display name to the input manager. 
  929. --- 140,148 ----
  930. X          close(sd);
  931. X          return(False);
  932. X      }
  933. X      }
  934. X  #endif    /* UNIXCONN */
  935. +     if (sd == -1) return(False);
  936. X  
  937. X      /*
  938. X       * Send the display name to the input manager. 
  939. *** /tmp/,RCSt1000191    Tue Mar 17 11:52:32 1992
  940. --- mit/lib/X/Xsi/XCrFntSet.c    Tue Mar  3 10:01:24 1992
  941. ***************
  942. *** 1,5 ****
  943. X  /*
  944. !  * $XConsortium: XCrFntSet.c,v 1.43 91/12/02 16:49:48 rws Exp $
  945. X   */
  946. X  
  947. X  /*
  948. --- 1,5 ----
  949. X  /*
  950. !  * $XConsortium: XCrFntSet.c,v 1.44 92/03/03 10:00:34 rws Exp $
  951. X   */
  952. X  
  953. X  /*
  954. ***************
  955. *** 440,453 ****
  956. X          if (matchCharset(fn, cset->cs_name, cset->cs_GLorGR) == True) {
  957. X          dbg_printf("findFont: matched\n", 0, 0);
  958. X          ret++;
  959. -         f_tmp[i] = fn;
  960. X  #ifdef PRELOAD
  961. X          if (!(s_tmp[i] = XLoadQueryFont(dpy, fn))) ret--;
  962. X  #else /* PRELOAD */
  963. X          if (!info)
  964. X              list = XListFontsWithInfo(dpy, fname, 1, &count, &info);
  965. !         if(! (s_tmp[i] = (XFontStruct *) Xmalloc(sizeof(XFontStruct))))
  966. X              return ret;
  967. X  # ifndef MUSTCOPY
  968. X          s_tmp[i] = info[0];
  969. X  # else /* MUSTCOPY */
  970. --- 440,454 ----
  971. X          if (matchCharset(fn, cset->cs_name, cset->cs_GLorGR) == True) {
  972. X          dbg_printf("findFont: matched\n", 0, 0);
  973. X          ret++;
  974. X  #ifdef PRELOAD
  975. X          if (!(s_tmp[i] = XLoadQueryFont(dpy, fn))) ret--;
  976. X  #else /* PRELOAD */
  977. X          if (!info)
  978. X              list = XListFontsWithInfo(dpy, fname, 1, &count, &info);
  979. !         if(! (s_tmp[i] = (XFontStruct *) Xmalloc(sizeof(XFontStruct)))){
  980. !             Xfree((char *)fn);
  981. X              return ret;
  982. +         }
  983. X  # ifndef MUSTCOPY
  984. X          s_tmp[i] = info[0];
  985. X  # else /* MUSTCOPY */
  986. ***************
  987. *** 457,462 ****
  988. --- 458,468 ----
  989. X          s_tmp[i]->fid = 0;
  990. X  #endif /* PRELOAD */
  991. X          id_tmp[i] = cset->cs_id;
  992. +         if(! (f_tmp[i] = (char *) Xmalloc(strlen(fn) + 1))) {
  993. +             Xfree((char *)fn);
  994. +             return --ret;
  995. +         }
  996. +         strcpy(f_tmp[i], fn);
  997. X          } else {
  998. X          f_tmp[i] = NULL;
  999. X          }
  1000. ***************
  1001. *** 466,471 ****
  1002. --- 472,478 ----
  1003. X      if (info) {
  1004. X      XFreeFontInfo(list, info, count);
  1005. X      }
  1006. +     Xfree((char *)fn);
  1007. X      return ret;
  1008. X  
  1009. X  }
  1010. ***************
  1011. *** 678,684 ****
  1012. X      }
  1013. X  
  1014. X      if (!loadASCIIFONT) {
  1015. !     f_tmp[0] = "fixed";    /* use defalt font */
  1016. X      s_tmp[0] = XLoadQueryFont(dpy, f_tmp[0]);
  1017. X      }
  1018. X  
  1019. --- 685,693 ----
  1020. X      }
  1021. X  
  1022. X      if (!loadASCIIFONT) {
  1023. !     if(! (f_tmp[0] = (char *)Xmalloc(strlen("fixed") + 1)))
  1024. !         return NULL;
  1025. !     strcpy(f_tmp[0], "fixed");    /* use defalt font */
  1026. X      s_tmp[0] = XLoadQueryFont(dpy, f_tmp[0]);
  1027. X      }
  1028. X  
  1029. ***************
  1030. *** 704,709 ****
  1031. --- 713,721 ----
  1032. X                &font_set->min_bounds, &font_set->max_bounds,
  1033. X                &font_set->ascent, &font_set->descent);
  1034. X      font_set->core.default_string = NULL;
  1035. +     for (i = 0; (int)i < found; i++) {
  1036. +     Xfree((char *)f_tmp[i]);
  1037. +     }
  1038. X  
  1039. X      /*
  1040. X       * set the ink bounding box of font_set.
  1041. ***************
  1042. *** 867,872 ****
  1043. --- 879,887 ----
  1044. X                &font_set->min_bounds, &font_set->max_bounds,
  1045. X                &font_set->ascent, &font_set->descent);
  1046. X      font_set->core.default_string = NULL;
  1047. +     for (i = 0; (int)i < found; i++) {
  1048. +     Xfree((char *)f_tmp[i]);
  1049. +     }
  1050. X  
  1051. X      /*
  1052. X       * set the ink bounding box of font_set.
  1053. *** /tmp/,RCSt1000211    Tue Mar 17 11:52:41 1992
  1054. --- mit/lib/X/Xsi/XIMKeyBind.c    Tue Mar  3 10:02:30 1992
  1055. ***************
  1056. *** 1,5 ****
  1057. X  /*
  1058. !  * $XConsortium: XIMKeyBind.c,v 1.21 91/12/02 16:42:44 rws Exp $
  1059. X   */
  1060. X  
  1061. X  /*
  1062. --- 1,5 ----
  1063. X  /*
  1064. !  * $XConsortium: XIMKeyBind.c,v 1.22 92/03/03 10:01:53 rws Exp $
  1065. X   */
  1066. X  
  1067. X  /*
  1068. ***************
  1069. *** 67,73 ****
  1070. X          mbuf = _XAllocScratch(ev->display, ret_len);
  1071. X          ret = _XConvertCTToMB(ic->mb, ptr, length, mbuf,
  1072. X                    &ret_len, &scanned_bytes, (_State *)NULL);
  1073. !         if (ret == Success) {
  1074. X  #ifdef macII
  1075. X          ret_len = 0;
  1076. X  #else
  1077. --- 67,73 ----
  1078. X          mbuf = _XAllocScratch(ev->display, ret_len);
  1079. X          ret = _XConvertCTToMB(ic->mb, ptr, length, mbuf,
  1080. X                    &ret_len, &scanned_bytes, (_State *)NULL);
  1081. !         if (ret >= 0) {
  1082. X  #ifdef macII
  1083. X          ret_len = 0;
  1084. X  #else
  1085. ***************
  1086. *** 78,84 ****
  1087. X              ret = XBufferOverflow;
  1088. X          }
  1089. X  #endif
  1090. !         if (ret != Success) {
  1091. X          *status = XBufferOverflow;
  1092. X          return(0);
  1093. X          }
  1094. --- 78,84 ----
  1095. X              ret = XBufferOverflow;
  1096. X          }
  1097. X  #endif
  1098. !         if (ret < 0) {
  1099. X          *status = XBufferOverflow;
  1100. X          return(0);
  1101. X          }
  1102. ***************
  1103. *** 104,112 ****
  1104. X          }
  1105. X  #ifdef X_WCHAR
  1106. X          /* XXX BUG Need to save current status */
  1107. !         _XConvertMBToWC(ic->wc, (unsigned char *)buf, ret_len,
  1108. X                  (wchar *)buffer, &nchars, &scanned_bytes,
  1109. X                  (_State *)NULL);
  1110. X          ret_len = nchars;
  1111. X          /* XXX BUG Need to restore saved status */
  1112. X  #else
  1113. --- 104,116 ----
  1114. X          }
  1115. X  #ifdef X_WCHAR
  1116. X          /* XXX BUG Need to save current status */
  1117. !         ret = _XConvertMBToWC(ic->wc, (unsigned char *)buf, ret_len,
  1118. X                  (wchar *)buffer, &nchars, &scanned_bytes,
  1119. X                  (_State *)NULL);
  1120. +         if (ret < 0) {
  1121. +         *status = XBufferOverflow;
  1122. +         return(0);
  1123. +         }
  1124. X          ret_len = nchars;
  1125. X          /* XXX BUG Need to restore saved status */
  1126. X  #else
  1127. ***************
  1128. *** 150,156 ****
  1129. X          ret_len = nbytes;
  1130. X          ret = _XConvertCTToMB(ic->mb, ptr, length, (unsigned char *)buffer,
  1131. X                    &ret_len, &scanned_bytes, (_State *)NULL);
  1132. !         if (ret != Success) {
  1133. X          *status = XBufferOverflow;
  1134. X          return(0);
  1135. X          }
  1136. --- 154,160 ----
  1137. X          ret_len = nbytes;
  1138. X          ret = _XConvertCTToMB(ic->mb, ptr, length, (unsigned char *)buffer,
  1139. X                    &ret_len, &scanned_bytes, (_State *)NULL);
  1140. !         if (ret < 0) {
  1141. X          *status = XBufferOverflow;
  1142. X          return(0);
  1143. X          }
  1144. ***************
  1145. *** 163,169 ****
  1146. X                        (unsigned char *)buffer,
  1147. X                        &ret_len, &scanned_bytes,
  1148. X                        (_State *)NULL);
  1149. !         if (ret != Success) {
  1150. X              *status = XBufferOverflow;
  1151. X              return(0);
  1152. X          }
  1153. --- 167,173 ----
  1154. X                        (unsigned char *)buffer,
  1155. X                        &ret_len, &scanned_bytes,
  1156. X                        (_State *)NULL);
  1157. !         if (ret < 0) {
  1158. X              *status = XBufferOverflow;
  1159. X              return(0);
  1160. X          }
  1161. *** /tmp/,RCSt1000782    Tue Mar 17 15:30:58 1992
  1162. --- mit/lib/X/Xsi/XInitCT.c    Tue Mar  3 10:04:01 1992
  1163. ***************
  1164. *** 1,5 ****
  1165. X  /*
  1166. !  * $XConsortium: XInitCT.c,v 1.16 91/09/18 16:29:54 rws Exp $
  1167. X   */
  1168. X  
  1169. X  /*
  1170. --- 1,5 ----
  1171. X  /*
  1172. !  * $XConsortium: XInitCT.c,v 1.17 92/03/03 10:02:52 rws Exp $
  1173. X   */
  1174. X  
  1175. X  /*
  1176. ***************
  1177. *** 546,554 ****
  1178. X      _CSID            ind, i;
  1179. X      _CSID             n = ISOStateTableNum;
  1180. X  
  1181. ! #define PosSub(s1, s2) ((s1 >= s2) ? (s1 - s2) : ~0L)
  1182. X  
  1183. X      *woffset = ptr->state_woffset;
  1184. X      ind = CODESET0;
  1185. X      disp_min = PosSub(wc, ptr->state_woffset);
  1186. X      if (disp_min == (wchar) ~0L) {
  1187. --- 546,555 ----
  1188. X      _CSID            ind, i;
  1189. X      _CSID             n = ISOStateTableNum;
  1190. X  
  1191. ! #define PosSub(s1, s2) (((s1) >= (s2)) ? ((s1) - (s2)) : ~0L)
  1192. X  
  1193. X      *woffset = ptr->state_woffset;
  1194. +     wc &= ~0x7f;
  1195. X      ind = CODESET0;
  1196. X      disp_min = PosSub(wc, ptr->state_woffset);
  1197. X      if (disp_min == (wchar) ~0L) {
  1198. ***************
  1199. *** 558,566 ****
  1200. X      if (disp_min < 0x80)
  1201. X      return(CODESET0);
  1202. X      for (i = 1, ptr++; i < n; i++, ptr++) {
  1203. !         if (((new = PosSub(wc, ptr->state_woffset)) > 0) && (new < disp_min)) {
  1204. X              *woffset = ptr->state_woffset;
  1205. !         if ((new < 0x80) || (ptr->state_length == 2 && new < 0x8000))
  1206. X          return(i);
  1207. X              ind = i;
  1208. X              disp_min = new;
  1209. --- 559,571 ----
  1210. X      if (disp_min < 0x80)
  1211. X      return(CODESET0);
  1212. X      for (i = 1, ptr++; i < n; i++, ptr++) {
  1213. !     if (ptr->state_length == 2)
  1214. !         new = PosSub(wc & ~0x7f00, ptr->state_woffset);
  1215. !     else
  1216. !         new = PosSub(wc, ptr->state_woffset);
  1217. !         if ((new >= 0) && (new < disp_min)) {
  1218. X              *woffset = ptr->state_woffset;
  1219. !         if (new < 0x80)
  1220. X          return(i);
  1221. X              ind = i;
  1222. X              disp_min = new;
  1223. *** /tmp/,RCSt1000246    Tue Mar 17 11:54:17 1992
  1224. --- mit/lib/nls/Xsi/ja_JP.ujis    Tue Mar  3 10:00:18 1992
  1225. ***************
  1226. *** 1,5 ****
  1227. X  #
  1228. ! # $XConsortium: ja_JP.ujis,v 1.7 91/06/29 20:02:02 xguest Exp $
  1229. X  #
  1230. X  # Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
  1231. X  #                      and Nippon Telegraph and Telephone Corporation
  1232. --- 1,5 ----
  1233. X  #
  1234. ! # $XConsortium: ja_JP.ujis,v 1.8 92/03/03 09:59:32 rws Exp $
  1235. X  #
  1236. X  # Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
  1237. X  #                      and Nippon Telegraph and Telephone Corporation
  1238. ***************
  1239. *** 103,109 ****
  1240. X  (8fa1a1=2121:7e7e)
  1241. X  #
  1242. X  # UDC
  1243. ! (f5a1=2121:2d7e)
  1244. X  END XLC_CODESET
  1245. X  #
  1246. X  # END OF FILE
  1247. --- 103,109 ----
  1248. X  (8fa1a1=2121:7e7e)
  1249. X  #
  1250. X  # UDC
  1251. ! (f5a1=2121:2a7e)
  1252. X  END XLC_CODESET
  1253. X  #
  1254. X  # END OF FILE
  1255. *** /tmp/,RCSt1000330    Tue Mar 17 11:57:46 1992
  1256. --- mit/lib/X/Ximp/XimpIC.c    Tue Mar  3 11:03:57 1992
  1257. ***************
  1258. *** 1,4 ****
  1259. ! /* $XConsortium: XimpIC.c,v 1.4 91/10/07 17:48:30 rws Exp $ */
  1260. X  /******************************************************************
  1261. X  
  1262. X                Copyright 1991, by FUJITSU LIMITED
  1263. --- 1,4 ----
  1264. ! /* $XConsortium: XimpIC.c,v 1.5 92/03/03 11:03:14 rws Exp $ */
  1265. X  /******************************************************************
  1266. X  
  1267. X                Copyright 1991, by FUJITSU LIMITED
  1268. ***************
  1269. *** 58,63 ****
  1270. --- 58,71 ----
  1271. X  static void         _Ximp_AttributesSetL();
  1272. X  extern void         _Ximp_IM_SendMessage();
  1273. X  
  1274. + #if NeedFunctionPrototypes
  1275. + extern Bool _Ximp_XimFilter_Keypress (
  1276. +     Display *d, 
  1277. +     Window w, 
  1278. +     XEvent *ev, 
  1279. +     XPointer client_data);
  1280. + #endif
  1281. X  static XICMethodsRec Ximp_ic_methods = {
  1282. X                  _Ximp_DestroyIC,     /* destroy */
  1283. X                  _Ximp_SetFocus,      /* set_focus */
  1284. ***************
  1285. *** 75,81 ****
  1286. X      Display        *d;
  1287. X      Window        w;
  1288. X      XEvent        *ev;
  1289. !     XPointer    *client_data;
  1290. X  {
  1291. X      extern Bool    _Ximp_Keypress ();
  1292. X  
  1293. --- 83,89 ----
  1294. X      Display        *d;
  1295. X      Window        w;
  1296. X      XEvent        *ev;
  1297. !     XPointer    client_data;
  1298. X  {
  1299. X      extern Bool    _Ximp_Keypress ();
  1300. X  
  1301. ***************
  1302. *** 138,144 ****
  1303. X                  ic->core.focus_window,
  1304. X                  KeyPress, KeyPress,
  1305. X                  _Ximp_XimFilter_Keypress,
  1306. !                 ic);
  1307. X          current_xic = ic;
  1308. X      }
  1309. X      return((XIC)ic);
  1310. --- 146,152 ----
  1311. X                  ic->core.focus_window,
  1312. X                  KeyPress, KeyPress,
  1313. X                  _Ximp_XimFilter_Keypress,
  1314. !                 (XPointer)ic);
  1315. X          current_xic = ic;
  1316. X      }
  1317. X      return((XIC)ic);
  1318. ***************
  1319. *** 159,165 ****
  1320. X              _XUnregisterFilter (ic->core.im->core.display,
  1321. X                      ic->core.focus_window,
  1322. X                      _Ximp_XimFilter_Keypress,
  1323. !                     current_xic);
  1324. X              current_xic = 0;
  1325. X          }
  1326. X      }
  1327. --- 167,173 ----
  1328. X              _XUnregisterFilter (ic->core.im->core.display,
  1329. X                      ic->core.focus_window,
  1330. X                      _Ximp_XimFilter_Keypress,
  1331. !                     (XPointer)current_xic);
  1332. X              current_xic = 0;
  1333. X          }
  1334. X      }
  1335. ***************
  1336. *** 177,188 ****
  1337. X              _XUnregisterFilter (ic->core.im->core.display,
  1338. X                          ic->core.focus_window,
  1339. X                          _Ximp_XimFilter_Keypress,
  1340. !                         current_xic);
  1341. X          _XRegisterFilterByType (ic->core.im->core.display,
  1342. X                      ic->core.focus_window,
  1343. X                      KeyPress, KeyPress,
  1344. X                      _Ximp_XimFilter_Keypress,
  1345. !                     ic);
  1346. X          current_xic = ic;
  1347. X      }
  1348. X      return;
  1349. --- 185,196 ----
  1350. X              _XUnregisterFilter (ic->core.im->core.display,
  1351. X                          ic->core.focus_window,
  1352. X                          _Ximp_XimFilter_Keypress,
  1353. !                         (XPointer)current_xic);
  1354. X          _XRegisterFilterByType (ic->core.im->core.display,
  1355. X                      ic->core.focus_window,
  1356. X                      KeyPress, KeyPress,
  1357. X                      _Ximp_XimFilter_Keypress,
  1358. !                     (XPointer)ic);
  1359. X          current_xic = ic;
  1360. X      }
  1361. X      return;
  1362. ***************
  1363. *** 198,204 ****
  1364. X              _XUnregisterFilter (ic->core.im->core.display,
  1365. X                      ic->core.focus_window,
  1366. X                      _Ximp_XimFilter_Keypress,
  1367. !                     current_xic);
  1368. X              current_xic = 0;
  1369. X          }
  1370. X      }
  1371. --- 206,212 ----
  1372. X              _XUnregisterFilter (ic->core.im->core.display,
  1373. X                      ic->core.focus_window,
  1374. X                      _Ximp_XimFilter_Keypress,
  1375. !                     (XPointer)current_xic);
  1376. X              current_xic = 0;
  1377. X          }
  1378. X      }
  1379. *** /tmp/,RCSt1000347    Tue Mar 17 11:57:56 1992
  1380. --- mit/lib/X/Ximp/XimpLkup.c    Tue Mar  3 11:04:03 1992
  1381. ***************
  1382. *** 1,4 ****
  1383. ! /* $XConsortium: XimpLkup.c,v 1.5 91/10/07 17:49:03 rws Exp $ */
  1384. X  /******************************************************************
  1385. X  
  1386. X                Copyright 1991, by Sony Corporation
  1387. --- 1,4 ----
  1388. ! /* $XConsortium: XimpLkup.c,v 1.6 92/03/03 11:03:23 rws Exp $ */
  1389. X  /******************************************************************
  1390. X  
  1391. X                Copyright 1991, by Sony Corporation
  1392. ***************
  1393. *** 71,76 ****
  1394. --- 71,84 ----
  1395. X  static void        _Ximp_CallCallback();
  1396. X  static void        _Ximp_ProcError();
  1397. X  
  1398. + #if NeedFunctionPrototypes
  1399. + static Bool
  1400. + _Ximp_ResetPredicate(
  1401. +     Display *d,
  1402. +     XEvent *ev,
  1403. +     XPointer parg);
  1404. + #endif
  1405. X  typedef struct {
  1406. X      Atom type;
  1407. X      ICID icid;
  1408. ***************
  1409. *** 78,88 ****
  1410. X  } XimpResetPredArgRec, *XimpResetPredArg;
  1411. X  
  1412. X  static Bool
  1413. ! _Ximp_ResetPredicate(d, ev, arg)
  1414. X  Display *d;
  1415. X  XEvent *ev;
  1416. ! XimpResetPredArg arg;
  1417. X  {
  1418. X      if (ev->type == ClientMessage) {
  1419. X          if (ev->xclient.message_type == arg->type) {
  1420. X              if ((ev->xclient.format == 32) &&
  1421. --- 86,97 ----
  1422. X  } XimpResetPredArgRec, *XimpResetPredArg;
  1423. X  
  1424. X  static Bool
  1425. ! _Ximp_ResetPredicate(d, ev, parg)
  1426. X  Display *d;
  1427. X  XEvent *ev;
  1428. ! XPointer parg;
  1429. X  {
  1430. +     XimpResetPredArg arg = (XimpResetPredArg)parg;
  1431. X      if (ev->type == ClientMessage) {
  1432. X          if (ev->xclient.message_type == arg->type) {
  1433. X              if ((ev->xclient.format == 32) &&
  1434. ***************
  1435. *** 128,134 ****
  1436. X          Arg.icid = ic->ximp_icpart->icid;
  1437. X          Arg.owner = ((Ximp_XIM)ic->core.im)->ximp_impart->fe_window;
  1438. X          while(_time_flag != 1) {
  1439. !             if( (XCheckIfEvent(ic->core.im->core.display, &event, _Ximp_ResetPredicate, &Arg)) == False) {
  1440. X  #ifdef XIMP_SIGNAL
  1441. X                  sleep(1);
  1442. X  #endif /* XIMP_SIGNAL */
  1443. --- 137,143 ----
  1444. X          Arg.icid = ic->ximp_icpart->icid;
  1445. X          Arg.owner = ((Ximp_XIM)ic->core.im)->ximp_impart->fe_window;
  1446. X          while(_time_flag != 1) {
  1447. !             if( (XCheckIfEvent(ic->core.im->core.display, &event, _Ximp_ResetPredicate, (XPointer)&Arg)) == False) {
  1448. X  #ifdef XIMP_SIGNAL
  1449. X                  sleep(1);
  1450. X  #endif /* XIMP_SIGNAL */
  1451. ***************
  1452. *** 198,204 ****
  1453. X  
  1454. X      if (!ct) return(NULL);
  1455. X      mb = Xmalloc(length);
  1456. !     _Ximp_cttombs(ic->core.im->core.lcd, ct, strlen(ct), mb, &length, NULL);
  1457. X      mb[length] = '\0';
  1458. X      return(mb);
  1459. X  }
  1460. --- 207,213 ----
  1461. X  
  1462. X      if (!ct) return(NULL);
  1463. X      mb = Xmalloc(length);
  1464. !     _Ximp_cttombs(ic->core.im->core.lcd, ct, strlen((char *)ct), mb, &length, NULL);
  1465. X      mb[length] = '\0';
  1466. X      return(mb);
  1467. X  }
  1468. ***************
  1469. *** 213,219 ****
  1470. X  
  1471. X      if (!ct) return(NULL);
  1472. X      wc = (wchar_t *)Xmalloc(length * sizeof(wchar_t));
  1473. !     _Ximp_cttowcs(ic->core.im->core.lcd, ct, strlen(ct), wc, &length, NULL);
  1474. X      wc[length] = (wchar_t)0;
  1475. X      return(wc);
  1476. X  }
  1477. --- 222,228 ----
  1478. X  
  1479. X      if (!ct) return(NULL);
  1480. X      wc = (wchar_t *)Xmalloc(length * sizeof(wchar_t));
  1481. !     _Ximp_cttowcs(ic->core.im->core.lcd, ct, strlen((char *)ct), wc, &length, NULL);
  1482. X      wc[length] = (wchar_t)0;
  1483. X      return(wc);
  1484. X  }
  1485. ***************
  1486. *** 547,553 ****
  1487. X      XChangeProperty(ic->core.im->core.display, ic->core.client_window,
  1488. X              ((Ximp_XIM)ic->core.im)->ximp_impart->version_id,
  1489. X              XA_STRING, 8, PropModeReplace,
  1490. !             XIMP_PROTOCOL_VERSION, strlen(XIMP_PROTOCOL_VERSION));
  1491. X      XFlush(ic->core.im->core.display);
  1492. X  
  1493. X      mask = ic->ximp_icpart->proto_mask;
  1494. --- 556,562 ----
  1495. X      XChangeProperty(ic->core.im->core.display, ic->core.client_window,
  1496. X              ((Ximp_XIM)ic->core.im)->ximp_impart->version_id,
  1497. X              XA_STRING, 8, PropModeReplace,
  1498. !             (unsigned char *)XIMP_PROTOCOL_VERSION, strlen(XIMP_PROTOCOL_VERSION));
  1499. X      XFlush(ic->core.im->core.display);
  1500. X  
  1501. X      mask = ic->ximp_icpart->proto_mask;
  1502. ***************
  1503. *** 849,855 ****
  1504. X              _Ximp_ProcKeypress (d, w, ev);
  1505. X              _Ximp_MakeKeypress (d, w, ev);
  1506. X              ev->send_event = False ;
  1507. !             XPutBackEvent(d, ev);
  1508. X              break ;
  1509. X          case XIMP_CREATE_RETURN:
  1510. X              _Ximp_ProcCreateReturn (d, w, ev);
  1511. --- 858,864 ----
  1512. X              _Ximp_ProcKeypress (d, w, ev);
  1513. X              _Ximp_MakeKeypress (d, w, ev);
  1514. X              ev->send_event = False ;
  1515. !             XPutBackEvent(d, (XEvent *)ev);
  1516. X              break ;
  1517. X          case XIMP_CREATE_RETURN:
  1518. X              _Ximp_ProcCreateReturn (d, w, ev);
  1519. ***************
  1520. *** 864,870 ****
  1521. X              _Ximp_ProcReadProperty (d, w, ev);
  1522. X              _Ximp_MakeKeypress (d, w, ev);
  1523. X              ev->send_event = False ;
  1524. !             XPutBackEvent(d, ev);
  1525. X              break ;
  1526. X          case XIMP_ERROR:
  1527. X              _Ximp_ProcError (d, w, ev);
  1528. --- 873,879 ----
  1529. X              _Ximp_ProcReadProperty (d, w, ev);
  1530. X              _Ximp_MakeKeypress (d, w, ev);
  1531. X              ev->send_event = False ;
  1532. !             XPutBackEvent(d, (XEvent *)ev);
  1533. X              break ;
  1534. X          case XIMP_ERROR:
  1535. X              _Ximp_ProcError (d, w, ev);
  1536. ***************
  1537. *** 891,897 ****
  1538. X          _Ximp_ProcReadMessage (d, w, ev);
  1539. X          _Ximp_MakeKeypress (d, w, ev);
  1540. X          ev->send_event = False ;
  1541. !         XPutBackEvent(d, ev);
  1542. X          }
  1543. X      return (True);
  1544. X  }
  1545. --- 900,906 ----
  1546. X          _Ximp_ProcReadMessage (d, w, ev);
  1547. X          _Ximp_MakeKeypress (d, w, ev);
  1548. X          ev->send_event = False ;
  1549. !         XPutBackEvent(d, (XEvent *)ev);
  1550. X          }
  1551. X      return (True);
  1552. X  }
  1553. *** /tmp/,RCSt1000365    Tue Mar 17 11:58:07 1992
  1554. --- mit/lib/X/Ximp/XimpCT.c    Tue Mar  3 11:03:18 1992
  1555. ***************
  1556. *** 1,4 ****
  1557. ! /* $XConsortium: XimpCT.c,v 1.2 91/07/30 14:27:12 rws Exp $ */
  1558. X  /*
  1559. X   * Copyright 1990, 1991 by TOSHIBA Corp.
  1560. X   * Copyright 1990, 1991 by SORD Computer Corp.
  1561. --- 1,4 ----
  1562. ! /* $XConsortium: XimpCT.c,v 1.3 92/03/03 11:02:11 rws Exp $ */
  1563. X  /*
  1564. X   * Copyright 1990, 1991 by TOSHIBA Corp.
  1565. X   * Copyright 1990, 1991 by SORD Computer Corp.
  1566. ***************
  1567. *** 213,219 ****
  1568. X          if (ctext_len < 1)
  1569. X          return -1;
  1570. X  
  1571. !         if (ctext_len > 4 && *ctptr++ == '%') {
  1572. X          ch = *ctptr++;
  1573. X          if (ch < 0x30 || ch > 0x3f)
  1574. X              goto unknown;
  1575. --- 213,219 ----
  1576. X          if (ctext_len < 1)
  1577. X          return -1;
  1578. X  
  1579. !         if (ctext_len > 4 && *ctptr++ == '/') {
  1580. X          ch = *ctptr++;
  1581. X          if (ch < 0x30 || ch > 0x3f)
  1582. X              goto unknown;
  1583. *** /tmp/,RCSt1000382    Tue Mar 17 11:58:16 1992
  1584. --- mit/lib/X/Ximp/XimpICG.c    Tue Mar  3 11:02:23 1992
  1585. ***************
  1586. *** 1,4 ****
  1587. ! /* $XConsortium: XimpICG.c,v 1.5 91/10/10 20:08:25 rws Exp $ */
  1588. X  /******************************************************************
  1589. X  
  1590. X      Copyright 1991, by FUJITSU LIMITED.
  1591. --- 1,4 ----
  1592. ! /* $XConsortium: XimpICG.c,v 1.6 92/03/03 11:01:06 rws Exp $ */
  1593. X  /******************************************************************
  1594. X  
  1595. X      Copyright 1991, by FUJITSU LIMITED.
  1596. ***************
  1597. *** 153,158 ****
  1598. --- 153,159 ----
  1599. X      int         im_font_flag    = 0;
  1600. X      Ximp_PreeditPropRec    *preedit_data;
  1601. X      XIMCallback     *p_callback;
  1602. +     XPointer    *xptr;
  1603. X  
  1604. X      if(((Ximp_XIM)ic->core.im)->ximp_impart->inputserver) {
  1605. X          for(mask = 0, p = vl; p->name != NULL; p++) {
  1606. ***************
  1607. *** 209,221 ****
  1608. X              }
  1609. X          } else if(strcmp(p->name, XNAreaNeeded)==0) {
  1610. X              if(im_preedit_flag) {
  1611. !                 p_rect =  (XRectangle *)(p->value) ;
  1612. X                  p_rect->x  = p_rect->y  = 0;
  1613. X                  p_rect->width   = preedit_data->AreaNeeded.width;
  1614. X                  p_rect->height  = preedit_data->AreaNeeded.height;
  1615. X              } else {
  1616. X                  if(ic->ximp_icpart->proto_mask & XIMP_PRE_AREANEED_MASK) {
  1617. !                         p_rect = (XRectangle *)(p->value) ;
  1618. X                      p_rect->x  = p_rect->y  = 0;
  1619. X                      p_rect->width   = ic->core.preedit_attr.area_needed.width;
  1620. X                      p_rect->height  = ic->core.preedit_attr.area_needed.height;
  1621. --- 210,226 ----
  1622. X              }
  1623. X          } else if(strcmp(p->name, XNAreaNeeded)==0) {
  1624. X              if(im_preedit_flag) {
  1625. !                 p_rect = (XRectangle *)Xmalloc(sizeof(XRectangle));
  1626. !                 xptr = (XPointer *)p->value;
  1627. !                 *xptr = (XPointer)p_rect;
  1628. X                  p_rect->x  = p_rect->y  = 0;
  1629. X                  p_rect->width   = preedit_data->AreaNeeded.width;
  1630. X                  p_rect->height  = preedit_data->AreaNeeded.height;
  1631. X              } else {
  1632. X                  if(ic->ximp_icpart->proto_mask & XIMP_PRE_AREANEED_MASK) {
  1633. !                     p_rect = (XRectangle *)Xmalloc(sizeof(XRectangle));
  1634. !                     xptr = (XPointer *)p->value;
  1635. !                     *xptr = (XPointer)p_rect;
  1636. X                      p_rect->x  = p_rect->y  = 0;
  1637. X                      p_rect->width   = ic->core.preedit_attr.area_needed.width;
  1638. X                      p_rect->height  = ic->core.preedit_attr.area_needed.height;
  1639. ***************
  1640. *** 226,237 ****
  1641. X              }
  1642. X          } else if(strcmp(p->name, XNSpotLocation)==0) {
  1643. X              if(im_preedit_flag) {
  1644. !                     p_point = (XPoint *)(p->value);
  1645. X                  p_point->x = preedit_data->SpotLocation.x;
  1646. X                  p_point->y = preedit_data->SpotLocation.y;
  1647. X              } else {
  1648. X                  if(ic->ximp_icpart->proto_mask & XIMP_PRE_SPOTL_MASK) {
  1649. !                         p_point = (XPoint *)(p->value);
  1650. X                      p_point->x = ic->core.preedit_attr.spot_location.x;
  1651. X                      p_point->y = ic->core.preedit_attr.spot_location.y;
  1652. X                  } else {
  1653. --- 231,246 ----
  1654. X              }
  1655. X          } else if(strcmp(p->name, XNSpotLocation)==0) {
  1656. X              if(im_preedit_flag) {
  1657. !                 p_point = (XPoint *)Xmalloc(sizeof(XPoint));
  1658. !                 xptr = (XPointer *)p->value;
  1659. !                 *xptr = (XPointer)p_point;
  1660. X                  p_point->x = preedit_data->SpotLocation.x;
  1661. X                  p_point->y = preedit_data->SpotLocation.y;
  1662. X              } else {
  1663. X                  if(ic->ximp_icpart->proto_mask & XIMP_PRE_SPOTL_MASK) {
  1664. !                     p_point = (XPoint *)Xmalloc(sizeof(XPoint));
  1665. !                     xptr = (XPointer *)p->value;
  1666. !                     *xptr = (XPointer)p_point;
  1667. X                      p_point->x = ic->core.preedit_attr.spot_location.x;
  1668. X                      p_point->y = ic->core.preedit_attr.spot_location.y;
  1669. X                  } else {
  1670. ***************
  1671. *** 391,396 ****
  1672. --- 400,406 ----
  1673. X      int         im_font_flag    = 0;
  1674. X      Ximp_StatusPropRec    *status_data;
  1675. X      XIMCallback     *p_callback;
  1676. +     XPointer    *xptr;
  1677. X  
  1678. X      if(((Ximp_XIM)ic->core.im)->ximp_impart->inputserver) {
  1679. X          for(mask = 0, p = vl; p->name != NULL; p++) {
  1680. ***************
  1681. *** 446,458 ****
  1682. X              }
  1683. X          } else if(strcmp(p->name, XNAreaNeeded)==0) {
  1684. X              if(im_status_flag) {
  1685. !                 p_rect =  (XRectangle *)(p->value) ;
  1686. X                  p_rect->x  = p_rect->y  = 0;
  1687. X                  p_rect->width   = status_data->AreaNeeded.width;
  1688. X                  p_rect->height  = status_data->AreaNeeded.height;
  1689. X              } else {
  1690. X                  if(ic->ximp_icpart->proto_mask & XIMP_STS_AREANEED_MASK) {
  1691. !                     p_rect =  (XRectangle *)(p->value) ;
  1692. X                      p_rect->x  = p_rect->y  = 0;
  1693. X                      p_rect->width   = ic->core.status_attr.area_needed.width;
  1694. X                      p_rect->height  = ic->core.status_attr.area_needed.height;
  1695. --- 456,472 ----
  1696. X              }
  1697. X          } else if(strcmp(p->name, XNAreaNeeded)==0) {
  1698. X              if(im_status_flag) {
  1699. !                 p_rect = (XRectangle *)Xmalloc(sizeof(XRectangle));
  1700. !                 xptr = (XPointer *)p->value;
  1701. !                 *xptr = (XPointer)p_rect;
  1702. X                  p_rect->x  = p_rect->y  = 0;
  1703. X                  p_rect->width   = status_data->AreaNeeded.width;
  1704. X                  p_rect->height  = status_data->AreaNeeded.height;
  1705. X              } else {
  1706. X                  if(ic->ximp_icpart->proto_mask & XIMP_STS_AREANEED_MASK) {
  1707. !                     p_rect = (XRectangle *)Xmalloc(sizeof(XRectangle));
  1708. !                     xptr = (XPointer *)p->value;
  1709. !                     *xptr = (XPointer)p_rect;
  1710. X                      p_rect->x  = p_rect->y  = 0;
  1711. X                      p_rect->width   = ic->core.status_attr.area_needed.width;
  1712. X                      p_rect->height  = ic->core.status_attr.area_needed.height;
  1713. *** /tmp/,RCSt1000399    Tue Mar 17 11:58:24 1992
  1714. --- mit/lib/X/Ximp/XimpRm.c    Tue Mar  3 11:04:09 1992
  1715. ***************
  1716. *** 1,4 ****
  1717. ! /* $XConsortium: XimpRm.c,v 1.2 91/10/07 17:50:27 rws Exp $ */
  1718. X  /******************************************************************
  1719. X  
  1720. X                Copyright 1991, by FUJITSU LIMITED
  1721. --- 1,4 ----
  1722. ! /* $XConsortium: XimpRm.c,v 1.3 92/03/03 11:03:30 rws Exp $ */
  1723. X  /******************************************************************
  1724. X  
  1725. X                Copyright 1991, by FUJITSU LIMITED
  1726. ***************
  1727. *** 124,130 ****
  1728. X      XColor         screen_def, exact_def;
  1729. X      int         num;
  1730. X  
  1731. !     im = (Ximp_XIM)XIMOfIC(ic);
  1732. X      if(im->core.rdb == NULL)
  1733. X          return;
  1734. X  
  1735. --- 124,130 ----
  1736. X      XColor         screen_def, exact_def;
  1737. X      int         num;
  1738. X  
  1739. !     im = (Ximp_XIM)XIMOfIC((XIC)ic);
  1740. X      if(im->core.rdb == NULL)
  1741. X          return;
  1742. X  
  1743. *** /tmp/,RCSt1029884    Tue Mar 17 11:38:34 1992
  1744. --- mit/lib/Xt/Shell.c    Fri Feb 21 12:42:37 1992
  1745. ***************
  1746. *** 1,4 ****
  1747. ! /* $XConsortium: Shell.c,v 1.120 91/12/06 16:16:40 converse Exp $ */
  1748. X  
  1749. X  /***********************************************************
  1750. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  1751. --- 1,4 ----
  1752. ! /* $XConsortium: Shell.c,v 1.124 92/02/21 12:34:32 converse Exp $ */
  1753. X  
  1754. X  /***********************************************************
  1755. X  Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  1756. ***************
  1757. *** 1104,1111 ****
  1758. X          || sizep->max_aspect.y != XtUnspecifiedShellInt) {
  1759. X          sizep->flags |= PAspect;
  1760. X      }
  1761. !     if(w->wm.base_width != XtUnspecifiedShellInt
  1762. !        || w->wm.base_height != XtUnspecifiedShellInt) {
  1763. SHAR_EOF
  1764. true || echo 'restore of fix-10 failed'
  1765. fi
  1766. echo 'End of  part 1'
  1767. echo 'File fix-10 is continued in part 2'
  1768. echo 2 > _shar_seq_.tmp
  1769. exit 0
  1770. -- 
  1771. ---
  1772. Senior Systems Scientist        mail: dcmartin@msi.com
  1773. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  1774. 796 North Pastoria Avenue        at&t: 408/522-9236
  1775.