From: SMTP%"lionel@quark.enet.dec.com" 8-SEP-1994 09:08:46.90 To: EVERHART CC: Subj: Re: XAB and FAB help required From: lionel@quark.enet.dec.com (Steve Lionel) X-Newsgroups: comp.os.vms Subject: Re: XAB and FAB help required Date: 7 Sep 1994 23:08:48 GMT Organization: Digital Equipment Corporation - Nashua, NH Lines: 61 Distribution: world Message-Id: <34lh60$325@jac.zko.dec.com> Reply-To: lionel@quark.enet.dec.com Nntp-Posting-Host: quark.zko.dec.com To: Info-VAX@Mvb.Saic.Com X-Gateway-Source-Info: USENET In article <34k32o$sg0@unicorn.ccc.nottingham.ac.uk>, cczjtw@unicorn.nott.ac.uk (John Whitehorn) writes: >Today I needed to modify a program that had been working, untouched, since 1991, >and guess what, when I complied it, it failed on some of the original coding. Its >VAX fortran. I don't remember how I wrote the code in the first place, I think >the brain cells involved have long since been overwritten. The code is a function >called from LIB$DELETE_FILE as the confirm_routine to set the protection on a >file (s:werd,o:werd,g:werd,w:werd), its used to remove a users filestore when the >username is removed. > > > include '($fabdef)' > include '($xabdef)' > include '($xabprodef1)' > record / fabdef / fab > record / xabprodef1 / xabpro > . > . > fab.fab$b_fac=fab$m_upd > fab.fab$l_xab=%loc(xabpro) > xabpro.xabprodef$$_fill_1=xab$c_pro > xabpro.xabprodef$$_fill_2=xab$c_prolen > >well guess what DEC no longer have fields called xabprodef$$_fill_1 and 2. does >anyone have any idea what I need to change them to? Here's what I recommend. include '($xabdef)' include '($xabprodef)' structure /my_xabprodef/ union map record /xabdef/ header end map map record /xabprodef/ body end map end union end structure record /my_xabprodef/ xabpro xabpro.header.xab$b_cod = xab$c_pro xabpro.body.[whatever] = something The $$ fields were never documented and were subject to change at the whim of the SDL back-end. Unforunately, RMS defines the XABs in two pieces - this is fine for "flat structure" languages such as MACRO and BLISS but causes havoc for everyone else. Pascal and Ada have hand-edited definitions (not sure about C) - I prefer to avoid these so as to not get caught when VMS changes something. The technique above may look a bit clunky but it will work and won't break in the future. Steve Lionel Mail: lionel@quark.enet.dec.com DEC Fortran Development WWW: http://www.digital.com/info/slionel.html Digital Equipment Corporation 110 Spit Brook Road, ZKO2-3/N30 Nashua, NH 03062-2698 "Free advice is worth every cent" For a summary of Digital's Internet services, send mail to info@digital.com