Commit 4d514b2e authored by Kevin Lyda's avatar Kevin Lyda 💬
Browse files

Not BULLETIN related.

parent fb7888d7
Loading
Loading
Loading
Loading

decus/vax87a/bullv4_0/bulletin.c

deleted100644 → 0
+0 −93
Original line number Diff line number Diff line
/*
 *	  -------------------------------------------------------
 *        Neither  York  University,   Department  of   Computer
 *        Science   nor   the  authors assume any responsibility
 *        for the use or reliability of this software.
 *
 *        Copyright (C) 1986, York University
 *                            Department of Computer Science
 *
 *        General permission to copy  or  modify,  but  not  for
 *        profit,  is  hereby granted, provided  that  the above
 *        copyright notice is included  and  reference  made  to
 *        the fact that reproduction  privileges  were   granted
 *        by the York University, Department of Computer Science.
 *	  -------------------------------------------------------
 *
 *	  Written by: Edward Fung and James P. Lewis
 *		      Department of Computer Science
 *		      York University
 *		      1984, 1985, 1986
 *
 */

/*
 * Facility:  Bulletin
 *
 * Environment:  User mode, non-privileged code.
 *
 * Modified by:
 *
 * 1-000 - EF   ??-???-1984
 * 2-000 - JPL  ??-???-1984
 * 3-000 - JPL  01-JAN-1986
 * 4-000 - JPL  10-JUL-1986
 *
 */

#module bulletin

#include        ssdef.h
#include        "bull.h"

main()
{
        char    helplib[QUAL_LEN],
		key[KEY_LEN];
        long    status,
		video_type;
	struct	bull_lst_struct	*bull_lst;

        get_term(&video_type, &status);	/* Video terminal? */

        if (get_val(HELP_QUAL, 0, 0) & SS$_NORMAL) {	/* /HELP */
                if (trn_lnm("LNM$SYSTEM_TABLE", 0, "USER_HELPLIB", 0, 
		    helplib, QUAL_LEN) == SS$_NORMAL) 
                        help(helplib, USER_HELPSTR);
                else    help(USER_HELPLIB, USER_HELPSTR); 
        }
        else {
		bull_lst = (struct bull_lst_struct *)
			   malloc(sizeof(struct bull_lst_struct));
		get_bull(bull_lst, TRUE);

                if (get_val(BRIEF_QUAL, 0, 0) & SS$_NORMAL)	/* /BRIEF */
                        brief_bull(bull_lst);
                else 
		if (get_val(NEW_QUAL, 0, 0) & SS$_NORMAL)	/* /NEW */
                        new_bull(bull_lst);
                else 
		if (get_val(READ_QUAL, 0, 0) & SS$_NORMAL) {	/* /READ */
                        get_val(READ_QUAL, key, KEY_LEN - 1);
			lowcase(key);

                        if (video_type && (status & SS$_NORMAL)) 
                                scr_brwsbull(bull_lst, key, ALL);
                        else    lin_brwsbull(bull_lst, key, ALL);
                }
                else 
		if (get_val(SRCH_QUAL, 0, 0) & SS$_NORMAL) {	/* /SEARCH */
                        get_val(SRCH_QUAL, key, KEY_LEN - 1);
			lowcase(key);

                        if (video_type && (status & SS$_NORMAL))
                                scr_brwsbull(bull_lst, key, LIB);
                        else    lin_brwsbull(bull_lst, key, LIB);
                }
                else {
                        if (video_type && (status & SS$_NORMAL))
                                scr_brwsbull(bull_lst, "", NEW);
                        else    lin_brwsbull(bull_lst, "", NEW);
                }
        }
}
+0 −107
Original line number Diff line number Diff line
!
!	 -------------------------------------------------------
!        Neither  York  University,   Department  of   Computer
!        Science   nor   the  authors assume any responsibility
!        for the use or reliability of this software.
!
!        Copyright (C) 1986, York University
!                            Department of Computer Science
!
!        General permission to copy  or  modify,  but  not  for
!        profit,  is  hereby granted, provided  that  the above
!        copyright notice is included  and  reference  made  to
!        the fact that reproduction  privileges  were   granted
!        by the York University, Department of Computer Science.
!	 -------------------------------------------------------
!
!	  Written by: Edward Fung and James P. Lewis
!		      Department of Computer Science
!		      York University
!		      1984, 1985, 1986
!
!

