home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-08-29 | 47.9 KB | 1,638 lines |
- Newsgroups: comp.sources.misc
- subject: v14i068: Mp v2.4.5 - the mail/news pretty printer (Part 2 of 2).
- from: rburridge@Sun.COM (Rich Burridge)
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 14, Issue 68
- Submitted-by: rburridge@Sun.COM (Rich Burridge)
- Archive-name: mp-2.4.5/part02
-
- ------CUT HERE------mp.shar.part2------CUT HERE------
- #! /bin/sh
- # this is a shell archive, meaning:
- # 1. Remove everything above the #! /bin/sh line
- # 2. Save the resulting text in a file.
- # 3. Execute the file with /bin/sh to create the files:
- # Makefile.dist
- # mailp
- # mp.1
- # mp.el
- # Data (directory)
- # mp.pro.ps
- # mp.pro.alt.ps
- # mp.pro.filofax.ps
- # mp.pro.timeman.ps
- # This archive created: Wed Aug 29 12:25:57 EST 1990
- #
- #
- export PATH; PATH=/bin:$PATH
- #
- if [ -f Makefile.dist ]
- then
- echo shar: will not over-write existing file Makefile.dist
- else
- echo shar: extracting 'Makefile.dist', 2759 characters
- cat > Makefile.dist <<'Funky_Stuff'
- #
- # Makefile for mp, the PostScript pretty printer.
- #
- # @(#)Makefile.dist 1.1 90/08/29
- #
- # Copyright (c) Steve Holden and Rich Burridge.
- # All rights reserved.
- #
- # Permission is given to distribute these sources, as long as the
- # copyright messages are not removed, and no monies are exchanged.
- #
- # No responsibility is taken for any errors inherent either
- # to the comments or the code of this program, but if reported
- # to me then an attempt will be made to fix them.
- #
- #=====================================================================
- #
- # It is possible to change the location of the mp prologue file
- # with the -p command line option. It can also be defined at compile
- # time, by uncommenting the macro definition below and setting
- # appropriately. If it's not present, then a sensible default value
- # is used.
- #
- #PROLOGUE = -DPROLOGUE=\"$(LIBDIR)\"
- #---------------------------------------------------------------------
- # Not all machines have the index() string library function. If you
- # don't have this function then you should uncomment the NOINDEX
- # definition below.
- #
- #NOINDEX = -DNOINDEX
- #=====================================================================
- #
- # Default locations where mp files will be installed.
- # You might wish to alter these values.
- #
- BINDIR = /usr/local/bin
- LIBDIR = /usr/local/lib
- MANDIR = /usr/man/man$(MANSECT)
- MANSECT = l
- #
- # Compilation flags and standard macro definitions.
- #
- CFLAGS = -g $(NOINDEX) $(PROLOGUE)
- LDFLAGS =
- #=================================================================
-
- .KEEPSTATE:
-
- BINARIES = mp
-
- SRCS = header.c io.c main.c misc.c print.c
- OBJS = header.o io.o main.o misc.o print.o
-
- HDRS = extern.h mp.h patchlevel.h
- OTHERS = README Makefile.dist mailp mp.1 \
- MANIFEST FILES CHANGES TODO \
- mp.el mp.pro.ps mp.pro.alt.ps mp.pro.filofax.ps \
- mp.pro.timeman.ps Data
-
- SFILES1 = $(SRCS) $(HDRS) README MANIFEST FILES CHANGES TODO
- SFILES2 = Makefile.dist mailp mp.1 mp.el Data \
- mp.pro.ps mp.pro.alt.ps mp.pro.filofax.ps mp.pro.timeman.ps
-
- all: $(BINARIES)
-
- mp: $(OBJS)
- cc $(LDFLAGS) -o mp $(OBJS)
-
- install: $(BINARIES)
- install -s -m 751 mp $(BINDIR)
- install -c -m 644 mp.1 $(MANDIR)/mp.$(MANSECT)
- install -c -m 644 mp.pro.ps $(LIBDIR)
- install -c -m 644 mp.pro.filofax.ps $(LIBDIR)
- install -c -m 644 mp.pro.timeman.ps $(LIBDIR)
-
- clean:; rm -rf mp *.o core
-
- create: SCCS
- -sccs create $(SRCS) $(OTHERS)
-
- lint:; lint $(SRCS)
-
- shar:; shar.script $(SFILES1) > Part1
- shar.script $(SFILES2) > Part2
-
- SCCS:
- mkdir SCCS
- chmod 755 SCCS
-
- header.o: mp.h extern.h
- io.o: mp.h extern.h
- main.o: mp.h
- misc.o: mp.h extern.h patchlevel.h
- print.o: mp.h extern.h
- Funky_Stuff
- len=`wc -c < Makefile.dist`
- if [ $len != 2759 ] ; then
- echo error: Makefile.dist was $len bytes long, should have been 2759
- fi
- fi # end of overwriting check
- if [ -f mailp ]
- then
- echo shar: will not over-write existing file mailp
- else
- echo shar: extracting 'mailp', 655 characters
- cat > mailp <<'Funky_Stuff'
- #! /bin/sh
- #
- # @(#)mailp 1.5 89/06/28
- #
- # mailp, newsp, filep, digestp, filofaxp and timemanp
- # shell script de lancement de mp
- # (mail/news/file/digest/filofax/time-manager pretty printer)
- #
- # Original: Bruno Pillard - October 1988.
- # Modified: Rich Burridge - June 1989.
-
- BIN=/usr/local/bin
-
- case $0 in
- *mailp) PROG=mp ;;
- *newsp) PROG=mp ;;
- *digestp) PROG="mp -d" ;;
- *filep) PROG="mp -o" ;;
- *filofaxp) PROG="mp -f ;;
- *timemanp) PROG="mp -t ;;
- *) echo Unknown pretty printer: $0
- exit;;
- esac
-
- if [ $# -eq 0 ]
- then
- set - " - "
- fi
- while [ $# -gt 0 ]
- do
- /bin/cat $1 | ${BIN}/${PROG} | lpr -h -Plw
- shift
- done
- Funky_Stuff
- len=`wc -c < mailp`
- if [ $len != 655 ] ; then
- echo error: mailp was $len bytes long, should have been 655
- fi
- fi # end of overwriting check
- if [ -f mp.1 ]
- then
- echo shar: will not over-write existing file mp.1
- else
- echo shar: extracting 'mp.1', 4805 characters
- cat > mp.1 <<'Funky_Stuff'
- .\" @(#)mp.1 1.13 90/04/12
- .TH MP 1L "12 April 1990"
- .SH NAME
- mp \- Postscript pretty printer
- .SH SYNOPSIS
- .B mp
- [
- .B \-a
- ]
- [
- .B \-d
- ]
- [
- .B \-f
- ]
- [
- .B \-l
- ]
- [
- .B \-m
- ]
- [
- .B \-o
- ]
- [
- .B \-p
- .I prologue
- ]
- [
- .B \-s
- .I subject
- ]
- [
- .B \-t
- ]
- [
- .B \-v
- ]
- [
- .B \-?
- ]
- [
- .IR filename .\|.\|.
- ]
- .SH DESCRIPTION
- .B mp
- will read each
- .I filename
- in sequence and generate a Postscript file on standard output,
- which is a pretty print of the original. If no filename argument is given
- .B mp
- reads from the standard input. If the standard input is a terminal, input
- is terminated by an
- .SM EOF
- signal, usually
- .SM CTRL-D\s0.
- .LP
- The input files to
- .B mp
- can be mail items, news articles or ordinary ASCII files. It is also
- possible to print out complete mail folders and digests.
- .PP
- The format adopted has textured areas containing banner information
- at the top and bottom of every page.
- .PP
- .B mp
- was originally designed to be used in conjunction with the print
- button in the
- .B "mailtool (1)"
- program, or the
- .B pipe
- command from within mail. Add (or alter) the following two line in your
- .B .mailrc
- file:
- .in +1.0i
- .nf
- \fCset printmail='mp | lpr'
- set cmd="mp | lpr &"\fP
- .fi
- .in -1.0i
- .PP
- Source the
- .B .mailrc
- file again, and you are ready.
- .PP
- A useful alias to use used in conjunction with your
- .I .cshrc
- file for printing out ordinary text files is:
- .in +1.0i
- .nf
- \fCalias print 'mp -o -s "\\!*" <\\!* | lpr'\fP
- .fi
- .in -1.0i
- .SH OPTIONS
- .TP
- .B \-a
- The file on standard input is a news article, and should be printed with
- "Article from
- .I newsgroup
- " in the top banner, where
- .I newsgroup
- is the first news group found on the Newsgroups: line.
- .TP
- .B \-d
- The file on standard input is a digest so print accordingly.
- .TP
- .B \-f
- The file on standard input is printed specifically was use with Filofax,
- a personal organiser.
- .TP
- .B \-l
- Prints output in landscape mode. Two pages of text will be printed per
- sheet of paper.
- .TP
- .B \-m
- The file on standard input is a mail folder, so print out multiple messages.
- .TP
- .B \-o
- The file on standard input is an ASCII file so print accordingly.
- .TP
- .BI \-p " prologue filename"
- Employ
- .I "prologue filename"
- as the Postscript prologue file. This overrides any previously defined
- prologue values.
- The
- .I mp
- prologue file is determined by first looking for the environment variable
- .IR MP_PROLOGUE .
- This will be the directory where the mp prologue files are to be found.
- Three different prologue files are used. Normally the prologue file is
- .I mp.pro.ps
- but if the
- .I \-f
- option is used, then the prologue file is called
- .I mp.pro.filofax.ps
- and if the
- .I \-t
- option is used, then the prologue file is
- .I mp.pro.timeman.ps
- If
- .I MP_PROLOGUE
- isn't found, then the default location is used. The default location is
- .IR /usr/local/lib/mp.pro.ps .
- .TP
- .BI \-s " subject"
- Use
- .I " subject"
- as the new subject for the printout. If you are printing ordinary text
- files which have been specified on the command line, the the subject will
- default to the name of each of these files.
- .TP
- .B \-t
- The file on standard input is printed specifically for use with Time Manager,
- a personal organiser.
- .TP
- .B \-v
- Print the version number of this release of the
- .B mp
- program.
- .TP
- .B \-?
- Print the usage line for this program. Note that the
- .B ?
- character should be escaped if running from
- .BR csh (1).
- .SH FILES
- .TP
- .B /usr/local/bin/mp
- executable
- .TP
- .B /usr/local/lib/mp.pro.ps
- PostScript prologue to define required vocabulary for mail printing.
- Editing this file will allow you to introduce some stylistic variation
- in the printing of mail.
- .TP
- .B /usr/local/lib/mp.pro.filofax.ps
- Postscript prologue used to print out files in Filofax format.
- .TP
- .B /usr/local/lib/mp.pro.timeman.ps
- PostScript prologue used to print out files in Time Manager format.
- .SH "SEE ALSO"
- mail(1)
- .SH AUTHORS
- Original version by Steve Holden.
- .PP
- Converted to C, modified and maintained by Rich Burridge, Sun Microsystems Australia,
- .PP
- Original modified to handle net news articles and MH mail by Bruno Pillard, Chorus Systemes, France,
- .PP
- Handling of mail digests added by Dave Glowacki of Public Works Computer Services, St Paul, MN.
- .PP
- Manual page for the initial version revised by Rick Rodgers, UCSF School of Pharmacy, San Francicso.
- .PP
- Support for Personal Organiser printing style added by Douglas Buchanan,
- Sun Microsystems Europe.
- .PP
- Substantial modifications to header parsing by Jeremy Webber,
- Computer Science Department, University of Adelaide, Australia.
- .PP
- Support for printing multiple files and subject line filename print for
- ordinary files added by Sam Manoharan, Edinburgh University.
- .PP
- Support for landscape mode written by Michael Tuciarone.
- .PP
- Rich Burridge, Domain: richb@Aus.Sun.COM
- .nf
- PHONE: +61 2 413 2666 Path: {uunet,mcvax,ukc}!munnari!sunaus.oz!richb
- .fi
- Funky_Stuff
- len=`wc -c < mp.1`
- if [ $len != 4805 ] ; then
- echo error: mp.1 was $len bytes long, should have been 4805
- fi
- fi # end of overwriting check
- if [ -f mp.el ]
- then
- echo shar: will not over-write existing file mp.el
- else
- echo shar: extracting 'mp.el', 2297 characters
- cat > mp.el <<'Funky_Stuff'
- ;; @(#)mp.el 1.1 90/08/14
- ;;
- ;; From Roger Riggs <riggs@suneast.East.Sun.COM>
- ;;
- ;; I and other people here have created functions to print with mp.
- ;; This is particularly good with mail and newsgroup articles
- ;; and the PostScript page decorations can be tailored if you know a
- ;; little PostScript. Both are variations of the original lpr and print
- ;; buffer/region code.
- ;;
- ;; Interface to mp.
-
- (defun mp-buffer ()
- "Print buffer contents as with Unix command `mp | lpr -h'.
- `lpr-switches' is a list of extra switches (strings) to pass to lpr."
- (interactive)
- (mp-region-1 (point-min) (point-max)))
-
- (defun mp-region (start end)
- "Print region contents as with Unix command `mp | lpr -h'.
- `lpr-switches' is a list of extra switches (strings) to pass to lpr."
- (interactive "r")
- (mp-region-1 start end))
-
- (defun mp-region-1 (start end)
- "Print region using mp to lpr"
- (interactive)
- (let ((mp-switches) (msg "Formatting...") (oldbuf (current-buffer)))
- (cond ((string-equal major-mode 'gnus-Article-mode)
- (if (and (= (point-min) start) (= (point-max) end))
- (setq mp-switches (list "-a"))
- (setq mp-switches (list "-o" "-s" (mail-fetch-field "Subject")))))
- ((string-equal major-mode 'rmail-mode)
- (if (and (= (point-min) start) (= (point-max) end))
- (setq mp-switches nil)
- (setq mp-switches (list "-o" "-s" (mail-fetch-field "Subject")))))
- (t
- (setq mp-switches
- (list "-o" "-s" (concat "\"" (buffer-name) " Emacs buffer" "\"")))))
- (save-excursion
- (message "%s" msg)
- (set-buffer (get-buffer-create "*spool temp*"))
- (widen) (erase-buffer)
- (insert-buffer-substring oldbuf start end)
- (if (/= tab-width 8)
- (progn
- (setq msg (concat msg " tabs..."))
- (message "%s" msg)
- (setq tab-width tab-width)
- (untabify (point-min) (point-max))))
-
- (setq msg (concat msg " mp..."))
- (message "%s" msg)
- (apply 'call-process-region
- (nconc (list (point-min) (point-max) "mp" t t nil )
- mp-switches))
-
- (setq msg (concat msg " lpr..."))
- (message "%s" msg)
- (apply 'call-process-region
- (nconc (list (point-min) (point-max) "lpr" t nil nil "-h" )
- lpr-switches))
- (setq msg (concat msg " done."))
- (message "%s" msg))))
- Funky_Stuff
- len=`wc -c < mp.el`
- if [ $len != 2297 ] ; then
- echo error: mp.el was $len bytes long, should have been 2297
- fi
- fi # end of overwriting check
- if [ -f Data ]
- then
- echo shar: can not write a directory over file Data
- else
- if [ ! -d Data ]
- then
- echo shar: creating directory Data
- mkdir Data
- fi
- echo shar: entering directory Data
- cd Data
- if [ -f Mail ]
- then
- echo shar: will not over-write existing file Mail
- else
- echo shar: extracting 'Mail', 1296 characters
- cat > Mail <<'Funky_Stuff'
- Return-Path: rb-archive-server@Aus.Sun.COM
- Received: by hawk from Sun.COM ([192.9.9.1])
- for pmaresch (from rb-archive-server@Aus.Sun.COM)
- id <AA23438@hawk>; Thu, 5 Jul 90 09:44:34 edt
- Received: from Aus.Sun.COM ([129.158.10.50]) by Sun.COM (4.1/SMI-4.1)
- id AA04815; Thu, 5 Jul 90 06:48:22 PDT
- Received: from stard.Aus.Sun.COM by Aus.Sun.COM (4.1/SMI-4.1)
- id AA28245; Thu, 5 Jul 90 23:51:17 EST
- Received: by stard.Aus.Sun.COM (4.1/SMI-4.1)
- id AA19213; Thu, 5 Jul 90 23:46:07 EST
- Date: Thu, 5 Jul 90 23:46:07 EST
- Message-Id: <9007051346.AA19213@stard.Aus.Sun.COM>
- From: Rich Burridge Archive Service <rb-archive-server@Aus.Sun.COM>
- To: pmaresch@hawk.ulowell.edu (pierre mareschal)
- Subject: ack receipt of your archive retrieval request
- In-Reply-To: Request from pmaresch@hawk.ulowell.edu (pierre mareschal) dated Thu Jul 5 23:46:02 EST 1990
-
- The Rich Burridge Archive Server has received your request.
- All of the files that you asked for are in the database.
- Your request is 66314 bytes. It has been placed in the mailer's work
- queue. The work queue is periodically processed by the archive mailer, which
- always sends the shortest queued request first. The length of time that it
- takes to receive your request will depend on how many smaller requests are in
- front of it in line.
- Funky_Stuff
- len=`wc -c < Mail`
- if [ $len != 1296 ] ; then
- echo error: Mail was $len bytes long, should have been 1296
- fi
- fi # end of overwriting check
- if [ -f MailFolder ]
- then
- echo shar: will not over-write existing file MailFolder
- else
- echo shar: extracting 'MailFolder', 318 characters
- cat > MailFolder <<'Funky_Stuff'
- From pmaresch Thu Jul 5 13:35:28 1990
- Date: Thu, 5 Jul 90 13:35:22 EDT
- From: pmaresch (Pierre Mareschal)
- To: pmaresch
- Subject: Subject 2
- Status: R
-
- Text Two
-
- From pmaresch Thu Jul 5 13:35:28 1990
- Date: Thu, 5 Jul 90 13:35:03 EDT
- From: pmaresch (Pierre Mareschal)
- To: pmaresch
- Subject: Subject 1
- Status: R
-
- Text One
-
- Funky_Stuff
- len=`wc -c < MailFolder`
- if [ $len != 318 ] ; then
- echo error: MailFolder was $len bytes long, should have been 318
- fi
- fi # end of overwriting check
- if [ -f NewsArticle1 ]
- then
- echo shar: will not over-write existing file NewsArticle1
- else
- echo shar: extracting 'NewsArticle1', 2882 characters
- cat > NewsArticle1 <<'Funky_Stuff'
- Article: 3019 of +Comp.object
- Path: swan!bbn.com!mit-eddie!rutgers!uwm.edu!rpi!image.soe.clarkson.edu!news
- From: cline@cheetah.ece.clarkson.edu (Marshall Cline)
- Newsgroups: comp.lang.c++,comp.object
- Subject: ``Object Oriented Design'' by Grady Booch -- A First Look
- Message-ID: <CLINE.90Jun2004848@cheetah.ece.clarkson.edu>
- Date: 2 Jun 90 04:51:44 GMT
- Sender: news@sun.soe.clarkson.edu
- Reply-To: cline@sun.soe.clarkson.edu (Marshall Cline)
- Distribution: comp
- Organization: (I don't speak for the) ECE Dept, Clarkson Univ, Potsdam, NY
- Lines: 44
- Xref: swan comp.lang.c++:3019
-
- Benjamin/Cummings just sent me a fresh copy of Grady Booch's new book:
- ``Object Oriented Design''. I had heard good things about it 4th hand, and
- I must say that I haven't been let down. I like the numerous good examples,
- the Software Engineering approach, and the emphasis on design. I've skimmed
- it, and will give a more complete report in a few weeks. But my first
- impressions were very positive. It's about time we had a good OOD book!
-
- Author: Grady Booch
- Title: Object Oriented Design with Applications
- Publisher: Benjamin/Cummings
- ISBN: 0-8053-0091-0
- Copyright: 1991
-
- A couple of initial thoughts: the book is not based on any one OOPL, but
- rather gives roughly equal time to C++, Smalltalk, CLOS, Object Pascal, and
- Ada. He doesn't seem to `put down' any one of these, but rather discusses
- their relative strengths and weaknesses in a sensible manner.
-
- The book is distinctly *not* a book from which you could learn all the
- nuiances of any of these languages; rather it centers on the concepts of how
- you do *design* in the OO paradigm.
-
- Booch seems very concerned with unconstrained software complexity. OOP
- isn't just a fun theoretical ideal to him, but it's something which may
- alleviate the software crisis we are presently battling. He's wants
- `industrial strength software'. Healthy dose of reality.
-
- The Section on Applications looks good. It's quite a healthy chunk of the
- book (250 pgs out of around 500 total). There's a rather large example in
- each of the major programming languages. The key (as I understand Booch's
- goals) is not `this language or that', but rather how can these problems be
- *designed* using OO technology. His method is: design a little, implement a
- little, think it through and redesign, etc. Most of us are embarassed to
- admit that we do it that way too rather than getting it right the first time.
-
- Marshall Cline
- --
- ==============================================================================
- Marshall Cline / Asst.Prof / ECE Dept / Clarkson Univ / Potsdam, NY 13676
- cline@sun.soe.clarkson.edu / Bitnet:BH0W@CLUTX / uunet!clutx.clarkson.edu!bh0w
- Voice: 315-268-3868 / FAX: 315-268-7600
- Career search in progress; ECE faculty; research oriented; will send vita.
- ==============================================================================
- Funky_Stuff
- len=`wc -c < NewsArticle1`
- if [ $len != 2882 ] ; then
- echo error: NewsArticle1 was $len bytes long, should have been 2882
- fi
- fi # end of overwriting check
- if [ -f NewsArticle2 ]
- then
- echo shar: will not over-write existing file NewsArticle2
- else
- echo shar: extracting 'NewsArticle2', 1239 characters
- cat > NewsArticle2 <<'Funky_Stuff'
- Article: 3375 of +Comp.lang.c++
- Path: swan!bbn.com!mit-eddie!rutgers!cs.utexas.edu!usc!samsung!uakari.primate.wisc.edu!uflorida!unf7!shite
- From: shite@unf7.UUCP (Stephen Hite)
- Newsgroups: comp.lang.c++
- Subject: Grady Booch's OOD book is excellent!
- Keywords: design
- Message-ID: <272@unf7.UUCP>
- Date: 28 Jun 90 05:52:17 GMT
- Organization: Univ. of N. Florida, Jacksonville
- Lines: 19
-
-
- Put "Object Oriented Design With Applications" by Grady Booch on your
- "A+ shelf" right next to the others that are already there :-) ("C++ Primer"
- by Stanley Lippman, "C++ Answer Book" by Tony Hansen, the new annotated
- C++ reference by Bjarne and "Object-oriented Software Construction by
- Bertrand Meyer).
-
- It reads very well for me...almost reminiscent in its ease of explanation
- as Andy Tanenbaum's Operating System book (Minix). Booch has a great
- command of references that blend well with his explanations. The bibliography
- is also truly amazing...I know, I'm probably sounding naieve...but it's
- fun learning from someone who knows what they're talking about!
-
- ...Now, if only Andy Koenig would write a "C++ Traps and Pitfalls" book...
- I would achieve total nirvana! :-)
-
- -----------------------------
- Steve Hite
- ...gatech!uflorida!unf7!shite
- Funky_Stuff
- len=`wc -c < NewsArticle2`
- if [ $len != 1239 ] ; then
- echo error: NewsArticle2 was $len bytes long, should have been 1239
- fi
- fi # end of overwriting check
- if [ -f NewsDigest ]
- then
- echo shar: will not over-write existing file NewsDigest
- else
- echo shar: extracting 'NewsDigest', 10627 characters
- cat > NewsDigest <<'Funky_Stuff'
- From swan!bbn.com!nic!bunny!husc6!rutgers!tut.cis.ohio-state.edu!ucbvax!CSL.SRI.COM!risks Thu Jul 5 10:07:45 EDT 1990
- Article 85 of comp.risks:
- Path: swan!bbn.com!nic!bunny!husc6!rutgers!tut.cis.ohio-state.edu!ucbvax!CSL.SRI.COM!risks
- From: risks@CSL.SRI.COM (RISKS Forum)
- Newsgroups: comp.risks
- Subject: RISKS DIGEST 10.14
- Message-ID: <CMM.0.88.646701765.risks@hercules.csl.sri.com>
- Date: 29 Jun 90 23:22:45 GMT
- Sender: daemon@ucbvax.BERKELEY.EDU
- Reply-To: risks@csl.sri.com
- Organization: The Internet
- Lines: 208
- Approved: risks@csl.sri.com
-
- RISKS-LIST: RISKS-FORUM Digest Friday 29 June 1990 Volume 10 : Issue 14
-
- FORUM ON RISKS TO THE PUBLIC IN COMPUTERS AND RELATED SYSTEMS
- ACM Committee on Computers and Public Policy, Peter G. Neumann, moderator
-
- Contents:
- RISKS WILL BE ON VACATION (RISKS Forum)
- Hubble (Dimitri Mihalas via Mark Bartelt)
- Re: "Unbreakable Math Code Finally Broken" (Richard A. Schumacher)
- More on the Risks of searching the Lexis fulltext database (Peter D. Junger)
- Re: info on carpal tunnel syndrome (Terry Kane)
-
- The RISKS Forum is moderated. Contributions should be relevant, sound, in good
- taste, objective, coherent, concise, and nonrepetitious. Diversity is welcome.
- CONTRIBUTIONS to RISKS@CSL.SRI.COM, with relevant, substantive "Subject:" line
- (otherwise they may be ignored). REQUESTS to RISKS-Request@CSL.SRI.COM.
- TO FTP VOL i ISSUE j: ftp CRVAX.sri.com<CR>login anonymous<CR>AnyNonNullPW<CR>
- cd sys$user2:[risks]<CR>GET RISKS-i.j <CR>; j is TWO digits. Vol summaries in
- risks-i.00 (j=0); "dir risks-*.*<CR>" gives directory listing of back issues.
- ALL CONTRIBUTIONS ARE CONSIDERED AS PERSONAL COMMENTS; USUAL DISCLAIMERS APPLY.
-
- ----------------------------------------------------------------------
-
- Date: Fri, 29 Jun 1990 13:34:45 PDT
- From: RISKS Forum <risks@csl.sri.com>
- Subject: RISKS WILL BE ON VACATION
-
- for the next three weeks. There might be an issue or two, but don't bet on it.
- Keep sending in the good stuff in any case. Thanks. The Management
-
- ------------------------------
-
- Date: Fri, 29 Jun 90 13:20:14 EDT
- From: Mark Bartelt <sysmark@orca.cita.utoronto.ca>
- Subject: Hubble
-
- [This is a message from Dimitri Mihalas (dmihalas@altair.astro.uiuc.edu).
- Mark Bartelt, Canadian Institute of Theoretical Astrophysics]
-
- in case you have not heard: from a reliable inside source i found out that the
- problem with ST is that the SOFTWARE driving the polisher was defective. the
- corrections for spherical aberration were put in with the wrong sign.
- consequently the mirror is not corrected for sph. abb., but has an added dose
- of it.
-
- the error was not detected during testing because no test with collimated
- light was ever done. (editorial remark: unthinkable!) apparently this was
- a $30M economy measure in the face of the Challenger accident. likewise
- none of the optics were ever tested in vacuum. the primary was and is
- "perfect" relative to the specified curve; but alas the specification
- was wrong. sigh.
-
- from my amateur astronomer days (does that include 1990?) i recall that
- spherical aberration is EASY to detect with the foucault test, which is
- done with a pinhole, not collimated light. it is hard to believe that
- ANYONE could have made such a blunder..
-
- the only reason that people know this much is that the same software
- was used for AXAF. the errors there were so huge as to be immediately
- noticeable, and when the software was corrected, the mirror was "perfect".
- i don't know whether the information from axaf was available prior to
- the launch of ST, but it seems that it had to be. in which case one
- wonders why PE didn't issue a "hold everything!".
-
- the future: no chance of bringing the whole telescope down for a refit.
- best plan is to design compensating optics into the lightpath for future
- instruments: relatively easy to do. but that will still take 3-5 years.
-
- i suppose it's "win a few, lose a few..." but i personally think that
- nasa, the government, and the people should stick it into PE and TURN
- it hard until they agree to refund the cost of the mistake and of the repairs.
- i'm sick of seeing defense and defense-related contractors get away
- with bloody murder and just get fatter and fatter on the profits.
-
- back to theory
- dimitri
-
- ------------------------------
-
- Date: 28 Jun 90 18:02:18 GMT
- From: schumach@convex.UUCP (Richard A. Schumacher)
- Subject: Re: "Unbreakable Math Code Finally Broken"
- References: <CMM.0.88.646532535.risks@hercules.csl.sri.com>
-
- Y. Radai <RADAI1@HBUNOS.BITNET> writes:
- > So the statements that an impenetrable code has been broken and that
- >organizations need to change their cryptographic systems because of this
- >achievement seem a wee bit exaggerated.
-
- On the other hand, the NPR report mentioned that the Bank of England
- was planning to use a 150 digit number as a key in a new transaction
- processing system, but changed it to something "much larger" when
- they learned of the 9th Fermat prime factoring.
-
- ------------------------------
-
- Date: 29 Jun 90 16:25:00 EST
- From: junger@cwru.cwru.edu
- Subject: More on the Risks of searching the Lexis fulltext database
-
- A while back I sent to RISKS an (itself rather buggy) description of a
- bug that turned up in the Lexis/Nexis database when I was doing date delimited
- searches in the library containing the fulltext opinions of the United States
- Supreme Court. A representative of Mead Data Central--the owner of the
- Nexis/Lexis service--has since contacted me to explain the nature of the bug
- and to assure me that it will be corrected on June 30.
-
- In the first place, it appears that the bug is _not_ in the
- basic software that searches through the database for cases decided on,
- after, or before a specified date. Secondly, it is clear that the bug
- did _not_ cause me to miss any cases that I should have located, it just
- turned up some additonal cases that were not decided within the period
- that I was searching. That is the good news.
-
- The bad news is that the problem relates to the way that the
- Lexis/Nexis system parses dates in the database and that the proposed
- fix will work only until the year 2000, at which time a new variant of
- the bug should cause real havoc.
-
- Here is a corrected version of the type of search that exposed
- the bug:
-
- Entitlement and date(aft 12/31/39 and bef 1/1/50)
-
- That search, when conducted in the Supreme Court file, should find all
- opinions, and only those opinions, decided by the United States Supreme
- Court during the decade of the 1940's that contained the word
- `entitlement'. (Lexis warned me that it assumed that I meant after
- 12/31/1939 and before 1/1/1950.) As it happens, there are no cases that meet
- those criteria. But Lexis reported that it had found a dozen or so
- cases--cases that did contain the word `entitlement' but that were
- decided in the 1960's, 70's, and 80's.
-
- It seems that a couple of months ago Mead Data Central decided
- to include the argued-date as well as the decided-date within the date
- field, and it is this enhancement that caused the bug. The fix that
- will be implimented this Saturday is to once again exclude the
- argued-date from the date field.
-
- Since cases are not always decided in the same year that they
- are argued, including the argued-date in the date field will, of course,
- cause some cases to be reported as occurring in two different decades,
- which would be a nuisance. But that is only a miniscule part of the
- bug. The real problem occurs because some cases are argued on more than
- one date, so that the argued-date field would appear in the database as,
- say: "argued June 22-23, 1980" and the decided date field as: "July 3,
- 1980)." At first glance that would not seem to cause any problem. And
- it wouldn't, except for the fact that the Lexis system parses the date
- fields in the same way that it parses user input, and thus concludes
- that "June 22-23" means "June 22-1923". Thus our hypothetical case
- would have a date of July 3, 1980 (which is after December 31, 1939) and
- would also have a date of June 22, 1923 (which is before January 1,
- 1950). If that case--decided, you will recall, in 1980--contains the
- word `entitlement' it will turn up in my search for cases in the decade
- of the 1940's, and in my searches in the 1950's, and in the 1960's, etc.
-
- I can understand why the system parses user input so as to
- interpret 1/1/50 as 1/1/1950--but I never dreamed that a system would
- parse its own data. According to the people at Mead Data Central,
- however, their system parses the data fields in exactly the same way
- that it parses user input. It seems that the Lexis/Nexis database
- contains texts--especially news reports--with dates in the form
- "nn/nn/nn". Today those dates are parsed as "nn/nn/19nn", but what is
- going to happen in the year 2000?
-
- It would seem that ambiguous data in the data base will be much
- harder to find and fix than a software bug.
-
- Peter D. Junger, CWRU Law School
-
- ------------------------------
-
- Date: 29 Jun 90 19:36:47 GMT
- From: tok@stiatl.UUCP (Terry Kane)
- Subject: Re: info on carpal tunnel syndrome (CTS)
-
- I am a long time sufferer of CTS. The first symptoms I recall were during
- high school, nearly twenty years ago, but it was not properly diagnosed
- until I was in excruciating pain, dropping things, not sleeping because
- my hand was burning at night and more, all about four years ago.
-
- Tests said that I had "a very mild case"!? That reassuring info did not
- make my hand better. I used splints, Motrin, ice until I finally insisted
- on the carpal tunnel relief operation. That was two years ago, this month,
- but I still have recurrences - especially when I meet the same RISK which
- pushed my CTS over the edge: using a MOUSE.
-
- The typical mouse promotes all the bad habits that can result in CTS symptoms.
- One typically rests the heel of the palm on the mouse, and press the chord
- keys - frequently with constant pressure (on Apple's mice, the required
- pressure is substantial for me, and their new mouse reqlly aggravates the
- problem with its stylized, aerodynamic "look"). I cannot use a mouse to this
- day without suffering a "mouse hangover".
-
- Track balls are better for me, but I still would rather avoid them.
-
- I am really looking forward to _getting_my_hands_on_ ;-) a touch screen.
- I've seen some very nice ones with quite satisfactory resolution!
-
- And please - If you think that you might have CTS - don't waste time.
- See Your M.D.
-
- Terry Kane, Sales Technologies, Inc, Atlanta, GA (404) 841-4000
-
- ------------------------------
-
- End of RISKS-FORUM Digest 10.14
- ************************
-
-
- Funky_Stuff
- len=`wc -c < NewsDigest`
- if [ $len != 10627 ] ; then
- echo error: NewsDigest was $len bytes long, should have been 10627
- fi
- fi # end of overwriting check
- cd ..
- echo shar: done with directory Data
- fi
- if [ -f mp.pro.ps ]
- then
- echo shar: will not over-write existing file mp.pro.ps
- else
- echo shar: extracting 'mp.pro.ps', 3592 characters
- cat > mp.pro.ps <<'Funky_Stuff'
- %!PS-Adobe-1.0
- %%Creator: Steve Holden
- %%Modified: Rich Burridge
- %%Title: @(#)mp.pro.ps 1.7 90/08/29
- %%CreationDate: see above
- %%PageLength 60
- %%LineLength 80
- %%DocumentFonts: Times-Bold Times-Roman Courier
- %%Pages: (atend)
- %%EndComments
-
- /inch { 72 mul } def
- /leftedge 0 def
- /rightedge 8.5 inch def
- /bottomedge 0 def
- /topedge 11 inch def
- /LandscapeMode false def
-
- %Title: backspacefont.ps suggested by Glenn Reid (Adobe Systems).
-
- /backspacefont {
- /Courier findfont dup length dict begin
- { %forall
- 1 index /FID eq { pop pop } { def } ifelse
- } forall
- currentdict /UniqueID known { %if
- /UniqueID UniqueID 16#800000 xor def
- } if
- CharStrings length 1 add dict begin
- CharStrings { def } forall
- /backspace { -600 0 setcharwidth } bind def
- currentdict
- end
- /CharStrings exch def
- /Encoding Encoding 256 array copy def
- Encoding 8 /backspace put
- currentdict
- end
- definefont
- } bind def
-
- /CourierBack backspacefont
-
- /FontSize 9 def
- /font1d /Times-Bold findfont def
- /font2d /Times-Roman findfont def
- /font3d /CourierBack findfont def
- /fontHd /Helvetica-BoldOblique findfont 14 scalefont def
- /fontH2 /Helvetica-BoldOblique findfont 10 scalefont def
- /fontNd /Times-Bold findfont 12 scalefont def
-
- /BoldFont { font1d FontSize scalefont setfont } def
- /pf { font2d FontSize scalefont setfont } def
- /sf { font3d FontSize scalefont setfont } def
- /fontH { fontHd setfont } def
- /fontD { fontH2 setfont } def
- /fontN { fontNd setfont } def
-
- /graybox % x1 y1 x2 y2 graybox --
- {
- newpath
- 4 -1 roll 2 copy % y2 x1
- 10 sub exch moveto
- 4 -1 roll 2 copy % x1 y1
- 10 180 270 arc
- 4 -1 roll 1 copy 3 -1 roll % x2 y1
- 10 270 0 arc
- 3 -1 roll 1 copy 3 1 roll % x1 y2 x2 y2
- 10 0 90 arc
- 10 90 180 arc
- closepath
- 0.75 setgray fill
- } def
-
- /endpage % page_number endpage --
- {
- gsave
- fontH
- leftedge 50 add topedge 56 sub % bottom lt corner
- rightedge 50 sub topedge 36 sub % top rt corner
- graybox
- newpath
- rightedge leftedge sub 2 div topedge 46 sub 15 0 360 arc
- gsave
- 1 setgray fill
- grestore
- closepath
- 0 setgray stroke
- leftedge 50 add topedge 52 sub moveto
- MailFor show
- User show
- fontD
- rightedge 50 sub TimeNow stringwidth pop sub
- topedge 52 sub moveto TimeNow show
- % center the page number
- fontN
- dup stringwidth
- topedge 52 sub exch sub % y-centered
- exch 2 div rightedge leftedge sub 2 div exch sub % x-centered
- exch moveto show
- fontH
- leftedge 50 add bottomedge 50 add % bottom lt corner
- rightedge 50 sub bottomedge 70 add % top rt corner
- graybox
- 0 setgray
- leftedge 50 add bottomedge 54 add moveto Subject show
- grestore
- showpage % display it
- newpage % reset parameters for next
- } def
-
- /newpage
- {
- LandscapeMode {setlandscape} if
- /lct 0 def
- /ypos topedge 92 sub def
- /xpos leftedge 50 add def
- xpos ypos moveto
- sf
- } def
-
- /setlandscape
- {
- 612 0 translate
- 90 rotate
- /FontSize 7 def
- } def
-
- /Landscape
- {
- /LandscapeMode true def
- /rightedge 11 inch def
- /topedge 8.5 inch def
- newpage
- } def
-
- /endcol
- {
- /lct 0 def
- /ypos topedge 92 sub def
- /xpos rightedge leftedge sub 2 div def
- xpos ypos moveto
- } def
-
- /showline
- {
- show
- /ypos ypos FontSize sub def
- xpos ypos moveto
- } def
-
- newpage % establish first page parameters
- Funky_Stuff
- len=`wc -c < mp.pro.ps`
- if [ $len != 3592 ] ; then
- echo error: mp.pro.ps was $len bytes long, should have been 3592
- fi
- fi # end of overwriting check
- if [ -f mp.pro.alt.ps ]
- then
- echo shar: will not over-write existing file mp.pro.alt.ps
- else
- echo shar: extracting 'mp.pro.alt.ps', 3444 characters
- cat > mp.pro.alt.ps <<'Funky_Stuff'
- %!PS-Adobe-1.0
- %%Creator: Steve Holden
- %%Modified: Rich Burridge
- %%Title: @(#)mp.pro.alt.ps 1.3 90/08/29
- %%CreationDate: see above
- %%PageLength 60
- %%LineLength 80
- %%DocumentFonts: Times-Bold Times-Roman Courier
- %%Pages: (atend)
- %%EndComments
-
- /inch { 72 mul } def
- /leftedge 0 def
- /rightedge 8.5 inch def
- /bottomedge 0 def
- /topedge 11 inch def
- /LandscapeMode false def
-
- %Title: backspacefont.ps suggested by Glenn Reid (Adobe Systems).
-
- /backspacefont {
- /Courier findfont dup length dict begin
- { %forall
- 1 index /FID eq { pop pop } { def } ifelse
- } forall
- currentdict /UniqueID known { %if
- /UniqueID UniqueID 16#800000 xor def
- } if
- CharStrings length 1 add dict begin
- CharStrings { def } forall
- /backspace { -600 0 setcharwidth } bind def
- currentdict
- end
- /CharStrings exch def
- /Encoding Encoding 256 array copy def
- Encoding 8 /backspace put
- currentdict
- end
- definefont
- } bind def
-
- /CourierBack backspacefont
-
- /FontSize 9 def
- /font1d /Times-Bold findfont def
- /font2d /Times-Roman findfont def
- /font3d /CourierBack findfont def
- /fontHd /Helvetica-BoldOblique findfont 14 scalefont def
- /fontH2 /Helvetica-BoldOblique findfont 10 scalefont def
- /fontNd /Times-Bold findfont 12 scalefont def
-
- /BoldFont { font1d FontSize scalefont setfont } def
- /pf { font2d FontSize scalefont setfont } def
- /sf { font3d FontSize scalefont setfont } def
- /fontH { fontHd setfont } def
- /fontD { fontH2 setfont } def
- /fontN { fontNd setfont } def
-
- /graybox % x1 y1 x2 y2 graybox --
- {
- newpath
- 4 -1 roll 2 copy % y2 x1
- 10 sub exch moveto
- 4 -1 roll 2 copy % x1 y1
- 10 180 270 arc
- 4 -1 roll 1 copy 3 -1 roll % x2 y1
- 10 270 0 arc
- 3 -1 roll 1 copy 3 1 roll % x1 y2 x2 y2
- 10 0 90 arc
- 10 90 180 arc
- closepath
- 0.75 setgray fill
- } def
-
- /endpage % page_number endpage --
- {
- gsave
- fontH
- leftedge 50 add topedge 56 sub % bottom lt corner
- rightedge 50 sub topedge 36 sub % top rt corner
- graybox
- 0 setgray stroke
- leftedge 50 add topedge 52 sub moveto
- MailFor show
- User show
- fontD
- rightedge 50 sub TimeNow stringwidth pop sub
- topedge 52 sub moveto TimeNow show
- fontH
- leftedge 50 add bottomedge 50 add % bottom lt corner
- rightedge 50 sub bottomedge 70 add % top rt corner
- graybox
- 0 setgray
- leftedge 50 add bottomedge 54 add moveto Subject show
- % page number of the left corner
- dup stringwidth
- bottomedge 54 add exch sub % y-centered
- exch 2 div rightedge 54 sub exch sub % x-centered
- exch moveto show
- grestore
- showpage % display it
- newpage % reset parameters for next
- } def
-
- /newpage
- {
- LandscapeMode {setlandscape} if
- /lct 0 def
- /ypos topedge 92 sub def
- /xpos leftedge 50 add def
- xpos ypos moveto
- sf
- } def
-
- /setlandscape
- {
- 612 0 translate
- 90 rotate
- /FontSize 7 def
- } def
-
- /Landscape
- {
- /LandscapeMode true def
- /rightedge 11 inch def
- /topedge 8.5 inch def
- newpage
- } def
-
- /endcol
- {
- /lct 0 def
- /ypos topedge 92 sub def
- /xpos rightedge leftedge sub 2 div def
- xpos ypos moveto
- } def
-
- /showline
- {
- show
- /ypos ypos FontSize sub def
- xpos ypos moveto
- } def
-
- newpage % establish first page parameters
- Funky_Stuff
- len=`wc -c < mp.pro.alt.ps`
- if [ $len != 3444 ] ; then
- echo error: mp.pro.alt.ps was $len bytes long, should have been 3444
- fi
- fi # end of overwriting check
- if [ -f mp.pro.filofax.ps ]
- then
- echo shar: will not over-write existing file mp.pro.filofax.ps
- else
- echo shar: extracting 'mp.pro.filofax.ps', 4808 characters
- cat > mp.pro.filofax.ps <<'Funky_Stuff'
- %!PS-Adobe-1.0
- %%Creator: Steve Holden
- %%Modifed: Rich Burridge
- %%Title: @(#)mp.pro.filofax.ps 1.4 90/08/29
- %%CreationDate: see above
- %%PageLength 60
- %%LineLength 80
- %%DocumentFonts: Times-Bold Times-Roman Courier
- %%Pages: (atend)
- %%EndComments
-
- %Title: backspacefont.ps suggested by Glenn Reid (Adobe Systems).
-
- /backspacefont {
- /Courier findfont dup length dict begin
- { %forall
- 1 index /FID eq { pop pop } { def } ifelse
- } forall
- currentdict /UniqueID known { %if
- /UniqueID UniqueID 16#800000 xor def
- } if
- CharStrings length 1 add dict begin
- CharStrings { def } forall
- /backspace { -600 0 setcharwidth } bind def
- currentdict
- end
- /CharStrings exch def
- /Encoding Encoding 256 array copy def
- Encoding 8 /backspace put
- currentdict
- end
- definefont
- } bind def
-
- /CourierBack backspacefont
-
- /FontSize 11 def
- /font1d /Times-Bold findfont def
- /font2d /Times-Roman findfont def
- /font3d /CourierBack findfont def
- /fontHd /Helvetica-BoldOblique findfont 15 scalefont def
- /fontH2 /Helvetica-BoldOblique findfont 10 scalefont def
- /fontNd /Times-Bold findfont 12 scalefont def
-
- /BoldFont { font1d FontSize scalefont setfont } def
- /pf { font2d FontSize scalefont setfont } def
- /sf { font3d 10 scalefont setfont } def
- /fontH { fontHd setfont } def
- /fontD { fontH2 setfont } def
- /fontN { fontNd setfont } def
-
-
- sf
- %% stick in all the fudge factors here. May need changing for page sizes,
- %% laserwriter setups etc?
- %%
- /binderspace 100 def
- /filowidth 484 def
- /filoheight 972 def
- /margin 12 def
- /xleft binderspace 6 add def
- /yco filoheight 50 sub def % space at the top
- /xright filowidth binderspace add 30 sub def % space at right
-
- /endpage
- {
- gsave
- fontH
- % draw the top for owner
- newpath
- xleft 10 sub yco moveto
- xleft yco 20 sub 10 180 270 arc
- xright yco 20 sub 10 270 0 arc
- xright yco 10 0 90 arc
- xleft yco 10 90 180 arc
- closepath
- 0.90 setgray fill
- 0 setgray stroke
- xleft yco 16 sub moveto
- MailFor show
- User show
- fontD
- TimeNow stringwidth pop neg xright add yco 16 sub moveto TimeNow show
- fontN
- % dup stringwidth pop 2 div neg 318 add 858 moveto show
- fontH
- % lower box for subject etc
- newpath
- xleft 10 sub 60 moveto
- xleft 40 10 180 270 arc
- xright 40 10 270 0 arc
- xright 60 10 0 90 arc
- xleft 60 10 90 180 arc
- closepath
- 0.90 setgray fill
- % stick the page number just a few points in from the right hand edge
- newpath
- xright 10 sub 50 15 0 360 arc
- gsave
- 1 setgray fill
- grestore
- closepath
- 0 setgray stroke
- xleft 44 moveto Subject show
- fontN
- % position and print the page number
- dup stringwidth pop 2 div neg xright 10 sub add 46 moveto show
- fontH
- grestore
- modu 2 eq eof 0 ne or { showpage } if % do a 'form feed'
- % if ready for it
- eof 0 eq { newpage } if % reset parameters for next if not end of file
- } def
-
- /endfile
- {
- /eof 1 def
- endpage
- } def
-
- /xo 36 def
- /yo 0 def
- /pageno 0 def
- /modu pageno 3 mod def % get mod to work out page pos
- /eof 0 def
-
- /weearc % draws a little arc to show where the holes go
- { newpath
- xo yo 4 0 360 arc
- closepath
- fill
- } def
-
- /filopage
- { gsave
- % 24 -118 translate
- /xstart filowidth modu mul def
- /xstart xstart binderspace add def
- /xfin xstart filowidth add def
- modu 0 eq { % first break
- /yo 130 def % show where the holes should be punched
- weearc % except that they will normally be off the edge of
- /yo 238 def % the page
- weearc
- /yo 346 def
- weearc
- /yo 639 def
- weearc
- /yo 742 def
- weearc
- /yo 850 def
- weearc
- } if
- [1 4] 0 setdash % use dashed lines for marker
- newpath
- xstart 0 moveto
- xfin 0 lineto
- xfin filoheight lineto
- stroke
- grestore
- } def
-
- /newpage
- {
- pageno 0 eq { % set initial values for landscape drawing
- 0.5 0.5 scale
- 90 rotate
- -50 0 translate
- gsave % save state for easy restore
- /eof 0 def
- } {
- grestore gsave % return to preferred original state
- } ifelse % initial setup
-
- /modu pageno 3 mod def % get mod to work out page pos
- 0 0 filoheight sub translate % initial position (-filoheight)
- filopage % draw neccessary page breaks
- /times filowidth modu mul def % shift origin as far right as needed
- /times times margin add def % move right by fudge factor 12
- times 0 translate
- /lct 0 def
- /ypos filoheight 110 sub def
- xleft ypos moveto
- /pageno pageno 1 add def % add one for the next time
- } def
-
- /showline
- {
- show
- /ypos ypos 12 sub def
- xleft ypos moveto
- } def
-
- newpage % establish first page parameters
- Funky_Stuff
- len=`wc -c < mp.pro.filofax.ps`
- if [ $len != 4808 ] ; then
- echo error: mp.pro.filofax.ps was $len bytes long, should have been 4808
- fi
- fi # end of overwriting check
- if [ -f mp.pro.timeman.ps ]
- then
- echo shar: will not over-write existing file mp.pro.timeman.ps
- else
- echo shar: extracting 'mp.pro.timeman.ps', 4808 characters
- cat > mp.pro.timeman.ps <<'Funky_Stuff'
- %!PS-Adobe-1.0
- %%Creator: Steve Holden
- %%Modifed: Rich Burridge
- %%Title: @(#)mp.pro.timeman.ps 1.4 90/08/29
- %%CreationDate: see above
- %%PageLength 60
- %%LineLength 80
- %%DocumentFonts: Times-Bold Times-Roman Courier
- %%Pages: (atend)
- %%EndComments
-
- %Title: backspacefont.ps suggested by Glenn Reid (Adobe Systems).
-
- /backspacefont {
- /Courier findfont dup length dict begin
- { %forall
- 1 index /FID eq { pop pop } { def } ifelse
- } forall
- currentdict /UniqueID known { %if
- /UniqueID UniqueID 16#800000 xor def
- } if
- CharStrings length 1 add dict begin
- CharStrings { def } forall
- /backspace { -600 0 setcharwidth } bind def
- currentdict
- end
- /CharStrings exch def
- /Encoding Encoding 256 array copy def
- Encoding 8 /backspace put
- currentdict
- end
- definefont
- } bind def
-
- /CourierBack backspacefont
-
- /FontSize 12 def
- /font1d /Times-Bold findfont def
- /font2d /Times-Roman findfont def
- /font3d /CourierBack findfont def
- /fontHd /Helvetica-BoldOblique findfont 15 scalefont def
- /fontH2 /Helvetica-BoldOblique findfont 10 scalefont def
- /fontNd /Times-Bold findfont 12 scalefont def
-
- /BoldFont { font1d FontSize scalefont setfont } def
- /pf { font2d FontSize scalefont setfont } def
- /sf { font3d 11 scalefont setfont } def
- /fontH { fontHd setfont } def
- /fontD { fontH2 setfont } def
- /fontN { fontNd setfont } def
-
- sf
- %% stick in all the fudge factors here. May need changing for page sizes,
- %% laserwriter setups etc?
- %%
- /binderspace 100 def
- /filowidth 520 def
- /filoheight 1024 def
- /margin 12 def
- /xleft binderspace 6 add def
- /yco filoheight 50 sub def % space at the top
- /xright filowidth binderspace add 30 sub def % space at right
-
- /endpage
- {
- gsave
- fontH
- % draw the top for owner
- newpath
- xleft 10 sub yco moveto
- xleft yco 20 sub 10 180 270 arc
- xright yco 20 sub 10 270 0 arc
- xright yco 10 0 90 arc
- xleft yco 10 90 180 arc
- closepath
- 0.90 setgray fill
- 0 setgray stroke
- xleft yco 16 sub moveto
- MailFor show
- User show
- fontD
- TimeNow stringwidth pop neg xright add yco 16 sub moveto TimeNow show
- fontN
- % dup stringwidth pop 2 div neg 318 add 858 moveto show
- fontH
- % lower box for subject etc
- newpath
- xleft 10 sub 60 moveto
- xleft 40 10 180 270 arc
- xright 40 10 270 0 arc
- xright 60 10 0 90 arc
- xleft 60 10 90 180 arc
- closepath
- 0.90 setgray fill
- % stick the page number just a few points in from the right hand edge
- newpath
- xright 10 sub 50 15 0 360 arc
- gsave
- 1 setgray fill
- grestore
- closepath
- 0 setgray stroke
- xleft 44 moveto Subject show
- fontN
- % position and print the page number
- dup stringwidth pop 2 div neg xright 10 sub add 46 moveto show
- fontH
- grestore
- modu 2 eq eof 0 ne or { showpage } if % do a 'form feed'
- % if ready for it
- eof 0 eq { newpage } if % reset parameters for next if not end of file
- } def
-
- /endfile
- {
- /eof 1 def
- endpage
- } def
-
- /xo 36 def
- /yo 0 def
- /pageno 0 def
- /modu pageno 3 mod def % get mod to work out page pos
- /eof 0 def
-
- /weearc % draws a little arc to show where the holes go
- { newpath
- xo yo 4 0 360 arc
- closepath
- fill
- } def
-
- /filopage
- { gsave
- % 24 -118 translate
- /xstart filowidth modu mul def
- /xstart xstart binderspace add def
- /xfin xstart filowidth add def
- modu 0 eq { % first break
- /yo 130 def % show where the holes should be punched
- weearc % except that they will normally be off the edge of
- /yo 238 def % the page
- weearc
- /yo 346 def
- weearc
- /yo 639 def
- weearc
- /yo 742 def
- weearc
- /yo 850 def
- weearc
- } if
- [1 4] 0 setdash % use dashed lines for marker
- newpath
- xstart 0 moveto
- xfin 0 lineto
- xfin filoheight lineto
- stroke
- grestore
- } def
-
- /newpage
- {
- pageno 0 eq { % set initial values for landscape drawing
- 0.5 0.5 scale
- 90 rotate
- -50 0 translate
- gsave % save state for easy restore
- /eof 0 def
- } {
- grestore gsave % return to preferred original state
- } ifelse % initial setup
-
- /modu pageno 3 mod def % get mod to work out page pos
- 0 0 filoheight sub translate % initial position (-filoheight)
- filopage % draw neccessary page breaks
- /times filowidth modu mul def % shift origin as far right as needed
- /times times margin add def % move right by fudge factor 12
- times 0 translate
- /lct 0 def
- /ypos filoheight 110 sub def
- xleft ypos moveto
- /pageno pageno 1 add def % add one for the next time
- } def
-
- /showline
- {
- show
- /ypos ypos 12 sub def
- xleft ypos moveto
- } def
-
- newpage % establish first page parameters
- Funky_Stuff
- len=`wc -c < mp.pro.timeman.ps`
- if [ $len != 4808 ] ; then
- echo error: mp.pro.timeman.ps was $len bytes long, should have been 4808
- fi
- fi # end of overwriting check
-
-