d$! DO NEWS {number} $! Shows the current news, or the news from any news item. ,$! $! If a number is not entered, then the users last news file $! is examined to determine what news is available, otherwise, the X$! news from the item specified is shown. $! $! -end.of.info- $ $ PURFLG = 0 L$ USER := 'F$DIRECTORY() $ LEN = 'F$LENGTH(USER)-2 $ USER := 'F$EXTRACT(1,LEN,USER) x$ LEN = 'F$LOCATE(".",USER) $ USER := 'F$EXTRACT(0,LEN,USER) @$ LAS = 19 !!! LAST NEWS ITEM $ IF( P1.EQS."" ) THEN GOTO NOTREQ $ LAS = 'P1'-1 l$ GOTO NOLAS $ 4$NOTREQ: $ $ OPEN/READ/ERR=NOLAS LASFILE DRA0:[SCI.NEWS]'USER'.LAS ` $ PURFLG = 1 $ READ LASFILE LAS ( $ CLOSE LASFILE $ LOC = 'F$LOCATE("::", LAS ) $ LAS = 'F$EXTRACT( 0,LOC,LAS ) T $ $NOLAS:  $ OPEN/READ/ERR=NONEW NEWFILE DRA0:[SCI.NEWS]NEWS. $ READ/ERR=FINNEW NEWFILE LINE $ LOC = 'F$LOCATE("::",LINE ) H $ NUM = 'F$EXTRACT( 0,LOC,LINE ) $ IF( NUM.LE.LAS ) THEN GOTO FINNEW $ t$ OPEN/WRITE LASFILE DRA0:[SCI.NEWS]'USER'.LAS $ WRITE LASFILE LINE <$ CLOSE LASFILE $ IF( PURFLG.EQ.1 ) THEN PURGE DRA0:[SCI.NEWS]'USER'.LAS $ WRITE SYS$OUTPUT " DRA0:[SCI.NEWS]NEWS." h$ $ONELINE: 0$ WRITE SYS$OUTPUT LINE $ READ/ERR=FINNEW NEWFILE LINE $ LOC = 'F$LOCATE("::",LINE ) \$ IF( LOC.EQ.'F$LENGTH(LINE) ) THEN GOTO ONELINE $ NUM = 'F$EXTRACT( 0,LOC,LINE ) $$ IF( NUM.GT.LAS ) THEN GOTO ONELINE $ $FINNEW: P$ CLOSE NEWFILE $ $NONEW: