From:	SKYVAX::SKYVAX::WINS%"<SLOANE@kuhub.cc.ukans.edu>" 29-JAN-1990 10:13:59.96
To:	JEH
CC:	
Subj:	NEWSCMD.CLD from V5.8

Return-Path: <SLOANE@kuhub.cc.ukans.edu>
Received: from chico by skyvax with SMTP ; Mon, 29 Jan 90 10:14:03 PST
Received: by chico (5.57/1.27)
	id AA06122; Mon, 29 Jan 90 10:12:23 PST
Message-Id: <9001291812.AA06122@chico>
Date: Mon, 29 Jan 90 10:33 CST
From: Bob Sloane <SLOANE@kuhub.cc.ukans.edu>
Subject: NEWSCMD.CLD from V5.8
To: jeh@chico
X-Vms-To: IN%"jeh@simpact.com"

Here it is.  Let me know if you need anything else.
-- 
USmail: Bob Sloane, University of Kansas Computer Center, Lawrence, KS, 66045
E-mail: sloane@kuhub.cc.ukans.edu, sloane@ukanvax.bitnet, AT&T: (913)864-0444 

MODULE NEWSCMD

!++
!   FACILITY:
!
!       NEWSCMD
!
!   ABSTRACT
!
!       Command definition for NEWS
!
!   AUTHOR:
!
!       Geoff Huston
!
!   COPYRIGHT:
!
!       Copyright ) 1988,1989
!
!   MODIFICATION HISTORY:
!
!       V5.5     7-Oct-1988     GIH
!           Add SET DISPLAY, MODIFY KILL
!
!       V5.6    11-Nov-1988     GIH
!           Additional commands added
!       V5.7    29-Nov-1988     GIH
!         - Add SET [NO]MANAGER command
!         - Add SCAN, ALLSCAN and UNSEEN as DCL command qualifiers to NEWS
!         - Add CLASS qualifier to DIRECTORY
!       V5.8     8-Feb-1989     GIH
!         - ATTACH/PARENT qualifier
!         - SET PROFILE/NEWREGISTER qualifier
!         - ADD FILE/NEWSGROUP qualifier
!         - SKIM/[no]FILECHECK qualifier
!         - SKIM/[no]VERBOSE qualifier
!         - ADD MAIL command
!         - CREATE and SET NEWSGROUP/TITLE
!         - SET NEWSGROUP/NOTICE
!         - Add protocol option SRITCP for SRI Multinet TCP (Mats Sundvall)
!       V5.9     3-May-1989     GIH
!         - Add verbs TOP and BOTTOM
!--

!
!   type definitions
!
define type ADD_OPTIONS
    keyword     BATCH,      syntax=ADD_BATCH
    keyword     ENTRY,      syntax=ADD_ENTRY
    keyword     FILE        syntax=ADD_BATCH
    keyword     KEYWORD,    syntax=ADD_KEYWORD
    keyword     MARKER      syntax=ADD_MARKER
    keyword     MAIL        syntax=ADD_MAIL
    keyword     MEMBER      syntax=ADD_MEMBER

define type BACK_OPTIONS
    keyword     NOTE,       syntax=BACK_NOTE
    keyword     REPLY,      syntax=BACK_REPLY,default
    keyword     TOPIC,      syntax=BACK_TOPIC

define type CLEAR_OPTIONS
    keyword     MARKER      syntax=CLEAR_MARK
    keyword     KILL        syntax=CLEAR_KILL

define type CREATE_OPTIONS
    keyword     CONFERENCE, syntax=CREATE_NEWSGROUP
    keyword     KEYWORD,    syntax=CREATE_KEYWORD
    keyword     NEWSGROUPS  syntax=CREATE_NEWSGROUP
    keyword     GROUPS      syntax=CREATE_NEWSGROUP

define type DELETE_OPTIONS
    keyword     ENTRY       syntax=DELETE_ENTRY
    keyword     KEYWORD     syntax=DELETE_KEYWORD
    keyword     GROUPS      syntax=DELETE_GROUP
    keyword     ITEMS       syntax=DELETE_ITEM
    keyword     NEWSGROUPS  syntax=DELETE_GROUP
    keyword     NEWSITEMS   syntax=DELETE_ITEM
    keyword     NOTE        syntax=DELETE_ITEM
    keyword     MARKER      syntax=DELETE_MARKER
    keyword     MEMBER      syntax=DELETE_MEMBER

define type DIR_TYPE
    keyword     UNSEEN      default
    keyword     DIRECTORY

define type PRINT_DIRTYPE
    keyword     NEWSGROUPS
    keyword     GROUPS
    keyword     NEWSITEMS
    keyword     ITEMS
    keyword     NOTES

define type EXECUTE_OPTIONS
    keyword     DELETE
    keyword     LOCAL              
    keyword     RETAIN

define type MODIFY_OPTIONS
    keyword     KILL        syntax=MOD_KILL
    keyword     ENTRY       syntax=MOD_ENTRY
    keyword     KEYWORD     syntax=MOD_KEYWORD
    keyword     MEMBER      syntax=MOD_MEMBER

define type NEXT_OPTIONS
    keyword     NOTE,       syntax=NEXT_NOTE
    keyword     REPLY,      syntax=NEXT_REPLY,default
    keyword     TOPIC,      syntax=NEXT_TOPIC
    keyword     UNSEEN,     syntax=NEXT_UNSEEN

define type PRINT_BFT
    keyword     ALL         default
    keyword     ONE

define type PRIVS
    keyword     MODERATE
    keyword     NOMODERATE
    keyword     CREATE_KEYWORDS
    keyword     WRITE
    keyword     NOWRITE

define type RESTRCT
    keyword     MEMBERS
    keyword     KEYWORDS

define type SET_OPTIONS
    keyword     BROADCAST_TRAPPING      syntax=SET_BROAD
    keyword     NOBROADCAST_TRAPPING    syntax=SET_NOBROAD
    keyword     HISTORY     syntax=SET_HISTORY
    keyword     NOHISTORY   syntax=SET_NOHISTORY
    keyword     LINE_EDITING    syntax=SET_LINE
    keyword     NOLINE_EDITING  syntax=SET_NOLINE
    keyword     MANAGER     syntax=SET_MANAGER
    keyword     NOMANAGER   syntax=SET_NOMANAGER
    keyword     NEWSGROUP   syntax=SET_NEWSGROUP
    keyword     ITEM        syntax=SET_ITEM
    keyword     DISPLAY     syntax=SET_DISPLAY
    keyword     SEEN        syntax=SET_SEEN
    keyword     ACCESS      syntax=SET_ACCESS
    keyword     CLASS       syntax=SET_CLASS
    keyword     CONFERENCE, syntax=SET_CONF
    keyword     MODERATOR,  syntax=SET_MODERATOR
    keyword     NOMODERATOR, syntax=SET_NOMODERATOR
    keyword     NOTE,       syntax=SET_NOTE
    keyword     PROFILE,    syntax=SET_PROFILE

define type SHOW_OPTIONS
    keyword     NEWSGROUP   syntax=SHOW_NEWSGROUP
    keyword     ITEM        syntax=SHOW_ITEM
    keyword     MARKER      syntax=SHOW_MARKS
    keyword     KILL        syntax=SHOW_KILL
    keyword     CLASSES     syntax=SHOW_CLASSES
    keyword     CONFERENCES     syntax=SHOW_ENTRY
    keyword     ENTRY       syntax=SHOW_ENTRY
    keyword     KEYWORDS    syntax=SHOW_KEYWORDS
    keyword     MEMBER      syntax=SHOW_MEMBER
    keyword     MODERATOR   syntax=SHOW_MODERATOR
    keyword     NOTE        syntax=SHOW_NOTE
    keyword     PROFILE     syntax=SHOW_PROFILE
    keyword     VERSION     syntax=SHOW_VERSION

define type SWITCH
    keyword     ON
    keyword     OFF

define type PROTOCOL_OPTIONS
    keyword     DECNET
    keyword     TCP
    keyword     CMUTCP
    keyword     WINTCP
    keyword     SRITCP

define type TYPE_OPTIONS
    keyword     NEWS
    keyword     MAIL
    keyword     NOTES

!
!   syntax definitions
!
define syntax ADD_BATCH
    routine do_add_net
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=FILE,value(required,impcat,list,type=$infile)
    qualifier   MODERATOR
    qualifier   CREGRP      placement=positional
    qualifier   DELETE      placement=positional
    qualifier   RETRY       placement=positional
    qualifier   EXECUTE     placement=positional,value(default="RETAIN",type=EXECUTE_OPTIONS)
    qualifier   DEFNEWSGROUP placement=positional,value
    qualifier   NETFEED     placement=positional,negatable,default
    qualifier   JUNK        placement=positional,negatable
    qualifier   ACCEPT      placement=positional,negatable
    qualifier   NEWSGROUP   placement=positional,value

define syntax ADD_ENTRY
    routine do_add_entry
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=ENTRY
    qualifier   CLASSES,    value(required,list)
    qualifier   FILE,       value(required)
    qualifier   NAME,       value(required)
    qualifier   TYPE,       value(default="NEWS",type=TYPE_OPTIONS)
    qualifier   PROTOCOL,   value(default="DECNET",type=PROTOCOL_OPTIONS)

define syntax ADD_KEYWORD
    routine do_error
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=KEYWORDNAME, value(required)
    parameter   P3          label=NOTEID

define syntax ADD_MARKER
    routine do_mark
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=TAG, prompt="Mark", value(required)
    parameter   P3,         label=NOTEID

define syntax ADD_MAIL
    routine do_add_mail
    parameter   P1          label=OPTIONS, value(required)
    qualifier   MODERATOR
    qualifier   CREGRP
    qualifier   RETRY
    qualifier   EXECUTE     value(default="RETAIN",type=EXECUTE_OPTIONS)
    qualifier   DEFNEWSGROUP value
    qualifier   NETFEED     negatable,default
    qualifier   JUNK        negatable
    qualifier   ACCEPT      negatable
    qualifier   NEWSGROUP   value
    qualifier   USERNAME    value
    qualifier   MAILFILE    value(required,type=$infile)
    qualifier   FOLDER      value(required)
    qualifier   DELETE
    qualifier   NEWFOLDER   value(required)
    disallow    (USERNAME and MAILFILE) or (DELETE and NEWFOLDER)

define syntax ADD_MEMBER
    routine do_add_member
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=USERNAME, value(required)
    qualifier   MAIL        value(required)
    qualifier   NODES       value(required,list)
    qualifier   PRIVILEGES, value(required,list,type=PRIVS)

define syntax BACK_NOTE
    routine do_back_note
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax BACK_REPLY
    routine do_back_reply
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax BACK_TOPIC
    routine do_back_note
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax CLEAR_MARK
    routine     do_markclear
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=TAG

define syntax CLEAR_KILL
    routine     do_killclear
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=TAG

define syntax CREATE_KEYWORD
    routine do_error
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=KEYWORDNAME,value(required)

define syntax CREATE_NEWSGROUP
    routine do_cregrp
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=NEWSGROUPS,value(list)
    qualifier   CACHE       negatable,value
    qualifier   HOLD        value(default= "0")
    qualifier   INQUIRE
    qualifier   ITEMHOLD    value(default="0")
    qualifier   LOCAL
    qualifier   MODERATOR   value
    qualifier   PROTOCOL    value(default="DECNET",type=PROTOCOL_OPTIONS)
    qualifier   RESTRICT,   negatable,value(type=RESTRCT,default="MEMBERS",list)
    qualifier   SERVER      value
    qualifier   SINCE,      nonnegatable,value(default="YESTERDAY",type=$datetime)
    qualifier   TITLE       value
    qualifier   UPDATE      negatable,default
    qualifier   WRITE       negatable
    qualifier   FILEHOLD    value(default="2")
    qualifier   KEEPREQUEST negatable,default

define syntax DEFINE_KEY
    routine do_define
    parameter   P1,         prompt="Key name", value(required)
    parameter   P2,         prompt="Equivalence name", value(required)
    qualifier   ECHO
    qualifier   TERMINATE
    qualifier   LOCK_STATE
    qualifier   IF_STATE,   value(required,list)
    qualifier   SET_STATE,  value(required)
    qualifier   PROTECT
    disallow    ((not LOCK_STATE and TERMINATE and SET_STATE) or (LOCK_STATE and not SET_STATE))

define syntax DELETE_ENTRY
    routine do_delete_entry
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=ENTRY
    qualifier   CLASS,      value(required)

define syntax DELETE_KEYWORD
    routine do_error
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=KEYWORDNAME
    parameter   P3,         label=NOTEID
    qualifier   ALL

define syntax DELETE_GROUP
    routine do_dgroup
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=GROUP, value(list)
    qualifier   CONFIRM     negatable

define syntax DELETE_ITEM
    routine do_ditem
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=ITEM, value(list)
    qualifier   IDENTIFIER, value
    qualifier   CONFIRM     negatable
    disallow    (ITEM and IDENTIFIER)

define syntax DELETE_MARKER
    routine do_unmark
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=TAG, prompt="DELETE Mark", value(required)

define syntax DELETE_MEMBER
    routine do_delete_member
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=USERNAME, prompt="DELETE Username", value(required)

