Simulating an ALL keyword for the /SELECT qualifier of ANALYZE/OBJECT and ANALYZE/IMAGE.

On request, ANALYZE/OBJECT and /IMAGE retrieve specific information from the object or image. The requested information is specified by the qualifier /SELECT and one or more keywords. The keywords and the related information are listed in HELP. There is not much useful information displayed for objects: For all but two keywords the related information for objects is not applicable and printed as "Unknown". There is more useful information displayed for images: for all keywords there can be related information in the image and for all but one keyword that information is usually present and can be displayed. For historical reasons the list of keywords grew and while that made the specification longer and more complex nobody ever cared to add a simple ALL keyword to display all of the available information. Today, to get all information for an image, one has to specify at least /SELECT=(F,A,IM,N,ID=(I,L),B,L,V). (The V keyword is only valid for images: for objects it is rejected with a %DCL-W-CONFLICT. Actually, analyze for objects doesn't care, this "conflict" is already in the CLD file, as one may guess from the DCL facility in the above warning.)

Even without access to the sources of analyze you can get close to implement something similar to an ALL keyword. Presumed you know what to do with a CLD file, all you need to change is the analyze.cld file, which ships with VMS and resides in sys$update. The downloadable patches show what needs to be changed for Alpha V8.3 and I64 V8.4. It is obvious what you have to do for other versions of/platforms for VMS. The .patch files can be applied with the (GNV/GNU/Unix) patch utility, the .upd files can be applied with the SUMSLP utility.

Once you understand how this is accomplished, you can taylor the default output of the ANALYZE utility to what you want/need. Feel free to add your name to the comment section of the CLD file. As a result of the patch you will get all the information with a simple /SELECT - no keyword at all.

Get the patches: analyze.zip.


Examples, without the patch:
$ anal/imag/select=(f,a,im,n,id=(i,l),b,l,v) decc$shr
SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
Image
OpenVMS Alpha
Shareable
"DECC$SHR_EV56"
"V8.3-01"
"A13-03"
"XBCA-0080070010"
 1-MAY-2007 07:04:56.15
$ 
$ anal/select=(f,a,im,n,id=(i,l),b,l) sys$share:delta
SYS$COMMON:[SYSLIB]DELTA.OBJ;1
Object
OpenVMS Alpha
Unknown
Unknown
Unknown
Unknown
Unknown
Unknown
$ 

Examples with the patch:
$ anal/imag/select decc$shr
SYS$COMMON:[SYSLIB]DECC$SHR_EV56.EXE;1
Image
OpenVMS Alpha
Shareable
"DECC$SHR_EV56"
"V8.3-01"
"A13-03"
"XBCA-0080070010"
 1-MAY-2007 07:04:56.15
$ 
$ anal/select sys$share:delta
SYS$COMMON:[SYSLIB]DELTA.OBJ;1
Object
OpenVMS Alpha
$