From: dongray@cdclu1.genrad.com (Derek Dongray)
Newsgroups: comp.os.vms
Subject: Re: Librarian bug?
Date: 22 Jul 92 09:47:36 GMT
Distribution: world
Organization: The Internet

Jerry writes:
> 	In response to an earlier question, Arne Vajhxj writes:
> 	> Librarian bug or undocumented feature!?
> 	>
> 	> $ LIBRARY/INSERT text_library  help_library
> 	> $ LIBRARY/EXTRACT=help_library/OUTPUT=help_library.hlb  text_library
> 	> $
> 	> $ LIBRARY/LIST help_library.hlb
> 	> %LIBRAR-F-OPENIN, error opening RC$:[STANE]HELP_LIBRARY.HLB;1 as input
> 	> -LBR-E-ILLFMT, illegal library format
>
> 	I would not call it either a bug or a undocumented feature.
>
> This is absolutely true.
>
> 								    Modules
> 	extracted from text-libraries end up as variable line-length files,
> 	while libraries themselves are fixed line-length files.
>
> This is true but irrelevant.
>
> 	If you convert your extracted help_library.hlb to fixed line-length
> 	(with CONVERT/FDL), then it can be used again.
>
> This is absolutely false.

No it's quite true. It's just that Jerry assumes that the input wasn't a help
library but the text form of a help library.

> A text library is a collection of arbitrary sequential files with an appro-
> priate internal organization that is used by the Librarian.  If we go
> through the steps above, we get:
>
> 	! Input:  help_library is a sequential text file, of whatever
> 	!		organization (most likely variable length records
> 	!		with carriage return carriage control, because
> 	!		that's what most editors create).

This is the false assumption.

> 	$ LIBRARY/INSERT text_library  help_library
> 	! text_library is a text library:  A sequential file with fixed-length
> 	!		512-byte records containing various information needed
> 	!		by the Librarian, and the text of help_library (per-
> 	!		haps in a compressed format, and perhaps other files
> 	!		as well).  Think of this as similar to a BACKUP save-
> 	!		set.
> 	$ LIBRARY/EXTRACT=help_library/OUTPUT=help_library.hlb  text_library
> 	! The Librarian reconstructs help_library.hlb as it originally was.
> 	!		The .HLB file type is accepted because VMS always
> 	!		(well, almost always!) lets you use any file type you
> 	!		like, but this is NOT a text library - it's the text
> 	!		file you started with.  Think of this as restoring the
> 	!		file from the BACKUP saveset.

Wrong. It's not the file I started with. I started with a help library with
fixed length 512 byte records. I now have a file with variable length records
all of which happen to be 512 bytes long!

> 	$ LIBRARY/LIST help_library.hlb
> 	%LIBRAR-F-OPENIN, error opening RC$:[STANE]HELP_LIBRARY.HLB;1 as input
> 	-LBR-E-ILLFMT, illegal library format
> 	! Exactly what you would have gotten had you instead tried to do a
> 	!		LIBRARY/LIST on the original text input file.

Wrong. It wasn't a text file to start with!

> 							-- Jerry

Here's what happened when I tried what I think the original author intended.

$ libr/list sys$help:ess$ladcp.hlb
Directory of HELP library SYS$COMMON:[SYSHLP]ESS$LADCP.HLB;1 on 22-JUL-1992 10:45:12
Creation date:  12-OCT-1991 03:40:57      Creator:  VAX-11 Librarian V04-00
Revision date:  12-OCT-1991 03:40:58      Library format:   3.0
Number of modules:      5                 Max. key length:  15
Other entries:          0                 Preallocated index blocks:      1
Recoverable deleted blocks:      0        Total index blocks used:        1
Max. Number history records:      20      Library history records:        0

BIND
EXIT
HELP
SHOW
UNBIND
$ libr/create/insert/text trial.tlb sys$help:ess$ladcp.hlb
$ libr/list trial.tlb
Directory of TEXT library U$C:[DONGRAY.TIME]TRIAL.TLB;1 on 22-JUL-1992 10:45:40
Creation date:  22-JUL-1992 10:45:34      Creator:  VAX-11 Librarian V04-00
Revision date:  22-JUL-1992 10:45:34      Library format:   3.0
Number of modules:      1                 Max. key length:  39
Other entries:          0                 Preallocated index blocks:     11
Recoverable deleted blocks:      0        Total index blocks used:        1
Max. Number history records:      20      Library history records:        0

ESS$LADCP
$ libr/extr=ess$ladcp/out=extract.hlb trial.tlb
$ libr/list extract.hlb
%LIBRAR-F-OPENIN, error opening U$C:[DONGRAY.TIME]EXTRACT.HLB;1 as input
-LBR-E-ILLFMT, illegal library format
$ type fixhlb.fdl
FILE
	ORGANIZATION            sequential
RECORD
	CARRIAGE_CONTROL        none
	FORMAT                  fixed
	SIZE                    512
$ convert/fdl=fixhlb.fdl extract.hlb fixed.hlb
$ libr/list fixed.hlb
Directory of HELP library U$C:[DONGRAY.TIME]FIXED.HLB;1 on 22-JUL-1992 10:46:58
Creation date:  12-OCT-1991 03:40:57      Creator:  VAX-11 Librarian V04-00
Revision date:  12-OCT-1991 03:40:58      Library format:   3.0
Number of modules:      5                 Max. key length:  15
Other entries:          0                 Preallocated index blocks:      1
Recoverable deleted blocks:      0        Total index blocks used:        1
Max. Number history records:      20      Library history records:        0

BIND
EXIT
HELP
SHOW
UNBIND

As Arne says:
> 	If you convert your extracted help_library.hlb to fixed line-length
> 	(with CONVERT/FDL), then it can be used again.

--------------------------------------------------------------------------------
Name : Derek Dongray, Systems Manager, GenRad Ltd.
Phone : 061 486 1511 ext 166
PSS : 234261600119::Dongray                 UKnet : Derek.Dongray@GenRad.co.uk
InterNet : Dongray@cdclu1.GenRad.com        CompuServe : 70374,2745
Address : Monmouth House, Monmouth Road, Cheadle Hulme, Cheshire, SK8 7AY, UK.