home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / vmsnet / networks / tcpip / multinet / 2380 < prev    next >
Encoding:
Text File  |  1992-11-20  |  3.3 KB  |  87 lines

  1. X-Gateway-Source-Info: INTERNET
  2. Path: sparky!uunet!usc!news.service.uci.edu!unogate!mvb.saic.com!tgv.com!info-multinet
  3. Date: 20 NOV 92 21:03:53 GMT
  4. Newsgroups: vmsnet.networks.tcp-ip.multinet
  5. X-Return-path: <info-multinet-relay@TGV.COM>
  6. X-RFC822-From:    mcmahon @ TGV.COM (At the end of the long, dark tunnel)
  7. From: mcmahon@TGV.COM
  8. Subject: RE: DECwindows Motif 1.1 and creation of DECterms with RSHELL
  9. Organization: The INFO-MULTINET Community
  10. Message-ID: <36A00FB320NOV92210353@TGV.COM>
  11. Nntp-Posting-Host: Mvb.Saic.Com
  12. Lines: 73
  13.  
  14. > Under DECwindows Motif 1.0 there was a problem if windows were created from 
  15. > another node by doing an RSHELL, along the lines of:
  16. > $ set disp/create/tran=tcpip/node='p1'
  17. > $ create/terminal/detach
  18. >
  19. > If this was used several times, only the *first* window would be created.
  20.  
  21. Well, the original problem was that the SET DISPLAY/CREATE command would create 
  22. a new WS device (DECW$DISPLAY) for each invocation of the command procedure.  
  23. The problem was that only the first WS device would stick around to be used by 
  24. the created DECterm.  The reason the first hung around was that the DECterm 
  25. controller held a channel open to it.  What the REUSE-DISPLAY command procedure 
  26. did was find that original WS device and use that, instead of creating a new 
  27. one.
  28.  
  29. And then Motif 1.1 came along...
  30.  
  31. The DECterm Controller process no longer assigns a channel to the WS device.  
  32. The result is that every WS device created by the invocation of this command 
  33. procedure disappears.  So when you do a SHOW DISPLAY in your DECterm windows, it 
  34. comes back with DECW$DISPLAY being defined to a non-existant WS device.
  35.  
  36. I worked out a quick and dirty solution, which can be found below.  This 
  37. requires that the newly created DECterm assign a channel to the DECW$DISPLAY 
  38. device (e.g. OPEN $SAVE_THE_WS_DEVICE$ DECW$DISPLAY: in the LOGIN.COM file or 
  39. somesuch).  It's a crude hack, but it will work.
  40.  
  41. Cheers!
  42. John McMahon
  43.  
  44. $! P1 is the /NODE qualifier (default MULTINET_RSHELL_ADDRESS or 0)
  45. $ if p1 .eqs. "" then p1 = f$trnlnm("MULTINET_RSHELL_ADDRESS")
  46. $ if p1 .eqs. "" then p1 = "0"
  47. $! P2 is the /TRANSPORT qualifier (default TCPIP)
  48. $ if p2 .eqs. "" then p2 = "TCPIP"
  49. $! P3 is the /SERVER qualifier (default 0)
  50. $ if p3 .eqs. "" then p3 = "0"
  51. $! P4 is the /SCREEN qualifier (default 0)
  52. $ if p4 .eqs. "" then p4 = "0"
  53. $ write sys$output "Node=",p1," Transport=",p2," Server=",p3," Screen=",p4
  54. $ DeviceLoop:
  55. $    next = F$DEVICE("_WS*")
  56. $    if next .eqs. "" then goto endloop
  57. $    define/user sys$output nl:
  58. $    show display/symbol 'next'
  59. $    if ( (p1 .eqs. DECW$DISPLAY_NODE)      .and. -
  60.              (p2 .eqs. DECW$DISPLAY_TRANSPORT) .and. -
  61.              (p3 .eqs. DECW$DISPLAY_SERVER) .and. -
  62.              (p4 .eqs. DECW$DISPLAY_SCREEN) )
  63. $    Then
  64. $        Write Sys$Output "Using Device ''next'"
  65. $        Define Decw$Display 'Next'
  66. $        Goto The_Big_Exit
  67. $    EndIf
  68. $    goto deviceloop
  69. $ endloop:
  70. $ SET DISPLAY /CREATE /NODE='P1' /TRANSPORT='P2' /SERVER='P3' /SCREEN='P4'
  71. $ Write Sys$Output "Creating New Device ",F$TRNLNM("DECW$DISPLAY")
  72. $ The_Big_Exit:
  73. $ Create/Terminal/Detach
  74. $ Open $SAVE_THE_WS_DEVICE$ DECW$DISPLAY:
  75. $ BaseRefCnt = f$getdvi("DECW$DISPLAY","REFCNT")
  76. $ WaitLoop:
  77. $    RefCnt = f$getdvi("DECW$DISPLAY","REFCNT") 
  78. $    If RefCnt .Gt. BaseRefCnt Then Exit
  79. $    Write Sys$Output "Open a channel to DECW$DISPLAY in the new DECterm."
  80. $    Wait 00:00:15
  81. $    Goto WaitLoop
  82.  
  83.  
  84.  
  85. 
  86.