home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1473 < prev    next >
SHell self-extracting ARchive  |  1990-12-28  |  14.0 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

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

You can browse this item here: 1473

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% TrID E-Mail message (Var. 2) 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| 46 72 6f 6d 3a 20 6a 61 | 6b 40 73 61 63 74 6f 68 |From: ja|k@sactoh|
|00000010| 30 2e 55 55 43 50 20 28 | 4a 61 79 20 41 2e 20 4b |0.UUCP (|Jay A. K|
|00000020| 6f 6e 69 67 73 62 65 72 | 67 29 0a 4e 65 77 73 67 |onigsber|g).Newsg|
|00000030| 72 6f 75 70 73 3a 20 61 | 6c 74 2e 73 6f 75 72 63 |roups: a|lt.sourc|
|00000040| 65 73 0a 53 75 62 6a 65 | 63 74 3a 20 73 69 6d 70 |es.Subje|ct: simp|
|00000050| 65 64 20 75 70 64 61 74 | 65 20 2d 20 73 69 6d 70 |ed updat|e - simp|
|00000060| 65 64 2e 66 69 78 30 32 | 0a 4d 65 73 73 61 67 65 |ed.fix02|.Message|
|00000070| 2d 49 44 3a 20 3c 33 32 | 39 38 40 73 61 63 74 6f |-ID: <32|98@sacto|
|00000080| 68 30 2e 55 55 43 50 3e | 0a 44 61 74 65 3a 20 31 |h0.UUCP>|.Date: 1|
|00000090| 36 20 4a 75 6e 20 39 30 | 20 30 31 3a 35 37 3a 34 |6 Jun 90| 01:57:4|
|000000a0| 38 20 47 4d 54 0a 0a 0a | 23 21 20 2f 62 69 6e 2f |8 GMT...|#! /bin/|
|000000b0| 73 68 0a 23 20 54 68 69 | 73 20 69 73 20 61 20 73 |sh.# Thi|s is a s|
|000000c0| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2c 20 6d 65 |hell arc|hive, me|
|000000d0| 61 6e 69 6e 67 3a 0a 23 | 20 31 2e 20 52 65 6d 6f |aning:.#| 1. Remo|
|000000e0| 76 65 20 65 76 65 72 79 | 74 68 69 6e 67 20 61 62 |ve every|thing ab|
|000000f0| 6f 76 65 20 74 68 65 20 | 23 21 20 2f 62 69 6e 2f |ove the |#! /bin/|
|00000100| 73 68 20 6c 69 6e 65 2e | 0a 23 20 32 2e 20 53 61 |sh line.|.# 2. Sa|
|00000110| 76 65 20 74 68 65 20 72 | 65 73 75 6c 74 69 6e 67 |ve the r|esulting|
|00000120| 20 74 65 78 74 20 69 6e | 20 61 20 66 69 6c 65 2e | text in| a file.|
|00000130| 0a 23 20 33 2e 20 45 78 | 65 63 75 74 65 20 74 68 |.# 3. Ex|ecute th|
|00000140| 65 20 66 69 6c 65 20 77 | 69 74 68 20 2f 62 69 6e |e file w|ith /bin|
|00000150| 2f 73 68 20 28 6e 6f 74 | 20 63 73 68 29 20 74 6f |/sh (not| csh) to|
|00000160| 20 63 72 65 61 74 65 3a | 0a 23 09 61 64 64 6c 69 | create:|.#.addli|
|00000170| 6e 65 73 2e 63 0a 23 09 | 63 6f 6d 6d 61 6e 64 73 |nes.c.#.|commands|
|00000180| 2e 63 0a 23 09 6c 69 73 | 74 74 65 78 74 2e 63 0a |.c.#.lis|ttext.c.|
|00000190| 23 09 73 61 76 65 66 69 | 6c 65 2e 63 0a 23 20 54 |#.savefi|le.c.# T|
|000001a0| 68 69 73 20 61 72 63 68 | 69 76 65 20 63 72 65 61 |his arch|ive crea|
|000001b0| 74 65 64 3a 20 46 72 69 | 20 4a 75 6e 20 31 35 20 |ted: Fri| Jun 15 |
|000001c0| 31 38 3a 35 36 3a 30 35 | 20 31 39 39 30 0a 65 78 |18:56:05| 1990.ex|
|000001d0| 70 6f 72 74 20 50 41 54 | 48 3b 20 50 41 54 48 3d |port PAT|H; PATH=|
|000001e0| 2f 62 69 6e 3a 2f 75 73 | 72 2f 62 69 6e 3a 24 50 |/bin:/us|r/bin:$P|
|000001f0| 41 54 48 0a 65 63 68 6f | 20 73 68 61 72 3a 20 22 |ATH.echo| shar: "|
|00000200| 65 78 74 72 61 63 74 69 | 6e 67 20 27 61 64 64 6c |extracti|ng 'addl|
|00000210| 69 6e 65 73 2e 63 27 22 | 20 27 28 31 38 32 32 20 |ines.c'"| '(1822 |
|00000220| 63 68 61 72 61 63 74 65 | 72 73 29 27 0a 69 66 20 |characte|rs)'.if |
|00000230| 74 65 73 74 20 2d 66 20 | 27 61 64 64 6c 69 6e 65 |test -f |'addline|
|00000240| 73 2e 63 27 0a 74 68 65 | 6e 0a 09 65 63 68 6f 20 |s.c'.the|n..echo |
|00000250| 73 68 61 72 3a 20 22 77 | 69 6c 6c 20 6e 6f 74 20 |shar: "w|ill not |
|00000260| 6f 76 65 72 2d 77 72 69 | 74 65 20 65 78 69 73 74 |over-wri|te exist|
|00000270| 69 6e 67 20 66 69 6c 65 | 20 27 61 64 64 6c 69 6e |ing file| 'addlin|
|00000280| 65 73 2e 63 27 22 0a 65 | 6c 73 65 0a 73 65 64 20 |es.c'".e|lse.sed |
|00000290| 27 73 2f 5e 09 58 2f 2f | 27 20 3c 3c 20 5c 53 48 |'s/^.X//|' << \SH|
|000002a0| 41 52 5f 45 4f 46 20 3e | 20 27 61 64 64 6c 69 6e |AR_EOF >| 'addlin|
|000002b0| 65 73 2e 63 27 0a 09 58 | 2f 2a 0a 09 58 20 2a 20 |es.c'..X|/*..X * |
|000002c0| 43 6f 70 79 72 69 67 68 | 74 20 28 43 29 20 31 39 |Copyrigh|t (C) 19|
|000002d0| 39 30 20 4a 61 79 20 4b | 6f 6e 69 67 73 62 65 72 |90 Jay K|onigsber|
|000002e0| 67 20 2d 20 73 65 65 20 | 4d 61 6b 65 66 69 6c 65 |g - see |Makefile|
|000002f0| 20 66 6f 72 20 64 65 74 | 61 69 6c 73 0a 09 58 20 | for det|ails..X |
|00000300| 2a 20 54 68 69 73 20 69 | 73 20 46 72 65 65 20 53 |* This i|s Free S|
|00000310| 6f 66 74 77 61 72 65 2e | 0a 09 58 20 2a 2f 0a 09 |oftware.|..X */..|
|00000320| 58 0a 09 58 2f 2a 0a 09 | 58 20 2a 20 61 64 64 6c |X..X/*..|X * addl|
|00000330| 69 6e 65 73 20 2d 20 61 | 64 64 20 74 65 78 74 20 |ines - a|dd text |
|00000340| 74 6f 20 74 68 65 20 74 | 65 78 74 20 62 75 66 66 |to the t|ext buff|
|00000350| 65 72 2e 20 54 68 69 73 | 20 72 6f 75 74 69 6e 65 |er. This| routine|
|00000360| 0a 09 58 20 2a 20 64 6f | 65 73 20 64 6f 75 62 6c |..X * do|es doubl|
|00000370| 65 20 73 65 72 76 69 63 | 65 20 72 65 61 64 69 6e |e servic|e readin|
|00000380| 67 20 66 72 6f 6d 20 73 | 74 64 69 6e 20 6f 72 20 |g from s|tdin or |
|00000390| 61 20 66 69 6c 65 2e 0a | 09 58 20 2a 20 61 6e 64 |a file..|.X * and|
|000003a0| 20 68 61 6e 64 65 6c 65 | 73 20 69 6e 73 65 72 74 | handele|s insert|
|000003b0| 73 20 61 6e 64 20 61 70 | 70 65 6e 64 73 2e 0a 09 |s and ap|pends...|
|000003c0| 58 20 2a 2f 0a 09 58 23 | 69 6e 63 6c 75 64 65 20 |X */..X#|include |
|000003d0| 22 73 69 6d 70 65 64 2e | 68 22 0a 09 58 0a 09 58 |"simped.|h"..X..X|
|000003e0| 63 68 61 72 20 2a 2a 61 | 64 64 6c 69 6e 65 73 28 |char **a|ddlines(|
|000003f0| 74 65 78 74 2c 20 6f 76 | 65 72 66 6c 6f 77 2c 20 |text, ov|erflow, |
|00000400| 63 6f 75 6e 74 2c 20 6c | 6f 63 61 74 69 6f 6e 2c |count, l|ocation,|
|00000410| 20 66 64 2c 20 6e 65 77 | 66 69 6c 65 29 0a 09 58 | fd, new|file)..X|
|00000420| 63 68 61 72 20 2a 2a 74 | 65 78 74 3b 0a 09 58 63 |char **t|ext;..Xc|
|00000430| 68 61 72 20 2a 6f 76 65 | 72 66 6c 6f 77 3b 0a 09 |har *ove|rflow;..|
|00000440| 58 69 6e 74 20 20 2a 63 | 6f 75 6e 74 3b 0a 09 58 |Xint *c|ount;..X|
|00000450| 69 6e 74 20 20 6c 6f 63 | 61 74 69 6f 6e 3b 09 09 |int loc|ation;..|
|00000460| 2f 2a 20 74 68 65 20 6c | 69 6e 65 20 6e 75 6d 62 |/* the l|ine numb|
|00000470| 65 72 20 61 66 74 65 72 | 20 77 68 69 63 68 20 74 |er after| which t|
|00000480| 68 65 20 61 64 64 20 6f | 63 63 75 72 65 73 20 2a |he add o|ccures *|
|00000490| 2f 0a 09 58 69 6e 74 20 | 20 6e 65 77 66 69 6c 65 |/..Xint | newfile|
|000004a0| 3b 09 09 2f 2a 20 6e 65 | 77 66 69 6c 65 20 66 6c |;../* ne|wfile fl|
|000004b0| 61 67 20 74 6f 20 73 74 | 61 74 74 20 69 6e 20 69 |ag to st|att in i|
|000004c0| 6e 73 65 72 74 20 6d 6f | 64 65 20 2a 2f 0a 09 58 |nsert mo|de */..X|
|000004d0| 46 49 4c 45 20 2a 66 64 | 3b 0a 09 58 7b 0a 09 58 |FILE *fd|;..X{..X|
|000004e0| 69 6e 74 09 70 72 69 6e | 74 66 28 29 3b 0a 09 58 |int.prin|tf();..X|
|000004f0| 0a 09 58 65 78 74 65 72 | 6e 09 63 68 61 72 09 2a |..Xexter|n.char.*|
|00000500| 67 65 74 6c 69 6e 65 28 | 29 2c 0a 09 58 09 09 2a |getline(|),..X..*|
|00000510| 2a 61 6c 6c 6f 63 61 74 | 65 28 29 3b 0a 09 58 0a |*allocat|e();..X.|
|00000520| 09 58 63 68 61 72 09 62 | 75 66 66 65 72 5b 4c 49 |.Xchar.b|uffer[LI|
|00000530| 4e 45 4c 45 4e 2b 32 5d | 3b 0a 09 58 0a 09 58 69 |NELEN+2]|;..X..Xi|
|00000540| 6e 74 09 63 68 61 72 5f | 72 65 61 64 5f 69 6e 3d |nt.char_|read_in=|
|00000550| 30 2c 09 09 2f 2a 20 63 | 68 61 72 61 63 74 65 72 |0,../* c|haracter|
|00000560| 73 20 72 65 61 64 20 69 | 6e 20 66 72 6f 6d 20 66 |s read i|n from f|
|00000570| 64 20 2a 2f 0a 09 58 09 | 74 65 78 74 5f 65 6e 74 |d */..X.|text_ent|
|00000580| 65 72 65 64 3d 54 52 55 | 45 3b 09 2f 2a 20 62 6f |ered=TRU|E;./* bo|
|00000590| 6f 6c 65 61 6e 20 74 6f | 20 64 65 74 65 72 6d 69 |olean to| determi|
|000005a0| 6e 20 77 68 65 6e 20 74 | 6f 20 61 6c 6c 6f 63 61 |n when t|o alloca|
|000005b0| 74 65 0a 09 58 09 09 09 | 09 20 20 20 73 70 61 63 |te..X...|. spac|
|000005c0| 65 20 41 4e 44 20 74 68 | 65 20 66 6c 61 67 20 66 |e AND th|e flag f|
|000005d0| 6f 72 20 45 4f 46 20 2a | 2f 0a 09 58 0a 09 58 69 |or EOF *|/..X..Xi|
|000005e0| 66 20 28 2a 63 6f 75 6e | 74 20 3e 3d 20 30 29 0a |f (*coun|t >= 0).|
|000005f0| 09 58 20 20 20 20 2b 2b | 28 2a 63 6f 75 6e 74 29 |.X ++|(*count)|
|00000600| 3b 0a 09 58 66 6f 72 28 | 3b 3b 29 0a 09 58 20 20 |;..Xfor(|;;)..X |
|00000610| 20 20 7b 0a 09 58 20 20 | 20 20 69 66 20 28 66 64 | {..X | if (fd|
|00000620| 20 3d 3d 20 73 74 64 69 | 6e 20 7c 7c 20 6e 65 77 | == stdi|n || new|
|00000630| 66 69 6c 65 29 0a 09 58 | 09 7b 0a 09 58 09 70 72 |file)..X|.{..X.pr|
|00000640| 69 6e 74 66 28 22 25 33 | 64 3e 20 22 2c 6c 6f 63 |intf("%3|d> ",loc|
|00000650| 61 74 69 6f 6e 29 3b 0a | 09 58 09 6f 76 65 72 66 |ation);.|.X.overf|
|00000660| 6c 6f 77 20 3d 20 67 65 | 74 6c 69 6e 65 28 62 75 |low = ge|tline(bu|
|00000670| 66 66 65 72 2c 20 26 74 | 65 78 74 5f 65 6e 74 65 |ffer, &t|ext_ente|
|00000680| 72 65 64 2c 20 73 74 64 | 69 6e 2c 20 27 5c 30 27 |red, std|in, '\0'|
|00000690| 2c 20 46 41 4c 53 45 29 | 3b 0a 09 58 09 7d 0a 09 |, FALSE)|;..X.}..|
|000006a0| 58 20 20 20 20 65 6c 73 | 65 0a 09 58 09 7b 0a 09 |X els|e..X.{..|
|000006b0| 58 09 6f 76 65 72 66 6c | 6f 77 20 3d 20 67 65 74 |X.overfl|ow = get|
|000006c0| 6c 69 6e 65 28 62 75 66 | 66 65 72 2c 20 26 74 65 |line(buf|fer, &te|
|000006d0| 78 74 5f 65 6e 74 65 72 | 65 64 2c 20 66 64 2c 20 |xt_enter|ed, fd, |
|000006e0| 27 5c 30 27 2c 20 46 41 | 4c 53 45 29 3b 0a 09 58 |'\0', FA|LSE);..X|
|000006f0| 0a 09 58 09 2f 2a 20 73 | 65 65 20 69 66 20 61 20 |..X./* s|ee if a |
|00000700| 62 6c 61 6e 6b 20 6c 69 | 6e 65 20 69 73 20 62 65 |blank li|ne is be|
|00000710| 69 6e 67 20 72 65 61 64 | 20 69 6e 2e 20 69 66 20 |ing read| in. if |
|00000720| 73 6f 2c 20 61 64 64 20 | 31 20 73 70 20 2a 2f 0a |so, add |1 sp */.|
|00000730| 09 58 09 69 66 20 28 74 | 65 78 74 5f 65 6e 74 65 |.X.if (t|ext_ente|
|00000740| 72 65 64 20 21 3d 20 45 | 4f 46 20 26 26 20 62 75 |red != E|OF && bu|
|00000750| 66 66 65 72 5b 30 5d 20 | 3d 3d 20 27 5c 6e 27 29 |ffer[0] |== '\n')|
|00000760| 0a 09 58 09 20 20 20 20 | 7b 0a 09 58 09 20 20 20 |..X. |{..X. |
|00000770| 20 62 75 66 66 65 72 5b | 30 5d 3d 27 20 27 3b 0a | buffer[|0]=' ';.|
|00000780| 09 58 09 20 20 20 20 62 | 75 66 66 65 72 5b 31 5d |.X. b|uffer[1]|
|00000790| 3d 27 5c 6e 27 3b 0a 09 | 58 09 20 20 20 20 62 75 |='\n';..|X. bu|
|000007a0| 66 66 65 72 5b 32 5d 3d | 27 5c 30 27 3b 0a 09 58 |ffer[2]=|'\0';..X|
|000007b0| 09 20 20 20 20 74 65 78 | 74 5f 65 6e 74 65 72 65 |. tex|t_entere|
|000007c0| 64 3d 54 52 55 45 3b 0a | 09 58 09 20 20 20 20 7d |d=TRUE;.|.X. }|
|000007d0| 0a 09 58 09 7d 0a 09 58 | 20 20 20 20 69 66 20 28 |..X.}..X| if (|
|000007e0| 74 65 78 74 5f 65 6e 74 | 65 72 65 64 20 26 26 20 |text_ent|ered && |
|000007f0| 74 65 78 74 5f 65 6e 74 | 65 72 65 64 20 21 3d 20 |text_ent|ered != |
|00000800| 45 4f 46 29 0a 09 58 09 | 7b 0a 09 58 09 2f 2a 20 |EOF)..X.|{..X./* |
|00000810| 6d 61 6b 65 20 73 75 72 | 65 20 74 68 65 72 65 20 |make sur|e there |
|00000820| 69 73 20 6f 6e 65 20 62 | 6c 61 6e 6b 20 6c 69 6e |is one b|lank lin|
|00000830| 65 20 61 74 20 42 4f 46 | 20 2d 20 66 6f 72 20 70 |e at BOF| - for p|
|00000840| 6f 73 74 6e 65 77 73 20 | 2a 2f 0a 09 58 09 69 66 |ostnews |*/..X.if|
|00000850| 20 28 2a 63 6f 75 6e 74 | 20 3d 3d 20 31 20 26 26 | (*count| == 1 &&|
|00000860| 20 62 75 66 66 65 72 5b | 30 5d 20 21 3d 20 27 20 | buffer[|0] != ' |
|00000870| 27 20 26 26 20 62 75 66 | 66 65 72 5b 31 5d 20 21 |' && buf|fer[1] !|
|00000880| 3d 20 27 5c 6e 27 0a 09 | 58 09 20 20 20 20 26 26 |= '\n'..|X. &&|
|00000890| 20 21 20 6e 65 77 66 69 | 6c 65 20 29 0a 09 58 09 | ! newfi|le )..X.|
|000008a0| 20 20 20 20 7b 0a 09 58 | 09 20 20 20 20 74 65 78 | {..X|. tex|
|000008b0| 74 20 3d 20 61 6c 6c 6f | 63 61 74 65 28 74 65 78 |t = allo|cate(tex|
|000008c0| 74 2c 20 22 20 5c 6e 5c | 30 22 2c 20 6f 76 65 72 |t, " \n\|0", over|
|000008d0| 66 6c 6f 77 2c 20 6c 6f | 63 61 74 69 6f 6e 2c 20 |flow, lo|cation, |
|000008e0| 2a 63 6f 75 6e 74 29 3b | 0a 09 58 09 20 20 20 20 |*count);|..X. |
|000008f0| 63 68 61 72 5f 72 65 61 | 64 5f 69 6e 20 2b 3d 20 |char_rea|d_in += |
|00000900| 32 3b 0a 09 58 09 20 20 | 20 20 28 2a 63 6f 75 6e |2;..X. | (*coun|
|00000910| 74 29 2b 2b 3b 0a 09 58 | 09 20 20 20 20 6c 6f 63 |t)++;..X|. loc|
|00000920| 61 74 69 6f 6e 2b 2b 3b | 0a 09 58 09 20 20 20 20 |ation++;|..X. |
|00000930| 7d 0a 09 58 09 74 65 78 | 74 20 3d 20 61 6c 6c 6f |}..X.tex|t = allo|
|00000940| 63 61 74 65 28 74 65 78 | 74 2c 20 62 75 66 66 65 |cate(tex|t, buffe|
|00000950| 72 2c 20 6f 76 65 72 66 | 6c 6f 77 2c 20 6c 6f 63 |r, overf|low, loc|
|00000960| 61 74 69 6f 6e 2c 20 2a | 63 6f 75 6e 74 29 3b 0a |ation, *|count);.|
|00000970| 09 58 09 63 68 61 72 5f | 72 65 61 64 5f 69 6e 20 |.X.char_|read_in |
|00000980| 2b 3d 20 28 73 74 72 6c | 65 6e 28 62 75 66 66 65 |+= (strl|en(buffe|
|00000990| 72 29 29 3b 0a 09 58 09 | 28 2a 63 6f 75 6e 74 29 |r));..X.|(*count)|
|000009a0| 2b 2b 3b 0a 09 58 09 6c | 6f 63 61 74 69 6f 6e 2b |++;..X.l|ocation+|
|000009b0| 2b 3b 0a 09 58 09 7d 0a | 09 58 20 20 20 20 65 6c |+;..X.}.|.X el|
|000009c0| 73 65 0a 09 58 09 62 72 | 65 61 6b 3b 0a 09 58 20 |se..X.br|eak;..X |
|000009d0| 20 20 20 7d 0a 09 58 69 | 66 28 66 64 20 21 3d 20 | }..Xi|f(fd != |
|000009e0| 73 74 64 69 6e 20 26 26 | 20 21 20 6e 65 77 66 69 |stdin &&| ! newfi|
|000009f0| 6c 65 29 0a 09 58 20 20 | 20 20 7b 0a 09 58 20 20 |le)..X | {..X |
|00000a00| 20 20 70 72 69 6e 74 66 | 28 22 25 64 20 63 68 61 | printf|("%d cha|
|00000a10| 72 61 63 74 65 72 73 20 | 72 65 61 64 20 69 6e 5c |racters |read in\|
|00000a20| 6e 22 2c 20 63 68 61 72 | 5f 72 65 61 64 5f 69 6e |n", char|_read_in|
|00000a30| 29 3b 0a 09 58 20 20 20 | 20 7d 0a 09 58 69 66 20 |);..X | }..Xif |
|00000a40| 28 2a 63 6f 75 6e 74 20 | 3e 3d 20 31 29 0a 09 58 |(*count |>= 1)..X|
|00000a50| 20 20 20 20 2d 2d 28 2a | 63 6f 75 6e 74 29 3b 0a | --(*|count);.|
|00000a60| 09 58 72 65 74 75 72 6e | 28 74 65 78 74 29 3b 0a |.Xreturn|(text);.|
|00000a70| 09 58 7d 0a 53 48 41 52 | 5f 45 4f 46 0a 69 66 20 |.X}.SHAR|_EOF.if |
|00000a80| 74 65 73 74 20 31 38 32 | 32 20 2d 6e 65 20 22 60 |test 182|2 -ne "`|
|00000a90| 77 63 20 2d 63 20 3c 20 | 27 61 64 64 6c 69 6e 65 |wc -c < |'addline|
|00000aa0| 73 2e 63 27 60 22 0a 74 | 68 65 6e 0a 09 65 63 68 |s.c'`".t|hen..ech|
|00000ab0| 6f 20 73 68 61 72 3a 20 | 22 65 72 72 6f 72 20 74 |o shar: |"error t|
|00000ac0| 72 61 6e 73 6d 69 74 74 | 69 6e 67 20 27 61 64 64 |ransmitt|ing 'add|
|00000ad0| 6c 69 6e 65 73 2e 63 27 | 22 20 27 28 73 68 6f 75 |lines.c'|" '(shou|
|00000ae0| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 31 38 32 |ld have |been 182|
|00000af0| 32 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 66 |2 charac|ters)'.f|
|00000b00| 69 0a 66 69 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |i.fi.ech|o shar: |
|00000b10| 22 65 78 74 72 61 63 74 | 69 6e 67 20 27 63 6f 6d |"extract|ing 'com|
|00000b20| 6d 61 6e 64 73 2e 63 27 | 22 20 27 28 36 35 37 30 |mands.c'|" '(6570|
|00000b30| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 69 66 | charact|ers)'.if|
|00000b40| 20 74 65 73 74 20 2d 66 | 20 27 63 6f 6d 6d 61 6e | test -f| 'comman|
|00000b50| 64 73 2e 63 27 0a 74 68 | 65 6e 0a 09 65 63 68 6f |ds.c'.th|en..echo|
|00000b60| 20 73 68 61 72 3a 20 22 | 77 69 6c 6c 20 6e 6f 74 | shar: "|will not|
|00000b70| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|00000b80| 74 69 6e 67 20 66 69 6c | 65 20 27 63 6f 6d 6d 61 |ting fil|e 'comma|
|00000b90| 6e 64 73 2e 63 27 22 0a | 65 6c 73 65 0a 73 65 64 |nds.c'".|else.sed|
|00000ba0| 20 27 73 2f 5e 09 58 2f | 2f 27 20 3c 3c 20 5c 53 | 's/^.X/|/' << \S|
|00000bb0| 48 41 52 5f 45 4f 46 20 | 3e 20 27 63 6f 6d 6d 61 |HAR_EOF |> 'comma|
|00000bc0| 6e 64 73 2e 63 27 0a 09 | 58 2f 2a 0a 09 58 20 2a |nds.c'..|X/*..X *|
|00000bd0| 20 43 6f 70 79 72 69 67 | 68 74 20 28 43 29 20 31 | Copyrig|ht (C) 1|
|00000be0| 39 39 30 20 4a 61 79 20 | 4b 6f 6e 69 67 73 62 65 |990 Jay |Konigsbe|
|00000bf0| 72 67 20 2d 20 54 68 69 | 73 20 69 73 20 46 72 65 |rg - Thi|s is Fre|
|00000c00| 65 20 53 6f 66 74 77 61 | 72 65 2e 0a 09 58 20 2a |e Softwa|re...X *|
|00000c10| 2f 0a 09 58 0a 09 58 23 | 69 6e 63 6c 75 64 65 20 |/..X..X#|include |
|00000c20| 22 73 69 6d 70 65 64 2e | 68 22 0a 09 58 23 69 6e |"simped.|h"..X#in|
|00000c30| 63 6c 75 64 65 20 22 73 | 79 73 2f 73 74 61 74 2e |clude "s|ys/stat.|
|00000c40| 68 22 0a 09 58 0a 09 58 | 76 6f 69 64 20 63 6f 6d |h"..X..X|void com|
|00000c50| 6d 61 6e 64 73 28 65 64 | 69 74 66 69 6c 65 2c 20 |mands(ed|itfile, |
|00000c60| 6e 65 77 66 69 6c 65 2c | 20 66 64 29 0a 09 58 63 |newfile,| fd)..Xc|
|00000c70| 68 61 72 20 2a 65 64 69 | 74 66 69 6c 65 3b 09 09 |har *edi|tfile;..|
|00000c80| 2f 2a 20 74 68 65 20 6e | 61 6d 65 20 6f 66 20 74 |/* the n|ame of t|
|00000c90| 68 65 20 66 69 6c 65 20 | 62 65 69 6e 67 20 65 64 |he file |being ed|
|00000ca0| 69 74 65 64 2c 20 4e 55 | 4c 4c 0a 09 58 09 09 09 |ited, NU|LL..X...|
|00000cb0| 20 2a 20 69 66 20 6e 6f | 20 66 69 6c 65 20 6e 61 | * if no| file na|
|00000cc0| 6d 65 20 77 61 73 20 73 | 70 65 63 69 66 69 65 64 |me was s|pecified|
|00000cd0| 2e 20 41 73 6c 6f 2c 0a | 09 58 09 09 09 20 2a 20 |. Aslo,.|.X... * |
|00000ce0| 27 6e 65 77 66 69 6c 65 | 27 20 77 69 6c 6c 20 62 |'newfile|' will b|
|00000cf0| 65 20 54 52 55 45 0a 09 | 58 09 09 09 20 2a 2f 0a |e TRUE..|X... */.|
|00000d00| 09 58 69 6e 74 20 20 2a | 6e 65 77 66 69 6c 65 3b |.Xint *|newfile;|
|00000d10| 09 09 2f 2a 20 62 6f 6f | 6c 65 61 6e 20 54 52 55 |../* boo|lean TRU|
|00000d20| 45 20 69 66 20 61 20 66 | 69 6c 65 20 69 73 20 63 |E if a f|ile is c|
|00000d30| 72 65 61 74 65 64 2c 20 | 46 41 4c 53 45 0a 09 58 |reated, |FALSE..X|
|00000d40| 09 09 09 20 2a 20 69 66 | 20 74 68 65 20 66 69 6c |... * if| the fil|
|00000d50| 65 20 77 61 73 20 72 65 | 61 64 20 69 6e 2e 0a 09 |e was re|ad in...|
|00000d60| 58 09 09 09 20 2a 2f 0a | 09 58 46 49 4c 45 20 2a |X... */.|.XFILE *|
|00000d70| 66 64 3b 0a 09 58 7b 0a | 09 58 65 78 74 65 72 6e |fd;..X{.|.Xextern|
|00000d80| 20 63 68 61 72 20 2a 6d | 61 6c 6c 6f 63 28 29 3b | char *m|alloc();|
|00000d90| 0a 09 58 0a 09 58 69 6e | 74 09 70 72 69 6e 74 66 |..X..Xin|t.printf|
|00000da0| 28 29 2c 0a 09 58 09 66 | 70 72 69 6e 74 66 28 29 |(),..X.f|printf()|
|00000db0| 2c 0a 09 58 09 66 66 6c | 75 73 68 28 29 2c 0a 09 |,..X.ffl|ush(),..|
|00000dc0| 58 09 67 65 74 6c 69 6e | 65 6e 75 6d 28 29 2c 0a |X.getlin|enum(),.|
|00000dd0| 09 58 09 66 70 75 74 73 | 28 29 2c 0a 09 58 09 70 |.X.fputs|(),..X.p|
|00000de0| 75 74 73 28 29 2c 0a 09 | 58 09 63 6c 65 61 6e 75 |uts(),..|X.cleanu|
|00000df0| 70 28 29 3b 0a 09 58 0a | 09 58 63 68 61 72 20 09 |p();..X.|.Xchar .|
|00000e00| 2a 2a 61 64 64 6c 69 6e | 65 73 28 29 2c 09 09 2f |**addlin|es(),../|
|00000e10| 2a 20 61 64 64 20 6c 69 | 6e 65 73 20 74 6f 20 74 |* add li|nes to t|
|00000e20| 68 65 20 74 65 78 74 20 | 61 72 65 61 20 2a 2f 0a |he text |area */.|
|00000e30| 09 58 09 2a 2a 65 64 69 | 74 6c 69 6e 65 28 29 2c |.X.**edi|tline(),|
|00000e40| 09 09 2f 2a 20 65 64 69 | 74 20 61 20 6c 69 6e 65 |../* edi|t a line|
|00000e50| 20 28 73 75 62 73 75 74 | 69 74 65 29 20 63 6f 6d | (subsut|ite) com|
|00000e60| 6d 61 6e 64 20 2a 2f 0a | 09 58 09 2a 2a 64 65 6c |mand */.|.X.**del|
|00000e70| 65 74 65 6c 69 6e 65 28 | 29 2c 09 09 2f 2a 20 64 |eteline(|),../* d|
|00000e80| 65 6c 65 74 65 20 61 20 | 6c 69 6e 65 20 69 6e 20 |elete a |line in |
|00000e90| 74 68 65 20 74 65 78 74 | 20 62 75 66 66 65 72 20 |the text| buffer |
|00000ea0| 2a 2f 0a 09 58 09 2a 2a | 6d 6f 64 69 66 79 28 29 |*/..X.**|modify()|
|00000eb0| 3b 09 09 2f 2a 20 6d 6f | 64 69 66 79 20 61 20 6c |;../* mo|dify a l|
|00000ec0| 69 6e 65 20 6f 66 20 74 | 65 78 74 20 2a 2f 0a 09 |ine of t|ext */..|
|00000ed0| 58 0a 09 58 76 6f 69 64 | 09 6c 69 73 74 74 65 78 |X..Xvoid|.listtex|
|00000ee0| 74 28 29 2c 0a 09 58 09 | 73 61 76 65 66 69 6c 65 |t(),..X.|savefile|
|00000ef0| 28 29 2c 0a 09 58 09 68 | 65 6c 70 28 29 3b 0a 09 |(),..X.h|elp();..|
|00000f00| 58 0a 09 58 73 74 72 75 | 63 74 20 20 73 74 61 74 |X..Xstru|ct stat|
|00000f10| 20 20 2a 62 75 66 3b 09 | 09 2f 2a 20 63 68 65 63 | *buf;.|./* chec|
|00000f20| 6b 20 66 6f 72 20 30 20 | 6c 65 6e 20 66 69 6c 65 |k for 0 |len file|
|00000f30| 20 77 68 65 6e 20 41 29 | 62 6f 72 74 20 2a 2f 0a | when A)|bort */.|
|00000f40| 09 58 0a 09 58 63 68 61 | 72 09 2a 2a 74 65 78 74 |.X..Xcha|r.**text|
|00000f50| 2c 09 09 09 2f 2a 20 74 | 65 78 74 20 65 6e 74 65 |,.../* t|ext ente|
|00000f60| 72 65 64 20 69 6e 20 74 | 68 65 20 65 64 69 74 6f |red in t|he edito|
|00000f70| 72 20 2a 2f 0a 09 58 09 | 2a 6f 76 65 72 66 6c 6f |r */..X.|*overflo|
|00000f80| 77 3d 4e 55 4c 4c 2c 09 | 09 2f 2a 20 70 6f 69 6e |w=NULL,.|./* poin|
|00000f90| 74 65 72 20 66 6f 72 20 | 61 75 74 6f 77 72 61 70 |ter for |autowrap|
|00000fa0| 20 2a 2f 0a 09 58 09 2a | 64 65 6c 69 6d 69 74 65 | */..X.*|delimite|
|00000fb0| 72 3d 4e 55 4c 4c 2c 09 | 2f 2a 20 70 61 73 73 65 |r=NULL,.|/* passe|
|00000fc0| 64 20 62 61 63 6b 20 66 | 72 6f 6d 20 67 65 74 6c |d back f|rom getl|
|00000fd0| 69 6e 65 6e 75 6d 20 66 | 6f 72 20 65 64 69 74 20 |inenum f|or edit |
|00000fe0| 2a 2f 0a 09 58 09 69 6e | 70 63 68 61 72 3b 09 09 |*/..X.in|pchar;..|
|00000ff0| 2f 2a 20 63 6f 6d 6d 61 | 6e 64 20 69 6e 70 75 74 |/* comma|nd input|
|00001000| 20 63 68 61 72 61 63 74 | 65 72 20 2a 2f 0a 09 58 | charact|er */..X|
|00001010| 0a 09 58 69 6e 74 09 63 | 6f 75 6e 74 3d 30 2c 09 |..Xint.c|ount=0,.|
|00001020| 09 2f 2a 20 6c 69 6e 65 | 20 63 6f 75 6e 74 20 2a |./* line| count *|
|00001030| 2f 0a 09 58 09 73 74 61 | 72 74 6c 69 73 74 2c 09 |/..X.sta|rtlist,.|
|00001040| 09 2f 2a 20 6c 69 6e 65 | 20 6e 75 6d 62 65 72 20 |./* line| number |
|00001050| 74 6f 20 73 74 61 72 74 | 20 61 20 6c 69 73 74 69 |to start| a listi|
|00001060| 6e 67 20 2a 2f 0a 09 58 | 09 61 62 6f 72 74 3d 31 |ng */..X|.abort=1|
|00001070| 2c 09 09 2f 2a 20 63 6f | 6d 6d 61 6e 64 20 61 62 |,../* co|mmand ab|
|00001080| 6f 72 74 65 64 20 2d 20 | 64 6f 6e 27 74 20 70 72 |orted - |don't pr|
|00001090| 69 6e 74 20 6d 65 6e 75 | 20 2a 2f 0a 09 58 09 6c |int menu| */..X.l|
|000010a0| 69 6e 65 6e 75 6d 3d 30 | 2c 09 09 2f 2a 20 6c 69 |inenum=0|,../* li|
|000010b0| 6e 65 20 6e 75 6d 62 65 | 72 20 66 6f 72 20 69 6e |ne numbe|r for in|
|000010c0| 73 65 72 74 20 2a 2f 0a | 09 58 09 76 61 6c 69 64 |sert */.|.X.valid|
|000010d0| 5f 63 6f 6d 6d 61 6e 64 | 3d 46 41 4c 53 45 3b 09 |_command|=FALSE;.|
|000010e0| 2f 2a 20 62 6f 6f 6c 65 | 61 6e 20 66 6f 72 20 63 |/* boole|an for c|
|000010f0| 6f 6d 6d 61 6e 64 20 6c | 6f 6f 70 20 2a 2f 0a 09 |ommand l|oop */..|
|00001100| 58 0a 09 58 2f 2a 0a 09 | 58 69 6e 69 74 69 6c 69 |X..X/*..|Xinitili|
|00001110| 7a 65 20 74 68 65 20 74 | 65 78 74 20 62 75 66 66 |ze the t|ext buff|
|00001120| 65 72 20 61 72 65 61 0a | 09 58 2a 2f 0a 09 58 69 |er area.|.X*/..Xi|
|00001130| 66 20 28 20 28 74 65 78 | 74 20 3d 20 28 63 68 61 |f ( (tex|t = (cha|
|00001140| 72 20 2a 2a 29 6d 61 6c | 6c 6f 63 28 50 54 52 5f |r **)mal|loc(PTR_|
|00001150| 43 48 55 4e 4b 20 2a 20 | 73 69 7a 65 6f 66 28 63 |CHUNK * |sizeof(c|
|00001160| 68 61 72 20 2a 29 2b 31 | 29 29 20 3d 3d 20 28 63 |har *)+1|)) == (c|
|00001170| 68 61 72 20 2a 2a 29 30 | 20 29 0a 09 58 20 20 20 |har **)0| )..X |
|00001180| 20 7b 0a 09 58 20 20 20 | 20 66 70 72 69 6e 74 66 | {..X | fprintf|
|00001190| 28 73 74 64 65 72 72 2c | 20 22 6d 61 6c 6c 6f 63 |(stderr,| "malloc|
|000011a0| 3a 20 65 72 72 6f 72 3d | 25 64 5c 6e 22 2c 20 65 |: error=|%d\n", e|
|000011b0| 72 72 6e 6f 29 3b 0a 09 | 58 20 20 20 20 63 6c 65 |rrno);..|X cle|
|000011c0| 61 6e 75 70 28 32 29 3b | 0a 09 58 20 20 20 20 7d |anup(2);|..X }|
|000011d0| 0a 09 58 0a 09 58 2f 2a | 0a 09 58 20 2a 20 43 6f |..X..X/*|..X * Co|
|000011e0| 70 79 72 69 67 68 74 0a | 09 58 20 2a 2f 0a 09 58 |pyright.|.X */..X|
|000011f0| 70 75 74 73 28 22 5c 6e | 53 69 6d 70 65 64 20 76 |puts("\n|Simped v|
|00001200| 65 72 73 69 6f 6e 20 31 | 2c 20 43 6f 70 79 72 69 |ersion 1|, Copyri|
|00001210| 67 68 74 20 28 43 29 20 | 31 39 39 30 20 2d 20 4a |ght (C) |1990 - J|
|00001220| 61 79 20 4b 6f 6e 69 67 | 73 62 65 72 67 20 28 6a |ay Konig|sberg (j|
|00001230| 61 6b 40 73 61 63 74 6f | 68 30 29 5c 6e 22 29 3b |ak@sacto|h0)\n");|
|00001240| 0a 09 58 0a 09 58 69 66 | 20 28 66 64 20 21 3d 20 |..X..Xif| (fd != |
|00001250| 73 74 64 69 6e 29 0a 09 | 58 20 20 20 20 7b 0a 09 |stdin)..|X {..|
|00001260| 58 20 20 20 20 70 72 69 | 6e 74 66 28 22 25 73 3a |X pri|ntf("%s:|
|00001270| 20 22 2c 20 65 64 69 74 | 66 69 6c 65 29 3b 0a 09 | ", edit|file);..|
|00001280| 58 20 20 20 20 7d 0a 09 | 58 69 66 20 28 2a 6e 65 |X }..|Xif (*ne|
|00001290| 77 66 69 6c 65 29 0a 09 | 58 20 20 20 20 7b 0a 09 |wfile)..|X {..|
|000012a0| 58 20 20 20 20 70 75 74 | 73 28 22 4e 65 77 20 66 |X put|s("New f|
|000012b0| 69 6c 65 2e 5c 6e 22 29 | 3b 0a 09 58 20 20 20 20 |ile.\n")|;..X |
|000012c0| 70 75 74 73 28 22 50 6c | 65 61 73 65 20 65 6e 74 |puts("Pl|ease ent|
|000012d0| 65 72 20 79 6f 75 72 20 | 74 65 78 74 20 6e 6f 77 |er your |text now|
|000012e0| 2e 20 54 68 65 20 74 65 | 78 74 20 77 69 6c 6c 20 |. The te|xt will |
|000012f0| 61 75 74 6f 6d 61 74 69 | 63 61 6c 6c 79 20 77 72 |automati|cally wr|
|00001300| 61 70 22 29 3b 0a 09 58 | 20 20 20 20 70 75 74 73 |ap");..X| puts|
|00001310| 28 22 61 72 6f 75 6e 64 | 20 74 6f 20 74 68 65 20 |("around| to the |
|00001320| 6e 65 78 74 20 6c 69 6e | 65 20 77 68 65 6e 20 61 |next lin|e when a|
|00001330| 20 6c 69 6e 65 20 69 73 | 20 66 75 6c 6c 2e 20 45 | line is| full. E|
|00001340| 6e 74 65 72 20 61 20 43 | 61 72 72 69 61 67 65 22 |nter a C|arriage"|
|00001350| 29 3b 0a 09 58 20 20 20 | 20 70 75 74 73 28 22 52 |);..X | puts("R|
|00001360| 65 74 75 72 6e 20 6f 6e | 20 61 20 6e 65 77 20 6c |eturn on| a new l|
|00001370| 69 6e 65 20 74 6f 20 65 | 6e 64 2e 5c 6e 22 29 3b |ine to e|nd.\n");|
|00001380| 0a 09 58 20 20 20 20 7d | 0a 09 58 74 65 78 74 20 |..X }|..Xtext |
|00001390| 3d 20 61 64 64 6c 69 6e | 65 73 28 74 65 78 74 2c |= addlin|es(text,|
|000013a0| 20 6f 76 65 72 66 6c 6f | 77 2c 20 26 63 6f 75 6e | overflo|w, &coun|
|000013b0| 74 2c 20 31 2c 20 66 64 | 2c 20 2a 6e 65 77 66 69 |t, 1, fd|, *newfi|
|000013c0| 6c 65 29 3b 0a 09 58 0a | 09 58 69 66 20 28 66 64 |le);..X.|.Xif (fd|
|000013d0| 20 21 3d 20 73 74 64 69 | 6e 20 26 26 20 21 20 2a | != stdi|n && ! *|
|000013e0| 6e 65 77 66 69 6c 65 29 | 0a 09 58 20 20 20 20 7b |newfile)|..X {|
|000013f0| 0a 09 58 20 20 20 20 69 | 66 20 28 63 6f 75 6e 74 |..X i|f (count|
|00001400| 20 3e 3d 20 50 41 55 53 | 45 29 0a 09 58 09 7b 0a | >= PAUS|E)..X.{.|
|00001410| 09 58 09 73 74 61 72 74 | 6c 69 73 74 20 3d 20 63 |.X.start|list = c|
|00001420| 6f 75 6e 74 20 2d 20 50 | 41 55 53 45 20 2b 20 31 |ount - P|AUSE + 1|
|00001430| 3b 0a 09 58 09 70 72 69 | 6e 74 66 28 22 5c 6e 54 |;..X.pri|ntf("\nT|
|00001440| 68 65 20 6c 61 73 74 20 | 25 64 20 6c 69 6e 65 73 |he last |%d lines|
|00001450| 20 72 65 61 64 20 69 6e | 3a 5c 6e 22 2c 20 50 41 | read in|:\n", PA|
|00001460| 55 53 45 29 3b 0a 09 58 | 09 7d 0a 09 58 20 20 20 |USE);..X|.}..X |
|00001470| 20 65 6c 73 65 0a 09 58 | 09 7b 0a 09 58 09 73 74 | else..X|.{..X.st|
|00001480| 61 72 74 6c 69 73 74 20 | 3d 20 31 3b 0a 09 58 09 |artlist |= 1;..X.|
|00001490| 7d 0a 09 58 20 20 20 20 | 6c 69 73 74 74 65 78 74 |}..X |listtext|
|000014a0| 28 74 65 78 74 2c 20 63 | 6f 75 6e 74 2c 20 73 74 |(text, c|ount, st|
|000014b0| 61 72 74 6c 69 73 74 29 | 3b 0a 09 58 20 20 20 20 |artlist)|;..X |
|000014c0| 7d 0a 09 58 0a 09 58 77 | 68 69 6c 65 20 28 21 20 |}..X..Xw|hile (! |
|000014d0| 76 61 6c 69 64 5f 63 6f | 6d 6d 61 6e 64 29 0a 09 |valid_co|mmand)..|
|000014e0| 58 20 20 20 20 7b 0a 09 | 58 20 20 20 20 2f 2a 0a |X {..|X /*.|
|000014f0| 09 58 20 20 20 20 20 2a | 20 61 62 6f 72 74 20 77 |.X *| abort w|
|00001500| 69 6c 6c 20 62 65 20 30 | 20 77 68 65 6e 20 72 65 |ill be 0| when re|
|00001510| 74 75 72 6e 69 6e 67 20 | 66 72 6f 6d 20 61 20 66 |turning |from a f|
|00001520| 75 6e 63 74 69 6f 6e 20 | 76 69 61 20 61 20 62 73 |unction |via a bs|
|00001530| 2c 0a 09 58 20 20 20 20 | 20 2a 20 74 68 75 73 20 |,..X | * thus |
|00001540| 74 68 65 20 73 74 72 61 | 6e 67 65 20 6c 6f 6f 6b |the stra|nge look|
|00001550| 69 6e 67 20 74 65 73 74 | 2e 0a 09 58 20 20 20 20 |ing test|...X |
|00001560| 20 2a 2f 0a 09 58 20 20 | 20 20 69 66 20 28 61 62 | */..X | if (ab|
|00001570| 6f 72 74 29 0a 09 58 09 | 7b 0a 09 58 20 20 20 70 |ort)..X.|{..X p|
|00001580| 75 74 73 28 22 5c 6e 4f | 70 74 69 6f 6e 73 3a 20 |uts("\nO|ptions: |
|00001590| 53 29 61 76 65 20 61 6e | 64 20 71 75 69 74 2c 20 |S)ave an|d quit, |
|000015a0| 41 29 62 6f 72 74 2f 63 | 61 6e 63 65 6c 2c 20 4c |A)bort/c|ancel, L|
|000015b0| 29 69 73 74 20 6d 65 73 | 73 61 67 65 2c 20 45 29 |)ist mes|sage, E)|
|000015c0| 64 69 74 20 6c 69 6e 65 | 2c 22 29 3b 0a 09 58 20 |dit line|,");..X |
|000015d0| 20 20 70 75 74 73 28 22 | 20 20 20 20 20 20 20 20 | puts("| |
|000015e0| 20 49 29 6e 73 65 72 74 | 20 6c 69 6e 65 2c 20 44 | I)nsert| line, D|
|000015f0| 29 65 6c 65 74 65 20 6c | 69 6e 65 2c 20 43 29 6f |)elete l|ine, C)o|
|00001600| 6e 74 69 6e 75 65 2c 20 | 4d 29 6f 64 69 66 79 2c |ntinue, |M)odify,|
|00001610| 20 48 29 65 6c 70 5c 6e | 22 29 3b 0a 09 58 20 20 | H)elp\n|");..X |
|00001620| 20 66 70 75 74 73 28 22 | 43 6f 6d 6d 61 6e 64 3f | fputs("|Command?|
|00001630| 20 22 2c 20 73 74 64 6f | 75 74 29 3b 0a 09 58 09 | ", stdo|ut);..X.|
|00001640| 7d 0a 09 58 0a 09 58 20 | 20 20 20 61 62 6f 72 74 |}..X..X | abort|
|00001650| 3d 31 3b 0a 09 58 20 20 | 20 20 66 66 6c 75 73 68 |=1;..X | fflush|
|00001660| 28 73 74 64 6f 75 74 29 | 3b 0a 09 58 20 20 20 20 |(stdout)|;..X |
|00001670| 76 61 6c 69 64 5f 63 6f | 6d 6d 61 6e 64 3d 46 41 |valid_co|mmand=FA|
|00001680| 4c 53 45 3b 0a 09 58 20 | 20 20 20 69 6e 70 63 68 |LSE;..X | inpch|
|00001690| 61 72 20 3d 20 67 65 74 | 63 68 61 72 28 29 3b 0a |ar = get|char();.|
|000016a0| 09 58 20 20 20 20 70 75 | 74 63 68 61 72 28 69 6e |.X pu|tchar(in|
|000016b0| 70 63 68 61 72 29 3b 0a | 09 58 20 20 20 20 66 66 |pchar);.|.X ff|
|000016c0| 6c 75 73 68 28 73 74 64 | 6f 75 74 29 3b 0a 09 58 |lush(std|out);..X|
|000016d0| 0a 09 58 20 20 20 20 73 | 77 69 74 63 68 20 28 69 |..X s|witch (i|
|000016e0| 6e 70 63 68 61 72 29 0a | 09 58 09 7b 0a 09 58 09 |npchar).|.X.{..X.|
|000016f0| 63 61 73 65 20 27 53 27 | 3a 20 2f 2a 20 73 61 76 |case 'S'|: /* sav|
|00001700| 65 20 74 68 65 20 66 69 | 6c 65 20 61 6e 64 20 71 |e the fi|le and q|
|00001710| 75 69 74 20 2a 2f 0a 09 | 58 09 63 61 73 65 20 27 |uit */..|X.case '|
|00001720| 73 27 3a 0a 09 58 09 20 | 20 20 20 66 6f 72 20 28 |s':..X. | for (|
|00001730| 3b 3b 29 0a 09 58 09 09 | 7b 0a 09 58 09 09 69 66 |;;)..X..|{..X..if|
|00001740| 20 28 20 28 69 6e 70 63 | 68 61 72 3d 67 65 74 63 | ( (inpc|har=getc|
|00001750| 68 61 72 28 29 29 20 3d | 3d 20 27 5c 62 27 20 29 |har()) =|= '\b' )|
|00001760| 0a 09 58 09 09 20 20 20 | 20 7b 0a 09 58 09 09 20 |..X.. | {..X.. |
|00001770| 20 20 20 70 75 74 63 68 | 61 72 28 69 6e 70 63 68 | putch|ar(inpch|
|00001780| 61 72 29 3b 0a 09 58 09 | 09 20 20 20 20 70 75 74 |ar);..X.|. put|
|00001790| 63 68 61 72 28 27 20 27 | 29 3b 0a 09 58 09 09 20 |char(' '|);..X.. |
|000017a0| 20 20 20 70 75 74 63 68 | 61 72 28 69 6e 70 63 68 | putch|ar(inpch|
|000017b0| 61 72 29 3b 0a 09 58 09 | 09 20 20 20 20 61 62 6f |ar);..X.|. abo|
|000017c0| 72 74 3d 30 3b 0a 09 58 | 09 09 20 20 20 20 62 72 |rt=0;..X|.. br|
|000017d0| 65 61 6b 3b 0a 09 58 09 | 09 20 20 20 20 7d 0a 09 |eak;..X.|. }..|
|000017e0| 58 09 09 65 6c 73 65 20 | 69 66 20 28 20 69 6e 70 |X..else |if ( inp|
|000017f0| 63 68 61 72 20 3d 3d 20 | 27 5c 6e 27 20 29 0a 09 |char == |'\n' )..|
|00001800| 58 09 09 20 20 20 20 7b | 0a 09 58 09 09 20 20 20 |X.. {|..X.. |
|00001810| 20 73 61 76 65 66 69 6c | 65 28 65 64 69 74 66 69 | savefil|e(editfi|
|00001820| 6c 65 2c 20 6e 65 77 66 | 69 6c 65 2c 20 66 64 2c |le, newf|ile, fd,|
|00001830| 20 74 65 78 74 2c 20 63 | 6f 75 6e 74 29 3b 0a 09 | text, c|ount);..|
|00001840| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 09 58 |X.. b|reak;..X|
|00001850| 09 09 20 20 20 20 7d 0a | 09 58 09 09 65 6c 73 65 |.. }.|.X..else|
|00001860| 0a 09 58 09 09 20 20 20 | 20 70 75 74 63 68 61 72 |..X.. | putchar|
|00001870| 28 42 45 4c 4c 29 3b 0a | 09 58 09 09 7d 0a 09 58 |(BELL);.|.X..}..X|
|00001880| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 09 58 09 63 |. bre|ak;..X.c|
|00001890| 61 73 65 20 27 41 27 3a | 20 2f 2a 20 61 62 6f 72 |ase 'A':| /* abor|
|000018a0| 74 20 65 64 69 74 69 6e | 67 20 73 65 73 73 69 6f |t editin|g sessio|
|000018b0| 6e 20 2a 2f 0a 09 58 09 | 63 61 73 65 20 27 61 27 |n */..X.|case 'a'|
|000018c0| 3a 0a 09 58 09 20 20 20 | 20 66 6f 72 20 28 3b 3b |:..X. | for (;;|
|000018d0| 29 0a 09 58 09 09 7b 0a | 09 58 09 09 69 66 20 28 |)..X..{.|.X..if (|
|000018e0| 20 28 69 6e 70 63 68 61 | 72 3d 67 65 74 63 68 61 | (inpcha|r=getcha|
|000018f0| 72 28 29 29 20 3d 3d 20 | 27 5c 62 27 20 29 0a 09 |r()) == |'\b' )..|
|00001900| 58 09 09 20 20 20 20 7b | 0a 09 58 09 09 20 20 20 |X.. {|..X.. |
|00001910| 20 70 75 74 63 68 61 72 | 28 69 6e 70 63 68 61 72 | putchar|(inpchar|
|00001920| 29 3b 0a 09 58 09 09 20 | 20 20 20 70 75 74 63 68 |);..X.. | putch|
|00001930| 61 72 28 27 20 27 29 3b | 0a 09 58 09 09 20 20 20 |ar(' ');|..X.. |
|00001940| 20 70 75 74 63 68 61 72 | 28 69 6e 70 63 68 61 72 | putchar|(inpchar|
|00001950| 29 3b 0a 09 58 09 09 20 | 20 20 20 61 62 6f 72 74 |);..X.. | abort|
|00001960| 3d 30 3b 0a 09 58 09 09 | 20 20 20 20 62 72 65 61 |=0;..X..| brea|
|00001970| 6b 3b 0a 09 58 09 09 20 | 20 20 20 7d 0a 09 58 09 |k;..X.. | }..X.|
|00001980| 09 65 6c 73 65 20 69 66 | 20 28 20 69 6e 70 63 68 |.else if| ( inpch|
|00001990| 61 72 20 3d 3d 20 27 5c | 6e 27 20 29 0a 09 58 09 |ar == '\|n' )..X.|
|000019a0| 09 20 20 20 20 7b 0a 09 | 58 09 09 20 20 20 20 66 |. {..|X.. f|
|000019b0| 70 75 74 73 28 22 5c 6e | 51 75 69 74 20 77 69 74 |puts("\n|Quit wit|
|000019c0| 68 6f 75 74 20 73 61 76 | 69 6e 67 20 28 72 65 74 |hout sav|ing (ret|
|000019d0| 75 72 6e 3d 6e 2f 59 29 | 3f 20 22 2c 20 73 74 64 |urn=n/Y)|? ", std|
|000019e0| 6f 75 74 29 3b 0a 09 58 | 09 09 20 20 20 20 69 66 |out);..X|.. if|
|000019f0| 20 28 20 28 69 6e 70 63 | 68 61 72 3d 67 65 74 63 | ( (inpc|har=getc|
|00001a00| 68 61 72 28 29 29 20 3d | 3d 20 27 59 27 20 29 0a |har()) =|= 'Y' ).|
|00001a10| 09 58 09 09 09 7b 0a 09 | 58 09 09 09 70 75 74 63 |.X...{..|X...putc|
|00001a20| 68 61 72 28 69 6e 70 63 | 68 61 72 29 3b 0a 09 58 |har(inpc|har);..X|
|00001a30| 09 09 09 66 66 6c 75 73 | 68 28 73 74 64 6f 75 74 |...fflus|h(stdout|
|00001a40| 29 3b 0a 09 58 09 09 09 | 62 75 66 20 3d 20 28 73 |);..X...|buf = (s|
|00001a50| 74 72 75 63 74 20 73 74 | 61 74 20 2a 29 6d 61 6c |truct st|at *)mal|
|00001a60| 6c 6f 63 28 73 69 7a 65 | 6f 66 28 62 75 66 29 29 |loc(size|of(buf))|
|00001a70| 3b 0a 09 58 09 09 09 2f | 2a 20 72 65 6d 6f 76 65 |;..X.../|* remove|
|00001a80| 20 66 69 6c 65 20 69 66 | 20 69 74 73 20 65 6d 70 | file if| its emp|
|00001a90| 74 79 20 2d 20 6e 6f 74 | 65 3a 20 74 68 65 20 65 |ty - not|e: the e|
|00001aa0| 72 72 6f 72 73 20 61 72 | 65 0a 09 58 09 09 09 69 |rrors ar|e..X...i|
|00001ab0| 67 6e 6f 72 65 64 20 69 | 6e 74 65 6e 74 69 6f 6e |gnored i|ntention|
|00001ac0| 61 6c 6c 79 20 2a 2f 0a | 09 58 09 09 09 70 72 69 |ally */.|.X...pri|
|00001ad0| 6e 74 66 28 22 65 72 72 | 6e 6f 20 3d 20 25 64 5c |ntf("err|no = %d\|
|00001ae0| 6e 22 2c 20 65 72 72 6e | 6f 29 3b 0a 09 58 09 09 |n", errn|o);..X..|
|00001af0| 09 69 66 20 28 20 73 74 | 61 74 28 65 64 69 74 66 |.if ( st|at(editf|
|00001b00| 69 6c 65 2c 20 62 75 66 | 29 20 3d 3d 20 30 20 29 |ile, buf|) == 0 )|
|00001b10| 0a 09 58 09 09 09 20 20 | 20 20 7b 0a 09 58 09 09 |..X... | {..X..|
|00001b20| 09 20 20 20 20 69 66 20 | 28 62 75 66 2d 3e 73 74 |. if |(buf->st|
|00001b30| 5f 73 69 7a 65 20 3d 3d | 20 28 6f 66 66 5f 74 29 |_size ==| (off_t)|
|00001b40| 30 20 29 0a 09 58 09 09 | 09 09 7b 0a 09 58 09 09 |0 )..X..|..{..X..|
|00001b50| 09 09 75 6e 6c 69 6e 6b | 28 65 64 69 74 66 69 6c |..unlink|(editfil|
|00001b60| 65 29 3b 0a 09 58 09 09 | 09 09 7d 0a 09 58 09 09 |e);..X..|..}..X..|
|00001b70| 09 20 20 20 20 7d 0a 09 | 58 09 09 09 63 6c 65 61 |. }..|X...clea|
|00001b80| 6e 75 70 28 32 29 3b 0a | 09 58 09 09 09 62 72 65 |nup(2);.|.X...bre|
|00001b90| 61 6b 3b 0a 09 58 09 09 | 09 7d 0a 09 58 09 09 20 |ak;..X..|.}..X.. |
|00001ba0| 20 20 20 65 6c 73 65 0a | 09 58 09 09 09 7b 0a 09 | else.|.X...{..|
|00001bb0| 58 09 09 09 70 75 74 63 | 68 61 72 28 69 6e 70 63 |X...putc|har(inpc|
|00001bc0| 68 61 72 29 3b 0a 09 58 | 09 09 09 66 66 6c 75 73 |har);..X|...fflus|
|00001bd0| 68 28 73 74 64 6f 75 74 | 29 3b 0a 09 58 09 09 09 |h(stdout|);..X...|
|00001be0| 70 75 74 73 28 22 22 29 | 3b 0a 09 58 09 09 09 62 |puts("")|;..X...b|
|00001bf0| 72 65 61 6b 3b 0a 09 58 | 09 09 09 7d 0a 09 58 09 |reak;..X|...}..X.|
|00001c00| 09 20 20 20 20 7d 0a 09 | 58 09 09 7d 0a 09 58 09 |. }..|X..}..X.|
|00001c10| 20 20 20 20 62 72 65 61 | 6b 3b 0a 09 58 09 63 61 | brea|k;..X.ca|
|00001c20| 73 65 20 27 51 27 3a 20 | 2f 2a 20 62 65 63 61 75 |se 'Q': |/* becau|
|00001c30| 73 65 20 71 20 74 6f 20 | 71 75 69 74 20 69 73 20 |se q to |quit is |
|00001c40| 73 6f 20 63 6f 6d 6d 6f | 6e 20 2a 2f 0a 09 58 09 |so commo|n */..X.|
|00001c50| 63 61 73 65 20 27 71 27 | 3a 0a 09 58 09 20 20 20 |case 'q'|:..X. |
|00001c60| 20 63 6c 65 61 6e 75 70 | 28 32 29 3b 0a 09 58 09 | cleanup|(2);..X.|
|00001c70| 20 20 20 20 62 72 65 61 | 6b 3b 0a 09 58 09 63 61 | brea|k;..X.ca|
|00001c80| 73 65 20 27 4c 27 3a 20 | 2f 2a 20 6c 69 73 74 20 |se 'L': |/* list |
|00001c90| 74 68 65 20 66 69 6c 65 | 20 2a 2f 0a 09 58 09 63 |the file| */..X.c|
|00001ca0| 61 73 65 20 27 6c 27 3a | 0a 09 58 09 20 20 20 20 |ase 'l':|..X. |
|00001cb0| 69 66 20 28 20 28 6c 69 | 6e 65 6e 75 6d 3d 67 65 |if ( (li|nenum=ge|
|00001cc0| 74 6c 69 6e 65 6e 75 6d | 28 63 6f 75 6e 74 2c 20 |tlinenum|(count, |
|00001cd0| 22 63 72 3d 31 22 2c 20 | 22 22 29 29 20 21 3d 20 |"cr=1", |"")) != |
|00001ce0| 2d 31 20 29 0a 09 58 09 | 09 7b 0a 09 58 09 09 69 |-1 )..X.|.{..X..i|
|00001cf0| 66 20 28 20 6c 69 6e 65 | 6e 75 6d 20 21 3d 20 30 |f ( line|num != 0|
|00001d00| 20 29 0a 09 58 09 09 20 | 20 20 20 7b 0a 09 58 09 | )..X.. | {..X.|
|00001d10| 09 20 20 20 20 70 75 74 | 73 28 22 22 29 3b 0a 09 |. put|s("");..|
|00001d20| 58 09 09 20 20 20 20 6c | 69 73 74 74 65 78 74 28 |X.. l|isttext(|
|00001d30| 74 65 78 74 2c 20 63 6f | 75 6e 74 2c 20 6c 69 6e |text, co|unt, lin|
|00001d40| 65 6e 75 6d 29 3b 0a 09 | 58 09 09 20 20 20 20 7d |enum);..|X.. }|
|00001d50| 0a 09 58 09 09 65 6c 73 | 65 0a 09 58 09 09 20 20 |..X..els|e..X.. |
|00001d60| 20 20 61 62 6f 72 74 3d | 30 3b 0a 09 58 09 09 7d | abort=|0;..X..}|
|00001d70| 0a 09 58 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 09 |..X. |break;..|
|00001d80| 58 09 63 61 73 65 20 27 | 45 27 3a 20 2f 2a 20 65 |X.case '|E': /* e|
|00001d90| 64 69 74 20 61 20 6c 69 | 6e 65 20 2d 20 73 75 64 |dit a li|ne - sud|
|00001da0| 73 75 74 69 74 65 20 63 | 6f 6d 6d 61 6e 64 20 2a |sutite c|ommand *|
|00001db0| 2f 0a 09 58 09 63 61 73 | 65 20 27 65 27 3a 0a 09 |/..X.cas|e 'e':..|
|00001dc0| 58 09 20 20 20 20 69 66 | 20 28 64 65 6c 69 6d 69 |X. if| (delimi|
|00001dd0| 74 65 72 29 0a 09 58 09 | 09 7b 0a 09 58 09 09 66 |ter)..X.|.{..X..f|
|00001de0| 72 65 65 28 64 65 6c 69 | 6d 69 74 65 72 29 3b 0a |ree(deli|miter);.|
|00001df0| 09 58 09 09 7d 0a 09 58 | 09 20 20 20 20 65 6c 73 |.X..}..X|. els|
|00001e00| 65 0a 09 58 09 09 7b 0a | 09 58 09 09 69 66 20 28 |e..X..{.|.X..if (|
|00001e10| 20 28 64 65 6c 69 6d 69 | 74 65 72 3d 6d 61 6c 6c | (delimi|ter=mall|
|00001e20| 6f 63 28 32 29 29 20 3d | 3d 20 4e 55 4c 4c 20 29 |oc(2)) =|= NULL )|
|00001e30| 0a 09 58 09 09 20 20 20 | 20 7b 0a 09 58 09 09 20 |..X.. | {..X.. |
|00001e40| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00001e50| 72 2c 20 22 6d 61 6c 6c | 6f 63 3a 20 65 72 72 6f |r, "mall|oc: erro|
|00001e60| 72 3d 25 64 5c 6e 22 2c | 20 65 72 72 6e 6f 29 3b |r=%d\n",| errno);|
|00001e70| 0a 09 58 09 09 20 20 20 | 20 63 6c 65 61 6e 75 70 |..X.. | cleanup|
|00001e80| 28 32 29 3b 0a 09 58 09 | 09 20 20 20 20 7d 0a 09 |(2);..X.|. }..|
|00001e90| 58 09 09 2a 64 65 6c 69 | 6d 69 74 65 72 3d 27 5c |X..*deli|miter='\|
|00001ea0| 30 27 3b 0a 09 58 09 09 | 7d 0a 09 58 0a 09 58 09 |0';..X..|}..X..X.|
|00001eb0| 20 20 20 20 69 66 20 28 | 20 28 6c 69 6e 65 6e 75 | if (| (linenu|
|00001ec0| 6d 3d 67 65 74 6c 69 6e | 65 6e 75 6d 28 63 6f 75 |m=getlin|enum(cou|
|00001ed0| 6e 74 2c 20 22 2f 3f 3d | 63 72 22 2c 20 64 65 6c |nt, "/?=|cr", del|
|00001ee0| 69 6d 69 74 65 72 29 29 | 20 21 3d 20 2d 31 20 29 |imiter))| != -1 )|
|00001ef0| 0a 09 58 09 09 7b 0a 09 | 58 09 09 69 66 20 28 20 |..X..{..|X..if ( |
|00001f00| 6c 69 6e 65 6e 75 6d 20 | 21 3d 20 30 20 29 0a 09 |linenum |!= 0 )..|
|00001f10| 58 09 09 20 20 20 20 7b | 0a 09 58 09 09 20 20 20 |X.. {|..X.. |
|00001f20| 20 69 66 20 28 20 21 20 | 2a 64 65 6c 69 6d 69 74 | if ( ! |*delimit|
|00001f30| 65 72 20 29 0a 09 58 09 | 09 09 70 75 74 73 28 22 |er )..X.|..puts("|
|00001f40| 22 29 3b 0a 09 58 09 09 | 20 20 20 20 74 65 78 74 |");..X..| text|
|00001f50| 20 3d 20 65 64 69 74 6c | 69 6e 65 28 74 65 78 74 | = editl|ine(text|
|00001f60| 2c 20 6c 69 6e 65 6e 75 | 6d 2c 20 2a 64 65 6c 69 |, linenu|m, *deli|
|00001f70| 6d 69 74 65 72 29 3b 0a | 09 58 09 09 20 20 20 20 |miter);.|.X.. |
|00001f80| 7d 0a 09 58 09 09 65 6c | 73 65 0a 09 58 09 09 20 |}..X..el|se..X.. |
|00001f90| 20 20 20 61 62 6f 72 74 | 3d 30 3b 0a 09 58 09 09 | abort|=0;..X..|
|00001fa0| 7d 0a 09 58 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |}..X. | break;.|
|00001fb0| 09 58 09 63 61 73 65 20 | 27 49 27 3a 20 2f 2a 20 |.X.case |'I': /* |
|00001fc0| 69 6e 73 65 72 74 20 61 | 20 6c 69 6e 65 20 2a 2f |insert a| line */|
|00001fd0| 0a 09 58 09 63 61 73 65 | 20 27 69 27 3a 0a 09 58 |..X.case| 'i':..X|
|00001fe0| 09 20 20 20 20 69 66 20 | 28 20 28 6c 69 6e 65 6e |. if |( (linen|
|00001ff0| 75 6d 3d 67 65 74 6c 69 | 6e 65 6e 75 6d 28 63 6f |um=getli|nenum(co|
|00002000| 75 6e 74 2c 20 22 22 2c | 20 22 22 29 29 20 21 3d |unt, "",| "")) !=|
|00002010| 20 2d 31 29 0a 09 58 09 | 09 7b 0a 09 58 09 09 69 | -1)..X.|.{..X..i|
|00002020| 66 20 28 20 6c 69 6e 65 | 6e 75 6d 20 21 3d 20 30 |f ( line|num != 0|
|00002030| 20 29 0a 09 58 09 09 20 | 20 20 20 7b 0a 09 58 09 | )..X.. | {..X.|
|00002040| 09 20 20 20 20 70 75 74 | 73 28 22 22 29 3b 0a 09 |. put|s("");..|
|00002050| 58 09 09 20 20 20 20 74 | 65 78 74 3d 61 64 64 6c |X.. t|ext=addl|
|00002060| 69 6e 65 73 28 74 65 78 | 74 2c 6f 76 65 72 66 6c |ines(tex|t,overfl|
|00002070| 6f 77 2c 26 63 6f 75 6e | 74 2c 6c 69 6e 65 6e 75 |ow,&coun|t,linenu|
|00002080| 6d 2c 73 74 64 69 6e 2c | 46 41 4c 53 45 29 3b 0a |m,stdin,|FALSE);.|
|00002090| 09 58 09 09 20 20 20 20 | 7d 0a 09 58 09 09 65 6c |.X.. |}..X..el|
|000020a0| 73 65 0a 09 58 09 09 20 | 20 20 20 61 62 6f 72 74 |se..X.. | abort|
|000020b0| 3d 30 3b 0a 09 58 09 09 | 7d 0a 09 58 09 20 20 20 |=0;..X..|}..X. |
|000020c0| 20 62 72 65 61 6b 3b 0a | 09 58 09 63 61 73 65 20 | break;.|.X.case |
|000020d0| 27 44 27 3a 20 2f 2a 20 | 64 65 6c 65 74 65 20 61 |'D': /* |delete a|
|000020e0| 20 6c 69 6e 65 20 2a 2f | 0a 09 58 09 63 61 73 65 | line */|..X.case|
|000020f0| 20 27 64 27 3a 0a 09 58 | 09 20 20 20 20 69 66 20 | 'd':..X|. if |
|00002100| 28 20 28 6c 69 6e 65 6e | 75 6d 3d 67 65 74 6c 69 |( (linen|um=getli|
|00002110| 6e 65 6e 75 6d 28 63 6f | 75 6e 74 2c 20 22 22 2c |nenum(co|unt, "",|
|00002120| 20 22 22 29 29 20 21 3d | 20 2d 31 29 0a 09 58 09 | "")) !=| -1)..X.|
|00002130| 09 7b 0a 09 58 09 09 69 | 66 20 28 6c 69 6e 65 6e |.{..X..i|f (linen|
|00002140| 75 6d 20 21 3d 20 30 29 | 0a 09 58 09 09 20 20 20 |um != 0)|..X.. |
|00002150| 20 7b 0a 09 58 09 09 20 | 20 20 20 70 75 74 73 28 | {..X.. | puts(|
|00002160| 22 22 29 3b 0a 09 58 09 | 09 20 20 20 20 74 65 78 |"");..X.|. tex|
|00002170| 74 3d 64 65 6c 65 74 65 | 6c 69 6e 65 28 74 65 78 |t=delete|line(tex|
|00002180| 74 2c 20 26 63 6f 75 6e | 74 2c 20 6c 69 6e 65 6e |t, &coun|t, linen|
|00002190| 75 6d 29 3b 0a 09 58 09 | 09 20 20 20 20 7d 0a 09 |um);..X.|. }..|
|000021a0| 58 09 09 65 6c 73 65 0a | 09 58 09 09 20 20 20 20 |X..else.|.X.. |
|000021b0| 61 62 6f 72 74 3d 30 3b | 0a 09 58 09 09 7d 0a 09 |abort=0;|..X..}..|
|000021c0| 58 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 09 58 09 |X. br|eak;..X.|
|000021d0| 63 61 73 65 20 27 43 27 | 3a 20 2f 2a 20 63 6f 6e |case 'C'|: /* con|
|000021e0| 74 69 6e 75 65 20 65 64 | 69 74 69 6e 67 20 61 74 |tinue ed|iting at|
|000021f0| 20 45 4f 46 20 2a 2f 0a | 09 58 09 63 61 73 65 20 | EOF */.|.X.case |
|00002200| 27 63 27 3a 0a 09 58 09 | 20 20 20 20 66 6f 72 20 |'c':..X.| for |
|00002210| 28 3b 3b 29 0a 09 58 09 | 09 7b 0a 09 58 09 09 69 |(;;)..X.|.{..X..i|
|00002220| 66 20 28 20 28 69 6e 70 | 63 68 61 72 3d 67 65 74 |f ( (inp|char=get|
|00002230| 63 68 61 72 28 29 29 20 | 3d 3d 20 27 5c 62 27 20 |char()) |== '\b' |
|00002240| 29 0a 09 58 09 09 7b 0a | 09 58 09 09 20 20 20 20 |)..X..{.|.X.. |
|00002250| 70 75 74 63 68 61 72 28 | 69 6e 70 63 68 61 72 29 |putchar(|inpchar)|
|00002260| 3b 0a 09 58 09 09 20 20 | 20 20 70 75 74 63 68 61 |;..X.. | putcha|
|00002270| 72 28 27 20 27 29 3b 0a | 09 58 09 09 20 20 20 20 |r(' ');.|.X.. |
|00002280| 70 75 74 63 68 61 72 28 | 69 6e 70 63 68 61 72 29 |putchar(|inpchar)|
|00002290| 3b 0a 09 58 09 09 20 20 | 20 20 61 62 6f 72 74 3d |;..X.. | abort=|
|000022a0| 30 3b 0a 09 58 09 09 20 | 20 20 20 62 72 65 61 6b |0;..X.. | break|
|000022b0| 3b 0a 09 58 09 09 7d 0a | 09 58 09 09 65 6c 73 65 |;..X..}.|.X..else|
|000022c0| 20 69 66 20 28 20 69 6e | 70 63 68 61 72 20 3d 3d | if ( in|pchar ==|
|000022d0| 20 27 5c 6e 27 20 29 0a | 09 58 09 09 20 20 20 20 | '\n' ).|.X.. |
|000022e0| 7b 0a 09 58 09 09 20 20 | 20 20 70 75 74 73 28 22 |{..X.. | puts("|
|000022f0| 22 29 3b 0a 09 58 09 09 | 20 20 20 20 74 65 78 74 |");..X..| text|
|00002300| 3d 61 64 64 6c 69 6e 65 | 73 28 74 65 78 74 2c 6f |=addline|s(text,o|
|00002310| 76 65 72 66 6c 6f 77 2c | 26 63 6f 75 6e 74 2c 63 |verflow,|&count,c|
|00002320| 6f 75 6e 74 2b 31 2c 73 | 74 64 69 6e 2c 46 41 4c |ount+1,s|tdin,FAL|
|00002330| 53 45 29 3b 0a 09 58 09 | 09 20 20 20 20 62 72 65 |SE);..X.|. bre|
|00002340| 61 6b 3b 0a 09 58 09 09 | 20 20 20 20 7d 0a 09 58 |ak;..X..| }..X|
|00002350| 09 09 65 6c 73 65 0a 09 | 58 09 09 20 20 20 20 70 |..else..|X.. p|
|00002360| 75 74 63 68 61 72 28 42 | 45 4c 4c 29 3b 0a 09 58 |utchar(B|ELL);..X|
|00002370| 09 09 7d 0a 09 58 09 20 | 20 20 20 62 72 65 61 6b |..}..X. | break|
|00002380| 3b 0a 09 58 09 63 61 73 | 65 20 27 4d 27 3a 20 2f |;..X.cas|e 'M': /|
|00002390| 2a 20 6d 6f 64 69 66 79 | 20 2d 20 6d 75 6c 74 69 |* modify| - multi|
|000023a0| 20 75 73 65 20 6c 69 6e | 65 20 65 64 69 74 69 6e | use lin|e editin|
|000023b0| 67 20 2a 2f 0a 09 58 09 | 63 61 73 65 20 27 6d 27 |g */..X.|case 'm'|
|000023c0| 3a 0a 09 58 09 20 20 20 | 20 69 66 20 28 20 28 6c |:..X. | if ( (l|
|000023d0| 69 6e 65 6e 75 6d 3d 67 | 65 74 6c 69 6e 65 6e 75 |inenum=g|etlinenu|
|000023e0| 6d 28 63 6f 75 6e 74 2c | 20 22 22 2c 20 22 22 29 |m(count,| "", "")|
|000023f0| 29 20 21 3d 20 2d 31 20 | 29 0a 09 58 09 09 7b 0a |) != -1 |)..X..{.|
|00002400| 09 58 09 09 69 66 20 28 | 20 6c 69 6e 65 6e 75 6d |.X..if (| linenum|
|00002410| 20 21 3d 20 30 20 29 0a | 09 58 09 09 20 20 20 20 | != 0 ).|.X.. |
|00002420| 7b 0a 09 58 09 09 20 20 | 20 20 70 75 74 73 28 22 |{..X.. | puts("|
|00002430| 22 29 3b 0a 09 58 09 09 | 20 20 20 20 74 65 78 74 |");..X..| text|
|00002440| 3d 6d 6f 64 69 66 79 28 | 74 65 78 74 2c 20 6c 69 |=modify(|text, li|
|00002450| 6e 65 6e 75 6d 29 3b 0a | 09 58 09 09 20 20 20 20 |nenum);.|.X.. |
|00002460| 7d 0a 09 58 09 09 65 6c | 73 65 0a 09 58 09 09 20 |}..X..el|se..X.. |
|00002470| 20 20 20 61 62 6f 72 74 | 3d 30 3b 0a 09 58 09 09 | abort|=0;..X..|
|00002480| 7d 0a 09 58 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |}..X. | break;.|
|00002490| 09 58 09 63 61 73 65 20 | 27 5c 62 27 3a 0a 09 58 |.X.case |'\b':..X|
|000024a0| 09 20 20 20 20 70 75 74 | 63 68 61 72 28 27 20 27 |. put|char(' '|
|000024b0| 29 3b 0a 09 58 09 20 20 | 20 20 70 75 74 63 68 61 |);..X. | putcha|
|000024c0| 72 28 42 45 4c 4c 29 3b | 0a 09 58 09 20 20 20 20 |r(BELL);|..X. |
|000024d0| 66 66 6c 75 73 68 28 73 | 74 64 6f 75 74 29 3b 0a |fflush(s|tdout);.|
|000024e0| 09 58 09 20 20 20 20 61 | 62 6f 72 74 3d 30 3b 20 |.X. a|bort=0; |
|000024f0| 2f 2a 20 64 6f 20 6e 6f | 74 20 70 72 69 6e 74 20 |/* do no|t print |
|00002500| 6d 65 6e 75 20 61 67 61 | 69 6e 20 2a 2f 0a 09 58 |menu aga|in */..X|
|00002510| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 09 58 09 63 |. bre|ak;..X.c|
|00002520| 61 73 65 20 27 5c 6e 27 | 3a 0a 09 58 09 20 20 20 |ase '\n'|:..X. |
|00002530| 20 66 70 75 74 73 28 22 | 43 6f 6d 6d 61 6e 64 3f | fputs("|Command?|
|00002540| 20 22 2c 20 73 74 64 6f | 75 74 29 3b 0a 09 58 09 | ", stdo|ut);..X.|
|00002550| 20 20 20 20 61 62 6f 72 | 74 3d 30 3b 20 2f 2a 20 | abor|t=0; /* |
|00002560| 64 6f 20 6e 6f 74 20 70 | 72 69 6e 74 20 6d 65 6e |do not p|rint men|
|00002570| 75 20 61 67 61 69 6e 20 | 2a 2f 0a 09 58 09 20 20 |u again |*/..X. |
|00002580| 20 20 62 72 65 61 6b 3b | 0a 09 58 09 63 61 73 65 | break;|..X.case|
|00002590| 20 27 48 27 3a 0a 09 58 | 09 63 61 73 65 20 27 68 | 'H':..X|.case 'h|
|000025a0| 27 3a 0a 09 58 09 20 20 | 20 20 66 6f 72 20 28 3b |':..X. | for (;|
|000025b0| 3b 29 0a 09 58 09 09 7b | 0a 09 58 09 09 69 66 20 |;)..X..{|..X..if |
|000025c0| 28 20 28 69 6e 70 63 68 | 61 72 3d 67 65 74 63 68 |( (inpch|ar=getch|
|000025d0| 61 72 28 29 29 20 3d 3d | 20 27 5c 62 27 20 29 0a |ar()) ==| '\b' ).|
|000025e0| 09 58 09 09 20 20 20 20 | 7b 0a 09 58 09 09 20 20 |.X.. |{..X.. |
|000025f0| 20 20 70 75 74 63 68 61 | 72 28 69 6e 70 63 68 61 | putcha|r(inpcha|
|00002600| 72 29 3b 0a 09 58 09 09 | 20 20 20 20 70 75 74 63 |r);..X..| putc|
|00002610| 68 61 72 28 27 20 27 29 | 3b 0a 09 58 09 09 20 20 |har(' ')|;..X.. |
|00002620| 20 20 70 75 74 63 68 61 | 72 28 69 6e 70 63 68 61 | putcha|r(inpcha|
|00002630| 72 29 3b 0a 09 58 09 09 | 20 20 20 20 61 62 6f 72 |r);..X..| abor|
|00002640| 74 3d 30 3b 0a 09 58 09 | 09 20 20 20 20 62 72 65 |t=0;..X.|. bre|
|00002650| 61 6b 3b 0a 09 58 09 09 | 20 20 20 20 7d 0a 09 58 |ak;..X..| }..X|
|00002660| 09 09 65 6c 73 65 20 69 | 66 20 28 20 69 6e 70 63 |..else i|f ( inpc|
|00002670| 68 61 72 20 3d 3d 20 27 | 5c 6e 27 20 29 0a 09 58 |har == '|\n' )..X|
|00002680| 09 09 20 20 20 20 7b 0a | 09 58 09 09 20 20 20 20 |.. {.|.X.. |
|00002690| 68 65 6c 70 28 29 3b 0a | 09 58 09 09 20 20 20 20 |help();.|.X.. |
|000026a0| 62 72 65 61 6b 3b 0a 09 | 58 09 09 20 20 20 20 7d |break;..|X.. }|
|000026b0| 0a 09 58 09 09 65 6c 73 | 65 0a 09 58 09 09 20 20 |..X..els|e..X.. |
|000026c0| 20 20 70 75 74 63 68 61 | 72 28 42 45 4c 4c 29 3b | putcha|r(BELL);|
|000026d0| 0a 09 58 09 09 7d 0a 09 | 58 09 20 20 20 20 62 72 |..X..}..|X. br|
|000026e0| 65 61 6b 3b 0a 09 58 09 | 63 61 73 65 20 27 6a 27 |eak;..X.|case 'j'|
|000026f0| 3a 0a 09 58 09 20 20 20 | 20 70 75 74 73 28 22 5c |:..X. | puts("\|
|00002700| 6e 5c 6e 41 75 74 68 6f | 72 20 20 20 3a 20 4a 61 |n\nAutho|r : Ja|
|00002710| 79 20 4b 6f 6e 69 67 73 | 62 65 72 67 5c 6e 22 29 |y Konigs|berg\n")|
|00002720| 3b 0a 09 58 09 20 20 20 | 20 70 75 74 73 28 22 43 |;..X. | puts("C|
|00002730| 6f 70 79 72 69 67 68 74 | 3a 20 4a 75 6e 65 20 31 |opyright|: June 1|
|00002740| 39 39 30 22 29 3b 0a 09 | 58 09 20 20 20 20 70 75 |990");..|X. pu|
|00002750| 74 73 28 22 44 61 74 65 | 20 20 20 20 20 3a 20 4a |ts("Date| : J|
|00002760| 75 6e 65 20 31 39 39 30 | 5c 6e 22 29 3b 0a 09 58 |une 1990|\n");..X|
|00002770| 09 20 20 20 20 70 75 74 | 73 28 22 75 75 63 70 20 |. put|s("uucp |
|00002780| 20 20 20 20 3a 20 6a 61 | 6b 40 73 61 63 74 6f 68 | : ja|k@sactoh|
|00002790| 30 5c 6e 22 29 3b 0a 09 | 58 09 20 20 20 20 62 72 |0\n");..|X. br|
|000027a0| 65 61 6b 3b 0a 09 58 09 | 64 65 66 61 75 6c 74 20 |eak;..X.|default |
|000027b0| 3a 0a 09 58 09 20 20 20 | 20 70 72 69 6e 74 66 28 |:..X. | printf(|
|000027c0| 22 25 63 3a 20 6e 6f 74 | 20 61 20 76 61 6c 69 64 |"%c: not| a valid|
|000027d0| 20 63 6f 6d 6d 61 6e 64 | 2e 5c 6e 22 2c 20 69 6e | command|.\n", in|
|000027e0| 70 63 68 61 72 29 3b 0a | 09 58 09 7d 0a 09 58 20 |pchar);.|.X.}..X |
|000027f0| 20 20 20 7d 0a 09 58 7d | 0a 53 48 41 52 5f 45 4f | }..X}|.SHAR_EO|
|00002800| 46 0a 69 66 20 74 65 73 | 74 20 36 35 37 30 20 2d |F.if tes|t 6570 -|
|00002810| 6e 65 20 22 60 77 63 20 | 2d 63 20 3c 20 27 63 6f |ne "`wc |-c < 'co|
|00002820| 6d 6d 61 6e 64 73 2e 63 | 27 60 22 0a 74 68 65 6e |mmands.c|'`".then|
|00002830| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 22 65 72 |..echo s|har: "er|
|00002840| 72 6f 72 20 74 72 61 6e | 73 6d 69 74 74 69 6e 67 |ror tran|smitting|
|00002850| 20 27 63 6f 6d 6d 61 6e | 64 73 2e 63 27 22 20 27 | 'comman|ds.c'" '|
|00002860| 28 73 68 6f 75 6c 64 20 | 68 61 76 65 20 62 65 65 |(should |have bee|
|00002870| 6e 20 36 35 37 30 20 63 | 68 61 72 61 63 74 65 72 |n 6570 c|haracter|
|00002880| 73 29 27 0a 66 69 0a 66 | 69 0a 65 63 68 6f 20 73 |s)'.fi.f|i.echo s|
|00002890| 68 61 72 3a 20 22 65 78 | 74 72 61 63 74 69 6e 67 |har: "ex|tracting|
|000028a0| 20 27 6c 69 73 74 74 65 | 78 74 2e 63 27 22 20 27 | 'listte|xt.c'" '|
|000028b0| 28 31 30 37 35 20 63 68 | 61 72 61 63 74 65 72 73 |(1075 ch|aracters|
|000028c0| 29 27 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 6c |)'.if te|st -f 'l|
|000028d0| 69 73 74 74 65 78 74 2e | 63 27 0a 74 68 65 6e 0a |isttext.|c'.then.|
|000028e0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 22 77 69 6c |.echo sh|ar: "wil|
|000028f0| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00002900| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 27 | existin|g file '|
|00002910| 6c 69 73 74 74 65 78 74 | 2e 63 27 22 0a 65 6c 73 |listtext|.c'".els|
|00002920| 65 0a 73 65 64 20 27 73 | 2f 5e 09 58 2f 2f 27 20 |e.sed 's|/^.X//' |
|00002930| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00002940| 6c 69 73 74 74 65 78 74 | 2e 63 27 0a 09 58 0a 09 |listtext|.c'..X..|
|00002950| 58 2f 2a 0a 09 58 20 2a | 20 43 6f 70 79 72 69 67 |X/*..X *| Copyrig|
|00002960| 68 74 20 28 43 29 20 31 | 39 39 30 20 4a 61 79 20 |ht (C) 1|990 Jay |
|00002970| 4b 6f 6e 69 67 73 62 65 | 72 67 20 2d 20 54 68 69 |Konigsbe|rg - Thi|
|00002980| 73 20 69 73 20 46 72 65 | 65 20 53 6f 66 74 77 61 |s is Fre|e Softwa|
|00002990| 72 65 2e 0a 09 58 20 2a | 2f 0a 09 58 0a 09 58 2f |re...X *|/..X..X/|
|000029a0| 2a 0a 09 58 20 2a 20 6c | 69 73 74 74 65 78 74 20 |*..X * l|isttext |
|000029b0| 2d 20 64 69 73 70 6c 61 | 79 20 74 68 65 20 74 65 |- displa|y the te|
|000029c0| 78 74 20 62 75 66 66 65 | 72 20 61 72 65 61 20 73 |xt buffe|r area s|
|000029d0| 74 61 72 74 69 6e 67 20 | 61 74 20 27 73 74 61 72 |tarting |at 'star|
|000029e0| 74 27 20 6c 69 6e 65 0a | 09 58 20 2a 20 6e 75 6d |t' line.|.X * num|
|000029f0| 62 65 72 20 61 6e 64 20 | 70 61 75 73 69 6e 67 20 |ber and |pausing |
|00002a00| 65 76 65 72 79 20 50 41 | 55 53 45 20 6c 69 6e 65 |every PA|USE line|
|00002a10| 73 2e 0a 09 58 20 2a 2f | 0a 09 58 0a 09 58 23 69 |s...X */|..X..X#i|
|00002a20| 6e 63 6c 75 64 65 20 22 | 73 69 6d 70 65 64 2e 68 |nclude "|simped.h|
|00002a30| 22 0a 09 58 23 64 65 66 | 69 6e 65 20 42 53 20 22 |"..X#def|ine BS "|
|00002a40| 5c 62 5c 62 5c 62 5c 62 | 5c 62 5c 62 5c 62 5c 62 |\b\b\b\b|\b\b\b\b|
|00002a50| 5c 62 5c 62 5c 62 5c 62 | 5c 62 5c 62 5c 62 5c 62 |\b\b\b\b|\b\b\b\b|
|00002a60| 5c 62 22 0a 09 58 23 64 | 65 66 69 6e 65 20 53 50 |\b"..X#d|efine SP|
|00002a70| 20 22 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | " | |
|00002a80| 20 20 20 22 0a 09 58 0a | 09 58 76 6f 69 64 20 6c | "..X.|.Xvoid l|
|00002a90| 69 73 74 74 65 78 74 28 | 74 65 78 74 2c 20 63 6f |isttext(|text, co|
|00002aa0| 75 6e 74 2c 20 73 74 61 | 72 74 29 0a 09 58 63 68 |unt, sta|rt)..Xch|
|00002ab0| 61 72 09 2a 2a 74 65 78 | 74 3b 09 09 2f 2a 20 74 |ar.**tex|t;../* t|
|00002ac0| 68 65 20 74 65 78 74 20 | 62 75 66 66 65 72 20 61 |he text |buffer a|
|00002ad0| 72 65 61 20 2a 2f 0a 09 | 58 69 6e 74 09 63 6f 75 |rea */..|Xint.cou|
|00002ae0| 6e 74 3b 09 09 2f 2a 20 | 6c 69 6e 65 73 20 69 6e |nt;../* |lines in|
|00002af0| 20 74 65 78 74 20 61 72 | 65 61 20 2a 2f 0a 09 58 | text ar|ea */..X|
|00002b00| 69 6e 74 09 73 74 61 72 | 74 3b 09 09 2f 2a 20 74 |int.star|t;../* t|
|00002b10| 68 65 20 6c 69 6e 65 20 | 74 6f 20 73 74 61 72 74 |he line |to start|
|00002b20| 20 74 68 65 20 6c 69 73 | 74 69 6e 67 20 61 74 20 | the lis|ting at |
|00002b30| 2a 2f 0a 09 58 7b 0a 09 | 58 69 6e 74 09 70 75 74 |*/..X{..|Xint.put|
|00002b40| 73 28 29 2c 0a 09 58 09 | 66 70 75 74 73 28 29 2c |s(),..X.|fputs(),|
|00002b50| 0a 09 58 09 70 72 69 6e | 74 66 28 29 3b 0a 09 58 |..X.prin|tf();..X|
|00002b60| 0a 09 58 69 6e 74 09 6c | 6f 6f 70 2c 09 09 2f 2a |..Xint.l|oop,../*|
|00002b70| 20 6c 6f 6f 70 20 76 61 | 72 20 2a 2f 0a 09 58 09 | loop va|r */..X.|
|00002b80| 69 6e 70 63 68 61 72 3b | 09 2f 2a 20 69 6e 70 75 |inpchar;|./* inpu|
|00002b90| 74 20 63 68 61 72 20 66 | 6f 72 20 70 61 75 73 65 |t char f|or pause|
|00002ba0| 20 2a 2f 0a 09 58 0a 09 | 58 70 75 74 73 28 22 22 | */..X..|Xputs(""|
|00002bb0| 29 3b 0a 09 58 69 66 20 | 28 21 20 63 6f 75 6e 74 |);..Xif |(! count|
|00002bc0| 29 0a 09 58 20 20 20 20 | 7b 0a 09 58 20 20 20 20 |)..X |{..X |
|00002bd0| 70 75 74 73 28 22 54 68 | 65 72 65 20 69 73 20 6e |puts("Th|ere is n|
|00002be0| 6f 20 74 65 78 74 2e 22 | 29 3b 0a 09 58 20 20 20 |o text."|);..X |
|00002bf0| 20 7d 0a 09 58 65 6c 73 | 65 0a 09 58 20 20 20 20 | }..Xels|e..X |
|00002c00| 7b 0a 09 58 20 20 20 20 | 66 6f 72 28 6c 6f 6f 70 |{..X |for(loop|
|00002c10| 3d 73 74 61 72 74 2d 31 | 3b 20 6c 6f 6f 70 20 3c |=start-1|; loop <|
|00002c20| 20 63 6f 75 6e 74 3b 20 | 2b 2b 6c 6f 6f 70 29 0a | count; |++loop).|
|00002c30| 09 58 09 7b 0a 09 58 09 | 69 66 20 28 20 21 28 28 |.X.{..X.|if ( !((|
|00002c40| 6c 6f 6f 70 2b 73 74 61 | 72 74 2d 31 29 20 25 20 |loop+sta|rt-1) % |
|00002c50| 50 41 55 53 45 29 20 26 | 26 20 6c 6f 6f 70 20 26 |PAUSE) &|& loop &|
|00002c60| 26 20 6c 6f 6f 70 20 21 | 3d 20 63 6f 75 6e 74 2d |& loop !|= count-|
|00002c70| 31 0a 09 58 09 20 20 20 | 20 26 26 20 6c 6f 6f 70 |1..X. | && loop|
|00002c80| 20 21 3d 20 73 74 61 72 | 74 2d 31 20 26 26 20 63 | != star|t-1 && c|
|00002c90| 6f 75 6e 74 20 2d 20 73 | 74 61 72 74 20 3e 20 50 |ount - s|tart > P|
|00002ca0| 41 55 53 45 29 0a 09 58 | 09 20 20 20 20 7b 0a 09 |AUSE)..X|. {..|
|00002cb0| 58 09 20 20 20 20 66 70 | 75 74 73 20 28 22 5b 50 |X. fp|uts ("[P|
|00002cc0| 72 65 73 73 20 71 20 74 | 6f 20 71 75 69 74 5d 22 |ress q t|o quit]"|
|00002cd0| 2c 20 73 74 64 6f 75 74 | 29 3b 0a 09 58 09 20 20 |, stdout|);..X. |
|00002ce0| 20 20 69 66 20 28 20 28 | 69 6e 70 63 68 61 72 20 | if ( (|inpchar |
|00002cf0| 3d 20 67 65 74 63 68 61 | 72 28 29 29 20 3d 3d 20 |= getcha|r()) == |
|00002d00| 27 71 27 20 7c 7c 20 69 | 6e 70 63 68 61 72 20 3d |'q' || i|npchar =|
|00002d10| 3d 20 27 51 27 29 0a 09 | 58 09 09 7b 0a 09 58 09 |= 'Q')..|X..{..X.|
|00002d20| 09 70 75 74 73 28 22 71 | 22 29 3b 0a 09 58 09 09 |.puts("q|");..X..|
|00002d30| 72 65 74 75 72 6e 3b 0a | 09 58 09 09 7d 0a 09 58 |return;.|.X..}..X|
|00002d40| 09 20 20 20 20 65 6c 73 | 65 0a 09 58 09 09 7b 0a |. els|e..X..{.|
|00002d50| 09 58 09 09 66 70 75 74 | 73 28 42 53 2c 20 73 74 |.X..fput|s(BS, st|
|00002d60| 64 6f 75 74 29 3b 0a 09 | 58 09 09 66 70 75 74 73 |dout);..|X..fputs|
|00002d70| 28 53 50 2c 20 73 74 64 | 6f 75 74 29 3b 0a 09 58 |(SP, std|out);..X|
|00002d80| 09 09 66 70 75 74 73 28 | 42 53 2c 20 73 74 64 6f |..fputs(|BS, stdo|
|00002d90| 75 74 29 3b 0a 09 58 09 | 09 7d 0a 09 58 09 20 20 |ut);..X.|.}..X. |
|00002da0| 20 20 7d 0a 09 58 09 70 | 72 69 6e 74 66 28 22 25 | }..X.p|rintf("%|
|00002db0| 33 64 3e 20 22 2c 20 6c | 6f 6f 70 2b 31 29 3b 0a |3d> ", l|oop+1);.|
|00002dc0| 09 58 09 66 70 75 74 73 | 28 74 65 78 74 5b 6c 6f |.X.fputs|(text[lo|
|00002dd0| 6f 70 5d 2c 20 73 74 64 | 6f 75 74 29 3b 0a 09 58 |op], std|out);..X|
|00002de0| 09 7d 0a 09 58 20 20 20 | 20 7d 0a 09 58 7d 0a 53 |.}..X | }..X}.S|
|00002df0| 48 41 52 5f 45 4f 46 0a | 69 66 20 74 65 73 74 20 |HAR_EOF.|if test |
|00002e00| 31 30 37 35 20 2d 6e 65 | 20 22 60 77 63 20 2d 63 |1075 -ne| "`wc -c|
|00002e10| 20 3c 20 27 6c 69 73 74 | 74 65 78 74 2e 63 27 60 | < 'list|text.c'`|
|00002e20| 22 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |".then..|echo sha|
|00002e30| 72 3a 20 22 65 72 72 6f | 72 20 74 72 61 6e 73 6d |r: "erro|r transm|
|00002e40| 69 74 74 69 6e 67 20 27 | 6c 69 73 74 74 65 78 74 |itting '|listtext|
|00002e50| 2e 63 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.c'" '(s|hould ha|
|00002e60| 76 65 20 62 65 65 6e 20 | 31 30 37 35 20 63 68 61 |ve been |1075 cha|
|00002e70| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 0a |racters)|'.fi.fi.|
|00002e80| 65 63 68 6f 20 73 68 61 | 72 3a 20 22 65 78 74 72 |echo sha|r: "extr|
|00002e90| 61 63 74 69 6e 67 20 27 | 73 61 76 65 66 69 6c 65 |acting '|savefile|
|00002ea0| 2e 63 27 22 20 27 28 31 | 36 39 31 20 63 68 61 72 |.c'" '(1|691 char|
|00002eb0| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00002ec0| 20 2d 66 20 27 73 61 76 | 65 66 69 6c 65 2e 63 27 | -f 'sav|efile.c'|
|00002ed0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00002ee0| 3a 20 22 77 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |: "will |not over|
|00002ef0| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00002f00| 66 69 6c 65 20 27 73 61 | 76 65 66 69 6c 65 2e 63 |file 'sa|vefile.c|
|00002f10| 27 22 0a 65 6c 73 65 0a | 73 65 64 20 27 73 2f 5e |'".else.|sed 's/^|
|00002f20| 09 58 2f 2f 27 20 3c 3c | 20 5c 53 48 41 52 5f 45 |.X//' <<| \SHAR_E|
|00002f30| 4f 46 20 3e 20 27 73 61 | 76 65 66 69 6c 65 2e 63 |OF > 'sa|vefile.c|
|00002f40| 27 0a 09 58 0a 09 58 2f | 2a 0a 09 58 20 2a 20 43 |'..X..X/|*..X * C|
|00002f50| 6f 70 79 72 69 67 68 74 | 20 28 43 29 20 31 39 39 |opyright| (C) 199|
|00002f60| 30 20 4a 61 79 20 4b 6f | 6e 69 67 73 62 65 72 67 |0 Jay Ko|nigsberg|
|00002f70| 20 2d 20 54 68 69 73 20 | 69 73 20 46 72 65 65 20 | - This |is Free |
|00002f80| 53 6f 66 74 77 61 72 65 | 2e 0a 09 58 20 2a 2f 0a |Software|...X */.|
|00002f90| 09 58 0a 09 58 23 69 6e | 63 6c 75 64 65 20 22 73 |.X..X#in|clude "s|
|00002fa0| 69 6d 70 65 64 2e 68 22 | 0a 09 58 0a 09 58 76 6f |imped.h"|..X..Xvo|
|00002fb0| 69 64 20 73 61 76 65 66 | 69 6c 65 28 65 64 69 74 |id savef|ile(edit|
|00002fc0| 66 69 6c 65 2c 20 6e 65 | 77 66 69 6c 65 2c 20 66 |file, ne|wfile, f|
|00002fd0| 64 2c 20 74 65 78 74 2c | 20 63 6f 75 6e 74 29 0a |d, text,| count).|
|00002fe0| 09 58 63 68 61 72 09 2a | 65 64 69 74 66 69 6c 65 |.Xchar.*|editfile|
|00002ff0| 3b 0a 09 58 69 6e 74 09 | 2a 6e 65 77 66 69 6c 65 |;..Xint.|*newfile|
|00003000| 3b 0a 09 58 46 49 4c 45 | 09 2a 66 64 3b 0a 09 58 |;..XFILE|.*fd;..X|
|00003010| 63 68 61 72 09 2a 2a 74 | 65 78 74 3b 0a 09 58 69 |char.**t|ext;..Xi|
|00003020| 6e 74 09 63 6f 75 6e 74 | 3b 0a 09 58 7b 0a 09 58 |nt.count|;..X{..X|
|00003030| 46 49 4c 45 09 2a 66 6f | 70 65 6e 28 29 3b 0a 09 |FILE.*fo|pen();..|
|00003040| 58 0a 09 58 69 6e 74 09 | 66 63 6c 6f 73 65 28 29 |X..Xint.|fclose()|
|00003050| 2c 0a 09 58 09 66 70 72 | 69 6e 74 66 28 29 2c 0a |,..X.fpr|intf(),.|
|00003060| 09 58 09 70 72 69 6e 74 | 66 28 29 2c 0a 09 58 09 |.X.print|f(),..X.|
|00003070| 66 70 75 74 73 28 29 2c | 0a 09 58 09 70 75 74 73 |fputs(),|..X.puts|
|00003080| 28 29 2c 0a 09 58 09 63 | 6c 65 61 6e 75 70 28 29 |(),..X.c|leanup()|
|00003090| 3b 0a 09 58 0a 09 58 63 | 68 61 72 09 2a 67 65 74 |;..X..Xc|har.*get|
|000030a0| 6c 69 6e 65 28 29 3b 0a | 09 58 0a 09 58 69 6e 74 |line();.|.X..Xint|
|000030b0| 09 74 65 78 74 69 6e 78 | 2c 09 09 2f 2a 20 69 6e |.textinx|,../* in|
|000030c0| 64 65 78 20 66 6f 72 20 | 74 68 65 20 74 65 78 74 |dex for |the text|
|000030d0| 20 62 75 66 66 65 72 20 | 2a 2f 0a 09 58 09 74 65 | buffer |*/..X.te|
|000030e0| 78 74 5f 65 6e 74 65 72 | 65 64 3d 30 2c 09 09 2f |xt_enter|ed=0,../|
|000030f0| 2a 20 77 61 73 20 73 6f | 6d 65 74 68 69 6e 67 20 |* was so|mething |
|00003100| 65 6e 74 65 72 65 64 20 | 2a 2f 0a 09 58 09 63 68 |entered |*/..X.ch|
|00003110| 3d 30 3b 09 09 09 2f 2a | 20 63 68 61 72 61 63 74 |=0;.../*| charact|
|00003120| 65 72 73 20 72 65 61 64 | 20 69 6e 20 2a 2f 0a 09 |ers read| in */..|
|00003130| 58 0a 09 58 63 68 61 72 | 09 62 75 66 66 65 72 5b |X..Xchar|.buffer[|
|00003140| 4c 49 4e 45 4c 45 4e 2b | 32 5d 3b 09 2f 2a 20 62 |LINELEN+|2];./* b|
|00003150| 75 66 66 65 72 20 66 6f | 72 20 66 69 6c 65 6e 61 |uffer fo|r filena|
|00003160| 6d 65 20 65 6e 74 72 79 | 20 2a 2f 0a 09 58 0a 09 |me entry| */..X..|
|00003170| 58 70 75 74 73 28 22 22 | 29 3b 0a 09 58 69 66 20 |Xputs(""|);..Xif |
|00003180| 28 21 20 65 64 69 74 66 | 69 6c 65 29 0a 09 58 20 |(! editf|ile)..X |
|00003190| 20 20 20 7b 0a 09 58 20 | 20 20 20 66 6f 72 28 3b | {..X | for(;|
|000031a0| 3b 29 0a 09 58 09 7b 0a | 09 58 09 66 70 75 74 73 |;)..X.{.|.X.fputs|
|000031b0| 28 22 5c 6e 50 6c 65 61 | 73 65 20 65 6e 74 65 72 |("\nPlea|se enter|
|000031c0| 20 61 20 66 69 6c 65 6e | 61 6d 65 3a 20 22 2c 20 | a filen|ame: ", |
|000031d0| 73 74 64 6f 75 74 29 3b | 0a 09 58 09 69 66 20 28 |stdout);|..X.if (|
|000031e0| 67 65 74 6c 69 6e 65 28 | 62 75 66 66 65 72 2c 20 |getline(|buffer, |
|000031f0| 26 74 65 78 74 5f 65 6e | 74 65 72 65 64 2c 20 73 |&text_en|tered, s|
|00003200| 74 64 69 6e 2c 20 27 5c | 30 27 2c 20 54 52 55 45 |tdin, '\|0', TRUE|
|00003210| 29 29 0a 09 58 09 20 20 | 20 20 7b 0a 09 58 09 20 |))..X. | {..X. |
|00003220| 20 20 20 70 75 74 73 28 | 22 54 6f 6f 20 6d 61 6e | puts(|"Too man|
|00003230| 79 20 63 68 61 72 61 63 | 74 65 72 73 2e 22 29 3b |y charac|ters.");|
|00003240| 0a 09 58 09 20 20 20 20 | 72 65 74 75 72 6e 3b 0a |..X. |return;.|
|00003250| 09 58 09 20 20 20 20 7d | 0a 09 58 09 69 66 28 20 |.X. }|..X.if( |
|00003260| 21 20 74 65 78 74 5f 65 | 6e 74 65 72 65 64 20 29 |! text_e|ntered )|
|00003270| 20 2f 2a 20 61 20 72 65 | 74 75 72 6e 20 62 79 20 | /* a re|turn by |
|00003280| 69 74 73 65 6c 66 20 77 | 61 73 20 65 6e 74 65 72 |itself w|as enter|
|00003290| 65 64 20 2a 2f 0a 09 58 | 09 20 20 20 20 72 65 74 |ed */..X|. ret|
|000032a0| 75 72 6e 3b 0a 09 58 09 | 62 75 66 66 65 72 5b 73 |urn;..X.|buffer[s|
|000032b0| 74 72 6c 65 6e 28 62 75 | 66 66 65 72 29 2d 31 5d |trlen(bu|ffer)-1]|
|000032c0| 3d 27 5c 30 27 3b 0a 09 | 58 09 65 64 69 74 66 69 |='\0';..|X.editfi|
|000032d0| 6c 65 20 3d 20 62 75 66 | 66 65 72 3b 0a 09 58 09 |le = buf|fer;..X.|
|000032e0| 69 66 20 28 20 28 66 64 | 3d 66 6f 70 65 6e 28 65 |if ( (fd|=fopen(e|
|000032f0| 64 69 74 66 69 6c 65 2c | 20 22 72 22 29 29 20 3d |ditfile,| "r")) =|
|00003300| 3d 20 4e 55 4c 4c 29 0a | 09 58 09 20 20 20 20 7b |= NULL).|.X. {|
|00003310| 0a 09 58 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 09 |..X. |break;..|
|00003320| 58 09 20 20 20 20 7d 0a | 09 58 09 70 72 69 6e 74 |X. }.|.X.print|
|00003330| 66 28 22 25 73 3a 20 66 | 69 6c 65 20 65 78 69 73 |f("%s: f|ile exis|
|00003340| 74 73 21 20 72 65 74 75 | 72 6e 20 74 6f 20 65 78 |ts! retu|rn to ex|
|00003350| 69 74 2e 5c 6e 22 2c 20 | 65 64 69 74 66 69 6c 65 |it.\n", |editfile|
|00003360| 29 3b 0a 09 58 09 7d 0a | 09 58 20 20 20 20 66 63 |);..X.}.|.X fc|
|00003370| 6c 6f 73 65 28 66 64 29 | 3b 0a 09 58 20 20 20 20 |lose(fd)|;..X |
|00003380| 69 66 28 20 28 66 64 3d | 66 6f 70 65 6e 28 65 64 |if( (fd=|fopen(ed|
|00003390| 69 74 66 69 6c 65 2c 20 | 22 77 22 29 29 20 3d 3d |itfile, |"w")) ==|
|000033a0| 20 4e 55 4c 4c 20 29 0a | 09 58 09 7b 0a 09 58 09 | NULL ).|.X.{..X.|
|000033b0| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 22 |fprintf(|stderr,"|
|000033c0| 43 61 6e 27 74 20 6f 70 | 65 6e 20 25 73 2c 20 70 |Can't op|en %s, p|
|000033d0| 72 6f 62 61 62 6c 79 20 | 61 6e 20 69 6c 6c 65 67 |robably |an illeg|
|000033e0| 61 6c 20 66 69 6c 65 6e | 61 6d 65 22 2c 65 64 69 |al filen|ame",edi|
|000033f0| 74 66 69 6c 65 29 3b 0a | 09 58 09 72 65 74 75 72 |tfile);.|.X.retur|
|00003400| 6e 3b 0a 09 58 09 7d 0a | 09 58 20 20 20 20 7d 0a |n;..X.}.|.X }.|
|00003410| 09 58 0a 09 58 69 66 20 | 28 20 21 20 2a 6e 65 77 |.X..Xif |( ! *new|
|00003420| 66 69 6c 65 20 29 0a 09 | 58 20 20 20 20 7b 0a 09 |file )..|X {..|
|00003430| 58 20 20 20 20 66 63 6c | 6f 73 65 28 66 64 29 3b |X fcl|ose(fd);|
|00003440| 0a 09 58 20 20 20 20 69 | 66 28 20 28 66 64 3d 66 |..X i|f( (fd=f|
|00003450| 6f 70 65 6e 28 65 64 69 | 74 66 69 6c 65 2c 20 22 |open(edi|tfile, "|
|00003460| 77 22 29 29 20 3d 3d 20 | 4e 55 4c 4c 20 29 0a 09 |w")) == |NULL )..|
|00003470| 58 09 7b 0a 09 58 09 66 | 70 72 69 6e 74 66 28 73 |X.{..X.f|printf(s|
|00003480| 74 64 65 72 72 2c 22 66 | 6f 70 65 6e 20 66 6f 72 |tderr,"f|open for|
|00003490| 20 77 72 69 74 65 20 66 | 61 69 6c 65 64 2e 5c 6e | write f|ailed.\n|
|000034a0| 22 29 3b 0a 09 58 09 63 | 6c 65 61 6e 75 70 28 32 |");..X.c|leanup(2|
|000034b0| 29 3b 0a 09 58 09 7d 0a | 09 58 20 20 20 20 7d 0a |);..X.}.|.X }.|
|000034c0| 09 58 65 6c 73 65 0a 09 | 58 20 20 20 20 7b 0a 09 |.Xelse..|X {..|
|000034d0| 58 20 20 20 20 72 65 77 | 69 6e 64 28 66 64 29 3b |X rew|ind(fd);|
|000034e0| 0a 09 58 20 20 20 20 7d | 0a 09 58 66 6f 72 20 28 |..X }|..Xfor (|
|000034f0| 74 65 78 74 69 6e 78 3d | 30 3b 20 74 65 78 74 69 |textinx=|0; texti|
|00003500| 6e 78 20 3c 20 63 6f 75 | 6e 74 3b 20 2b 2b 74 65 |nx < cou|nt; ++te|
|00003510| 78 74 69 6e 78 29 0a 09 | 58 20 20 20 20 7b 0a 09 |xtinx)..|X {..|
|00003520| 58 20 20 20 20 63 68 20 | 2b 3d 20 73 74 72 6c 65 |X ch |+= strle|
|00003530| 6e 28 74 65 78 74 5b 74 | 65 78 74 69 6e 78 5d 29 |n(text[t|extinx])|
|00003540| 3b 0a 09 58 20 20 20 20 | 66 70 75 74 73 28 74 65 |;..X |fputs(te|
|00003550| 78 74 5b 74 65 78 74 69 | 6e 78 5d 2c 20 66 64 29 |xt[texti|nx], fd)|
|00003560| 3b 0a 09 58 20 20 20 20 | 7d 0a 09 58 69 66 20 28 |;..X |}..Xif (|
|00003570| 63 68 20 3e 20 30 29 0a | 09 58 20 20 20 20 7b 0a |ch > 0).|.X {.|
|00003580| 09 58 20 20 20 20 70 72 | 69 6e 74 66 28 22 5c 6e |.X pr|intf("\n|
|00003590| 25 73 3a 20 77 72 69 74 | 74 65 6e 2c 20 25 64 20 |%s: writ|ten, %d |
|000035a0| 6c 69 6e 65 73 2c 20 25 | 64 20 63 68 61 72 61 63 |lines, %|d charac|
|000035b0| 74 65 72 73 5c 6e 22 2c | 20 65 64 69 74 66 69 6c |ters\n",| editfil|
|000035c0| 65 2c 20 63 6f 75 6e 74 | 2c 20 63 68 29 3b 0a 09 |e, count|, ch);..|
|000035d0| 58 20 20 20 20 7d 0a 09 | 58 65 6c 73 65 0a 09 58 |X }..|Xelse..X|
|000035e0| 20 20 20 20 7b 0a 09 58 | 20 20 20 20 69 66 20 28 | {..X| if (|
|000035f0| 20 75 6e 6c 69 6e 6b 28 | 65 64 69 74 66 69 6c 65 | unlink(|editfile|
|00003600| 29 20 3d 3d 20 2d 31 20 | 29 0a 09 58 09 7b 0a 09 |) == -1 |)..X.{..|
|00003610| 58 09 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 |X.fprint|f(stderr|
|00003620| 2c 22 75 6e 6c 69 6e 6b | 20 66 61 69 6c 65 64 3a |,"unlink| failed:|
|00003630| 20 65 72 72 6f 72 3d 25 | 64 22 2c 20 65 72 72 6e | error=%|d", errn|
|00003640| 6f 29 3b 0a 09 58 09 7d | 0a 09 58 20 20 20 20 65 |o);..X.}|..X e|
|00003650| 6c 73 65 0a 09 58 09 7b | 0a 09 58 09 70 75 74 73 |lse..X.{|..X.puts|
|00003660| 28 22 45 6d 70 74 79 20 | 66 69 6c 65 20 2d 20 6e |("Empty |file - n|
|00003670| 6f 20 61 63 74 69 6f 6e | 22 29 3b 0a 09 58 09 7d |o action|");..X.}|
|00003680| 0a 09 58 20 20 20 20 7d | 0a 09 58 63 6c 65 61 6e |..X }|..Xclean|
|00003690| 75 70 28 30 29 3b 0a 09 | 58 7d 0a 53 48 41 52 5f |up(0);..|X}.SHAR_|
|000036a0| 45 4f 46 0a 69 66 20 74 | 65 73 74 20 31 36 39 31 |EOF.if t|est 1691|
|000036b0| 20 2d 6e 65 20 22 60 77 | 63 20 2d 63 20 3c 20 27 | -ne "`w|c -c < '|
|000036c0| 73 61 76 65 66 69 6c 65 | 2e 63 27 60 22 0a 74 68 |savefile|.c'`".th|
|000036d0| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 22 |en..echo| shar: "|
|000036e0| 65 72 72 6f 72 20 74 72 | 61 6e 73 6d 69 74 74 69 |error tr|ansmitti|
|000036f0| 6e 67 20 27 73 61 76 65 | 66 69 6c 65 2e 63 27 22 |ng 'save|file.c'"|
|00003700| 20 27 28 73 68 6f 75 6c | 64 20 68 61 76 65 20 62 | '(shoul|d have b|
|00003710| 65 65 6e 20 31 36 39 31 | 20 63 68 61 72 61 63 74 |een 1691| charact|
|00003720| 65 72 73 29 27 0a 66 69 | 0a 66 69 0a 65 78 69 74 |ers)'.fi|.fi.exit|
|00003730| 20 30 0a 23 09 45 6e 64 | 20 6f 66 20 73 68 65 6c | 0.#.End| of shel|
|00003740| 6c 20 61 72 63 68 69 76 | 65 0a 2d 2d 20 0a 2d 2d |l archiv|e.-- .--|
|00003750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0a 4a 61 79 20 |--------|---.Jay |
|00003790| 40 20 53 41 43 2d 55 4e | 49 58 2c 20 53 61 63 72 |@ SAC-UN|IX, Sacr|
|000037a0| 61 6d 65 6e 74 6f 2c 20 | 43 61 2e 20 20 20 55 55 |amento, |Ca. UU|
|000037b0| 43 50 3d 2e 2e 2e 70 61 | 63 62 65 6c 6c 21 73 61 |CP=...pa|cbell!sa|
|000037c0| 63 74 6f 68 30 21 6a 61 | 6b 0a 49 66 20 73 6f 6d |ctoh0!ja|k.If som|
|000037d0| 65 74 68 69 6e 67 20 69 | 73 20 77 6f 72 74 68 20 |ething i|s worth |
|000037e0| 64 6f 69 6e 67 2c 20 69 | 74 73 20 77 6f 72 74 68 |doing, i|ts worth|
|000037f0| 20 64 6f 69 6e 67 20 63 | 6f 72 72 65 63 74 6c 79 | doing c|orrectly|
|00003800| 2e 0a | |.. | |
+--------+-------------------------+-------------------------+--------+--------+