!
! Facility:  Bulletin
!
! Environment:  User mode, non-privileged code.
!
! Modified by:
!
! 1-000 - EF   ??-???-1984
! 2-000 - JPL  ??-???-1984
! 3-000 - JPL  01-JAN-1986
! 4-000 - JPL  10-JUL-1986
!
!

define	verb		bulletin
	image		BUL:bulletin.exe
	parameter	p1, 
			label=bulletin,
			value(list)
	qualifier	all, 
			label=all,
			nonnegatable
	qualifier	brief, 
			label=brief,
			nonnegatable,
			syntax=brief
	qualifier	default,
			label=default,
			nonnegatable,
			value(type=default_type)
	qualifier	help,
			label=help,
			nonnegatable,
			syntax=help
	qualifier	new, 
			label=new,
			nonnegatable,
			syntax=new
	qualifier	read, 
			label=read, 
			nonnegatable,
			syntax=read,
			value
	qualifier	reverse,
			label=reverse,
			nonnegatable
	qualifier	search, 
			label=search, 
			nonnegatable,
			syntax=search,
			value(required)
	disallow	any2(brief, new, read, search, help)
	disallow	all and (brief or new or help)
	disallow	reverse and (brief or help)
	disallow	default and (brief or new or help)
define	syntax		brief
	parameter	p1, 
			label=bulletin,
			value(list)
define	syntax		new
	parameter	p1, 
			label=bulletin,
			value(list)
define	syntax		read
	parameter	p1, 
			label=bulletin,
			value(list)
define	syntax		search
	parameter	p1, 
			label=bulletin,
			value(list)
define 	syntax		help,
	noparameters
define	type		default_type
	keyword		date,
			default,
			label=date,
			nonnegatable,
	keyword		poster,
			label=poster,
			nonnegatable,
	keyword		size,
			label=size,
			nonnegatable
+0 −128
Original line number Diff line number Diff line































































































































ULLETIN
+0 −332
Original line number Diff line number Diff line
1 BULLETIN



  The command $ BULLETIN invokes the bulletin utility.  This utility  is

  used to provide information to users of the system.



  Format:



          $ BULLETIN [/qualifiers] [bulletin_library_spec[,...]]

2 Acknowledgements



  This bulletin board system is designed by Dr.  Peter H.  Roosen-Runge.

  It was first implemented by Edward Fung.  Later releases were enhanced

  by James P.  Lewis.

2 Choosing_bulletin



                              Video Terminal



  If you use a video terminal, BULLETIN  displays  a  list  of  bulletin

  titles  for  you  to  choose from.  Arrow keys may be used to position

  cursor to the desired bulletin title.  The bulletin is  then  selected

  for  display  by  pressing  'X', or marked as "never-show" by pressing

  'N'.  (You would typically use 'N' to mark bulletins  which  you  know

  from  their titles are of no interest to you and which you do not wish

  to have called  to  your  attention  later  even  though  they  remain

  unread.)  The  <DELETE>  key  may  be  used  to cancel the marking.  A

  Carriage-Return or <SPACE>  terminates  the  selection  process.   The

  bulletins that are marked with 'X' will then be displayed.  A bulletin

  that is marked with 'N' will never be displayed unless it is requested

  explicitly with the /READ or /SEARCH qualifier.



  You can also press 'F' or 'P' to file or print a bulletin.  Note  that

  this  bulletin will not be displayed when you terminates the selection

  process unless you mark it with 'X'.   Furthermore,  it  records  this

  bulletin as "read".  To know more about a bulletin message such as who

  posts it, how long it is, etc., you just press 'M'.



  Note that before any bulletin message is displayed (at marking  phase)

  and  if  CTRL_Z  is pressed at this point, no matter how many bulletin

  messages you mark with 'X' or 'N', nothing is displayed and recorded.



                            Hardcopy Terminal



  If you use a hard copy terminal or the one whose type  is  unknown  to

  BULLETIN,  it  displays  a  list  of bulletin titles for you to choose

  from.  The bulletin is then selected for display by pressing  'X',  or

  marked  as "never-show" by pressing 'N'.  (You would typically use 'N'

  to mark bulletins which you know from their titles are of no  interest

  to  you  and  which  you  do not wish to have called to your attention

  later even though they remain unread.) A Carriage-Return  is  used  to

  skip  to the next bulletin title.  When you get down to the end of the

  list, or type 'Q', The bulletins that are marked with 'X' will then be

  displayed.  A bulletin that is marked with 'N' will never be displayed

  unless it is requested explicitly with the /READ or /SEARCH qualifier.



  You can also press 'F' or 'P' to file or print a bulletin.  Note  that

  a  bulletin  will  not  be displayed when you terminates the selection

  process unless you mark it with 'X'.   Furthermore,  it  records  this

  bulletin as "read".



  Note that before any bulletin message is displayed (at marking  phase)

  and  if  CTRL_Z  is pressed at this point, no matter how many bulletin

  messages you mark with 'X' or 'N', nothing is displayed and recorded.