define syntax DIR_CONFERENCES
    routine do_error
    parameter   P1,         label=NODENAME

define syntax DIR_ENTRIES
    routine do_error
    parameter   P1,         label=ENTRYNAME
    qualifier   CLASS       value(required)

define syntax DIR_NOTEBOOK
    routine do_error
    parameter   P1,         label=ENTRYNAME
    qualifier   CLASS,      value(required)

define syntax MOD_KILL
    routine     do_killmod
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=TAG

define syntax MOD_ENTRY
    routine do_modify_entry
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=ENTRYNAME, value(required)
    qualifier   CLASSES,    value(required,list)
    qualifier   FILE,       value(required)
    qualifier   NAME,       value(required)

define syntax MOD_KEYWORD
    routine do_error
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=KEYWORD, value(required)
    qualifier   NAME,       value(required)

define syntax MOD_MEMBER
    routine do_modify_member
    parameter   P1,         label=OPTIONS, value(required)
    parameter   P2,         label=USERNAME, value(required)
    qualifier   MAIL        value(required)
    qualifier   NODES       value(required,list)
    qualifier   PRIVILEGES, value(required,list,type=PRIVS)
    qualifier   NAME        value(required)

define syntax NEXT_NOTE
    routine do_next_note
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax NEXT_REPLY
    routine do_next_reply
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax NEXT_TOPIC
    routine do_next_note
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax NEXT_UNSEEN
    routine do_next_unseen
    parameter   P1,         label=OPTIONS
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define syntax SET_BROAD
    routine     set_broad
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=BOOL,value(type=SWITCH)

define syntax SET_NOBROAD
    routine     set_nobroad
    parameter   P1          label=OPTIONS, value(required)

define syntax SET_HISTORY
    routine     set_history
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=BOOL,value(type=SWITCH)

define syntax SET_NOHISTORY
    routine     set_nohistory
    parameter   P1          label=OPTIONS, value(required)

define syntax SET_LINE
    routine     set_line
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=BOOL,value(type=SWITCH)

define syntax SET_NOLINE
    routine     set_noline
    parameter   P1          label=OPTIONS, value(required)

define syntax SET_CLASS
    routine     do_set_class
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=CLASSNAME

define syntax SET_CONF
    routine     do_error
    parameter   P1          label=OPTIONS, value(required)
    qualifier   TITLE,      nonnegatable, value(required)
    qualifier   NOTICE,     nonnegatable, value(required)
    qualifier   RESTRICT,   negatable, value(type=RESTRCT)
    qualifier   WRITE,      negatable

define syntax SET_ITEM
    routine     do_set_item
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=NEWSITEM
    qualifier   HOLD        value(default="0")

define syntax SET_MANAGER
    routine     do_set_manager
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=BOOL,value(type=SWITCH)

define syntax SET_NOMANAGER
    routine     do_set_nomanager
    parameter   P1          label=OPTIONS, value(required)

define syntax SET_MODERATOR
    routine     do_set_mod
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=BOOL,value(type=SWITCH)

define syntax SET_NOMODERATOR
    routine     do_set_nomod
    parameter   P1          label=OPTIONS, value(required)

define syntax SET_NEWSGROUP
    routine     do_set_newsgroup
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=GROUP
    qualifier   CACHE       negatable,value
    qualifier   HOLD        value(default="0")
    qualifier   ITEMHOLD    value(default="0")
    qualifier   LOCAL
    qualifier   MODERATOR   negatable,value
    qualifier   NOTICE      negatable,value
    qualifier   PROTOCOL    value(default="DECNET",type=PROTOCOL_OPTIONS)
    qualifier   RESTRICT    negatable, value(type=RESTRCT)
    qualifier   SERVER      value
    qualifier   TITLE       value
    qualifier   UPDATE      negatable,default
    qualifier   WRITE       negatable
    qualifier   FILEHOLD    value(default="2")
    qualifier   KEEPREQUEST negatable,default

define syntax SET_DISPLAY
    routine     do_set_display
    parameter   P1          label=OPTIONS, value(required)
    qualifier   SCANSIZE    value(type=$number,required)

define syntax SET_NOTE
    routine     do_error
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=NOTEID
    qualifier   CONFERENCE, nonnegatable, value(required)
    qualifier   HIDDEN,     negatable
    qualifier   TITLE,      nonnegatable, value(required)
    qualifier   WRITE,      negatable

