home *** CD-ROM | disk | FTP | other *** search
view JSON data
|
view as text
|
open on a Mac
|
open on a PC
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: hold2
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news text
| default
| |
99%
| file
| C source, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| dexmagic
| PrintFox/Pagefox WEAK
| 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/news
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 50 61 74 68 3a 20 78 61 | 6e 74 68 21 6d 63 6e 63 |Path: xa|nth!mcnc|
|00000010| 21 72 75 74 67 65 72 73 | 21 75 63 73 64 21 61 6d |!rutgers|!ucsd!am|
|00000020| 65 73 21 6e 65 63 6e 74 | 63 21 6e 63 6f 61 73 74 |es!necnt|c!ncoast|
|00000030| 21 61 6c 6c 62 65 72 79 | 0a 46 72 6f 6d 3a 20 62 |!allbery|.From: b|
|00000040| 69 6c 6c 40 71 73 74 31 | 2e 74 63 63 2e 63 6f 6d |ill@qst1|.tcc.com|
|00000050| 20 28 42 69 6c 6c 20 43 | 6f 78 29 0a 4e 65 77 73 | (Bill C|ox).News|
|00000060| 67 72 6f 75 70 73 3a 20 | 63 6f 6d 70 2e 73 6f 75 |groups: |comp.sou|
|00000070| 72 63 65 73 2e 6d 69 73 | 63 0a 53 75 62 6a 65 63 |rces.mis|c.Subjec|
|00000080| 74 3a 20 76 30 33 69 30 | 37 37 3a 20 68 6f 6c 64 |t: v03i0|77: hold|
|00000090| 20 2d 2d 20 74 65 72 6d | 69 6e 61 74 65 20 61 20 | -- term|inate a |
|000000a0| 70 69 70 65 20 77 69 74 | 68 20 69 74 73 20 69 6e |pipe wit|h its in|
|000000b0| 70 75 74 0a 4d 65 73 73 | 61 67 65 2d 49 44 3a 20 |put.Mess|age-ID: |
|000000c0| 3c 38 38 30 37 30 35 30 | 30 33 34 2e 41 41 32 33 |<8807050|034.AA23|
|000000d0| 37 30 32 40 63 63 69 63 | 70 67 3e 0a 44 61 74 65 |702@ccic|pg>.Date|
|000000e0| 3a 20 33 20 4a 75 6c 20 | 38 38 20 32 31 3a 30 34 |: 3 Jul |88 21:04|
|000000f0| 3a 31 30 20 47 4d 54 0a | 53 65 6e 64 65 72 3a 20 |:10 GMT.|Sender: |
|00000100| 61 6c 6c 62 65 72 79 40 | 6e 63 6f 61 73 74 2e 55 |allbery@|ncoast.U|
|00000110| 55 43 50 0a 52 65 70 6c | 79 2d 54 6f 3a 20 62 69 |UCP.Repl|y-To: bi|
|00000120| 6c 6c 40 71 73 74 31 2e | 74 63 63 2e 63 6f 6d 20 |ll@qst1.|tcc.com |
|00000130| 28 42 69 6c 6c 20 43 6f | 78 29 0a 4c 69 6e 65 73 |(Bill Co|x).Lines|
|00000140| 3a 20 32 30 39 0a 41 70 | 70 72 6f 76 65 64 3a 20 |: 209.Ap|proved: |
|00000150| 61 6c 6c 62 65 72 79 40 | 6e 63 6f 61 73 74 2e 55 |allbery@|ncoast.U|
|00000160| 55 43 50 0a 0a 50 6f 73 | 74 69 6e 67 2d 6e 75 6d |UCP..Pos|ting-num|
|00000170| 62 65 72 3a 20 56 6f 6c | 75 6d 65 20 33 2c 20 49 |ber: Vol|ume 3, I|
|00000180| 73 73 75 65 20 37 37 0a | 53 75 62 6d 69 74 74 65 |ssue 77.|Submitte|
|00000190| 64 2d 62 79 3a 20 22 42 | 69 6c 6c 20 43 6f 78 22 |d-by: "B|ill Cox"|
|000001a0| 20 3c 62 69 6c 6c 40 71 | 73 74 31 2e 74 63 63 2e | <bill@q|st1.tcc.|
|000001b0| 63 6f 6d 3e 0a 41 72 63 | 68 69 76 65 2d 6e 61 6d |com>.Arc|hive-nam|
|000001c0| 65 3a 20 68 6f 6c 64 32 | 0a 0a 5b 49 73 20 6d 79 |e: hold2|..[Is my|
|000001d0| 20 6d 65 6d 6f 72 79 20 | 67 6f 69 6e 67 3f 20 20 | memory |going? |
|000001e0| 49 20 64 6f 6e 27 74 20 | 72 65 6d 65 6d 62 65 72 |I don't |remember|
|000001f0| 20 73 65 65 69 6e 67 20 | 61 20 66 69 72 73 74 20 | seeing |a first |
|00000200| 76 65 72 73 69 6f 6e 20 | 6f 66 20 74 68 69 73 2e |version |of this.|
|00000210| 20 20 2b 2b 62 73 61 5d | 0a 0a 48 65 72 65 27 73 | ++bsa]|..Here's|
|00000220| 20 61 6e 20 75 6e 70 64 | 61 74 65 64 20 76 65 72 | an unpd|ated ver|
|00000230| 73 69 6f 6e 20 6f 66 20 | 68 6f 6c 64 2e 63 2c 20 |sion of |hold.c, |
|00000240| 74 68 61 74 20 6c 65 74 | 73 20 79 6f 75 20 74 65 |that let|s you te|
|00000250| 72 6d 69 6e 61 74 65 20 | 61 20 70 69 70 65 20 77 |rminate |a pipe w|
|00000260| 69 74 68 20 69 74 73 0a | 69 6e 70 75 74 20 66 69 |ith its.|input fi|
|00000270| 6c 65 2c 20 65 66 66 65 | 63 74 69 76 65 6c 79 20 |le, effe|ctively |
|00000280| 70 75 74 74 69 6e 67 20 | 74 68 65 20 6f 75 74 70 |putting |the outp|
|00000290| 75 74 20 62 61 63 6b 20 | 69 6e 74 6f 20 74 68 65 |ut back |into the|
|000002a0| 20 69 6e 70 75 74 20 66 | 69 6c 65 2c 20 61 73 20 | input f|ile, as |
|000002b0| 69 6e 0a 09 74 61 69 6c | 20 53 59 53 4c 4f 47 20 |in..tail| SYSLOG |
|000002c0| 7c 20 68 6f 6c 64 20 53 | 59 53 4c 4f 47 0a 54 68 || hold S|YSLOG.Th|
|000002d0| 69 73 20 76 65 72 73 69 | 6f 6e 20 63 6f 6e 74 61 |is versi|on conta|
|000002e0| 69 6e 73 20 73 6f 6d 65 | 20 66 69 78 65 73 20 6e |ins some| fixes n|
|000002f0| 6f 74 69 63 65 64 20 62 | 79 20 72 65 61 64 65 72 |oticed b|y reader|
|00000300| 73 20 61 74 20 6e 63 6f | 61 73 74 2e 0a 0a 54 6f |s at nco|ast...To|
|00000310| 20 62 75 69 6c 64 20 69 | 74 2c 20 73 69 6d 70 6c | build i|t, simpl|
|00000320| 79 0a 09 63 63 20 2d 4f | 20 2d 6f 20 68 6f 6c 64 |y..cc -O| -o hold|
|00000330| 20 68 6f 6c 64 2e 63 0a | 49 74 27 73 20 62 65 65 | hold.c.|It's bee|
|00000340| 6e 20 63 6f 6d 70 69 6c | 65 64 20 61 6e 64 20 72 |n compil|ed and r|
|00000350| 75 6e 20 75 6e 64 65 72 | 20 56 37 2c 20 53 59 53 |un under| V7, SYS|
|00000360| 56 2c 20 58 45 4e 49 58 | 20 61 6e 64 20 4d 53 2d |V, XENIX| and MS-|
|00000370| 44 4f 53 20 69 6e 20 69 | 74 73 20 70 72 65 73 65 |DOS in i|ts prese|
|00000380| 6e 74 20 0a 66 6f 72 6d | 2e 0a 0a 51 75 65 73 74 |nt .form|...Quest|
|00000390| 69 6f 6e 73 2f 62 75 67 | 73 2f 66 6c 61 6d 65 73 |ions/bug|s/flames|
|000003a0| 20 74 6f 20 42 69 6c 6c | 20 43 6f 78 2c 20 28 37 | to Bill| Cox, (7|
|000003b0| 31 34 29 36 33 31 2d 34 | 34 35 32 20 28 76 6f 69 |14)631-4|452 (voi|
|000003c0| 63 65 29 0a 09 09 09 6f | 72 20 75 75 6e 65 74 21 |ce)....o|r uunet!|
|000003d0| 63 63 69 63 70 67 21 71 | 73 74 31 21 62 69 6c 6c |ccicpg!q|st1!bill|
|000003e0| 0a 0a 52 41 54 49 4f 4e | 41 4c 45 3a 20 57 68 79 |..RATION|ALE: Why|
|000003f0| 20 75 73 65 20 68 6f 6c | 64 3f 0a 0a 4c 65 74 27 | use hol|d?..Let'|
|00000400| 73 20 73 61 79 20 79 6f | 75 20 68 61 76 65 20 74 |s say yo|u have t|
|00000410| 68 65 20 66 69 6c 65 20 | 74 6d 70 2c 20 77 68 69 |he file |tmp, whi|
|00000420| 63 68 20 63 6f 6e 74 61 | 69 6e 73 3a 0a 41 41 23 |ch conta|ins:.AA#|
|00000430| 41 41 41 41 0a 42 42 42 | 42 23 42 42 0a 0a 41 6e |AAAA.BBB|B#BB..An|
|00000440| 64 20 79 6f 75 20 77 69 | 73 68 20 74 6f 20 63 68 |d you wi|sh to ch|
|00000450| 61 6e 67 65 20 74 68 65 | 20 27 23 27 73 20 74 6f |ange the| '#'s to|
|00000460| 20 27 7e 27 73 2e 20 49 | 66 20 79 6f 75 0a 73 69 | '~'s. I|f you.si|
|00000470| 6d 70 6c 79 20 73 61 79 | 20 73 65 64 20 27 73 2f |mply say| sed 's/|
|00000480| 23 2f 7e 2f 27 20 74 6d | 70 2c 20 79 6f 75 20 73 |#/~/' tm|p, you s|
|00000490| 65 65 0a 41 41 7e 41 41 | 41 41 0a 42 42 42 42 7e |ee.AA~AA|AA.BBBB~|
|000004a0| 42 42 0a 6a 75 73 74 20 | 61 73 20 79 6f 75 20 77 |BB.just |as you w|
|000004b0| 6f 75 6c 64 20 65 78 70 | 65 63 74 2e 0a 0a 4e 6f |ould exp|ect...No|
|000004c0| 77 2c 20 65 6e 74 65 72 | 20 73 65 64 20 27 73 2f |w, enter| sed 's/|
|000004d0| 23 2f 7e 2f 27 20 74 6d | 70 20 3e 20 74 6d 70 20 |#/~/' tm|p > tmp |
|000004e0| 28 69 6e 20 65 66 66 65 | 63 74 20 61 73 6b 69 6e |(in effe|ct askin|
|000004f0| 67 20 74 68 65 20 73 68 | 65 6c 6c 20 74 6f 0a 6f |g the sh|ell to.o|
|00000500| 76 65 72 2d 77 72 69 74 | 65 20 74 68 65 20 69 6e |ver-writ|e the in|
|00000510| 70 75 74 20 66 69 6c 65 | 20 77 69 74 68 20 74 68 |put file| with th|
|00000520| 65 20 6f 75 74 70 75 74 | 29 20 74 68 65 6e 20 63 |e output|) then c|
|00000530| 61 74 20 74 6d 70 2e 20 | 20 53 75 72 70 72 69 73 |at tmp. | Surpris|
|00000540| 65 2c 0a 74 6d 70 20 69 | 73 20 61 20 6e 75 6c 6c |e,.tmp i|s a null|
|00000550| 20 66 69 6c 65 21 0a 0a | 4e 6f 77 2c 20 65 6e 74 | file!..|Now, ent|
|00000560| 65 72 20 73 65 64 20 27 | 73 2f 23 2f 7e 2f 27 20 |er sed '|s/#/~/' |
|00000570| 74 6d 70 20 7c 20 68 6f | 6c 64 20 74 6d 70 3b 20 |tmp | ho|ld tmp; |
|00000580| 63 61 74 20 74 6d 70 0a | 41 41 7e 41 41 41 41 0a |cat tmp.|AA~AAAA.|
|00000590| 42 42 42 42 7e 42 42 0a | 4a 75 73 74 20 61 73 20 |BBBB~BB.|Just as |
|000005a0| 79 6f 75 20 65 78 70 65 | 63 74 2e 20 20 42 65 63 |you expe|ct. Bec|
|000005b0| 61 75 73 65 20 68 6f 6c | 64 20 63 72 65 61 74 65 |ause hol|d create|
|000005c0| 73 20 61 20 74 65 6d 70 | 6f 72 61 72 79 20 66 69 |s a temp|orary fi|
|000005d0| 6c 65 20 46 4f 52 20 59 | 4f 55 2c 0a 77 68 69 63 |le FOR Y|OU,.whic|
|000005e0| 68 20 64 6f 65 73 6e 27 | 74 20 61 70 70 65 61 72 |h doesn'|t appear|
|000005f0| 20 61 73 20 61 6e 20 6f | 75 74 70 75 74 20 6f 6e | as an o|utput on|
|00000600| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e | the com|mand lin|
|00000610| 65 2e 0a 0a 23 21 20 2f | 62 69 6e 2f 73 68 0a 23 |e...#! /|bin/sh.#|
|00000620| 20 54 68 69 73 20 69 73 | 20 61 20 73 68 65 6c 6c | This is| a shell|
|00000630| 20 61 72 63 68 69 76 65 | 2e 20 20 52 65 6d 6f 76 | archive|. Remov|
|00000640| 65 20 61 6e 79 74 68 69 | 6e 67 20 62 65 66 6f 72 |e anythi|ng befor|
|00000650| 65 20 74 68 69 73 20 6c | 69 6e 65 2c 20 74 68 65 |e this l|ine, the|
|00000660| 6e 20 75 6e 70 61 63 6b | 0a 23 20 69 74 20 62 79 |n unpack|.# it by|
|00000670| 20 73 61 76 69 6e 67 20 | 69 74 20 69 6e 74 6f 20 | saving |it into |
|00000680| 61 20 66 69 6c 65 20 61 | 6e 64 20 74 79 70 69 6e |a file a|nd typin|
|00000690| 67 20 22 73 68 20 66 69 | 6c 65 22 2e 20 20 54 6f |g "sh fi|le". To|
|000006a0| 20 6f 76 65 72 77 72 69 | 74 65 20 65 78 69 73 74 | overwri|te exist|
|000006b0| 69 6e 67 0a 23 20 66 69 | 6c 65 73 2c 20 74 79 70 |ing.# fi|les, typ|
|000006c0| 65 20 22 73 68 20 66 69 | 6c 65 20 2d 63 22 2e 20 |e "sh fi|le -c". |
|000006d0| 20 59 6f 75 20 63 61 6e | 20 61 6c 73 6f 20 66 65 | You can| also fe|
|000006e0| 65 64 20 74 68 69 73 20 | 61 73 20 73 74 61 6e 64 |ed this |as stand|
|000006f0| 61 72 64 20 69 6e 70 75 | 74 20 76 69 61 0a 23 20 |ard inpu|t via.# |
|00000700| 75 6e 73 68 61 72 2c 20 | 6f 72 20 62 79 20 74 79 |unshar, |or by ty|
|00000710| 70 69 6e 67 20 22 73 68 | 20 3c 66 69 6c 65 22 2c |ping "sh| <file",|
|00000720| 20 65 2e 67 2e 2e 20 20 | 49 66 20 74 68 69 73 20 | e.g.. |If this |
|00000730| 61 72 63 68 69 76 65 20 | 69 73 20 63 6f 6d 70 6c |archive |is compl|
|00000740| 65 74 65 2c 20 79 6f 75 | 0a 23 20 77 69 6c 6c 20 |ete, you|.# will |
|00000750| 73 65 65 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |see the |followin|
|00000760| 67 20 6d 65 73 73 61 67 | 65 20 61 74 20 74 68 65 |g messag|e at the|
|00000770| 20 65 6e 64 3a 0a 23 09 | 09 22 45 6e 64 20 6f 66 | end:.#.|."End of|
|00000780| 20 73 68 65 6c 6c 20 61 | 72 63 68 69 76 65 2e 22 | shell a|rchive."|
|00000790| 0a 23 20 43 6f 6e 74 65 | 6e 74 73 3a 20 20 68 6f |.# Conte|nts: ho|
|000007a0| 6c 64 2e 63 0a 23 20 57 | 72 61 70 70 65 64 20 62 |ld.c.# W|rapped b|
|000007b0| 79 20 73 72 63 73 40 71 | 73 74 31 20 6f 6e 20 4d |y srcs@q|st1 on M|
|000007c0| 6f 6e 20 4a 75 6c 20 20 | 34 20 31 37 3a 32 31 3a |on Jul |4 17:21:|
|000007d0| 33 31 20 31 39 38 38 0a | 50 41 54 48 3d 2f 62 69 |31 1988.|PATH=/bi|
|000007e0| 6e 3a 2f 75 73 72 2f 62 | 69 6e 3a 2f 75 73 72 2f |n:/usr/b|in:/usr/|
|000007f0| 75 63 62 20 3b 20 65 78 | 70 6f 72 74 20 50 41 54 |ucb ; ex|port PAT|
|00000800| 48 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 68 6f |H.if tes|t -f 'ho|
|00000810| 6c 64 2e 63 27 20 2d 61 | 20 22 24 7b 31 7d 22 20 |ld.c' -a| "${1}" |
|00000820| 21 3d 20 22 2d 63 22 20 | 3b 20 74 68 65 6e 20 0a |!= "-c" |; then .|
|00000830| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 57 69 6c | echo s|har: Wil|
|00000840| 6c 20 6e 6f 74 20 63 6c | 6f 62 62 65 72 20 65 78 |l not cl|obber ex|
|00000850| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 5c 22 27 68 |isting f|ile \"'h|
|00000860| 6f 6c 64 2e 63 27 5c 22 | 0a 65 6c 73 65 0a 65 63 |old.c'\"|.else.ec|
|00000870| 68 6f 20 73 68 61 72 3a | 20 45 78 74 72 61 63 74 |ho shar:| Extract|
|00000880| 69 6e 67 20 5c 22 27 68 | 6f 6c 64 2e 63 27 5c 22 |ing \"'h|old.c'\"|
|00000890| 20 5c 28 32 39 36 30 20 | 63 68 61 72 61 63 74 65 | \(2960 |characte|
|000008a0| 72 73 5c 29 0a 73 65 64 | 20 22 73 2f 5e 58 2f 2f |rs\).sed| "s/^X//|
|000008b0| 22 20 3e 27 68 6f 6c 64 | 2e 63 27 20 3c 3c 27 45 |" >'hold|.c' <<'E|
|000008c0| 4e 44 5f 4f 46 5f 46 49 | 4c 45 27 0a 58 2f 2a 0a |ND_OF_FI|LE'.X/*.|
|000008d0| 58 20 2a 20 68 6f 6c 64 | 20 20 74 65 72 6d 69 6e |X * hold| termin|
|000008e0| 61 74 65 20 61 20 70 69 | 70 65 2c 20 67 61 74 68 |ate a pi|pe, gath|
|000008f0| 65 72 20 73 74 64 69 6e | 20 69 6e 74 6f 20 61 20 |er stdin| into a |
|00000900| 74 65 6d 70 6f 72 61 72 | 79 2c 0a 58 20 2a 09 20 |temporar|y,.X *. |
|00000910| 74 68 65 6e 20 72 65 6e | 61 6d 65 20 74 68 65 20 |then ren|ame the |
|00000920| 74 65 6d 70 6f 72 61 72 | 79 20 74 6f 20 74 68 65 |temporar|y to the|
|00000930| 20 61 72 67 75 6d 65 6e | 74 27 73 20 6e 61 6d 65 | argumen|t's name|
|00000940| 2e 0a 58 20 2a 0a 58 20 | 2a 20 45 78 61 6d 70 6c |..X *.X |* Exampl|
|00000950| 65 3a 20 2e 2e 2e 20 7c | 20 68 6f 6c 64 20 66 69 |e: ... || hold fi|
|00000960| 6c 65 6e 61 6d 65 0a 58 | 20 2a 09 6f 72 3a 20 2e |lename.X| *.or: .|
|00000970| 2e 2e 20 7c 20 68 6f 6c | 64 20 3e 20 66 69 6c 65 |.. | hol|d > file|
|00000980| 6e 61 6d 65 0a 58 20 2a | 0a 58 20 2a 2f 0a 58 0a |name.X *|.X */.X.|
|00000990| 58 23 69 66 64 65 66 20 | 4d 53 44 4f 53 0a 58 23 |X#ifdef |MSDOS.X#|
|000009a0| 69 6e 63 6c 75 64 65 20 | 3c 69 6f 2e 68 3e 0a 58 |include |<io.h>.X|
|000009b0| 23 65 6e 64 69 66 0a 58 | 0a 58 23 69 6e 63 6c 75 |#endif.X|.X#inclu|
|000009c0| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0a 58 23 69 |de <stdi|o.h>.X#i|
|000009d0| 6e 63 6c 75 64 65 20 3c | 65 72 72 6e 6f 2e 68 3e |nclude <|errno.h>|
|000009e0| 0a 58 23 69 66 6e 64 65 | 66 09 4d 53 44 4f 53 0a |.X#ifnde|f.MSDOS.|
|000009f0| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 69 67 6e 61 |X#includ|e <signa|
|00000a00| 6c 2e 68 3e 0a 58 23 65 | 6e 64 69 66 0a 58 46 49 |l.h>.X#e|ndif.XFI|
|00000a10| 4c 45 20 2a 66 70 20 3d | 20 4e 55 4c 4c 3b 0a 58 |LE *fp =| NULL;.X|
|00000a20| 69 6e 74 20 73 74 64 6f | 75 74 66 3b 0a 58 0a 58 |int stdo|utf;.X.X|
|00000a30| 23 69 66 64 65 66 20 4d | 53 44 4f 53 0a 58 63 68 |#ifdef M|SDOS.Xch|
|00000a40| 61 72 20 66 6e 61 6d 65 | 5b 31 31 5d 20 3d 20 22 |ar fname|[11] = "|
|00000a50| 68 6f 6c 64 58 58 58 58 | 58 58 22 3b 0a 58 23 65 |holdXXXX|XX";.X#e|
|00000a60| 6e 64 69 66 0a 58 23 69 | 66 64 65 66 20 4d 5f 58 |ndif.X#i|fdef M_X|
|00000a70| 45 4e 49 58 0a 58 63 68 | 61 72 20 66 6e 61 6d 65 |ENIX.Xch|ar fname|
|00000a80| 5b 31 31 5d 20 3d 20 22 | 68 6f 6c 64 58 58 58 58 |[11] = "|holdXXXX|
|00000a90| 58 58 22 3b 0a 58 23 65 | 6c 73 65 0a 58 63 68 61 |XX";.X#e|lse.Xcha|
|00000aa0| 72 20 66 6e 61 6d 65 5b | 32 30 5d 20 3d 20 22 2f |r fname[|20] = "/|
|00000ab0| 75 73 72 2f 74 6d 70 2f | 68 6f 6c 64 58 58 58 58 |usr/tmp/|holdXXXX|
|00000ac0| 58 58 22 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |XX";.X#e|ndif.X.X|
|00000ad0| 0a 58 65 78 74 65 72 6e | 20 69 6e 74 20 65 72 72 |.Xextern| int err|
|00000ae0| 6e 6f 3b 09 2f 2a 20 44 | 65 63 6c 61 72 65 20 67 |no;./* D|eclare g|
|00000af0| 6c 6f 62 61 6c 20 65 72 | 72 6f 72 20 76 61 6c 75 |lobal er|ror valu|
|00000b00| 65 2e 20 2a 2f 0a 58 0a | 58 23 69 66 6e 64 65 66 |e. */.X.|X#ifndef|
|00000b10| 20 4d 53 44 4f 53 0a 58 | 2f 2a 20 54 68 69 73 20 | MSDOS.X|/* This |
|00000b20| 72 6f 75 74 69 6e 65 20 | 67 61 69 6e 73 20 63 6f |routine |gains co|
|00000b30| 6e 74 72 6f 6c 20 77 68 | 65 6e 20 61 20 73 69 67 |ntrol wh|en a sig|
|00000b40| 6e 61 6c 20 69 73 20 74 | 72 61 70 70 65 64 2e 20 |nal is t|rapped. |
|00000b50| 20 49 74 20 75 6e 6c 69 | 6e 6b 73 20 74 68 65 0a | It unli|nks the.|
|00000b60| 58 20 2a 20 74 65 6d 70 | 6f 72 61 72 79 20 66 69 |X * temp|orary fi|
|00000b70| 6c 65 2e 20 20 54 68 69 | 73 20 69 73 20 6e 65 63 |le. Thi|s is nec|
|00000b80| 65 73 73 61 72 79 20 77 | 68 65 6e 20 61 20 70 69 |essary w|hen a pi|
|00000b90| 70 65 20 67 65 74 73 20 | 62 72 6f 6b 65 6e 2e 0a |pe gets |broken..|
|00000ba0| 58 20 2a 2f 0a 58 69 6e | 74 09 54 72 61 70 28 29 |X */.Xin|t.Trap()|
|00000bb0| 0a 58 7b 0a 58 75 6e 6c | 69 6e 6b 28 66 6e 61 6d |.X{.Xunl|ink(fnam|
|00000bc0| 65 29 3b 09 2f 2a 20 49 | 67 6e 6f 72 65 20 65 72 |e);./* I|gnore er|
|00000bd0| 72 6f 72 73 20 61 74 20 | 74 68 69 73 20 70 6f 69 |rors at |this poi|
|00000be0| 6e 74 2c 20 77 65 20 61 | 72 65 20 64 65 61 64 20 |nt, we a|re dead |
|00000bf0| 61 6e 79 77 61 79 2e 20 | 2a 2f 0a 58 65 78 69 74 |anyway. |*/.Xexit|
|00000c00| 28 31 29 3b 0a 58 7d 0a | 58 23 65 6e 64 69 66 0a |(1);.X}.|X#endif.|
|00000c10| 58 0a 58 69 6e 74 20 6d | 61 69 6e 28 61 72 67 63 |X.Xint m|ain(argc|
|00000c20| 2c 20 61 72 67 76 29 0a | 58 20 20 20 20 69 6e 74 |, argv).|X int|
|00000c30| 20 61 72 67 63 3b 0a 58 | 20 20 20 20 63 68 61 72 | argc;.X| char|
|00000c40| 20 2a 61 72 67 76 5b 5d | 3b 0a 58 7b 0a 58 20 20 | *argv[]|;.X{.X |
|00000c50| 20 20 69 6e 74 20 63 3b | 0a 58 0a 58 20 20 20 20 | int c;|.X.X |
|00000c60| 73 74 64 6f 75 74 66 20 | 3d 20 30 3b 0a 58 20 20 |stdoutf |= 0;.X |
|00000c70| 20 20 69 66 20 28 61 72 | 67 63 20 3e 20 31 29 0a | if (ar|gc > 1).|
|00000c80| 58 20 20 20 20 20 20 20 | 20 73 74 64 6f 75 74 66 |X | stdoutf|
|00000c90| 20 3d 20 31 3b 0a 58 20 | 20 20 20 20 20 20 20 0a | = 1;.X | .|
|00000ca0| 58 20 20 20 20 69 66 20 | 28 61 72 67 63 20 3e 20 |X if |(argc > |
|00000cb0| 32 29 20 7b 0a 58 09 66 | 70 72 69 6e 74 66 28 73 |2) {.X.f|printf(s|
|00000cc0| 74 64 65 72 72 2c 20 22 | 55 73 61 67 65 3a 20 2e |tderr, "|Usage: .|
|00000cd0| 2e 2e 20 7c 20 68 6f 6c | 64 20 66 69 6c 65 6e 61 |.. | hol|d filena|
|00000ce0| 6d 65 5c 6e 22 29 3b 0a | 58 09 66 70 72 69 6e 74 |me\n");.|X.fprint|
|00000cf0| 66 28 73 74 64 65 72 72 | 2c 20 22 20 6f 72 20 20 |f(stderr|, " or |
|00000d00| 20 20 2e 2e 2e 20 7c 20 | 68 6f 6c 64 20 3e 20 66 | ... | |hold > f|
|00000d10| 69 6c 65 6e 61 6d 65 5c | 6e 22 29 3b 0a 58 09 72 |ilename\|n");.X.r|
|00000d20| 65 74 75 72 6e 28 31 29 | 3b 0a 58 09 7d 0a 58 23 |eturn(1)|;.X.}.X#|
|00000d30| 69 66 6e 64 65 66 20 4d | 53 44 4f 53 0a 58 20 20 |ifndef M|SDOS.X |
|00000d40| 20 20 2f 2a 20 54 72 61 | 70 20 73 69 67 6e 61 6c | /* Tra|p signal|
|00000d50| 73 20 74 6f 20 72 65 6d | 6f 76 65 20 66 69 6c 65 |s to rem|ove file|
|00000d60| 20 6f 6e 2e 20 2a 2f 0a | 58 20 20 20 20 73 69 67 | on. */.|X sig|
|00000d70| 6e 61 6c 28 53 49 47 48 | 55 50 2c 20 54 72 61 70 |nal(SIGH|UP, Trap|
|00000d80| 29 3b 0a 58 20 20 20 20 | 73 69 67 6e 61 6c 28 53 |);.X |signal(S|
|00000d90| 49 47 49 4e 54 2c 20 54 | 72 61 70 29 3b 0a 58 20 |IGINT, T|rap);.X |
|00000da0| 20 20 20 73 69 67 6e 61 | 6c 28 53 49 47 51 55 49 | signa|l(SIGQUI|
|00000db0| 54 2c 20 54 72 61 70 29 | 3b 0a 58 20 20 20 20 73 |T, Trap)|;.X s|
|00000dc0| 69 67 6e 61 6c 28 53 49 | 47 54 45 52 4d 2c 20 54 |ignal(SI|GTERM, T|
|00000dd0| 72 61 70 29 3b 0a 58 23 | 65 6e 64 69 66 0a 58 20 |rap);.X#|endif.X |
|00000de0| 20 20 20 69 66 20 28 28 | 66 70 20 3d 20 66 6f 70 | if ((|fp = fop|
|00000df0| 65 6e 28 6d 6b 74 65 6d | 70 28 66 6e 61 6d 65 29 |en(mktem|p(fname)|
|00000e00| 2c 20 22 77 22 29 29 20 | 3d 3d 20 4e 55 4c 4c 29 |, "w")) |== NULL)|
|00000e10| 20 0a 58 09 65 72 72 63 | 6c 65 61 6e 28 32 2c 20 | .X.errc|lean(2, |
|00000e20| 22 6f 70 65 6e 20 25 73 | 22 2c 20 66 6e 61 6d 65 |"open %s|", fname|
|00000e30| 2c 20 30 29 3b 0a 58 20 | 20 20 20 0a 58 20 20 20 |, 0);.X | .X |
|00000e40| 20 77 68 69 6c 65 20 28 | 28 63 20 3d 20 67 65 74 | while (|(c = get|
|00000e50| 63 68 61 72 28 29 29 20 | 21 3d 20 45 4f 46 29 0a |char()) |!= EOF).|
|00000e60| 58 09 66 70 75 74 63 28 | 63 2c 20 66 70 29 3b 0a |X.fputc(|c, fp);.|
|00000e70| 58 0a 58 20 20 20 20 69 | 66 20 28 66 65 72 72 6f |X.X i|f (ferro|
|00000e80| 72 28 73 74 64 69 6e 29 | 20 7c 7c 20 66 65 72 72 |r(stdin)| || ferr|
|00000e90| 6f 72 28 66 70 29 29 0a | 58 20 20 20 20 20 09 65 |or(fp)).|X .e|
|00000ea0| 72 72 63 6c 65 61 6e 28 | 33 2c 20 22 63 6f 70 79 |rrclean(|3, "copy|
|00000eb0| 20 73 74 64 69 6e 20 74 | 6f 20 25 73 22 2c 20 30 | stdin t|o %s", 0|
|00000ec0| 2c 20 66 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 09 |, fname)|;.X .|
|00000ed0| 0a 58 20 20 20 20 69 66 | 20 28 66 63 6c 6f 73 65 |.X if| (fclose|
|00000ee0| 28 66 70 29 20 21 3d 20 | 30 29 20 0a 58 09 65 72 |(fp) != |0) .X.er|
|00000ef0| 72 63 6c 65 61 6e 28 34 | 2c 20 22 63 6c 6f 73 65 |rclean(4|, "close|
|00000f00| 20 25 73 22 2c 20 66 6e | 61 6d 65 2c 20 30 29 3b | %s", fn|ame, 0);|
|00000f10| 0a 58 0a 58 20 20 20 20 | 69 66 20 28 73 74 64 6f |.X.X |if (stdo|
|00000f20| 75 74 66 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |utf) {.X| |
|00000f30| 69 66 20 28 72 65 6e 61 | 6d 65 28 66 6e 61 6d 65 |if (rena|me(fname|
|00000f40| 2c 20 61 72 67 76 5b 31 | 5d 29 20 21 3d 20 30 29 |, argv[1|]) != 0)|
|00000f50| 09 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 65 |..X | e|
|00000f60| 72 72 63 6c 65 61 6e 28 | 35 2c 20 22 72 65 6e 61 |rrclean(|5, "rena|
|00000f70| 6d 65 20 25 73 20 74 6f | 20 25 73 22 2c 20 66 6e |me %s to| %s", fn|
|00000f80| 61 6d 65 2c 20 61 72 67 | 76 5b 31 5d 29 3b 0a 58 |ame, arg|v[1]);.X|
|00000f90| 09 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 |.}.X |else {.X|
|00000fa0| 09 69 66 20 28 28 66 70 | 20 3d 20 66 6f 70 65 6e |.if ((fp| = fopen|
|00000fb0| 28 66 6e 61 6d 65 2c 20 | 22 72 22 29 29 20 3d 3d |(fname, |"r")) ==|
|00000fc0| 20 4e 55 4c 4c 29 20 0a | 58 09 20 20 20 20 65 72 | NULL) .|X. er|
|00000fd0| 72 63 6c 65 61 6e 28 36 | 2c 20 22 6f 70 65 6e 20 |rclean(6|, "open |
|00000fe0| 25 73 22 2c 20 66 6e 61 | 6d 65 2c 20 30 29 3b 0a |%s", fna|me, 0);.|
|00000ff0| 58 20 20 20 20 0a 58 09 | 77 68 69 6c 65 20 28 28 |X .X.|while ((|
|00001000| 63 20 3d 20 67 65 74 63 | 28 66 70 29 29 20 21 3d |c = getc|(fp)) !=|
|00001010| 20 45 4f 46 29 0a 58 09 | 20 20 20 20 66 70 75 74 | EOF).X.| fput|
|00001020| 63 28 63 2c 20 73 74 64 | 6f 75 74 29 3b 0a 58 0a |c(c, std|out);.X.|
|00001030| 58 09 69 66 20 28 66 65 | 72 72 6f 72 28 73 74 64 |X.if (fe|rror(std|
|00001040| 6f 75 74 29 20 7c 7c 20 | 66 65 72 72 6f 72 28 66 |out) || |ferror(f|
|00001050| 70 29 29 0a 58 20 20 20 | 20 09 20 20 20 20 65 72 |p)).X | . er|
|00001060| 72 63 6c 65 61 6e 28 37 | 2c 20 22 63 6f 70 79 20 |rclean(7|, "copy |
|00001070| 25 73 20 74 6f 20 73 74 | 64 6f 75 74 22 2c 20 30 |%s to st|dout", 0|
|00001080| 2c 20 66 6e 61 6d 65 29 | 3b 0a 58 20 20 20 20 09 |, fname)|;.X .|
|00001090| 0a 58 09 69 66 20 28 66 | 63 6c 6f 73 65 28 66 70 |.X.if (f|close(fp|
|000010a0| 29 20 21 3d 20 30 29 20 | 0a 58 09 20 20 20 20 65 |) != 0) |.X. e|
|000010b0| 72 72 63 6c 65 61 6e 28 | 38 2c 20 22 63 6c 6f 73 |rrclean(|8, "clos|
|000010c0| 65 20 25 73 22 2c 20 66 | 6e 61 6d 65 2c 20 30 29 |e %s", f|name, 0)|
|000010d0| 3b 0a 58 0a 58 09 69 66 | 20 28 75 6e 6c 69 6e 6b |;.X.X.if| (unlink|
|000010e0| 28 66 6e 61 6d 65 29 20 | 21 3d 20 30 29 0a 58 09 |(fname) |!= 0).X.|
|000010f0| 20 20 20 20 65 72 72 63 | 6c 65 61 6e 28 39 2c 20 | errc|lean(9, |
|00001100| 22 72 65 6d 6f 76 65 20 | 25 73 22 2c 20 66 6e 61 |"remove |%s", fna|
|00001110| 6d 65 2c 20 30 29 3b 0a | 58 09 7d 0a 58 0a 58 20 |me, 0);.|X.}.X.X |
|00001120| 20 20 20 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 7d | retur|n(0);.X}|
|00001130| 0a 58 0a 58 0a 58 23 69 | 66 6e 64 65 66 20 4d 53 |.X.X.X#i|fndef MS|
|00001140| 44 4f 53 0a 58 69 6e 74 | 20 72 65 6e 61 6d 65 28 |DOS.Xint| rename(|
|00001150| 73 31 2c 20 73 32 29 09 | 09 2f 2a 20 73 32 20 3d |s1, s2).|./* s2 =|
|00001160| 20 6e 65 77 20 6e 61 6d | 65 2c 20 73 31 20 3d 20 | new nam|e, s1 = |
|00001170| 65 78 69 73 74 69 6e 67 | 20 6e 61 6d 65 20 2a 2f |existing| name */|
|00001180| 0a 58 20 20 20 20 63 68 | 61 72 20 2a 73 31 2c 20 |.X ch|ar *s1, |
|00001190| 2a 73 32 3b 0a 58 7b 0a | 58 20 20 20 20 2f 2a 20 |*s2;.X{.|X /* |
|000011a0| 61 73 73 75 72 65 20 74 | 68 61 74 20 6e 65 77 20 |assure t|hat new |
|000011b0| 6e 61 6d 65 20 64 6f 65 | 73 6e 27 74 20 65 78 69 |name doe|sn't exi|
|000011c0| 73 74 20 2a 2f 0a 58 20 | 20 20 20 69 66 20 28 75 |st */.X | if (u|
|000011d0| 6e 6c 69 6e 6b 28 73 32 | 29 20 21 3d 20 30 20 26 |nlink(s2|) != 0 &|
|000011e0| 26 20 65 72 72 6e 6f 20 | 21 3d 20 45 4e 4f 45 4e |& errno |!= ENOEN|
|000011f0| 54 29 20 7b 0a 58 09 65 | 72 72 63 6c 65 61 6e 28 |T) {.X.e|rrclean(|
|00001200| 31 30 2c 20 22 72 65 6d | 6f 76 65 20 25 73 22 2c |10, "rem|ove %s",|
|00001210| 20 73 32 2c 20 30 29 3b | 0a 58 20 20 20 20 20 20 | s2, 0);|.X |
|00001220| 20 20 72 65 74 75 72 6e | 28 31 29 3b 20 20 20 0a | return|(1); .|
|00001230| 58 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |X | }.X |
|00001240| 2f 2a 20 63 6f 6e 6e 65 | 63 74 20 6e 65 77 20 6e |/* conne|ct new n|
|00001250| 61 6d 65 20 74 6f 20 65 | 78 69 73 74 69 6e 67 20 |ame to e|xisting |
|00001260| 66 69 6c 65 20 2a 2f 0a | 58 20 20 20 20 69 66 20 |file */.|X if |
|00001270| 28 6c 69 6e 6b 28 73 31 | 2c 20 73 32 29 20 21 3d |(link(s1|, s2) !=|
|00001280| 20 30 29 20 7b 0a 58 09 | 65 72 72 63 6c 65 61 6e | 0) {.X.|errclean|
|00001290| 28 31 31 2c 20 22 6c 69 | 6e 6b 20 25 73 20 74 6f |(11, "li|nk %s to|
|000012a0| 20 25 73 22 2c 20 73 31 | 2c 20 73 32 29 3b 0a 58 | %s", s1|, s2);.X|
|000012b0| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 28 31 | |return(1|
|000012c0| 29 3b 20 20 20 0a 58 20 | 20 20 20 20 20 20 20 7d |); .X | }|
|000012d0| 0a 58 20 20 20 20 2f 2a | 20 72 65 6d 6f 76 65 20 |.X /*| remove |
|000012e0| 6f 6c 64 20 6e 61 6d 65 | 20 66 6f 72 20 74 68 65 |old name| for the|
|000012f0| 20 66 69 6c 65 20 2a 2f | 0a 58 20 20 20 20 69 66 | file */|.X if|
|00001300| 20 28 75 6e 6c 69 6e 6b | 28 73 31 29 20 21 3d 20 | (unlink|(s1) != |
|00001310| 30 29 20 7b 0a 58 09 65 | 72 72 63 6c 65 61 6e 28 |0) {.X.e|rrclean(|
|00001320| 31 32 2c 20 22 72 65 6d | 6f 76 65 20 25 73 22 2c |12, "rem|ove %s",|
|00001330| 20 73 31 2c 20 30 29 3b | 0a 58 20 20 20 20 20 20 | s1, 0);|.X |
|00001340| 20 20 72 65 74 75 72 6e | 28 31 29 3b 20 20 20 0a | return|(1); .|
|00001350| 58 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |X | }.X |
|00001360| 72 65 74 75 72 6e 28 30 | 29 3b 0a 58 7d 0a 58 23 |return(0|);.X}.X#|
|00001370| 65 6e 64 69 66 0a 58 0a | 58 2f 2a 0a 58 20 2a 20 |endif.X.|X/*.X * |
|00001380| 65 72 72 63 6c 65 61 6e | 20 2d 20 6f 75 74 70 75 |errclean| - outpu|
|00001390| 74 20 65 72 72 6f 72 20 | 6d 65 73 73 61 67 65 20 |t error |message |
|000013a0| 61 6e 64 20 65 78 69 74 | 20 74 6f 20 73 79 73 74 |and exit| to syst|
|000013b0| 65 6d 0a 58 20 2a 2f 0a | 58 65 72 72 63 6c 65 61 |em.X */.|Xerrclea|
|000013c0| 6e 28 63 6f 64 65 2c 20 | 73 74 72 69 6e 67 2c 20 |n(code, |string, |
|000013d0| 61 72 67 31 2c 20 61 72 | 67 32 29 0a 58 20 20 20 |arg1, ar|g2).X |
|000013e0| 20 69 6e 74 20 63 6f 64 | 65 3b 0a 58 20 20 20 20 | int cod|e;.X |
|000013f0| 63 68 61 72 20 2a 73 74 | 72 69 6e 67 3b 0a 58 20 |char *st|ring;.X |
|00001400| 20 20 20 63 68 61 72 20 | 2a 61 72 67 31 2c 20 2a | char |*arg1, *|
|00001410| 61 72 67 32 3b 0a 58 7b | 0a 58 20 20 20 20 63 68 |arg2;.X{|.X ch|
|00001420| 61 72 20 6c 73 74 72 5b | 38 30 5d 3b 0a 58 0a 58 |ar lstr[|80];.X.X|
|00001430| 20 20 20 20 69 66 20 28 | 66 70 20 21 3d 20 4e 55 | if (|fp != NU|
|00001440| 4c 4c 29 20 7b 0a 58 09 | 28 76 6f 69 64 29 75 6e |LL) {.X.|(void)un|
|00001450| 6c 69 6e 6b 28 66 6e 61 | 6d 65 29 3b 0a 58 20 20 |link(fna|me);.X |
|00001460| 20 20 20 20 20 20 66 70 | 20 3d 20 4e 55 4c 4c 3b | fp| = NULL;|
|00001470| 0a 58 09 7d 0a 58 20 20 | 20 20 73 70 72 69 6e 74 |.X.}.X | sprint|
|00001480| 66 28 6c 73 74 72 2c 20 | 22 68 6f 6c 64 20 25 32 |f(lstr, |"hold %2|
|00001490| 64 3a 20 63 61 6e 27 74 | 20 25 73 5c 6e 22 2c 20 |d: can't| %s\n", |
|000014a0| 63 6f 64 65 2c 20 73 74 | 72 69 6e 67 29 3b 0a 58 |code, st|ring);.X|
|000014b0| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|000014c0| 72 72 2c 20 6c 73 74 72 | 2c 20 61 72 67 31 2c 20 |rr, lstr|, arg1, |
|000014d0| 61 72 67 32 29 3b 0a 58 | 20 20 20 20 65 78 69 74 |arg2);.X| exit|
|000014e0| 28 63 6f 64 65 29 3b 0a | 58 7d 0a 58 0a 45 4e 44 |(code);.|X}.X.END|
|000014f0| 5f 4f 46 5f 46 49 4c 45 | 0a 69 66 20 74 65 73 74 |_OF_FILE|.if test|
|00001500| 20 32 39 36 30 20 2d 6e | 65 20 60 77 63 20 2d 63 | 2960 -n|e `wc -c|
|00001510| 20 3c 27 68 6f 6c 64 2e | 63 27 60 3b 20 74 68 65 | <'hold.|c'`; the|
|00001520| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00001530| 20 5c 22 27 68 6f 6c 64 | 2e 63 27 5c 22 20 75 6e | \"'hold|.c'\" un|
|00001540| 70 61 63 6b 65 64 20 77 | 69 74 68 20 77 72 6f 6e |packed w|ith wron|
|00001550| 67 20 73 69 7a 65 21 0a | 66 69 0a 23 20 65 6e 64 |g size!.|fi.# end|
|00001560| 20 6f 66 20 27 68 6f 6c | 64 2e 63 27 0a 66 69 0a | of 'hol|d.c'.fi.|
|00001570| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 6e 64 20 6f |echo sha|r: End o|
|00001580| 66 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |f shell |archive.|
|00001590| 0a 65 78 69 74 20 30 0a | |.exit 0.| |
+--------+-------------------------+-------------------------+--------+--------+