2 Commands



  There are several commands available to the user during the display of

  bulletin text.  They are:



             <CR> - Display next screen

          <SPACE> - Display next screen (only used on video terminal)

              B/b - Display previous bulletin message

              F/f - File a current bulletin message

              N/n - Display next bulletin message

              P/p - Print a current bulletin message

              S/s - Skip to the next bulletin library

              U/u - Mark a bulletin message as UNREAD  

              1-9 - Display next n line(s)

           Ctrl-W - Refresh screen (only used on video terminal)

           Ctrl-Z - Exit

              PF2 - Display this text

                ? - Display this text

2 Display_bulletin



  A screen of bulletin text  is  displayed  initially.   A  <RETURN>  or

  <SPACE>  will  display  the next screen.  Pressing 1 to 9 will display

  the next n line(s).  There will be no bulletin selection if  there  is

  only one bulletin to display.

2 Filing_bulletin



  When a bulletin message is filed, it gives you the default  file  name

  "bulletin.txt"  and  allows  you  to  edit it if you are using a video

  terminal; otherwise, you have to enter a file name.



  If you run out of disk space, or the file name is invalid, nothing  is

  filed.

2 Parameters



  bulletin_library_spec



  Specifies the names of the bulletin libraries you want to access.   No

  wild  card  characters  are allowed in the bulletin_library_spec.  The

  default library file type is BLB.



  This parameter may be omitted if there is a list of  default  bulletin

  libraries  (i. e.,  if  the logical name DEF_BULLETIN is defined).  In

  this case, the  translation  of  DEF_BULLETIN  will  be  used  as  the

  bulletin  libraries.   The  parameter  may  also be used to override a

  default bulletin library.  If this parameter is missing on the command

  line,  and  there is no logical name DEF_BULLETIN defined, you will be

  prompted for the bulletin libraries.

2 Qualifiers



  If there is no qualifier specified, the BULLETIN command will  display

  in  inverse  order  of  date  all new (unread) bulletins.  This is the

  default action.

/ALL



  Inhibits the option of choosing bulletins.  This qualifier may be used

  by itself or in conjunction with the /READ and /SEARCH qualifier.  All

  bulletins in the bulletin  library  or  which  contain  the  /READ  or

  /SEARCH arguments are displayed.

/BRIEF



  Displays the total number of new bulletins in each bulletin library.

/NEW



  Displays all new bulletin titles in each bulletin library.

/READ

        /READ[=key]



  Displays in inverse order of date all bulletins with titles containing

  the  key  string.  If the key string is omitted, all bulletins will be

  displayed.  The key is 10 characters long.

/SEARCH

       /SEARCH=key



  Displays in inverse order of date all bulletins with the  key  string.

  The  entire texts as well as the titles are searched for the key.  The

  key is 79 characters long.

/REVERSE

        /REVERSE



  Reverse the default sequence of displaying  bulletin  messages.   This

  qualifier   applies   only   to   BULLETIN,   or   BULLETIN/READ,   or

  BULLETIN/SEARCH.