define syntax SET_PROFILE
    routine     do_set_profile
    parameter   P1          label=OPTIONS, value(required)
    qualifier   AUTOMATIC   negatable,value(type=DIR_TYPE,default="UNSEEN")
    qualifier   CLASS,      negatable,value(default="MAIN")
    qualifier   EDITOR,     negatable,value(required,list)
    qualifier   PERSONAL_NAME,  negatable,value(required)
    qualifier   PRINT       negatable,value
    qualifier   DIRECTORY   negatable,value
    qualifier   TEMPORARY   negatable
    qualifier   NEWREGISTER    negatable,value

define syntax SET_SEEN
    routine do_skip
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=NEWG
    qualifier   NEWSGROUP   nonnegatable,default
    qualifier   POINTER     nonnegatable
    qualifier   FOLLOWUP    nonnegatable
    qualifier   BEFORE      value (default="TODAY",type=$datetime)
    disallow any2(NEWSGROUP,NEWG,POINTER,FOLLOWUP)

define syntax SET_ACCESS
    routine     do_setaccess
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=NEWSGROUP

define syntax SHOW_CLASSES
    routine     do_show_classes
    parameter   P1          label=OPTIONS, value(required)

define syntax SHOW_ITEM
    routine     do_show_item
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=NEWSITEM

define syntax SHOW_NOTE
    routine     do_show_note
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=NOTEID

define syntax SHOW_KEYWORDS
    routine     do_error
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2,         label=KEYWORDNAME
    qualifier   ALL,        nonnegatable
    qualifier   FULL,       nonnegatable

define syntax SHOW_ENTRY
    routine     do_show_entry
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=GROUP

define syntax SHOW_NEWSGROUP
    routine     do_show_newsgroup
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=GROUP

define syntax SHOW_MARKS
    routine     do_markshow
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=TAG
    qualifier   ALL
    disallow    (TAG and ALL)

define syntax SHOW_MEMBER
    routine     do_show_member
    parameter   P1          label=OPTIONS, value(required)
    parameter   P2          label=USERNAME
    qualifier   ALL,        nonnegatable
    qualifier   MODERATOR,  nonnegatable

define syntax SHOW_MODERATOR
    routine     do_show_moderator
    parameter   P1          label=OPTIONS, value(required)

define syntax SHOW_PROFILE
    routine     do_show_profile
    parameter   P1          label=OPTIONS, value(required)

define syntax SHOW_VERSION
    routine     do_version
    parameter   P1          label=OPTIONS, value(required)

define syntax SHOW_KILL
    routine do_killshow
    parameter   P1          label=OPTIONS, value(required)

!
!   verb definition for news qualifiers and single line commands
!
define verb INVOKENEWS
    qualifier   SCREEN      default
    qualifier   ALLSCAN
    qualifier   SCAN
    qualifier   UNSEEN
    qualifier   CLASS       value
    parameter   P1          label=COMMAND,value(type=$rest_of_line)

!
!   verb definition for news command language
!
define verb ADD
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS ADD>", value(required,type=ADD_OPTIONS)

define verb ANSWER
    routine do_followup
    parameter   P1,         label=INFILE,value(type=$infile)
    qualifier   EDIT,       negatable,default
    qualifier   EXTRACT,    negatable,default
    qualifier   HEADERS,    negatable
    qualifier   SELF,       negatable

define verb ATTACH
    routine do_attach
    parameter   P1,         label=PROCESSNAME
    qualifier   PARENT      nonnegatable
    disallow    (PARENT and PROCESSNAME)

define verb BACK
    routine do_back_note
    parameter   P1,         label=OPTIONS, value(type=BACK_OPTIONS)
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define verb BOTTOM
    routine do_bottom

define verb CANCEL
    routine do_cancel

define verb CLEAR
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS CLEAR>", value(required,type=CLEAR_OPTIONS)

define verb CLOSE
    routine screen_grp_display

define verb CREATE
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS CREATE>", value(required,type=CREATE_OPTIONS)

define verb DEFINE
    routine do_error
    qualifier   KEY,        syntax=DEFINE_KEY

define verb DELETE
    routine do_dcontext
    parameter   P1          label=OPTIONS, value(type=DELETE_OPTIONS)
    qualifier   CONFIRM     negatable

define verb DEREGISTER
    routine do_deregister
    parameter   P1,         label=NEWSGROUP
    qualifier   ALL,        nonnegatable
    disallow (NEWSGROUP and ALL)

