home *** CD-ROM | disk | FTP | other *** search
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: part01
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| C source, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 73 75 |.sources|.misc.su|
|00000020| 62 6a 65 63 74 3a 20 76 | 31 34 69 30 33 37 3a 20 |bject: v|14i037: |
|00000030| 60 6d 6e 27 20 6d 61 69 | 6c 20 73 75 6d 6d 61 72 |`mn' mai|l summar|
|00000040| 79 2f 74 61 6c 6c 79 20 | 75 74 69 6c 69 74 79 0a |y/tally |utility.|
|00000050| 46 72 6f 6d 3a 20 77 69 | 6d 6c 40 6d 69 6c 74 6f |From: wi|ml@milto|
|00000060| 6e 2e 75 2e 77 61 73 68 | 69 6e 67 74 6f 6e 2e 65 |n.u.wash|ington.e|
|00000070| 64 75 20 28 57 69 6c 6c | 69 61 6d 20 4c 65 77 69 |du (Will|iam Lewi|
|00000080| 73 29 0a 53 65 6e 64 65 | 72 3a 20 61 6c 6c 62 65 |s).Sende|r: allbe|
|00000090| 72 79 40 75 75 6e 65 74 | 2e 55 55 2e 4e 45 54 20 |ry@uunet|.UU.NET |
|000000a0| 28 42 72 61 6e 64 6f 6e | 20 53 2e 20 41 6c 6c 62 |(Brandon| S. Allb|
|000000b0| 65 72 79 20 2d 20 63 6f | 6d 70 2e 73 6f 75 72 63 |ery - co|mp.sourc|
|000000c0| 65 73 2e 6d 69 73 63 29 | 0a 0a 50 6f 73 74 69 6e |es.misc)|..Postin|
|000000d0| 67 2d 6e 75 6d 62 65 72 | 3a 20 56 6f 6c 75 6d 65 |g-number|: Volume|
|000000e0| 20 31 34 2c 20 49 73 73 | 75 65 20 33 37 0a 53 75 | 14, Iss|ue 37.Su|
|000000f0| 62 6d 69 74 74 65 64 2d | 62 79 3a 20 77 69 6d 6c |bmitted-|by: wiml|
|00000100| 40 6d 69 6c 74 6f 6e 2e | 75 2e 77 61 73 68 69 6e |@milton.|u.washin|
|00000110| 67 74 6f 6e 2e 65 64 75 | 20 28 57 69 6c 6c 69 61 |gton.edu| (Willia|
|00000120| 6d 20 4c 65 77 69 73 29 | 0a 41 72 63 68 69 76 65 |m Lewis)|.Archive|
|00000130| 2d 6e 61 6d 65 3a 20 6d | 6e 2f 70 61 72 74 30 31 |-name: m|n/part01|
|00000140| 0a 0a 49 20 77 72 6f 74 | 65 20 74 68 69 73 20 62 |..I wrot|e this b|
|00000150| 65 63 61 75 73 65 20 69 | 74 27 73 20 75 73 65 66 |ecause i|t's usef|
|00000160| 75 6c 2c 20 74 68 65 6e | 20 61 66 74 65 72 20 61 |ul, then| after a|
|00000170| 20 66 69 74 20 6f 66 20 | 64 6f 63 75 6d 65 6e 74 | fit of |document|
|00000180| 61 74 69 6f 6e 0a 64 65 | 63 69 64 65 64 20 74 68 |ation.de|cided th|
|00000190| 61 74 20 73 6f 6d 65 74 | 68 69 6e 67 20 77 69 74 |at somet|hing wit|
|000001a0| 68 20 61 20 6d 61 6e 20 | 70 61 67 65 20 6d 69 67 |h a man |page mig|
|000001b0| 68 74 20 61 73 20 77 65 | 6c 6c 20 62 65 20 70 6f |ht as we|ll be po|
|000001c0| 73 74 65 64 2e 2e 2e 0a | 0a 4d 6e 20 69 73 20 61 |sted....|.Mn is a|
|000001d0| 20 75 74 69 6c 69 74 79 | 20 74 6f 20 72 65 61 64 | utility| to read|
|000001e0| 20 61 20 6d 61 69 6c 62 | 6f 78 20 66 69 6c 65 20 | a mailb|ox file |
|000001f0| 61 6e 64 20 73 75 6d 6d | 61 72 69 7a 65 20 69 74 |and summ|arize it|
|00000200| 73 20 63 6f 6e 74 65 6e | 74 73 2c 20 0a 73 61 79 |s conten|ts, .say|
|00000210| 20 66 6f 72 20 75 73 65 | 20 69 6e 20 61 20 6c 6f | for use| in a lo|
|00000220| 67 69 6e 20 73 63 72 69 | 70 74 2e 20 53 65 65 20 |gin scri|pt. See |
|00000230| 74 68 65 20 52 45 41 44 | 4d 45 20 66 6f 72 20 6d |the READ|ME for m|
|00000240| 6f 72 65 20 64 65 74 61 | 69 6c 73 0a 28 69 74 27 |ore deta|ils.(it'|
|00000250| 73 20 72 69 67 68 74 20 | 61 74 20 74 68 65 20 74 |s right |at the t|
|00000260| 6f 70 20 6f 66 20 74 68 | 65 20 73 68 61 72 20 2e |op of th|e shar .|
|00000270| 2e 2e 29 20 0a 0a 0a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..) ...-|--------|
|00000280| 2d 63 75 74 20 68 65 72 | 65 2d 2d 2d 2d 2d 2d 2d |-cut her|e-------|
|00000290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 63 75 74 20 68 65 |--------|--cut he|
|000002a0| 72 65 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |re------|--------|
|000002b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0a 23 21 20 2f 62 |--------|--.#! /b|
|000002c0| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|000002d0| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2c |a shell |archive,|
|000002e0| 20 6d 65 61 6e 69 6e 67 | 3a 0a 23 20 31 2e 20 52 | meaning|:.# 1. R|
|000002f0| 65 6d 6f 76 65 20 65 76 | 65 72 79 74 68 69 6e 67 |emove ev|erything|
|00000300| 20 61 62 6f 76 65 20 74 | 68 65 20 23 21 20 2f 62 | above t|he #! /b|
|00000310| 69 6e 2f 73 68 20 6c 69 | 6e 65 2e 0a 23 20 32 2e |in/sh li|ne..# 2.|
|00000320| 20 53 61 76 65 20 74 68 | 65 20 72 65 73 75 6c 74 | Save th|e result|
|00000330| 69 6e 67 20 74 65 78 74 | 20 69 6e 20 61 20 66 69 |ing text| in a fi|
|00000340| 6c 65 2e 0a 23 20 33 2e | 20 45 78 65 63 75 74 65 |le..# 3.| Execute|
|00000350| 20 74 68 65 20 66 69 6c | 65 20 77 69 74 68 20 2f | the fil|e with /|
|00000360| 62 69 6e 2f 73 68 20 28 | 6e 6f 74 20 63 73 68 29 |bin/sh (|not csh)|
|00000370| 20 74 6f 20 63 72 65 61 | 74 65 3a 0a 23 09 52 45 | to crea|te:.#.RE|
|00000380| 41 44 4d 45 0a 23 09 6d | 6e 2e 63 0a 23 09 6d 6e |ADME.#.m|n.c.#.mn|
|00000390| 2e 31 0a 23 09 4d 61 6b | 65 66 69 6c 65 0a 23 20 |.1.#.Mak|efile.# |
|000003a0| 54 68 69 73 20 61 72 63 | 68 69 76 65 20 63 72 65 |This arc|hive cre|
|000003b0| 61 74 65 64 3a 20 4d 6f | 6e 20 4a 75 6c 20 32 33 |ated: Mo|n Jul 23|
|000003c0| 20 32 32 3a 35 38 3a 35 | 32 20 31 39 39 30 0a 65 | 22:58:5|2 1990.e|
|000003d0| 78 70 6f 72 74 20 50 41 | 54 48 3b 20 50 41 54 48 |xport PA|TH; PATH|
|000003e0| 3d 2f 62 69 6e 3a 2f 75 | 73 72 2f 62 69 6e 3a 24 |=/bin:/u|sr/bin:$|
|000003f0| 50 41 54 48 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |PATH.ech|o shar: |
|00000400| 22 65 78 74 72 61 63 74 | 69 6e 67 20 27 52 45 41 |"extract|ing 'REA|
|00000410| 44 4d 45 27 22 20 27 28 | 39 32 35 20 63 68 61 72 |DME'" '(|925 char|
|00000420| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00000430| 20 2d 66 20 27 52 45 41 | 44 4d 45 27 0a 74 68 65 | -f 'REA|DME'.the|
|00000440| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 22 77 |n..echo |shar: "w|
|00000450| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|00000460| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00000470| 20 27 52 45 41 44 4d 45 | 27 22 0a 65 6c 73 65 0a | 'README|'".else.|
|00000480| 73 65 64 20 27 73 2f 5e | 58 2f 2f 27 20 3c 3c 20 |sed 's/^|X//' << |
|00000490| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 52 45 41 |\SHAR_EO|F > 'REA|
|000004a0| 44 4d 45 27 0a 58 4d 6e | 20 72 65 61 64 73 20 61 |DME'.XMn| reads a|
|000004b0| 6e 64 20 73 75 6d 6d 61 | 72 69 7a 65 73 2c 20 66 |nd summa|rizes, f|
|000004c0| 6f 72 6d 61 74 73 2c 20 | 6f 72 20 74 61 6c 6c 69 |ormats, |or talli|
|000004d0| 65 73 20 61 20 28 42 65 | 72 6b 65 6c 65 79 2d 73 |es a (Be|rkeley-s|
|000004e0| 74 79 6c 65 3f 29 0a 58 | 6d 61 69 6c 62 6f 78 2e |tyle?).X|mailbox.|
|000004f0| 20 49 74 20 69 73 20 75 | 73 65 66 75 6c 20 62 6f | It is u|seful bo|
|00000500| 74 68 20 69 6e 20 2e 6c | 6f 67 69 6e 73 20 61 6e |th in .l|ogins an|
|00000510| 64 20 61 73 20 61 20 74 | 61 72 67 65 74 20 6f 66 |d as a t|arget of|
|00000520| 20 72 73 68 2e 20 53 6f | 6d 65 0a 58 6f 75 74 70 | rsh. So|me.Xoutp|
|00000530| 75 74 20 66 6f 72 6d 61 | 74 73 20 61 72 65 20 61 |ut forma|ts are a|
|00000540| 6c 73 6f 20 6d 61 63 68 | 69 6e 65 2d 70 61 72 73 |lso mach|ine-pars|
|00000550| 61 62 6c 65 2c 20 61 6e | 64 20 63 6f 75 6c 64 20 |able, an|d could |
|00000560| 62 65 20 75 73 65 64 20 | 69 6e 0a 58 73 68 65 6c |be used |in.Xshel|
|00000570| 6c 20 73 63 72 69 70 74 | 73 20 6f 72 20 74 68 65 |l script|s or the|
|00000580| 20 6c 69 6b 65 2e 20 53 | 65 65 20 74 68 65 20 6d | like. S|ee the m|
|00000590| 61 6e 20 70 61 67 65 20 | 66 6f 72 20 64 65 74 61 |an page |for deta|
|000005a0| 69 6c 73 2e 0a 58 0a 58 | 4d 6e 20 72 65 71 75 69 |ils..X.X|Mn requi|
|000005b0| 72 65 73 20 6e 6f 20 63 | 6f 6e 66 69 67 75 72 61 |res no c|onfigura|
|000005c0| 74 69 6f 6e 20 73 77 69 | 74 63 68 65 73 2e 20 50 |tion swi|tches. P|
|000005d0| 72 6f 62 61 62 6c 79 20 | 74 68 65 20 6f 6e 6c 79 |robably |the only|
|000005e0| 20 6c 65 73 73 2d 74 68 | 61 6e 2d 70 6f 72 74 61 | less-th|an-porta|
|000005f0| 62 6c 65 0a 58 63 6f 6e | 73 74 72 75 63 74 73 20 |ble.Xcon|structs |
|00000600| 61 72 65 20 74 68 65 20 | 75 73 65 20 6f 66 20 3c |are the |use of <|
|00000610| 73 79 73 2f 69 6f 63 74 | 6c 2e 68 3e 20 61 6e 64 |sys/ioct|l.h> and|
|00000620| 20 74 68 65 20 54 49 4f | 43 47 57 49 4e 53 5a 20 | the TIO|CGWINSZ |
|00000630| 69 6f 63 74 6c 20 74 6f | 0a 58 66 69 6e 64 20 74 |ioctl to|.Xfind t|
|00000640| 68 65 20 77 69 64 74 68 | 20 6f 66 20 74 68 65 20 |he width| of the |
|00000650| 63 75 72 72 65 6e 74 20 | 74 65 72 6d 69 6e 61 6c |current |terminal|
|00000660| 2c 20 61 6e 64 20 61 20 | 66 65 77 20 61 73 73 75 |, and a |few assu|
|00000670| 6d 70 74 69 6f 6e 73 20 | 61 62 6f 75 74 20 74 68 |mptions |about th|
|00000680| 65 0a 58 6f 72 64 65 72 | 20 6f 66 20 68 65 61 64 |e.Xorder| of head|
|00000690| 65 72 20 6c 69 6e 65 73 | 20 69 6e 20 74 68 65 20 |er lines| in the |
|000006a0| 6d 61 69 6c 62 6f 78 20 | 66 69 6c 65 2e 20 4d 6e |mailbox |file. Mn|
|000006b0| 20 68 61 73 20 62 65 65 | 6e 20 63 6f 6d 70 69 6c | has bee|n compil|
|000006c0| 65 64 20 61 6e 64 20 74 | 65 73 74 65 64 0a 58 6f |ed and t|ested.Xo|
|000006d0| 6e 20 61 20 56 61 78 20 | 72 75 6e 6e 69 6e 67 20 |n a Vax |running |
|000006e0| 34 2e 33 42 53 44 2c 20 | 61 20 53 65 71 75 65 6e |4.3BSD, |a Sequen|
|000006f0| 74 20 53 79 6d 6d 65 74 | 72 79 20 75 6e 64 65 72 |t Symmet|ry under|
|00000700| 20 44 59 4e 49 58 2c 20 | 61 20 56 61 78 20 75 6e | DYNIX, |a Vax un|
|00000710| 64 65 72 0a 58 55 6c 74 | 72 69 78 20 61 6e 64 20 |der.XUlt|rix and |
|00000720| 61 6e 20 49 42 4d 20 72 | 75 6e 6e 69 6e 67 20 41 |an IBM r|unning A|
|00000730| 49 58 2c 20 61 6c 74 68 | 6f 75 67 68 20 74 65 73 |IX, alth|ough tes|
|00000740| 74 69 6e 67 20 75 6e 64 | 65 72 20 74 68 65 20 6c |ting und|er the l|
|00000750| 61 74 74 65 72 20 74 77 | 6f 20 0a 58 77 61 73 20 |atter tw|o .Xwas |
|00000760| 6d 69 6e 69 6d 61 6c 20 | 3d 38 29 20 0a 58 20 0a |minimal |=8) .X .|
|00000770| 58 20 20 54 6f 20 63 6f | 6d 70 69 6c 65 2c 20 73 |X To co|mpile, s|
|00000780| 69 6d 70 6c 79 20 74 79 | 70 65 20 60 6d 61 6b 65 |imply ty|pe `make|
|00000790| 20 61 6c 6c 27 20 77 68 | 69 63 68 20 77 69 6c 6c | all' wh|ich will|
|000007a0| 20 70 72 6f 64 75 63 65 | 20 6d 6e 20 28 74 68 65 | produce| mn (the|
|000007b0| 20 65 78 65 63 75 74 65 | 61 62 6c 65 29 0a 58 61 | execute|able).Xa|
|000007c0| 6e 64 20 6d 6e 2e 6d 61 | 6e 20 28 74 68 65 20 6e |nd mn.ma|n (the n|
|000007d0| 72 6f 66 66 27 64 20 6d | 61 6e 20 66 69 6c 65 29 |roff'd m|an file)|
|000007e0| 2e 0a 58 0a 58 20 20 50 | 6c 65 61 73 65 20 73 65 |..X.X P|lease se|
|000007f0| 6e 64 20 62 75 67 20 72 | 65 70 6f 72 74 73 2c 20 |nd bug r|eports, |
|00000800| 66 69 78 65 73 2c 20 63 | 6f 6d 6d 65 6e 74 73 2c |fixes, c|omments,|
|00000810| 20 63 6f 6d 70 6c 61 69 | 6e 74 73 20 61 62 6f 75 | complai|nts abou|
|00000820| 74 20 62 61 6e 64 77 69 | 64 74 68 2c 20 65 74 63 |t bandwi|dth, etc|
|00000830| 2e 0a 58 74 6f 20 77 69 | 6d 6c 40 6d 69 6c 74 6f |..Xto wi|ml@milto|
|00000840| 6e 2e 75 2e 77 61 73 68 | 69 6e 67 74 6f 6e 2e 65 |n.u.wash|ington.e|
|00000850| 64 75 2e 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 |du..SHAR|_EOF.if |
|00000860| 74 65 73 74 20 39 32 35 | 20 2d 6e 65 20 22 60 77 |test 925| -ne "`w|
|00000870| 63 20 2d 63 20 3c 20 27 | 52 45 41 44 4d 45 27 60 |c -c < '|README'`|
|00000880| 22 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |".then..|echo sha|
|00000890| 72 3a 20 22 65 72 72 6f | 72 20 74 72 61 6e 73 6d |r: "erro|r transm|
|000008a0| 69 74 74 69 6e 67 20 27 | 52 45 41 44 4d 45 27 22 |itting '|README'"|
|000008b0| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|000008c0| 65 65 6e 20 39 32 35 20 | 63 68 61 72 61 63 74 65 |een 925 |characte|
|000008d0| 72 73 29 27 0a 66 69 0a | 66 69 0a 65 63 68 6f 20 |rs)'.fi.|fi.echo |
|000008e0| 73 68 61 72 3a 20 22 65 | 78 74 72 61 63 74 69 6e |shar: "e|xtractin|
|000008f0| 67 20 27 6d 6e 2e 63 27 | 22 20 27 28 31 31 37 30 |g 'mn.c'|" '(1170|
|00000900| 31 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 69 |1 charac|ters)'.i|
|00000910| 66 20 74 65 73 74 20 2d | 66 20 27 6d 6e 2e 63 27 |f test -|f 'mn.c'|
|00000920| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00000930| 3a 20 22 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |: "will |not over|
|00000940| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00000950| 66 69 6c 65 20 27 6d 6e | 2e 63 27 22 0a 65 6c 73 |file 'mn|.c'".els|
|00000960| 65 0a 73 65 64 20 27 73 | 2f 5e 58 2f 2f 27 20 3c |e.sed 's|/^X//' <|
|00000970| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 6d |< \SHAR_|EOF > 'm|
|00000980| 6e 2e 63 27 0a 58 2f 2a | 20 20 20 6d 61 79 6e 6f |n.c'.X/*| mayno|
|00000990| 74 20 2d 2d 20 6d 61 69 | 6c 20 6e 6f 74 69 66 69 |t -- mai|l notifi|
|000009a0| 63 61 74 69 6f 6e 20 70 | 72 6f 67 72 61 6d 20 2a |cation p|rogram *|
|000009b0| 2f 0a 58 2f 2a 0a 58 20 | 20 20 20 6d 6e 20 2d 2d |/.X/*.X | mn --|
|000009c0| 20 73 65 65 20 6d 61 6e | 20 70 61 67 65 2e 20 57 | see man| page. W|
|000009d0| 72 69 74 74 65 6e 20 62 | 79 20 57 69 6d 20 4c 65 |ritten b|y Wim Le|
|000009e0| 77 69 73 20 63 2e 20 4d | 61 79 20 31 39 39 30 2e |wis c. M|ay 1990.|
|000009f0| 20 0a 58 20 20 20 20 52 | 65 61 64 73 20 61 20 28 | .X R|eads a (|
|00000a00| 62 65 72 6b 65 6c 65 79 | 2d 73 74 79 6c 65 29 20 |berkeley|-style) |
|00000a10| 6d 61 69 6c 62 6f 78 20 | 61 6e 64 20 70 72 6f 64 |mailbox |and prod|
|00000a20| 75 63 65 73 20 76 61 72 | 69 6f 75 73 20 66 6f 72 |uces var|ious for|
|00000a30| 6d 73 0a 58 6f 66 20 6f | 75 74 70 75 74 2c 20 6d |ms.Xof o|utput, m|
|00000a40| 61 69 6e 6c 79 20 66 6f | 72 20 68 75 6d 61 6e 20 |ainly fo|r human |
|00000a50| 63 6f 6e 73 75 6d 70 74 | 69 6f 6e 2e 0a 58 0a 58 |consumpt|ion..X.X|
|00000a60| 2a 2f 0a 58 2f 2a 0a 58 | 20 20 20 20 6f 70 74 69 |*/.X/*.X| opti|
|00000a70| 6f 6e 73 3a 0a 58 0a 58 | 20 20 20 20 2d 66 20 20 |ons:.X.X| -f |
|00000a80| 20 46 6f 72 6d 61 74 74 | 69 6e 67 20 6f 70 74 69 | Formatt|ing opti|
|00000a90| 6f 6e 2e 20 46 6f 72 6d | 61 74 73 20 61 76 61 69 |on. Form|ats avai|
|00000aa0| 6c 61 62 6c 65 3a 0a 58 | 20 20 20 20 2d 6e 20 20 |lable:.X| -n |
|00000ab0| 20 4e 6f 74 69 66 79 20 | 6f 70 74 69 6f 6e 2e 20 | Notify |option. |
|00000ac0| 50 72 69 6e 74 73 20 22 | 59 6f 75 20 68 61 76 65 |Prints "|You have|
|00000ad0| 20 6d 61 69 6c 22 2c 20 | 22 59 6f 75 20 68 61 76 | mail", |"You hav|
|00000ae0| 65 20 6e 65 77 20 6d 61 | 69 6c 22 2c 0a 58 20 20 |e new ma|il",.X |
|00000af0| 20 20 20 20 20 20 20 20 | 22 59 6f 75 20 68 61 76 | |"You hav|
|00000b00| 65 20 75 6e 72 65 61 64 | 20 6d 61 69 6c 22 20 6f |e unread| mail" o|
|00000b10| 72 20 22 59 6f 75 20 68 | 61 76 65 20 6d 61 69 6c |r "You h|ave mail|
|00000b20| 22 20 69 6e 73 74 65 61 | 64 20 6f 66 20 6f 74 68 |" instea|d of oth|
|00000b30| 65 72 20 6f 75 74 70 75 | 74 2e 0a 58 20 20 20 20 |er outpu|t..X |
|00000b40| 2d 4e 20 20 20 2d 6e 20 | 74 6f 20 73 74 64 65 72 |-N -n |to stder|
|00000b50| 72 2c 20 61 66 74 65 72 | 20 6e 6f 72 6d 61 6c 20 |r, after| normal |
|00000b60| 6f 75 74 70 75 74 2e 0a | 58 20 20 20 20 2d 74 2c |output..|X -t,|
|00000b70| 54 20 56 65 72 62 6f 73 | 65 20 76 65 72 69 6f 6e |T Verbos|e verion|
|00000b80| 20 6f 66 20 2d 6e 2e 20 | 50 72 69 6e 74 20 6e 75 | of -n. |Print nu|
|00000b90| 6d 62 65 72 20 6f 66 20 | 6d 65 73 73 61 67 65 73 |mber of |messages|
|00000ba0| 20 69 6e 20 65 61 63 68 | 20 63 61 74 65 67 6f 72 | in each| categor|
|00000bb0| 79 2e 0a 58 20 20 20 20 | 2d 68 20 20 20 53 75 70 |y..X |-h Sup|
|00000bc0| 70 72 65 73 73 20 68 65 | 61 64 65 72 20 26 20 74 |press he|ader & t|
|00000bd0| 72 61 69 6c 65 72 20 6c | 69 6e 65 73 2e 0a 58 20 |railer l|ines..X |
|00000be0| 20 20 20 2d 77 20 20 20 | 44 65 63 72 65 6d 65 6e | -w |Decremen|
|00000bf0| 74 20 6c 69 6e 65 20 77 | 69 64 74 68 2e 0a 58 20 |t line w|idth..X |
|00000c00| 20 20 20 2d 69 78 20 20 | 49 6e 63 6c 75 64 65 20 | -ix |Include |
|00000c10| 6d 65 73 73 61 67 65 73 | 20 77 69 74 68 20 73 74 |messages| with st|
|00000c20| 61 74 75 73 20 6c 65 74 | 74 65 72 73 20 60 78 27 |atus let|ters `x'|
|00000c30| 2e 0a 58 20 20 20 20 2d | 65 78 20 20 45 78 63 6c |..X -|ex Excl|
|00000c40| 75 64 65 20 6d 65 73 73 | 61 67 65 73 20 77 69 74 |ude mess|ages wit|
|00000c50| 68 20 73 74 61 74 75 73 | 20 6c 65 74 74 65 72 73 |h status| letters|
|00000c60| 20 60 78 27 2e 0a 58 0a | 58 20 20 20 20 20 74 68 | `x'..X.|X th|
|00000c70| 69 73 20 63 6f 6d 6d 65 | 6e 74 20 69 73 20 70 72 |is comme|nt is pr|
|00000c80| 6f 62 61 62 6c 79 20 6f | 75 74 64 61 74 65 64 20 |obably o|utdated |
|00000c90| 20 20 20 0a 58 2a 2f 0a | 58 2f 2a 0a 58 20 20 20 | .X*/.|X/*.X |
|00000ca0| 20 54 68 69 73 20 70 72 | 6f 67 72 61 6d 20 6d 61 | This pr|ogram ma|
|00000cb0| 79 20 62 65 20 66 72 65 | 65 6c 79 20 64 69 73 74 |y be fre|ely dist|
|00000cc0| 72 69 62 75 74 65 64 2c | 20 6d 6f 64 69 66 69 65 |ributed,| modifie|
|00000cd0| 64 2c 20 68 61 63 6b 65 | 64 2c 20 77 61 72 70 65 |d, hacke|d, warpe|
|00000ce0| 64 2c 20 0a 58 69 67 6e | 6f 72 65 64 2c 20 65 74 |d, .Xign|ored, et|
|00000cf0| 63 2e 2c 20 61 73 20 6c | 6f 6e 67 20 61 73 20 74 |c., as l|ong as t|
|00000d00| 68 65 20 61 75 74 68 6f | 72 27 73 20 6e 61 6d 65 |he autho|r's name|
|00000d10| 20 61 6e 64 20 74 68 69 | 73 20 6e 6f 74 69 63 65 | and thi|s notice|
|00000d20| 20 61 72 65 20 6b 65 70 | 74 0a 58 69 6e 74 61 63 | are kep|t.Xintac|
|00000d30| 74 20 69 6e 20 74 68 65 | 20 73 6f 75 72 63 65 2c |t in the| source,|
|00000d40| 20 61 6e 64 20 61 73 20 | 6c 6f 6e 67 20 61 73 20 | and as |long as |
|00000d50| 72 65 63 69 70 69 65 6e | 74 73 20 61 72 65 20 66 |recipien|ts are f|
|00000d60| 72 65 65 20 74 6f 20 64 | 6f 20 6c 69 6b 65 77 69 |ree to d|o likewi|
|00000d70| 73 65 0a 58 2a 2f 0a 58 | 0a 58 2f 2a 20 70 61 74 |se.X*/.X|.X/* pat|
|00000d80| 68 20 66 6f 72 20 6c 61 | 73 74 2d 64 69 74 63 68 |h for la|st-ditch|
|00000d90| 20 61 74 74 65 6d 70 74 | 20 74 6f 20 66 69 6e 64 | attempt| to find|
|00000da0| 20 6d 61 69 6c 62 6f 78 | 20 20 2a 2f 0a 58 2f 2a | mailbox| */.X/*|
|00000db0| 20 63 75 73 74 6f 6d 69 | 7a 65 20 69 66 20 6e 65 | customi|ze if ne|
|00000dc0| 63 65 73 73 61 72 79 20 | 2a 2f 0a 58 23 64 65 66 |cessary |*/.X#def|
|00000dd0| 69 6e 65 20 4d 41 49 4c | 42 4f 58 50 41 54 48 46 |ine MAIL|BOXPATHF|
|00000de0| 4f 52 4d 20 22 2f 75 73 | 72 2f 73 70 6f 6f 6c 2f |ORM "/us|r/spool/|
|00000df0| 6d 61 69 6c 2f 25 73 22 | 20 0a 58 0a 58 23 69 6e |mail/%s"| .X.X#in|
|00000e00| 63 6c 75 64 65 3c 73 74 | 64 69 6f 2e 68 3e 0a 58 |clude<st|dio.h>.X|
|00000e10| 23 69 6e 63 6c 75 64 65 | 3c 63 74 79 70 65 2e 68 |#include|<ctype.h|
|00000e20| 3e 0a 58 23 69 6e 63 6c | 75 64 65 3c 73 79 73 2f |>.X#incl|ude<sys/|
|00000e30| 69 6f 63 74 6c 2e 68 3e | 20 20 2f 2a 20 66 6f 72 |ioctl.h>| /* for|
|00000e40| 20 67 65 74 2d 6c 69 6e | 65 2d 6c 65 6e 67 74 68 | get-lin|e-length|
|00000e50| 20 63 61 6c 6c 20 2a 2f | 0a 58 65 78 74 65 72 6e | call */|.Xextern|
|00000e60| 20 63 68 61 72 20 2a 67 | 65 74 65 6e 76 28 29 2c | char *g|etenv(),|
|00000e70| 20 2a 73 74 72 63 70 79 | 28 29 3b 0a 58 0a 58 23 | *strcpy|();.X.X#|
|00000e80| 64 65 66 69 6e 65 20 53 | 55 42 4f 46 46 20 20 38 |define S|UBOFF 8|
|00000e90| 20 2f 2a 20 6c 65 6e 67 | 74 68 20 6f 66 20 73 74 | /* leng|th of st|
|00000ea0| 72 69 6e 67 20 60 53 75 | 62 6a 65 63 74 3a 27 20 |ring `Su|bject:' |
|00000eb0| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 20 46 52 4f 4d |*/.X#def|ine FROM|
|00000ec0| 4f 46 46 20 35 20 2f 2a | 20 6c 65 6e 67 74 68 20 |OFF 5 /*| length |
|00000ed0| 6f 66 20 73 74 72 69 6e | 67 20 60 46 72 6f 6d 20 |of strin|g `From |
|00000ee0| 27 20 20 20 20 2a 2f 0a | 58 23 64 65 66 69 6e 65 |' */.|X#define|
|00000ef0| 20 53 54 41 54 4f 46 46 | 20 38 20 2f 2a 20 6c 65 | STATOFF| 8 /* le|
|00000f00| 6e 67 74 68 20 6f 66 20 | 73 74 72 69 6e 67 20 60 |ngth of |string `|
|00000f10| 53 74 61 74 75 73 3a 20 | 27 20 2a 2f 0a 58 0a 58 |Status: |' */.X.X|
|00000f20| 2f 2a 20 6f 75 74 70 75 | 74 20 73 74 79 6c 65 73 |/* outpu|t styles|
|00000f30| 20 2a 2f 0a 58 23 64 65 | 66 69 6e 65 20 4f 46 52 | */.X#de|fine OFR|
|00000f40| 4f 4d 20 30 20 20 20 20 | 20 20 2f 2a 20 6f 6c 64 |OM 0 | /* old|
|00000f50| 20 22 66 72 6f 6d 22 28 | 31 29 2d 73 74 79 6c 65 | "from"(|1)-style|
|00000f60| 20 6f 75 74 70 75 74 20 | 2a 2f 0a 58 23 64 65 66 | output |*/.X#def|
|00000f70| 69 6e 65 20 4e 46 52 4f | 4d 20 31 20 20 20 20 20 |ine NFRO|M 1 |
|00000f80| 20 2f 2a 20 22 6e 66 72 | 6f 6d 22 2d 73 74 79 6c | /* "nfr|om"-styl|
|00000f90| 65 20 6f 75 74 70 75 74 | 20 2a 2f 0a 58 23 64 65 |e output| */.X#de|
|00000fa0| 66 69 6e 65 20 53 49 4d | 50 4c 45 20 32 20 20 20 |fine SIM|PLE 2 |
|00000fb0| 20 20 2f 2a 20 73 69 6d | 70 6c 65 20 6f 75 74 70 | /* sim|ple outp|
|00000fc0| 75 74 2c 20 6f 72 69 67 | 69 6e 61 6c 6c 79 20 61 |ut, orig|inally a|
|00000fd0| 20 64 65 62 75 67 20 6d | 6f 64 65 20 2a 2f 0a 58 | debug m|ode */.X|
|00000fe0| 23 64 65 66 69 6e 65 20 | 41 44 44 52 4f 4e 4c 59 |#define |ADDRONLY|
|00000ff0| 20 33 20 20 20 2f 2a 20 | 61 64 64 72 65 73 73 2d | 3 /* |address-|
|00001000| 6f 6e 6c 79 20 66 6f 72 | 6d 61 74 20 2a 2f 0a 58 |only for|mat */.X|
|00001010| 23 64 65 66 69 6e 65 20 | 51 55 49 45 54 20 34 20 |#define |QUIET 4 |
|00001020| 20 20 20 20 20 2f 2a 20 | 6e 6f 20 6f 75 74 70 75 | /* |no outpu|
|00001030| 74 2c 20 66 6f 72 20 2d | 74 2c 20 2d 6e 20 73 77 |t, for -|t, -n sw|
|00001040| 69 74 63 68 65 73 20 2a | 2f 0a 58 23 64 65 66 69 |itches *|/.X#defi|
|00001050| 6e 65 20 4e 46 52 4f 4d | 5f 53 20 35 20 20 20 20 |ne NFROM|_S 5 |
|00001060| 2f 2a 20 6c 69 6b 65 20 | 4e 46 52 4f 4d 20 62 75 |/* like |NFROM bu|
|00001070| 74 20 77 69 74 68 6f 75 | 74 20 63 6f 6e 74 69 6e |t withou|t contin|
|00001080| 75 61 74 69 6f 6e 20 2a | 2f 0a 58 0a 58 23 64 65 |uation *|/.X.X#de|
|00001090| 66 69 6e 65 20 4c 49 4e | 4c 45 4e 20 32 35 30 20 |fine LIN|LEN 250 |
|000010a0| 20 2f 2a 20 69 6e 70 75 | 74 20 6c 69 6e 65 20 62 | /* inpu|t line b|
|000010b0| 75 66 66 65 72 20 73 69 | 7a 65 20 2a 2f 0a 58 0a |uffer si|ze */.X.|
|000010c0| 58 23 64 65 66 69 6e 65 | 20 4d 41 58 4e 43 4f 4e |X#define| MAXNCON|
|000010d0| 44 20 31 30 20 2f 2a 20 | 6d 61 78 20 23 20 63 6f |D 10 /* |max # co|
|000010e0| 6e 64 69 74 69 6f 6e 61 | 6c 20 70 68 72 61 73 65 |nditiona|l phrase|
|000010f0| 73 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 4d 41 |s */.X#d|efine MA|
|00001100| 58 43 4f 4e 44 4c 20 35 | 20 20 2f 2a 20 6d 61 78 |XCONDL 5| /* max|
|00001110| 20 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 20 6c 65 6e | conditi|onal len|
|00001120| 67 74 68 20 2a 2f 0a 58 | 0a 58 23 64 65 66 69 6e |gth */.X|.X#defin|
|00001130| 65 20 44 45 46 41 55 4c | 54 5f 4f 57 49 44 54 48 |e DEFAUL|T_OWIDTH|
|00001140| 20 38 30 20 20 2f 2a 20 | 61 73 73 75 6d 65 64 20 | 80 /* |assumed |
|00001150| 6f 75 74 70 75 74 20 73 | 63 72 65 65 6e 20 77 69 |output s|creen wi|
|00001160| 64 74 68 20 2a 2f 0a 58 | 0a 58 65 78 74 65 72 6e |dth */.X|.Xextern|
|00001170| 20 63 68 61 72 20 2a 69 | 6e 64 65 78 28 29 2c 20 | char *i|ndex(), |
|00001180| 2a 72 69 6e 64 65 78 28 | 29 2c 20 2a 6d 61 6c 6c |*rindex(|), *mall|
|00001190| 6f 63 28 29 3b 20 20 20 | 2f 2a 20 6d 69 6e 69 6d |oc(); |/* minim|
|000011a0| 61 6c 20 68 65 61 64 65 | 72 20 66 69 6c 65 73 3f |al heade|r files?|
|000011b0| 20 2a 2f 0a 58 63 68 61 | 72 20 2a 64 79 6e 61 6d | */.Xcha|r *dynam|
|000011c0| 69 63 69 7a 65 28 29 3b | 0a 58 0a 58 6d 61 69 6e |icize();|.X.Xmain|
|000011d0| 28 61 72 67 63 2c 20 61 | 72 67 76 29 20 20 69 6e |(argc, a|rgv) in|
|000011e0| 74 20 61 72 67 63 3b 20 | 63 68 61 72 20 2a 2a 61 |t argc; |char **a|
|000011f0| 72 67 76 3b 0a 58 7b 69 | 6e 74 20 73 74 61 74 65 |rgv;.X{i|nt state|
|00001200| 3b 20 20 20 20 20 20 20 | 20 20 2f 2a 20 30 20 3d |; | /* 0 =|
|00001210| 20 77 61 69 74 69 6e 67 | 20 66 6f 72 20 27 66 72 | waiting| for 'fr|
|00001220| 6f 6d 27 2c 20 31 3d 69 | 6e 20 68 65 61 64 65 72 |om', 1=i|n header|
|00001230| 2c 20 32 3d 69 6e 20 62 | 6f 64 79 20 2a 2f 0a 58 |, 2=in b|ody */.X|
|00001240| 20 63 68 61 72 20 62 75 | 66 5b 4c 49 4e 4c 45 4e | char bu|f[LINLEN|
|00001250| 5d 3b 20 20 2f 2a 20 68 | 6f 6c 64 73 20 6c 69 6e |]; /* h|olds lin|
|00001260| 65 73 20 72 65 61 64 20 | 66 72 6f 6d 20 6d 61 69 |es read |from mai|
|00001270| 6c 62 6f 78 20 2a 2f 0a | 58 20 63 68 61 72 20 2a |lbox */.|X char *|
|00001280| 66 72 6f 6d 2c 20 2a 73 | 75 62 3b 20 20 2f 2a 20 |from, *s|ub; /* |
|00001290| 68 6f 6c 64 73 20 61 64 | 64 72 2c 20 73 75 62 6a |holds ad|dr, subj|
|000012a0| 20 6f 66 20 63 75 72 72 | 65 6e 74 20 61 72 74 69 | of curr|ent arti|
|000012b0| 63 6c 65 20 2a 2f 0a 58 | 20 46 49 4c 45 20 2a 6e |cle */.X| FILE *n|
|000012c0| 70 20 3d 20 73 74 64 65 | 72 72 3b 20 2f 2a 20 73 |p = stde|rr; /* s|
|000012d0| 74 72 65 61 6d 20 74 6f | 20 70 6c 61 63 65 20 74 |tream to| place t|
|000012e0| 61 6c 6c 79 20 6f 6e 20 | 2a 2f 0a 58 20 46 49 4c |ally on |*/.X FIL|
|000012f0| 45 20 2a 69 6e 70 20 3d | 20 4e 55 4c 4c 3b 20 20 |E *inp =| NULL; |
|00001300| 2f 2a 20 73 74 72 65 61 | 6d 20 74 6f 20 69 6e 70 |/* strea|m to inp|
|00001310| 75 74 20 66 72 6f 6d 20 | 2a 2f 0a 58 20 69 6e 74 |ut from |*/.X int|
|00001320| 20 6e 6f 68 65 61 64 65 | 72 20 3d 20 30 3b 20 20 | noheade|r = 0; |
|00001330| 2f 2a 20 77 68 65 74 68 | 65 72 20 74 6f 20 70 72 |/* wheth|er to pr|
|00001340| 69 6e 74 20 64 65 63 6f | 72 61 74 69 76 65 20 68 |int deco|rative h|
|00001350| 65 61 64 65 72 73 20 69 | 66 20 61 70 70 72 6f 70 |eaders i|f approp|
|00001360| 72 69 61 74 65 2a 2f 0a | 58 20 69 6e 74 20 73 74 |riate*/.|X int st|
|00001370| 79 6c 65 20 3d 20 4e 46 | 52 4f 4d 3b 20 2f 2a 20 |yle = NF|ROM; /* |
|00001380| 6f 75 74 70 75 74 20 73 | 74 79 6c 65 20 2a 2f 0a |output s|tyle */.|
|00001390| 58 20 69 6e 74 20 6e 6f | 74 69 66 79 20 3d 20 30 |X int no|tify = 0|
|000013a0| 3b 20 20 20 20 2f 2a 20 | 77 68 65 74 68 65 72 20 |; /* |whether |
|000013b0| 74 6f 20 6e 6f 74 69 66 | 79 20 72 65 61 64 2f 75 |to notif|y read/u|
|000013c0| 6e 72 65 61 64 2f 6e 65 | 77 20 6d 61 69 6c 20 2a |nread/ne|w mail *|
|000013d0| 2f 0a 58 20 69 6e 74 20 | 73 74 61 66 6c 20 3d 20 |/.X int |stafl = |
|000013e0| 30 3b 20 20 20 20 20 2f | 2a 20 66 6c 61 67 73 20 |0; /|* flags |
|000013f0| 22 71 75 69 65 74 22 28 | 53 74 61 74 75 73 3a 6c |"quiet"(|Status:l|
|00001400| 65 73 73 29 20 74 72 61 | 6e 73 2e 20 66 72 6f 6d |ess) tra|ns. from|
|00001410| 20 68 65 61 64 65 72 20 | 74 6f 20 62 6f 64 79 20 | header |to body |
|00001420| 2a 2f 0a 58 20 69 6e 74 | 20 75 6e 72 65 61 64 3d |*/.X int| unread=|
|00001430| 30 2c 20 6e 65 77 6d 61 | 69 6c 3d 30 3b 20 20 2f |0, newma|il=0; /|
|00001440| 2a 20 63 6f 75 6e 74 65 | 72 73 20 66 6f 72 20 6e |* counte|rs for n|
|00001450| 6f 74 69 66 79 20 6d 6f | 64 65 20 2a 2f 0a 58 20 |otify mo|de */.X |
|00001460| 69 6e 74 20 6e 75 6d 6d | 73 67 73 3d 30 3b 20 20 |int numm|sgs=0; |
|00001470| 20 20 20 2f 2a 20 6e 75 | 6d 62 65 72 20 6f 66 20 | /* nu|mber of |
|00001480| 6d 65 73 73 61 67 65 73 | 20 2a 2f 0a 58 20 63 68 |messages| */.X ch|
|00001490| 61 72 20 63 6f 6e 64 5b | 4d 41 58 4e 43 4f 4e 44 |ar cond[|MAXNCOND|
|000014a0| 5d 5b 4d 41 58 43 4f 4e | 44 4c 5d 3b 20 20 2f 2a |][MAXCON|DL]; /*|
|000014b0| 20 63 6f 6e 64 69 74 69 | 6f 6e 61 6c 20 65 78 70 | conditi|onal exp|
|000014c0| 72 65 73 73 69 6f 6e 73 | 20 2a 2f 0a 58 20 69 6e |ressions| */.X in|
|000014d0| 74 20 6e 75 6d 63 6f 6e | 64 73 20 3d 20 30 3b 20 |t numcon|ds = 0; |
|000014e0| 20 2f 2a 20 6e 75 6d 62 | 65 72 20 6f 66 20 63 6f | /* numb|er of co|
|000014f0| 6e 64 69 74 69 6f 6e 61 | 6c 20 70 68 72 61 73 65 |nditiona|l phrase|
|00001500| 73 20 2a 2f 0a 58 20 69 | 6e 74 20 6f 77 69 64 74 |s */.X i|nt owidt|
|00001510| 68 3b 20 20 20 20 20 20 | 20 20 2f 2a 20 77 69 64 |h; | /* wid|
|00001520| 74 68 20 6f 66 20 6f 75 | 74 70 75 74 20 64 65 76 |th of ou|tput dev|
|00001530| 69 63 65 20 2a 2f 0a 58 | 20 69 6e 74 20 72 65 6d |ice */.X| int rem|
|00001540| 61 69 6e 73 20 3d 20 30 | 3b 20 20 20 2f 2a 20 72 |ains = 0|; /* r|
|00001550| 65 6d 61 69 6e 69 6e 67 | 20 6c 65 6e 67 74 68 20 |emaining| length |
|00001560| 6f 6e 20 61 6e 20 4e 46 | 52 4f 4d 20 73 75 6d 6d |on an NF|ROM summ|
|00001570| 61 72 79 20 6c 69 6e 65 | 20 2a 2f 0a 58 20 69 6e |ary line| */.X in|
|00001580| 74 20 69 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |t i; | |
|00001590| 20 2f 2a 20 6d 69 73 63 | 65 6c 6c 61 6e 65 6f 75 | /* misc|ellaneou|
|000015a0| 73 20 69 6e 64 65 78 20 | 76 61 72 69 61 62 6c 65 |s index |variable|
|000015b0| 20 2a 2f 0a 58 0a 58 0a | 58 20 2f 2a 20 66 69 72 | */.X.X.|X /* fir|
|000015c0| 73 74 20 67 65 74 20 74 | 68 65 20 74 74 79 20 6c |st get t|he tty l|
|000015d0| 69 6e 65 20 6c 65 6e 67 | 74 68 20 2a 2f 0a 58 20 |ine leng|th */.X |
|000015e0| 7b 73 74 72 75 63 74 20 | 77 69 6e 73 69 7a 65 20 |{struct |winsize |
|000015f0| 74 74 79 62 3b 20 69 6e | 74 20 66 64 3b 0a 58 20 |ttyb; in|t fd;.X |
|00001600| 20 66 64 20 3d 20 6f 70 | 65 6e 28 22 2f 64 65 76 | fd = op|en("/dev|
|00001610| 2f 74 74 79 22 2c 20 30 | 29 3b 0a 58 20 20 69 66 |/tty", 0|);.X if|
|00001620| 28 66 64 20 3c 20 31 29 | 20 6f 77 69 64 74 68 20 |(fd < 1)| owidth |
|00001630| 3d 20 44 45 46 41 55 4c | 54 5f 4f 57 49 44 54 48 |= DEFAUL|T_OWIDTH|
|00001640| 3b 0a 58 20 20 65 6c 73 | 65 20 7b 0a 58 20 20 69 |;.X els|e {.X i|
|00001650| 6f 63 74 6c 28 66 64 2c | 20 54 49 4f 43 47 57 49 |octl(fd,| TIOCGWI|
|00001660| 4e 53 5a 2c 20 26 74 74 | 79 62 29 3b 0a 58 20 20 |NSZ, &tt|yb);.X |
|00001670| 6f 77 69 64 74 68 20 3d | 20 74 74 79 62 2e 77 73 |owidth =| ttyb.ws|
|00001680| 5f 63 6f 6c 3b 0a 58 20 | 20 7d 0a 58 20 20 69 66 |_col;.X | }.X if|
|00001690| 28 6f 77 69 64 74 68 3c | 32 30 29 20 6f 77 69 64 |(owidth<|20) owid|
|000016a0| 74 68 20 3d 20 44 45 46 | 41 55 4c 54 5f 4f 57 49 |th = DEF|AULT_OWI|
|000016b0| 44 54 48 3b 20 20 2f 2a | 20 73 61 6e 69 74 79 20 |DTH; /*| sanity |
|000016c0| 63 68 65 63 6b 20 2a 2f | 0a 58 20 7d 0a 58 0a 58 |check */|.X }.X.X|
|000016d0| 20 66 6f 72 28 69 3d 31 | 3b 20 69 3c 61 72 67 63 | for(i=1|; i<argc|
|000016e0| 3b 20 69 2b 2b 29 20 20 | 2f 2a 20 70 72 6f 63 65 |; i++) |/* proce|
|000016f0| 73 73 20 61 6c 6c 20 61 | 72 67 75 6d 65 6e 74 73 |ss all a|rguments|
|00001700| 20 2a 2f 0a 58 20 7b 0a | 58 20 20 69 66 28 61 72 | */.X {.|X if(ar|
|00001710| 67 76 5b 69 5d 5b 30 5d | 20 21 3d 20 27 2d 27 20 |gv[i][0]| != '-' |
|00001720| 7c 7c 20 73 74 72 6c 65 | 6e 28 61 72 67 76 5b 69 ||| strle|n(argv[i|
|00001730| 5d 29 20 3d 3d 20 31 29 | 20 20 20 20 2f 2a 20 66 |]) == 1)| /* f|
|00001740| 69 6c 65 6e 61 6d 65 73 | 2e 2e 2e 2a 2f 0a 58 20 |ilenames|...*/.X |
|00001750| 20 7b 0a 58 20 20 20 69 | 66 28 69 6e 70 29 0a 58 | {.X i|f(inp).X|
|00001760| 20 20 20 7b 0a 58 20 20 | 20 20 66 70 72 69 6e 74 | {.X | fprint|
|00001770| 66 28 73 74 64 65 72 72 | 2c 20 22 45 78 74 72 61 |f(stderr|, "Extra|
|00001780| 20 66 69 6c 65 6e 61 6d | 65 20 61 72 67 75 6d 65 | filenam|e argume|
|00001790| 6e 74 73 20 72 65 6a 65 | 63 74 65 64 3a 20 25 73 |nts reje|cted: %s|
|000017a0| 5c 6e 22 2c 20 61 72 67 | 76 5b 69 5d 29 3b 0a 58 |\n", arg|v[i]);.X|
|000017b0| 20 20 20 20 63 6f 6e 74 | 69 6e 75 65 3b 0a 58 20 | cont|inue;.X |
|000017c0| 20 20 7d 0a 58 20 20 20 | 69 6e 70 20 3d 20 28 61 | }.X |inp = (a|
|000017d0| 72 67 76 5b 69 5d 5b 30 | 5d 20 3d 3d 20 27 2d 27 |rgv[i][0|] == '-'|
|000017e0| 20 26 26 20 61 72 67 76 | 5b 69 5d 5b 31 5d 20 3d | && argv|[i][1] =|
|000017f0| 3d 20 30 29 20 3f 20 73 | 74 64 69 6e 20 3a 20 66 |= 0) ? s|tdin : f|
|00001800| 6f 70 65 6e 28 61 72 67 | 76 5b 69 5d 2c 20 22 72 |open(arg|v[i], "r|
|00001810| 22 29 3b 0a 58 20 20 20 | 69 66 28 21 69 6e 70 29 |");.X |if(!inp)|
|00001820| 0a 58 20 20 20 7b 0a 58 | 20 20 20 20 66 70 72 69 |.X {.X| fpri|
|00001830| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 46 69 6c |ntf(stde|rr, "Fil|
|00001840| 65 6e 61 6d 65 20 61 72 | 67 75 6d 65 6e 74 20 72 |ename ar|gument r|
|00001850| 65 6a 65 63 74 65 64 20 | 2d 2d 20 25 73 3a 20 22 |ejected |-- %s: "|
|00001860| 2c 20 61 72 67 76 5b 69 | 5d 29 3b 0a 58 20 20 20 |, argv[i|]);.X |
|00001870| 20 70 65 72 72 6f 72 28 | 22 66 6f 70 65 6e 22 29 | perror(|"fopen")|
|00001880| 3b 0a 58 20 20 20 20 69 | 6e 70 20 3d 20 73 74 64 |;.X i|np = std|
|00001890| 69 6e 3b 0a 58 20 20 20 | 7d 0a 58 20 20 20 63 6f |in;.X |}.X co|
|000018a0| 6e 74 69 6e 75 65 3b 0a | 58 20 20 7d 0a 58 20 20 |ntinue;.|X }.X |
|000018b0| 73 77 69 74 63 68 28 61 | 72 67 76 5b 69 5d 5b 31 |switch(a|rgv[i][1|
|000018c0| 5d 29 0a 58 20 20 7b 0a | 58 20 20 20 63 61 73 65 |]).X {.|X case|
|000018d0| 20 27 68 27 3a 20 6e 6f | 68 65 61 64 65 72 20 3d | 'h': no|header =|
|000018e0| 20 31 3b 20 62 72 65 61 | 6b 3b 0a 58 20 20 20 63 | 1; brea|k;.X c|
|000018f0| 61 73 65 20 27 66 27 3a | 0a 58 20 20 20 20 73 77 |ase 'f':|.X sw|
|00001900| 69 74 63 68 28 61 72 67 | 76 5b 69 5d 5b 32 5d 29 |itch(arg|v[i][2])|
|00001910| 20 20 20 2f 2a 20 73 65 | 6c 65 63 74 20 6f 75 74 | /* se|lect out|
|00001920| 70 75 74 20 6d 6f 64 65 | 20 2a 2f 0a 58 20 20 20 |put mode| */.X |
|00001930| 20 7b 0a 58 20 20 20 20 | 20 63 61 73 65 20 27 6e | {.X | case 'n|
|00001940| 27 3a 20 73 74 79 6c 65 | 3d 4e 46 52 4f 4d 3b 09 |': style|=NFROM;.|
|00001950| 62 72 65 61 6b 3b 0a 58 | 20 20 20 20 20 63 61 73 |break;.X| cas|
|00001960| 65 20 27 4e 27 3a 20 73 | 74 79 6c 65 3d 4e 46 52 |e 'N': s|tyle=NFR|
|00001970| 4f 4d 5f 53 3b 09 62 72 | 65 61 6b 3b 0a 58 20 20 |OM_S;.br|eak;.X |
|00001980| 20 20 20 63 61 73 65 20 | 27 73 27 3a 20 73 74 79 | case |'s': sty|
|00001990| 6c 65 3d 53 49 4d 50 4c | 45 3b 09 62 72 65 61 6b |le=SIMPL|E;.break|
|000019a0| 3b 0a 58 20 20 20 20 20 | 63 61 73 65 20 27 61 27 |;.X |case 'a'|
|000019b0| 3a 20 73 74 79 6c 65 3d | 41 44 44 52 4f 4e 4c 59 |: style=|ADDRONLY|
|000019c0| 3b 09 62 72 65 61 6b 3b | 0a 58 20 20 20 20 20 63 |;.break;|.X c|
|000019d0| 61 73 65 20 27 78 27 3a | 20 73 74 79 6c 65 3d 51 |ase 'x':| style=Q|
|000019e0| 55 49 45 54 3b 09 62 72 | 65 61 6b 3b 0a 58 20 20 |UIET;.br|eak;.X |
|000019f0| 20 20 20 63 61 73 65 20 | 27 66 27 3a 0a 58 20 20 | case |'f':.X |
|00001a00| 20 20 20 63 61 73 65 20 | 30 3a 20 20 20 73 74 79 | case |0: sty|
|00001a10| 6c 65 3d 4f 46 52 4f 4d | 3b 09 62 72 65 61 6b 3b |le=OFROM|;.break;|
|00001a20| 0a 58 20 20 20 20 20 64 | 65 66 61 75 6c 74 3a 20 |.X d|efault: |
|00001a30| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|00001a40| 20 22 46 6f 72 6d 61 74 | 20 27 25 73 27 20 75 6e | "Format| '%s' un|
|00001a50| 6b 6e 6f 77 6e 2e 5c 6e | 22 2c 20 61 72 67 76 5b |known.\n|", argv[|
|00001a60| 69 5d 2b 32 29 3b 20 62 | 72 65 61 6b 3b 0a 58 20 |i]+2); b|reak;.X |
|00001a70| 20 20 20 7d 0a 58 20 20 | 20 20 62 72 65 61 6b 3b | }.X | break;|
|00001a80| 0a 58 20 20 20 63 61 73 | 65 20 27 6e 27 3a 0a 58 |.X cas|e 'n':.X|
|00001a90| 20 20 20 20 73 74 79 6c | 65 3d 51 55 49 45 54 3b | styl|e=QUIET;|
|00001aa0| 20 20 20 2f 2a 20 66 61 | 6c 6c 73 20 74 68 72 6f | /* fa|lls thro|
|00001ab0| 75 67 68 20 2a 2f 0a 58 | 20 20 20 63 61 73 65 20 |ugh */.X| case |
|00001ac0| 27 4e 27 3a 0a 58 20 20 | 20 20 6e 6f 74 69 66 79 |'N':.X | notify|
|00001ad0| 20 3d 20 31 3b 0a 58 20 | 20 20 20 62 72 65 61 6b | = 1;.X | break|
|00001ae0| 3b 0a 58 20 20 20 63 61 | 73 65 20 27 74 27 3a 0a |;.X ca|se 't':.|
|00001af0| 58 20 20 20 20 73 74 79 | 6c 65 3d 51 55 49 45 54 |X sty|le=QUIET|
|00001b00| 3b 20 20 20 20 2f 2a 20 | 66 61 6c 6c 73 20 74 68 |; /* |falls th|
|00001b10| 72 6f 75 67 68 20 2a 2f | 0a 58 20 20 20 63 61 73 |rough */|.X cas|
|00001b20| 65 20 27 54 27 3a 0a 58 | 20 20 20 20 6e 6f 74 69 |e 'T':.X| noti|
|00001b30| 66 79 20 3d 20 32 3b 0a | 58 20 20 20 20 62 72 65 |fy = 2;.|X bre|
|00001b40| 61 6b 3b 0a 58 20 20 20 | 63 61 73 65 20 27 77 27 |ak;.X |case 'w'|
|00001b50| 3a 0a 58 20 20 20 20 6f | 77 69 64 74 68 2d 2d 3b |:.X o|width--;|
|00001b60| 20 20 20 20 20 20 2f 2a | 20 64 65 63 72 65 6d 65 | /*| decreme|
|00001b70| 6e 74 20 6f 75 74 70 75 | 74 20 77 69 64 74 68 20 |nt outpu|t width |
|00001b80| 2a 2f 0a 58 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |*/.X |break;.X|
|00001b90| 20 20 20 63 61 73 65 20 | 27 65 27 3a 0a 58 20 20 | case |'e':.X |
|00001ba0| 20 63 61 73 65 20 27 69 | 27 3a 0a 58 20 20 20 20 | case 'i|':.X |
|00001bb0| 73 74 72 6e 63 70 79 28 | 63 6f 6e 64 5b 6e 75 6d |strncpy(|cond[num|
|00001bc0| 63 6f 6e 64 73 2b 2b 5d | 2c 20 61 72 67 76 5b 69 |conds++]|, argv[i|
|00001bd0| 5d 2b 31 2c 20 4d 41 58 | 43 4f 4e 44 4c 29 3b 0a |]+1, MAX|CONDL);.|
|00001be0| 58 20 20 20 20 63 6f 6e | 64 5b 6e 75 6d 63 6f 6e |X con|d[numcon|
|00001bf0| 64 73 2d 31 5d 5b 30 5d | 20 3d 20 28 63 6f 6e 64 |ds-1][0]| = (cond|
|00001c00| 5b 6e 75 6d 63 6f 6e 64 | 73 2d 31 5d 5b 30 5d 20 |[numcond|s-1][0] |
|00001c10| 3d 3d 20 27 65 27 29 3f | 20 30 20 3a 20 31 3b 0a |== 'e')?| 0 : 1;.|
|00001c20| 58 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 20 20 20 |X bre|ak;.X |
|00001c30| 64 65 66 61 75 6c 74 3a | 0a 58 20 20 20 20 70 72 |default:|.X pr|
|00001c40| 69 6e 74 66 28 22 55 6e | 72 65 63 6f 67 6e 69 7a |intf("Un|recogniz|
|00001c50| 65 64 20 6f 70 74 69 6f | 6e 20 2d 25 73 5c 6e 22 |ed optio|n -%s\n"|
|00001c60| 2c 20 61 72 67 76 5b 69 | 5d 29 3b 0a 58 20 20 20 |, argv[i|]);.X |
|00001c70| 20 62 72 65 61 6b 3b 0a | 58 20 20 7d 0a 58 20 7d | break;.|X }.X }|
|00001c80| 0a 58 0a 58 20 69 66 28 | 21 69 6e 70 20 20 20 2f |.X.X if(|!inp /|
|00001c90| 2a 20 6e 6f 20 66 69 6c | 65 6e 61 6d 65 73 20 77 |* no fil|enames w|
|00001ca0| 65 72 65 20 73 70 65 63 | 69 66 69 65 64 20 6f 6e |ere spec|ified on|
|00001cb0| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e | the com|mand lin|
|00001cc0| 65 20 2a 2f 0a 58 20 20 | 26 26 20 21 28 67 65 74 |e */.X |&& !(get|
|00001cd0| 65 6e 76 28 22 4d 41 49 | 4c 22 29 20 26 26 20 28 |env("MAI|L") && (|
|00001ce0| 69 6e 70 20 3d 20 66 6f | 70 65 6e 28 67 65 74 65 |inp = fo|pen(gete|
|00001cf0| 6e 76 28 22 4d 41 49 4c | 22 29 2c 20 22 72 22 29 |nv("MAIL|"), "r")|
|00001d00| 29 29 20 2f 2a 20 65 6e | 76 20 76 61 72 20 2a 2f |)) /* en|v var */|
|00001d10| 0a 58 20 29 0a 58 20 7b | 63 68 61 72 20 2a 63 70 |.X ).X {|char *cp|
|00001d20| 3b 20 20 20 2f 2a 20 74 | 72 79 20 74 6f 20 6f 70 |; /* t|ry to op|
|00001d30| 65 6e 20 2f 75 73 72 2f | 73 70 6f 6f 6c 2f 6d 61 |en /usr/|spool/ma|
|00001d40| 69 6c 2f 75 73 65 72 20 | 2a 2f 0a 58 20 20 63 70 |il/user |*/.X cp|
|00001d50| 20 3d 20 67 65 74 65 6e | 76 28 22 55 53 45 52 22 | = geten|v("USER"|
|00001d60| 29 3b 0a 58 20 20 69 66 | 28 21 63 70 29 20 63 70 |);.X if|(!cp) cp|
|00001d70| 20 3d 20 67 65 74 65 6e | 76 28 22 4c 4f 47 4e 41 | = geten|v("LOGNA|
|00001d80| 4d 45 22 29 3b 0a 58 20 | 20 69 66 28 63 70 29 0a |ME");.X | if(cp).|
|00001d90| 58 20 20 7b 63 68 61 72 | 20 6d 62 75 66 5b 31 30 |X {char| mbuf[10|
|00001da0| 30 5d 3b 0a 58 20 20 20 | 73 70 72 69 6e 74 66 28 |0];.X |sprintf(|
|00001db0| 6d 62 75 66 2c 20 4d 41 | 49 4c 42 4f 58 50 41 54 |mbuf, MA|ILBOXPAT|
|00001dc0| 48 46 4f 52 4d 2c 20 63 | 70 29 3b 0a 58 20 20 20 |HFORM, c|p);.X |
|00001dd0| 69 6e 70 20 3d 20 66 6f | 70 65 6e 28 6d 62 75 66 |inp = fo|pen(mbuf|
|00001de0| 2c 20 22 72 22 29 3b 0a | 58 20 20 7d 0a 58 20 20 |, "r");.|X }.X |
|00001df0| 69 66 28 21 69 6e 70 29 | 0a 58 20 20 7b 0a 58 20 |if(!inp)|.X {.X |
|00001e00| 20 20 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 | fprint|f(stderr|
|00001e10| 2c 20 22 4e 6f 20 66 69 | 6c 65 73 20 73 70 65 63 |, "No fi|les spec|
|00001e20| 69 66 69 65 64 20 6f 6e | 20 74 68 65 20 63 6f 6d |ified on| the com|
|00001e30| 6d 61 6e 64 20 6c 69 6e | 65 2c 20 61 62 6f 72 74 |mand lin|e, abort|
|00001e40| 69 6e 67 2e 2e 2e 5c 6e | 22 29 3b 0a 58 20 20 20 |ing...\n|");.X |
|00001e50| 65 78 69 74 28 2d 31 29 | 3b 0a 58 20 20 7d 0a 58 |exit(-1)|;.X }.X|
|00001e60| 20 7d 0a 58 0a 58 20 73 | 74 61 74 65 20 3d 20 30 | }.X.X s|tate = 0|
|00001e70| 3b 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 69 |; | /* i|
|00001e80| 6e 69 74 69 61 6c 69 7a | 65 20 2a 2f 0a 58 20 66 |nitializ|e */.X f|
|00001e90| 72 6f 6d 20 3d 20 73 75 | 62 20 3d 20 4e 55 4c 4c |rom = su|b = NULL|
|00001ea0| 3b 0a 58 0a 58 20 0a 58 | 20 77 68 69 6c 65 28 21 |;.X.X .X| while(!|
|00001eb0| 66 65 6f 66 28 69 6e 70 | 29 29 0a 58 20 7b 0a 58 |feof(inp|)).X {.X|
|00001ec0| 20 20 20 66 67 65 74 73 | 28 62 75 66 2c 20 4c 49 | fgets|(buf, LI|
|00001ed0| 4e 4c 45 4e 2c 20 69 6e | 70 29 3b 20 20 20 20 2f |NLEN, in|p); /|
|00001ee0| 2a 20 67 65 74 20 61 20 | 6c 69 6e 65 20 66 72 6f |* get a |line fro|
|00001ef0| 6d 20 74 68 65 20 6d 61 | 69 6c 62 6f 78 20 2a 2f |m the ma|ilbox */|
|00001f00| 0a 58 20 20 20 69 66 28 | 2a 62 75 66 20 3d 3d 20 |.X if(|*buf == |
|00001f10| 27 5c 6e 27 20 26 26 20 | 21 62 75 66 5b 31 5d 29 |'\n' && |!buf[1])|
|00001f20| 20 2f 2a 20 62 6c 61 6e | 6b 20 6c 69 6e 65 73 20 | /* blan|k lines |
|00001f30| 61 72 65 20 73 70 65 63 | 69 61 6c 20 2a 2f 0a 58 |are spec|ial */.X|
|00001f40| 20 20 20 7b 20 0a 58 20 | 20 20 20 69 66 28 73 74 | { .X | if(st|
|00001f50| 61 74 65 3d 3d 31 29 20 | 0a 58 20 20 20 20 7b 0a |ate==1) |.X {.|
|00001f60| 58 20 20 20 20 20 73 74 | 61 74 65 3d 32 3b 0a 58 |X st|ate=2;.X|
|00001f70| 20 20 20 20 20 69 66 28 | 73 74 61 66 6c 20 21 3d | if(|stafl !=|
|00001f80| 20 2d 31 29 20 73 74 61 | 66 6c 20 3d 20 31 3b 20 | -1) sta|fl = 1; |
|00001f90| 20 20 2f 2a 20 66 6c 61 | 67 20 65 6e 64 20 6f 66 | /* fla|g end of|
|00001fa0| 20 68 65 61 64 65 72 20 | 2a 2f 0a 58 20 20 20 20 | header |*/.X |
|00001fb0| 20 65 6c 73 65 20 0a 58 | 20 20 20 20 20 7b 0a 58 | else .X| {.X|
|00001fc0| 20 20 20 20 20 20 73 74 | 61 66 6c 20 3d 20 30 3b | st|afl = 0;|
|00001fd0| 0a 58 20 20 20 20 20 20 | 63 6f 6e 74 69 6e 75 65 |.X |continue|
|00001fe0| 3b 20 0a 58 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |; .X | }.X |
|00001ff0| 7d 0a 58 20 20 20 20 65 | 6c 73 65 20 73 74 61 74 |}.X e|lse stat|
|00002000| 65 3d 30 3b 0a 58 20 20 | 20 7d 0a 58 23 69 66 64 |e=0;.X | }.X#ifd|
|00002010| 65 66 20 44 45 42 55 47 | 0a 58 20 20 20 20 20 20 |ef DEBUG|.X |
|00002020| 2f 2a 41 43 4d 45 20 75 | 6e 69 76 65 72 73 61 6c |/*ACME u|niversal|
|00002030| 20 64 65 62 75 67 67 69 | 6e 67 20 73 74 61 74 65 | debuggi|ng state|
|00002040| 6d 65 6e 74 2a 2f 0a 58 | 20 20 20 70 72 69 6e 74 |ment*/.X| print|
|00002050| 66 28 22 25 64 20 25 64 | 20 25 64 20 25 73 22 2c |f("%d %d| %d %s",|
|00002060| 20 73 74 61 74 65 2c 73 | 74 61 66 6c 2c 72 65 6d | state,s|tafl,rem|
|00002070| 61 69 6e 73 2c 20 62 75 | 66 29 3b 20 0a 58 23 65 |ains, bu|f); .X#e|
|00002080| 6e 64 69 66 0a 58 20 20 | 20 69 66 28 21 73 74 72 |ndif.X | if(!str|
|00002090| 6e 63 6d 70 28 62 75 66 | 2c 20 22 46 72 6f 6d 20 |ncmp(buf|, "From |
|000020a0| 22 2c 20 46 52 4f 4d 4f | 46 46 29 20 26 26 20 73 |", FROMO|FF) && s|
|000020b0| 74 61 74 65 3d 3d 30 29 | 20 2f 2a 20 67 72 61 62 |tate==0)| /* grab|
|000020c0| 20 6f 72 69 67 69 6e 20 | 61 64 64 72 20 2a 2f 0a | origin |addr */.|
|000020d0| 58 20 20 20 7b 20 0a 58 | 20 20 20 20 73 74 61 74 |X { .X| stat|
|000020e0| 65 3d 31 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |e=1; | |
|000020f0| 20 20 20 2f 2a 20 62 65 | 67 69 6e 6e 69 6e 67 20 | /* be|ginning |
|00002100| 6f 66 20 6d 65 73 73 61 | 67 65 20 68 65 61 64 65 |of messa|ge heade|
|00002110| 72 20 2a 2f 0a 58 20 20 | 20 20 69 66 28 66 72 6f |r */.X | if(fro|
|00002120| 6d 29 20 66 72 65 65 28 | 66 72 6f 6d 29 3b 0a 58 |m) free(|from);.X|
|00002130| 20 20 20 20 69 66 28 73 | 74 79 6c 65 20 3d 3d 20 | if(s|tyle == |
|00002140| 4f 46 52 4f 4d 29 20 7b | 20 66 72 6f 6d 3d 64 79 |OFROM) {| from=dy|
|00002150| 6e 61 6d 69 63 69 7a 65 | 28 62 75 66 29 3b 20 63 |namicize|(buf); c|
|00002160| 6f 6e 74 69 6e 75 65 3b | 20 7d 20 20 2f 2a 20 73 |ontinue;| } /* s|
|00002170| 70 65 63 69 61 6c 20 63 | 61 73 65 20 2a 2f 0a 58 |pecial c|ase */.X|
|00002180| 20 20 20 20 66 6f 72 28 | 69 20 3d 20 46 52 4f 4d | for(|i = FROM|
|00002190| 4f 46 46 3b 20 62 75 66 | 5b 69 5d 20 26 26 20 21 |OFF; buf|[i] && !|
|000021a0| 69 73 73 70 61 63 65 28 | 62 75 66 5b 69 5d 29 3b |isspace(|buf[i]);|
|000021b0| 20 69 2b 2b 29 0a 58 20 | 20 20 20 20 20 20 3b 20 | i++).X | ; |
|000021c0| 2f 2a 20 73 65 61 72 63 | 68 20 66 6f 72 20 66 69 |/* searc|h for fi|
|000021d0| 72 73 74 20 62 6c 61 6e | 6b 20 2a 2f 0a 58 20 20 |rst blan|k */.X |
|000021e0| 20 20 62 75 66 5b 69 5d | 20 3d 20 28 63 68 61 72 | buf[i]| = (char|
|000021f0| 29 30 3b 20 20 2f 2a 20 | 74 65 72 6d 69 6e 61 74 |)0; /* |terminat|
|00002200| 65 20 74 68 65 20 73 74 | 72 69 6e 67 20 74 68 65 |e the st|ring the|
|00002210| 72 65 20 2a 2f 0a 58 20 | 20 20 20 66 72 6f 6d 20 |re */.X | from |
|00002220| 3d 20 64 79 6e 61 6d 69 | 63 69 7a 65 28 62 75 66 |= dynami|cize(buf|
|00002230| 2b 46 52 4f 4d 4f 46 46 | 29 3b 0a 58 20 20 20 7d |+FROMOFF|);.X }|
|00002240| 0a 58 20 20 20 69 66 28 | 73 74 61 74 65 3d 3d 31 |.X if(|state==1|
|00002250| 20 26 26 20 21 28 73 74 | 79 6c 65 3d 3d 4f 46 52 | && !(st|yle==OFR|
|00002260| 4f 4d 20 7c 7c 20 73 74 | 79 6c 65 3d 3d 41 44 44 |OM || st|yle==ADD|
|00002270| 52 4f 4e 4c 59 29 20 26 | 26 0a 58 20 20 20 20 20 |RONLY) &|&.X |
|00002280| 20 20 21 73 74 72 6e 63 | 6d 70 28 22 53 75 62 6a | !strnc|mp("Subj|
|00002290| 65 63 74 3a 22 2c 20 62 | 75 66 2c 20 53 55 42 4f |ect:", b|uf, SUBO|
|000022a0| 46 46 29 29 20 2f 2a 20 | 67 72 61 62 20 74 68 65 |FF)) /* |grab the|
|000022b0| 20 73 75 62 6a 20 73 74 | 72 69 6e 67 20 2a 2f 0a | subj st|ring */.|
|000022c0| 58 20 20 20 7b 0a 58 20 | 20 20 20 69 66 28 73 75 |X {.X | if(su|
|000022d0| 62 29 20 66 72 65 65 28 | 73 75 62 29 3b 0a 58 20 |b) free(|sub);.X |
|000022e0| 20 20 20 66 6f 72 28 69 | 3d 73 74 72 6c 65 6e 28 | for(i|=strlen(|
|000022f0| 62 75 66 29 20 2d 20 31 | 3b 20 69 20 3e 20 53 55 |buf) - 1|; i > SU|
|00002300| 42 4f 46 46 20 26 26 20 | 69 73 73 70 61 63 65 28 |BOFF && |isspace(|
|00002310| 62 75 66 5b 69 5d 29 3b | 20 69 2d 2d 29 0a 58 20 |buf[i]);| i--).X |
|00002320| 20 20 20 20 20 20 3b 20 | 2f 2a 20 73 65 61 72 63 | ; |/* searc|
|00002330| 68 20 66 6f 72 20 6c 61 | 73 74 20 6e 6f 6e 62 6c |h for la|st nonbl|
|00002340| 61 6e 6b 20 2a 2f 0a 58 | 20 20 20 20 62 75 66 5b |ank */.X| buf[|
|00002350| 69 2b 31 5d 20 3d 20 28 | 63 68 61 72 29 30 3b 20 |i+1] = (|char)0; |
|00002360| 20 2f 2a 20 74 72 69 6d | 20 74 72 61 69 6c 69 6e | /* trim| trailin|
|00002370| 67 20 62 6c 61 6e 6b 73 | 20 2a 2f 0a 58 20 20 20 |g blanks| */.X |
|00002380| 20 66 6f 72 28 69 3d 53 | 55 42 4f 46 46 3b 20 62 | for(i=S|UBOFF; b|
|00002390| 75 66 5b 69 5d 20 26 26 | 20 69 73 73 70 61 63 65 |uf[i] &&| isspace|
|000023a0| 28 62 75 66 5b 69 5d 29 | 3b 20 69 2b 2b 29 0a 58 |(buf[i])|; i++).X|
|000023b0| 20 20 20 20 20 20 20 3b | 0a 58 20 20 20 20 73 75 | ;|.X su|
|000023c0| 62 20 3d 20 64 79 6e 61 | 6d 69 63 69 7a 65 28 62 |b = dyna|micize(b|
|000023d0| 75 66 2b 69 29 3b 20 20 | 20 20 2f 2a 20 74 72 69 |uf+i); | /* tri|
|000023e0| 6d 20 6c 65 61 64 69 6e | 67 20 62 6c 61 6e 6b 73 |m leadin|g blanks|
|000023f0| 20 74 6f 6f 20 2a 2f 0a | 58 20 20 20 7d 0a 58 20 | too */.|X }.X |
|00002400| 20 20 69 66 28 28 73 74 | 61 74 65 3d 3d 31 20 26 | if((st|ate==1 &|
|00002410| 26 20 21 73 74 72 6e 63 | 6d 70 28 22 53 74 61 74 |& !strnc|mp("Stat|
|00002420| 75 73 3a 20 22 2c 20 62 | 75 66 2c 20 53 54 41 54 |us: ", b|uf, STAT|
|00002430| 4f 46 46 29 29 20 7c 7c | 20 73 74 61 66 6c 3d 3d |OFF)) ||| stafl==|
|00002440| 31 29 20 2f 2a 65 6e 64 | 20 68 64 72 2a 2f 0a 58 |1) /*end| hdr*/.X|
|00002450| 20 20 20 7b 69 6e 74 20 | 66 6c 61 67 3b 20 63 68 | {int |flag; ch|
|00002460| 61 72 20 74 79 63 68 3b | 20 20 2f 2a 20 74 79 63 |ar tych;| /* tyc|
|00002470| 68 20 3d 3d 20 74 79 70 | 65 20 63 68 61 72 61 63 |h == typ|e charac|
|00002480| 74 65 72 20 2a 2f 0a 58 | 20 20 20 20 69 66 28 73 |ter */.X| if(s|
|00002490| 74 61 66 6c 20 3d 3d 20 | 31 29 0a 58 20 20 20 20 |tafl == |1).X |
|000024a0| 20 62 75 66 5b 53 54 41 | 54 4f 46 46 5d 20 3d 20 | buf[STA|TOFF] = |
|000024b0| 28 63 68 61 72 29 30 3b | 0a 58 20 20 20 20 65 6c |(char)0;|.X el|
|000024c0| 73 65 0a 58 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |se.X |{.X |
|000024d0| 66 6f 72 28 69 3d 73 74 | 72 6c 65 6e 28 62 75 66 |for(i=st|rlen(buf|
|000024e0| 29 2d 31 3b 20 69 3e 53 | 54 41 54 4f 46 46 20 26 |)-1; i>S|TATOFF &|
|000024f0| 26 20 69 73 73 70 61 63 | 65 28 62 75 66 5b 69 5d |& isspac|e(buf[i]|
|00002500| 29 3b 20 69 2d 2d 29 0a | 58 20 20 20 20 20 20 20 |); i--).|X |
|00002510| 3b 20 2f 2a 20 73 65 61 | 72 63 68 20 66 6f 72 20 |; /* sea|rch for |
|00002520| 6c 61 73 74 20 6e 6f 6e | 62 6c 61 6e 6b 20 2a 2f |last non|blank */|
|00002530| 0a 58 20 20 20 20 20 62 | 75 66 5b 69 2b 31 5d 20 |.X b|uf[i+1] |
|00002540| 3d 20 28 63 68 61 72 29 | 30 3b 20 2f 2a 20 74 72 |= (char)|0; /* tr|
|00002550| 69 6d 20 62 6c 61 6e 6b | 73 20 2a 2f 0a 58 20 20 |im blank|s */.X |
|00002560| 20 20 7d 0a 58 20 20 20 | 20 73 74 61 66 6c 20 2d | }.X | stafl -|
|00002570| 2d 3b 0a 58 0a 58 20 20 | 20 20 66 6c 61 67 20 3d |-;.X.X | flag =|
|00002580| 20 31 3b 0a 58 20 20 20 | 20 66 6f 72 28 69 3d 30 | 1;.X | for(i=0|
|00002590| 3b 20 69 3c 6e 75 6d 63 | 6f 6e 64 73 3b 20 69 2b |; i<numc|onds; i+|
|000025a0| 2b 29 20 20 2f 2a 20 65 | 76 61 6c 75 61 74 65 20 |+) /* e|valuate |
|000025b0| 74 68 65 20 63 6f 6e 64 | 69 74 69 6f 6e 61 6c 20 |the cond|itional |
|000025c0| 2a 2f 0a 58 20 20 20 20 | 7b 69 6e 74 20 6a 3b 0a |*/.X |{int j;.|
|000025d0| 58 20 20 20 20 20 66 6f | 72 28 6a 3d 31 3b 20 63 |X fo|r(j=1; c|
|000025e0| 6f 6e 64 5b 69 5d 5b 6a | 5d 3b 20 6a 2b 2b 29 0a |ond[i][j|]; j++).|
|000025f0| 58 20 20 20 20 20 20 69 | 66 28 21 69 6e 64 65 78 |X i|f(!index|
|00002600| 28 62 75 66 2b 53 54 41 | 54 4f 46 46 2c 20 63 6f |(buf+STA|TOFF, co|
|00002610| 6e 64 5b 69 5d 5b 6a 5d | 29 29 20 67 6f 74 6f 20 |nd[i][j]|)) goto |
|00002620| 6e 65 78 74 63 3b 20 2f | 2a 20 6b 6c 75 64 67 65 |nextc; /|* kludge|
|00002630| 20 66 6f 72 20 62 72 65 | 61 6b 5e 32 20 2a 2f 0a | for bre|ak^2 */.|
|00002640| 58 20 20 20 20 20 66 6c | 61 67 20 3d 20 63 6f 6e |X fl|ag = con|
|00002650| 64 5b 69 5d 5b 30 5d 3b | 0a 58 20 20 20 20 20 6e |d[i][0];|.X n|
|00002660| 65 78 74 63 3a 20 20 3b | 0a 58 20 20 20 20 7d 0a |extc: ;|.X }.|
|00002670| 58 20 20 20 20 69 66 28 | 21 66 6c 61 67 29 20 63 |X if(|!flag) c|
|00002680| 6f 6e 74 69 6e 75 65 3b | 20 20 20 0a 58 0a 58 20 |ontinue;| .X.X |
|00002690| 20 20 20 6e 75 6d 6d 73 | 67 73 2b 2b 3b 20 74 79 | numms|gs++; ty|
|000026a0| 63 68 20 3d 20 27 4e 27 | 3b 0a 58 20 20 20 20 69 |ch = 'N'|;.X i|
|000026b0| 66 28 21 69 6e 64 65 78 | 28 62 75 66 2b 53 54 41 |f(!index|(buf+STA|
|000026c0| 54 4f 46 46 2c 20 27 4f | 27 29 29 20 20 2f 2a 20 |TOFF, 'O|')) /* |
|000026d0| 4f 6c 64 20 6d 61 69 6c | 3f 20 2a 2f 0a 58 20 20 |Old mail|? */.X |
|000026e0| 20 20 20 6e 65 77 6d 61 | 69 6c 2b 2b 3b 20 65 6c | newma|il++; el|
|000026f0| 73 65 20 74 79 63 68 20 | 3d 20 27 55 27 3b 0a 58 |se tych |= 'U';.X|
|00002700| 20 20 20 20 69 66 28 21 | 69 6e 64 65 78 28 62 75 | if(!|index(bu|
|00002710| 66 2b 53 54 41 54 4f 46 | 46 2c 20 27 52 27 29 29 |f+STATOF|F, 'R'))|
|00002720| 20 20 2f 2a 20 72 65 61 | 64 20 6d 61 69 6c 3f 20 | /* rea|d mail? |
|00002730| 2a 2f 0a 58 20 20 20 20 | 20 75 6e 72 65 61 64 2b |*/.X | unread+|
|00002740| 2b 3b 20 20 65 6c 73 65 | 20 74 79 63 68 20 3d 20 |+; else| tych = |
|00002750| 28 74 79 63 68 20 3d 3d | 20 27 55 27 29 3f 27 4f |(tych ==| 'U')?'O|
|00002760| 27 3a 27 3f 27 3b 0a 58 | 0a 58 20 20 20 20 73 77 |':'?';.X|.X sw|
|00002770| 69 74 63 68 28 73 74 79 | 6c 65 29 20 20 20 2f 2a |itch(sty|le) /*|
|00002780| 20 6f 75 74 70 75 74 20 | 74 68 69 73 20 6d 73 67 | output |this msg|
|00002790| 2e 20 69 6e 20 63 6f 72 | 72 65 63 74 20 73 74 79 |. in cor|rect sty|
|000027a0| 6c 65 20 2a 2f 0a 58 20 | 20 20 20 7b 0a 58 20 20 |le */.X | {.X |
|000027b0| 20 20 20 63 61 73 65 20 | 53 49 4d 50 4c 45 3a 0a | case |SIMPLE:.|
|000027c0| 58 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 3c |X p|rintf("<|
|000027d0| 25 73 3e 20 25 73 20 25 | 73 5c 6e 22 2c 20 62 75 |%s> %s %|s\n", bu|
|000027e0| 66 2b 53 54 41 54 4f 46 | 46 2c 20 66 72 6f 6d 2c |f+STATOF|F, from,|
|000027f0| 20 73 75 62 29 3b 0a 58 | 20 20 20 20 20 20 62 72 | sub);.X| br|
|00002800| 65 61 6b 3b 0a 58 20 20 | 20 20 20 63 61 73 65 20 |eak;.X | case |
|00002810| 4f 46 52 4f 4d 3a 0a 58 | 20 20 20 20 20 20 70 72 |OFROM:.X| pr|
|00002820| 69 6e 74 66 28 22 25 73 | 22 2c 20 66 72 6f 6d 29 |intf("%s|", from)|
|00002830| 3b 0a 58 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X | break;.|
|00002840| 58 20 20 20 20 20 63 61 | 73 65 20 41 44 44 52 4f |X ca|se ADDRO|
|00002850| 4e 4c 59 3a 0a 58 20 20 | 20 20 20 20 70 75 74 73 |NLY:.X | puts|
|00002860| 28 66 72 6f 6d 29 3b 0a | 58 20 20 20 20 20 20 62 |(from);.|X b|
|00002870| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 63 61 73 65 |reak;.X | case|
|00002880| 20 51 55 49 45 54 3a 0a | 58 20 20 20 20 20 20 62 | QUIET:.|X b|
|00002890| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 63 61 73 65 |reak;.X | case|
|000028a0| 20 4e 46 52 4f 4d 3a 0a | 58 20 20 20 20 20 63 61 | NFROM:.|X ca|
|000028b0| 73 65 20 4e 46 52 4f 4d | 5f 53 3a 0a 58 20 20 20 |se NFROM|_S:.X |
|000028c0| 20 20 20 2f 2a 20 46 6f | 72 6d 61 74 20 6f 66 20 | /* Fo|rmat of |
|000028d0| 4e 46 52 4f 4d 20 6f 75 | 74 70 75 74 3a 0a 58 20 |NFROM ou|tput:.X |
|000028e0| 20 20 20 20 20 20 20 20 | 20 43 6f 6c 75 6d 6e 73 | | Columns|
|000028f0| 20 30 20 2d 20 6f 77 69 | 64 74 68 2f 33 3a 20 41 | 0 - owi|dth/3: A|
|00002900| 64 64 72 65 73 73 0a 58 | 20 20 20 20 20 20 20 20 |ddress.X| |
|00002910| 20 20 34 20 63 6f 6c 75 | 6d 6e 73 3a 20 27 3a 27 | 4 colu|mns: ':'|
|00002920| 2c 20 27 20 27 2c 20 73 | 74 61 74 75 73 2c 20 27 |, ' ', s|tatus, '|
|00002930| 20 27 0a 58 20 20 20 20 | 20 20 20 20 20 20 54 68 | '.X | Th|
|00002940| 65 20 72 65 73 74 3a 20 | 73 75 62 6a 65 63 74 20 |e rest: |subject |
|00002950| 2a 2f 0a 58 20 20 20 20 | 20 20 2f 2a 20 54 68 65 |*/.X | /* The|
|00002960| 20 68 61 72 64 20 70 61 | 72 74 3a 20 66 69 67 75 | hard pa|rt: figu|
|00002970| 72 69 6e 67 20 6f 75 74 | 20 77 68 69 63 68 20 70 |ring out| which p|
|00002980| 61 72 74 20 6f 66 20 61 | 20 74 6f 6f 2d 6c 6f 6e |art of a| too-lon|
|00002990| 67 20 61 64 64 72 65 73 | 73 0a 58 20 20 20 20 20 |g addres|s.X |
|000029a0| 20 20 20 20 20 74 68 65 | 20 75 73 65 72 20 77 61 | the| user wa|
|000029b0| 6e 74 73 20 74 6f 20 73 | 65 65 2e 20 43 75 72 72 |nts to s|ee. Curr|
|000029c0| 65 6e 74 20 61 6c 67 6f | 72 69 74 68 6d 3a 20 6a |ent algo|rithm: j|
|000029d0| 75 73 74 69 66 79 20 73 | 6f 20 74 68 61 74 0a 58 |ustify s|o that.X|
|000029e0| 20 20 20 20 20 20 20 20 | 20 20 77 68 61 74 65 76 | | whatev|
|000029f0| 65 72 20 69 73 20 69 6d | 6d 65 64 69 61 74 65 6c |er is im|mediatel|
|00002a00| 79 20 62 65 66 6f 72 65 | 20 74 68 65 20 6c 61 73 |y before| the las|
|00002a10| 74 20 27 40 27 20 73 69 | 67 6e 20 69 73 20 69 6e |t '@' si|gn is in|
|00002a20| 20 76 69 65 77 2e 0a 58 | 20 20 20 20 20 20 20 20 | view..X| |
|00002a30| 20 54 68 69 73 20 66 61 | 69 6c 73 20 66 6f 72 20 | This fa|ils for |
|00002a40| 61 64 64 72 65 73 73 65 | 73 20 6f 66 20 74 68 65 |addresse|s of the|
|00002a50| 20 66 6f 72 6d 20 20 75 | 73 65 72 25 68 6f 73 74 | form u|ser%host|
|00002a60| 25 68 6f 73 74 25 68 6f | 73 74 40 68 6f 73 74 2e |%host%ho|st@host.|
|00002a70| 20 2a 2f 0a 58 20 20 20 | 20 20 20 69 66 28 6e 75 | */.X | if(nu|
|00002a80| 6d 6d 73 67 73 20 3d 3d | 20 31 20 26 26 20 21 6e |mmsgs ==| 1 && !n|
|00002a90| 6f 68 65 61 64 65 72 29 | 20 20 2f 2a 20 70 72 69 |oheader)| /* pri|
|00002aa0| 6e 74 20 74 68 65 20 68 | 65 61 64 65 72 20 6c 69 |nt the h|eader li|
|00002ab0| 6e 65 20 62 65 66 6f 72 | 65 20 31 73 74 20 6d 73 |ne befor|e 1st ms|
|00002ac0| 67 20 2a 2f 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 |g */.X | {.X |
|00002ad0| 20 20 20 20 20 20 66 6f | 72 28 69 3d 30 3b 20 69 | fo|r(i=0; i|
|00002ae0| 3c 20 28 6f 77 69 64 74 | 68 2f 32 29 20 2d 34 3b |< (owidt|h/2) -4;|
|00002af0| 20 69 2b 2b 29 20 70 75 | 74 63 68 61 72 28 27 2d | i++) pu|tchar('-|
|00002b00| 27 29 3b 0a 58 20 20 20 | 20 20 20 20 70 72 69 6e |');.X | prin|
|00002b10| 74 66 28 22 20 4d 20 41 | 20 49 20 4c 20 22 29 3b |tf(" M A| I L ");|
|00002b20| 0a 58 20 20 20 20 20 20 | 20 66 6f 72 28 69 3d 30 |.X | for(i=0|
|00002b30| 3b 20 69 3c 20 28 28 31 | 2b 6f 77 69 64 74 68 29 |; i< ((1|+owidth)|
|00002b40| 2f 32 29 20 2d 35 3b 20 | 69 2b 2b 29 20 70 75 74 |/2) -5; |i++) put|
|00002b50| 63 68 61 72 28 27 2d 27 | 29 3b 0a 58 20 20 20 20 |char('-'|);.X |
|00002b60| 20 20 20 70 75 74 63 68 | 61 72 28 27 5c 6e 27 29 | putch|ar('\n')|
|00002b70| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |;.X | }.X |
|00002b80| 20 20 69 66 28 72 65 6d | 61 69 6e 73 29 20 7b 20 | if(rem|ains) { |
|00002b90| 70 75 74 63 68 61 72 28 | 27 5c 6e 27 29 3b 20 72 |putchar(|'\n'); r|
|00002ba0| 65 6d 61 69 6e 73 20 3d | 20 30 3b 20 7d 20 20 2f |emains =| 0; } /|
|00002bb0| 2a 20 6e 75 6c 6c 20 6d | 65 73 73 61 67 65 20 62 |* null m|essage b|
|00002bc0| 6f 64 79 3f 20 2a 2f 0a | 58 20 20 20 20 20 7b 63 |ody? */.|X {c|
|00002bd0| 68 61 72 20 2a 63 70 3b | 0a 58 20 20 20 20 20 20 |har *cp;|.X |
|00002be0| 63 70 20 3d 20 72 69 6e | 64 65 78 28 66 72 6f 6d |cp = rin|dex(from|
|00002bf0| 2c 20 27 40 27 29 3b 20 | 20 20 20 2f 2a 20 66 69 |, '@'); | /* fi|
|00002c00| 6e 64 20 65 6e 64 20 6f | 66 20 61 72 65 61 20 74 |nd end o|f area t|
|00002c10| 6f 20 62 65 20 73 68 6f | 77 6e 20 2a 2f 0a 58 20 |o be sho|wn */.X |
|00002c20| 20 20 20 20 20 69 66 28 | 63 70 20 3d 3d 20 4e 55 | if(|cp == NU|
|00002c30| 4c 4c 29 20 63 70 20 3d | 20 66 72 6f 6d 2b 28 73 |LL) cp =| from+(s|
|00002c40| 74 72 6c 65 6e 28 66 72 | 6f 6d 29 20 2d 31 29 3b |trlen(fr|om) -1);|
|00002c50| 0a 58 20 20 20 20 20 20 | 63 70 20 20 2d 3d 20 28 |.X |cp -= (|
|00002c60| 6f 77 69 64 74 68 2f 33 | 29 3b 20 20 2f 2a 20 66 |owidth/3|); /* f|
|00002c70| 69 6e 64 20 62 65 67 69 | 6e 6e 69 6e 67 20 6f 66 |ind begi|nning of|
|00002c80| 20 61 72 65 61 20 74 6f | 20 62 65 20 73 68 6f 77 | area to| be show|
|00002c90| 6e 20 2a 2f 0a 58 20 20 | 20 20 20 20 69 66 28 63 |n */.X | if(c|
|00002ca0| 70 3c 66 72 6f 6d 29 20 | 63 70 3d 66 72 6f 6d 3b |p<from) |cp=from;|
|00002cb0| 20 20 2f 2a 20 64 6f 6e | 27 74 20 6f 76 65 72 73 | /* don|'t overs|
|00002cc0| 68 6f 6f 74 20 2a 2f 0a | 58 20 20 20 20 20 20 70 |hoot */.|X p|
|00002cd0| 72 69 6e 74 66 28 22 25 | 2a 2e 2a 73 3a 20 25 63 |rintf("%|*.*s: %c|
|00002ce0| 20 25 2e 2a 73 22 2c 20 | 6f 77 69 64 74 68 2f 33 | %.*s", |owidth/3|
|00002cf0| 2c 20 6f 77 69 64 74 68 | 2f 33 2c 20 63 70 2c 0a |, owidth|/3, cp,.|
|00002d00| 58 09 20 20 20 20 20 74 | 79 63 68 2c 20 6f 77 69 |X. t|ych, owi|
|00002d10| 64 74 68 20 2d 20 28 20 | 28 6f 77 69 64 74 68 2f |dth - ( |(owidth/|
|00002d20| 33 29 20 2b 35 29 2c 20 | 73 75 62 29 3b 0a 58 20 |3) +5), |sub);.X |
|00002d30| 20 20 20 20 7d 0a 58 20 | 20 20 20 20 20 69 66 28 | }.X | if(|
|00002d40| 73 74 79 6c 65 20 3d 3d | 20 4e 46 52 4f 4d 5f 53 |style ==| NFROM_S|
|00002d50| 20 7c 7c 20 28 73 74 72 | 6c 65 6e 28 73 75 62 29 | || (str|len(sub)|
|00002d60| 20 3e 3d 20 28 6f 77 69 | 64 74 68 2d 28 28 6f 77 | >= (owi|dth-((ow|
|00002d70| 69 64 74 68 2f 33 29 2b | 35 29 29 29 29 0a 58 20 |idth/3)+|5)))).X |
|00002d80| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 72 | {.X| r|
|00002d90| 65 6d 61 69 6e 73 20 3d | 20 30 3b 20 20 20 20 20 |emains =| 0; |
|00002da0| 2f 2a 20 64 6f 6e 27 74 | 20 66 69 6c 6c 20 74 68 |/* don't| fill th|
|00002db0| 65 20 72 65 73 74 20 6f | 66 20 74 68 65 20 6c 69 |e rest o|f the li|
|00002dc0| 6e 65 20 2a 2f 0a 58 20 | 20 20 20 20 20 20 70 75 |ne */.X | pu|
|00002dd0| 74 63 68 61 72 28 27 5c | 6e 27 29 3b 20 20 20 2f |tchar('\|n'); /|
|00002de0| 2a 20 61 6e 64 20 74 65 | 72 6d 69 6e 61 74 65 20 |* and te|rminate |
|00002df0| 69 74 20 2a 2f 0a 58 20 | 20 20 20 20 20 7d 0a 58 |it */.X | }.X|
|00002e00| 20 20 20 20 20 20 65 6c | 73 65 20 0a 58 20 20 20 | el|se .X |
|00002e10| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 72 65 6d | {.X | rem|
|00002e20| 61 69 6e 73 20 3d 20 28 | 6f 77 69 64 74 68 2d 28 |ains = (|owidth-(|
|00002e30| 28 6f 77 69 64 74 68 2f | 33 29 2b 35 29 29 20 2d |(owidth/|3)+5)) -|
|00002e40| 20 73 74 72 6c 65 6e 28 | 73 75 62 29 3b 20 20 2f | strlen(|sub); /|
|00002e50| 2a 20 63 61 6c 63 20 72 | 65 6d 61 69 6e 64 65 72 |* calc r|emainder|
|00002e60| 20 2a 2f 0a 58 20 20 20 | 20 20 20 20 70 75 74 63 | */.X | putc|
|00002e70| 68 61 72 28 27 2f 27 29 | 3b 20 20 20 20 2f 2a 20 |har('/')|; /* |
|00002e80| 6d 61 72 6b 20 65 6e 64 | 20 6f 66 20 73 75 62 6a |mark end| of subj|
|00002e90| 65 63 74 20 6c 69 6e 65 | 20 2a 2f 0a 58 20 20 20 |ect line| */.X |
|00002ea0| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 62 72 65 61 | }.X | brea|
|00002eb0| 6b 3b 0a 58 20 20 20 20 | 20 64 65 66 61 75 6c 74 |k;.X | default|
|00002ec0| 3a 0a 58 20 20 20 20 20 | 20 70 75 74 73 28 22 55 |:.X | puts("U|
|00002ed0| 6e 69 6d 70 6c 65 6d 65 | 6e 74 65 64 20 73 74 79 |nimpleme|nted sty|
|00002ee0| 6c 65 22 29 3b 20 62 72 | 65 61 6b 3b 20 20 2f 2a |le"); br|eak; /*|
|00002ef0| 20 74 68 69 73 20 73 68 | 6f 75 6c 64 20 6e 65 76 | this sh|ould nev|
|00002f00| 65 72 20 68 61 70 70 65 | 6e 20 3b 2d 29 20 2a 2f |er happe|n ;-) */|
|00002f10| 0a 58 20 20 20 20 7d 20 | 20 2f 2a 20 65 6e 64 20 |.X } | /* end |
|00002f20| 6f 66 20 73 74 79 6c 65 | 2d 6f 75 74 70 75 74 20 |of style|-output |
|00002f30| 73 77 69 74 63 68 28 29 | 20 2a 2f 0a 58 20 20 20 |switch()| */.X |
|00002f40| 7d 20 20 2f 2a 20 65 6e | 64 20 6f 66 20 69 66 28 |} /* en|d of if(|
|00002f50| 53 74 61 74 75 73 3a 29 | 20 74 65 73 74 20 2a 2f |Status:)| test */|
|00002f60| 0a 58 20 20 20 69 66 28 | 72 65 6d 61 69 6e 73 20 |.X if(|remains |
|00002f70| 3e 20 30 20 26 26 20 28 | 73 74 61 74 65 20 3d 3d |> 0 && (|state ==|
|00002f80| 20 30 20 7c 7c 20 73 74 | 61 74 65 20 3d 3d 20 32 | 0 || st|ate == 2|
|00002f90| 29 29 20 2f 2a 6e 65 65 | 64 20 74 6f 20 66 69 6c |)) /*nee|d to fil|
|00002fa0| 6c 20 72 65 73 74 20 6f | 66 20 6c 69 6e 65 3f 2a |l rest o|f line?*|
|00002fb0| 2f 0a 58 20 20 20 7b 63 | 68 61 72 20 2a 63 70 3b |/.X {c|har *cp;|
|00002fc0| 20 69 6e 74 20 73 70 66 | 6c 61 67 20 3d 20 30 3b | int spf|lag = 0;|
|00002fd0| 20 20 20 20 2f 2a 20 73 | 74 69 63 6b 20 74 68 69 | /* s|tick thi|
|00002fe0| 73 20 6c 69 6e 65 20 6f | 6e 74 6f 20 65 6e 64 20 |s line o|nto end |
|00002ff0| 6f 66 20 6c 69 6e 65 20 | 2a 2f 0a 58 09 09 09 09 |of line |*/.X....|
|00003000| 2f 2a 20 28 4e 46 52 4f | 4d 20 6d 6f 64 65 29 20 |/* (NFRO|M mode) |
|00003010| 2a 2f 0a 58 20 20 20 20 | 09 09 09 09 2f 2a 20 73 |*/.X |..../* s|
|00003020| 70 66 6c 61 67 20 69 73 | 20 75 73 65 64 20 74 6f |pflag is| used to|
|00003030| 20 63 6f 6d 70 72 65 73 | 73 20 62 6c 61 6e 6b 20 | compres|s blank |
|00003040| 73 70 61 63 65 20 2a 2f | 0a 58 20 20 20 20 66 6f |space */|.X fo|
|00003050| 72 28 63 70 20 3d 20 62 | 75 66 3b 20 2a 63 70 3b |r(cp = b|uf; *cp;|
|00003060| 20 63 70 2b 2b 29 0a 58 | 20 20 20 20 7b 0a 58 09 | cp++).X| {.X.|
|00003070| 2f 2a 20 70 75 74 20 63 | 68 61 72 2e 2c 20 63 6f |/* put c|har., co|
|00003080| 6d 70 72 65 73 73 69 6e | 67 20 6f 75 74 20 62 6c |mpressin|g out bl|
|00003090| 61 6e 6b 73 20 2a 2f 0a | 58 20 20 20 20 20 69 66 |anks */.|X if|
|000030a0| 28 21 73 70 66 6c 61 67 | 20 26 26 20 69 73 73 70 |(!spflag| && issp|
|000030b0| 61 63 65 28 2a 63 70 29 | 29 20 7b 20 73 70 66 6c |ace(*cp)|) { spfl|
|000030c0| 61 67 20 3d 20 31 3b 20 | 70 75 74 63 68 61 72 28 |ag = 1; |putchar(|
|000030d0| 27 20 27 29 3b 20 72 65 | 6d 61 69 6e 73 2d 2d 3b |' '); re|mains--;|
|000030e0| 20 7d 0a 58 20 20 20 20 | 20 69 66 28 73 70 66 6c | }.X | if(spfl|
|000030f0| 61 67 20 26 26 20 21 69 | 73 73 70 61 63 65 28 2a |ag && !i|sspace(*|
|00003100| 63 70 29 29 20 73 70 66 | 6c 61 67 20 3d 20 30 3b |cp)) spf|lag = 0;|
|00003110| 0a 58 20 20 20 20 20 69 | 66 28 21 73 70 66 6c 61 |.X i|f(!spfla|
|00003120| 67 29 20 7b 20 70 75 74 | 63 68 61 72 28 2a 63 70 |g) { put|char(*cp|
|00003130| 29 3b 20 72 65 6d 61 69 | 6e 73 2d 2d 3b 20 7d 20 |); remai|ns--; } |
|00003140| 0a 58 20 20 20 20 20 69 | 66 28 21 72 65 6d 61 69 |.X i|f(!remai|
|00003150| 6e 73 29 09 09 2f 2a 20 | 61 6e 64 20 63 68 65 63 |ns)../* |and chec|
|00003160| 6b 20 66 6f 72 20 74 65 | 72 6d 69 6e 61 74 69 6f |k for te|rminatio|
|00003170| 6e 20 2a 2f 0a 58 20 20 | 20 20 20 7b 0a 58 20 20 |n */.X | {.X |
|00003180| 20 20 20 20 70 75 74 63 | 68 61 72 28 27 5c 6e 27 | putc|har('\n'|
|00003190| 29 3b 0a 58 20 20 20 20 | 20 20 62 72 65 61 6b 3b |);.X | break;|
|000031a0| 0a 58 20 20 20 20 20 7d | 0a 58 20 20 20 20 7d 20 |.X }|.X } |
|000031b0| 20 2f 2a 20 65 6e 64 20 | 6f 66 20 66 69 6c 6c 2d | /* end |of fill-|
|000031c0| 6c 69 6e 65 73 20 6c 6f | 6f 70 20 2a 2f 0a 58 20 |lines lo|op */.X |
|000031d0| 20 20 7d 20 20 2f 2a 20 | 65 6e 64 20 6f 66 20 66 | } /* |end of f|
|000031e0| 69 6c 6c 2d 6c 69 6e 65 | 20 74 65 73 74 20 2a 2f |ill-line| test */|
|000031f0| 0a 58 20 7d 20 20 2f 2a | 20 65 6e 64 20 6f 66 20 |.X } /*| end of |
|00003200| 72 65 61 64 2d 6d 61 69 | 6c 62 6f 78 20 6c 6f 6f |read-mai|lbox loo|
|00003210| 70 2c 20 6e 6f 77 20 63 | 6c 65 61 6e 20 75 70 20 |p, now c|lean up |
|00003220| 2a 2f 0a 58 20 69 66 28 | 72 65 6d 61 69 6e 73 29 |*/.X if(|remains)|
|00003230| 20 20 2f 2a 20 69 66 20 | 77 65 27 72 65 20 73 74 | /* if |we're st|
|00003240| 69 6c 6c 20 66 69 6c 6c | 69 6e 67 20 75 70 20 61 |ill fill|ing up a|
|00003250| 20 6c 69 6e 65 20 2a 2f | 0a 58 20 20 70 75 74 63 | line */|.X putc|
|00003260| 68 61 72 28 27 5c 6e 27 | 29 3b 20 20 2f 2a 20 65 |har('\n'|); /* e|
|00003270| 6e 64 20 74 68 61 74 20 | 6c 69 6e 65 20 2a 2f 0a |nd that |line */.|
|00003280| 58 20 69 66 28 28 73 74 | 79 6c 65 20 3d 3d 20 4e |X if((st|yle == N|
|00003290| 46 52 4f 4d 20 7c 7c 20 | 73 74 79 6c 65 20 3d 3d |FROM || |style ==|
|000032a0| 20 4e 46 52 4f 4d 5f 53 | 29 20 26 26 20 6e 75 6d | NFROM_S|) && num|
|000032b0| 6d 73 67 73 20 26 26 20 | 21 6e 6f 68 65 61 64 65 |msgs && |!noheade|
|000032c0| 72 29 0a 58 20 20 7b 66 | 6f 72 28 69 3d 30 3b 20 |r).X {f|or(i=0; |
|000032d0| 69 3c 6f 77 69 64 74 68 | 3b 20 69 2b 2b 29 20 70 |i<owidth|; i++) p|
|000032e0| 75 74 63 68 61 72 28 27 | 2d 27 29 3b 20 20 2f 2a |utchar('|-'); /*|
|000032f0| 20 64 72 61 77 20 73 65 | 63 6f 6e 64 20 22 68 65 | draw se|cond "he|
|00003300| 61 64 65 72 22 20 6c 69 | 6e 65 20 2a 2f 0a 58 20 |ader" li|ne */.X |
|00003310| 20 20 70 75 74 63 68 61 | 72 28 27 5c 6e 27 29 3b | putcha|r('\n');|
|00003320| 20 7d 09 09 09 20 20 2f | 2a 20 61 6e 64 20 74 65 | }... /|* and te|
|00003330| 72 6d 69 6e 61 74 65 20 | 69 74 20 2a 2f 0a 58 20 |rminate |it */.X |
|00003340| 69 66 28 6e 6f 74 69 66 | 79 20 26 26 20 6e 75 6d |if(notif|y && num|
|00003350| 6d 73 67 73 29 20 20 20 | 20 20 2f 2a 20 6e 65 78 |msgs) | /* nex|
|00003360| 74 20 77 65 20 70 72 69 | 6e 74 20 6f 75 74 20 6d |t we pri|nt out m|
|00003370| 65 73 73 61 67 65 20 74 | 61 6c 6c 79 20 2a 2f 0a |essage t|ally */.|
|00003380| 58 20 7b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X { | |
|00003390| 20 20 20 20 20 20 20 2f | 2a 20 74 68 65 20 63 6f | /|* the co|
|000033a0| 6d 70 6c 65 78 20 62 6f | 6f 6c 65 61 6e 73 20 61 |mplex bo|oleans a|
|000033b0| 72 65 20 66 6f 72 20 45 | 6e 67 6c 69 73 68 27 73 |re for E|nglish's|
|000033c0| 20 67 72 61 6d 6d 61 72 | 20 2a 2f 0a 58 20 20 69 | grammar| */.X i|
|000033d0| 66 28 6e 6f 74 69 66 79 | 20 3d 3d 20 32 20 26 26 |f(notify| == 2 &&|
|000033e0| 20 75 6e 72 65 61 64 20 | 3e 3d 20 6e 65 77 6d 61 | unread |>= newma|
|000033f0| 69 6c 29 20 75 6e 72 65 | 61 64 20 2d 3d 20 6e 65 |il) unre|ad -= ne|
|00003400| 77 6d 61 69 6c 3b 0a 58 | 20 20 66 70 75 74 73 28 |wmail;.X| fputs(|
|00003410| 22 59 6f 75 20 68 61 76 | 65 22 2c 6e 70 29 3b 0a |"You hav|e",np);.|
|00003420| 58 20 20 69 66 28 6e 6f | 74 69 66 79 20 3d 3d 20 |X if(no|tify == |
|00003430| 32 20 26 26 20 6e 65 77 | 6d 61 69 6c 29 20 70 6e |2 && new|mail) pn|
|00003440| 75 6d 28 6e 70 2c 20 6e | 65 77 6d 61 69 6c 29 3b |um(np, n|ewmail);|
|00003450| 0a 58 20 20 69 66 28 6e | 65 77 6d 61 69 6c 29 20 |.X if(n|ewmail) |
|00003460| 66 70 75 74 73 28 22 20 | 6e 65 77 22 2c 6e 70 29 |fputs(" |new",np)|
|00003470| 3b 0a 58 20 20 69 66 28 | 6e 65 77 6d 61 69 6c 20 |;.X if(|newmail |
|00003480| 26 26 20 6e 6f 74 69 66 | 79 20 3d 3d 20 32 29 20 |&& notif|y == 2) |
|00003490| 66 70 72 69 6e 74 66 28 | 6e 70 2c 20 22 20 6d 65 |fprintf(|np, " me|
|000034a0| 73 73 61 67 65 25 73 22 | 2c 20 6e 65 77 6d 61 69 |ssage%s"|, newmai|
|000034b0| 6c 21 3d 31 3f 20 22 73 | 22 3a 22 22 29 3b 0a 58 |l!=1? "s|":"");.X|
|000034c0| 20 20 69 66 28 6e 65 77 | 6d 61 69 6c 20 26 26 20 | if(new|mail && |
|000034d0| 75 6e 72 65 61 64 20 26 | 26 20 6e 6f 74 69 66 79 |unread &|& notify|
|000034e0| 20 3d 3d 20 32 29 20 66 | 70 75 74 73 28 22 20 61 | == 2) f|puts(" a|
|000034f0| 6e 64 22 2c 6e 70 29 3b | 0a 58 20 20 69 66 28 75 |nd",np);|.X if(u|
|00003500| 6e 72 65 61 64 20 26 26 | 20 6e 6f 74 69 66 79 3d |nread &&| notify=|
|00003510| 3d 32 29 20 70 6e 75 6d | 28 6e 70 2c 20 75 6e 72 |=2) pnum|(np, unr|
|00003520| 65 61 64 29 3b 0a 58 20 | 20 69 66 28 75 6e 72 65 |ead);.X | if(unre|
|00003530| 61 64 20 26 26 20 28 28 | 6e 6f 74 69 66 79 3d 3d |ad && ((|notify==|
|00003540| 31 20 26 26 20 6e 65 77 | 6d 61 69 6c 3d 3d 30 29 |1 && new|mail==0)|
|00003550| 20 7c 7c 20 6e 6f 74 69 | 66 79 3d 3d 32 29 29 20 | || noti|fy==2)) |
|00003560| 66 70 75 74 73 28 22 20 | 75 6e 72 65 61 64 22 2c |fputs(" |unread",|
|00003570| 6e 70 29 3b 0a 58 20 20 | 69 66 28 6e 6f 74 69 66 |np);.X |if(notif|
|00003580| 79 20 3d 3d 20 31 20 7c | 7c 20 21 28 6e 65 77 6d |y == 1 ||| !(newm|
|00003590| 61 69 6c 2b 75 6e 72 65 | 61 64 29 29 20 66 70 75 |ail+unre|ad)) fpu|
|000035a0| 74 73 28 22 20 6d 61 69 | 6c 22 2c 6e 70 29 3b 0a |ts(" mai|l",np);.|
|000035b0| 58 20 20 69 66 28 6e 6f | 74 69 66 79 20 3d 3d 20 |X if(no|tify == |
|000035c0| 32 20 26 26 20 75 6e 72 | 65 61 64 29 20 66 70 72 |2 && unr|ead) fpr|
|000035d0| 69 6e 74 66 28 6e 70 2c | 20 22 20 6d 65 73 73 61 |intf(np,| " messa|
|000035e0| 67 65 25 73 22 2c 20 75 | 6e 72 65 61 64 21 3d 31 |ge%s", u|nread!=1|
|000035f0| 3f 20 22 73 22 3a 22 22 | 29 3b 0a 58 20 20 66 70 |? "s":""|);.X fp|
|00003600| 75 74 73 28 22 2e 5c 6e | 22 2c 6e 70 29 3b 20 20 |uts(".\n|",np); |
|00003610| 20 2f 2a 20 57 68 65 77 | 21 20 2a 2f 0a 58 20 7d | /* Whew|! */.X }|
|00003620| 0a 58 7d 0a 58 0a 58 73 | 74 61 74 69 63 20 63 68 |.X}.X.Xs|tatic ch|
|00003630| 61 72 20 2a 6e 75 6d 73 | 5b 5d 20 3d 20 0a 58 7b |ar *nums|[] = .X{|
|00003640| 20 22 6e 6f 22 2c 20 22 | 6f 6e 65 22 2c 20 22 74 | "no", "|one", "t|
|00003650| 77 6f 22 2c 20 22 74 68 | 72 65 65 22 2c 20 22 66 |wo", "th|ree", "f|
|00003660| 6f 75 72 22 2c 20 22 66 | 69 76 65 22 2c 20 22 73 |our", "f|ive", "s|
|00003670| 69 78 22 2c 20 22 73 65 | 76 65 6e 22 2c 20 22 65 |ix", "se|ven", "e|
|00003680| 69 67 68 74 22 2c 0a 58 | 22 6e 69 6e 65 22 2c 20 |ight",.X|"nine", |
|00003690| 22 74 65 6e 22 20 7d 3b | 0a 58 0a 58 70 6e 75 6d |"ten" };|.X.Xpnum|
|000036a0| 28 73 2c 20 6e 29 20 46 | 49 4c 45 20 2a 73 3b 20 |(s, n) F|ILE *s; |
|000036b0| 69 6e 74 20 6e 3b 20 20 | 2f 2a 20 70 72 69 6e 74 |int n; |/* print|
|000036c0| 20 6e 75 6d 20 74 6f 20 | 73 74 72 65 61 6d 20 70 | num to |stream p|
|000036d0| 72 65 63 65 64 65 64 20 | 62 79 20 73 70 61 63 65 |receded |by space|
|000036e0| 20 2a 2f 0a 58 7b 0a 58 | 20 20 66 70 75 74 63 28 | */.X{.X| fputc(|
|000036f0| 27 20 27 2c 73 29 3b 0a | 58 20 20 69 66 28 6e 20 |' ',s);.|X if(n |
|00003700| 3c 20 30 29 20 66 70 72 | 69 6e 74 66 28 73 2c 22 |< 0) fpr|intf(s,"|
|00003710| 25 64 22 2c 6e 29 3b 0a | 58 20 20 65 6c 73 65 20 |%d",n);.|X else |
|00003720| 69 66 28 6e 20 3c 20 31 | 31 29 20 66 70 75 74 73 |if(n < 1|1) fputs|
|00003730| 28 6e 75 6d 73 5b 6e 5d | 2c 20 73 29 3b 0a 58 20 |(nums[n]|, s);.X |
|00003740| 20 65 6c 73 65 20 66 70 | 72 69 6e 74 66 28 73 2c | else fp|rintf(s,|
|00003750| 22 25 64 22 2c 6e 29 3b | 0a 58 7d 0a 58 0a 58 2f |"%d",n);|.X}.X.X/|
|00003760| 2a 20 64 79 6e 61 6d 69 | 63 69 7a 65 28 29 20 74 |* dynami|cize() t|
|00003770| 61 6b 65 73 20 61 20 73 | 74 72 69 6e 67 20 61 6e |akes a s|tring an|
|00003780| 64 20 6d 6f 76 65 73 20 | 69 74 20 74 6f 20 64 79 |d moves |it to dy|
|00003790| 6e 61 6d 69 63 20 6d 65 | 6d 6f 72 79 2c 20 70 65 |namic me|mory, pe|
|000037a0| 72 66 6f 72 6d 69 6e 67 | 0a 58 20 20 20 65 72 72 |rforming|.X err|
|000037b0| 6f 72 20 63 68 65 63 6b | 69 6e 67 20 28 63 72 61 |or check|ing (cra|
|000037c0| 73 68 65 73 20 6f 75 74 | 20 6f 6e 20 65 72 72 6f |shes out| on erro|
|000037d0| 72 29 20 2a 2f 0a 58 63 | 68 61 72 20 2a 64 79 6e |r) */.Xc|har *dyn|
|000037e0| 61 6d 69 63 69 7a 65 28 | 73 74 72 29 20 63 68 61 |amicize(|str) cha|
|000037f0| 72 20 2a 73 74 72 3b 0a | 58 7b 63 68 61 72 20 2a |r *str;.|X{char *|
|00003800| 63 70 3b 0a 58 20 20 63 | 70 20 3d 20 6d 61 6c 6c |cp;.X c|p = mall|
|00003810| 6f 63 28 28 75 6e 73 69 | 67 6e 65 64 29 28 73 74 |oc((unsi|gned)(st|
|00003820| 72 6c 65 6e 28 73 74 72 | 29 2b 31 29 29 3b 0a 58 |rlen(str|)+1));.X|
|00003830| 20 20 69 66 28 21 63 70 | 29 20 0a 58 20 20 7b 0a | if(!cp|) .X {.|
|00003840| 58 20 20 20 20 66 70 75 | 74 73 28 22 4f 75 74 20 |X fpu|ts("Out |
|00003850| 6f 66 20 6d 65 6d 6f 72 | 79 22 2c 20 73 74 64 65 |of memor|y", stde|
|00003860| 72 72 29 3b 0a 58 20 20 | 20 20 65 78 69 74 28 2d |rr);.X | exit(-|
|00003870| 32 29 3b 0a 58 20 20 7d | 0a 58 20 20 73 74 72 63 |2);.X }|.X strc|
|00003880| 70 79 28 63 70 2c 20 73 | 74 72 29 3b 0a 58 20 20 |py(cp, s|tr);.X |
|00003890| 72 65 74 75 72 6e 28 63 | 70 29 3b 0a 58 7d 0a 53 |return(c|p);.X}.S|
|000038a0| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|000038b0| 31 31 37 30 31 20 2d 6e | 65 20 22 60 77 63 20 2d |11701 -n|e "`wc -|
|000038c0| 63 20 3c 20 27 6d 6e 2e | 63 27 60 22 0a 74 68 65 |c < 'mn.|c'`".the|
|000038d0| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 22 65 |n..echo |shar: "e|
|000038e0| 72 72 6f 72 20 74 72 61 | 6e 73 6d 69 74 74 69 6e |rror tra|nsmittin|
|000038f0| 67 20 27 6d 6e 2e 63 27 | 22 20 27 28 73 68 6f 75 |g 'mn.c'|" '(shou|
|00003900| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 31 31 37 |ld have |been 117|
|00003910| 30 31 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |01 chara|cters)'.|
|00003920| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|00003930| 20 22 65 78 74 72 61 63 | 74 69 6e 67 20 27 6d 6e | "extrac|ting 'mn|
|00003940| 2e 31 27 22 20 27 28 33 | 38 33 33 20 63 68 61 72 |.1'" '(3|833 char|
|00003950| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00003960| 20 2d 66 20 27 6d 6e 2e | 31 27 0a 74 68 65 6e 0a | -f 'mn.|1'.then.|
|00003970| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 22 77 69 6c |.echo sh|ar: "wil|
|00003980| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00003990| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 27 | existin|g file '|
|000039a0| 6d 6e 2e 31 27 22 0a 65 | 6c 73 65 0a 73 65 64 20 |mn.1'".e|lse.sed |
|000039b0| 27 73 2f 5e 58 2f 2f 27 | 20 3c 3c 20 5c 53 48 41 |'s/^X//'| << \SHA|
|000039c0| 52 5f 45 4f 46 20 3e 20 | 27 6d 6e 2e 31 27 0a 58 |R_EOF > |'mn.1'.X|
|000039d0| 2e 54 48 20 6d 6e 20 31 | 20 22 4a 75 6e 65 20 31 |.TH mn 1| "June 1|
|000039e0| 39 39 30 22 0a 58 2e 53 | 48 20 4e 41 4d 45 0a 58 |990".X.S|H NAME.X|
|000039f0| 6d 6e 20 5c 2d 20 53 75 | 6d 6d 61 72 69 7a 65 20 |mn \- Su|mmarize |
|00003a00| 63 6f 6e 74 65 6e 74 73 | 20 6f 66 20 6d 61 69 6c |contents| of mail|
|00003a10| 62 6f 78 0a 58 2e 53 48 | 20 53 59 4e 4f 50 53 49 |box.X.SH| SYNOPSI|
|00003a20| 53 0a 58 2e 42 20 22 6d | 6e 20 5c 66 52 5b 5c 66 |S.X.B "m|n \fR[\f|
|00003a30| 42 2d 6e 4e 76 68 5c 66 | 52 5d 20 5b 5c 66 42 2d |B-nNvh\f|R] [\fB-|
|00003a40| 66 5c 66 52 5b 5c 66 42 | 6e 66 73 61 78 5c 66 52 |f\fR[\fB|nfsax\fR|
|00003a50| 5d 5d 22 0a 58 2e 42 20 | 22 5c 66 52 5b 5c 66 42 |]]".X.B |"\fR[\fB|
|00003a60| 2d 5c 66 52 5b 5c 66 42 | 69 65 5c 66 52 5d 5c 66 |-\fR[\fB|ie\fR]\f|
|00003a70| 49 6e 6e 6e 5c 66 52 5d | 22 0a 58 2e 42 20 5c 66 |Innn\fR]|".X.B \f|
|00003a80| 52 5b 5c 66 49 66 69 6c | 65 6e 61 6d 65 5c 66 52 |R[\fIfil|ename\fR|
|00003a90| 5d 0a 58 2e 53 48 20 44 | 45 53 43 52 49 50 54 49 |].X.SH D|ESCRIPTI|
|00003aa0| 4f 4e 0a 58 2e 42 20 4d | 6e 0a 58 72 65 61 64 73 |ON.X.B M|n.Xreads|
|00003ab0| 20 61 20 6d 61 69 6c 62 | 6f 78 20 61 6e 64 20 67 | a mailb|ox and g|
|00003ac0| 69 76 65 73 20 61 20 73 | 75 6d 6d 61 72 79 20 6f |ives a s|ummary o|
|00003ad0| 66 20 6d 61 69 6c 20 77 | 61 69 74 69 6e 67 0a 58 |f mail w|aiting.X|
|00003ae0| 66 6f 72 20 74 68 65 20 | 75 73 65 72 2e 20 46 6f |for the |user. Fo|
|00003af0| 72 20 65 61 63 68 20 6d | 65 73 73 61 67 65 2c 0a |r each m|essage,.|
|00003b00| 58 2e 42 20 6d 6e 0a 58 | 63 61 6e 20 64 69 73 70 |X.B mn.X|can disp|
|00003b10| 6c 61 79 20 74 68 65 20 | 73 75 62 6a 65 63 74 2c |lay the |subject,|
|00003b20| 20 73 65 6e 64 65 72 27 | 73 20 61 64 64 72 65 73 | sender'|s addres|
|00003b30| 73 2c 20 61 6e 64 20 77 | 68 65 74 68 65 72 20 6f |s, and w|hether o|
|00003b40| 72 20 6e 6f 74 0a 58 74 | 68 65 20 6d 65 73 73 61 |r not.Xt|he messa|
|00003b50| 67 65 20 68 61 73 20 62 | 65 65 6e 20 72 65 61 64 |ge has b|een read|
|00003b60| 2e 20 0a 58 2e 42 20 4d | 6e 0a 58 63 61 6e 20 61 |. .X.B M|n.Xcan a|
|00003b70| 6c 73 6f 20 62 65 20 6d | 61 64 65 20 74 6f 20 69 |lso be m|ade to i|
|00003b80| 67 6e 6f 72 65 20 6f 72 | 20 73 6b 69 70 20 6d 65 |gnore or| skip me|
|00003b90| 73 73 61 67 65 73 20 61 | 63 63 6f 72 64 69 6e 67 |ssages a|ccording|
|00003ba0| 20 74 6f 20 77 68 69 63 | 68 0a 58 73 74 61 74 75 | to whic|h.Xstatu|
|00003bb0| 73 20 66 6c 61 67 73 20 | 61 72 65 20 73 65 74 2e |s flags |are set.|
|00003bc0| 0a 58 2e 50 50 0a 58 54 | 68 65 72 65 20 61 72 65 |.X.PP.XT|here are|
|00003bd0| 20 73 65 76 65 72 61 6c | 20 6f 70 74 69 6f 6e 73 | several| options|
|00003be0| 3a 0a 58 2e 54 50 0a 58 | 2e 42 20 5c 2d 66 5c 66 |:.X.TP.X|.B \-f\f|
|00003bf0| 49 6e 0a 58 53 65 74 73 | 20 74 68 65 20 6f 75 74 |In.XSets| the out|
|00003c00| 70 75 74 20 66 6f 72 6d | 61 74 20 74 6f 20 74 68 |put form|at to th|
|00003c10| 61 74 20 73 70 65 63 69 | 66 69 65 64 20 62 79 0a |at speci|fied by.|
|00003c20| 58 74 68 65 20 6c 65 74 | 74 65 72 20 5c 66 49 6e |Xthe let|ter \fIn|
|00003c30| 5c 66 52 2e 20 53 65 76 | 65 72 61 6c 20 6f 75 74 |\fR. Sev|eral out|
|00003c40| 70 75 74 20 66 6f 72 6d | 61 74 73 20 61 72 65 20 |put form|ats are |
|00003c50| 61 76 61 69 6c 61 62 6c | 65 3a 0a 58 2e 52 53 0a |availabl|e:.X.RS.|
|00003c60| 58 2e 49 50 20 66 0a 58 | 49 6d 69 74 61 74 65 73 |X.IP f.X|Imitates|
|00003c70| 20 74 68 65 20 66 6f 72 | 6d 61 74 20 6f 66 20 5c | the for|mat of \|
|00003c80| 66 42 66 72 6f 6d 5c 66 | 52 28 31 29 2e 0a 58 2e |fBfrom\f|R(1)..X.|
|00003c90| 49 50 20 6e 0a 58 4e 69 | 63 65 20 66 6f 72 6d 61 |IP n.XNi|ce forma|
|00003ca0| 74 2c 20 64 65 73 69 67 | 6e 65 64 20 66 6f 72 20 |t, desig|ned for |
|00003cb0| 68 75 6d 61 6e 2d 72 65 | 61 64 61 62 69 6c 69 74 |human-re|adabilit|
|00003cc0| 79 2c 20 77 69 74 68 20 | 6a 75 73 74 69 66 69 65 |y, with |justifie|
|00003cd0| 64 0a 58 61 64 64 72 65 | 73 73 2c 20 73 74 61 74 |d.Xaddre|ss, stat|
|00003ce0| 75 73 20 61 6e 64 20 73 | 75 62 6a 65 63 74 20 66 |us and s|ubject f|
|00003cf0| 69 65 6c 64 73 2c 20 70 | 6c 75 73 20 61 73 20 6d |ields, p|lus as m|
|00003d00| 75 63 68 20 6f 66 20 74 | 68 65 20 6d 65 73 73 61 |uch of t|he messa|
|00003d10| 67 65 0a 58 61 73 20 77 | 69 6c 6c 20 66 69 74 20 |ge.Xas w|ill fit |
|00003d20| 6f 6e 20 74 68 65 20 72 | 65 73 74 20 6f 66 20 74 |on the r|est of t|
|00003d30| 68 65 20 6c 69 6e 65 2e | 0a 58 54 68 69 73 20 69 |he line.|.XThis i|
|00003d40| 73 20 74 68 65 20 64 65 | 66 61 75 6c 74 20 73 65 |s the de|fault se|
|00003d50| 74 74 69 6e 67 2e 0a 58 | 2e 49 50 20 4e 0a 58 4c |tting..X|.IP N.XL|
|00003d60| 69 6b 65 20 5c 66 42 6e | 5c 66 52 2c 20 62 75 74 |ike \fBn|\fR, but|
|00003d70| 20 64 6f 65 73 20 6e 6f | 74 20 69 6e 63 6c 75 64 | does no|t includ|
|00003d80| 65 20 70 61 72 74 73 20 | 6f 66 20 74 68 65 20 6d |e parts |of the m|
|00003d90| 65 73 73 61 67 65 20 62 | 6f 64 79 2e 0a 58 2e 49 |essage b|ody..X.I|
|00003da0| 50 20 73 0a 58 53 69 6d | 70 6c 65 20 66 6f 72 6d |P s.XSim|ple form|
|00003db0| 61 74 2e 20 4d 61 69 6e | 6c 79 20 75 73 65 66 75 |at. Main|ly usefu|
|00003dc0| 6c 20 66 6f 72 20 70 69 | 70 69 6e 67 20 6f 75 74 |l for pi|ping out|
|00003dd0| 70 75 74 20 74 6f 20 61 | 6e 6f 74 68 65 72 0a 58 |put to a|nother.X|
|00003de0| 70 72 6f 67 72 61 6d 20 | 77 69 74 68 6f 75 74 20 |program |without |
|00003df0| 6c 6f 73 69 6e 67 20 61 | 6e 79 20 69 6e 66 6f 72 |losing a|ny infor|
|00003e00| 6d 61 74 69 6f 6e 20 61 | 76 61 69 6c 61 62 6c 65 |mation a|vailable|
|00003e10| 20 77 69 74 68 20 5c 66 | 42 6e 5c 66 52 2e 0a 58 | with \f|Bn\fR..X|
|00003e20| 2e 49 50 20 61 0a 58 41 | 64 64 72 65 73 73 2d 6f |.IP a.XA|ddress-o|
|00003e30| 6e 6c 79 20 66 6f 72 6d | 61 74 2e 20 53 69 6d 69 |nly form|at. Simi|
|00003e40| 6c 61 72 20 74 6f 20 5c | 66 42 66 5c 66 52 2c 20 |lar to \|fBf\fR, |
|00003e50| 62 75 74 20 6f 6e 6c 79 | 20 70 72 69 6e 74 73 20 |but only| prints |
|00003e60| 74 68 65 0a 58 61 64 64 | 72 65 73 73 20 70 6f 72 |the.Xadd|ress por|
|00003e70| 74 69 6f 6e 20 6f 66 20 | 74 68 65 20 6c 69 6e 65 |tion of |the line|
|00003e80| 2e 0a 58 2e 49 50 20 78 | 0a 58 50 72 6f 64 75 63 |..X.IP x|.XProduc|
|00003e90| 65 73 20 6e 6f 20 6f 75 | 74 70 75 74 2e 20 54 68 |es no ou|tput. Th|
|00003ea0| 69 73 20 6f 70 74 69 6f | 6e 20 69 73 20 70 61 72 |is optio|n is par|
|00003eb0| 74 69 63 75 6c 61 72 6c | 79 20 70 6f 69 6e 74 6c |ticularl|y pointl|
|00003ec0| 65 73 73 2e 0a 58 2e 52 | 45 0a 58 2e 54 50 0a 58 |ess..X.R|E.X.TP.X|
|00003ed0| 2e 42 20 5c 2d 6e 0a 58 | 49 6e 73 74 65 61 64 20 |.B \-n.X|Instead |
|00003ee0| 6f 66 20 6c 69 73 74 69 | 6e 67 20 65 61 63 68 20 |of listi|ng each |
|00003ef0| 6d 65 73 73 61 67 65 2c | 20 74 68 65 20 6d 61 69 |message,| the mai|
|00003f00| 6c 62 6f 78 20 69 73 20 | 72 65 61 64 20 61 6e 64 |lbox is |read and|
|00003f10| 20 61 20 73 69 6e 67 6c | 65 0a 58 6c 69 6e 65 20 | a singl|e.Xline |
|00003f20| 6f 66 20 74 68 65 20 66 | 6f 72 6d 20 22 59 6f 75 |of the f|orm "You|
|00003f30| 20 68 61 76 65 20 6e 65 | 77 2f 75 6e 72 65 61 64 | have ne|w/unread|
|00003f40| 20 6d 61 69 6c 22 20 69 | 73 20 70 72 69 6e 74 65 | mail" i|s printe|
|00003f50| 64 20 74 6f 20 73 74 64 | 65 72 72 2e 0a 58 2e 54 |d to std|err..X.T|
|00003f60| 50 0a 58 2e 42 20 5c 2d | 4e 0a 58 4c 69 6b 65 20 |P.X.B \-|N.XLike |
|00003f70| 5c 66 42 5c 2d 6e 5c 66 | 52 2c 20 62 75 74 20 64 |\fB\-n\f|R, but d|
|00003f80| 6f 65 73 20 6e 6f 74 20 | 73 75 70 70 72 65 73 73 |oes not |suppress|
|00003f90| 20 6c 69 73 74 69 6e 67 | 20 6f 66 20 74 68 65 20 | listing| of the |
|00003fa0| 69 6e 64 69 76 69 64 75 | 61 6c 20 6d 65 73 73 61 |individu|al messa|
|00003fb0| 67 65 73 2e 0a 58 2e 54 | 50 0a 58 2e 42 20 5c 2d |ges..X.T|P.X.B \-|
|00003fc0| 74 5c 66 52 2c 20 5c 66 | 42 5c 2d 54 0a 58 4c 69 |t\fR, \f|B\-T.XLi|
|00003fd0| 6b 65 20 5c 66 42 5c 2d | 6e 5c 66 52 2c 20 62 75 |ke \fB\-|n\fR, bu|
|00003fe0| 74 20 70 72 69 6e 74 73 | 20 61 20 74 61 6c 6c 79 |t prints| a tally|
|00003ff0| 20 6f 66 20 6e 65 77 20 | 61 6e 64 20 75 6e 72 65 | of new |and unre|
|00004000| 61 64 20 6d 65 73 73 61 | 67 65 73 20 28 69 6e 20 |ad messa|ges (in |
|00004010| 45 6e 67 6c 69 73 68 29 | 2e 0a 58 2e 54 50 0a 58 |English)|..X.TP.X|
|00004020| 2e 42 20 5c 2d 68 0a 58 | 53 75 70 70 72 65 73 73 |.B \-h.X|Suppress|
|00004030| 65 73 20 74 68 65 20 64 | 65 63 6f 72 61 74 69 76 |es the d|ecorativ|
|00004040| 65 20 6c 69 6e 65 73 20 | 61 72 6f 75 6e 64 20 74 |e lines |around t|
|00004050| 68 65 20 6d 65 73 73 61 | 67 65 20 6c 69 73 74 69 |he messa|ge listi|
|00004060| 6e 67 2c 20 69 66 0a 58 | 61 6e 79 2e 20 4f 6e 6c |ng, if.X|any. Onl|
|00004070| 79 20 68 61 73 20 65 66 | 66 65 63 74 20 77 69 74 |y has ef|fect wit|
|00004080| 68 20 74 68 65 20 6f 70 | 74 69 6f 6e 20 5c 66 42 |h the op|tion \fB|
|00004090| 5c 2d 66 6e 5c 66 52 2e | 0a 58 2e 54 50 0a 58 2e |\-fn\fR.|.X.TP.X.|
|000040a0| 42 20 2d 77 0a 58 43 61 | 75 73 65 73 20 5c 66 42 |B -w.XCa|uses \fB|
|000040b0| 6d 6e 5c 66 52 20 74 6f | 20 61 76 6f 69 64 20 75 |mn\fR to| avoid u|
|000040c0| 73 69 6e 67 20 74 68 65 | 20 6c 61 73 74 20 63 6f |sing the| last co|
|000040d0| 6c 75 6d 6e 2c 20 66 6f | 72 20 74 65 72 6d 69 6e |lumn, fo|r termin|
|000040e0| 61 6c 73 0a 58 74 68 61 | 74 20 77 72 61 70 20 6f |als.Xtha|t wrap o|
|000040f0| 6e 20 74 68 65 20 6c 61 | 73 74 20 63 6f 6c 75 6d |n the la|st colum|
|00004100| 6e 2e 20 4d 75 6c 74 69 | 70 6c 65 20 2d 77 20 73 |n. Multi|ple -w s|
|00004110| 77 69 74 63 68 65 73 20 | 63 61 6e 20 62 65 0a 58 |witches |can be.X|
|00004120| 75 73 65 64 20 74 6f 20 | 64 65 63 72 65 6d 65 6e |used to |decremen|
|00004130| 74 20 74 68 65 20 77 69 | 64 74 68 20 62 79 20 61 |t the wi|dth by a|
|00004140| 6e 20 61 72 62 69 74 72 | 61 72 79 20 61 6d 6f 75 |n arbitr|ary amou|
|00004150| 6e 74 2e 0a 58 2e 54 50 | 0a 58 2e 42 20 5c 2d 65 |nt..X.TP|.X.B \-e|
|00004160| 5c 66 49 6e 6e 6e 0a 58 | 45 78 63 6c 75 64 65 20 |\fInnn.X|Exclude |
|00004170| 6d 65 73 73 61 67 65 73 | 20 77 69 74 68 20 73 70 |messages| with sp|
|00004180| 65 63 69 66 69 65 64 20 | 73 74 61 74 75 73 20 66 |ecified |status f|
|00004190| 6c 61 67 73 2e 20 4d 65 | 73 73 61 67 65 73 20 77 |lags. Me|ssages w|
|000041a0| 69 74 68 0a 58 73 74 61 | 74 75 73 20 66 6c 61 67 |ith.Xsta|tus flag|
|000041b0| 73 20 63 6f 72 72 65 73 | 70 6f 6e 64 69 6e 67 20 |s corres|ponding |
|000041c0| 74 6f 20 5c 66 49 6e 6e | 6e 5c 66 52 20 61 72 65 |to \fInn|n\fR are|
|000041d0| 20 6e 6f 74 20 6c 69 73 | 74 65 64 2e 0a 58 2e 54 | not lis|ted..X.T|
|000041e0| 50 0a 58 2e 42 20 5c 2d | 69 5c 66 49 6e 6e 6e 0a |P.X.B \-|i\fInnn.|
|000041f0| 58 49 6e 63 6c 75 64 65 | 20 6d 65 73 73 61 67 65 |XInclude| message|
|00004200| 73 20 77 69 74 68 20 73 | 70 65 63 69 66 69 65 64 |s with s|pecified|
|00004210| 20 73 74 61 74 75 73 20 | 66 6c 61 67 73 2e 20 54 | status |flags. T|
|00004220| 68 69 73 20 69 73 20 74 | 68 65 20 72 65 76 65 72 |his is t|he rever|
|00004230| 73 65 0a 58 6f 66 20 5c | 66 42 5c 2d 65 5c 66 52 |se.Xof \|fB\-e\fR|
|00004240| 2e 20 49 6e 69 74 69 61 | 6c 6c 79 2c 20 62 79 20 |. Initia|lly, by |
|00004250| 64 65 66 61 75 6c 74 2c | 20 61 6c 6c 20 6d 65 73 |default,| all mes|
|00004260| 73 61 67 65 73 20 61 72 | 65 20 69 6e 63 6c 75 64 |sages ar|e includ|
|00004270| 65 64 2e 0a 58 4c 61 74 | 65 72 20 5c 66 42 5c 2d |ed..XLat|er \fB\-|
|00004280| 65 5c 66 52 20 61 6e 64 | 20 5c 66 42 5c 2d 69 5c |e\fR and| \fB\-i\|
|00004290| 66 52 20 73 77 69 74 63 | 68 65 73 20 6f 76 65 72 |fR switc|hes over|
|000042a0| 72 69 64 65 20 70 72 65 | 76 69 6f 75 73 0a 58 6f |ride pre|vious.Xo|
|000042b0| 6e 65 73 2c 20 61 6c 6c | 6f 77 69 6e 67 20 61 20 |nes, all|owing a |
|000042c0| 63 6f 6d 70 6c 65 78 20 | 62 6f 6f 6c 65 61 6e 20 |complex |boolean |
|000042d0| 6d 65 73 73 61 67 65 20 | 66 69 6c 74 65 72 20 74 |message |filter t|
|000042e0| 6f 20 62 65 20 62 75 69 | 6c 74 20 75 70 0a 58 28 |o be bui|lt up.X(|
|000042f0| 74 68 69 73 20 77 6f 75 | 6c 64 20 66 69 6e 64 20 |this wou|ld find |
|00004300| 6d 6f 72 65 20 75 73 65 | 20 69 66 20 74 68 65 72 |more use| if ther|
|00004310| 65 20 77 65 72 65 20 6d | 6f 72 65 20 74 68 61 6e |e were m|ore than|
|00004320| 20 74 77 6f 20 66 6c 61 | 67 73 20 74 6f 0a 58 74 | two fla|gs to.Xt|
|00004330| 65 73 74 2e 29 0a 58 2e | 50 50 0a 58 54 68 65 20 |est.).X.|PP.XThe |
|00004340| 6e 61 6d 65 20 5c 66 42 | 20 2d 20 5c 66 52 20 63 |name \fB| - \fR c|
|00004350| 61 6e 20 62 65 20 75 73 | 65 64 20 74 6f 20 64 65 |an be us|ed to de|
|00004360| 6e 6f 74 65 20 74 68 65 | 20 73 74 61 6e 64 61 72 |note the| standar|
|00004370| 64 20 69 6e 70 75 74 2e | 0a 58 2e 50 50 0a 58 2e |d input.|.X.PP.X.|
|00004380| 42 20 4d 6e 0a 58 69 73 | 20 64 65 73 69 67 6e 65 |B Mn.Xis| designe|
|00004390| 64 20 74 6f 20 62 65 20 | 75 73 65 64 20 69 6e 20 |d to be |used in |
|000043a0| 61 20 75 73 65 72 27 73 | 20 2e 6c 6f 67 69 6e 2c |a user's| .login,|
|000043b0| 20 2e 70 72 6f 66 69 6c | 65 20 6f 72 20 73 69 6d | .profil|e or sim|
|000043c0| 69 6c 61 72 0a 58 70 6c | 61 63 65 73 2c 20 68 65 |ilar.Xpl|aces, he|
|000043d0| 6e 63 65 20 74 68 65 20 | 6c 61 63 6b 20 6f 66 20 |nce the |lack of |
|000043e0| 61 20 63 6f 6d 70 6c 65 | 78 20 64 65 66 61 75 6c |a comple|x defaul|
|000043f0| 74 20 62 65 68 61 76 69 | 6f 72 2e 20 0a 58 2e 53 |t behavi|or. .X.S|
|00004400| 48 20 45 58 41 4d 50 4c | 45 53 0a 58 54 68 65 20 |H EXAMPL|ES.XThe |
|00004410| 66 6f 6c 6c 6f 77 69 6e | 67 20 72 65 61 64 73 20 |followin|g reads |
|00004420| 74 68 65 20 75 73 65 72 | 27 73 20 6d 61 69 6c 62 |the user|'s mailb|
|00004430| 6f 78 20 61 6e 64 20 70 | 72 69 6e 74 73 0a 58 6f |ox and p|rints.Xo|
|00004440| 75 74 20 61 20 6c 69 73 | 74 20 6f 66 20 61 6c 6c |ut a lis|t of all|
|00004450| 20 6e 65 77 20 6f 72 20 | 75 6e 72 65 61 64 20 6d | new or |unread m|
|00004460| 65 73 73 61 67 65 73 3a | 0a 58 2e 49 50 0a 58 2e |essages:|.X.IP.X.|
|00004470| 42 20 70 72 6d 61 69 6c | 20 7c 20 6d 6e 20 2d 20 |B prmail| | mn - |
|00004480| 2d 66 6e 20 2d 65 52 0a | 58 2e 50 50 0a 58 52 65 |-fn -eR.|X.PP.XRe|
|00004490| 61 64 20 74 68 65 20 75 | 73 65 72 27 73 20 6d 61 |ad the u|ser's ma|
|000044a0| 69 6c 62 6f 78 20 61 6e | 64 20 69 6e 66 6f 72 6d |ilbox an|d inform|
|000044b0| 20 74 68 65 6d 20 6f 66 | 20 77 61 69 74 69 6e 67 | them of| waiting|
|000044c0| 20 6d 65 73 73 61 67 65 | 73 3a 0a 58 2e 49 50 0a | message|s:.X.IP.|
|000044d0| 58 2e 42 20 6d 6e 20 24 | 4d 41 49 4c 20 2d 6e 0a |X.B mn $|MAIL -n.|
|000044e0| 58 2e 50 50 0a 58 43 72 | 65 61 74 65 20 61 20 6c |X.PP.XCr|eate a l|
|000044f0| 69 73 74 20 6f 66 20 74 | 68 65 20 61 64 64 72 65 |ist of t|he addre|
|00004500| 73 73 65 73 20 6f 66 20 | 65 76 65 72 79 6f 6e 65 |sses of |everyone|
|00004510| 20 77 68 6f 73 65 20 6d | 65 73 73 61 67 65 73 20 | whose m|essages |
|00004520| 61 72 65 20 69 6e 0a 58 | 74 68 65 20 75 73 65 72 |are in.X|the user|
|00004530| 27 73 20 6f 6c 64 2d 6d | 61 69 6c 20 62 6f 78 3a |'s old-m|ail box:|
|00004540| 0a 58 2e 49 50 0a 58 2e | 42 20 6d 6e 20 2d 66 61 |.X.IP.X.|B mn -fa|
|00004550| 20 7e 2f 6d 62 6f 78 20 | 3e 20 6c 69 73 74 0a 58 | ~/mbox |> list.X|
|00004560| 2e 53 48 20 46 49 4c 45 | 53 0a 58 49 66 20 6e 6f |.SH FILE|S.XIf no|
|00004570| 20 66 69 6c 65 20 69 73 | 20 73 70 65 63 69 66 69 | file is| specifi|
|00004580| 65 64 20 6f 6e 20 74 68 | 65 20 63 6f 6d 6d 61 6e |ed on th|e comman|
|00004590| 64 20 6c 69 6e 65 2c 20 | 5c 66 42 6d 6e 5c 66 52 |d line, |\fBmn\fR|
|000045a0| 20 73 65 61 72 63 68 65 | 73 20 66 6f 72 0a 58 61 | searche|s for.Xa|
|000045b0| 6e 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 20 76 61 |n enviro|nment va|
|000045c0| 72 69 61 62 6c 65 20 6e | 61 6d 65 64 20 5c 66 49 |riable n|amed \fI|
|000045d0| 4d 41 49 4c 5c 66 42 2c | 20 63 6f 6e 74 61 69 6e |MAIL\fB,| contain|
|000045e0| 69 6e 67 20 74 68 65 20 | 6e 61 6d 65 20 6f 66 0a |ing the |name of.|
|000045f0| 58 74 68 65 20 6d 61 69 | 6c 62 6f 78 2e 20 46 61 |Xthe mai|lbox. Fa|
|00004600| 69 6c 69 6e 67 20 74 68 | 69 73 2c 20 0a 58 5c 66 |iling th|is, .X\f|
|00004610| 42 6d 6e 5c 66 52 0a 58 | 6c 6f 6f 6b 73 20 66 6f |Bmn\fR.X|looks fo|
|00004620| 72 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 20 76 61 |r enviro|nment va|
|00004630| 72 69 61 62 6c 65 73 20 | 5c 66 49 55 53 45 52 5c |riables |\fIUSER\|
|00004640| 66 52 20 6f 72 20 5c 66 | 49 4c 4f 47 4e 41 4d 45 |fR or \f|ILOGNAME|
|00004650| 5c 66 52 2c 20 61 70 70 | 65 6e 64 73 0a 58 74 68 |\fR, app|ends.Xth|
|00004660| 65 69 72 20 63 6f 6e 74 | 65 6e 74 73 20 74 6f 20 |eir cont|ents to |
|00004670| 74 68 65 20 73 74 72 69 | 6e 67 20 5c 66 42 2f 75 |the stri|ng \fB/u|
|00004680| 73 72 2f 73 70 6f 6f 6c | 2f 6d 61 69 6c 2f 5c 66 |sr/spool|/mail/\f|
|00004690| 52 2c 20 61 6e 64 20 61 | 74 74 65 6d 70 74 73 0a |R, and a|ttempts.|
|000046a0| 58 74 6f 20 6f 70 65 6e | 20 74 68 65 20 66 69 6c |Xto open| the fil|
|000046b0| 65 2e 20 41 66 74 65 72 | 20 74 68 61 74 20 69 74 |e. After| that it|
|000046c0| 20 67 69 76 65 73 20 75 | 70 2e 0a 58 2e 53 48 20 | gives u|p..X.SH |
|000046d0| 53 45 45 20 41 4c 53 4f | 0a 58 2e 42 52 20 66 72 |SEE ALSO|.X.BR fr|
|000046e0| 6f 6d 20 28 31 29 2c 0a | 58 2e 42 52 20 70 72 6d |om (1),.|X.BR prm|
|000046f0| 61 69 6c 20 28 31 29 2c | 0a 58 2e 42 52 20 6d 61 |ail (1),|.X.BR ma|
|00004700| 69 6c 20 28 31 29 2e 0a | 58 2e 53 48 20 42 55 47 |il (1)..|X.SH BUG|
|00004710| 53 0a 58 4c 69 6e 65 73 | 20 67 72 65 61 74 65 72 |S.XLines| greater|
|00004720| 20 74 68 61 6e 20 61 62 | 6f 75 74 20 32 35 30 20 | than ab|out 250 |
|00004730| 63 68 61 72 61 63 74 65 | 72 73 20 77 69 6c 6c 20 |characte|rs will |
|00004740| 67 65 74 20 73 69 6c 65 | 6e 74 6c 79 20 66 6f 6c |get sile|ntly fol|
|00004750| 64 65 64 2e 0a 58 4c 69 | 6e 65 73 20 61 6c 6d 6f |ded..XLi|nes almo|
|00004760| 73 74 20 65 78 61 63 74 | 6c 79 20 32 35 30 20 63 |st exact|ly 250 c|
|00004770| 68 61 72 61 63 74 65 72 | 73 20 6c 6f 6e 67 20 6d |haracter|s long m|
|00004780| 61 79 20 63 6f 6e 66 75 | 73 65 20 5c 66 42 6d 6e |ay confu|se \fBmn|
|00004790| 5c 66 52 2e 20 0a 58 2e | 50 50 0a 58 54 68 65 20 |\fR. .X.|PP.XThe |
|000047a0| 61 6c 67 6f 72 69 74 68 | 6d 20 75 73 65 64 20 74 |algorith|m used t|
|000047b0| 6f 20 64 65 74 65 72 6d | 69 6e 65 20 77 68 69 63 |o determ|ine whic|
|000047c0| 68 20 70 61 72 74 20 6f | 66 20 74 68 65 20 6f 72 |h part o|f the or|
|000047d0| 69 67 69 6e 61 74 69 6e | 67 0a 58 61 64 64 72 65 |iginatin|g.Xaddre|
|000047e0| 73 73 20 74 6f 20 64 69 | 73 70 6c 61 79 20 77 68 |ss to di|splay wh|
|000047f0| 65 6e 20 75 73 69 6e 67 | 20 74 68 65 20 5c 66 42 |en using| the \fB|
|00004800| 5c 2d 66 6e 5c 66 52 20 | 73 77 69 74 63 68 20 63 |\-fn\fR |switch c|
|00004810| 6f 75 6c 64 20 75 73 65 | 20 73 6f 6d 65 0a 58 77 |ould use| some.Xw|
|00004820| 6f 72 6b 2e 20 53 70 65 | 63 69 66 69 63 61 6c 6c |ork. Spe|cificall|
|00004830| 79 2c 20 61 64 64 72 65 | 73 73 65 73 20 6f 66 20 |y, addre|sses of |
|00004840| 74 68 65 20 66 6f 72 6d | 20 0a 58 2e 42 20 75 73 |the form| .X.B us|
|00004850| 65 72 25 68 6f 73 74 25 | 68 6f 73 74 25 68 6f 73 |er%host%|host%hos|
|00004860| 74 40 68 6f 73 74 0a 58 | 61 72 65 20 64 69 73 70 |t@host.X|are disp|
|00004870| 6c 61 79 65 64 20 69 6e | 63 6f 72 72 65 63 74 6c |layed in|correctl|
|00004880| 79 2e 0a 58 2e 50 50 0a | 58 43 65 72 74 61 69 6e |y..X.PP.|XCertain|
|00004890| 20 61 73 73 75 6d 70 74 | 69 6f 6e 73 20 61 72 65 | assumpt|ions are|
|000048a0| 20 6d 61 64 65 20 61 62 | 6f 75 74 20 74 68 65 20 | made ab|out the |
|000048b0| 6f 72 64 65 72 20 6f 66 | 20 74 68 65 20 68 65 61 |order of| the hea|
|000048c0| 64 65 72 20 6c 69 6e 65 | 73 20 69 6e 0a 58 74 68 |der line|s in.Xth|
|000048d0| 65 20 6d 61 69 6c 62 6f | 78 20 66 69 6c 65 20 77 |e mailbo|x file w|
|000048e0| 68 69 63 68 20 6d 61 79 | 20 62 72 65 61 6b 20 5c |hich may| break \|
|000048f0| 66 42 6d 6e 5c 66 52 20 | 6f 6e 20 73 6f 6d 65 20 |fBmn\fR |on some |
|00004900| 73 79 73 74 65 6d 73 2e | 0a 58 2e 53 48 20 41 55 |systems.|.X.SH AU|
|00004910| 54 48 4f 52 0a 58 57 69 | 6d 20 4c 65 77 69 73 20 |THOR.XWi|m Lewis |
|00004920| 28 77 69 6d 6c 40 6d 69 | 6c 74 6f 6e 2e 75 2e 77 |(wiml@mi|lton.u.w|
|00004930| 61 73 68 69 6e 67 74 6f | 6e 2e 65 64 75 29 0a 53 |ashingto|n.edu).S|
|00004940| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00004950| 33 38 33 33 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 |3833 -ne| "`wc -c|
|00004960| 20 3c 20 27 6d 6e 2e 31 | 27 60 22 0a 74 68 65 6e | < 'mn.1|'`".then|
|00004970| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 22 65 72 |..echo s|har: "er|
|00004980| 72 6f 72 20 74 72 61 6e | 73 6d 69 74 74 69 6e 67 |ror tran|smitting|
|00004990| 20 27 6d 6e 2e 31 27 22 | 20 27 28 73 68 6f 75 6c | 'mn.1'"| '(shoul|
|000049a0| 64 20 68 61 76 65 20 62 | 65 65 6e 20 33 38 33 33 |d have b|een 3833|
|000049b0| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 66 69 | charact|ers)'.fi|
|000049c0| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 22 |.fi.echo| shar: "|
|000049d0| 65 78 74 72 61 63 74 69 | 6e 67 20 27 4d 61 6b 65 |extracti|ng 'Make|
|000049e0| 66 69 6c 65 27 22 20 27 | 28 32 34 32 20 63 68 61 |file'" '|(242 cha|
|000049f0| 72 61 63 74 65 72 73 29 | 27 0a 69 66 20 74 65 73 |racters)|'.if tes|
|00004a00| 74 20 2d 66 20 27 4d 61 | 6b 65 66 69 6c 65 27 0a |t -f 'Ma|kefile'.|
|00004a10| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00004a20| 20 22 77 69 6c 6c 20 6e | 6f 74 20 6f 76 65 72 2d | "will n|ot over-|
|00004a30| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|00004a40| 69 6c 65 20 27 4d 61 6b | 65 66 69 6c 65 27 22 0a |ile 'Mak|efile'".|
|00004a50| 65 6c 73 65 0a 73 65 64 | 20 27 73 2f 5e 58 2f 2f |else.sed| 's/^X//|
|00004a60| 27 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |' << \SH|AR_EOF >|
|00004a70| 20 27 4d 61 6b 65 66 69 | 6c 65 27 0a 58 23 0a 58 | 'Makefi|le'.X#.X|
|00004a80| 23 20 20 20 4d 61 6b 65 | 66 69 6c 65 20 66 6f 72 |# Make|file for|
|00004a90| 20 6d 61 79 6e 6f 74 20 | 6d 61 69 6c 20 6e 6f 74 | maynot |mail not|
|00004aa0| 69 66 69 63 61 74 69 6f | 6e 0a 58 23 0a 58 61 6c |ificatio|n.X#.Xal|
|00004ab0| 6c 3a 20 6d 6e 20 6d 6e | 2e 6d 61 6e 0a 58 23 0a |l: mn mn|.man.X#.|
|00004ac0| 58 6d 6e 3a 20 6d 6e 2e | 6f 0a 58 09 63 63 20 2d |Xmn: mn.|o.X.cc -|
|00004ad0| 6f 20 6d 6e 20 6d 6e 2e | 6f 0a 58 6d 6e 2e 6d 61 |o mn mn.|o.Xmn.ma|
|00004ae0| 6e 3a 20 6d 6e 2e 31 0a | 58 09 6e 72 6f 66 66 20 |n: mn.1.|X.nroff |
|00004af0| 2d 6d 61 6e 20 6d 6e 2e | 31 20 3e 6d 6e 2e 6d 61 |-man mn.|1 >mn.ma|
|00004b00| 6e 0a 58 23 0a 58 6c 69 | 6e 74 3a 0a 58 09 6c 69 |n.X#.Xli|nt:.X.li|
|00004b10| 6e 74 20 2d 62 68 61 70 | 63 20 6d 6e 2e 63 0a 58 |nt -bhap|c mn.c.X|
|00004b20| 23 0a 58 73 68 61 72 3a | 09 6d 6e 2e 63 20 6d 6e |#.Xshar:|.mn.c mn|
|00004b30| 2e 31 20 52 45 41 44 4d | 45 20 4d 61 6b 65 66 69 |.1 READM|E Makefi|
|00004b40| 6c 65 0a 58 09 73 68 61 | 72 20 2d 76 20 2d 63 20 |le.X.sha|r -v -c |
|00004b50| 2d 62 20 2d 70 20 58 20 | 52 45 41 44 4d 45 20 6d |-b -p X |README m|
|00004b60| 6e 2e 63 20 6d 6e 2e 31 | 20 4d 61 6b 65 66 69 6c |n.c mn.1| Makefil|
|00004b70| 65 20 3e 6d 6e 2e 73 68 | 61 72 0a 58 23 0a 53 48 |e >mn.sh|ar.X#.SH|
|00004b80| 41 52 5f 45 4f 46 0a 69 | 66 20 74 65 73 74 20 32 |AR_EOF.i|f test 2|
|00004b90| 34 32 20 2d 6e 65 20 22 | 60 77 63 20 2d 63 20 3c |42 -ne "|`wc -c <|
|00004ba0| 20 27 4d 61 6b 65 66 69 | 6c 65 27 60 22 0a 74 68 | 'Makefi|le'`".th|
|00004bb0| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 22 |en..echo| shar: "|
|00004bc0| 65 72 72 6f 72 20 74 72 | 61 6e 73 6d 69 74 74 69 |error tr|ansmitti|
|00004bd0| 6e 67 20 27 4d 61 6b 65 | 66 69 6c 65 27 22 20 27 |ng 'Make|file'" '|
|00004be0| 28 73 68 6f 75 6c 64 20 | 68 61 76 65 20 62 65 65 |(should |have bee|
|00004bf0| 6e 20 32 34 32 20 63 68 | 61 72 61 63 74 65 72 73 |n 242 ch|aracters|
|00004c00| 29 27 0a 66 69 0a 66 69 | 0a 65 78 69 74 20 30 0a |)'.fi.fi|.exit 0.|
|00004c10| 23 09 45 6e 64 20 6f 66 | 20 73 68 65 6c 6c 20 61 |#.End of| shell a|
|00004c20| 72 63 68 69 76 65 0a 0a | 2d 2d 0a 77 69 6d 6c 40 |rchive..|--.wiml@|
|00004c30| 6d 69 6c 74 6f 6e 2e 61 | 63 73 2e 77 61 73 68 69 |milton.a|cs.washi|
|00004c40| 6e 67 74 6f 6e 2e 65 64 | 75 20 20 20 20 20 20 53 |ngton.ed|u S|
|00004c50| 65 61 74 74 6c 65 2c 20 | 57 61 73 68 69 6e 67 74 |eattle, |Washingt|
|00004c60| 6f 6e 20 20 7c 20 4e 6f | 20 73 69 67 20 75 6e 64 |on | No| sig und|
|00004c70| 65 72 0a 28 57 69 6c 6c | 69 61 6d 20 4c 65 77 69 |er.(Will|iam Lewi|
|00004c80| 73 29 20 20 7c 20 20 34 | 37 20 34 31 27 20 31 35 |s) | 4|7 41' 15|
|00004c90| 22 20 4e 20 20 20 31 32 | 32 20 34 32 27 20 35 38 |" N 12|2 42' 58|
|00004ca0| 22 20 57 20 20 7c 7c 7c | 7c 7c 7c 7c 7c 20 63 6f |" W ||||||||| co|
|00004cb0| 6e 73 74 72 75 63 74 69 | 6f 6e 0a 0a |nstructi|on.. |
+--------+-------------------------+-------------------------+--------+--------+