/DEFAULT

        /DEFAULT=value



  Value can be DATE, which is the default, displays the  date  on  which

  the bulletin message was posted.  POSTER displays the person who posts

  the bulletin message.  SIZE displays the size (number of lines) of the

  bulletin message.

2 Status_file



  A file named BULLETIN.DAT is created and updated in the  user's  login

  directory when the bulletin program is invoked.  This file keeps track

  of the status of all bulletins with respect to the user (i. e.,  read,

  unread,  etc).   If this file is deleted, the information will be lost

  and all bulletins are treated as new.



  The default  status  file  may  be  overridden  if  the  logical  name

  DEF_BULLDATA is defined.



  If you run out of disk quota, this file  can't  be  updated.   Do  not

  tamper  with this file.  If the format is distorted, a new one will be

  created when the bulletin  program  is  invoked.   As  a  result,  the

  information is lost and all bulletins are treated as new.
+0 −184
Original line number Diff line number Diff line
1 BULLETIN
.lm+2 .s1
The command $ BULLETIN invokes the bulletin utility. This utility is used to
provide information to users of the system. 
.s1 .lit
Format:

        $ BULLETIN [/qualifiers] [bulletin_library_spec[,...]]
.end lit
.lm-2 
2 Acknowledgements
.lm+2 .s1
This bulletin board system is designed by Dr. Peter H. Roosen-Runge. It
was first implemented by Edward Fung. Later releases were enhanced by James
P. Lewis.
.lm-2
2 Choosing__bulletin
.lm+2 .s1
.c;Video Terminal
.skip
If you use a video terminal, BULLETIN displays a list of bulletin titles for
you to choose from. Arrow keys may be used to position cursor to the desired
bulletin title. The bulletin is then selected for display by pressing 'X', or
marked as "never-show" by pressing 'N'. (You would typically use 'N' to mark
bulletins which you know from their titles are of no interest to you and which
you do not wish to have called to your attention later even though they remain
unread.) The <DELETE> key may be used to cancel the marking. A Carriage-Return
or <SPACE> terminates the selection process. The bulletins that are marked 
with 'X' will then be displayed. A bulletin that is marked with 'N' will 
never be displayed unless it is requested explicitly with the /READ or 
/SEARCH qualifier. 
.skip
You can also press 'F' or 'P' to file or print a bulletin. Note that this
bulletin will not be displayed when you terminates the selection process 
unless you mark it with 'X'. Furthermore, it records this bulletin as "read". 
To know more about a bulletin message such as who posts it, how long it 
is, etc., you just press 'M'.
.skip
Note that before any bulletin message is displayed (at marking phase) and if
CTRL__Z is pressed at this point, no matter how many bulletin messages you mark
with 'X' or 'N', nothing is displayed and recorded. 
.skip
.c;Hardcopy Terminal
.skip
If you use a hard copy terminal or the one whose type is unknown to BULLETIN,
it displays a list of bulletin titles for you to choose from. The bulletin is
then selected for display by pressing 'X', or marked as "never-show" by
pressing 'N'. (You would typically use 'N' to mark bulletins which you know
from their titles are of no interest to you and which you do not wish to have
called to your attention later even though they remain unread.) A
Carriage-Return is used to skip to the next bulletin title. When you get down
to the end of the list, or type 'Q', The bulletins that are marked with 'X'
will then be displayed. A bulletin that is marked with 'N' will never be
displayed unless it is requested explicitly with the /READ or /SEARCH
qualifier. 
.skip
You can also press 'F' or 'P' to file or print a bulletin. Note that a bulletin
will not be displayed when you terminates the selection process unless you
mark it with 'X'. Furthermore, it records this bulletin as "read". 
.skip
Note that before any bulletin message is displayed (at marking phase) and if
CTRL__Z is pressed at this point, no matter how many bulletin messages you mark
with 'X' or 'N', nothing is displayed and recorded. 
.lm-2
2 Commands
.lm+2 .s1
There are several commands available to the user during the display of
bulletin text. They are:
.s1 .lit
           <CR> - Display next screen
        <SPACE> - Display next screen (only used on video terminal)
            B/b - Display previous bulletin message
            F/f - File a current bulletin message
            N/n - Display next bulletin message
            P/p - Print a current bulletin message
            S/s - Skip to the next bulletin library
            U/u - Mark a bulletin message as UNREAD  
            1-9 - Display next n line(s)
         Ctrl-W - Refresh screen (only used on video terminal)
         Ctrl-Z - Exit
            PF2 - Display this text
              ? - Display this text