define verb DIRECTORY
    routine do_dircall
    qualifier   ALL,        nonnegatable
    qualifier   ITEMS,      nonnegatable
    qualifier   NEW,        nonnegatable
    qualifier   NEWSGROUPS, nonnegatable
    qualifier   REGISTER,   nonnegatable
    qualifier   RESET,      nonnegatable
    qualifier   SINCE,      nonnegatable,value (default="TODAY",type=$datetime)
    qualifier   CLASS,      value(required)
    qualifier   AUTHOR,     value(required)
    qualifier   BEFORE      nonnegatable,value (type=$datetime)
    qualifier   BUFFER      value(required)
    qualifier   KEYWORD     value(required)
    qualifier   OUTPUT      value(required,type=$outfile)
    qualifier   TITLE       value(required)
    qualifier   UNSEEN
    qualifier   CONFERENCES, nonnegatable,syntax=DIR_CONFERENCES
    qualifier   ENTRIES,    nonnegatable,syntax=DIR_ENTRIES
    qualifier   NOTEBOOK,   nonnegatable,syntax=DIR_NOTEBOOK
    disallow    any2 (ALL,ITEMS,NEW,NEWSGROUPS,REGISTER,SINCE)

define verb DISPLAY
    routine do_display_file
    parameter   P1          label=FILE,value(type=$infile)

define verb DOWN
    routine screen_cur_down
    parameter   P1          label=LINES,value(type=$number)

define verb EDIT
    routine do_edit
    parameter   P1,         label=FILE,value(type=$infile,required),prompt="File",

define verb EXIT
    routine do_exit

define verb EXTRACT
    routine do_extract
    parameter   P1,         label=FILE,value(type=$outfile)
    parameter   P2,         label=NOTERANGE, value(list)
    qualifier   ALL,        nonnegatable
    qualifier   AUTHOR,     value(required)
    qualifier   APPEND,     nonnegatable
    qualifier   BEFORE      value(required,type=$datetime)
    qualifier   DIRECTORY   value(type=PRINT_DIRTYPE)
    qualifier   HEADER,     negatable,default
    qualifier   KEYWORD,    value(required)
    qualifier   SEEN,       nonnegatable
    qualifier   SINCE,      value(default="TODAY",type=$datetime)
    qualifier   TITLE,      value(required)
    qualifier   UNSEEN,     nonnegatable
    qualifier   FROM,       value(required)
    qualifier   SUBJECT,    value(required)
    qualifier   UNREAD,     nonnegatable
    qualifier   MARKER,     value(list)
    qualifier   NEWSGROUPS  value(required,list)
    disallow    (NOTERANGE and MARKER) or (AUTHOR and FROM) or (NOTERANGE and NEWSGROUPS)
                or (TITLE and SUBJECT) or (UNSEEN and UNREAD)

define verb FOLLOWUP
    routine do_followup
    parameter   P1,         label=INFILE,value(type=$infile)
    qualifier   EDIT,       negatable,default
    qualifier   EXTRACT,    negatable,default
    qualifier   HEADERS,    negatable
    qualifier   SELF,       negatable

define verb FORWARD
    routine do_forward
    qualifier   HEADERS,    negatable
    qualifier   SUBJECT,    value(required)
    qualifier   SELF,       nonnegatable
    qualifier   TO,         value(impcat,required,list)
    qualifier   EDIT,       negatable,default
    qualifier   MEMBERS

define verb HELP
    routine do_help
    parameter   P1,         label=TOPIC,value(type=$rest_of_line)

define verb KILL
    routine do_kill
    qualifier   SUBJECT     nonnegatable
    qualifier   FROM        nonnegatable
    qualifier   HEADER      value(required)

define verb MAIL
    routine do_forward
    qualifier   HEADERS,    negatable
    qualifier   SUBJECT,    value(required)
    qualifier   SELF,       nonnegatable
    qualifier   TO,         value(impcat,required,list)
    qualifier   EDIT,       negatable,default

define verb MARK
    routine do_mark
    parameter   P1,         label=TAG
    parameter   P2,         label=NOTEID

define verb MODIFY
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS MODIFY>", value(required,type=MODIFY_OPTIONS)

define verb NEXT
    routine do_next_note
    parameter   P1,         label=OPTIONS, value(type=NEXT_OPTIONS)
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define verb NEWSGROUPS
    routine screen_grp_display

define verb NOSCREEN
    routine noscreen

