vms_lbr module

(LOGO.JPG) Python for OpenVMS

(go to: table of contents, index)

The 'vms_lbr' module provides access to some OpenVMS LBR$ routines. (well, at the time of writing this (10-FEB-1998) it provides only access to the OUTPUT_HELP routine...). Most routines DO NOT return a status code; they raise the exception 'vms_lbr.error' when something went wrong. Routines that behave differently have it mentioned within their description.


Alphabetical list of routines:

OUTPUT_HELP - Output Help Messages


@@ WARNING! This routine is not fully debugged !!

Format:

    status = vms_lbr.output_help (output_routine [,output_width]
                      [,line_desc] [,library_name] [,flags]
                      [,input_routine] )
Returns:
status
@@
Arguments:
output_routine
If you specify 'None', then the RTL routine LIB$PUT_OUTPUT will be used internally.
output_width
Width of the help-text line that is passed to the user-supplied output routine. Default is 80 characters per line.
line_desc
The help request line without the 'HELP' and any qualifiers. Default is the empty string.
library_name
Name of the help library. Default is an empty string which indicates the default help library (HELPLIB). If omitted, then device and directory (SYS$HELP) and file type (.HLB) are supplied.
flags
Currently (01-MAR-1998), symbolic values for the flags (HLP_M_name) are not available in VMSDEF. You must find out and supply the numerical values yourself, sorry. See the OpenVMS documentation for details.
input_routine
If you specify 'None' or ommit this argument, then the RTL routine LIB$GET_INPUT will be used internally.
Examples:
>>> import vms_lbr

>>> # define the output_routine
>>> def fnc_out(message_string):
...     print "FNC_OUT(",message_string,") called"
...     return 1
...
>>>

>>> # define the input_routine
>>> def fnc_inp(prompt_string):
...     print "FNC_INP(",prompt_string,") called"
...     r = (1,"SET")
...     return r
...
>>>

>>> # use all defaults
>>> vms_lbr.output_help (None)

  Information available:

  :=       =        @        ACCOUNTING ALLOCATE ANALYZE  APPEND
...
  WRITE

Topic? <RETURN>
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # supply a specific output_width
>>> vms_lbr.output_help (None,40)

  Information available:

  :=         =          @
  ACCOUNTING ALLOCATE   ANALYZE
...
  WAIT       WRITE

Topic? <RETURN>
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # ?? @@ need to check this
>>> vms_lbr.output_help (None,None,"DIRECTORY")

  Information available:

  :=       =        @        ACCOUNTING ALLOCATE ANALYZE  APPEND
...
  WRITE

Topic? <RETURN>
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # specify help item and help library
>>> vms_lbr.output_help (None,None,"DIRECTORY","HELPLIB")

DIRECTORY

     Provides a list of files or information about a file or group of
...
  /WIDTH     /WRAP
  Examples

DIRECTORY Subtopic? <RETURN>
Topic? <RETURN>
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # specify an additional key
>>> vms_lbr.output_help (None,None,"DIRECTORY/OUTPUT","HELPLIB")

DIRECTORY

  /OUTPUT

        /OUTPUT[=filespec]
        /NOOUTPUT

     Controls where the output of the command is sent. By default,
...
     the output file name will appear in the directory listing.



Topic?
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # specify an invalid key
>>> vms_lbr.output_help (None,None,"DIR_ECTORY","HELPLIB")
  Sorry, no documentation on DIR_ECTORY


  Additional information available:

  :=       =        @        ACCOUNTING ALLOCATE ANALYZE  APPEND
...
  TYPE     UCX      UCX$TRACE  UNLOCK    VIEW     WAIT     WRITE

Topic?
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # specify a different verb in a different help library
>>> vms_lbr.output_help (None,None,"SET","NCPHELP")

SET


  Use the SET command to create or modify parameters or components
...
  Additional information available:

  CIRCUIT   EXECUTOR   PROXIES   LINE     LOGGING  MODULE   NODE
  OBJECT

SET Subtopic?
Topic?
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


>>> # use a non-existing help library
>>> #   @@ a future version should have a condition handler to
>>> #      suppress this traceback
>>> status = vms_lbr.output_help (None,None,"SET","NCP_HELP")
%HELP-E-OPENIN, error opening SYS$COMMON:[SYSHLP]NCP_HELP.HLB; as input
-RMS-E-FNF, file not found
%TRACE-E-TRACEBACK, symbolic stack dump follows
...
PYTHON          main                         10      00000030  00018430
>>>
>>> print status
276172954
>>> import vms_sys
>>> vms_sys.getmsg (status)[0]
'%HELP-E-OPENIN, error opening !AS as input'
>>>


>>> # use an output routine (in Python!)
>>> print vms_lbr.output_help(fnc_out,40,"","HELPLIB")
FNC_OUT(  ) called
FNC_OUT(   Information available: ) called
FNC_OUT(  ) called
FNC_OUT(   :=         =          @ ) called
FNC_OUT(   ACCOUNTING ALLOCATE   ANALYZE ) called
...
FNC_OUT(   WAIT       WRITE ) called
FNC_OUT(  ) called
Topic?
1        <-- this is the status, returned from vms_lbr.output_help()
>>>


@@ old output, not updated after (minmal code changes) on 28-OCT-1998
>>> # use an output and an input routine (both in Python!)
>>> print vms_lbr.output_help(fnc_out,40,"","HELPLIB",None,fnc_inp)
FNC_OUT(  ) called
FNC_OUT(   Information available: ) called
FNC_OUT(  ) called
FNC_OUT(   :=         =          @ ) called
FNC_OUT(   ACCOUNTING ALLOCATE   ANALYZE ) called
...
FNC_OUT(   WAIT       WRITE ) called
FNC_OUT(  ) called
vms_lbr__input_routine:ar_prompt_string->dsc$a_ptr=2146335280
vms_lbr__input_routine:ar_resultant_string->dsc$w_length=512
vms_lbr__input_routine:ar_resultant_string->dsc$a_ptr=2146336892
FNC_INP(
Topic?  ) called
inp:str=SET=
vms_lbr__input_routine:ar_resultant_string=SET
vms_lbr__input_routine:l_status=-1
FNC_OUT(  ) called
FNC_OUT( SET ) called
FNC_OUT(   Sorry, no documentation on SET ?AII ) called
FNC_OUT(    )IOI ) ,II ) ) called<CONTROL-Y>
 *INTERRUPT*

$ STOP
@@ Obviously there is a bug, here ...
(go to: table of contents, index)

28-OCT-1998 ZE.