!  Module FOOMSGDEF.GNM	Version V1.1-0
!
!  Copyright 2003, 2005 Hewlett-Packard Development Company, L.P.
!
!++
!  Confidential computer software.  Valid license  from  HP  and/or its
!  subsidiaries required for possession, use, or copying.
!
!  Consistent with FAR 12.211 and 12.212, Commercial Computer Software,
!  Computer Software Documentation,  and  Technical Data for Commercial
!  Items  are  licensed to the U.S. Government under vendor's  standard
!  commercial license.
!
!  Neither HP nor any of its subsidiaries shall be liable for technical
!  or editorial errors or omissions contained herein.   The information
!  in  this document is provided  "as is"  without warranty of any kind
!  and is subject  to  change  without  notice.   The warranties for HP
!  products are set forth in the express  limited  warranty  statements
!  accompanying such products.   Nothing herein should be construed  as
!  constituting an additional warranty.
!--
!
!  MODULE FUNCTION
!    This GNM module serves as an example of using a single (GNM) file
!    to generate application error messages, message definitions, and
!    SDML-format documentation.
!
! WRITTEN BY
!    Stephen Hoffman		23-Apr-2003
!    This GNM example includes new documentation as well as code 
!    derived from works by Bert Beander and myself.  This version
!    includes documentation associated with the GNM V2.0 re-write.
!
! MODIFIED BY
!    Stephen Hoffman		03-Jun-2005
!    Updated copyright.  Provide an example of the GNM V2.4 capability
!    of omitting the .explanation and .user_action specifications when
!    the output is within .destination message processing.
!
!  Usage:
!    Because this file is used to generate MSG files for the OpenVMS
!    MESSAGE compiler, the ordering of the messages in this file is
!    critical to application compatibility.  
!    o Add messages only at the end of BASE blocks. 
!    o Do NOT remove nor re-order any messages.
!    o Do NOT re-alphabetize messages here, as this will alter the binary
!      values expected by applications.  
!    o If you DO reorder or REMOVE messages, all application code using 
!      message values derived from this module WILL have to be recompiled.
!    o Consider replacing unneeded messages with SPARE_n -- where n is a
!      unique number -- to maintain the order of other messages.
!
!  GNM will sort the messages for inclusion into the SDML documentation
!  automatically.
!
!  The GNM file can be thought of as a series of directives:
!
!   .NAME	    - The message symbol, without the prefix
!   .MESSAGE	    - The message text.  This text can wrap.
!   .EXPLANATION    - The description that appears in the document.
!                     this text can wrap.  (Optional within the
!                     confines of .DESTINATION MESSAGE processing.)
!   .USER_ACTION    - The recovery section that appears in the document.
!                     this text can wrap.  (Optional within the
!                     confines of .DESTINATION MESSAGE processing.)
!   .BREAK	    - May be used to start a new paragraph in the
!		      .explanation or .user_action
!   .DESTINATION    - Which file the following output will appear in.
!                     parameters are both and message.  Used to suppress
!                     the generation of documentation involving messages
!                     considered to be application-internal messages.
!   .SEVERITY       - informational, success, warning, error, or fatal
!   .COMPONENT      - A string written to the SDML file with each message.
!                     Usually the name of the tool.
!   .FACILITY       - Provides the MESSAGE compiler .FACILITY directive.
!                     Use of the $ character in the prefix and the use of
!                     /SYSTEM are reserved to utilities with registered
!                     facility prefixes.  See the MESSAGE compiler manual
!                     for further details on this command.
!   .END            - The Demarcation.
!
!
!   The first 4 directives: .name, .message, .explanation, .user_action,
!   occur as a group in that order for each message.  (.explanation and
!   .user_action are optional.)  The FAO arguments within the .message
!   are contained within <>.  Within the <> there are 2 arguments, the
!   first is a word or term which will be emphasized in that position in
!   the document output, the second is the FAO argument which will appear
!   in the message file output in that position.  
!
!   The .destination directive must appear between message groups and is
!   in effect until another .destination directive occurs.  Thus, when
!   one message is to goto the message file only a .destination message
!   will precede the message group and a .destination both will follow
!   the group.  
!
!   Developers are strongly encouraged to include explanations and user 
!   actions.  The writer (if there is one, of course) will hopefully 
!   resolve any lurking grammar or spelling errors before the product 
!   is released.  
!
!   Use special characters within this file with great care.  In particular,
!   please follow these rules for characters:
!
!     Use alphanumerics only whenever possible.  Beware special characters.
!
!     Do not mismatch brackets within messages.
!
!     Use spaces for the indentation of the message text and explanations.
!     The utilities that process the .GNM file and the resulting generated
!     files can react inappropriately to tab characters and the generated
!     output text can potentially have erronous formatting.
!
!     To insert an angle bracket (<>) into the MSG output MESSAGE file, you
!     must use the equivalent brace ({}) character.
!
!
!  Typical Command Sequence:
!
!     !
!     GNM :== $ddcu:[dir]GNM
!     !
!     GNM input.GNM output.MSG output.SDML
!     !
!     ! now process the MSG file normally...
!     !
!     MESSAGE output.MSG...
!     MESSAGE/SDL output.MSG...
!     SDL output.SDL....
!     !
!     ! now process the SDML file normally...
!     !
!     DOCUMENT output.SDML...
!     !
!

.component      FOO, The FOO Utility
.facility	FOO, 1 /SYSTEM /PREFIX=FOO$_
!
! Success messages go here.  DO NOT REORDER.
!
.severity success
.destination message

.name	    AAA000_MSG
.message	aaa000 message, written to msg only
.explanation	This is the first line of the aaa000 message explanation
	        This is the second line of the aaa000 message explanation
.user_action	This is the first line of the aaa000 recovery text
                This is the second line of the aaa000 recovery text
                This is the third line of the aaa000 recovery text

.name	    FFF111_MSG
.message	fff111 message, written to msg only
.explanation	This is the first line of the fff111 message explanation
	        This is the second line of the fff111 message explanation
	        This is the third line of the fff111 message explanation
.user_action	This is the first line of the fff111 recovery text
                This is the second line of the fff111 recovery text

!
! The following structure is permitted only with .destination message
!
.name       GNM024A
.message	GNM V2.4 example, omitting .explanation and .user_action

.destination both

.name       GNM024B
.message	This message contains <string,!4AZ> directive<plural,!%S> within
.explanation	This message contains $FAO directives
.user_action	You need call $putmsg or $fao or $faol to process messages
                with embedded $fao directives.

.name       GNM024C
.message	This message contains <count,!UL> directive<plural,!%S> within
.explanation	This message contains $FAO directives
.user_action	You need call $putmsg or $fao or $faol to process messages
                with embedded $fao directives.

.name       CCC222
.message	ccc222 message, written to both
.explanation	This is the first line of the ccc222 message explanation
	        This is the second line of the ccc222 message explanation
	        This is the third line of the ccc222 message explanation
	        This is the fouth line of the ccc222 message explanation
	        This is the fifth line of the ccc222 message explanation
.user_action	This is the first line of the ccc222 recovery text


!
!
! Informational messages go here.  DO NOT REORDER.
!
.base 500
.severity informational
.destination both

.name	    BBB333
.message	bbb333 message, written to both
.explanation	This is the first line of the bbb333 message explanation
.user_action	This is the first line of the bbb333 recovery text

.name	    ZZZ444
.message	zzz444 message, written to both
.explanation	This is the first line of the zzz444 message explanation
		This is the second line of the zzz444 message explanation
.user_action	This is the first line of the zzz444 recovery text
		This is the second line of the zzz444 recovery text


!
! Warning messages go here.  DO NOT REORDER.
! 
.base 1000
.destination both

.name	    LLL555
.message	lll555 message, written to both
.explanation	This is the first line of the lll555 message explanation
		This is the second line of the lll555 message explanation
.user_action	This is the first line of the lll555 recovery text
		This is the second line of the lll555 recovery text
		This is the third line of the lll555 recovery text



!
! Error messages go here.  DO NOT REORDER.
!
.base 1500
.severity error
.destination both


.name	    KKK666
.message	kkk666 message, written to both
.explanation	This is the first line of the kkk666 message explanation
.user_action	This is the first line of the kkk666 recovery text
		This is the second line of the kkk666 recovery text


.destination message
.name	    NNN777_MSG
.message	nnn777 message, written to msg only
.explanation	This is the first line of the nnn777 message explanation
		This is the second line of the nnn777 message explanation
.user_action	This is the first line of the nnn777 recovery text

.destination both


!
! Fatal messages go here.  DO NOT REORDER. 
!
.base 2000
.severity fatal
.destination both

.name	    GGG888
.message	ggg888 message, written to both
.explanation	This is the first line of the ggg888 message explanation
		This is the second line of the ggg888 message explanation
.user_action	This is the first line of the ggg888 recovery text
		This is the second line of the ggg888 recovery text
		This is the third line of the ggg888 recovery text
		This is the fourth line of the ggg888 recovery text
		This is the fifth line of the ggg888 recovery text
		This is the sixth line of the ggg888 recovery text


!
! Warning messages go here.  DO NOT REORDER.
!
.base 2500
.severity warning
.destination both

.name	    RRR999
.message	rrr999 message, written to both
.explanation	This is the first line of the rrr999 message explanation
		This is the second line of the rrr999 message explanation
.user_action	This is the first line of the rrr999 recovery text
		This is the second line of the rrr999 recovery text

.end