define verb OPEN
    routine do_selgrp
    parameter   P1,         label=NEWSGROUP
    qualifier   NEW,        nonnegatable
    qualifier   MARKER      value,nonnegatable
    qualifier   CLASS,      value(required)
    qualifier   AUTOMATIC   negatable
    qualifier   NOTEBOOK    negatable
    disallow any2(NEWSGROUP,MARKER,NEW)

define verb POST
    routine do_post
    parameter   P1,         label=INFILE,value(type=$infile)
    qualifier   EDIT,       negatable,default
    qualifier   CONTROL,    negatable
    qualifier   HEADERS,    negatable
    qualifier   NEWSGROUPS, nonnegatable, value(required,list)
    qualifier   SUBJECT,    nonnegatable, value(required)
    qualifier   SELF,       negatable

define verb PRINT
    routine  do_print
    parameter   P1,         label=NOTERANGE, value(list)
    qualifier   ALL,        nonnegatable
    qualifier   AUTHOR,     value(required)
    qualifier   BEFORE      value(required,type=$datetime)
    qualifier   DIRECTORY   value(type=PRINT_DIRTYPE)
    qualifier   KEYWORD,    value(required)
    qualifier   SEEN,       nonnegatable
    qualifier   SINCE,      value(default="TODAY",type=$datetime)
    qualifier   TITLE,      value(required)
    qualifier   UNSEEN,     nonnegatable
    qualifier   FROM,       value(required)
    qualifier   SUBJECT,    value(required)
    qualifier   UNREAD,     nonnegatable
    qualifier   MARKER,     value(list)
    qualifier   CONFIRM
    qualifier   NAME        value(required)
    qualifier   NOTE        value(required)
    qualifier   NOTIFY,     negatable
    qualifier   PRIORITY    value(required)
    qualifier   AFTER       value(required,type=$datetime)
    qualifier   CHARACTERISTICS    value(required,list)
    qualifier   FORM        value(required)
    qualifier   HOLD
    qualifier   JOB_COUNT   value(required)
    qualifier   LOWERCASE
    qualifier   OPERATOR    value(required)
    qualifier   PARAMETERS  value(required,list)
    qualifier   QUEUE       value (required)
    qualifier   RESTART
    qualifier   BURST       value(type=PRINT_BFT)
    qualifier   COPIES      value(required)
    qualifier   FEED
    qualifier   FLAG        value(type=PRINT_BFT)
    qualifier   HEADER
    qualifier   PASSALL
    qualifier   SETUP       value(required,list)
    qualifier   SPACE
    qualifier   TRAILER     value(type=PRINT_BFT)
    qualifier   WAIT        negatable,default
    qualifier   NEWSGROUPS  value(required,list)
    disallow    (NOTERANGE and MARKER) or (AUTHOR and FROM)
                or (UNSEEN and UNREAD) or (NOTERANGE and NEWSGROUPS)

define verb QUIT
    routine do_quit

define verb READ
    routine do_read
    parameter   P1,         label=NEWSITEM
    qualifier   HEADER,     nonnegatable
    qualifier   NEW,        nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable
    qualifier   NEXT,       nonnegatable
    qualifier   BACK,       nonnegatable
    qualifier   LAST,       nonnegatable
    qualifier   PARENT,     nonnegatable
    qualifier   TOPIC       nonnegatable
    qualifier   PREV,       nonnegatable
    qualifier   IDENTIFIER, value,nonnegatable
    qualifier   MARKER,     value,nonnegatable
    qualifier   FOLLOWUP,   value,nonnegatable
    disallow    any2(PREV,BACK,NEXT,LAST,PARENT,TOPIC,IDENTIFIER,MARKER,FOLLOWUP)

define verb REFRESH
    routine do_refresh

define verb REGISTER
    routine do_register
    parameter   P1,         label=NEWSGROUP
    qualifier   ALL,        nonnegatable
    qualifier   NEW,        nonnegatable
    qualifier   LOCAL,      nonnegatable
    qualifier   NETGROUPS,  nonnegatable
    qualifier   SINCE,      nonnegatable,value (default="TODAY",type=$datetime)
    qualifier   BEFORE,     nonnegatable,value (default="TODAY",type=$datetime)
    qualifier   PRIORITY,   value
    qualifier   CONFIRM
    qualifier   RECORD
    disallow any2(ALL,NEW,NEWSGROUP,SINCE,BEFORE,LOCAL,NETGROUPS)

define verb REPLY
    routine do_reply
    qualifier   HEADERS,    negatable
    qualifier   SUBJECT,    value(required)
    qualifier   SELF,       nonnegatable