.end lit
.lm-2
2 Display__bulletin
.lm+2 .s1
A screen of bulletin text is displayed initially. A <RETURN> or <SPACE>
will display the next screen. Pressing 1 to 9 will display the next n line(s).
There will be no bulletin selection if there is only one bulletin to 
display.
.lm-2
2 Filing__bulletin
.lm+2 .s1
When a bulletin message is filed, it gives you the default file name 
"bulletin.txt" and allows you to edit it if you are using a video terminal;
otherwise, you have to enter a file name.
.s1
If you run out of disk space, or the file name is invalid, nothing is filed.
.lm-2
2 Parameters
.lm+2 .s1
bulletin__library__spec
.s1 
Specifies the names of the bulletin libraries you want to access. No wild card
characters are allowed in the bulletin__library__spec. The default 
library file type is BLB.
.s1
This parameter may be omitted if there is a list of default bulletin
libraries (i.#e., if the logical name DEF__BULLETIN is defined). In this case,
the translation of DEF__BULLETIN will be used as the bulletin
libraries. The parameter may also be used to override a default bulletin 
library.
If this parameter is missing on the command line, and there is no logical name 
DEF__BULLETIN defined, you will be prompted for the bulletin libraries.
.lm-2
2 Qualifiers
.lm+2 .s1
If there is no qualifier specified, the BULLETIN command will display in
inverse order of date all new (unread) bulletins. This is the default action. 
.lm-2
/ALL
.lm+2 .s1
Inhibits the option of choosing bulletins. This qualifier may be used by itself
or in conjunction with the /READ and /SEARCH qualifier.  All bulletins in the
bulletin library or which contain the /READ or /SEARCH arguments are displayed.
.lm-2
/BRIEF
.lm+2 .s1
Displays the total number of new bulletins in each bulletin library.
.lm-2 
/NEW
.lm+2 .s1
Displays all new bulletin titles in each bulletin library.
.lm-2 
/READ
.lit
        /READ[=key]
.end lit
.lm+2 .s1
Displays in inverse order of date all bulletins with titles containing the key
string. If the key string is omitted, all bulletins will be displayed. The key 
is 10 characters long.
.lm-2 
/SEARCH
.lit
       /SEARCH=key
.end lit
.lm+2 .s1
Displays in inverse order of date all bulletins with the key string. The entire
texts as well as the titles are searched for the key. The key is 79 characters 
long.
.lm-2
/REVERSE
.lit
        /REVERSE
.end lit
.lm+2 .s1
Reverse the default sequence of displaying bulletin messages. This qualifier 
applies only to BULLETIN, or BULLETIN/READ, or BULLETIN/SEARCH.
.lm-2
/DEFAULT
.lit
        /DEFAULT=value
.end lit
.lm+2 .s1
Value can be DATE, which is the default, displays the date on which the
bulletin message was posted. POSTER displays the person who posts the bulletin
message. SIZE displays the size (number of lines) of the bulletin message.
.lm-2
2 Status__file
.lm+2 .s1
A file named BULLETIN.DAT is created and updated in the user's login directory
when the bulletin program is invoked.
This file keeps track of the status of all bulletins with respect to the user
(i.#e., read, unread, etc).  If this file is deleted, the information will be
lost and all bulletins are treated as new. 
.s1
The default status file may be overridden if the logical name 
DEF__BULLDATA is defined.
.s1
If you run out of disk quota, this file can't be updated. Do not tamper
with this file. If the format is distorted, a new one will be created when
the bulletin program is invoked. As a result, the information is lost and
all bulletins are treated as new.