home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume22 / nn6.4 / part04 < prev    next >
SHell self-extracting ARchive  |  1990-06-07  |  54.6 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news or mail, 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)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 32 32 69 30 33 |Subject:| v22i03|
|00000010| 39 3a 20 20 4e 4e 20 4e | 65 77 73 72 65 61 64 65 |9: NN N|ewsreade|
|00000020| 72 2c 20 72 65 6c 65 61 | 73 65 20 36 2e 34 2c 20 |r, relea|se 6.4, |
|00000030| 50 61 72 74 30 34 2f 32 | 31 0a 4e 65 77 73 67 72 |Part04/2|1.Newsgr|
|00000040| 6f 75 70 73 3a 20 63 6f | 6d 70 2e 73 6f 75 72 63 |oups: co|mp.sourc|
|00000050| 65 73 2e 75 6e 69 78 0a | 41 70 70 72 6f 76 65 64 |es.unix.|Approved|
|00000060| 3a 20 72 73 61 6c 7a 40 | 75 75 6e 65 74 2e 55 55 |: rsalz@|uunet.UU|
|00000070| 2e 4e 45 54 0a 58 2d 43 | 68 65 63 6b 73 75 6d 2d |.NET.X-C|hecksum-|
|00000080| 53 6e 65 66 72 75 3a 20 | 30 35 32 39 30 32 36 61 |Snefru: |0529026a|
|00000090| 20 31 65 33 61 36 30 38 | 36 20 61 32 64 63 32 39 | 1e3a608|6 a2dc29|
|000000a0| 38 64 20 31 65 65 37 32 | 36 62 63 0a 0a 53 75 62 |8d 1ee72|6bc..Sub|
|000000b0| 6d 69 74 74 65 64 2d 62 | 79 3a 20 22 4b 69 6d 20 |mitted-b|y: "Kim |
|000000c0| 46 2e 20 53 74 6f 72 6d | 22 20 3c 73 74 6f 72 6d |F. Storm|" <storm|
|000000d0| 40 74 65 78 61 73 2e 64 | 6b 3e 0a 50 6f 73 74 69 |@texas.d|k>.Posti|
|000000e0| 6e 67 2d 6e 75 6d 62 65 | 72 3a 20 56 6f 6c 75 6d |ng-numbe|r: Volum|
|000000f0| 65 20 32 32 2c 20 49 73 | 73 75 65 20 33 39 0a 41 |e 22, Is|sue 39.A|
|00000100| 72 63 68 69 76 65 2d 6e | 61 6d 65 3a 20 6e 6e 36 |rchive-n|ame: nn6|
|00000110| 2e 34 2f 70 61 72 74 30 | 34 0a 0a 23 21 20 2f 62 |.4/part0|4..#! /b|
|00000120| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|00000130| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |a shell |archive.|
|00000140| 20 20 52 65 6d 6f 76 65 | 20 61 6e 79 74 68 69 6e | Remove| anythin|
|00000150| 67 20 62 65 66 6f 72 65 | 20 74 68 69 73 20 6c 69 |g before| this li|
|00000160| 6e 65 2c 20 74 68 65 6e | 20 66 65 65 64 20 69 74 |ne, then| feed it|
|00000170| 0a 23 20 69 6e 74 6f 20 | 61 20 73 68 65 6c 6c 20 |.# into |a shell |
|00000180| 76 69 61 20 22 73 68 20 | 66 69 6c 65 22 20 6f 72 |via "sh |file" or|
|00000190| 20 73 69 6d 69 6c 61 72 | 2e 20 20 54 6f 20 6f 76 | similar|. To ov|
|000001a0| 65 72 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |erwrite |existing|
|000001b0| 20 66 69 6c 65 73 2c 0a | 23 20 74 79 70 65 20 22 | files,.|# type "|
|000001c0| 73 68 20 66 69 6c 65 20 | 2d 63 22 2e 0a 23 20 54 |sh file |-c"..# T|
|000001d0| 68 65 20 74 6f 6f 6c 20 | 74 68 61 74 20 67 65 6e |he tool |that gen|
|000001e0| 65 72 61 74 65 64 20 74 | 68 69 73 20 61 70 70 65 |erated t|his appe|
|000001f0| 61 72 65 64 20 69 6e 20 | 74 68 65 20 63 6f 6d 70 |ared in |the comp|
|00000200| 2e 73 6f 75 72 63 65 73 | 2e 75 6e 69 78 20 6e 65 |.sources|.unix ne|
|00000210| 77 73 67 72 6f 75 70 3b | 0a 23 20 73 65 6e 64 20 |wsgroup;|.# send |
|00000220| 6d 61 69 6c 20 74 6f 20 | 63 6f 6d 70 2d 73 6f 75 |mail to |comp-sou|
|00000230| 72 63 65 73 2d 75 6e 69 | 78 40 75 75 6e 65 74 2e |rces-uni|x@uunet.|
|00000240| 75 75 2e 6e 65 74 20 69 | 66 20 79 6f 75 20 77 61 |uu.net i|f you wa|
|00000250| 6e 74 20 74 68 61 74 20 | 74 6f 6f 6c 2e 0a 23 20 |nt that |tool..# |
|00000260| 43 6f 6e 74 65 6e 74 73 | 3a 20 20 67 6c 6f 62 61 |Contents|: globa|
|00000270| 6c 2e 63 20 6d 61 6e 2f | 6e 6e 2e 31 2e 44 0a 23 |l.c man/|nn.1.D.#|
|00000280| 20 57 72 61 70 70 65 64 | 20 62 79 20 73 74 6f 72 | Wrapped| by stor|
|00000290| 6d 40 74 65 78 61 73 2e | 64 6b 20 6f 6e 20 53 75 |m@texas.|dk on Su|
|000002a0| 6e 20 4d 61 79 20 20 36 | 20 31 38 3a 31 39 3a 32 |n May 6| 18:19:2|
|000002b0| 32 20 31 39 39 30 0a 50 | 41 54 48 3d 2f 62 69 6e |2 1990.P|ATH=/bin|
|000002c0| 3a 2f 75 73 72 2f 62 69 | 6e 3a 2f 75 73 72 2f 75 |:/usr/bi|n:/usr/u|
|000002d0| 63 62 20 3b 20 65 78 70 | 6f 72 74 20 50 41 54 48 |cb ; exp|ort PATH|
|000002e0| 0a 65 63 68 6f 20 49 66 | 20 74 68 69 73 20 61 72 |.echo If| this ar|
|000002f0| 63 68 69 76 65 20 69 73 | 20 63 6f 6d 70 6c 65 74 |chive is| complet|
|00000300| 65 2c 20 79 6f 75 20 77 | 69 6c 6c 20 73 65 65 20 |e, you w|ill see |
|00000310| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 6d 65 |the foll|owing me|
|00000320| 73 73 61 67 65 3a 0a 65 | 63 68 6f 20 27 20 20 20 |ssage:.e|cho ' |
|00000330| 20 20 20 20 20 20 20 22 | 73 68 61 72 3a 20 45 6e | "|shar: En|
|00000340| 64 20 6f 66 20 61 72 63 | 68 69 76 65 20 34 20 28 |d of arc|hive 4 (|
|00000350| 6f 66 20 32 32 29 2e 22 | 27 0a 69 66 20 74 65 73 |of 22)."|'.if tes|
|00000360| 74 20 2d 66 20 27 67 6c | 6f 62 61 6c 2e 63 27 20 |t -f 'gl|obal.c' |
|00000370| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|00000380| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|00000390| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|000003a0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|000003b0| 20 66 69 6c 65 20 5c 22 | 27 67 6c 6f 62 61 6c 2e | file \"|'global.|
|000003c0| 63 27 5c 22 0a 65 6c 73 | 65 0a 20 20 65 63 68 6f |c'\".els|e. echo|
|000003d0| 20 73 68 61 72 3a 20 45 | 78 74 72 61 63 74 69 6e | shar: E|xtractin|
|000003e0| 67 20 5c 22 27 67 6c 6f | 62 61 6c 2e 63 27 5c 22 |g \"'glo|bal.c'\"|
|000003f0| 20 5c 28 31 32 33 32 33 | 20 63 68 61 72 61 63 74 | \(12323| charact|
|00000400| 65 72 73 5c 29 0a 20 20 | 73 65 64 20 22 73 2f 5e |ers\). |sed "s/^|
|00000410| 58 2f 2f 22 20 3e 27 67 | 6c 6f 62 61 6c 2e 63 27 |X//" >'g|lobal.c'|
|00000420| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00000430| 0a 58 2f 2a 0a 58 20 2a | 09 28 63 29 20 43 6f 70 |.X/*.X *|.(c) Cop|
|00000440| 79 72 69 67 68 74 20 31 | 39 39 30 2c 20 4b 69 6d |yright 1|990, Kim|
|00000450| 20 46 61 62 72 69 63 69 | 75 73 20 53 74 6f 72 6d | Fabrici|us Storm|
|00000460| 2e 20 20 41 6c 6c 20 72 | 69 67 68 74 73 20 72 65 |. All r|ights re|
|00000470| 73 65 72 76 65 64 2e 0a | 58 20 2a 0a 58 20 2a 09 |served..|X *.X *.|
|00000480| 47 6c 6f 62 61 6c 20 64 | 65 63 6c 61 72 61 74 69 |Global d|eclarati|
|00000490| 6f 6e 73 20 61 6e 64 20 | 61 75 78 69 6c 69 61 72 |ons and |auxiliar|
|000004a0| 79 20 66 75 6e 63 74 69 | 6f 6e 73 2e 0a 58 20 2a |y functi|ons..X *|
|000004b0| 2f 0a 58 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |/.X.X#in|clude <s|
|000004c0| 69 67 6e 61 6c 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |ignal.h>|.X#inclu|
|000004d0| 64 65 20 3c 65 72 72 6e | 6f 2e 68 3e 0a 58 23 69 |de <errn|o.h>.X#i|
|000004e0| 6e 63 6c 75 64 65 20 3c | 70 77 64 2e 68 3e 0a 58 |nclude <|pwd.h>.X|
|000004f0| 23 69 6e 63 6c 75 64 65 | 20 22 63 6f 6e 66 69 67 |#include| "config|
|00000500| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 70 |.h".X#in|clude "p|
|00000510| 61 74 63 68 6c 65 76 65 | 6c 2e 68 22 0a 58 0a 58 |atchleve|l.h".X.X|
|00000520| 65 78 70 6f 72 74 20 63 | 68 61 72 20 2a 68 6f 6d |export c|har *hom|
|00000530| 65 5f 64 69 72 65 63 74 | 6f 72 79 3b 0a 58 65 78 |e_direct|ory;.Xex|
|00000540| 70 6f 72 74 20 63 68 61 | 72 20 2a 6e 6e 5f 64 69 |port cha|r *nn_di|
|00000550| 72 65 63 74 6f 72 79 3b | 09 09 2f 2a 20 7e 2f 2e |rectory;|../* ~/.|
|00000560| 6e 6e 20 2a 2f 0a 58 65 | 78 70 6f 72 74 20 63 68 |nn */.Xe|xport ch|
|00000570| 61 72 20 2a 6e 65 77 73 | 5f 64 69 72 65 63 74 6f |ar *news|_directo|
|00000580| 72 79 3b 09 09 2f 2a 20 | 2f 75 73 72 2f 73 70 6f |ry;../* |/usr/spo|
|00000590| 6f 6c 2f 6e 65 77 73 20 | 2a 2f 0a 58 65 78 70 6f |ol/news |*/.Xexpo|
|000005a0| 72 74 20 63 68 61 72 20 | 2a 6e 65 77 73 5f 6c 69 |rt char |*news_li|
|000005b0| 62 5f 64 69 72 65 63 74 | 6f 72 79 3b 20 09 2f 2a |b_direct|ory; ./*|
|000005c0| 20 2f 75 73 72 2f 6c 69 | 62 2f 6e 65 77 73 20 2a | /usr/li|b/news *|
|000005d0| 2f 0a 58 65 78 70 6f 72 | 74 20 63 68 61 72 20 2a |/.Xexpor|t char *|
|000005e0| 6c 69 62 5f 64 69 72 65 | 63 74 6f 72 79 3b 09 09 |lib_dire|ctory;..|
|000005f0| 2f 2a 20 2f 75 73 72 2f | 6c 6f 63 61 6c 2f 6c 69 |/* /usr/|local/li|
|00000600| 62 2f 6e 6e 20 2a 2f 0a | 58 65 78 70 6f 72 74 20 |b/nn */.|Xexport |
|00000610| 63 68 61 72 20 2a 6d 61 | 73 74 65 72 5f 64 69 72 |char *ma|ster_dir|
|00000620| 65 63 74 6f 72 79 3b 09 | 09 2f 2a 20 3d 20 6c 69 |ectory;.|./* = li|
|00000630| 62 20 2a 2f 0a 58 65 78 | 70 6f 72 74 20 63 68 61 |b */.Xex|port cha|
|00000640| 72 20 2a 68 65 6c 70 5f | 64 69 72 65 63 74 6f 72 |r *help_|director|
|00000650| 79 3b 09 09 2f 2a 20 3d | 20 6c 69 62 2f 68 65 6c |y;../* =| lib/hel|
|00000660| 70 20 2a 2f 0a 58 65 78 | 70 6f 72 74 20 63 68 61 |p */.Xex|port cha|
|00000670| 72 20 2a 62 69 6e 5f 64 | 69 72 65 63 74 6f 72 79 |r *bin_d|irectory|
|00000680| 20 3d 20 42 49 4e 5f 44 | 49 52 45 43 54 4f 52 59 | = BIN_D|IRECTORY|
|00000690| 3b 0a 58 0a 58 65 78 70 | 6f 72 74 20 63 68 61 72 |;.X.Xexp|ort char|
|000006a0| 20 2a 64 62 5f 64 69 72 | 65 63 74 6f 72 79 3b 09 | *db_dir|ectory;.|
|000006b0| 2f 2a 20 2f 75 73 72 2f | 73 70 6f 6f 6c 2f 6e 6e |/* /usr/|spool/nn|
|000006c0| 20 6f 72 20 4e 45 57 53 | 5f 44 49 52 2f 2e 6e 6e | or NEWS|_DIR/.nn|
|000006d0| 20 2a 2f 0a 58 65 78 70 | 6f 72 74 20 63 68 61 72 | */.Xexp|ort char|
|000006e0| 20 2a 64 62 5f 64 61 74 | 61 5f 64 69 72 65 63 74 | *db_dat|a_direct|
|000006f0| 6f 72 79 3b 09 2f 2a 20 | 2e 2e 2e 2e 2f 44 41 54 |ory;./* |..../DAT|
|00000700| 41 20 20 20 20 20 6f 72 | 20 75 6e 64 65 66 69 6e |A or| undefin|
|00000710| 65 64 20 20 20 20 2a 2f | 0a 58 0a 58 65 78 70 6f |ed */|.X.Xexpo|
|00000720| 72 74 20 63 68 61 72 20 | 2a 6e 65 77 73 5f 61 63 |rt char |*news_ac|
|00000730| 74 69 76 65 3b 09 2f 2a | 20 4e 4c 49 42 2f 61 63 |tive;./*| NLIB/ac|
|00000740| 74 69 76 65 20 6f 72 20 | 44 42 2f 41 43 54 49 56 |tive or |DB/ACTIV|
|00000750| 45 20 2a 2f 0a 58 0a 58 | 65 78 70 6f 72 74 20 63 |E */.X.X|export c|
|00000760| 68 61 72 20 2a 70 61 67 | 65 72 3b 0a 58 0a 58 65 |har *pag|er;.X.Xe|
|00000770| 78 70 6f 72 74 20 63 68 | 61 72 20 2a 6c 6f 67 5f |xport ch|ar *log_|
|00000780| 66 69 6c 65 3b 09 09 09 | 2f 2a 20 3d 20 6c 69 62 |file;...|/* = lib|
|00000790| 2f 4c 6f 67 20 2a 2f 0a | 58 65 78 70 6f 72 74 20 |/Log */.|Xexport |
|000007a0| 63 68 61 72 20 2a 6c 6f | 67 5f 65 6e 74 72 79 5f |char *lo|g_entry_|
|000007b0| 66 69 6c 74 65 72 20 3d | 20 4e 55 4c 4c 3b 0a 58 |filter =| NULL;.X|
|000007c0| 0a 58 65 78 70 6f 72 74 | 20 63 68 61 72 20 2a 74 |.Xexport| char *t|
|000007d0| 65 6d 70 5f 66 69 6c 65 | 3b 0a 58 0a 58 23 69 66 |emp_file|;.X.X#if|
|000007e0| 6e 64 65 66 20 54 4d 50 | 5f 44 49 52 45 43 54 4f |ndef TMP|_DIRECTO|
|000007f0| 52 59 0a 58 23 64 65 66 | 69 6e 65 20 54 4d 50 5f |RY.X#def|ine TMP_|
|00000800| 44 49 52 45 43 54 4f 52 | 59 20 22 2f 75 73 72 2f |DIRECTOR|Y "/usr/|
|00000810| 74 6d 70 22 0a 58 23 65 | 6e 64 69 66 0a 58 65 78 |tmp".X#e|ndif.Xex|
|00000820| 70 6f 72 74 20 63 68 61 | 72 20 2a 74 6d 70 5f 64 |port cha|r *tmp_d|
|00000830| 69 72 65 63 74 6f 72 79 | 20 3d 20 54 4d 50 5f 44 |irectory| = TMP_D|
|00000840| 49 52 45 43 54 4f 52 59 | 3b 0a 58 0a 58 65 78 70 |IRECTORY|;.X.Xexp|
|00000850| 6f 72 74 20 63 68 61 72 | 20 76 65 72 73 69 6f 6e |ort char| version|
|00000860| 5f 69 64 5b 33 32 5d 3b | 0a 58 0a 58 65 78 70 6f |_id[32];|.X.Xexpo|
|00000870| 72 74 20 75 6e 73 69 67 | 6e 65 64 20 73 68 6f 72 |rt unsig|ned shor|
|00000880| 74 20 75 73 65 72 5f 69 | 64 2c 20 67 72 6f 75 70 |t user_i|d, group|
|00000890| 5f 69 64 3b 0a 58 65 78 | 70 6f 72 74 20 69 6e 74 |_id;.Xex|port int|
|000008a0| 20 70 72 6f 63 65 73 73 | 5f 69 64 3b 0a 58 65 78 | process|_id;.Xex|
|000008b0| 70 6f 72 74 20 69 6e 74 | 20 77 68 6f 5f 61 6d 5f |port int| who_am_|
|000008c0| 69 3b 0a 58 65 78 70 6f | 72 74 20 69 6e 74 20 64 |i;.Xexpo|rt int d|
|000008d0| 6f 6e 74 5f 77 72 69 74 | 65 5f 63 6f 6e 73 6f 6c |ont_writ|e_consol|
|000008e0| 65 20 3d 20 30 3b 0a 58 | 0a 58 23 69 66 64 65 66 |e = 0;.X|.X#ifdef|
|000008f0| 20 48 41 56 45 5f 4d 55 | 4c 54 49 47 52 4f 55 50 | HAVE_MU|LTIGROUP|
|00000900| 0a 58 23 69 66 6e 64 65 | 66 20 4e 47 52 4f 55 50 |.X#ifnde|f NGROUP|
|00000910| 53 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 79 73 |S.X#incl|ude <sys|
|00000920| 2f 70 61 72 61 6d 2e 68 | 3e 0a 58 23 65 6e 64 69 |/param.h|>.X#endi|
|00000930| 66 0a 58 23 69 66 6e 64 | 65 66 20 47 49 44 53 45 |f.X#ifnd|ef GIDSE|
|00000940| 54 5f 54 59 50 45 0a 58 | 23 64 65 66 69 6e 65 20 |T_TYPE.X|#define |
|00000950| 47 49 44 53 45 54 5f 54 | 59 50 45 20 69 6e 74 0a |GIDSET_T|YPE int.|
|00000960| 58 23 65 6e 64 69 66 0a | 58 73 74 61 74 69 63 20 |X#endif.|Xstatic |
|00000970| 69 6e 74 20 6e 67 72 6f | 75 70 73 3b 0a 58 73 74 |int ngro|ups;.Xst|
|00000980| 61 74 69 63 20 47 49 44 | 53 45 54 5f 54 59 50 45 |atic GID|SET_TYPE|
|00000990| 20 67 69 64 73 65 74 5b | 4e 47 52 4f 55 50 53 5d | gidset[|NGROUPS]|
|000009a0| 3b 0a 58 0a 58 73 74 61 | 74 69 63 20 69 6e 5f 67 |;.X.Xsta|tic in_g|
|000009b0| 72 70 6c 69 73 74 28 67 | 69 64 29 0a 58 47 49 44 |rplist(g|id).XGID|
|000009c0| 53 45 54 5f 54 59 50 45 | 20 67 69 64 3b 0a 58 7b |SET_TYPE| gid;.X{|
|000009d0| 0a 58 20 20 20 20 69 6e | 74 20 6e 3b 0a 58 0a 58 |.X in|t n;.X.X|
|000009e0| 20 20 20 20 66 6f 72 20 | 28 6e 20 3d 20 30 3b 20 | for |(n = 0; |
|000009f0| 6e 20 3c 20 6e 67 72 6f | 75 70 73 3b 20 2b 2b 6e |n < ngro|ups; ++n|
|00000a00| 29 0a 58 09 69 66 20 28 | 67 69 64 73 65 74 5b 6e |).X.if (|gidset[n|
|00000a10| 5d 20 3d 3d 20 67 69 64 | 29 20 72 65 74 75 72 6e |] == gid|) return|
|00000a20| 20 31 3b 0a 58 0a 58 20 | 20 20 20 72 65 74 75 72 | 1;.X.X | retur|
|00000a30| 6e 20 30 3b 0a 58 7d 0a | 58 0a 58 23 64 65 66 69 |n 0;.X}.|X.X#defi|
|00000a40| 6e 65 20 67 72 6f 75 70 | 5f 61 63 63 65 73 73 28 |ne group|_access(|
|00000a50| 67 70 69 64 29 09 69 6e | 5f 67 72 70 6c 69 73 74 |gpid).in|_grplist|
|00000a60| 28 28 47 49 44 53 45 54 | 5f 54 59 50 45 29 28 67 |((GIDSET|_TYPE)(g|
|00000a70| 70 69 64 29 29 0a 58 23 | 65 6c 73 65 0a 58 23 64 |pid)).X#|else.X#d|
|00000a80| 65 66 69 6e 65 20 67 72 | 6f 75 70 5f 61 63 63 65 |efine gr|oup_acce|
|00000a90| 73 73 28 67 69 64 29 09 | 28 28 67 69 64 29 20 3d |ss(gid).|((gid) =|
|00000aa0| 3d 20 67 72 6f 75 70 5f | 69 64 29 0a 58 23 65 6e |= group_|id).X#en|
|00000ab0| 64 69 66 0a 58 0a 58 2f | 2a 20 73 69 67 6e 61 6c |dif.X.X/|* signal|
|00000ac0| 20 68 61 6e 64 6c 65 72 | 20 69 6e 74 65 72 66 61 | handler| interfa|
|00000ad0| 63 65 20 2a 2f 0a 58 0a | 58 65 78 70 6f 72 74 20 |ce */.X.|Xexport |
|00000ae0| 69 6e 74 20 73 5f 68 61 | 6e 67 75 70 09 09 3d 20 |int s_ha|ngup..= |
|00000af0| 30 3b 09 2f 2a 20 68 61 | 6e 67 75 70 20 73 69 67 |0;./* ha|ngup sig|
|00000b00| 6e 61 6c 20 2a 2f 0a 58 | 65 78 70 6f 72 74 20 69 |nal */.X|export i|
|00000b10| 6e 74 20 73 5f 6b 65 79 | 62 6f 61 72 64 09 09 3d |nt s_key|board..=|
|00000b20| 20 30 3b 09 2f 2a 20 6b | 65 79 62 6f 61 72 64 20 | 0;./* k|eyboard |
|00000b30| 69 6e 74 65 72 72 75 70 | 74 20 2a 2f 0a 58 65 78 |interrup|t */.Xex|
|00000b40| 70 6f 72 74 20 69 6e 74 | 20 73 5f 70 69 70 65 09 |port int| s_pipe.|
|00000b50| 09 3d 20 30 3b 09 2f 2a | 20 62 72 6f 6b 65 6e 20 |.= 0;./*| broken |
|00000b60| 70 69 70 65 20 2a 2f 0a | 58 65 78 70 6f 72 74 20 |pipe */.|Xexport |
|00000b70| 69 6e 74 20 73 5f 72 65 | 64 72 61 77 09 09 3d 20 |int s_re|draw..= |
|00000b80| 30 3b 09 2f 2a 20 72 65 | 64 72 61 77 20 73 69 67 |0;./* re|draw sig|
|00000b90| 6e 61 6c 20 28 69 66 20 | 6a 6f 62 20 63 6f 6e 74 |nal (if |job cont|
|00000ba0| 72 6f 6c 29 20 2a 2f 0a | 58 0a 58 73 69 67 5f 74 |rol) */.|X.Xsig_t|
|00000bb0| 79 70 65 20 63 61 74 63 | 68 5f 68 61 6e 67 75 70 |ype catc|h_hangup|
|00000bc0| 28 6e 29 0a 58 7b 0a 58 | 20 20 20 20 73 69 67 6e |(n).X{.X| sign|
|00000bd0| 61 6c 28 6e 2c 20 53 49 | 47 5f 49 47 4e 29 3b 0a |al(n, SI|G_IGN);.|
|00000be0| 58 0a 58 20 20 20 20 73 | 5f 68 61 6e 67 75 70 2b |X.X s|_hangup+|
|00000bf0| 2b 3b 0a 58 7d 0a 58 0a | 58 73 74 61 74 69 63 20 |+;.X}.X.|Xstatic |
|00000c00| 73 69 67 5f 74 79 70 65 | 20 63 61 74 63 68 5f 6b |sig_type| catch_k|
|00000c10| 65 79 62 6f 61 72 64 28 | 6e 29 0a 58 7b 0a 58 20 |eyboard(|n).X{.X |
|00000c20| 20 20 20 73 5f 6b 65 79 | 62 6f 61 72 64 2b 2b 3b | s_key|board++;|
|00000c30| 0a 58 0a 58 23 69 66 64 | 65 66 20 52 45 53 45 54 |.X.X#ifd|ef RESET|
|00000c40| 5f 53 49 47 4e 41 4c 5f | 57 48 45 4e 5f 43 41 55 |_SIGNAL_|WHEN_CAU|
|00000c50| 47 48 54 0a 58 20 20 20 | 20 73 69 67 6e 61 6c 28 |GHT.X | signal(|
|00000c60| 6e 2c 20 63 61 74 63 68 | 5f 6b 65 79 62 6f 61 72 |n, catch|_keyboar|
|00000c70| 64 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 7d 0a 58 |d);.X#en|dif.X}.X|
|00000c80| 0a 58 73 74 61 74 69 63 | 20 73 69 67 5f 74 79 70 |.Xstatic| sig_typ|
|00000c90| 65 20 63 61 74 63 68 5f | 70 69 70 65 28 6e 29 0a |e catch_|pipe(n).|
|00000ca0| 58 7b 0a 58 20 20 20 20 | 73 5f 70 69 70 65 2b 2b |X{.X |s_pipe++|
|00000cb0| 3b 0a 58 0a 58 23 69 66 | 64 65 66 20 52 45 53 45 |;.X.X#if|def RESE|
|00000cc0| 54 5f 53 49 47 4e 41 4c | 5f 57 48 45 4e 5f 43 41 |T_SIGNAL|_WHEN_CA|
|00000cd0| 55 47 48 54 0a 58 20 20 | 20 20 73 69 67 6e 61 6c |UGHT.X | signal|
|00000ce0| 28 6e 2c 20 63 61 74 63 | 68 5f 70 69 70 65 29 3b |(n, catc|h_pipe);|
|00000cf0| 0a 58 23 65 6e 64 69 66 | 0a 58 7d 0a 58 0a 58 23 |.X#endif|.X}.X.X#|
|00000d00| 69 66 64 65 66 20 48 41 | 56 45 5f 4a 4f 42 43 4f |ifdef HA|VE_JOBCO|
|00000d10| 4e 54 52 4f 4c 0a 58 73 | 74 61 74 69 63 20 73 69 |NTROL.Xs|tatic si|
|00000d20| 67 5f 74 79 70 65 20 63 | 61 74 63 68 5f 73 75 73 |g_type c|atch_sus|
|00000d30| 70 65 6e 64 28 6e 29 0a | 58 7b 0a 58 20 20 20 20 |pend(n).|X{.X |
|00000d40| 73 5f 72 65 64 72 61 77 | 2b 2b 3b 0a 58 0a 58 23 |s_redraw|++;.X.X#|
|00000d50| 69 66 64 65 66 20 52 45 | 53 45 54 5f 53 49 47 4e |ifdef RE|SET_SIGN|
|00000d60| 41 4c 5f 57 48 45 4e 5f | 43 41 55 47 48 54 0a 58 |AL_WHEN_|CAUGHT.X|
|00000d70| 20 20 20 20 73 69 67 6e | 61 6c 28 6e 2c 20 63 61 | sign|al(n, ca|
|00000d80| 74 63 68 5f 73 75 73 70 | 65 6e 64 29 3b 0a 58 23 |tch_susp|end);.X#|
|00000d90| 65 6e 64 69 66 0a 58 0a | 58 20 20 20 20 73 75 73 |endif.X.|X sus|
|00000da0| 70 65 6e 64 5f 6e 6e 28 | 29 3b 0a 58 7d 0a 58 23 |pend_nn(|);.X}.X#|
|00000db0| 65 6e 64 69 66 0a 58 0a | 58 0a 58 69 6e 69 74 5f |endif.X.|X.Xinit_|
|00000dc0| 67 6c 6f 62 61 6c 28 29 | 0a 58 7b 0a 58 20 20 20 |global()|.X{.X |
|00000dd0| 20 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 20 | unsigne|d short |
|00000de0| 67 65 74 75 69 64 28 29 | 2c 20 67 65 74 67 69 64 |getuid()|, getgid|
|00000df0| 28 29 3b 0a 58 20 20 20 | 20 69 6e 74 20 67 65 74 |();.X | int get|
|00000e00| 70 69 64 28 29 3b 0a 58 | 20 20 20 20 69 6e 74 20 |pid();.X| int |
|00000e10| 73 75 73 70 65 6e 64 5f | 6e 6e 28 29 3b 0a 58 0a |suspend_|nn();.X.|
|00000e20| 58 20 20 20 20 69 66 20 | 28 77 68 6f 5f 61 6d 5f |X if |(who_am_|
|00000e30| 69 20 21 3d 20 49 5f 41 | 4d 5f 4e 4e 29 20 7b 0a |i != I_A|M_NN) {.|
|00000e40| 58 09 73 69 67 6e 61 6c | 28 53 49 47 49 4e 54 2c |X.signal|(SIGINT,|
|00000e50| 20 20 53 49 47 5f 49 47 | 4e 29 3b 0a 58 09 73 69 | SIG_IG|N);.X.si|
|00000e60| 67 6e 61 6c 28 53 49 47 | 51 55 49 54 2c 20 53 49 |gnal(SIG|QUIT, SI|
|00000e70| 47 5f 49 47 4e 29 3b 0a | 58 20 20 20 20 7d 0a 58 |G_IGN);.|X }.X|
|00000e80| 20 20 20 20 73 69 67 6e | 61 6c 28 53 49 47 54 45 | sign|al(SIGTE|
|00000e90| 52 4d 2c 20 63 61 74 63 | 68 5f 68 61 6e 67 75 70 |RM, catc|h_hangup|
|00000ea0| 29 3b 0a 58 20 20 20 20 | 73 69 67 6e 61 6c 28 53 |);.X |signal(S|
|00000eb0| 49 47 48 55 50 2c 20 20 | 63 61 74 63 68 5f 68 61 |IGHUP, |catch_ha|
|00000ec0| 6e 67 75 70 29 3b 0a 58 | 20 20 20 20 73 69 67 6e |ngup);.X| sign|
|00000ed0| 61 6c 28 53 49 47 50 49 | 50 45 2c 20 63 61 74 63 |al(SIGPI|PE, catc|
|00000ee0| 68 5f 70 69 70 65 29 3b | 0a 58 20 20 20 20 73 69 |h_pipe);|.X si|
|00000ef0| 67 6e 61 6c 28 53 49 47 | 41 4c 52 4d 2c 20 53 49 |gnal(SIG|ALRM, SI|
|00000f00| 47 5f 49 47 4e 29 3b 0a | 58 0a 58 23 69 66 64 65 |G_IGN);.|X.X#ifde|
|00000f10| 66 20 53 49 47 50 57 52 | 0a 58 20 20 20 20 73 69 |f SIGPWR|.X si|
|00000f20| 67 6e 61 6c 28 53 49 47 | 50 57 52 2c 20 63 61 74 |gnal(SIG|PWR, cat|
|00000f30| 63 68 5f 68 61 6e 67 75 | 70 29 3b 0a 58 23 65 6e |ch_hangu|p);.X#en|
|00000f40| 64 69 66 0a 58 0a 58 20 | 20 20 20 73 70 72 69 6e |dif.X.X | sprin|
|00000f50| 74 66 28 76 65 72 73 69 | 6f 6e 5f 69 64 2c 20 22 |tf(versi|on_id, "|
|00000f60| 25 73 2e 25 64 20 23 25 | 64 22 2c 20 52 45 4c 45 |%s.%d #%|d", RELE|
|00000f70| 41 53 45 2c 20 50 41 54 | 43 48 4c 45 56 45 4c 2c |ASE, PAT|CHLEVEL,|
|00000f80| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 75 70 64 61 |.X#inclu|de "upda|
|00000f90| 74 65 2e 68 22 0a 58 09 | 20 20 20 20 29 3b 0a 58 |te.h".X.| );.X|
|00000fa0| 0a 58 20 20 20 20 75 73 | 65 72 5f 69 64 20 3d 20 |.X us|er_id = |
|00000fb0| 67 65 74 75 69 64 28 29 | 3b 0a 58 0a 58 23 69 66 |getuid()|;.X.X#if|
|00000fc0| 64 65 66 20 48 41 56 45 | 5f 4d 55 4c 54 49 47 52 |def HAVE|_MULTIGR|
|00000fd0| 4f 55 50 0a 58 20 20 20 | 20 6e 67 72 6f 75 70 73 |OUP.X | ngroups|
|00000fe0| 20 3d 20 67 65 74 67 72 | 6f 75 70 73 28 4e 47 52 | = getgr|oups(NGR|
|00000ff0| 4f 55 50 53 2c 20 67 69 | 64 73 65 74 29 3b 09 2f |OUPS, gi|dset);./|
|00001000| 2a 20 47 65 74 20 75 73 | 65 72 73 27 73 20 67 72 |* Get us|ers's gr|
|00001010| 6f 75 70 20 73 65 74 20 | 2a 2f 0a 58 20 20 20 20 |oup set |*/.X |
|00001020| 67 72 6f 75 70 5f 69 64 | 20 3d 20 67 69 64 73 65 |group_id| = gidse|
|00001030| 74 5b 30 5d 3b 09 2f 2a | 20 6e 6f 74 20 75 73 65 |t[0];./*| not use|
|00001040| 64 2c 20 62 75 74 20 6a | 75 73 74 20 69 6e 20 63 |d, but j|ust in c|
|00001050| 61 73 65 2e 2e 2e 20 2a | 2f 0a 58 23 65 6c 73 65 |ase... *|/.X#else|
|00001060| 0a 58 20 20 20 20 67 72 | 6f 75 70 5f 69 64 20 3d |.X gr|oup_id =|
|00001070| 20 67 65 74 67 69 64 28 | 29 3b 0a 58 23 65 6e 64 | getgid(|);.X#end|
|00001080| 69 66 0a 58 0a 58 20 20 | 20 20 70 72 6f 63 65 73 |if.X.X | proces|
|00001090| 73 5f 69 64 20 3d 20 67 | 65 74 70 69 64 28 29 3b |s_id = g|etpid();|
|000010a0| 0a 58 0a 58 23 69 66 64 | 65 66 20 4e 45 57 53 5f |.X.X#ifd|ef NEWS_|
|000010b0| 44 49 52 45 43 54 4f 52 | 59 0a 58 20 20 20 20 6e |DIRECTOR|Y.X n|
|000010c0| 65 77 73 5f 64 69 72 65 | 63 74 6f 72 79 20 3d 20 |ews_dire|ctory = |
|000010d0| 4e 45 57 53 5f 44 49 52 | 45 43 54 4f 52 59 3b 0a |NEWS_DIR|ECTORY;.|
|000010e0| 58 23 65 6c 73 65 0a 58 | 20 20 20 20 6e 65 77 73 |X#else.X| news|
|000010f0| 5f 64 69 72 65 63 74 6f | 72 79 20 3d 20 22 2f 75 |_directo|ry = "/u|
|00001100| 73 72 2f 73 70 6f 6f 6c | 2f 6e 65 77 73 22 3b 0a |sr/spool|/news";.|
|00001110| 58 23 65 6e 64 69 66 0a | 58 0a 58 23 69 66 64 65 |X#endif.|X.X#ifde|
|00001120| 66 20 44 42 5f 44 49 52 | 45 43 54 4f 52 59 0a 58 |f DB_DIR|ECTORY.X|
|00001130| 20 20 20 20 64 62 5f 64 | 69 72 65 63 74 6f 72 79 | db_d|irectory|
|00001140| 20 3d 20 44 42 5f 44 49 | 52 45 43 54 4f 52 59 3b | = DB_DI|RECTORY;|
|00001150| 0a 58 23 65 6c 73 65 0a | 58 20 20 20 20 64 62 5f |.X#else.|X db_|
|00001160| 64 69 72 65 63 74 6f 72 | 79 20 3d 20 6d 6b 5f 66 |director|y = mk_f|
|00001170| 69 6c 65 5f 6e 61 6d 65 | 28 6e 65 77 73 5f 64 69 |ile_name|(news_di|
|00001180| 72 65 63 74 6f 72 79 2c | 20 22 2e 6e 6e 22 29 3b |rectory,| ".nn");|
|00001190| 0a 58 23 65 6e 64 69 66 | 0a 58 0a 58 23 69 66 64 |.X#endif|.X.X#ifd|
|000011a0| 65 66 20 41 43 43 4f 55 | 4e 54 49 4e 47 0a 58 20 |ef ACCOU|NTING.X |
|000011b0| 20 20 20 69 66 20 28 77 | 68 6f 5f 61 6d 5f 69 20 | if (w|ho_am_i |
|000011c0| 3d 3d 20 49 5f 41 4d 5f | 41 43 43 54 29 0a 58 09 |== I_AM_|ACCT).X.|
|000011d0| 72 65 74 75 72 6e 20 30 | 3b 0a 58 23 65 6e 64 69 |return 0|;.X#endi|
|000011e0| 66 0a 58 0a 58 23 69 66 | 64 65 66 20 44 42 5f 44 |f.X.X#if|def DB_D|
|000011f0| 41 54 41 5f 44 49 52 45 | 43 54 4f 52 59 0a 58 20 |ATA_DIRE|CTORY.X |
|00001200| 20 20 20 64 62 5f 64 61 | 74 61 5f 64 69 72 65 63 | db_da|ta_direc|
|00001210| 74 6f 72 79 20 3d 20 44 | 42 5f 44 41 54 41 5f 44 |tory = D|B_DATA_D|
|00001220| 49 52 45 43 54 4f 52 59 | 3b 0a 58 23 65 6c 73 65 |IRECTORY|;.X#else|
|00001230| 0a 58 23 69 66 64 65 66 | 20 44 42 5f 44 49 52 45 |.X#ifdef| DB_DIRE|
|00001240| 43 54 4f 52 59 0a 58 20 | 20 20 20 64 62 5f 64 61 |CTORY.X | db_da|
|00001250| 74 61 5f 64 69 72 65 63 | 74 6f 72 79 20 3d 20 6d |ta_direc|tory = m|
|00001260| 6b 5f 66 69 6c 65 5f 6e | 61 6d 65 28 64 62 5f 64 |k_file_n|ame(db_d|
|00001270| 69 72 65 63 74 6f 72 79 | 2c 20 22 44 41 54 41 22 |irectory|, "DATA"|
|00001280| 29 3b 0a 58 23 65 6c 73 | 65 0a 58 20 20 20 20 64 |);.X#els|e.X d|
|00001290| 62 5f 64 61 74 61 5f 64 | 69 72 65 63 74 6f 72 79 |b_data_d|irectory|
|000012a0| 20 3d 20 4e 55 4c 4c 3b | 0a 58 23 65 6e 64 69 66 | = NULL;|.X#endif|
|000012b0| 0a 58 23 65 6e 64 69 66 | 0a 58 0a 58 23 69 66 64 |.X#endif|.X.X#ifd|
|000012c0| 65 66 20 4e 45 57 53 5f | 4c 49 42 5f 44 49 52 45 |ef NEWS_|LIB_DIRE|
|000012d0| 43 54 4f 52 59 0a 58 20 | 20 20 20 6e 65 77 73 5f |CTORY.X | news_|
|000012e0| 6c 69 62 5f 64 69 72 65 | 63 74 6f 72 79 20 3d 20 |lib_dire|ctory = |
|000012f0| 4e 45 57 53 5f 4c 49 42 | 5f 44 49 52 45 43 54 4f |NEWS_LIB|_DIRECTO|
|00001300| 52 59 3b 0a 58 23 65 6c | 73 65 0a 58 20 20 20 20 |RY;.X#el|se.X |
|00001310| 6e 65 77 73 5f 6c 69 62 | 5f 64 69 72 65 63 74 6f |news_lib|_directo|
|00001320| 72 79 20 3d 20 22 2f 75 | 73 72 2f 6c 69 62 2f 6e |ry = "/u|sr/lib/n|
|00001330| 65 77 73 22 3b 0a 58 23 | 65 6e 64 69 66 0a 58 0a |ews";.X#|endif.X.|
|00001340| 58 20 20 20 20 2f 2a 20 | 74 68 69 73 20 6d 61 79 |X /* |this may|
|00001350| 20 6c 61 74 65 72 20 62 | 65 20 63 68 61 6e 67 65 | later b|e change|
|00001360| 64 20 62 79 20 6e 6e 74 | 70 5f 63 68 65 63 6b 20 |d by nnt|p_check |
|00001370| 2a 2f 0a 58 20 20 20 20 | 6e 65 77 73 5f 61 63 74 |*/.X |news_act|
|00001380| 69 76 65 20 3d 20 6d 6b | 5f 66 69 6c 65 5f 6e 61 |ive = mk|_file_na|
|00001390| 6d 65 28 6e 65 77 73 5f | 6c 69 62 5f 64 69 72 65 |me(news_|lib_dire|
|000013a0| 63 74 6f 72 79 2c 20 22 | 61 63 74 69 76 65 22 29 |ctory, "|active")|
|000013b0| 3b 0a 58 0a 58 23 69 66 | 64 65 66 20 43 4c 49 45 |;.X.X#if|def CLIE|
|000013c0| 4e 54 5f 44 49 52 45 43 | 54 4f 52 59 0a 58 20 20 |NT_DIREC|TORY.X |
|000013d0| 20 20 6c 69 62 5f 64 69 | 72 65 63 74 6f 72 79 20 | lib_di|rectory |
|000013e0| 3d 20 43 4c 49 45 4e 54 | 5f 44 49 52 45 43 54 4f |= CLIENT|_DIRECTO|
|000013f0| 52 59 3b 0a 58 23 65 6c | 73 65 0a 58 20 20 20 20 |RY;.X#el|se.X |
|00001400| 6c 69 62 5f 64 69 72 65 | 63 74 6f 72 79 20 3d 20 |lib_dire|ctory = |
|00001410| 4c 49 42 5f 44 49 52 45 | 43 54 4f 52 59 3b 0a 58 |LIB_DIRE|CTORY;.X|
|00001420| 23 65 6e 64 69 66 0a 58 | 0a 58 23 69 66 64 65 66 |#endif.X|.X#ifdef|
|00001430| 20 4d 41 53 54 45 52 5f | 44 49 52 45 43 54 4f 52 | MASTER_|DIRECTOR|
|00001440| 59 0a 58 20 20 20 20 6d | 61 73 74 65 72 5f 64 69 |Y.X m|aster_di|
|00001450| 72 65 63 74 6f 72 79 20 | 3d 20 4d 41 53 54 45 52 |rectory |= MASTER|
|00001460| 5f 44 49 52 45 43 54 4f | 52 59 3b 0a 58 23 65 6c |_DIRECTO|RY;.X#el|
|00001470| 73 65 0a 58 20 20 20 20 | 6d 61 73 74 65 72 5f 64 |se.X |master_d|
|00001480| 69 72 65 63 74 6f 72 79 | 20 3d 20 6c 69 62 5f 64 |irectory| = lib_d|
|00001490| 69 72 65 63 74 6f 72 79 | 3b 0a 58 23 65 6e 64 69 |irectory|;.X#endi|
|000014a0| 66 0a 58 0a 58 23 69 66 | 64 65 66 20 48 45 4c 50 |f.X.X#if|def HELP|
|000014b0| 5f 44 49 52 45 43 54 4f | 52 59 0a 58 20 20 20 20 |_DIRECTO|RY.X |
|000014c0| 68 65 6c 70 5f 64 69 72 | 65 63 74 6f 72 79 20 3d |help_dir|ectory =|
|000014d0| 20 48 45 4c 50 5f 44 49 | 52 45 43 54 4f 52 59 3b | HELP_DI|RECTORY;|
|000014e0| 0a 58 23 65 6c 73 65 0a | 58 20 20 20 20 68 65 6c |.X#else.|X hel|
|000014f0| 70 5f 64 69 72 65 63 74 | 6f 72 79 20 3d 20 6d 6b |p_direct|ory = mk|
|00001500| 5f 66 69 6c 65 5f 6e 61 | 6d 65 28 6c 69 62 5f 64 |_file_na|me(lib_d|
|00001510| 69 72 65 63 74 6f 72 79 | 2c 20 22 68 65 6c 70 22 |irectory|, "help"|
|00001520| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 0a 58 23 69 |);.X#end|if.X.X#i|
|00001530| 66 64 65 66 20 4c 4f 47 | 5f 46 49 4c 45 0a 58 20 |fdef LOG|_FILE.X |
|00001540| 20 20 20 6c 6f 67 5f 66 | 69 6c 65 20 3d 20 4c 4f | log_f|ile = LO|
|00001550| 47 5f 46 49 4c 45 3b 0a | 58 23 65 6c 73 65 0a 58 |G_FILE;.|X#else.X|
|00001560| 20 20 20 20 6c 6f 67 5f | 66 69 6c 65 20 3d 20 6d | log_|file = m|
|00001570| 6b 5f 66 69 6c 65 5f 6e | 61 6d 65 28 6c 69 62 5f |k_file_n|ame(lib_|
|00001580| 64 69 72 65 63 74 6f 72 | 79 2c 20 22 4c 6f 67 22 |director|y, "Log"|
|00001590| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 0a 58 20 20 |);.X#end|if.X.X |
|000015a0| 20 20 69 66 20 28 77 68 | 6f 5f 61 6d 5f 69 20 3d | if (wh|o_am_i =|
|000015b0| 3d 20 49 5f 41 4d 5f 4d | 41 53 54 45 52 20 7c 7c |= I_AM_M|ASTER |||
|000015c0| 20 77 68 6f 5f 61 6d 5f | 69 20 3d 3d 20 49 5f 41 | who_am_|i == I_A|
|000015d0| 4d 5f 53 50 45 57 29 0a | 58 09 72 65 74 75 72 6e |M_SPEW).|X.return|
|000015e0| 20 30 3b 0a 58 0a 58 20 | 20 20 20 73 69 67 6e 61 | 0;.X.X | signa|
|000015f0| 6c 28 53 49 47 49 4e 54 | 2c 20 20 63 61 74 63 68 |l(SIGINT|, catch|
|00001600| 5f 6b 65 79 62 6f 61 72 | 64 29 3b 0a 58 20 20 20 |_keyboar|d);.X |
|00001610| 20 73 69 67 6e 61 6c 28 | 53 49 47 51 55 49 54 2c | signal(|SIGQUIT,|
|00001620| 20 63 61 74 63 68 5f 6b | 65 79 62 6f 61 72 64 29 | catch_k|eyboard)|
|00001630| 3b 0a 58 23 69 66 64 65 | 66 20 48 41 56 45 5f 4a |;.X#ifde|f HAVE_J|
|00001640| 4f 42 43 4f 4e 54 52 4f | 4c 0a 58 20 20 20 20 73 |OBCONTRO|L.X s|
|00001650| 69 67 6e 61 6c 28 53 49 | 47 54 53 54 50 2c 20 63 |ignal(SI|GTSTP, c|
|00001660| 61 74 63 68 5f 73 75 73 | 70 65 6e 64 29 3b 0a 58 |atch_sus|pend);.X|
|00001670| 23 65 6e 64 69 66 0a 58 | 0a 58 20 20 20 20 69 66 |#endif.X|.X if|
|00001680| 20 28 28 68 6f 6d 65 5f | 64 69 72 65 63 74 6f 72 | ((home_|director|
|00001690| 79 20 3d 20 67 65 74 65 | 6e 76 28 22 48 4f 4d 45 |y = gete|nv("HOME|
|000016a0| 22 29 29 20 3d 3d 20 4e | 55 4c 4c 29 0a 58 09 75 |")) == N|ULL).X.u|
|000016b0| 73 65 72 5f 65 72 72 6f | 72 28 22 4e 6f 20 48 4f |ser_erro|r("No HO|
|000016c0| 4d 45 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 20 76 |ME envir|onment v|
|000016d0| 61 72 69 61 62 6c 65 22 | 29 3b 0a 58 0a 58 20 20 |ariable"|);.X.X |
|000016e0| 20 20 69 66 20 28 28 70 | 61 67 65 72 20 3d 20 67 | if ((p|ager = g|
|000016f0| 65 74 65 6e 76 28 22 50 | 41 47 45 52 22 29 29 20 |etenv("P|AGER")) |
|00001700| 3d 3d 20 4e 55 4c 4c 29 | 0a 58 09 70 61 67 65 72 |== NULL)|.X.pager|
|00001710| 20 3d 20 44 45 46 41 55 | 4c 54 5f 50 41 47 45 52 | = DEFAU|LT_PAGER|
|00001720| 3b 0a 58 0a 58 20 20 20 | 20 6e 6e 5f 64 69 72 65 |;.X.X | nn_dire|
|00001730| 63 74 6f 72 79 20 3d 20 | 6d 6b 5f 66 69 6c 65 5f |ctory = |mk_file_|
|00001740| 6e 61 6d 65 28 68 6f 6d | 65 5f 64 69 72 65 63 74 |name(hom|e_direct|
|00001750| 6f 72 79 2c 20 22 2e 6e | 6e 22 29 3b 0a 58 0a 58 |ory, ".n|n");.X.X|
|00001760| 20 20 20 20 69 66 20 28 | 77 68 6f 5f 61 6d 5f 69 | if (|who_am_i|
|00001770| 20 21 3d 20 49 5f 41 4d | 5f 41 44 4d 49 4e 20 26 | != I_AM|_ADMIN &|
|00001780| 26 20 21 66 69 6c 65 5f | 65 78 69 73 74 28 6e 6e |& !file_|exist(nn|
|00001790| 5f 64 69 72 65 63 74 6f | 72 79 2c 20 22 64 72 77 |_directo|ry, "drw|
|000017a0| 78 22 29 29 20 7b 0a 58 | 09 69 66 20 28 77 68 6f |x")) {.X|.if (who|
|000017b0| 5f 61 6d 5f 69 20 21 3d | 20 49 5f 41 4d 5f 4e 4e |_am_i !=| I_AM_NN|
|000017c0| 29 20 72 65 74 75 72 6e | 20 2d 31 3b 0a 58 09 69 |) return| -1;.X.i|
|000017d0| 66 20 28 6d 6b 64 69 72 | 28 6e 6e 5f 64 69 72 65 |f (mkdir|(nn_dire|
|000017e0| 63 74 6f 72 79 2c 20 30 | 37 35 35 29 20 3c 20 30 |ctory, 0|755) < 0|
|000017f0| 29 0a 58 09 20 20 20 20 | 75 73 65 72 5f 65 72 72 |).X. |user_err|
|00001800| 6f 72 28 22 43 61 6e 6e | 6f 74 20 63 72 65 61 74 |or("Cann|ot creat|
|00001810| 65 20 25 73 20 64 69 72 | 65 63 74 6f 72 79 22 2c |e %s dir|ectory",|
|00001820| 20 6e 6e 5f 64 69 72 65 | 63 74 6f 72 79 29 3b 0a | nn_dire|ctory);.|
|00001830| 58 09 72 65 74 75 72 6e | 20 31 3b 0a 58 20 20 20 |X.return| 1;.X |
|00001840| 20 7d 0a 58 0a 58 20 20 | 20 20 72 65 74 75 72 6e | }.X.X | return|
|00001850| 20 30 3b 0a 58 7d 0a 58 | 0a 58 6e 65 77 5f 74 65 | 0;.X}.X|.Xnew_te|
|00001860| 6d 70 5f 66 69 6c 65 28 | 29 0a 58 7b 0a 58 20 20 |mp_file(|).X{.X |
|00001870| 20 20 73 74 61 74 69 63 | 20 63 68 61 72 20 62 75 | static| char bu|
|00001880| 66 5b 46 49 4c 45 4e 41 | 4d 45 5d 3b 0a 58 20 20 |f[FILENA|ME];.X |
|00001890| 20 20 73 74 61 74 69 63 | 20 63 68 61 72 20 2a 74 | static| char *t|
|000018a0| 65 6d 70 5f 64 69 72 20 | 3d 20 4e 55 4c 4c 3b 0a |emp_dir |= NULL;.|
|000018b0| 58 0a 58 20 20 20 20 69 | 66 20 28 74 65 6d 70 5f |X.X i|f (temp_|
|000018c0| 64 69 72 20 3d 3d 20 4e | 55 4c 4c 29 0a 58 09 69 |dir == N|ULL).X.i|
|000018d0| 66 20 28 28 74 65 6d 70 | 5f 64 69 72 20 3d 20 67 |f ((temp|_dir = g|
|000018e0| 65 74 65 6e 76 28 22 54 | 4d 50 44 49 52 22 29 29 |etenv("T|MPDIR"))|
|000018f0| 20 3d 3d 20 4e 55 4c 4c | 29 0a 58 09 20 20 20 20 | == NULL|).X. |
|00001900| 74 65 6d 70 5f 64 69 72 | 20 3d 20 74 6d 70 5f 64 |temp_dir| = tmp_d|
|00001910| 69 72 65 63 74 6f 72 79 | 3b 20 2f 2a 20 6a 75 73 |irectory|; /* jus|
|00001920| 74 20 74 6f 20 6d 61 6b | 65 20 74 65 73 74 20 61 |t to mak|e test a|
|00001930| 62 6f 76 65 20 66 61 6c | 73 65 20 2a 2f 0a 58 09 |bove fal|se */.X.|
|00001940| 65 6c 73 65 0a 58 09 20 | 20 20 20 74 6d 70 5f 64 |else.X. | tmp_d|
|00001950| 69 72 65 63 74 6f 72 79 | 20 3d 20 74 65 6d 70 5f |irectory| = temp_|
|00001960| 64 69 72 3b 0a 58 0a 58 | 20 20 20 20 73 70 72 69 |dir;.X.X| spri|
|00001970| 6e 74 66 28 62 75 66 2c | 20 22 25 73 2f 6e 6e 2e |ntf(buf,| "%s/nn.|
|00001980| 58 58 58 58 58 58 22 2c | 20 74 6d 70 5f 64 69 72 |XXXXXX",| tmp_dir|
|00001990| 65 63 74 6f 72 79 29 3b | 0a 58 20 20 20 20 6d 6b |ectory);|.X mk|
|000019a0| 74 65 6d 70 28 62 75 66 | 29 3b 0a 58 20 20 20 20 |temp(buf|);.X |
|000019b0| 74 65 6d 70 5f 66 69 6c | 65 20 3d 20 62 75 66 3b |temp_fil|e = buf;|
|000019c0| 0a 58 7d 0a 58 0a 58 0a | 58 46 49 4c 45 20 2a 6f |.X}.X.X.|XFILE *o|
|000019d0| 70 65 6e 5f 66 69 6c 65 | 28 6e 61 6d 65 2c 20 6d |pen_file|(name, m|
|000019e0| 6f 64 65 29 0a 58 63 68 | 61 72 20 2a 6e 61 6d 65 |ode).Xch|ar *name|
|000019f0| 3b 0a 58 69 6e 74 20 6d | 6f 64 65 3b 0a 58 7b 0a |;.Xint m|ode;.X{.|
|00001a00| 58 20 20 20 20 46 49 4c | 45 20 2a 66 3b 0a 58 20 |X FIL|E *f;.X |
|00001a10| 20 20 20 69 6e 74 20 66 | 64 3b 0a 58 20 20 20 20 | int f|d;.X |
|00001a20| 65 78 74 65 72 6e 20 69 | 6e 74 20 65 72 72 6e 6f |extern i|nt errno|
|00001a30| 3b 0a 58 0a 58 20 20 20 | 20 69 66 20 28 28 6d 6f |;.X.X | if ((mo|
|00001a40| 64 65 20 26 20 44 4f 4e | 54 5f 43 52 45 41 54 45 |de & DON|T_CREATE|
|00001a50| 29 20 26 26 20 21 66 69 | 6c 65 5f 65 78 69 73 74 |) && !fi|le_exist|
|00001a60| 28 6e 61 6d 65 2c 20 28 | 63 68 61 72 20 2a 29 4e |(name, (|char *)N|
|00001a70| 55 4c 4c 29 29 0a 58 09 | 72 65 74 75 72 6e 20 4e |ULL)).X.|return N|
|00001a80| 55 4c 4c 3b 0a 58 0a 58 | 20 20 20 20 73 77 69 74 |ULL;.X.X| swit|
|00001a90| 63 68 20 28 6d 6f 64 65 | 20 26 20 30 78 30 66 29 |ch (mode| & 0x0f)|
|00001aa0| 20 7b 0a 58 0a 58 20 20 | 20 20 20 63 61 73 65 20 | {.X.X | case |
|00001ab0| 4f 50 45 4e 5f 52 45 41 | 44 3a 0a 58 0a 58 09 66 |OPEN_REA|D:.X.X.f|
|00001ac0| 20 3d 20 66 6f 70 65 6e | 28 6e 61 6d 65 2c 20 22 | = fopen|(name, "|
|00001ad0| 72 22 29 3b 0a 58 09 62 | 72 65 61 6b 3b 0a 58 0a |r");.X.b|reak;.X.|
|00001ae0| 58 20 20 20 20 20 63 61 | 73 65 20 4f 50 45 4e 5f |X ca|se OPEN_|
|00001af0| 55 50 44 41 54 45 3a 0a | 58 0a 58 2f 2a 09 66 20 |UPDATE:.|X.X/*.f |
|00001b00| 3d 20 66 6f 70 65 6e 28 | 6e 61 6d 65 2c 20 22 72 |= fopen(|name, "r|
|00001b10| 2b 22 29 3b 20 09 2d 2d | 20 6e 6f 74 20 72 65 6c |+"); .--| not rel|
|00001b20| 69 61 62 6c 65 20 6f 6e | 20 6d 61 6e 79 20 73 79 |iable on| many sy|
|00001b30| 73 74 65 6d 73 20 28 73 | 69 67 68 29 20 2a 2f 0a |stems (s|igh) */.|
|00001b40| 58 0a 58 09 69 66 20 28 | 28 66 64 20 3d 20 6f 70 |X.X.if (|(fd = op|
|00001b50| 65 6e 28 6e 61 6d 65 2c | 20 4f 5f 57 52 4f 4e 4c |en(name,| O_WRONL|
|00001b60| 59 29 29 20 3e 3d 20 30 | 29 20 7b 0a 58 09 20 20 |Y)) >= 0|) {.X. |
|00001b70| 20 20 69 66 20 28 28 66 | 20 3d 20 66 64 6f 70 65 | if ((f| = fdope|
|00001b80| 6e 28 66 64 2c 20 22 77 | 22 29 29 20 21 3d 20 4e |n(fd, "w|")) != N|
|00001b90| 55 4c 4c 29 20 72 65 74 | 75 72 6e 20 66 3b 0a 58 |ULL) ret|urn f;.X|
|00001ba0| 09 20 20 20 20 63 6c 6f | 73 65 28 66 64 29 3b 0a |. clo|se(fd);.|
|00001bb0| 58 09 7d 0a 58 0a 58 09 | 2f 2a 20 66 61 6c 6c 20 |X.}.X.X.|/* fall |
|00001bc0| 74 68 72 75 20 2a 2f 0a | 58 0a 58 20 20 20 20 20 |thru */.|X.X |
|00001bd0| 63 61 73 65 20 4f 50 45 | 4e 5f 43 52 45 41 54 45 |case OPE|N_CREATE|
|00001be0| 3a 0a 58 0a 58 09 66 20 | 3d 20 66 6f 70 65 6e 28 |:.X.X.f |= fopen(|
|00001bf0| 6e 61 6d 65 2c 20 22 77 | 22 29 3b 0a 58 09 62 72 |name, "w|");.X.br|
|00001c00| 65 61 6b 3b 0a 58 0a 58 | 20 20 20 20 20 63 61 73 |eak;.X.X| cas|
|00001c10| 65 20 4f 50 45 4e 5f 41 | 50 50 45 4e 44 3a 0a 58 |e OPEN_A|PPEND:.X|
|00001c20| 0a 58 09 66 20 3d 20 66 | 6f 70 65 6e 28 6e 61 6d |.X.f = f|open(nam|
|00001c30| 65 2c 20 22 61 22 29 3b | 0a 58 09 62 72 65 61 6b |e, "a");|.X.break|
|00001c40| 3b 0a 58 0a 58 20 20 20 | 20 20 63 61 73 65 20 4f |;.X.X | case O|
|00001c50| 50 45 4e 5f 43 52 45 41 | 54 45 5f 52 57 3a 0a 58 |PEN_CREA|TE_RW:.X|
|00001c60| 0a 58 09 66 20 3d 20 66 | 6f 70 65 6e 28 6e 61 6d |.X.f = f|open(nam|
|00001c70| 65 2c 20 22 77 2b 22 29 | 3b 09 2f 2a 20 6e 6f 74 |e, "w+")|;./* not|
|00001c80| 20 73 61 66 65 20 6f 6e | 20 61 6c 6c 20 73 79 73 | safe on| all sys|
|00001c90| 74 65 6d 73 20 2d 2d 20 | 62 65 77 61 72 65 20 2a |tems -- |beware *|
|00001ca0| 2f 0a 58 09 62 72 65 61 | 6b 3b 0a 58 0a 58 20 20 |/.X.brea|k;.X.X |
|00001cb0| 20 20 20 64 65 66 61 75 | 6c 74 3a 0a 58 0a 58 09 | defau|lt:.X.X.|
|00001cc0| 73 79 73 5f 65 72 72 6f | 72 28 22 49 6c 6c 65 67 |sys_erro|r("Illeg|
|00001cd0| 61 6c 20 6d 6f 64 65 3a | 20 6f 70 65 6e 5f 66 69 |al mode:| open_fi|
|00001ce0| 6c 65 28 25 73 2c 20 30 | 78 25 78 29 22 2c 20 6e |le(%s, 0|x%x)", n|
|00001cf0| 61 6d 65 2c 20 6d 6f 64 | 65 29 3b 0a 58 20 20 20 |ame, mod|e);.X |
|00001d00| 20 7d 0a 58 0a 58 20 20 | 20 20 69 66 20 28 66 29 | }.X.X | if (f)|
|00001d10| 20 7b 0a 58 09 69 66 20 | 28 6d 6f 64 65 20 26 20 | {.X.if |(mode & |
|00001d20| 4f 50 45 4e 5f 55 4e 4c | 49 4e 4b 29 20 75 6e 6c |OPEN_UNL|INK) unl|
|00001d30| 69 6e 6b 28 6e 61 6d 65 | 29 3b 0a 58 09 72 65 74 |ink(name|);.X.ret|
|00001d40| 75 72 6e 20 66 3b 0a 58 | 20 20 20 20 7d 0a 58 0a |urn f;.X| }.X.|
|00001d50| 58 20 20 20 20 69 66 20 | 28 28 6d 6f 64 65 20 26 |X if |((mode &|
|00001d60| 20 4d 55 53 54 5f 45 58 | 49 53 54 29 20 3d 3d 20 | MUST_EX|IST) == |
|00001d70| 30 29 20 72 65 74 75 72 | 6e 20 4e 55 4c 4c 3b 0a |0) retur|n NULL;.|
|00001d80| 58 0a 58 20 20 20 20 73 | 79 73 5f 65 72 72 6f 72 |X.X s|ys_error|
|00001d90| 28 22 43 61 6e 6e 6f 74 | 20 6f 70 65 6e 20 66 69 |("Cannot| open fi|
|00001da0| 6c 65 20 25 73 2c 20 6d | 6f 64 65 3d 30 78 25 78 |le %s, m|ode=0x%x|
|00001db0| 2c 20 65 72 72 6e 6f 3d | 25 64 22 2c 20 6e 61 6d |, errno=|%d", nam|
|00001dc0| 65 2c 20 6d 6f 64 65 2c | 20 65 72 72 6e 6f 29 3b |e, mode,| errno);|
|00001dd0| 0a 58 0a 58 20 20 20 20 | 72 65 74 75 72 6e 20 4e |.X.X |return N|
|00001de0| 55 4c 4c 3b 0a 58 7d 0a | 58 0a 58 0a 58 0a 58 0a |ULL;.X}.|X.X.X.X.|
|00001df0| 58 2f 2a 0a 58 20 2a 20 | 09 72 65 6c 61 74 69 76 |X/*.X * |.relativ|
|00001e00| 65 20 2d 2d 20 63 6f 6e | 63 61 74 20 64 69 72 65 |e -- con|cat dire|
|00001e10| 63 74 6f 72 79 20 6e 61 | 6d 65 20 61 6e 64 20 66 |ctory na|me and f|
|00001e20| 69 6c 65 20 6e 61 6d 65 | 0a 58 20 2a 2f 0a 58 0a |ile name|.X */.X.|
|00001e30| 58 63 68 61 72 20 2a 72 | 65 6c 61 74 69 76 65 28 |Xchar *r|elative(|
|00001e40| 64 69 72 2c 20 6e 61 6d | 65 29 0a 58 63 68 61 72 |dir, nam|e).Xchar|
|00001e50| 20 2a 64 69 72 2c 20 2a | 6e 61 6d 65 3b 0a 58 7b | *dir, *|name;.X{|
|00001e60| 0a 58 20 20 20 20 73 74 | 61 74 69 63 20 63 68 61 |.X st|atic cha|
|00001e70| 72 20 63 6f 6e 63 61 74 | 5f 70 61 74 68 5b 46 49 |r concat|_path[FI|
|00001e80| 4c 45 4e 41 4d 45 5d 3b | 0a 58 0a 58 20 20 20 20 |LENAME];|.X.X |
|00001e90| 73 70 72 69 6e 74 66 28 | 63 6f 6e 63 61 74 5f 70 |sprintf(|concat_p|
|00001ea0| 61 74 68 2c 20 22 25 73 | 2f 25 73 22 2c 20 64 69 |ath, "%s|/%s", di|
|00001eb0| 72 2c 20 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 72 |r, name)|;.X r|
|00001ec0| 65 74 75 72 6e 20 63 6f | 6e 63 61 74 5f 70 61 74 |eturn co|ncat_pat|
|00001ed0| 68 3b 0a 58 7d 0a 58 0a | 58 0a 58 63 68 61 72 20 |h;.X}.X.|X.Xchar |
|00001ee0| 2a 6d 6b 5f 66 69 6c 65 | 5f 6e 61 6d 65 28 64 69 |*mk_file|_name(di|
|00001ef0| 72 2c 20 6e 61 6d 65 29 | 0a 58 63 68 61 72 20 2a |r, name)|.Xchar *|
|00001f00| 64 69 72 2c 20 2a 6e 61 | 6d 65 3b 0a 58 7b 0a 58 |dir, *na|me;.X{.X|
|00001f10| 20 20 20 20 63 68 61 72 | 20 2a 62 75 66 3b 0a 58 | char| *buf;.X|
|00001f20| 0a 58 20 20 20 20 62 75 | 66 20 3d 20 6e 65 77 73 |.X bu|f = news|
|00001f30| 74 72 28 73 74 72 6c 65 | 6e 28 64 69 72 29 20 2b |tr(strle|n(dir) +|
|00001f40| 20 73 74 72 6c 65 6e 28 | 6e 61 6d 65 29 20 2b 20 | strlen(|name) + |
|00001f50| 32 29 3b 0a 58 20 20 20 | 20 73 70 72 69 6e 74 66 |2);.X | sprintf|
|00001f60| 28 62 75 66 2c 20 22 25 | 73 2f 25 73 22 2c 20 64 |(buf, "%|s/%s", d|
|00001f70| 69 72 2c 20 6e 61 6d 65 | 29 3b 0a 58 0a 58 20 20 |ir, name|);.X.X |
|00001f80| 20 20 72 65 74 75 72 6e | 20 62 75 66 3b 0a 58 7d | return| buf;.X}|
|00001f90| 0a 58 0a 58 0a 58 63 68 | 61 72 20 2a 68 6f 6d 65 |.X.X.Xch|ar *home|
|00001fa0| 5f 72 65 6c 61 74 69 76 | 65 28 64 69 72 29 0a 58 |_relativ|e(dir).X|
|00001fb0| 63 68 61 72 20 2a 64 69 | 72 3b 0a 58 7b 0a 58 20 |char *di|r;.X{.X |
|00001fc0| 20 20 20 69 66 20 28 64 | 69 72 29 20 7b 0a 58 09 | if (d|ir) {.X.|
|00001fd0| 69 66 20 28 2a 64 69 72 | 20 3d 3d 20 27 2f 27 29 |if (*dir| == '/')|
|00001fe0| 0a 58 09 20 20 20 20 72 | 65 74 75 72 6e 20 63 6f |.X. r|eturn co|
|00001ff0| 70 79 5f 73 74 72 28 64 | 69 72 29 3b 0a 58 09 65 |py_str(d|ir);.X.e|
|00002000| 6c 73 65 20 7b 0a 58 09 | 20 20 20 20 69 66 20 28 |lse {.X.| if (|
|00002010| 2a 64 69 72 20 3d 3d 20 | 27 7e 27 20 26 26 20 2a |*dir == |'~' && *|
|00002020| 2b 2b 64 69 72 20 3d 3d | 20 27 2f 27 29 20 64 69 |++dir ==| '/') di|
|00002030| 72 2b 2b 3b 0a 58 09 20 | 20 20 20 72 65 74 75 72 |r++;.X. | retur|
|00002040| 6e 20 6d 6b 5f 66 69 6c | 65 5f 6e 61 6d 65 28 68 |n mk_fil|e_name(h|
|00002050| 6f 6d 65 5f 64 69 72 65 | 63 74 6f 72 79 2c 20 64 |ome_dire|ctory, d|
|00002060| 69 72 29 3b 0a 58 09 7d | 0a 58 20 20 20 20 7d 0a |ir);.X.}|.X }.|
|00002070| 58 20 20 20 20 72 65 74 | 75 72 6e 20 4e 55 4c 4c |X ret|urn NULL|
|00002080| 3b 0a 58 7d 0a 58 0a 58 | 0a 58 63 68 61 72 20 2a |;.X}.X.X|.Xchar *|
|00002090| 63 6f 70 79 5f 73 74 72 | 28 73 74 72 29 0a 58 63 |copy_str|(str).Xc|
|000020a0| 68 61 72 20 2a 73 74 72 | 3b 0a 58 7b 0a 58 20 20 |har *str|;.X{.X |
|000020b0| 20 20 63 68 61 72 20 2a | 6e 65 77 3b 0a 58 0a 58 | char *|new;.X.X|
|000020c0| 20 20 20 20 6e 65 77 20 | 3d 20 6e 65 77 73 74 72 | new |= newstr|
|000020d0| 28 73 74 72 6c 65 6e 28 | 73 74 72 29 20 2b 20 31 |(strlen(|str) + 1|
|000020e0| 29 3b 0a 58 20 20 20 20 | 69 66 20 28 6e 65 77 29 |);.X |if (new)|
|000020f0| 20 73 74 72 63 70 79 28 | 6e 65 77 2c 20 73 74 72 | strcpy(|new, str|
|00002100| 29 3b 0a 58 0a 58 20 20 | 20 20 72 65 74 75 72 6e |);.X.X | return|
|00002110| 20 6e 65 77 3b 0a 58 7d | 0a 58 0a 58 74 69 6d 65 | new;.X}|.X.Xtime|
|00002120| 5f 74 20 6d 5f 74 69 6d | 65 28 66 29 0a 58 46 49 |_t m_tim|e(f).XFI|
|00002130| 4c 45 20 2a 66 3b 0a 58 | 7b 0a 58 20 20 20 20 73 |LE *f;.X|{.X s|
|00002140| 74 72 75 63 74 20 73 74 | 61 74 20 73 74 3b 0a 58 |truct st|at st;.X|
|00002150| 0a 58 20 20 20 20 69 66 | 20 28 66 73 74 61 74 28 |.X if| (fstat(|
|00002160| 66 69 6c 65 6e 6f 28 66 | 29 2c 20 26 73 74 29 20 |fileno(f|), &st) |
|00002170| 3c 20 30 29 20 72 65 74 | 75 72 6e 20 30 3b 0a 58 |< 0) ret|urn 0;.X|
|00002180| 20 20 20 20 72 65 74 75 | 72 6e 20 73 74 2e 73 74 | retu|rn st.st|
|00002190| 5f 6d 74 69 6d 65 3b 0a | 58 7d 0a 58 0a 58 0a 58 |_mtime;.|X}.X.X.X|
|000021a0| 74 69 6d 65 5f 74 20 66 | 69 6c 65 5f 65 78 69 73 |time_t f|ile_exis|
|000021b0| 74 28 6e 61 6d 65 2c 20 | 6d 6f 64 65 29 0a 58 63 |t(name, |mode).Xc|
|000021c0| 68 61 72 20 2a 6e 61 6d | 65 3b 0a 58 63 68 61 72 |har *nam|e;.Xchar|
|000021d0| 20 2a 6d 6f 64 65 3b 0a | 58 7b 0a 58 20 20 20 20 | *mode;.|X{.X |
|000021e0| 73 74 72 75 63 74 20 73 | 74 61 74 20 73 74 61 74 |struct s|tat stat|
|000021f0| 62 3b 0a 58 20 20 20 20 | 65 78 74 65 72 6e 20 69 |b;.X |extern i|
|00002200| 6e 74 20 65 72 72 6e 6f | 3b 0a 58 0a 58 20 20 20 |nt errno|;.X.X |
|00002210| 20 69 66 20 28 73 74 61 | 74 28 6e 61 6d 65 2c 20 | if (sta|t(name, |
|00002220| 26 73 74 61 74 62 29 29 | 20 72 65 74 75 72 6e 20 |&statb))| return |
|00002230| 30 3b 0a 58 0a 58 20 20 | 20 20 69 66 20 28 6d 6f |0;.X.X | if (mo|
|00002240| 64 65 20 3d 3d 20 4e 55 | 4c 4c 29 20 72 65 74 75 |de == NU|LL) retu|
|00002250| 72 6e 20 73 74 61 74 62 | 2e 73 74 5f 6d 74 69 6d |rn statb|.st_mtim|
|00002260| 65 3b 0a 58 0a 58 20 20 | 20 20 77 68 69 6c 65 20 |e;.X.X | while |
|00002270| 28 2a 6d 6f 64 65 29 20 | 7b 0a 58 09 73 77 69 74 |(*mode) |{.X.swit|
|00002280| 63 68 20 28 2a 6d 6f 64 | 65 2b 2b 29 20 7b 0a 58 |ch (*mod|e++) {.X|
|00002290| 09 63 61 73 65 20 27 64 | 27 3a 0a 58 09 20 20 20 |.case 'd|':.X. |
|000022a0| 20 69 66 20 28 28 73 74 | 61 74 62 2e 73 74 5f 6d | if ((st|atb.st_m|
|000022b0| 6f 64 65 20 26 20 53 5f | 49 46 4d 54 29 20 3d 3d |ode & S_|IFMT) ==|
|000022c0| 20 53 5f 49 46 44 49 52 | 29 20 63 6f 6e 74 69 6e | S_IFDIR|) contin|
|000022d0| 75 65 3b 0a 58 09 20 20 | 20 20 65 72 72 6e 6f 20 |ue;.X. | errno |
|000022e0| 3d 20 45 4e 4f 54 44 49 | 52 3b 0a 58 09 20 20 20 |= ENOTDI|R;.X. |
|000022f0| 20 72 65 74 75 72 6e 20 | 30 3b 0a 58 09 63 61 73 | return |0;.X.cas|
|00002300| 65 20 27 66 27 3a 0a 58 | 09 20 20 20 20 69 66 20 |e 'f':.X|. if |
|00002310| 28 28 73 74 61 74 62 2e | 73 74 5f 6d 6f 64 65 20 |((statb.|st_mode |
|00002320| 26 20 53 5f 49 46 4d 54 | 29 20 3d 3d 20 53 5f 49 |& S_IFMT|) == S_I|
|00002330| 46 52 45 47 29 20 63 6f | 6e 74 69 6e 75 65 3b 0a |FREG) co|ntinue;.|
|00002340| 58 09 20 20 20 20 69 66 | 20 28 28 73 74 61 74 62 |X. if| ((statb|
|00002350| 2e 73 74 5f 6d 6f 64 65 | 20 26 20 53 5f 49 46 4d |.st_mode| & S_IFM|
|00002360| 54 29 20 3d 3d 20 30 30 | 30 30 30 30 30 29 20 63 |T) == 00|00000) c|
|00002370| 6f 6e 74 69 6e 75 65 3b | 0a 58 09 20 20 20 20 69 |ontinue;|.X. i|
|00002380| 66 20 28 28 73 74 61 74 | 62 2e 73 74 5f 6d 6f 64 |f ((stat|b.st_mod|
|00002390| 65 20 26 20 53 5f 49 46 | 4d 54 29 20 3d 3d 20 53 |e & S_IF|MT) == S|
|000023a0| 5f 49 46 44 49 52 29 20 | 7b 0a 58 09 09 65 72 72 |_IFDIR) |{.X..err|
|000023b0| 6e 6f 20 3d 20 45 49 53 | 44 49 52 3b 0a 58 09 09 |no = EIS|DIR;.X..|
|000023c0| 72 65 74 75 72 6e 20 30 | 3b 0a 58 09 20 20 20 20 |return 0|;.X. |
|000023d0| 7d 0a 58 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |}.X. |break;.X|
|000023e0| 09 63 61 73 65 20 27 72 | 27 3a 0a 58 09 20 20 20 |.case 'r|':.X. |
|000023f0| 20 69 66 20 28 28 73 74 | 61 74 62 2e 73 74 5f 6d | if ((st|atb.st_m|
|00002400| 6f 64 65 20 26 20 30 34 | 30 30 29 20 26 26 20 73 |ode & 04|00) && s|
|00002410| 74 61 74 62 2e 73 74 5f | 75 69 64 20 3d 3d 20 75 |tatb.st_|uid == u|
|00002420| 73 65 72 5f 69 64 29 20 | 63 6f 6e 74 69 6e 75 65 |ser_id) |continue|
|00002430| 3b 0a 58 09 20 20 20 20 | 69 66 20 28 28 73 74 61 |;.X. |if ((sta|
|00002440| 74 62 2e 73 74 5f 6d 6f | 64 65 20 26 20 30 30 34 |tb.st_mo|de & 004|
|00002450| 30 29 20 26 26 20 67 72 | 6f 75 70 5f 61 63 63 65 |0) && gr|oup_acce|
|00002460| 73 73 28 73 74 61 74 62 | 2e 73 74 5f 67 69 64 29 |ss(statb|.st_gid)|
|00002470| 29 20 63 6f 6e 74 69 6e | 75 65 3b 0a 58 20 20 20 |) contin|ue;.X |
|00002480| 20 09 20 20 20 20 69 66 | 20 28 28 73 74 61 74 62 | . if| ((statb|
|00002490| 2e 73 74 5f 6d 6f 64 65 | 20 26 20 30 30 30 34 29 |.st_mode| & 0004)|
|000024a0| 29 20 63 6f 6e 74 69 6e | 75 65 3b 0a 58 09 20 20 |) contin|ue;.X. |
|000024b0| 20 20 62 72 65 61 6b 3b | 0a 58 09 63 61 73 65 20 | break;|.X.case |
|000024c0| 27 77 27 3a 0a 58 09 20 | 20 20 20 69 66 20 28 28 |'w':.X. | if ((|
|000024d0| 73 74 61 74 62 2e 73 74 | 5f 6d 6f 64 65 20 26 20 |statb.st|_mode & |
|000024e0| 30 32 30 30 29 20 26 26 | 20 73 74 61 74 62 2e 73 |0200) &&| statb.s|
|000024f0| 74 5f 75 69 64 20 3d 3d | 20 75 73 65 72 5f 69 64 |t_uid ==| user_id|
|00002500| 29 20 63 6f 6e 74 69 6e | 75 65 3b 0a 58 09 20 20 |) contin|ue;.X. |
|00002510| 20 20 69 66 20 28 28 73 | 74 61 74 62 2e 73 74 5f | if ((s|tatb.st_|
|00002520| 6d 6f 64 65 20 26 20 30 | 30 32 30 29 20 26 26 20 |mode & 0|020) && |
|00002530| 67 72 6f 75 70 5f 61 63 | 63 65 73 73 28 73 74 61 |group_ac|cess(sta|
|00002540| 74 62 2e 73 74 5f 67 69 | 64 29 29 20 63 6f 6e 74 |tb.st_gi|d)) cont|
|00002550| 69 6e 75 65 3b 0a 58 20 | 20 20 20 09 20 20 20 20 |inue;.X | . |
|00002560| 69 66 20 28 28 73 74 61 | 74 62 2e 73 74 5f 6d 6f |if ((sta|tb.st_mo|
|00002570| 64 65 20 26 20 30 30 30 | 32 29 29 20 63 6f 6e 74 |de & 000|2)) cont|
|00002580| 69 6e 75 65 3b 0a 58 09 | 20 20 20 20 62 72 65 61 |inue;.X.| brea|
|00002590| 6b 3b 0a 58 09 63 61 73 | 65 20 27 78 27 3a 0a 58 |k;.X.cas|e 'x':.X|
|000025a0| 09 20 20 20 20 69 66 20 | 28 28 73 74 61 74 62 2e |. if |((statb.|
|000025b0| 73 74 5f 6d 6f 64 65 20 | 26 20 30 31 30 30 29 20 |st_mode |& 0100) |
|000025c0| 26 26 20 73 74 61 74 62 | 2e 73 74 5f 75 69 64 20 |&& statb|.st_uid |
|000025d0| 3d 3d 20 75 73 65 72 5f | 69 64 29 20 63 6f 6e 74 |== user_|id) cont|
|000025e0| 69 6e 75 65 3b 0a 58 09 | 20 20 20 20 69 66 20 28 |inue;.X.| if (|
|000025f0| 28 73 74 61 74 62 2e 73 | 74 5f 6d 6f 64 65 20 26 |(statb.s|t_mode &|
|00002600| 20 30 30 31 30 29 20 26 | 26 20 67 72 6f 75 70 5f | 0010) &|& group_|
|00002610| 61 63 63 65 73 73 28 73 | 74 61 74 62 2e 73 74 5f |access(s|tatb.st_|
|00002620| 67 69 64 29 29 20 63 6f | 6e 74 69 6e 75 65 3b 0a |gid)) co|ntinue;.|
|00002630| 58 20 20 20 20 09 20 20 | 20 20 69 66 20 28 28 73 |X . | if ((s|
|00002640| 74 61 74 62 2e 73 74 5f | 6d 6f 64 65 20 26 20 30 |tatb.st_|mode & 0|
|00002650| 30 30 31 29 29 20 63 6f | 6e 74 69 6e 75 65 3b 0a |001)) co|ntinue;.|
|00002660| 58 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 7d |X. br|eak;.X.}|
|00002670| 0a 58 09 65 72 72 6e 6f | 20 3d 20 45 41 43 43 45 |.X.errno| = EACCE|
|00002680| 53 3b 0a 58 09 72 65 74 | 75 72 6e 20 30 3b 0a 58 |S;.X.ret|urn 0;.X|
|00002690| 20 20 20 20 7d 0a 58 0a | 58 20 20 20 20 2f 2a 20 | }.X.|X /* |
|000026a0| 61 6c 6c 20 6d 6f 64 65 | 73 20 61 72 65 20 6f 6b |all mode|s are ok|
|000026b0| 20 2a 2f 0a 58 20 20 20 | 20 72 65 74 75 72 6e 20 | */.X | return |
|000026c0| 73 74 61 74 62 2e 73 74 | 5f 6d 74 69 6d 65 3b 0a |statb.st|_mtime;.|
|000026d0| 58 7d 0a 58 0a 58 0a 58 | 23 69 66 64 65 66 20 48 |X}.X.X.X|#ifdef H|
|000026e0| 41 56 45 5f 53 59 53 4c | 4f 47 0a 58 23 69 6e 63 |AVE_SYSL|OG.X#inc|
|000026f0| 6c 75 64 65 20 3c 73 79 | 73 6c 6f 67 2e 68 3e 0a |lude <sy|slog.h>.|
|00002700| 58 23 65 6e 64 69 66 20 | 2f 2a 20 48 41 56 45 5f |X#endif |/* HAVE_|
|00002710| 53 59 53 4c 4f 47 20 2a | 2f 0a 58 0a 58 0a 58 73 |SYSLOG *|/.X.X.Xs|
|00002720| 74 61 74 69 63 20 65 6e | 74 65 72 5f 6c 6f 67 28 |tatic en|ter_log(|
|00002730| 74 79 70 65 2c 20 76 61 | 5f 74 61 69 6c 29 0a 58 |type, va|_tail).X|
|00002740| 63 68 61 72 20 74 79 70 | 65 3b 0a 58 76 61 5f 74 |char typ|e;.Xva_t|
|00002750| 64 63 6c 0a 58 7b 0a 58 | 20 20 20 20 46 49 4c 45 |dcl.X{.X| FILE|
|00002760| 20 2a 6c 6f 67 3b 0a 58 | 20 20 20 20 63 68 61 72 | *log;.X| char|
|00002770| 20 2a 6d 73 67 2c 20 62 | 75 66 5b 35 31 32 5d 3b | *msg, b|uf[512];|
|00002780| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 6c 6f 67 5f |.X.X |if (log_|
|00002790| 65 6e 74 72 79 5f 66 69 | 6c 74 65 72 20 21 3d 20 |entry_fi|lter != |
|000027a0| 4e 55 4c 4c 29 0a 58 09 | 66 6f 72 20 28 6d 73 67 |NULL).X.|for (msg|
|000027b0| 20 3d 20 6c 6f 67 5f 65 | 6e 74 72 79 5f 66 69 6c | = log_e|ntry_fil|
|000027c0| 74 65 72 3b 20 2a 6d 73 | 67 3b 20 6d 73 67 2b 2b |ter; *ms|g; msg++|
|000027d0| 29 0a 58 09 20 20 20 20 | 69 66 20 28 2a 6d 73 67 |).X. |if (*msg|
|000027e0| 20 3d 3d 20 74 79 70 65 | 29 20 72 65 74 75 72 6e | == type|) return|
|000027f0| 20 31 3b 0a 58 0a 58 20 | 20 20 20 6d 73 67 20 20 | 1;.X.X | msg |
|00002800| 3d 20 76 61 5f 61 72 67 | 31 28 63 68 61 72 20 2a |= va_arg|1(char *|
|00002810| 29 3b 0a 58 20 20 20 20 | 76 73 70 72 69 6e 74 66 |);.X |vsprintf|
|00002820| 28 62 75 66 2c 20 6d 73 | 67 2c 20 76 61 5f 61 72 |(buf, ms|g, va_ar|
|00002830| 67 73 32 74 6f 4e 29 3b | 0a 58 0a 58 20 20 20 20 |gs2toN);|.X.X |
|00002840| 2f 2a 20 63 61 6e 6e 6f | 74 20 75 73 65 20 72 65 |/* canno|t use re|
|00002850| 6c 61 74 69 76 65 3a 20 | 6f 6e 65 20 6f 66 20 74 |lative: |one of t|
|00002860| 68 65 20 61 72 67 73 20 | 6d 61 79 20 62 65 20 67 |he args |may be g|
|00002870| 65 6e 65 72 61 74 65 64 | 20 62 79 20 69 74 20 2a |enerated| by it *|
|00002880| 2f 0a 58 0a 58 20 20 20 | 20 6c 6f 67 20 3d 20 6f |/.X.X | log = o|
|00002890| 70 65 6e 5f 66 69 6c 65 | 28 6c 6f 67 5f 66 69 6c |pen_file|(log_fil|
|000028a0| 65 2c 20 4f 50 45 4e 5f | 41 50 50 45 4e 44 29 3b |e, OPEN_|APPEND);|
|000028b0| 0a 58 20 20 20 20 69 66 | 20 28 6c 6f 67 20 3d 3d |.X if| (log ==|
|000028c0| 20 4e 55 4c 4c 29 20 72 | 65 74 75 72 6e 20 30 3b | NULL) r|eturn 0;|
|000028d0| 0a 58 0a 58 20 20 20 20 | 66 70 72 69 6e 74 66 28 |.X.X |fprintf(|
|000028e0| 6c 6f 67 2c 20 22 25 63 | 3a 20 25 73 20 28 25 73 |log, "%c|: %s (%s|
|000028f0| 29 3a 20 25 73 5c 6e 22 | 2c 20 74 79 70 65 2c 0a |): %s\n"|, type,.|
|00002900| 58 09 20 20 20 20 64 61 | 74 65 5f 74 69 6d 65 28 |X. da|te_time(|
|00002910| 28 74 69 6d 65 5f 74 29 | 30 29 2c 20 75 73 65 72 |(time_t)|0), user|
|00002920| 5f 6e 61 6d 65 28 29 2c | 20 62 75 66 29 3b 0a 58 |_name(),| buf);.X|
|00002930| 0a 58 20 20 20 20 66 63 | 6c 6f 73 65 28 6c 6f 67 |.X fc|lose(log|
|00002940| 29 3b 0a 58 20 20 20 20 | 72 65 74 75 72 6e 20 31 |);.X |return 1|
|00002950| 3b 0a 58 7d 0a 58 0a 58 | 2f 2a 56 41 52 41 52 47 |;.X}.X.X|/*VARARG|
|00002960| 53 2a 2f 0a 58 73 79 73 | 5f 65 72 72 6f 72 28 76 |S*/.Xsys|_error(v|
|00002970| 61 5f 61 6c 69 73 74 29 | 0a 58 76 61 5f 64 63 6c |a_alist)|.Xva_dcl|
|00002980| 0a 58 7b 0a 58 20 20 20 | 20 63 68 61 72 20 62 75 |.X{.X | char bu|
|00002990| 66 5b 35 31 32 5d 3b 0a | 58 20 20 20 20 63 68 61 |f[512];.|X cha|
|000029a0| 72 20 2a 66 6d 74 3b 0a | 58 20 20 20 20 46 49 4c |r *fmt;.|X FIL|
|000029b0| 45 20 2a 66 3b 0a 58 20 | 20 20 20 75 73 65 5f 76 |E *f;.X | use_v|
|000029c0| 61 72 61 72 67 3b 0a 58 | 0a 58 20 20 20 20 73 74 |ararg;.X|.X st|
|000029d0| 61 72 74 5f 76 61 72 61 | 72 67 3b 0a 58 20 20 20 |art_vara|rg;.X |
|000029e0| 20 65 6e 74 65 72 5f 6c | 6f 67 28 27 45 27 2c 20 | enter_l|og('E', |
|000029f0| 76 61 5f 61 72 67 73 31 | 74 6f 4e 29 3b 0a 58 20 |va_args1|toN);.X |
|00002a00| 20 20 20 65 6e 64 5f 76 | 61 72 61 72 67 3b 0a 58 | end_v|ararg;.X|
|00002a10| 0a 58 20 20 20 20 73 74 | 61 72 74 5f 76 61 72 61 |.X st|art_vara|
|00002a20| 72 67 3b 0a 58 20 20 20 | 20 66 6d 74 20 3d 20 76 |rg;.X | fmt = v|
|00002a30| 61 5f 61 72 67 31 28 63 | 68 61 72 20 2a 29 3b 0a |a_arg1(c|har *);.|
|00002a40| 58 20 20 20 20 76 73 70 | 72 69 6e 74 66 28 62 75 |X vsp|rintf(bu|
|00002a50| 66 2c 20 66 6d 74 2c 20 | 76 61 5f 61 72 67 73 32 |f, fmt, |va_args2|
|00002a60| 74 6f 4e 29 3b 0a 58 20 | 20 20 20 65 6e 64 5f 76 |toN);.X | end_v|
|00002a70| 61 72 61 72 67 3b 0a 58 | 0a 58 20 20 20 20 69 66 |ararg;.X|.X if|
|00002a80| 20 28 77 68 6f 5f 61 6d | 5f 69 20 3d 3d 20 49 5f | (who_am|_i == I_|
|00002a90| 41 4d 5f 4d 41 53 54 45 | 52 29 20 7b 0a 58 09 69 |AM_MASTE|R) {.X.i|
|00002aa0| 66 20 28 64 6f 6e 74 5f | 77 72 69 74 65 5f 63 6f |f (dont_|write_co|
|00002ab0| 6e 73 6f 6c 65 29 20 6e | 6e 5f 65 78 69 74 28 37 |nsole) n|n_exit(7|
|00002ac0| 29 3b 0a 58 23 69 66 6e | 64 65 66 20 48 41 56 45 |);.X#ifn|def HAVE|
|00002ad0| 5f 53 59 53 4c 4f 47 0a | 58 09 66 20 3d 20 6f 70 |_SYSLOG.|X.f = op|
|00002ae0| 65 6e 5f 66 69 6c 65 28 | 22 2f 64 65 76 2f 63 6f |en_file(|"/dev/co|
|00002af0| 6e 73 6f 6c 65 22 2c 20 | 4f 50 45 4e 5f 43 52 45 |nsole", |OPEN_CRE|
|00002b00| 41 54 45 29 3b 0a 58 09 | 69 66 20 28 66 20 3d 3d |ATE);.X.|if (f ==|
|00002b10| 20 4e 55 4c 4c 29 20 6e | 6e 5f 65 78 69 74 28 38 | NULL) n|n_exit(8|
|00002b20| 29 3b 0a 58 09 66 70 72 | 69 6e 74 66 28 66 2c 20 |);.X.fpr|intf(f, |
|00002b30| 22 5c 6e 5c 72 4e 4e 4d | 41 53 54 45 52 20 46 41 |"\n\rNNM|ASTER FA|
|00002b40| 54 41 4c 20 45 52 52 4f | 52 5c 6e 5c 72 25 73 5c |TAL ERRO|R\n\r%s\|
|00002b50| 6e 5c 6e 5c 72 22 2c 20 | 62 75 66 29 3b 0a 58 09 |n\n\r", |buf);.X.|
|00002b60| 66 63 6c 6f 73 65 28 66 | 29 3b 0a 58 23 65 6c 73 |fclose(f|);.X#els|
|00002b70| 65 20 2f 2a 20 48 41 56 | 45 5f 53 59 53 4c 4f 47 |e /* HAV|E_SYSLOG|
|00002b80| 20 2a 2f 0a 58 09 6f 70 | 65 6e 6c 6f 67 28 22 6e | */.X.op|enlog("n|
|00002b90| 6e 6d 61 73 74 65 72 22 | 2c 20 4c 4f 47 5f 43 4f |nmaster"|, LOG_CO|
|00002ba0| 4e 53 2c 20 4c 4f 47 5f | 44 41 45 4d 4f 4e 29 3b |NS, LOG_|DAEMON);|
|00002bb0| 0a 58 09 73 79 73 6c 6f | 67 28 4c 4f 47 5f 41 4c |.X.syslo|g(LOG_AL|
|00002bc0| 45 52 54 2c 20 22 25 73 | 22 2c 20 62 75 66 29 3b |ERT, "%s|", buf);|
|00002bd0| 0a 58 09 63 6c 6f 73 65 | 6c 6f 67 28 29 3b 0a 58 |.X.close|log();.X|
|00002be0| 23 65 6e 64 69 66 20 2f | 2a 20 48 41 56 45 5f 53 |#endif /|* HAVE_S|
|00002bf0| 59 53 4c 4f 47 20 2a 2f | 0a 58 09 6e 6e 5f 65 78 |YSLOG */|.X.nn_ex|
|00002c00| 69 74 28 37 29 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |it(7);.X| }.X |
|00002c10| 20 20 20 75 73 65 72 5f | 65 72 72 6f 72 28 22 25 | user_|error("%|
|00002c20| 73 22 2c 20 62 75 66 29 | 3b 0a 58 7d 0a 58 0a 58 |s", buf)|;.X}.X.X|
|00002c30| 2f 2a 56 41 52 41 52 47 | 53 2a 2f 0a 58 6c 6f 67 |/*VARARG|S*/.Xlog|
|00002c40| 5f 65 6e 74 72 79 28 76 | 61 5f 61 6c 69 73 74 29 |_entry(v|a_alist)|
|00002c50| 0a 58 76 61 5f 64 63 6c | 0a 58 7b 0a 58 20 20 20 |.Xva_dcl|.X{.X |
|00002c60| 20 69 6e 74 20 74 79 70 | 65 2c 20 72 76 61 6c 3b | int typ|e, rval;|
|00002c70| 0a 58 20 20 20 20 75 73 | 65 5f 76 61 72 61 72 67 |.X us|e_vararg|
|00002c80| 3b 0a 58 0a 58 20 20 20 | 20 73 74 61 72 74 5f 76 |;.X.X | start_v|
|00002c90| 61 72 61 72 67 3b 0a 58 | 20 20 20 20 74 79 70 65 |ararg;.X| type|
|00002ca0| 20 3d 20 76 61 5f 61 72 | 67 31 28 69 6e 74 29 3b | = va_ar|g1(int);|
|00002cb0| 0a 58 20 20 20 20 72 76 | 61 6c 20 3d 20 65 6e 74 |.X rv|al = ent|
|00002cc0| 65 72 5f 6c 6f 67 28 74 | 79 70 65 2c 20 76 61 5f |er_log(t|ype, va_|
|00002cd0| 61 72 67 73 32 74 6f 4e | 29 3b 0a 58 20 20 20 20 |args2toN|);.X |
|00002ce0| 65 6e 64 5f 76 61 72 61 | 72 67 3b 0a 58 0a 58 20 |end_vara|rg;.X.X |
|00002cf0| 20 20 20 72 65 74 75 72 | 6e 20 72 76 61 6c 3b 0a | retur|n rval;.|
|00002d00| 58 7d 0a 58 0a 58 63 68 | 61 72 20 2a 75 73 65 72 |X}.X.Xch|ar *user|
|00002d10| 5f 6e 61 6d 65 28 29 0a | 58 7b 0a 58 20 20 20 20 |_name().|X{.X |
|00002d20| 73 74 61 74 69 63 20 63 | 68 61 72 20 2a 75 73 65 |static c|har *use|
|00002d30| 72 20 3d 20 4e 55 4c 4c | 3b 0a 58 20 20 20 20 73 |r = NULL|;.X s|
|00002d40| 74 72 75 63 74 20 70 61 | 73 73 77 64 20 2a 70 77 |truct pa|sswd *pw|
|00002d50| 2c 20 2a 67 65 74 70 77 | 75 69 64 28 29 3b 0a 58 |, *getpw|uid();.X|
|00002d60| 0a 58 20 20 20 20 69 66 | 20 28 77 68 6f 5f 61 6d |.X if| (who_am|
|00002d70| 5f 69 20 3d 3d 20 49 5f | 41 4d 5f 4d 41 53 54 45 |_i == I_|AM_MASTE|
|00002d80| 52 29 20 72 65 74 75 72 | 6e 20 22 4d 22 3b 0a 58 |R) retur|n "M";.X|
|00002d90| 20 20 20 20 69 66 20 28 | 77 68 6f 5f 61 6d 5f 69 | if (|who_am_i|
|00002da0| 20 3d 3d 20 49 5f 41 4d | 5f 45 58 50 49 52 45 29 | == I_AM|_EXPIRE)|
|00002db0| 20 72 65 74 75 72 6e 20 | 22 58 22 3b 0a 58 0a 58 | return |"X";.X.X|
|00002dc0| 20 20 20 20 69 66 20 28 | 75 73 65 72 20 3d 3d 20 | if (|user == |
|00002dd0| 4e 55 4c 4c 29 20 7b 0a | 58 09 70 77 20 3d 20 67 |NULL) {.|X.pw = g|
|00002de0| 65 74 70 77 75 69 64 28 | 28 69 6e 74 29 75 73 65 |etpwuid(|(int)use|
|00002df0| 72 5f 69 64 29 3b 0a 58 | 09 69 66 20 28 70 77 20 |r_id);.X|.if (pw |
|00002e00| 3d 3d 20 4e 55 4c 4c 29 | 20 75 73 65 72 20 3d 20 |== NULL)| user = |
|00002e10| 22 3f 22 3b 0a 58 09 75 | 73 65 72 20 3d 20 63 6f |"?";.X.u|ser = co|
|00002e20| 70 79 5f 73 74 72 28 70 | 77 2d 3e 70 77 5f 6e 61 |py_str(p|w->pw_na|
|00002e30| 6d 65 29 3b 0a 58 20 20 | 20 20 7d 0a 58 0a 58 20 |me);.X | }.X.X |
|00002e40| 20 20 20 72 65 74 75 72 | 6e 20 75 73 65 72 3b 0a | retur|n user;.|
|00002e50| 58 7d 0a 58 0a 58 74 69 | 6d 65 5f 74 20 63 75 72 |X}.X.Xti|me_t cur|
|00002e60| 5f 74 69 6d 65 28 29 0a | 58 7b 0a 58 20 20 20 20 |_time().|X{.X |
|00002e70| 74 69 6d 65 5f 74 20 74 | 3b 0a 58 0a 58 20 20 20 |time_t t|;.X.X |
|00002e80| 20 74 69 6d 65 28 26 74 | 29 3b 0a 58 20 20 20 20 | time(&t|);.X |
|00002e90| 72 65 74 75 72 6e 20 74 | 3b 0a 58 7d 0a 58 0a 58 |return t|;.X}.X.X|
|00002ea0| 63 68 61 72 20 2a 64 61 | 74 65 5f 74 69 6d 65 28 |char *da|te_time(|
|00002eb0| 74 29 0a 58 74 69 6d 65 | 5f 74 20 74 3b 0a 58 7b |t).Xtime|_t t;.X{|
|00002ec0| 0a 58 20 20 20 20 63 68 | 61 72 20 2a 73 74 72 3b |.X ch|ar *str;|
|00002ed0| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 74 20 3d 3d |.X.X |if (t ==|
|00002ee0| 20 28 74 69 6d 65 5f 74 | 29 30 29 20 74 20 3d 20 | (time_t|)0) t = |
|00002ef0| 63 75 72 5f 74 69 6d 65 | 28 29 3b 0a 58 20 20 20 |cur_time|();.X |
|00002f00| 20 73 74 72 20 3d 20 63 | 74 69 6d 65 28 26 74 29 | str = c|time(&t)|
|00002f10| 3b 0a 58 0a 58 20 20 20 | 20 73 74 72 5b 31 36 5d |;.X.X | str[16]|
|00002f20| 20 3d 20 30 3b 0a 58 20 | 20 20 20 72 65 74 75 72 | = 0;.X | retur|
|00002f30| 6e 20 73 74 72 2b 34 3b | 0a 58 7d 0a 58 0a 58 63 |n str+4;|.X}.X.Xc|
|00002f40| 68 61 72 20 2a 70 6c 75 | 72 61 6c 28 6e 29 0a 58 |har *plu|ral(n).X|
|00002f50| 6c 6f 6e 67 20 6e 3b 0a | 58 7b 0a 58 20 20 20 20 |long n;.|X{.X |
|00002f60| 72 65 74 75 72 6e 20 6e | 20 21 3d 20 31 20 3f 20 |return n| != 1 ? |
|00002f70| 22 73 22 20 3a 20 22 22 | 3b 0a 58 7d 0a 58 0a 58 |"s" : ""|;.X}.X.X|
|00002f80| 2f 2a 0a 58 20 2a 09 6d | 65 6d 6f 72 79 20 6d 61 |/*.X *.m|emory ma|
|00002f90| 6e 61 67 65 6d 65 6e 74 | 0a 58 20 2a 2f 0a 58 0a |nagement|.X */.X.|
|00002fa0| 58 2f 2a 20 23 64 65 66 | 69 6e 65 20 4d 45 4d 5f |X/* #def|ine MEM_|
|00002fb0| 44 45 42 55 47 09 09 2f | 2a 20 74 72 61 63 65 20 |DEBUG../|* trace |
|00002fc0| 6d 65 6d 6f 72 79 20 75 | 73 61 67 65 20 2a 2f 0a |memory u|sage */.|
|00002fd0| 58 0a 58 73 74 61 74 69 | 63 20 6d 65 6d 5f 65 72 |X.Xstati|c mem_er|
|00002fe0| 72 6f 72 28 74 2c 20 62 | 79 74 65 73 29 0a 58 69 |ror(t, b|ytes).Xi|
|00002ff0| 6e 74 20 74 3b 0a 58 69 | 6e 74 33 32 20 62 79 74 |nt t;.Xi|nt32 byt|
|00003000| 65 73 3b 0a 58 7b 0a 58 | 20 20 20 20 63 68 61 72 |es;.X{.X| char|
|00003010| 20 62 75 66 5b 32 30 30 | 5d 3b 0a 58 0a 58 20 20 | buf[200|];.X.X |
|00003020| 20 20 69 66 20 28 74 20 | 3d 3d 20 31 29 20 7b 0a | if (t |== 1) {.|
|00003030| 58 09 73 70 72 69 6e 74 | 66 28 62 75 66 2c 20 22 |X.sprint|f(buf, "|
|00003040| 41 6c 6c 6f 63 20 66 61 | 69 6c 65 64 3a 20 75 6e |Alloc fa|iled: un|
|00003050| 73 69 67 6e 65 64 20 74 | 6f 6f 20 73 68 6f 72 74 |signed t|oo short|
|00003060| 20 74 6f 20 72 65 70 72 | 65 73 65 6e 74 20 25 6c | to repr|esent %l|
|00003070| 64 20 62 79 74 65 73 22 | 2c 0a 58 09 09 28 6c 6f |d bytes"|,.X..(lo|
|00003080| 6e 67 29 62 79 74 65 73 | 29 3b 0a 58 20 20 20 20 |ng)bytes|);.X |
|00003090| 7d 20 65 6c 73 65 20 7b | 0a 58 09 73 70 72 69 6e |} else {|.X.sprin|
|000030a0| 74 66 28 62 75 66 2c 20 | 22 4f 75 74 20 6f 66 20 |tf(buf, |"Out of |
|000030b0| 6d 65 6d 6f 72 79 20 2d | 20 63 61 6e 6e 6f 74 20 |memory -| cannot |
|000030c0| 61 6c 6c 6f 63 61 74 65 | 20 25 6c 64 20 62 79 74 |allocate| %ld byt|
|000030d0| 65 73 22 2c 0a 58 09 09 | 28 6c 6f 6e 67 29 62 79 |es",.X..|(long)by|
|000030e0| 74 65 73 29 3b 0a 58 20 | 20 20 20 7d 0a 58 0a 58 |tes);.X | }.X.X|
|000030f0| 20 20 20 20 73 79 73 5f | 65 72 72 6f 72 28 62 75 | sys_|error(bu|
|00003100| 66 29 3b 0a 58 7d 0a 58 | 0a 58 63 68 61 72 20 2a |f);.X}.X|.Xchar *|
|00003110| 6d 65 6d 5f 6f 62 6a 28 | 73 69 7a 65 2c 20 6e 65 |mem_obj(|size, ne|
|00003120| 6c 74 29 0a 58 75 6e 73 | 69 67 6e 65 64 20 73 69 |lt).Xuns|igned si|
|00003130| 7a 65 3b 0a 58 69 6e 74 | 33 32 20 6e 65 6c 74 3b |ze;.Xint|32 nelt;|
|00003140| 0a 58 7b 0a 58 20 20 20 | 20 75 6e 73 69 67 6e 65 |.X{.X | unsigne|
|00003150| 64 20 6e 3b 0a 58 20 20 | 20 20 63 68 61 72 20 2a |d n;.X | char *|
|00003160| 6f 62 6a 2c 20 2a 63 61 | 6c 6c 6f 63 28 29 3b 0a |obj, *ca|lloc();.|
|00003170| 58 0a 58 20 20 20 20 6e | 20 3d 20 6e 65 6c 74 3b |X.X n| = nelt;|
|00003180| 0a 58 20 20 20 20 69 66 | 20 28 6e 20 21 3d 20 6e |.X if| (n != n|
|00003190| 65 6c 74 29 20 6d 65 6d | 5f 65 72 72 6f 72 28 31 |elt) mem|_error(1|
|000031a0| 2c 20 6e 65 6c 74 29 3b | 0a 58 0a 58 20 20 20 20 |, nelt);|.X.X |
|000031b0| 6f 62 6a 20 3d 20 63 61 | 6c 6c 6f 63 28 6e 2c 20 |obj = ca|lloc(n, |
|000031c0| 73 69 7a 65 29 3b 0a 58 | 23 69 66 64 65 66 20 4d |size);.X|#ifdef M|
|000031d0| 45 4d 5f 44 45 42 55 47 | 0a 58 20 20 20 20 70 72 |EM_DEBUG|.X pr|
|000031e0| 69 6e 74 66 28 22 43 41 | 4c 4c 4f 43 28 25 75 2c |intf("CA|LLOC(%u,|
|000031f0| 25 75 29 20 3d 3e 20 25 | 6c 78 5c 6e 22 2c 20 6e |%u) => %|lx\n", n|
|00003200| 2c 20 73 69 7a 65 2c 20 | 28 6c 6f 6e 67 29 6f 62 |, size, |(long)ob|
|00003210| 6a 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 20 20 20 |j);.X#en|dif.X |
|00003220| 20 69 66 20 28 6f 62 6a | 20 3d 3d 20 4e 55 4c 4c | if (obj| == NULL|
|00003230| 29 20 6d 65 6d 5f 65 72 | 72 6f 72 28 32 2c 20 28 |) mem_er|ror(2, (|
|00003240| 69 6e 74 33 32 29 28 73 | 69 7a 65 20 2a 20 6e 65 |int32)(s|ize * ne|
|00003250| 6c 74 29 29 3b 0a 58 20 | 20 20 20 72 65 74 75 72 |lt));.X | retur|
|00003260| 6e 20 6f 62 6a 3b 0a 58 | 7d 0a 58 0a 58 63 68 61 |n obj;.X|}.X.Xcha|
|00003270| 72 20 2a 6d 65 6d 5f 73 | 74 72 28 6e 65 6c 74 29 |r *mem_s|tr(nelt)|
|00003280| 0a 58 69 6e 74 33 32 20 | 6e 65 6c 74 3b 0a 58 7b |.Xint32 |nelt;.X{|
|00003290| 0a 58 20 20 20 20 75 6e | 73 69 67 6e 65 64 20 6e |.X un|signed n|
|000032a0| 3b 0a 58 20 20 20 20 63 | 68 61 72 20 2a 6f 62 6a |;.X c|har *obj|
|000032b0| 2c 20 2a 6d 61 6c 6c 6f | 63 28 29 3b 0a 58 0a 58 |, *mallo|c();.X.X|
|000032c0| 20 20 20 20 6e 20 3d 20 | 6e 65 6c 74 3b 0a 58 20 | n = |nelt;.X |
|000032d0| 20 20 20 69 66 20 28 6e | 20 21 3d 20 6e 65 6c 74 | if (n| != nelt|
|000032e0| 29 20 6d 65 6d 5f 65 72 | 72 6f 72 28 31 2c 20 6e |) mem_er|ror(1, n|
|000032f0| 65 6c 74 29 3b 0a 58 0a | 58 20 20 20 20 6f 62 6a |elt);.X.|X obj|
|00003300| 20 3d 20 6d 61 6c 6c 6f | 63 28 6e 29 3b 0a 58 23 | = mallo|c(n);.X#|
|00003310| 69 66 64 65 66 20 4d 45 | 4d 5f 44 45 42 55 47 0a |ifdef ME|M_DEBUG.|
|00003320| 58 20 20 20 20 70 72 69 | 6e 74 66 28 22 4d 41 4c |X pri|ntf("MAL|
|00003330| 4c 4f 43 28 25 75 29 20 | 3d 3e 20 25 6c 78 5c 6e |LOC(%u) |=> %lx\n|
|00003340| 22 2c 20 6e 2c 20 28 6c | 6f 6e 67 29 6f 62 6a 29 |", n, (l|ong)obj)|
|00003350| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 20 20 20 20 69 |;.X#endi|f.X i|
|00003360| 66 20 28 6f 62 6a 20 3d | 3d 20 4e 55 4c 4c 29 20 |f (obj =|= NULL) |
|00003370| 6d 65 6d 5f 65 72 72 6f | 72 28 32 2c 20 6e 65 6c |mem_erro|r(2, nel|
|00003380| 74 29 3b 0a 58 20 20 20 | 20 72 65 74 75 72 6e 20 |t);.X | return |
|00003390| 6f 62 6a 3b 0a 58 7d 0a | 58 0a 58 63 68 61 72 20 |obj;.X}.|X.Xchar |
|000033a0| 2a 6d 65 6d 5f 72 65 73 | 69 7a 65 28 6f 62 6a 2c |*mem_res|ize(obj,|
|000033b0| 20 73 69 7a 65 2c 20 6e | 65 6c 74 29 0a 58 63 68 | size, n|elt).Xch|
|000033c0| 61 72 20 2a 6f 62 6a 3b | 0a 58 75 6e 73 69 67 6e |ar *obj;|.Xunsign|
|000033d0| 65 64 20 73 69 7a 65 3b | 0a 58 69 6e 74 33 32 20 |ed size;|.Xint32 |
|000033e0| 6e 65 6c 74 3b 0a 58 7b | 0a 58 20 20 20 20 75 6e |nelt;.X{|.X un|
|000033f0| 73 69 67 6e 65 64 20 6e | 3b 0a 58 20 20 20 20 63 |signed n|;.X c|
|00003400| 68 61 72 20 2a 72 65 61 | 6c 6c 6f 63 28 29 2c 20 |har *rea|lloc(), |
|00003410| 2a 6f 62 6a 31 3b 0a 58 | 0a 58 20 20 20 20 69 66 |*obj1;.X|.X if|
|00003420| 20 28 6f 62 6a 20 3d 3d | 20 4e 55 4c 4c 29 0a 58 | (obj ==| NULL).X|
|00003430| 09 72 65 74 75 72 6e 20 | 6d 65 6d 5f 6f 62 6a 28 |.return |mem_obj(|
|00003440| 73 69 7a 65 2c 20 6e 65 | 6c 74 29 3b 0a 58 0a 58 |size, ne|lt);.X.X|
|00003450| 20 20 20 20 6e 65 6c 74 | 20 2a 3d 20 73 69 7a 65 | nelt| *= size|
|00003460| 3b 0a 58 0a 58 20 20 20 | 20 6e 20 3d 20 6e 65 6c |;.X.X | n = nel|
|00003470| 74 3b 0a 58 20 20 20 20 | 69 66 20 28 6e 20 21 3d |t;.X |if (n !=|
|00003480| 20 6e 65 6c 74 29 20 6d | 65 6d 5f 65 72 72 6f 72 | nelt) m|em_error|
|00003490| 28 31 2c 20 6e 65 6c 74 | 29 3b 0a 58 0a 58 20 20 |(1, nelt|);.X.X |
|000034a0| 20 20 6f 62 6a 31 20 3d | 20 72 65 61 6c 6c 6f 63 | obj1 =| realloc|
|000034b0| 28 6f 62 6a 2c 20 6e 29 | 3b 0a 58 23 69 66 64 65 |(obj, n)|;.X#ifde|
|000034c0| 66 20 4d 45 4d 5f 44 45 | 42 55 47 0a 58 20 20 20 |f MEM_DE|BUG.X |
|000034d0| 20 70 72 69 6e 74 66 28 | 22 52 45 41 4c 4c 4f 43 | printf(|"REALLOC|
|000034e0| 28 25 6c 78 2c 20 25 75 | 29 20 3d 3e 20 25 6c 78 |(%lx, %u|) => %lx|
|000034f0| 5c 6e 22 2c 20 28 6c 6f | 6e 67 29 6f 62 6a 2c 20 |\n", (lo|ng)obj, |
|00003500| 6e 2c 20 28 6c 6f 6e 67 | 29 6f 62 6a 31 29 3b 0a |n, (long|)obj1);.|
|00003510| 58 23 65 6e 64 69 66 0a | 58 20 20 20 20 69 66 20 |X#endif.|X if |
|00003520| 28 6f 62 6a 31 20 3d 3d | 20 4e 55 4c 4c 29 20 6d |(obj1 ==| NULL) m|
|00003530| 65 6d 5f 65 72 72 6f 72 | 28 32 2c 20 28 69 6e 74 |em_error|(2, (int|
|00003540| 33 32 29 73 69 7a 65 29 | 3b 0a 58 20 20 20 20 72 |32)size)|;.X r|
|00003550| 65 74 75 72 6e 20 6f 62 | 6a 31 3b 0a 58 7d 0a 58 |eturn ob|j1;.X}.X|
|00003560| 0a 58 6d 65 6d 5f 66 72 | 65 65 28 6f 62 6a 29 0a |.Xmem_fr|ee(obj).|
|00003570| 58 63 68 61 72 20 2a 6f | 62 6a 3b 0a 58 7b 0a 58 |Xchar *o|bj;.X{.X|
|00003580| 23 69 66 64 65 66 20 4d | 45 4d 5f 44 45 42 55 47 |#ifdef M|EM_DEBUG|
|00003590| 0a 58 20 20 20 20 70 72 | 69 6e 74 66 28 22 46 52 |.X pr|intf("FR|
|000035a0| 45 45 28 25 6c 78 29 5c | 6e 22 2c 20 28 6c 6f 6e |EE(%lx)\|n", (lon|
|000035b0| 67 29 6f 62 6a 29 3b 0a | 58 23 65 6e 64 69 66 0a |g)obj);.|X#endif.|
|000035c0| 58 20 20 20 20 69 66 20 | 28 6f 62 6a 20 21 3d 20 |X if |(obj != |
|000035d0| 4e 55 4c 4c 29 20 66 72 | 65 65 28 6f 62 6a 29 3b |NULL) fr|ee(obj);|
|000035e0| 0a 58 7d 0a 58 0a 58 23 | 69 66 6e 64 65 66 20 48 |.X}.X.X#|ifndef H|
|000035f0| 41 56 45 5f 4d 4b 44 49 | 52 0a 58 0a 58 6d 6b 64 |AVE_MKDI|R.X.Xmkd|
|00003600| 69 72 28 70 61 74 68 2c | 20 6d 6f 64 65 29 0a 58 |ir(path,| mode).X|
|00003610| 63 68 61 72 20 2a 70 61 | 74 68 3b 0a 58 69 6e 74 |char *pa|th;.Xint|
|00003620| 20 6d 6f 64 65 3b 0a 58 | 7b 0a 58 20 20 20 20 63 | mode;.X|{.X c|
|00003630| 68 61 72 20 63 6f 6d 6d | 61 6e 64 5b 46 49 4c 45 |har comm|and[FILE|
|00003640| 4e 41 4d 45 2a 32 20 2b | 20 32 30 5d 3b 0a 58 0a |NAME*2 +| 20];.X.|
|00003650| 58 20 20 20 20 73 70 72 | 69 6e 74 66 28 63 6f 6d |X spr|intf(com|
|00003660| 6d 61 6e 64 2c 20 22 7b | 20 6d 6b 64 69 72 20 25 |mand, "{| mkdir %|
|00003670| 73 20 26 26 20 63 68 6d | 6f 64 20 25 6f 20 25 73 |s && chm|od %o %s|
|00003680| 20 3b 20 7d 20 3e 20 2f | 64 65 76 2f 6e 75 6c 6c | ; } > /|dev/null|
|00003690| 20 32 3e 26 31 22 2c 0a | 58 09 20 20 20 20 70 61 | 2>&1",.|X. pa|
|000036a0| 74 68 2c 20 6d 6f 64 65 | 2c 20 70 61 74 68 29 3b |th, mode|, path);|
|000036b0| 0a 58 20 20 20 20 72 65 | 74 75 72 6e 20 73 79 73 |.X re|turn sys|
|000036c0| 74 65 6d 28 63 6f 6d 6d | 61 6e 64 29 20 21 3d 20 |tem(comm|and) != |
|000036d0| 30 20 3f 20 2d 31 20 3a | 20 30 3b 0a 58 7d 0a 58 |0 ? -1 :| 0;.X}.X|
|000036e0| 23 65 6e 64 69 66 0a 45 | 4e 44 5f 4f 46 5f 46 49 |#endif.E|ND_OF_FI|
|000036f0| 4c 45 0a 20 20 69 66 20 | 74 65 73 74 20 31 32 33 |LE. if |test 123|
|00003700| 32 33 20 2d 6e 65 20 60 | 77 63 20 2d 63 20 3c 27 |23 -ne `|wc -c <'|
|00003710| 67 6c 6f 62 61 6c 2e 63 | 27 60 3b 20 74 68 65 6e |global.c|'`; then|
|00003720| 0a 20 20 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |. ech|o shar: |
|00003730| 5c 22 27 67 6c 6f 62 61 | 6c 2e 63 27 5c 22 20 75 |\"'globa|l.c'\" u|
|00003740| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|00003750| 6e 67 20 73 69 7a 65 21 | 0a 20 20 66 69 0a 20 20 |ng size!|. fi. |
|00003760| 23 20 65 6e 64 20 6f 66 | 20 27 67 6c 6f 62 61 6c |# end of| 'global|
|00003770| 2e 63 27 0a 66 69 0a 69 | 66 20 74 65 73 74 20 2d |.c'.fi.i|f test -|
|00003780| 66 20 27 6d 61 6e 2f 6e | 6e 2e 31 2e 44 27 20 2d |f 'man/n|n.1.D' -|
|00003790| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|000037a0| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|000037b0| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|000037c0| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000037d0| 66 69 6c 65 20 5c 22 27 | 6d 61 6e 2f 6e 6e 2e 31 |file \"'|man/nn.1|
|000037e0| 2e 44 27 5c 22 0a 65 6c | 73 65 0a 20 20 65 63 68 |.D'\".el|se. ech|
|000037f0| 6f 20 73 68 61 72 3a 20 | 45 78 74 72 61 63 74 69 |o shar: |Extracti|
|00003800| 6e 67 20 5c 22 27 6d 61 | 6e 2f 6e 6e 2e 31 2e 44 |ng \"'ma|n/nn.1.D|
|00003810| 27 5c 22 20 5c 28 33 39 | 35 37 39 20 63 68 61 72 |'\" \(39|579 char|
|00003820| 61 63 74 65 72 73 5c 29 | 0a 20 20 73 65 64 20 22 |acters\)|. sed "|
|00003830| 73 2f 5e 58 2f 2f 22 20 | 3e 27 6d 61 6e 2f 6e 6e |s/^X//" |>'man/nn|
|00003840| 2e 31 2e 44 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |.1.D' <<|'END_OF_|
|00003850| 46 49 4c 45 27 0a 58 2e | 5c 22 20 42 45 47 49 4e |FILE'.X.|\" BEGIN|
|00003860| 50 41 52 54 20 44 0a 58 | 2e 53 48 20 43 55 53 54 |PART D.X|.SH CUST|
|00003870| 4f 4d 49 5a 45 44 20 41 | 52 54 49 43 4c 45 20 48 |OMIZED A|RTICLE H|
|00003880| 45 41 44 45 52 20 50 52 | 45 53 45 4e 54 41 54 49 |EADER PR|ESENTATI|
|00003890| 4f 4e 0a 58 4e 6f 72 6d | 61 6c 6c 79 2c 20 5c 66 |ON.XNorm|ally, \f|
|000038a0| 49 6e 6e 5c 66 50 20 77 | 69 6c 6c 20 6a 75 73 74 |Inn\fP w|ill just|
|000038b0| 20 70 72 69 6e 74 20 61 | 20 28 68 69 67 68 2d 6c | print a| (high-l|
|000038c0| 69 67 68 74 65 64 29 20 | 73 69 6e 67 6c 65 20 6c |ighted) |single l|
|000038d0| 69 6e 65 20 68 65 61 64 | 65 72 0a 58 63 6f 6e 74 |ine head|er.Xcont|
|000038e0| 61 69 6e 69 6e 67 20 74 | 68 65 20 61 75 74 68 6f |aining t|he autho|
|000038f0| 72 2c 20 73 75 62 6a 65 | 63 74 2c 20 61 6e 64 20 |r, subje|ct, and |
|00003900| 64 61 74 65 20 28 6f 70 | 74 69 6f 6e 61 6c 29 20 |date (op|tional) |
|00003910| 6f 66 20 74 68 65 20 61 | 72 74 69 63 6c 65 0a 58 |of the a|rticle.X|
|00003920| 77 68 65 6e 20 69 74 20 | 69 73 20 72 65 61 64 2e |when it |is read.|
|00003930| 0a 58 2e 4c 50 0a 58 42 | 79 20 73 65 74 74 69 6e |.X.LP.XB|y settin|
|00003940| 67 20 74 68 65 0a 58 2e | 42 20 68 65 61 64 65 72 |g the.X.|B header|
|00003950| 2d 6c 69 6e 65 73 0a 58 | 76 61 72 69 61 62 6c 65 |-lines.X|variable|
|00003960| 20 61 73 20 64 65 73 63 | 72 69 62 65 64 20 62 65 | as desc|ribed be|
|00003970| 6c 6f 77 2c 20 69 74 20 | 69 73 20 70 6f 73 73 69 |low, it |is possi|
|00003980| 62 6c 65 20 74 6f 20 67 | 65 74 20 61 20 6d 6f 72 |ble to g|et a mor|
|00003990| 65 20 69 6e 66 6f 72 6d | 61 74 69 76 65 0a 58 6d |e inform|ative.Xm|
|000039a0| 75 6c 74 69 20 6c 69 6e | 65 20 68 65 61 64 65 72 |ulti lin|e header|
|000039b0| 20 77 69 74 68 20 6f 70 | 74 69 6f 6e 61 6c 20 68 | with op|tional h|
|000039c0| 69 67 68 2d 6c 69 67 68 | 74 69 6e 67 20 61 6e 64 |igh-ligh|ting and|
|000039d0| 20 75 6e 64 65 72 6c 69 | 6e 69 6e 67 2e 0a 58 2e | underli|ning..X.|
|000039e0| 4c 50 0a 58 54 68 65 0a | 58 2e 42 20 68 65 61 64 |LP.XThe.|X.B head|
|000039f0| 65 72 2d 6c 69 6e 65 73 | 0a 58 76 61 72 69 61 62 |er-lines|.Xvariab|
|00003a00| 6c 65 20 69 73 20 73 65 | 74 20 74 6f 20 61 20 6c |le is se|t to a l|
|00003a10| 69 73 74 20 6f 66 20 68 | 65 61 64 65 72 20 6c 69 |ist of h|eader li|
|00003a20| 6e 65 20 69 64 65 6e 74 | 69 66 69 65 72 73 2c 20 |ne ident|ifiers, |
|00003a30| 61 6e 64 20 74 68 65 0a | 58 63 75 73 74 6f 6d 69 |and the.|Xcustomi|
|00003a40| 7a 65 64 20 68 65 61 64 | 65 72 73 20 77 69 6c 6c |zed head|ers will|
|00003a50| 20 74 68 65 6e 20 63 6f | 6e 74 61 69 6e 20 65 78 | then co|ntain ex|
|00003a60| 61 63 74 6c 79 20 74 68 | 65 73 65 20 68 65 61 64 |actly th|ese head|
|00003a70| 65 72 20 6c 69 6e 65 73 | 0a 58 5c 66 49 69 6e 20 |er lines|.X\fIin |
|00003a80| 74 68 65 20 73 70 65 63 | 69 66 69 65 64 20 6f 72 |the spec|ified or|
|00003a90| 64 65 72 5c 66 50 2e 0a | 58 2e 4c 50 0a 58 54 68 |der\fP..|X.LP.XTh|
|00003aa0| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 68 65 61 64 |e follow|ing head|
|00003ab0| 65 72 20 6c 69 6e 65 20 | 69 64 65 6e 74 69 66 69 |er line |identifi|
|00003ac0| 65 72 73 20 61 72 65 20 | 72 65 63 6f 67 6e 69 7a |ers are |recogniz|
|00003ad0| 65 64 20 69 6e 20 74 68 | 65 0a 58 2e 42 20 68 65 |ed in th|e.X.B he|
|00003ae0| 61 64 65 72 2d 6c 69 6e | 65 73 0a 58 76 61 72 69 |ader-lin|es.Xvari|
|00003af0| 61 62 6c 65 3a 0a 58 2e | 4c 50 0a 58 2e 69 6e 20 |able:.X.|LP.X.in |
|00003b00| 2b 38 6e 0a 58 2e 74 61 | 20 35 6d 0a 58 2e 5c 22 |+8n.X.ta| 5m.X.\"|
|00003b10| 74 61 20 34 20 39 0a 58 | 2e 62 72 0a 58 5c 66 42 |ta 4 9.X|.br.X\fB|
|00003b20| 41 5c 66 50 09 41 70 70 | 72 6f 76 65 64 3a 0a 58 |A\fP.App|roved:.X|
|00003b30| 2e 62 72 0a 58 5c 66 42 | 42 5c 66 50 09 44 69 73 |.br.X\fB|B\fP.Dis|
|00003b40| 74 72 69 62 75 74 69 6f | 6e 3a 0a 58 2e 62 72 0a |tributio|n:.X.br.|
|00003b50| 58 5c 66 42 44 5c 66 50 | 09 44 61 74 65 3a 0a 58 |X\fBD\fP|.Date:.X|
|00003b60| 2e 62 72 0a 58 5c 66 42 | 64 5c 66 50 09 44 61 74 |.br.X\fB|d\fP.Dat|
|00003b70| 65 2d 52 65 63 65 69 76 | 65 64 3a 0a 58 2e 62 72 |e-Receiv|ed:.X.br|
|00003b80| 0a 58 5c 66 42 46 5c 66 | 50 09 46 72 6f 6d 3a 0a |.X\fBF\f|P.From:.|
|00003b90| 58 2e 62 72 0a 58 5c 66 | 42 49 5c 66 50 09 4d 65 |X.br.X\f|BI\fP.Me|
|00003ba0| 73 73 61 67 65 2d 49 64 | 3a 0a 58 2e 62 72 0a 58 |ssage-Id|:.X.br.X|
|00003bb0| 5c 66 42 4b 5c 66 50 09 | 4b 65 79 77 6f 72 64 73 |\fBK\fP.|Keywords|
|00003bc0| 3a 0a 58 2e 62 72 0a 58 | 5c 66 42 4c 5c 66 50 09 |:.X.br.X|\fBL\fP.|
|00003bd0| 4c 69 6e 65 73 3a 0a 58 | 2e 62 72 0a 58 5c 66 42 |Lines:.X|.br.X\fB|
|00003be0| 4e 5c 66 50 09 4e 65 77 | 73 67 72 6f 75 70 73 3a |N\fP.New|sgroups:|
|00003bf0| 0a 58 2e 62 72 0a 58 5c | 66 42 6e 5c 66 50 09 4e |.X.br.X\|fBn\fP.N|
|00003c00| 65 77 73 67 72 6f 75 70 | 73 3a 20 20 20 28 62 75 |ewsgroup|s: (bu|
|00003c10| 74 20 6f 6e 6c 79 20 69 | 66 20 63 72 6f 73 73 20 |t only i|f cross |
|00003c20| 70 6f 73 74 65 64 29 0a | 58 2e 62 72 0a 58 5c 66 |posted).|X.br.X\f|
|00003c30| 42 4f 5c 66 50 09 4f 72 | 67 61 6e 69 7a 61 74 69 |BO\fP.Or|ganizati|
|00003c40| 6f 6e 3a 0a 58 2e 62 72 | 0a 58 5c 66 42 50 5c 66 |on:.X.br|.X\fBP\f|
|00003c50| 50 09 50 61 74 68 3a 0a | 58 2e 62 72 0a 58 5c 66 |P.Path:.|X.br.X\f|
|00003c60| 42 52 5c 66 50 09 52 65 | 70 6c 79 2d 54 6f 3a 0a |BR\fP.Re|ply-To:.|
|00003c70| 58 2e 62 72 0a 58 5c 66 | 42 53 5c 66 50 09 53 75 |X.br.X\f|BS\fP.Su|
|00003c80| 62 6a 65 63 74 3a 0a 58 | 2e 62 72 0a 58 5c 66 42 |bject:.X|.br.X\fB|
|00003c90| 57 5c 66 50 09 46 6f 6c | 6c 6f 77 75 70 2d 54 6f |W\fP.Fol|lowup-To|
|00003ca0| 3a 0a 58 2e 62 72 0a 58 | 5c 66 42 58 5c 66 50 09 |:.X.br.X|\fBX\fP.|
|00003cb0| 52 65 66 65 72 65 6e 63 | 65 73 3a 0a 58 2e 62 72 |Referenc|es:.X.br|
|00003cc0| 0a 58 5c 66 42 78 5c 66 | 50 09 42 61 63 6b 2d 52 |.X\fBx\f|P.Back-R|
|00003cd0| 65 66 65 72 65 6e 63 65 | 73 3a 0a 58 2e 62 72 0a |eference|s:.X.br.|
|00003ce0| 58 5c 66 42 59 5c 66 50 | 09 53 75 6d 6d 61 72 79 |X\fBY\fP|.Summary|
|00003cf0| 3a 0a 58 2e 69 6e 20 2d | 38 6e 0a 58 2e 44 54 0a |:.X.in -|8n.X.DT.|
|00003d00| 58 2e 4c 50 0a 58 50 72 | 65 63 65 64 69 6e 67 20 |X.LP.XPr|eceding |
|00003d10| 74 68 65 20 69 64 65 6e | 74 69 66 69 65 72 20 77 |the iden|tifier w|
|00003d20| 69 74 68 20 61 6e 20 65 | 71 75 61 6c 20 73 69 67 |ith an e|qual sig|
|00003d30| 6e 20 22 3d 22 20 6f 72 | 20 61 6e 20 75 6e 64 65 |n "=" or| an unde|
|00003d40| 72 73 63 6f 72 65 20 22 | 5f 22 0a 58 77 69 6c 6c |rscore "|_".Xwill|
|00003d50| 20 63 61 75 73 65 20 74 | 68 65 20 68 65 61 64 65 | cause t|he heade|
|00003d60| 72 20 66 69 65 6c 64 20 | 63 6f 6e 74 65 6e 74 73 |r field |contents|
|00003d70| 20 74 6f 20 62 65 20 68 | 69 67 68 2d 6c 69 67 68 | to be h|igh-ligh|
|00003d80| 74 65 64 20 6f 72 20 75 | 6e 64 65 72 6c 69 6e 65 |ted or u|nderline|
|00003d90| 64 2e 0a 58 2e 4c 50 0a | 58 49 6e 63 6c 75 64 69 |d..X.LP.|XIncludi|
|00003da0| 6e 67 20 61 6e 20 61 73 | 74 65 72 69 73 6b 20 22 |ng an as|terisk "|
|00003db0| 2a 22 20 69 6e 20 74 68 | 65 20 6c 69 73 74 20 77 |*" in th|e list w|
|00003dc0| 69 6c 6c 20 70 72 6f 64 | 75 63 65 20 74 68 65 20 |ill prod|uce the |
|00003dd0| 73 74 61 6e 64 61 72 64 | 20 6f 6e 65 0a 58 6c 69 |standard| one.Xli|
|00003de0| 6e 65 20 68 65 61 64 65 | 72 20 61 74 20 74 68 61 |ne heade|r at tha|
|00003df0| 74 20 70 6f 69 6e 74 2e | 0a 58 2e 4c 50 0a 58 45 |t point.|.X.LP.XE|
|00003e00| 78 61 6d 70 6c 65 3a 20 | 20 54 68 65 20 66 6f 6c |xample: | The fol|
|00003e10| 6c 6f 77 69 6e 67 20 73 | 65 74 74 69 6e 67 20 6f |lowing s|etting o|
|00003e20| 66 20 74 68 65 0a 58 2e | 42 20 68 65 61 64 65 72 |f the.X.|B header|
|00003e30| 2d 6c 69 6e 65 73 0a 58 | 76 61 72 69 61 62 6c 65 |-lines.X|variable|
|00003e40| 20 77 69 6c 6c 20 73 68 | 6f 77 20 74 68 65 20 61 | will sh|ow the a|
|00003e50| 75 74 68 6f 72 20 28 75 | 6e 64 65 72 6c 69 6e 65 |uthor (u|nderline|
|00003e60| 64 29 2c 20 6f 72 67 61 | 6e 69 7a 61 74 69 6f 6e |d), orga|nization|
|00003e70| 2c 20 70 6f 73 74 69 6e | 67 0a 58 64 61 74 65 2c |, postin|g.Xdate,|
|00003e80| 20 61 6e 64 20 73 75 62 | 6a 65 63 74 20 28 68 69 | and sub|ject (hi|
|00003e90| 67 68 2d 6c 69 67 68 74 | 65 64 29 20 77 68 65 6e |gh-light|ed) when|
|00003ea0| 20 61 72 74 69 63 6c 65 | 73 20 61 72 65 20 72 65 | article|s are re|
|00003eb0| 61 64 3a 0a 58 2e 73 70 | 20 30 2e 35 76 0a 58 09 |ad:.X.sp| 0.5v.X.|
|00003ec0| 73 65 74 20 68 65 61 64 | 65 72 2d 6c 69 6e 65 73 |set head|er-lines|
|00003ed0| 20 5f 46 4f 44 3d 53 0a | 58 2e 53 48 20 43 4f 4d | _FOD=S.|X.SH COM|
|00003ee0| 4d 41 4e 44 20 4c 49 4e | 45 20 4f 50 54 49 4f 4e |MAND LIN|E OPTION|
|00003ef0| 53 0a 58 53 6f 6d 65 20 | 6f 66 20 74 68 65 20 63 |S.XSome |of the c|
|00003f00| 6f 6d 6d 61 6e 64 20 6c | 69 6e 65 20 6f 70 74 69 |ommand l|ine opti|
|00003f10| 6f 6e 73 20 68 61 76 65 | 20 61 6c 72 65 61 64 79 |ons have| already|
|00003f20| 20 62 65 65 6e 20 64 65 | 73 63 72 69 62 65 64 2c | been de|scribed,|
|00003f30| 20 62 75 74 0a 58 62 65 | 6c 6f 77 20 77 65 20 70 | but.Xbe|low we p|
|00003f40| 72 6f 76 69 64 65 20 61 | 20 63 6f 6d 70 6c 65 74 |rovide a| complet|
|00003f50| 65 20 6c 69 73 74 20 6f | 66 20 74 68 65 20 65 66 |e list o|f the ef|
|00003f60| 66 65 63 74 20 6f 66 20 | 65 61 63 68 20 6f 70 74 |fect of |each opt|
|00003f70| 69 6f 6e 20 62 79 0a 58 | 73 68 6f 77 69 6e 67 20 |ion by.X|showing |
|00003f80| 74 68 65 20 65 71 75 69 | 76 61 6c 65 6e 74 0a 58 |the equi|valent.X|
|00003f90| 2e 42 52 20 73 65 74 20 | 2c 0a 58 2e 42 52 20 75 |.BR set |,.X.BR u|
|00003fa0| 6e 73 65 74 20 2c 0a 58 | 6f 72 0a 58 2e 42 20 74 |nset ,.X|or.X.B t|
|00003fb0| 6f 67 67 6c 65 0a 58 63 | 6f 6d 6d 61 6e 64 2e 0a |oggle.Xc|ommand..|
|00003fc0| 58 2e 4c 50 0a 58 4e 6f | 74 69 63 65 20 74 68 61 |X.LP.XNo|tice tha|
|00003fd0| 74 20 74 68 65 20 69 6e | 69 74 20 66 69 6c 65 73 |t the in|it files|
|00003fe0| 20 61 72 65 20 72 65 61 | 64 20 5c 66 49 62 65 66 | are rea|d \fIbef|
|00003ff0| 6f 72 65 5c 66 50 20 74 | 68 65 20 6f 70 74 69 6f |ore\fP t|he optio|
|00004000| 6e 73 20 61 72 65 0a 58 | 70 61 72 73 65 64 20 28 |ns are.X|parsed (|
|00004010| 75 6e 6c 65 73 73 20 79 | 6f 75 20 75 73 65 20 74 |unless y|ou use t|
|00004020| 68 65 20 5c 2d 5c 66 42 | 49 5c 66 50 20 6f 70 74 |he \-\fB|I\fP opt|
|00004030| 69 6f 6e 29 2e 20 20 54 | 68 65 72 65 66 6f 72 65 |ion). T|herefore|
|00004040| 2c 20 74 68 65 20 6f 70 | 74 69 6f 6e 73 0a 58 77 |, the op|tions.Xw|
|00004050| 68 69 63 68 20 61 72 65 | 20 72 65 6c 61 74 65 64 |hich are| related|
|00004060| 20 74 6f 20 62 6f 6f 6c | 65 61 6e 20 76 61 72 69 | to bool|ean vari|
|00004070| 61 62 6c 65 73 20 73 65 | 74 20 69 6e 20 74 68 65 |ables se|t in the|
|00004080| 20 69 6e 69 74 20 66 69 | 6c 65 20 77 69 6c 6c 0a | init fi|le will.|
|00004090| 58 74 6f 67 67 6c 65 20 | 74 68 65 20 76 61 6c 75 |Xtoggle |the valu|
|000040a0| 65 20 73 65 74 20 74 68 | 65 72 65 2c 20 72 61 74 |e set th|ere, rat|
|000040b0| 68 65 72 20 74 68 61 6e | 20 74 68 65 20 64 65 66 |her than| the def|
|000040c0| 61 75 6c 74 20 76 61 6c | 75 65 2e 0a 58 43 6f 6e |ault val|ue..XCon|
|000040d0| 73 65 71 75 65 6e 74 6c | 79 2c 20 74 68 65 20 6d |sequentl|y, the m|
|000040e0| 65 61 6e 69 6e 67 20 6f | 66 20 74 68 65 20 6f 70 |eaning o|f the op|
|000040f0| 74 69 6f 6e 73 20 61 72 | 65 20 61 6c 73 6f 20 75 |tions ar|e also u|
|00004100| 73 65 72 2d 64 65 66 69 | 6e 65 64 2e 0a 58 2e 4c |ser-defi|ned..X.L|
|00004110| 50 0a 58 54 68 65 20 65 | 78 70 6c 61 6e 61 74 69 |P.XThe e|xplanati|
|00004120| 6f 6e 73 20 62 65 6c 6f | 77 20 64 65 73 63 72 69 |ons belo|w descri|
|00004130| 62 65 20 74 68 65 20 65 | 66 66 65 63 74 20 72 65 |be the e|ffect re|
|00004140| 6c 61 74 65 64 20 74 6f | 20 74 68 65 20 64 65 66 |lated to| the def|
|00004150| 61 75 6c 74 0a 58 73 65 | 74 74 69 6e 67 20 6f 66 |ault.Xse|tting of|
|00004160| 20 74 68 65 20 76 61 72 | 69 61 62 6c 65 73 2c 20 | the var|iables, |
|00004170| 77 69 74 68 20 74 68 65 | 20 60 72 65 76 65 72 73 |with the| `revers|
|00004180| 65 27 20 65 66 66 65 63 | 74 20 69 6e 20 73 71 75 |e' effec|t in squ|
|00004190| 61 72 65 0a 58 62 72 61 | 63 6b 65 74 73 2e 0a 58 |are.Xbra|ckets..X|
|000041a0| 2e 54 50 0a 58 5c 2d 5c | 66 42 61 5c 66 50 5c 66 |.TP.X\-\|fBa\fP\f|
|000041b0| 49 4e 5c 66 50 09 7b 5c | 66 42 73 65 74 20 6c 69 |IN\fP.{\|fBset li|
|000041c0| 6d 69 74 5c 66 50 20 5c | 66 49 4e 5c 66 50 7d 0a |mit\fP \|fIN\fP}.|
|000041d0| 58 2e 49 20 4c 69 6d 69 | 74 0a 58 74 68 65 20 6d |X.I Limi|t.Xthe m|
|000041e0| 61 78 69 6d 75 6d 20 6e | 75 6d 62 65 72 20 6f 66 |aximum n|umber of|
|000041f0| 20 61 72 74 69 63 6c 65 | 73 20 70 72 65 73 65 6e | article|s presen|
|00004200| 74 65 64 20 69 6e 20 65 | 61 63 68 20 67 72 6f 75 |ted in e|ach grou|
|00004210| 70 20 74 6f 0a 58 2e 49 | 20 4e 2e 0a 58 54 68 69 |p to.X.I| N..XThi|
|00004220| 73 20 69 73 20 75 73 65 | 66 75 6c 20 74 6f 20 67 |s is use|ful to g|
|00004230| 65 74 20 75 70 2d 74 6f | 2d 64 61 74 65 20 71 75 |et up-to|-date qu|
|00004240| 69 63 6b 6c 79 20 69 66 | 20 79 6f 75 20 68 61 76 |ickly if| you hav|
|00004250| 65 20 6e 6f 74 0a 58 72 | 65 61 64 20 6e 65 77 73 |e not.Xr|ead news|
|00004260| 20 66 6f 72 20 61 20 6c | 6f 6e 67 65 72 20 70 65 | for a l|onger pe|
|00004270| 72 69 6f 64 2e 0a 58 2e | 54 50 0a 58 5c 2d 5c 66 |riod..X.|TP.X\-\f|
|00004280| 42 61 30 5c 66 50 0a 58 | 4d 61 72 6b 0a 58 2e 49 |Ba0\fP.X|Mark.X.I|
|00004290| 20 61 6c 6c 0a 58 75 6e | 72 65 61 64 20 61 72 74 | all.Xun|read art|
|000042a0| 69 63 6c 65 73 20 61 73 | 20 72 65 61 64 2e 20 20 |icles as| read. |
|000042b0| 53 65 65 20 74 68 65 20 | 66 75 6c 6c 20 65 78 70 |See the |full exp|
|000042c0| 6c 61 6e 61 74 69 6f 6e | 20 61 74 20 74 68 65 20 |lanation| at the |
|000042d0| 62 65 67 69 6e 6e 69 6e | 67 20 6f 66 0a 58 74 68 |beginnin|g of.Xth|
|000042e0| 69 73 20 6d 61 6e 75 61 | 6c 2e 0a 58 2e 54 50 0a |is manua|l..X.TP.|
|000042f0| 58 5c 2d 5c 66 42 42 5c | 66 50 09 7b 5c 66 42 74 |X\-\fBB\|fP.{\fBt|
|00004300| 6f 67 67 6c 65 20 62 61 | 63 6b 75 70 5c 66 50 7d |oggle ba|ckup\fP}|
|00004310| 0a 58 44 6f 20 6e 6f 74 | 20 5b 64 6f 5d 20 62 61 |.XDo not| [do] ba|
|00004320| 63 6b 75 70 20 74 68 65 | 20 72 63 20 66 69 6c 65 |ckup the| rc file|
|00004330| 2e 0a 58 2e 54 50 0a 58 | 5c 2d 5c 66 42 64 5c 66 |..X.TP.X|\-\fBd\f|
|00004340| 50 09 7b 5c 66 42 74 6f | 67 67 6c 65 20 73 70 6c |P.{\fBto|ggle spl|
|00004350| 69 74 5c 66 50 7d 0a 58 | 44 6f 20 6e 6f 74 20 5b |it\fP}.X|Do not [|
|00004360| 64 6f 5d 20 73 70 6c 69 | 74 20 64 69 67 65 73 74 |do] spli|t digest|
|00004370| 73 20 69 6e 74 6f 20 73 | 65 70 61 72 61 74 65 20 |s into s|eparate |
|00004380| 61 72 74 69 63 6c 65 73 | 2e 0a 58 2e 54 50 0a 58 |articles|..X.TP.X|
|00004390| 5c 2d 5c 66 42 66 5c 66 | 50 09 7b 5c 66 42 74 6f |\-\fBf\f|P.{\fBto|
|000043a0| 67 67 6c 65 20 66 73 6f | 72 74 5c 66 50 7d 0a 58 |ggle fso|rt\fP}.X|
|000043b0| 44 6f 20 6e 6f 74 20 5b | 64 6f 5d 20 73 6f 72 74 |Do not [|do] sort|
|000043c0| 20 66 6f 6c 64 65 72 73 | 20 61 63 63 6f 72 64 69 | folders| accordi|
|000043d0| 6e 67 20 74 6f 20 74 68 | 65 20 73 75 62 6a 65 63 |ng to th|e subjec|
|000043e0| 74 20 28 70 72 65 73 65 | 6e 74 20 74 68 65 0a 58 |t (prese|nt the.X|
|000043f0| 61 72 74 69 63 6c 65 73 | 20 69 6e 20 61 20 66 6f |articles| in a fo|
|00004400| 6c 64 65 72 20 69 6e 20 | 74 68 65 20 73 65 71 75 |lder in |the sequ|
|00004410| 65 6e 63 65 20 69 6e 20 | 77 68 69 63 68 20 74 68 |ence in |which th|
|00004420| 65 79 20 77 65 72 65 20 | 73 61 76 65 64 29 2e 0a |ey were |saved)..|
|00004430| 58 2e 54 50 0a 58 5c 2d | 5c 66 42 67 5c 66 50 0a |X.TP.X\-|\fBg\fP.|
|00004440| 58 50 72 6f 6d 70 74 20 | 66 6f 72 20 74 68 65 20 |XPrompt |for the |
|00004450| 6e 61 6d 65 20 6f 66 20 | 61 20 6e 65 77 73 20 67 |name of |a news g|
|00004460| 72 6f 75 70 20 6f 72 20 | 66 6f 6c 64 65 72 20 74 |roup or |folder t|
|00004470| 6f 20 62 65 20 65 6e 74 | 65 72 65 64 0a 58 2e 54 |o be ent|ered.X.T|
|00004480| 50 0a 58 5c 2d 5c 66 42 | 69 5c 66 50 09 7b 5c 66 |P.X\-\fB|i\fP.{\f|
|00004490| 42 74 6f 67 67 6c 65 20 | 63 61 73 65 2d 66 6f 6c |Btoggle |case-fol|
|000044a0| 64 2d 73 65 61 72 63 68 | 5c 66 50 7d 0a 58 4e 6f |d-search|\fP}.XNo|
|000044b0| 72 6d 61 6c 6c 79 20 73 | 65 61 72 63 68 65 73 20 |rmally s|earches |
|000044c0| 77 69 74 68 20 5c 2d 5c | 66 42 6e 5c 66 50 20 61 |with \-\|fBn\fP a|
|000044d0| 6e 64 20 5c 2d 5c 66 42 | 73 5c 66 50 20 61 72 65 |nd \-\fB|s\fP are|
|000044e0| 20 63 61 73 65 20 69 6e | 64 65 6e 70 65 6e 64 65 | case in|denpende|
|000044f0| 6e 74 2e 0a 58 55 73 69 | 6e 67 20 74 68 69 73 20 |nt..XUsi|ng this |
|00004500| 6f 70 74 69 6f 6e 2c 20 | 74 68 65 20 63 61 73 65 |option, |the case|
|00004510| 20 62 65 63 6f 6d 65 73 | 20 73 69 67 6e 69 66 69 | becomes| signifi|
|00004520| 63 61 6e 74 2e 0a 58 2e | 54 50 0a 58 5c 2d 5c 66 |cant..X.|TP.X\-\f|
|00004530| 42 49 5c 66 50 0a 58 44 | 6f 20 6e 6f 74 20 72 65 |BI\fP.XD|o not re|
|00004540| 61 64 20 74 68 65 20 69 | 6e 69 74 20 66 69 6c 65 |ad the i|nit file|
|00004550| 2e 20 20 54 68 69 73 20 | 6d 75 73 74 20 62 65 20 |. This |must be |
|00004560| 74 68 65 20 66 69 72 73 | 74 20 6f 70 74 69 6f 6e |the firs|t option|
|00004570| 21 21 0a 58 2e 54 50 0a | 58 5c 2d 5c 66 42 49 5c |!!.X.TP.|X\-\fBI\|
|00004580| 66 50 5c 66 49 66 69 6c | 65 2d 6c 69 73 74 5c 66 |fP\fIfil|e-list\f|
|00004590| 50 0a 58 53 70 65 63 69 | 66 69 65 73 20 61 6e 20 |P.XSpeci|fies an |
|000045a0| 61 6c 74 65 72 6e 61 74 | 65 20 6c 69 73 74 20 6f |alternat|e list o|
|000045b0| 66 20 69 6e 69 74 20 66 | 69 6c 65 73 20 74 6f 20 |f init f|iles to |
|000045c0| 62 65 20 6c 6f 61 64 65 | 64 20 69 6e 73 74 65 61 |be loade|d instea|
|000045d0| 64 20 6f 66 20 74 68 65 | 0a 58 73 74 61 6e 64 61 |d of the|.Xstanda|
|000045e0| 72 64 20 67 6c 6f 62 61 | 6c 20 61 6e 64 20 70 72 |rd globa|l and pr|
|000045f0| 69 76 61 74 65 20 69 6e | 69 74 20 66 69 6c 65 73 |ivate in|it files|
|00004600| 2e 20 20 54 68 65 20 6c | 69 73 74 20 69 73 20 61 |. The l|ist is a|
|00004610| 20 63 6f 6d 6d 61 2d 73 | 65 70 61 72 61 74 65 64 | comma-s|eparated|
|00004620| 0a 58 6c 69 73 74 20 6f | 66 20 66 69 6c 65 20 6e |.Xlist o|f file n|
|00004630| 61 6d 65 73 2e 20 20 4e | 61 6d 65 73 20 77 68 69 |ames. N|ames whi|
|00004640| 63 68 20 64 6f 65 73 20 | 6e 6f 74 20 63 6f 6e 74 |ch does |not cont|
|00004650| 61 69 6e 20 61 20 60 2f | 27 20 61 72 65 20 6c 6f |ain a `/|' are lo|
|00004660| 6f 6b 65 64 20 66 6f 72 | 0a 58 69 6e 20 74 68 65 |oked for|.Xin the|
|00004670| 20 7e 2f 2e 6e 6e 20 64 | 69 72 65 63 74 6f 72 79 | ~/.nn d|irectory|
|00004680| 2e 20 20 41 6e 20 65 6d | 70 74 79 20 65 6c 65 6d |. An em|pty elem|
|00004690| 65 6e 74 20 69 6e 20 74 | 68 65 20 6c 69 73 74 20 |ent in t|he list |
|000046a0| 69 73 20 69 6e 74 65 72 | 70 72 65 74 65 64 0a 58 |is inter|preted.X|
|000046b0| 61 73 20 74 68 65 20 67 | 6c 6f 62 61 6c 20 69 6e |as the g|lobal in|
|000046c0| 69 74 20 66 69 6c 65 2e | 20 20 54 68 65 20 6c 69 |it file.| The li|
|000046d0| 73 74 20 6f 66 20 69 6e | 69 74 20 66 69 6c 65 73 |st of in|it files|
|000046e0| 20 6d 75 73 74 0a 58 5c | 66 49 6e 6f 74 5c 66 50 | must.X\|fInot\fP|
|000046f0| 20 62 65 20 73 65 70 61 | 72 61 74 65 64 20 66 72 | be sepa|rated fr|
|00004700| 6f 6d 20 74 68 65 20 5c | 66 42 5c 2d 49 5c 66 50 |om the \|fB\-I\fP|
|00004710| 20 6f 70 74 69 6f 6e 20 | 62 79 20 62 6c 61 6e 6b | option |by blank|
|00004720| 73 2c 20 61 6e 64 20 69 | 74 0a 58 6d 75 73 74 20 |s, and i|t.Xmust |
|00004730| 62 65 20 74 68 65 20 66 | 69 72 73 74 20 6f 70 74 |be the f|irst opt|
|00004740| 69 6f 6e 2e 20 20 45 78 | 61 6d 70 6c 65 3a 20 20 |ion. Ex|ample: |
|00004750| 54 68 65 20 64 65 66 61 | 75 6c 74 20 62 65 68 61 |The defa|ult beha|
|00004760| 76 69 6f 75 72 20 63 6f | 72 72 65 73 70 6f 6e 64 |viour co|rrespond|
|00004770| 73 0a 58 74 6f 20 75 73 | 69 6e 67 20 2d 49 2c 69 |s.Xto us|ing -I,i|
|00004780| 6e 69 74 20 28 66 69 72 | 73 74 20 74 68 65 20 67 |nit (fir|st the g|
|00004790| 6c 6f 62 61 6c 20 66 69 | 6c 65 2c 20 74 68 65 6e |lobal fi|le, then|
|000047a0| 20 74 68 65 20 66 69 6c | 65 20 7e 2f 2e 6e 6e 2f | the fil|e ~/.nn/|
|000047b0| 69 6e 69 74 29 2e 0a 58 | 2e 54 50 0a 58 5c 2d 5c |init)..X|.TP.X\-\|
|000047c0| 66 42 6b 5c 66 50 09 7b | 5c 66 42 74 6f 67 67 6c |fBk\fP.{|\fBtoggl|
|000047d0| 65 20 6b 69 6c 6c 5c 66 | 50 7d 0a 58 44 6f 20 6e |e kill\f|P}.XDo n|
|000047e0| 6f 74 20 5b 64 6f 5d 20 | 70 65 72 66 6f 72 6d 20 |ot [do] |perform |
|000047f0| 61 75 74 6f 6d 61 74 69 | 63 20 6b 69 6c 6c 20 61 |automati|c kill a|
|00004800| 6e 64 20 73 65 6c 65 63 | 74 69 6f 6e 20 6f 66 20 |nd selec|tion of |
|00004810| 61 72 74 69 63 6c 65 73 | 2e 0a 58 2e 54 50 0a 58 |articles|..X.TP.X|
|00004820| 5c 2d 5c 66 42 6c 5c 66 | 50 5c 66 49 4e 5c 66 50 |\-\fBl\f|P\fIN\fP|
|00004830| 09 7b 5c 66 42 73 65 74 | 20 73 74 6f 70 5c 66 50 |.{\fBset| stop\fP|
|00004840| 20 5c 66 49 4e 5c 66 50 | 7d 0a 58 53 74 6f 70 20 | \fIN\fP|}.XStop |
|00004850| 61 66 74 65 72 20 70 72 | 69 6e 74 69 6e 67 20 74 |after pr|inting t|
|00004860| 68 65 20 66 69 72 73 74 | 20 5c 66 49 4e 5c 66 50 |he first| \fIN\fP|
|00004870| 20 6c 69 6e 65 73 20 6f | 66 20 65 61 63 68 20 61 | lines o|f each a|
|00004880| 72 74 69 63 6c 65 2e 0a | 58 54 68 69 73 20 69 73 |rticle..|XThis is|
|00004890| 20 75 73 65 66 75 6c 20 | 6f 6e 20 73 6c 6f 77 20 | useful |on slow |
|000048a0| 74 65 72 6d 69 6e 61 6c | 73 2e 0a 58 2e 54 50 0a |terminal|s..X.TP.|
|000048b0| 58 5c 2d 5c 66 42 4c 5c | 66 50 5b 5c 66 49 66 5c |X\-\fBL\|fP[\fIf\|
|000048c0| 66 50 5d 09 7b 5c 66 42 | 73 65 74 20 6c 61 79 6f |fP].{\fB|set layo|
|000048d0| 75 74 5c 66 50 20 5c 66 | 49 66 5c 66 50 7d 0a 58 |ut\fP \f|If\fP}.X|
|000048e0| 53 65 6c 65 63 74 20 61 | 6c 74 65 72 6e 61 74 69 |Select a|lternati|
|000048f0| 76 65 20 6d 65 6e 75 20 | 6c 61 79 6f 75 74 0a 58 |ve menu |layout.X|
|00004900| 2e 49 52 20 66 0a 58 28 | 30 20 74 6f 20 34 29 2e |.IR f.X(|0 to 4).|
|00004910| 0a 58 49 66 0a 58 2e 49 | 20 66 0a 58 69 73 20 6f |.XIf.X.I| f.Xis o|
|00004920| 6d 69 74 74 65 64 2c 20 | 6d 65 6e 75 20 6c 61 79 |mitted, |menu lay|
|00004930| 6f 75 74 20 33 20 69 73 | 20 73 65 6c 65 63 74 65 |out 3 is| selecte|
|00004940| 64 2e 0a 58 2e 54 50 0a | 58 5c 2d 5c 66 42 6d 5c |d..X.TP.|X\-\fBm\|
|00004950| 66 50 09 7b 5c 66 49 6e | 6f 20 63 6f 72 72 65 73 |fP.{\fIn|o corres|
|00004960| 70 6f 6e 64 69 6e 67 20 | 76 61 72 69 61 62 6c 65 |ponding |variable|
|00004970| 5c 66 50 7d 0a 58 4d 65 | 72 67 65 20 61 6c 6c 20 |\fP}.XMe|rge all |
|00004980| 61 72 74 69 63 6c 65 73 | 20 69 6e 74 6f 20 6f 6e |articles| into on|
|00004990| 65 20 60 6d 65 74 61 20 | 67 72 6f 75 70 27 20 69 |e `meta |group' i|
|000049a0| 6e 73 74 65 61 64 20 6f | 66 20 73 68 6f 77 69 6e |nstead o|f showin|
|000049b0| 67 0a 58 74 68 65 6d 20 | 6f 6e 65 20 67 72 6f 75 |g.Xthem |one grou|
|000049c0| 70 20 61 74 20 61 20 74 | 69 6d 65 2e 20 20 57 68 |p at a t|ime. Wh|
|000049d0| 65 6e 20 2d 6d 20 69 73 | 20 75 73 65 64 2c 20 6e |en -m is| used, n|
|000049e0| 6f 20 61 72 74 69 63 6c | 65 73 20 77 69 6c 6c 20 |o articl|es will |
|000049f0| 62 65 20 6d 61 72 6b 65 | 64 0a 58 61 73 20 72 65 |be marke|d.Xas re|
|00004a00| 61 64 2e 0a 58 2e 54 50 | 0a 58 5c 2d 5c 66 42 6e |ad..X.TP|.X\-\fBn|
|00004a10| 5c 66 50 5c 66 49 57 4f | 52 44 5c 66 50 0a 58 43 |\fP\fIWO|RD\fP.XC|
|00004a20| 6f 6c 6c 65 63 74 20 6f | 6e 6c 79 20 61 72 74 69 |ollect o|nly arti|
|00004a30| 63 6c 65 73 20 77 68 69 | 63 68 20 63 6f 6e 74 61 |cles whi|ch conta|
|00004a40| 69 6e 20 74 68 65 20 73 | 74 72 69 6e 67 20 5c 66 |in the s|tring \f|
|00004a50| 49 57 4f 52 44 5c 66 50 | 20 69 6e 20 74 68 65 0a |IWORD\fP| in the.|
|00004a60| 58 73 65 6e 64 65 72 27 | 73 20 6e 61 6d 65 20 28 |Xsender'|s name (|
|00004a70| 63 61 73 65 20 69 73 20 | 69 67 6e 6f 72 65 64 29 |case is |ignored)|
|00004a80| 2e 20 20 49 66 20 5c 66 | 49 57 4f 52 44 5c 66 50 |. If \f|IWORD\fP|
|00004a90| 0a 58 73 74 61 72 74 73 | 20 77 69 74 68 20 61 20 |.Xstarts| with a |
|00004aa0| 73 6c 61 73 68 20 60 2f | 27 2c 20 74 68 65 20 72 |slash `/|', the r|
|00004ab0| 65 73 74 20 6f 66 20 74 | 68 65 20 61 72 67 75 6d |est of t|he argum|
|00004ac0| 65 6e 74 20 69 73 20 75 | 73 65 64 20 61 73 20 61 |ent is u|sed as a|
|00004ad0| 0a 58 5c 66 49 72 65 67 | 75 6c 61 72 20 65 78 70 |.X\fIreg|ular exp|
|00004ae0| 72 65 73 73 69 6f 6e 5c | 66 50 20 69 6e 73 74 65 |ression\|fP inste|
|00004af0| 61 64 20 6f 66 20 61 20 | 66 69 78 65 64 20 73 74 |ad of a |fixed st|
|00004b00| 72 69 6e 67 2e 0a 58 2e | 54 50 0a 58 5c 2d 5c 66 |ring..X.|TP.X\-\f|
|00004b10| 42 4e 5c 66 50 09 7b 5c | 66 49 6e 6f 20 63 6f 72 |BN\fP.{\|fIno cor|
|00004b20| 72 65 73 70 6f 6e 64 69 | 6e 67 20 76 61 72 69 61 |respondi|ng varia|
|00004b30| 62 6c 65 5c 66 50 7d 0a | 58 44 69 73 61 62 6c 65 |ble\fP}.|XDisable|
|00004b40| 20 75 70 64 61 74 69 6e | 67 20 6f 66 20 74 68 65 | updatin|g of the|
|00004b50| 20 72 63 20 66 69 6c 65 | 2e 20 20 54 68 69 73 20 | rc file|. This |
|00004b60| 69 6e 63 6c 75 64 65 73 | 20 6e 6f 74 20 72 65 63 |includes| not rec|
|00004b70| 6f 72 64 69 6e 67 20 74 | 68 61 74 0a 58 67 72 6f |ording t|hat.Xgro|
|00004b80| 75 70 73 20 68 61 76 65 | 20 62 65 65 6e 20 72 65 |ups have| been re|
|00004b90| 61 64 20 6f 72 20 75 6e | 73 75 62 73 63 72 69 62 |ad or un|subscrib|
|00004ba0| 65 64 20 74 6f 20 28 61 | 6c 74 68 6f 75 67 68 20 |ed to (a|lthough |
|00004bb0| 5c 66 49 6e 6e 5c 66 50 | 20 77 69 6c 6c 20 74 68 |\fInn\fP| will th|
|00004bc0| 69 6e 6b 0a 58 73 6f 20 | 75 6e 74 69 6c 20 79 6f |ink.Xso |until yo|
|00004bd0| 75 20 71 75 69 74 29 2e | 0a 58 2e 54 50 0a 58 5c |u quit).|.X.TP.X\|
|00004be0| 2d 5c 66 42 71 5c 66 50 | 09 7b 5c 66 42 74 6f 67 |-\fBq\fP|.{\fBtog|
|00004bf0| 67 6c 65 20 73 6f 72 74 | 5c 66 50 7d 0a 58 44 6f |gle sort|\fP}.XDo|
|00004c00| 20 6e 6f 74 20 5b 64 6f | 5d 20 73 6f 72 74 20 74 | not [do|] sort t|
|00004c10| 68 65 20 61 72 74 69 63 | 6c 65 73 20 28 71 20 6d |he artic|les (q m|
|00004c20| 65 61 6e 73 20 71 75 69 | 63 6b 2c 20 62 75 74 20 |eans qui|ck, but |
|00004c30| 69 74 20 69 73 6e 27 74 | 0a 58 61 6e 79 20 71 75 |it isn't|.Xany qu|
|00004c40| 69 63 6b 65 72 20 69 6e | 20 70 72 61 63 74 69 63 |icker in| practic|
|00004c50| 65 21 29 0a 58 2e 54 50 | 0a 58 5c 2d 5c 66 42 51 |e!).X.TP|.X\-\fBQ|
|00004c60| 5c 66 50 09 7b 5c 66 42 | 74 6f 67 67 6c 65 20 73 |\fP.{\fB|toggle s|
|00004c70| 69 6c 65 6e 74 5c 66 50 | 7d 0a 58 51 75 69 65 74 |ilent\fP|}.XQuiet|
|00004c80| 20 6d 6f 64 65 20 2d 20 | 64 6f 6e 27 74 20 5b 64 | mode - |don't [d|
|00004c90| 6f 5d 20 70 72 69 6e 74 | 20 74 68 65 20 6c 6f 67 |o] print| the log|
|00004ca0| 6f 20 6f 72 20 22 4e 6f | 20 4e 65 77 73 22 20 6d |o or "No| News" m|
|00004cb0| 65 73 73 61 67 65 73 2e | 0a 58 2e 54 50 0a 58 5c |essages.|.X.TP.X\|
|00004cc0| 2d 5c 66 42 72 5c 66 50 | 09 7b 5c 66 42 74 6f 67 |-\fBr\fP|.{\fBtog|
|00004cd0| 67 6c 65 20 72 65 70 65 | 61 74 2d 67 72 6f 75 70 |gle repe|at-group|
|00004ce0| 2d 71 75 65 72 79 5c 66 | 50 7d 0a 58 4d 61 6b 65 |-query\f|P}.XMake|
|00004cf0| 20 5c 2d 5c 66 42 67 5c | 66 50 20 72 65 70 65 61 | \-\fBg\|fP repea|
|00004d00| 74 20 71 75 65 72 79 20 | 66 6f 72 20 61 20 67 72 |t query |for a gr|
|00004d10| 6f 75 70 20 74 6f 20 65 | 6e 74 65 72 2e 0a 58 2e |oup to e|nter..X.|
|00004d20| 54 50 0a 58 5c 2d 5c 66 | 42 73 5c 66 50 5c 66 49 |TP.X\-\f|Bs\fP\fI|
|00004d30| 57 4f 52 44 5c 66 50 0a | 58 43 6f 6c 6c 65 63 74 |WORD\fP.|XCollect|
|00004d40| 20 6f 6e 6c 79 20 61 72 | 74 69 63 6c 65 73 20 77 | only ar|ticles w|
|00004d50| 68 69 63 68 20 63 6f 6e | 74 61 69 6e 20 74 68 65 |hich con|tain the|
|00004d60| 20 73 74 72 69 6e 67 0a | 58 2e 49 20 57 4f 52 44 | string.|X.I WORD|
|00004d70| 0a 58 69 6e 20 74 68 65 | 69 72 20 73 75 62 6a 65 |.Xin the|ir subje|
|00004d80| 63 74 20 28 63 61 73 65 | 20 69 73 20 69 67 6e 6f |ct (case| is igno|
|00004d90| 72 65 64 29 2e 20 20 49 | 66 0a 58 2e 49 20 57 4f |red). I|f.X.I WO|
|00004da0| 52 44 0a 58 73 74 61 72 | 74 73 20 77 69 74 68 20 |RD.Xstar|ts with |
|00004db0| 61 20 73 6c 61 73 68 20 | 60 2f 27 2c 20 74 68 65 |a slash |`/', the|
|00004dc0| 20 72 65 73 74 20 6f 66 | 20 74 68 65 20 61 72 67 | rest of| the arg|
|00004dd0| 75 6d 65 6e 74 20 69 73 | 20 75 73 65 64 20 61 73 |ument is| used as|
|00004de0| 20 61 0a 58 5c 66 49 72 | 65 67 75 6c 61 72 20 65 | a.X\fIr|egular e|
|00004df0| 78 70 72 65 73 73 69 6f | 6e 5c 66 50 20 69 6e 73 |xpressio|n\fP ins|
|00004e00| 74 65 61 64 20 6f 66 20 | 61 20 66 69 78 65 64 20 |tead of |a fixed |
|00004e10| 73 74 72 69 6e 67 2e 0a | 58 2e 54 50 0a 58 5c 2d |string..|X.TP.X\-|
|00004e20| 5c 66 42 53 5c 66 50 09 | 7b 5c 66 42 74 6f 67 67 |\fBS\fP.|{\fBtogg|
|00004e30| 6c 65 20 72 65 70 65 61 | 74 5c 66 50 7d 0a 58 44 |le repea|t\fP}.XD|
|00004e40| 6f 20 6e 6f 74 20 5b 64 | 6f 5d 20 65 6c 69 6d 69 |o not [d|o] elimi|
|00004e50| 6e 61 74 65 20 64 75 70 | 6c 69 63 61 74 65 64 20 |nate dup|licated |
|00004e60| 73 75 62 6a 65 63 74 20 | 6c 69 6e 65 73 20 6f 6e |subject |lines on|
|00004e70| 20 6d 65 6e 75 73 2e 0a | 58 2e 54 50 0a 58 5c 2d | menus..|X.TP.X\-|
|00004e80| 5c 66 42 54 5c 66 50 09 | 7b 5c 66 42 74 6f 67 67 |\fBT\fP.|{\fBtogg|
|00004e90| 6c 65 20 74 69 6d 65 5c | 66 50 7d 0a 58 44 6f 20 |le time\|fP}.XDo |
|00004ea0| 6e 6f 74 20 5b 64 6f 5d | 20 73 68 6f 77 20 74 68 |not [do]| show th|
|00004eb0| 65 20 63 75 72 72 65 6e | 74 20 74 69 6d 65 20 69 |e curren|t time i|
|00004ec0| 6e 20 74 68 65 20 70 72 | 6f 6d 70 74 20 6c 69 6e |n the pr|ompt lin|
|00004ed0| 65 2e 0a 58 2e 54 50 0a | 58 5c 2d 5c 66 42 77 5c |e..X.TP.|X\-\fBw\|
|00004ee0| 66 50 5b 5c 66 49 4e 5c | 66 50 5d 09 7b 5c 66 42 |fP[\fIN\|fP].{\fB|
|00004ef0| 73 65 74 20 77 69 6e 64 | 6f 77 5c 66 50 20 5c 66 |set wind|ow\fP \f|
|00004f00| 49 4e 5c 66 50 7d 0a 58 | 52 65 73 65 72 76 65 20 |IN\fP}.X|Reserve |
|00004f10| 5c 66 49 4e 5c 66 50 20 | 6c 69 6e 65 73 20 6f 66 |\fIN\fP |lines of|
|00004f20| 20 74 68 65 20 6d 65 6e | 75 20 73 63 72 65 65 6e | the men|u screen|
|00004f30| 20 66 6f 72 20 61 20 70 | 72 65 76 69 65 77 20 77 | for a p|review w|
|00004f40| 69 6e 64 6f 77 2e 20 20 | 49 66 0a 58 5c 66 49 4e |indow. |If.X\fIN|
|00004f50| 5c 66 50 20 69 73 20 6f | 6d 69 74 74 65 64 2c 20 |\fP is o|mitted, |
|00004f60| 74 68 65 20 70 72 65 76 | 69 65 77 20 77 69 6e 64 |the prev|iew wind|
|00004f70| 6f 77 20 69 73 20 73 65 | 74 20 74 6f 20 35 20 6c |ow is se|t to 5 l|
|00004f80| 69 6e 65 73 2e 0a 58 2e | 54 50 0a 58 5c 2d 5c 66 |ines..X.|TP.X\-\f|
|00004f90| 42 57 5c 66 50 09 7b 5c | 66 42 74 6f 67 67 6c 65 |BW\fP.{\|fBtoggle|
|00004fa0| 20 63 6f 6e 66 69 72 6d | 2d 6d 65 73 73 61 67 65 | confirm|-message|
|00004fb0| 73 5c 66 50 7d 0a 58 5b | 44 6f 6e 27 74 5d 20 57 |s\fP}.X[|Don't] W|
|00004fc0| 61 69 74 20 66 6f 72 20 | 63 6f 6e 66 69 72 6d 61 |ait for |confirma|
|00004fd0| 74 69 6f 6e 20 6f 6e 20 | 61 6c 6c 20 6d 65 73 73 |tion on |all mess|
|00004fe0| 61 67 65 73 2e 0a 58 2e | 54 50 0a 58 5c 2d 5c 66 |ages..X.|TP.X\-\f|
|00004ff0| 42 78 5c 66 50 5b 5c 66 | 49 4e 5c 66 50 5d 09 7b |Bx\fP[\f|IN\fP].{|
|00005000| 5c 66 42 73 65 74 20 6f | 6c 64 20 4e 5c 66 50 7d |\fBset o|ld N\fP}|
|00005010| 0a 58 50 72 65 73 65 6e | 74 20 28 6f 72 20 73 63 |.XPresen|t (or sc|
|00005020| 61 6e 29 20 61 6c 6c 20 | 28 6f 72 20 74 68 65 20 |an) all |(or the |
|00005030| 6c 61 73 74 20 5c 66 49 | 4e 5c 66 50 29 20 75 6e |last \fI|N\fP) un|
|00005040| 72 65 61 64 20 61 73 20 | 77 65 6c 6c 20 61 73 0a |read as |well as.|
|00005050| 58 72 65 61 64 20 61 72 | 74 69 63 6c 65 73 2e 20 |Xread ar|ticles. |
|00005060| 20 54 68 69 73 20 77 69 | 6c 6c 0a 58 2e 49 20 6e | This wi|ll.X.I n|
|00005070| 65 76 65 72 0a 58 6d 61 | 72 6b 20 75 6e 72 65 61 |ever.Xma|rk unrea|
|00005080| 64 20 61 72 74 69 63 6c | 65 73 20 61 73 20 72 65 |d articl|es as re|
|00005090| 61 64 2e 0a 58 2e 54 50 | 0a 58 5c 2d 5c 66 42 58 |ad..X.TP|.X\-\fBX|
|000050a0| 5c 66 50 09 7b 5c 66 49 | 6e 6f 20 63 6f 72 72 65 |\fP.{\fI|no corre|
|000050b0| 73 70 6f 6e 64 69 6e 67 | 20 76 61 72 69 61 62 6c |sponding| variabl|
|000050c0| 65 5c 66 50 7d 0a 58 52 | 65 61 64 2f 73 63 61 6e |e\fP}.XR|ead/scan|
|000050d0| 20 75 6e 73 75 62 73 63 | 72 69 62 65 64 20 67 72 | unsubsc|ribed gr|
|000050e0| 6f 75 70 73 20 61 6c 73 | 6f 2e 20 20 4d 6f 73 74 |oups als|o. Most|
|000050f0| 20 75 73 65 66 75 6c 20 | 77 68 65 6e 20 6c 6f 6f | useful |when loo|
|00005100| 6b 69 6e 67 20 66 6f 72 | 0a 58 61 20 73 70 65 63 |king for|.Xa spec|
|00005110| 69 66 69 63 20 73 75 62 | 6a 65 63 74 20 69 6e 20 |ific sub|ject in |
|00005120| 61 6c 6c 20 67 72 6f 75 | 70 73 2c 20 65 2e 67 2e |all grou|ps, e.g.|
|00005130| 0a 58 2e 62 72 0a 58 20 | 20 20 6e 6e 20 2d 6d 78 |.X.br.X | nn -mx|
|00005140| 58 20 2d 73 53 75 62 6a | 65 63 74 20 61 6c 6c 0a |X -sSubj|ect all.|
|00005150| 58 2e 62 72 0a 58 2e 53 | 48 20 4d 41 43 52 4f 20 |X.br.X.S|H MACRO |
|00005160| 44 45 46 49 4e 49 54 49 | 4f 4e 53 0a 58 50 72 61 |DEFINITI|ONS.XPra|
|00005170| 63 74 69 63 61 6c 6c 79 | 20 61 6e 79 20 63 6f 6d |ctically| any com|
|00005180| 62 69 6e 61 74 69 6f 6e | 20 6f 66 20 63 6f 6d 6d |bination| of comm|
|00005190| 61 6e 64 73 20 61 6e 64 | 20 6b 65 79 20 73 74 72 |ands and| key str|
|000051a0| 6f 6b 65 73 20 63 61 6e | 20 62 65 20 64 65 66 69 |okes can| be defi|
|000051b0| 6e 65 64 0a 58 61 73 20 | 61 20 6d 61 63 72 6f 20 |ned.Xas |a macro |
|000051c0| 77 68 69 63 68 20 63 61 | 6e 20 62 65 20 62 6f 75 |which ca|n be bou|
|000051d0| 6e 64 20 74 6f 20 61 20 | 73 69 6e 67 6c 65 20 6b |nd to a |single k|
|000051e0| 65 79 20 69 6e 20 6d 65 | 6e 75 20 61 6e 64 2f 6f |ey in me|nu and/o|
|000051f0| 72 20 72 65 61 64 69 6e | 67 20 6d 6f 64 65 2e 0a |r readin|g mode..|
|00005200| 58 2e 4c 50 0a 58 54 68 | 65 20 6d 61 63 72 6f 20 |X.LP.XTh|e macro |
|00005210| 64 65 66 69 6e 69 74 69 | 6f 6e 20 6d 75 73 74 20 |definiti|on must |
|00005220| 73 70 65 63 69 66 79 20 | 61 20 73 65 71 75 65 6e |specify |a sequen|
|00005230| 63 65 20 6f 66 20 63 6f | 6d 6d 61 6e 64 73 20 61 |ce of co|mmands a|
|00005240| 6e 64 20 6b 65 79 0a 58 | 73 74 72 6f 6b 65 73 20 |nd key.X|strokes |
|00005250| 61 73 20 69 66 20 74 68 | 65 79 20 77 65 72 65 20 |as if th|ey were |
|00005260| 74 79 70 65 64 20 64 69 | 72 65 63 74 6c 79 20 66 |typed di|rectly f|
|00005270| 72 6f 6d 20 74 68 65 20 | 6b 65 79 62 6f 61 72 64 |rom the |keyboard|
|00005280| 2e 20 20 46 6f 72 0a 58 | 65 78 61 6d 70 6c 65 2c |. For.X|example,|
|00005290| 20 61 20 73 74 72 69 6e | 67 20 73 70 65 63 69 66 | a strin|g specif|
|000052a0| 79 69 6e 67 20 61 20 66 | 69 6c 65 20 6e 61 6d 65 |ying a f|ile name|
|000052b0| 20 6d 75 73 74 20 66 6f | 6c 6c 6f 77 20 61 20 73 | must fo|llow a s|
|000052c0| 61 76 65 20 63 6f 6d 6d | 61 6e 64 2e 0a 58 54 68 |ave comm|and..XTh|
|000052d0| 69 73 20 6d 61 6e 75 61 | 6c 20 64 6f 65 73 20 6e |is manua|l does n|
|000052e0| 6f 74 20 67 69 76 65 20 | 61 20 63 6f 6d 70 6c 65 |ot give |a comple|
|000052f0| 74 65 20 73 70 65 63 69 | 66 69 63 61 74 69 6f 6e |te speci|fication|
|00005300| 20 6f 66 20 61 6c 6c 20 | 74 68 65 20 69 6e 70 75 | of all |the inpu|
|00005310| 74 0a 58 72 65 71 75 69 | 72 65 64 20 62 79 20 74 |t.Xrequi|red by t|
|00005320| 68 65 20 76 61 72 69 6f | 75 73 20 63 6f 6d 6d 61 |he vario|us comma|
|00005330| 6e 64 73 3b 20 69 74 20 | 69 73 20 72 65 63 6f 6d |nds; it |is recom|
|00005340| 6d 65 6e 64 65 64 20 74 | 6f 20 65 78 65 63 75 74 |mended t|o execut|
|00005350| 65 20 74 68 65 0a 58 64 | 65 73 69 72 65 64 20 63 |e the.Xd|esired c|
|00005360| 6f 6d 6d 61 6e 64 20 73 | 65 71 75 65 6e 63 65 20 |ommand s|equence |
|00005370| 66 72 6f 6d 20 74 68 65 | 20 6b 65 79 62 6f 61 72 |from the| keyboar|
|00005380| 64 20 70 72 69 6f 72 20 | 74 6f 20 64 65 66 69 6e |d prior |to defin|
|00005390| 69 6e 67 20 74 68 65 20 | 6d 61 63 72 6f 0a 58 74 |ing the |macro.Xt|
|000053a0| 6f 20 67 65 74 20 74 68 | 65 20 65 78 61 63 74 20 |o get th|e exact |
|000053b0| 72 65 71 75 69 72 65 6d | 65 6e 74 73 20 6f 66 20 |requirem|ents of |
|000053c0| 65 61 63 68 20 63 6f 6d | 6d 61 6e 64 2e 0a 58 2e |each com|mand..X.|
|000053d0| 4c 50 0a 58 41 6c 74 68 | 6f 75 67 68 20 69 74 20 |LP.XAlth|ough it |
|000053e0| 69 73 20 70 6f 73 73 69 | 62 6c 65 20 74 6f 20 64 |is possi|ble to d|
|000053f0| 65 66 69 6e 65 20 74 65 | 6d 70 6f 72 61 72 79 20 |efine te|mporary |
|00005400| 6d 61 63 72 6f 73 20 69 | 6e 74 65 72 61 63 74 69 |macros i|nteracti|
|00005410| 76 65 6c 79 20 75 73 69 | 6e 67 20 74 68 65 0a 58 |vely usi|ng the.X|
|00005420| 2e 42 20 3a 64 65 66 69 | 6e 65 0a 58 63 6f 6d 6d |.B :defi|ne.Xcomm|
|00005430| 61 6e 64 2c 20 6d 61 63 | 72 6f 20 64 65 66 69 6e |and, mac|ro defin|
|00005440| 69 74 69 6f 6e 73 20 61 | 72 65 20 6e 6f 72 6d 61 |itions a|re norma|
|00005450| 6c 6c 79 20 70 6c 61 63 | 65 64 20 69 6e 20 74 68 |lly plac|ed in th|
|00005460| 65 0a 58 2e 49 20 69 6e | 69 74 0a 58 66 69 6c 65 |e.X.I in|it.Xfile|
|00005470| 2e 20 20 4d 61 63 72 6f | 73 20 61 72 65 20 6e 75 |. Macro|s are nu|
|00005480| 6d 62 65 72 65 64 20 66 | 72 6f 6d 20 30 20 74 6f |mbered f|rom 0 to|
|00005490| 20 31 30 30 2c 20 69 2e | 65 2e 20 69 74 20 69 73 | 100, i.|e. it is|
|000054a0| 20 70 6f 73 73 69 62 6c | 65 20 74 6f 20 64 65 66 | possibl|e to def|
|000054b0| 69 6e 65 0a 58 61 20 74 | 6f 74 61 6c 20 6f 66 20 |ine.Xa t|otal of |
|000054c0| 31 30 31 20 64 69 66 66 | 65 72 65 6e 74 20 6d 61 |101 diff|erent ma|
|000054d0| 63 72 6f 73 20 28 69 6e | 70 6c 69 63 69 74 20 6d |cros (in|plicit m|
|000054e0| 61 63 72 6f 73 20 64 65 | 66 69 6e 65 64 20 77 69 |acros de|fined wi|
|000054f0| 74 68 20 74 68 65 0a 58 | 5c 66 42 6d 61 70 5c 66 |th the.X|\fBmap\f|
|00005500| 50 20 63 6f 6d 6d 61 6e | 64 20 75 73 65 73 20 69 |P comman|d uses i|
|00005510| 6e 74 65 72 6e 61 6c 20 | 6e 75 6d 62 65 72 73 20 |nternal |numbers |
|00005520| 66 72 6f 6d 20 31 30 31 | 20 74 6f 20 32 30 30 29 |from 101| to 200)|
|00005530| 2e 0a 58 2e 4c 50 0a 58 | 54 6f 20 64 65 66 69 6e |..X.LP.X|To defin|
|00005540| 65 20 6d 61 63 72 6f 20 | 6e 75 6d 62 65 72 20 5c |e macro |number \|
|00005550| 66 49 4d 5c 66 50 2c 20 | 74 68 65 20 66 6f 6c 6c |fIM\fP, |the foll|
|00005560| 6f 77 69 6e 67 20 63 6f | 6e 73 74 72 75 63 74 69 |owing co|nstructi|
|00005570| 6f 6e 20 69 73 20 75 73 | 65 64 0a 58 28 74 68 65 |on is us|ed.X(the|
|00005580| 20 6c 69 6e 65 20 62 72 | 65 61 6b 73 20 61 72 65 | line br|eaks are|
|00005590| 20 6d 61 6e 64 61 74 6f | 72 79 29 3a 0a 58 2e 6e | mandato|ry):.X.n|
|000055a0| 66 0a 58 09 5c 66 42 64 | 65 66 69 6e 65 5c 66 50 |f.X.\fBd|efine\fP|
|000055b0| 20 5c 66 49 4d 5c 66 50 | 0a 58 09 09 5c 66 49 62 | \fIM\fP|.X..\fIb|
|000055c0| 6f 64 79 5c 66 50 0a 58 | 09 5c 66 42 65 6e 64 5c |ody\fP.X|.\fBend\|
|000055d0| 66 50 0a 58 2e 66 69 0a | 58 2e 4c 50 0a 58 54 68 |fP.X.fi.|X.LP.XTh|
|000055e0| 65 20 5c 66 49 62 6f 64 | 79 5c 66 50 20 63 6f 6e |e \fIbod|y\fP con|
|000055f0| 73 69 73 74 73 20 6f 66 | 20 61 20 73 65 71 75 65 |sists of| a seque|
|00005600| 6e 63 65 20 6f 66 20 5c | 66 49 74 6f 6b 65 6e 73 |nce of \|fItokens|
|00005610| 5c 66 50 20 73 65 70 61 | 72 61 74 65 64 20 62 79 |\fP sepa|rated by|
|00005620| 0a 58 77 68 69 74 65 20 | 73 70 61 63 65 20 28 62 |.Xwhite |space (b|
|00005630| 6c 61 6e 6b 73 20 6f 72 | 20 6e 65 77 6c 69 6e 65 |lanks or| newline|
|00005640| 73 29 2e 20 20 48 6f 77 | 65 76 65 72 2c 20 63 65 |s). How|ever, ce|
|00005650| 72 74 61 69 6e 20 5c 66 | 49 74 6f 6b 65 6e 73 5c |rtain \f|Itokens\|
|00005660| 66 50 0a 58 63 6f 6e 74 | 69 6e 75 65 20 74 6f 20 |fP.Xcont|inue to |
|00005670| 74 68 65 20 65 6e 64 20 | 6f 66 20 74 68 65 20 63 |the end |of the c|
|00005680| 75 72 72 65 6e 74 20 6c | 69 6e 65 2e 0a 58 2e 4c |urrent l|ine..X.L|
|00005690| 50 0a 58 54 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |P.XThe f|ollowing|
|000056a0| 20 5c 66 49 74 6f 6b 65 | 6e 73 5c 66 50 20 6d 61 | \fItoke|ns\fP ma|
|000056b0| 79 20 6f 63 63 75 72 20 | 69 6e 20 74 68 65 20 6d |y occur |in the m|
|000056c0| 61 63 72 6f 20 5c 66 49 | 62 6f 64 79 5c 66 50 3a |acro \fI|body\fP:|
|000056d0| 0a 58 2e 54 50 0a 58 2e | 49 20 43 6f 6d 6d 65 6e |.X.TP.X.|I Commen|
|000056e0| 74 73 0a 58 45 6d 70 74 | 79 20 6c 69 6e 65 73 20 |ts.XEmpt|y lines |
|000056f0| 61 6e 64 20 74 65 78 74 | 20 66 6f 6c 6c 6f 77 69 |and text| followi|
|00005700| 6e 67 20 61 20 23 20 63 | 68 61 72 61 63 74 65 72 |ng a # c|haracter|
|00005710| 20 28 70 72 65 63 65 64 | 65 64 20 62 79 20 77 68 | (preced|ed by wh|
|00005720| 69 74 65 20 73 70 61 63 | 65 29 0a 58 69 73 20 69 |ite spac|e).Xis i|
|00005730| 67 6e 6f 72 65 64 2e 0a | 58 2e 54 50 0a 58 2e 49 |gnored..|X.TP.X.I|
|00005740| 20 43 6f 6d 6d 61 6e 64 | 20 4e 61 6d 65 73 0a 58 | Command| Names.X|
|00005750| 41 6e 79 20 63 6f 6d 6d | 61 6e 64 20 6e 61 6d 65 |Any comm|and name|
|00005760| 20 6c 69 73 74 65 64 20 | 69 6e 20 74 68 65 20 6b | listed |in the k|
|00005770| 65 79 20 6d 61 70 70 69 | 6e 67 20 73 65 63 74 69 |ey mappi|ng secti|
|00005780| 6f 6e 20 63 61 6e 20 62 | 65 20 69 6e 63 6c 75 64 |on can b|e includ|
|00005790| 65 64 20 69 6e 0a 58 61 | 20 6d 61 63 72 6f 20 63 |ed in.Xa| macro c|
|000057a0| 61 75 73 69 6e 67 20 74 | 68 61 74 20 63 6f 6d 6d |ausing t|hat comm|
|000057b0| 61 6e 64 20 74 6f 20 62 | 65 20 69 6e 76 6f 6b 65 |and to b|e invoke|
|000057c0| 64 20 77 68 65 6e 20 74 | 68 65 20 6d 61 63 72 6f |d when t|he macro|
|000057d0| 20 69 73 20 65 78 65 63 | 75 74 65 64 2e 0a 58 2e | is exec|uted..X.|
|000057e0| 54 50 0a 58 2e 49 20 45 | 78 74 65 6e 64 65 64 20 |TP.X.I E|xtended |
|000057f0| 43 6f 6d 6d 61 6e 64 73 | 0a 58 41 6c 6c 20 74 68 |Commands|.XAll th|
|00005800| 65 20 65 78 74 65 6e 64 | 65 64 20 63 6f 6d 6d 61 |e extend|ed comma|
|00005810| 6e 64 73 20 77 68 69 63 | 68 20 63 61 6e 20 62 65 |nds whic|h can be|
|00005820| 20 65 78 65 63 75 74 65 | 64 20 74 68 72 6f 75 67 | execute|d throug|
|00005830| 68 20 74 68 65 0a 58 2e | 42 20 63 6f 6d 6d 61 6e |h the.X.|B comman|
|00005840| 64 0a 58 63 6f 6d 6d 61 | 6e 64 20 28 6e 6f 72 6d |d.Xcomma|nd (norm|
|00005850| 61 6c 6c 79 20 62 6f 75 | 6e 64 20 74 6f 20 74 68 |ally bou|nd to th|
|00005860| 65 20 3a 20 6b 65 79 29 | 20 63 61 6e 20 61 6c 73 |e : key)| can als|
|00005870| 6f 20 62 65 20 65 78 65 | 63 75 74 65 64 20 69 6e |o be exe|cuted in|
|00005880| 20 61 20 6d 61 63 72 6f | 2e 0a 58 41 6e 20 65 78 | a macro|..XAn ex|
|00005890| 74 65 6e 64 65 64 20 63 | 6f 6d 6d 61 6e 64 20 73 |tended c|ommand s|
|000058a0| 74 61 72 74 73 20 77 69 | 74 68 20 61 20 63 6f 6c |tarts wi|th a col|
|000058b0| 6f 6e 20 28 3a 29 20 61 | 6e 64 20 63 6f 6e 74 69 |on (:) a|nd conti|
|000058c0| 6e 75 65 73 20 74 6f 20 | 74 68 65 0a 58 65 6e 64 |nues to |the.Xend|
|000058d0| 20 6f 66 20 74 68 65 20 | 63 75 72 72 65 6e 74 20 | of the |current |
|000058e0| 6c 69 6e 65 2e 20 20 45 | 78 61 6d 70 6c 65 3a 0a |line. E|xample:.|
|000058f0| 58 2e 62 72 0a 58 09 3a | 73 68 6f 77 20 67 72 6f |X.br.X.:|show gro|
|00005900| 75 70 73 20 74 6f 74 61 | 6c 0a 58 2e 54 50 0a 58 |ups tota|l.X.TP.X|
|00005910| 2e 49 20 4b 65 79 20 53 | 74 72 6f 6b 65 73 0a 58 |.I Key S|trokes.X|
|00005920| 41 20 6b 65 79 20 73 74 | 72 6f 6b 65 20 28 77 68 |A key st|roke (wh|
|00005930| 69 63 68 20 69 73 20 6e | 6f 72 6d 61 6c 6c 79 20 |ich is n|ormally |
|00005940| 6d 61 70 70 65 64 20 69 | 6e 74 6f 20 61 20 63 6f |mapped i|nto a co|
|00005950| 6d 6d 61 6e 64 20 64 65 | 70 65 6e 64 69 6e 67 20 |mmand de|pending |
|00005960| 6f 6e 20 74 68 65 0a 58 | 63 75 72 72 65 6e 74 20 |on the.X|current |
|00005970| 6d 6f 64 65 29 20 69 73 | 20 73 70 65 63 69 66 69 |mode) is| specifi|
|00005980| 65 64 20 61 73 20 61 20 | 6b 65 79 20 6e 61 6d 65 |ed as a |key name|
|00005990| 20 65 6e 63 6c 6f 73 65 | 64 20 69 6e 20 73 69 6e | enclose|d in sin|
|000059a0| 67 6c 65 20 71 75 6f 74 | 65 73 2e 0a 58 45 78 61 |gle quot|es..XExa|
|000059b0| 6d 70 6c 65 73 20 28 41 | 2d 6b 65 79 2c 20 6c 65 |mples (A|-key, le|
|000059c0| 66 74 20 61 72 72 6f 77 | 20 6b 65 79 2c 20 52 45 |ft arrow| key, RE|
|000059d0| 54 55 52 4e 20 6b 65 79 | 29 3a 0a 58 2e 62 72 0a |TURN key|):.X.br.|
|000059e0| 58 09 27 41 27 20 20 27 | 6c 65 66 74 27 20 20 27 |X.'A' '|left' '|
|000059f0| 5e 4d 27 0a 58 2e 54 50 | 0a 58 2e 49 20 53 68 65 |^M'.X.TP|.X.I She|
|00005a00| 6c 6c 20 43 6f 6d 6d 61 | 6e 64 73 0a 58 45 78 74 |ll Comma|nds.XExt|
|00005a10| 65 72 6e 61 6c 20 63 6f | 6d 6d 61 6e 64 73 20 63 |ernal co|mmands c|
|00005a20| 61 6e 20 62 65 20 69 6e | 76 6f 6b 65 64 20 61 73 |an be in|voked as|
|00005a30| 20 70 61 72 74 20 6f 66 | 20 61 20 6d 61 63 72 6f | part of| a macro|
|00005a40| 20 65 78 65 63 75 74 69 | 6f 6e 2e 20 20 54 68 65 | executi|on. The|
|00005a50| 72 65 0a 58 61 72 65 20 | 74 77 6f 20 66 6f 72 6d |re.Xare |two form|
|00005a60| 73 20 6f 66 20 73 68 65 | 6c 6c 20 63 6f 6d 6d 61 |s of she|ll comma|
|00005a70| 6e 64 20 69 6e 76 6f 6b | 61 74 69 6f 6e 73 20 61 |nd invok|ations a|
|00005a80| 76 61 69 6c 61 62 6c 65 | 20 64 65 70 65 6e 64 69 |vailable| dependi|
|00005a90| 6e 67 20 6f 6e 0a 58 77 | 68 65 74 68 65 72 20 61 |ng on.Xw|hether a|
|00005aa0| 20 63 6f 6d 6d 61 6e 64 | 20 5c 66 49 6d 61 79 5c | command| \fImay\|
|00005ab0| 66 50 20 70 72 6f 64 75 | 63 65 20 6f 75 74 70 75 |fP produ|ce outpu|
|00005ac0| 74 20 6f 72 20 72 65 71 | 75 69 72 65 20 75 73 65 |t or req|uire use|
|00005ad0| 72 20 69 6e 70 75 74 2c | 20 6f 72 0a 58 69 74 20 |r input,| or.Xit |
|00005ae0| 69 73 20 5c 66 49 67 75 | 61 72 61 6e 74 65 65 64 |is \fIgu|aranteed|
|00005af0| 5c 66 50 20 74 6f 20 63 | 6f 6d 70 6c 65 74 65 20 |\fP to c|omplete |
|00005b00| 77 69 74 68 6f 75 74 20 | 69 6e 70 75 74 20 6f 72 |without |input or|
|00005b10| 20 6f 75 74 70 75 74 20 | 74 6f 20 74 68 65 0a 58 | output |to the.X|
|00005b20| 74 65 72 6d 69 6e 61 6c | 2e 20 20 54 68 65 20 64 |terminal|. The d|
|00005b30| 69 66 66 65 72 65 6e 63 | 65 20 69 73 20 74 68 61 |ifferenc|e is tha|
|00005b40| 74 20 69 6e 20 74 68 65 | 20 6c 61 74 74 65 72 20 |t in the| latter |
|00005b50| 63 61 73 65 2c 20 5c 66 | 49 6e 6e 5c 66 50 20 64 |case, \f|Inn\fP d|
|00005b60| 6f 65 73 0a 58 6e 6f 74 | 20 70 72 65 70 61 72 65 |oes.Xnot| prepare|
|00005b70| 20 74 68 65 20 74 65 72 | 6d 69 6e 61 6c 20 74 6f | the ter|minal to|
|00005b80| 20 62 65 20 75 73 65 64 | 20 62 79 20 61 6e 6f 74 | be used| by anot|
|00005b90| 68 65 72 20 70 72 6f 67 | 72 61 6d 2e 20 20 57 68 |her prog|ram. Wh|
|00005ba0| 65 6e 20 74 68 65 0a 58 | 63 6f 6d 6d 61 6e 64 20 |en the.X|command |
|00005bb0| 63 6f 6d 70 6c 65 74 65 | 73 2c 20 74 68 65 20 73 |complete|s, the s|
|00005bc0| 63 72 65 65 6e 20 69 73 | 20 5c 66 49 6e 6f 74 5c |creen is| \fInot\|
|00005bd0| 66 50 20 72 65 64 72 61 | 77 6e 0a 58 61 75 74 6f |fP redra|wn.Xauto|
|00005be0| 6d 61 74 69 63 61 6c 6c | 79 3b 20 79 6f 75 20 73 |maticall|y; you s|
|00005bf0| 68 6f 75 6c 64 20 75 73 | 65 20 74 68 65 20 5c 66 |hould us|e the \f|
|00005c00| 42 72 65 64 72 61 77 5c | 66 50 20 63 6f 6d 6d 61 |Bredraw\|fP comma|
|00005c10| 6e 64 20 74 6f 20 64 6f | 20 74 68 61 74 2e 0a 58 |nd to do| that..X|
|00005c20| 54 68 65 20 74 68 6f 20 | 66 6f 72 6d 73 20 61 72 |The tho |forms ar|
|00005c30| 65 3a 0a 58 2e 73 70 20 | 30 2e 35 76 0a 58 09 3a |e:.X.sp |0.5v.X.:|
|00005c40| 21 65 63 68 6f 20 74 68 | 69 73 20 63 6f 6d 6d 61 |!echo th|is comma|
|00005c50| 6e 64 20 75 73 65 73 20 | 74 68 65 20 74 65 72 6d |nd uses |the term|
|00005c60| 69 6e 61 6c 0a 58 2e 62 | 72 0a 58 09 3a 21 21 65 |inal.X.b|r.X.:!!e|
|00005c70| 63 68 6f 20 74 68 69 73 | 20 63 6f 6d 6d 61 6e 64 |cho this| command|
|00005c80| 20 64 6f 65 73 20 6e 6f | 74 20 3e 20 2f 74 6d 70 | does no|t > /tmp|
|00005c90| 2f 66 69 6c 65 0a 58 2e | 54 50 0a 58 2e 49 20 53 |/file.X.|TP.X.I S|
|00005ca0| 74 72 69 6e 67 73 0a 58 | 49 6e 70 75 74 20 74 6f |trings.X|Input to|
|00005cb0| 20 63 6f 6d 6d 61 6e 64 | 73 20 70 72 6f 6d 70 74 | command|s prompt|
|00005cc0| 69 6e 67 20 66 6f 72 20 | 61 20 73 74 72 69 6e 67 |ing for |a string|
|00005cd0| 2c 20 65 2e 67 2e 20 61 | 20 66 69 6c 65 20 6e 61 |, e.g. a| file na|
|00005ce0| 6d 65 2c 20 63 61 6e 20 | 62 65 0a 58 73 70 65 63 |me, can |be.Xspec|
|00005cf0| 69 66 69 65 64 20 69 6e | 20 61 20 6d 61 63 72 6f |ified in| a macro|
|00005d00| 20 61 73 20 61 20 64 6f | 75 62 6c 65 20 71 75 6f | as a do|uble quo|
|00005d10| 74 65 64 20 73 74 72 69 | 6e 67 2e 20 20 45 78 61 |ted stri|ng. Exa|
|00005d20| 6d 70 6c 65 20 28 73 61 | 76 65 20 77 69 74 68 6f |mple (sa|ve witho|
|00005d30| 75 74 0a 58 70 72 6f 6d | 70 74 69 6e 67 20 66 6f |ut.Xprom|pting fo|
|00005d40| 72 20 61 20 66 69 6c 65 | 20 6e 61 6d 65 29 3a 0a |r a file| name):.|
|00005d50| 58 2e 62 72 0a 58 09 5c | 66 42 73 61 76 65 2d 73 |X.br.X.\|fBsave-s|
|00005d60| 68 6f 72 74 5c 66 50 20 | 22 2b 24 47 22 0a 58 2e |hort\fP |"+$G".X.|
|00005d70| 54 50 0a 58 2e 49 20 43 | 6f 6e 64 69 74 69 6f 6e |TP.X.I C|ondition|
|00005d80| 61 6c 73 0a 58 43 6f 6e | 64 69 74 69 6f 6e 61 6c |als.XCon|ditional|
|00005d90| 73 20 6d 61 79 20 6f 63 | 63 75 72 20 61 6e 79 77 |s may oc|cur anyw|
|00005da0| 68 65 72 65 20 69 6e 20 | 61 20 6d 61 63 72 6f 3b |here in |a macro;|
|00005db0| 20 61 20 63 6f 6e 64 69 | 74 69 6f 6e 61 6c 20 69 | a condi|tional i|
|00005dc0| 73 20 65 76 61 6c 75 61 | 74 65 64 0a 58 77 68 65 |s evalua|ted.Xwhe|
|00005dd0| 6e 20 74 68 65 20 6d 61 | 63 72 6f 20 69 73 20 65 |n the ma|cro is e|
|00005de0| 78 65 63 75 74 65 64 2c | 20 61 6e 64 20 69 66 20 |xecuted,| and if |
|00005df0| 74 68 65 20 63 6f 6e 64 | 69 74 69 6f 6e 20 69 73 |the cond|ition is|
|00005e00| 20 66 61 6c 73 65 20 5c | 66 49 74 68 65 20 72 65 | false \|fIthe re|
|00005e10| 73 74 0a 58 6f 66 20 74 | 68 65 20 63 75 72 72 65 |st.Xof t|he curre|
|00005e20| 6e 74 20 6c 69 6e 65 20 | 69 73 20 69 67 6e 6f 72 |nt line |is ignor|
|00005e30| 65 64 5c 66 50 2e 20 20 | 54 68 65 20 66 6f 6c 6c |ed\fP. |The foll|
|00005e40| 6f 77 69 6e 67 20 63 6f | 6e 64 69 74 69 6f 6e 61 |owing co|nditiona|
|00005e50| 6c 73 20 61 72 65 20 61 | 76 61 69 6c 61 62 6c 65 |ls are a|vailable|
|00005e60| 3a 0a 58 2e 6e 66 0a 58 | 09 5c 66 42 3f 6d 65 6e |:.X.nf.X|.\fB?men|
|00005e70| 75 5c 66 50 09 54 72 75 | 65 20 69 6e 20 6d 65 6e |u\fP.Tru|e in men|
|00005e80| 75 20 6d 6f 64 65 0a 58 | 09 5c 66 42 3f 73 68 6f |u mode.X|.\fB?sho|
|00005e90| 77 5c 66 50 09 54 72 75 | 65 20 69 6e 20 72 65 61 |w\fP.Tru|e in rea|
|00005ea0| 64 69 6e 67 20 6d 6f 64 | 65 0a 58 09 5c 66 42 3f |ding mod|e.X.\fB?|
|00005eb0| 66 6f 6c 64 65 72 5c 66 | 50 09 54 72 75 65 20 77 |folder\f|P.True w|
|00005ec0| 68 65 6e 20 6c 6f 6f 6b | 69 6e 67 20 61 74 20 61 |hen look|ing at a|
|00005ed0| 20 66 6f 6c 64 65 72 0a | 58 09 5c 66 42 3f 67 72 | folder.|X.\fB?gr|
|00005ee0| 6f 75 70 5c 66 50 09 54 | 72 75 65 20 77 68 65 6e |oup\fP.T|rue when|
|00005ef0| 20 6c 6f 6f 6b 69 6e 67 | 20 61 74 20 61 20 6e 65 | looking| at a ne|
|00005f00| 77 73 20 67 72 6f 75 70 | 0a 58 09 5c 66 42 3f 79 |ws group|.X.\fB?y|
|00005f10| 65 73 5c 66 50 09 51 75 | 65 72 79 20 75 73 65 72 |es\fP.Qu|ery user|
|00005f20| 2c 20 74 72 75 65 20 69 | 66 20 61 6e 73 77 65 72 |, true i|f answer|
|00005f30| 20 69 73 20 79 65 73 0a | 58 09 5c 66 42 3f 6e 6f | is yes.|X.\fB?no|
|00005f40| 5c 66 50 09 51 75 65 72 | 79 20 75 73 65 72 2c 20 |\fP.Quer|y user, |
|00005f50| 74 72 75 65 20 69 66 20 | 61 6e 73 77 65 72 20 69 |true if |answer i|
|00005f60| 73 20 6e 6f 0a 58 2e 66 | 69 0a 58 45 78 61 6d 70 |s no.X.f|i.XExamp|
|00005f70| 6c 65 20 28 73 74 6f 70 | 20 6d 61 63 72 6f 20 65 |le (stop| macro e|
|00005f80| 78 65 63 75 74 69 6f 6e | 20 69 66 20 75 73 65 72 |xecution| if user|
|00005f90| 20 72 65 6a 65 63 74 73 | 20 74 6f 20 63 6f 6e 74 | rejects| to cont|
|00005fa0| 69 6e 75 65 29 3a 0a 58 | 2e 62 72 0a 58 09 5c 66 |inue):.X|.br.X.\f|
|00005fb0| 42 70 72 6f 6d 70 74 5c | 66 50 20 22 63 6f 6e 74 |Bprompt\|fP "cont|
|00005fc0| 69 6e 75 65 3f 20 22 20 | 5c 66 42 3f 6e 6f 20 62 |inue? " |\fB?no b|
|00005fd0| 72 65 61 6b 5c 66 50 0a | 58 2e 73 70 20 30 2e 35 |reak\fP.|X.sp 0.5|
|00005fe0| 76 0a 58 49 6e 20 61 64 | 64 69 74 69 6f 6e 20 74 |v.XIn ad|dition t|
|00005ff0| 6f 20 74 68 65 73 65 20 | 63 6f 6e 64 69 74 69 6f |o these |conditio|
|00006000| 6e 61 6c 73 2c 20 69 74 | 20 69 73 20 70 6f 73 73 |nals, it| is poss|
|00006010| 69 62 6c 65 20 74 6f 20 | 74 65 73 74 20 74 68 65 |ible to |test the|
|00006020| 20 63 75 72 72 65 6e 74 | 0a 58 76 61 6c 75 65 20 | current|.Xvalue |
|00006030| 6f 66 20 62 6f 6f 6c 65 | 61 6e 20 61 6e 64 20 69 |of boole|an and i|
|00006040| 6e 74 65 67 65 72 20 76 | 61 72 69 61 62 6c 65 73 |nteger v|ariables|
|00006050| 20 75 73 69 6e 67 20 74 | 68 65 20 66 6f 6c 6c 6f | using t|he follo|
|00006060| 77 69 6e 67 20 66 6f 72 | 6d 3a 0a 58 2e 62 72 0a |wing for|m:.X.br.|
|00006070| 58 09 5c 66 42 3f 5c 66 | 50 5c 66 49 76 61 72 69 |X.\fB?\f|P\fIvari|
|00006080| 61 62 6c 65 5c 66 50 5c | 66 42 3d 5c 66 50 5c 66 |able\fP\|fB=\fP\f|
|00006090| 49 76 61 6c 75 65 5c 66 | 50 0a 58 2e 62 72 0a 58 |Ivalue\f|P.X.br.X|
|000060a0| 54 68 69 73 20 63 6f 6e | 64 69 74 69 6f 6e 61 6c |This con|ditional|
|000060b0| 20 77 69 6c 6c 20 62 65 | 20 74 72 75 65 20 28 31 | will be| true (1|
|000060c0| 29 20 69 66 20 74 68 65 | 20 76 61 72 69 61 62 6c |) if the| variabl|
|000060d0| 65 20 69 73 20 61 6e 20 | 69 6e 74 65 67 65 72 20 |e is an |integer |
|000060e0| 76 61 72 69 61 62 6c 65 | 0a 58 77 68 6f 73 65 20 |variable|.Xwhose |
|000060f0| 63 75 72 72 65 6e 74 20 | 76 61 6c 75 65 20 69 73 |current |value is|
|00006100| 20 74 68 65 20 6f 6e 65 | 20 73 70 65 63 69 66 69 | the one| specifi|
|00006110| 65 64 2c 20 6f 72 20 28 | 32 29 20 69 66 20 74 68 |ed, or (|2) if th|
|00006120| 65 20 76 61 72 69 61 62 | 6c 65 20 69 73 20 61 0a |e variab|le is a.|
|00006130| 58 62 6f 6f 6c 65 61 6e | 20 76 61 72 69 61 62 6c |Xboolean| variabl|
|00006140| 65 20 77 68 69 63 68 20 | 69 73 20 65 69 74 68 65 |e which |is eithe|
|00006150| 72 20 5c 66 42 6f 6e 5c | 66 50 20 6f 72 20 5c 66 |r \fBon\|fP or \f|
|00006160| 42 6f 66 66 5c 66 50 2e | 20 20 45 78 61 6d 70 6c |Boff\fP.| Exampl|
|00006170| 65 73 3a 0a 58 2e 6e 66 | 0a 58 09 3f 6c 61 79 6f |es:.X.nf|.X.?layo|
|00006180| 75 74 3d 33 20 3a 73 65 | 74 20 6c 61 79 6f 75 74 |ut=3 :se|t layout|
|00006190| 20 31 0a 58 09 3f 6d 6f | 6e 69 74 6f 72 3d 6f 6e | 1.X.?mo|nitor=on|
|000061a0| 20 20 62 72 65 61 6b 0a | 58 09 3f 73 6f 72 74 3d | break.|X.?sort=|
|000061b0| 6f 66 66 20 3a 73 6f 72 | 74 20 61 67 65 0a 58 2e |off :sor|t age.X.|
|000061c0| 66 69 0a 58 2e 54 50 0a | 58 2e 42 20 62 72 65 61 |fi.X.TP.|X.B brea|
|000061d0| 6b 0a 58 54 65 72 6d 69 | 6e 61 74 65 20 6d 61 63 |k.XTermi|nate mac|
|000061e0| 72 6f 20 65 78 65 63 75 | 74 69 6f 6e 20 63 6f 6d |ro execu|tion com|
|000061f0| 70 6c 65 74 65 6c 79 2e | 20 20 54 68 69 73 20 69 |pletely.| This i|
|00006200| 6e 63 6c 75 64 65 73 20 | 6e 65 73 74 65 64 20 6d |ncludes |nested m|
|00006210| 61 63 72 6f 73 2e 0a 58 | 45 78 61 6d 70 6c 65 20 |acros..X|Example |
|00006220| 28 73 74 6f 70 20 69 66 | 20 6c 6f 6f 6b 69 6e 67 |(stop if| looking|
|00006230| 20 61 74 20 61 20 66 6f | 6c 64 65 72 29 3a 0a 58 | at a fo|lder):.X|
|00006240| 2e 62 72 0a 58 09 5c 66 | 42 3f 66 6f 6c 64 65 72 |.br.X.\f|B?folder|
|00006250| 5c 66 50 20 5c 66 42 62 | 72 65 61 6b 5c 66 50 0a |\fP \fBb|reak\fP.|
|00006260| 58 2e 54 50 0a 58 2e 42 | 20 72 65 74 75 72 6e 0a |X.TP.X.B| return.|
|00006270| 58 54 65 72 6d 69 6e 61 | 74 65 20 65 78 65 63 75 |XTermina|te execu|
|00006280| 74 69 6f 6e 20 6f 66 20 | 63 75 72 72 65 6e 74 20 |tion of |current |
|00006290| 6d 61 63 72 6f 2e 20 20 | 49 66 20 74 68 65 20 63 |macro. |If the c|
|000062a0| 75 72 72 65 6e 74 20 6d | 61 63 72 6f 20 69 73 20 |urrent m|acro is |
|000062b0| 63 61 6c 6c 65 64 0a 58 | 66 72 6f 6d 20 61 6e 6f |called.X|from ano|
|000062c0| 74 68 65 72 20 6d 61 63 | 72 6f 2c 20 65 78 65 63 |ther mac|ro, exec|
|000062d0| 75 74 69 6f 6e 20 6f 66 | 20 74 68 61 74 20 6d 61 |ution of| that ma|
|000062e0| 63 72 6f 20 63 6f 6e 74 | 69 6e 75 65 73 20 69 6d |cro cont|inues im|
|000062f0| 6d 65 64 69 61 74 65 6c | 79 2e 0a 58 2e 54 50 0a |mediatel|y..X.TP.|
|00006300| 58 2e 42 20 69 6e 70 75 | 74 0a 58 51 75 65 72 79 |X.B inpu|t.XQuery|
|00006310| 20 74 68 65 20 75 73 65 | 72 20 66 6f 72 20 61 20 | the use|r for a |
|00006320| 6b 65 79 20 73 74 72 6f | 6b 65 20 6f 72 20 61 20 |key stro|ke or a |
|00006330| 73 74 72 69 6e 67 2c 20 | 66 6f 72 20 65 78 61 6d |string, |for exam|
|00006340| 70 6c 65 20 61 20 66 69 | 6c 65 20 6e 61 6d 65 2e |ple a fi|le name.|
|00006350| 0a 58 45 78 61 6d 70 6c | 65 20 28 70 72 6f 6d 70 |.XExampl|e (promp|
|00006360| 74 20 74 68 65 20 75 73 | 65 72 20 66 6f 72 20 61 |t the us|er for a|
|00006370| 20 66 69 6c 65 20 6e 61 | 6d 65 20 69 6e 20 74 68 | file na|me in th|
|00006380| 65 20 75 73 75 61 6c 20 | 77 61 79 29 3a 0a 58 2e |e usual |way):.X.|
|00006390| 62 72 0a 58 09 5c 66 42 | 73 61 76 65 2d 73 68 6f |br.X.\fB|save-sho|
|000063a0| 72 74 5c 66 50 20 5c 66 | 42 69 6e 70 75 74 5c 66 |rt\fP \f|Binput\f|
|000063b0| 50 0a 58 2e 54 50 0a 58 | 2e 42 20 79 65 73 0a 58 |P.X.TP.X|.B yes.X|
|000063c0| 43 6f 6e 66 69 72 6d 20 | 75 6e 63 6f 6e 64 69 74 |Confirm |uncondit|
|000063d0| 69 6f 6e 61 6c 6c 79 20 | 5c 66 49 69 66 5c 66 50 |ionally |\fIif\fP|
|000063e0| 20 61 20 63 6f 6d 6d 61 | 6e 64 20 72 65 71 75 69 | a comma|nd requi|
|000063f0| 72 65 73 20 63 6f 6e 66 | 69 72 6d 61 74 69 6f 6e |res conf|irmation|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.