define verb SAVE
    routine do_extract
    parameter   P1,         label=FILE,value(type=$outfile)
    parameter   P2,         label=NOTERANGE, value(list)
    qualifier   ALL,        nonnegatable
    qualifier   AUTHOR,     value(required)
    qualifier   APPEND,     nonnegatable
    qualifier   BEFORE      value(required,type=$datetime)
    qualifier   HEADER,     negatable,default
    qualifier   KEYWORD,    value(required)
    qualifier   SEEN,       nonnegatable
    qualifier   SINCE,      value(default="TODAY",type=$datetime)
    qualifier   TITLE,      value(required)
    qualifier   UNSEEN,     nonnegatable
    qualifier   FROM,       value(required)
    qualifier   SUBJECT,    value(required)
    qualifier   UNREAD,     nonnegatable
    qualifier   MARKER,     value(list)
    disallow    (NOTERANGE and MARKER) or (AUTHOR and FROM)
                or (UNSEEN and UNREAD)

define verb SCREEN
    routine init_screen

define verb SEARCH
    routine     do_search
    parameter   P1,         label=target
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDIT,        nonnegatable
    qualifier   DISPLAY,    negatable
    qualifier   NEWSGROUPS, nonnegatable, value(required,list)
    qualifier   NOTES       value(default="*")

define verb SELECT
    routine do_selgrp
    parameter   P1,         label=NEWSGROUP
    qualifier   NEW,        nonnegatable
    qualifier   MARKER      value,nonnegatable
    disallow any2(NEWSGROUP,MARKER,NEW)

define verb SEND
    routine do_send
    parameter   P1,         label=INFILE,value(type=$infile)
    qualifier   AUTHOR      nonnegatable
    qualifier   EXTRACT
    qualifier   HEADERS,    negatable
    qualifier   SUBJECT,    value(required)
    qualifier   SELF,       nonnegatable
    qualifier   QUOTE,      value
    qualifier   TO,         value(impcat,required,list)
    qualifier   EDIT,       negatable,default
    qualifier   MEMBERS

define verb SET
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS SET>", value(required,type=SET_OPTIONS)

define verb SHOW
    routine do_error
    parameter   P1          label=OPTIONS, prompt="_NEWS SHOW>", value(required,type=SHOW_OPTIONS)

define verb SKIM
    routine do_skim
    parameter   P1,         label=GROUPS,value(list)
    qualifier   ITEMS       negatable
    qualifier   DIRECTORIES negatable
    qualifier   FILES       negatable
    qualifier   NEWSGROUPS  negatable
    qualifier   SERVED      negatable
    qualifier   FILECHECK   negatable
    qualifier   VERBOSE     negatable
    qualifier   ARCHIVE     value(type=$outfile)
    qualifier   HISTORY     value(default="45")

define verb SKIP
    routine do_skip
    parameter   P1,         label=NEWG
    qualifier   NEWSGROUP   nonnegatable
    qualifier   POINTER     nonnegatable
    qualifier   ALL         nonnegatable
    qualifier   FOLLOWUP    nonnegatable
    qualifier   BEFORE      value (default="TODAY",type=$datetime)
    disallow any2(NEWSGROUP,ALL,NEWG,POINTER,FOLLOWUP)

define verb SPAWN
    routine     do_spawn
    parameter   P1          label=COMMAND,value(type=$rest_of_line)

define verb TOP
    routine do_top

define verb TOPIC
    routine do_topic
    qualifier   HEADER,     nonnegatable
    qualifier   TPU,        nonnegatable
    qualifier   EDITOR,     nonnegatable
    qualifier   ROT13,      nonnegatable

define verb UNMARK
    routine do_unmark
    parameter   P1,         label=TAG

define verb UNREAD
    routine do_unread
    qualifier   ALL         nonnegatable

define verb UP
    routine     screen_cur_up
    parameter   P1          label=LINES,value(type=$number)

define verb UPDATE
    routine do_update
    parameter   P1          label=ENTRYNAME
    qualifier   CLASS,      nonnegatable, value(required)

define verb VERSION
    routine     do_version

define verb WRITE
    routine do_post
    parameter   P1,         label=INFILE,value(type=$infile)
    qualifier   EDIT,       negatable,default
    qualifier   CONTROL,    negatable
    qualifier   HEADERS,    negatable
    qualifier   NEWSGROUPS, nonnegatable, value(required,list)
    qualifier   SUBJECT,    nonnegatable, value(required)
    qualifier   SELF,       negatable
    qualifier   LAST        nonnegatable
