home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume2 / mpg < prev    next >
SHell self-extracting ARchive  |  1991-08-07  |  18.5 KB

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: mpg

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 text default
99% file C source text default
98% file C source, 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 77 6e | 70 40 64 63 73 2e 55 55 |From: wn|p@dcs.UU|
|00000010| 43 50 0a 4e 65 77 73 67 | 72 6f 75 70 73 3a 20 63 |CP.Newsg|roups: c|
|00000020| 6f 6d 70 2e 73 6f 75 72 | 63 65 73 2e 6d 69 73 63 |omp.sour|ces.misc|
|00000030| 0a 53 75 62 6a 65 63 74 | 3a 20 76 30 32 69 30 31 |.Subject|: v02i01|
|00000040| 37 3a 20 4d 50 47 20 2d | 20 46 75 65 6c 20 45 63 |7: MPG -| Fuel Ec|
|00000050| 6f 6e 6f 6d 79 20 43 61 | 6c 63 75 6c 61 74 6f 72 |onomy Ca|lculator|
|00000060| 0a 4d 65 73 73 61 67 65 | 2d 49 44 3a 20 3c 37 31 |.Message|-ID: <71|
|00000070| 32 38 40 6e 63 6f 61 73 | 74 2e 55 55 43 50 3e 0a |28@ncoas|t.UUCP>.|
|00000080| 44 61 74 65 3a 20 32 36 | 20 4a 61 6e 20 38 38 20 |Date: 26| Jan 88 |
|00000090| 30 33 3a 35 33 3a 30 30 | 20 47 4d 54 0a 41 70 70 |03:53:00| GMT.App|
|000000a0| 72 6f 76 65 64 3a 20 61 | 6c 6c 62 65 72 79 40 6e |roved: a|llbery@n|
|000000b0| 63 6f 61 73 74 2e 55 55 | 43 50 0a 0a 43 6f 6d 70 |coast.UU|CP..Comp|
|000000c0| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 3a 20 56 |.sources|.misc: V|
|000000d0| 6f 6c 75 6d 65 20 32 2c | 20 49 73 73 75 65 20 31 |olume 2,| Issue 1|
|000000e0| 37 0a 53 75 62 6d 69 74 | 74 65 64 2d 42 79 3a 20 |7.Submit|ted-By: |
|000000f0| 57 6f 6c 66 20 50 61 75 | 6c 20 3c 77 6e 70 40 64 |Wolf Pau|l <wnp@d|
|00000100| 63 73 2e 55 55 43 50 3e | 0a 41 72 63 68 69 76 65 |cs.UUCP>|.Archive|
|00000110| 2d 4e 61 6d 65 3a 20 6d | 70 67 0a 0a 49 20 68 6f |-Name: m|pg..I ho|
|00000120| 70 65 20 74 68 69 73 20 | 69 73 20 75 73 65 66 75 |pe this |is usefu|
|00000130| 6c 20 74 6f 20 73 6f 6d | 65 20 6f 66 20 74 68 65 |l to som|e of the|
|00000140| 20 66 6f 6c 6b 73 20 6f | 75 74 20 74 68 65 72 65 | folks o|ut there|
|00000150| 2c 20 69 66 20 6f 6e 6c | 79 0a 61 73 20 61 20 73 |, if onl|y.as a s|
|00000160| 61 6d 70 6c 65 20 6f 66 | 20 77 68 61 74 20 63 61 |ample of| what ca|
|00000170| 6e 20 62 65 20 64 6f 6e | 65 20 77 69 74 68 20 74 |n be don|e with t|
|00000180| 68 65 20 55 4e 49 58 20 | 73 68 65 6c 6c 2e 0a 0a |he UNIX |shell...|
|00000190| 57 6f 6c 66 20 50 61 75 | 6c 0a 69 68 6e 70 34 21 |Wolf Pau|l.ihnp4!|
|000001a0| 6b 69 6c 6c 65 72 21 77 | 6e 70 0a 0a 2d 2d 2d 2d |killer!w|np..----|
|000001b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0a |--------|-------.|
|000001c0| 23 21 20 2f 62 69 6e 2f | 73 68 0a 23 20 54 68 69 |#! /bin/|sh.# Thi|
|000001d0| 73 20 69 73 20 61 20 73 | 68 65 6c 6c 20 61 72 63 |s is a s|hell arc|
|000001e0| 68 69 76 65 2c 20 6d 65 | 61 6e 69 6e 67 3a 0a 23 |hive, me|aning:.#|
|000001f0| 20 31 2e 20 52 65 6d 6f | 76 65 20 65 76 65 72 79 | 1. Remo|ve every|
|00000200| 74 68 69 6e 67 20 61 62 | 6f 76 65 20 74 68 65 20 |thing ab|ove the |
|00000210| 23 21 20 2f 62 69 6e 2f | 73 68 20 6c 69 6e 65 2e |#! /bin/|sh line.|
|00000220| 0a 23 20 32 2e 20 53 61 | 76 65 20 74 68 65 20 72 |.# 2. Sa|ve the r|
|00000230| 65 73 75 6c 74 69 6e 67 | 20 74 65 78 74 20 69 6e |esulting| text in|
|00000240| 20 61 20 66 69 6c 65 2e | 0a 23 20 33 2e 20 45 78 | a file.|.# 3. Ex|
|00000250| 65 63 75 74 65 20 74 68 | 65 20 66 69 6c 65 20 77 |ecute th|e file w|
|00000260| 69 74 68 20 2f 62 69 6e | 2f 73 68 20 28 6e 6f 74 |ith /bin|/sh (not|
|00000270| 20 63 73 68 29 20 74 6f | 20 63 72 65 61 74 65 20 | csh) to| create |
|00000280| 74 68 65 20 66 69 6c 65 | 73 3a 0a 23 09 52 45 41 |the file|s:.#.REA|
|00000290| 44 4d 45 0a 23 09 65 75 | 72 6d 70 67 0a 23 09 66 |DME.#.eu|rmpg.#.f|
|000002a0| 70 64 69 76 69 64 65 2e | 31 0a 23 09 66 70 64 69 |pdivide.|1.#.fpdi|
|000002b0| 76 69 64 65 2e 63 0a 23 | 09 6d 70 67 2e 31 0a 23 |vide.c.#|.mpg.1.#|
|000002c0| 09 6d 70 67 64 61 74 61 | 0a 23 09 75 6b 6d 70 67 |.mpgdata|.#.ukmpg|
|000002d0| 0a 23 09 75 73 6d 70 67 | 0a 23 20 54 68 69 73 20 |.#.usmpg|.# This |
|000002e0| 61 72 63 68 69 76 65 20 | 63 72 65 61 74 65 64 3a |archive |created:|
|000002f0| 20 53 75 6e 20 4a 61 6e | 20 31 37 20 31 38 3a 31 | Sun Jan| 17 18:1|
|00000300| 30 3a 32 31 20 31 39 38 | 38 20 62 79 20 69 68 6e |0:21 198|8 by ihn|
|00000310| 70 34 21 6b 69 6c 6c 65 | 72 21 77 6e 70 0a 65 78 |p4!kille|r!wnp.ex|
|00000320| 70 6f 72 74 20 50 41 54 | 48 3b 20 50 41 54 48 3d |port PAT|H; PATH=|
|00000330| 2f 62 69 6e 3a 24 50 41 | 54 48 0a 69 66 20 74 65 |/bin:$PA|TH.if te|
|00000340| 73 74 20 2d 66 20 27 52 | 45 41 44 4d 45 27 0a 74 |st -f 'R|EADME'.t|
|00000350| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00000360| 77 69 6c 6c 20 6e 6f 74 | 20 6f 76 65 72 2d 77 72 |will not| over-wr|
|00000370| 69 74 65 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ite exis|ting fil|
|00000380| 65 20 22 27 52 45 41 44 | 4d 45 27 22 0a 65 6c 73 |e "'READ|ME'".els|
|00000390| 65 0a 63 61 74 20 3c 3c | 20 5c 53 48 41 52 5f 45 |e.cat <<| \SHAR_E|
|000003a0| 4f 46 20 3e 20 27 52 45 | 41 44 4d 45 27 0a 54 68 |OF > 'RE|ADME'.Th|
|000003b0| 65 20 65 6e 63 6c 6f 73 | 65 64 20 66 69 6c 65 73 |e enclos|ed files|
|000003c0| 20 61 72 65 20 61 6e 20 | 65 78 61 6d 70 6c 65 20 | are an |example |
|000003d0| 6f 66 20 61 20 66 6c 6f | 61 74 69 6e 67 20 70 6f |of a flo|ating po|
|000003e0| 69 6e 74 20 61 70 70 6c | 69 63 61 74 69 6f 6e 0a |int appl|ication.|
|000003f0| 77 72 69 74 74 65 6e 20 | 69 6e 20 42 6f 75 72 6e |written |in Bourn|
|00000400| 65 20 73 68 65 6c 6c 20 | 73 63 69 70 74 2c 20 77 |e shell |scipt, w|
|00000410| 69 74 68 20 74 68 65 20 | 61 69 64 20 6f 66 20 61 |ith the |aid of a|
|00000420| 20 73 68 6f 72 74 20 70 | 72 6f 67 72 61 6d 2c 0a | short p|rogram,.|
|00000430| 46 50 44 49 56 49 44 45 | 2e 0a 0a 46 50 44 49 56 |FPDIVIDE|...FPDIV|
|00000440| 49 44 45 20 77 69 6c 6c | 20 64 69 76 69 64 65 2c |IDE will| divide,|
|00000450| 20 6d 75 6c 74 69 70 6c | 79 2c 20 61 64 64 2c 20 | multipl|y, add, |
|00000460| 61 6e 64 20 73 75 62 74 | 72 61 63 74 20 66 6c 6f |and subt|ract flo|
|00000470| 61 74 69 6e 67 20 70 6f | 69 6e 74 0a 6e 75 6d 62 |ating po|int.numb|
|00000480| 65 72 73 2c 20 64 65 70 | 65 6e 64 69 6e 67 20 6f |ers, dep|ending o|
|00000490| 6e 20 69 74 73 20 6e 61 | 6d 65 2e 0a 0a 54 68 65 |n its na|me...The|
|000004a0| 20 73 61 6d 70 6c 65 20 | 61 70 70 6c 69 63 61 74 | sample |applicat|
|000004b0| 69 6f 6e 20 65 6e 63 6c | 6f 73 65 64 20 69 73 20 |ion encl|osed is |
|000004c0| 61 20 46 75 65 6c 20 45 | 63 6f 6e 6f 6d 79 20 43 |a Fuel E|conomy C|
|000004d0| 61 6c 63 75 6c 61 74 6f | 72 2c 0a 69 6e 20 76 65 |alculato|r,.in ve|
|000004e0| 72 73 69 6f 6e 73 20 66 | 6f 72 20 74 68 65 20 55 |rsions f|or the U|
|000004f0| 53 2c 20 55 4b 2c 20 61 | 6e 64 20 74 68 65 20 72 |S, UK, a|nd the r|
|00000500| 65 73 74 20 6f 66 20 74 | 68 65 20 28 64 65 63 69 |est of t|he (deci|
|00000510| 6d 61 6c 29 20 77 6f 72 | 6c 64 2e 0a 0a 57 68 69 |mal) wor|ld...Whi|
|00000520| 6c 65 20 66 75 65 6c 20 | 65 63 6f 6e 6f 6d 79 20 |le fuel |economy |
|00000530| 69 73 20 6e 6f 74 20 73 | 75 63 68 20 61 20 68 6f |is not s|uch a ho|
|00000540| 74 20 74 6f 70 69 63 20 | 69 6e 20 74 68 65 20 55 |t topic |in the U|
|00000550| 53 2c 20 49 20 64 6f 6e | 27 74 20 6b 6e 6f 77 0a |S, I don|'t know.|
|00000560| 6f 66 20 61 6e 79 20 6f | 74 68 65 72 20 74 6f 70 |of any o|ther top|
|00000570| 69 63 20 6d 6f 72 65 20 | 66 72 65 71 75 65 6e 74 |ic more |frequent|
|00000580| 6c 79 20 64 69 73 63 75 | 73 73 65 64 20 77 68 65 |ly discu|ssed whe|
|00000590| 6e 20 64 72 69 76 65 72 | 73 20 6f 66 20 61 75 74 |n driver|s of aut|
|000005a0| 6f 6d 6f 62 69 6c 65 73 | 0a 74 61 6c 6b 20 61 62 |omobiles|.talk ab|
|000005b0| 6f 75 74 20 74 68 65 69 | 72 20 63 61 72 73 20 69 |out thei|r cars i|
|000005c0| 6e 20 45 75 72 6f 70 65 | 2e 0a 0a 54 68 69 73 20 |n Europe|...This |
|000005d0| 70 72 6f 67 72 61 6d 20 | 77 69 6c 6c 20 6c 65 74 |program |will let|
|000005e0| 20 79 6f 75 20 65 6e 74 | 65 72 20 74 68 65 20 64 | you ent|er the d|
|000005f0| 69 73 74 61 6e 63 65 20 | 64 72 69 76 65 6e 20 61 |istance |driven a|
|00000600| 6e 64 20 66 75 65 6c 20 | 63 6f 6e 73 75 6d 65 64 |nd fuel |consumed|
|00000610| 0a 65 76 65 72 79 20 74 | 69 6d 65 20 79 6f 75 20 |.every t|ime you |
|00000620| 66 69 6c 6c 20 79 6f 75 | 72 20 74 61 6e 6b 2c 20 |fill you|r tank, |
|00000630| 61 6e 64 20 77 69 6c 6c | 20 74 68 65 6e 20 74 65 |and will| then te|
|00000640| 6c 6c 20 79 6f 75 20 68 | 6f 77 20 6d 61 6e 79 20 |ll you h|ow many |
|00000650| 6d 69 6c 65 73 0a 74 6f | 20 74 68 65 20 67 61 6c |miles.to| the gal|
|00000660| 6c 6f 6e 20 79 6f 75 20 | 68 61 76 65 20 64 72 69 |lon you |have dri|
|00000670| 76 65 6e 2c 20 6f 72 20 | 68 6f 77 20 6d 61 6e 79 |ven, or |how many|
|00000680| 20 6c 69 74 65 72 73 20 | 6f 66 20 66 75 65 6c 20 | liters |of fuel |
|00000690| 79 6f 75 72 20 68 61 76 | 65 0a 63 6f 6e 73 75 6d |your hav|e.consum|
|000006a0| 65 64 20 70 65 72 20 31 | 30 30 20 6b 6d 20 64 72 |ed per 1|00 km dr|
|000006b0| 69 76 65 6e 2e 0a 0a 49 | 74 20 77 69 6c 6c 20 6f |iven...I|t will o|
|000006c0| 70 74 69 6f 6e 61 6c 6c | 79 20 70 72 69 6e 74 20 |ptionall|y print |
|000006d0| 6f 75 74 20 61 20 73 68 | 6f 72 74 20 73 74 61 74 |out a sh|ort stat|
|000006e0| 65 6d 65 6e 74 20 6f 6e | 20 74 68 65 20 73 74 61 |ement on| the sta|
|000006f0| 6e 64 61 72 64 20 6c 69 | 6e 65 20 70 72 69 6e 74 |ndard li|ne print|
|00000700| 65 72 2e 0a 0a 57 69 74 | 68 20 6d 69 6e 69 6d 61 |er...Wit|h minima|
|00000710| 6c 20 6d 6f 64 69 66 69 | 63 61 74 69 6f 6e 73 2c |l modifi|cations,|
|00000720| 20 74 68 69 73 20 70 72 | 6f 67 72 61 6d 20 73 68 | this pr|ogram sh|
|00000730| 6f 75 6c 64 20 61 6c 73 | 6f 20 72 75 6e 20 75 6e |ould als|o run un|
|00000740| 64 65 72 20 74 68 65 0a | 4d 4b 53 20 54 6f 6f 6c |der the.|MKS Tool|
|00000750| 6b 69 74 20 69 6d 70 6c | 65 6d 65 6e 74 61 74 69 |kit impl|ementati|
|00000760| 6f 6e 20 6f 66 20 74 68 | 65 20 4b 6f 72 6e 20 53 |on of th|e Korn S|
|00000770| 68 65 6c 6c 2e 0a 0a 46 | 49 4c 45 53 3a 0a 0a 52 |hell...F|ILES:..R|
|00000780| 45 41 44 4d 45 09 09 09 | 74 68 69 73 20 66 69 6c |EADME...|this fil|
|00000790| 65 0a 66 70 64 69 76 69 | 64 65 2e 63 09 09 74 68 |e.fpdivi|de.c..th|
|000007a0| 65 20 73 6f 75 72 63 65 | 20 66 6f 72 20 74 68 65 |e source| for the|
|000007b0| 20 66 6c 6f 61 74 69 6e | 67 20 70 6f 69 6e 74 20 | floatin|g point |
|000007c0| 63 6f 6d 6d 61 6e 64 73 | 0a 66 70 64 69 76 69 64 |commands|.fpdivid|
|000007d0| 65 2e 31 09 09 6d 61 6e | 20 70 61 67 65 20 66 6f |e.1..man| page fo|
|000007e0| 72 20 74 68 65 20 66 6c | 6f 61 74 69 6e 67 20 70 |r the fl|oating p|
|000007f0| 6f 69 6e 74 20 63 6f 6d | 6d 61 6e 64 73 0a 6d 70 |oint com|mands.mp|
|00000800| 67 2e 31 09 09 09 6d 61 | 6e 20 70 61 67 65 20 66 |g.1...ma|n page f|
|00000810| 6f 72 20 74 68 65 20 4d | 50 47 20 70 72 6f 67 72 |or the M|PG progr|
|00000820| 61 6d 73 0a 65 75 72 6d | 70 67 09 09 09 45 75 72 |ams.eurm|pg...Eur|
|00000830| 6f 70 65 61 6e 2f 44 65 | 63 69 6d 61 6c 20 76 65 |opean/De|cimal ve|
|00000840| 72 73 69 6f 6e 20 6f 66 | 20 4d 50 47 0a 75 6b 6d |rsion of| MPG.ukm|
|00000850| 70 67 09 09 09 55 4b 2f | 49 6d 70 65 72 69 61 6c |pg...UK/|Imperial|
|00000860| 20 47 61 6c 6c 6f 6e 73 | 20 76 65 72 73 69 6f 6e | Gallons| version|
|00000870| 20 6f 66 20 4d 50 47 0a | 75 73 6d 70 67 09 09 09 | of MPG.|usmpg...|
|00000880| 55 53 20 76 65 72 73 69 | 6f 6e 20 6f 66 20 4d 50 |US versi|on of MP|
|00000890| 47 0a 6d 70 67 64 61 74 | 61 09 09 09 69 6e 69 74 |G.mpgdat|a...init|
|000008a0| 69 61 6c 20 24 48 4f 4d | 45 2f 2e 6d 70 67 64 61 |ial $HOM|E/.mpgda|
|000008b0| 74 61 20 66 69 6c 65 2c | 20 61 6c 6c 20 7a 65 72 |ta file,| all zer|
|000008c0| 6f 73 0a 0a 49 20 68 6f | 70 65 20 73 6f 6d 62 6f |os..I ho|pe sombo|
|000008d0| 64 79 20 66 69 6e 64 73 | 20 74 68 69 73 20 75 73 |dy finds| this us|
|000008e0| 65 66 75 6c 2e 20 49 20 | 77 65 6c 63 6f 6d 65 20 |eful. I |welcome |
|000008f0| 79 6f 75 72 20 63 6f 6d | 6d 65 6e 74 73 21 0a 0a |your com|ments!..|
|00000900| 57 6f 6c 66 20 4e 2e 20 | 50 61 75 6c 0a 69 68 6e |Wolf N. |Paul.ihn|
|00000910| 70 34 21 6b 69 6c 6c 65 | 72 21 77 6e 70 0a 69 68 |p4!kille|r!wnp.ih|
|00000920| 6e 70 34 21 6b 69 6c 6c | 65 72 21 64 63 73 21 77 |np4!kill|er!dcs!w|
|00000930| 6e 70 0a 69 68 6e 70 34 | 21 6b 69 6c 6c 65 72 21 |np.ihnp4|!killer!|
|00000940| 64 6f 75 6c 6f 73 21 77 | 6e 70 0a 53 48 41 52 5f |doulos!w|np.SHAR_|
|00000950| 45 4f 46 0a 66 69 20 23 | 20 65 6e 64 20 6f 66 20 |EOF.fi #| end of |
|00000960| 6f 76 65 72 77 72 69 74 | 69 6e 67 20 63 68 65 63 |overwrit|ing chec|
|00000970| 6b 0a 69 66 20 74 65 73 | 74 20 2d 66 20 27 65 75 |k.if tes|t -f 'eu|
|00000980| 72 6d 70 67 27 0a 74 68 | 65 6e 0a 09 65 63 68 6f |rmpg'.th|en..echo|
|00000990| 20 73 68 61 72 3a 20 77 | 69 6c 6c 20 6e 6f 74 20 | shar: w|ill not |
|000009a0| 6f 76 65 72 2d 77 72 69 | 74 65 20 65 78 69 73 74 |over-wri|te exist|
|000009b0| 69 6e 67 20 66 69 6c 65 | 20 22 27 65 75 72 6d 70 |ing file| "'eurmp|
|000009c0| 67 27 22 0a 65 6c 73 65 | 0a 63 61 74 20 3c 3c 20 |g'".else|.cat << |
|000009d0| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 65 75 72 |\SHAR_EO|F > 'eur|
|000009e0| 6d 70 67 27 0a 3a 0a 23 | 20 65 75 72 6d 70 67 20 |mpg'.:.#| eurmpg |
|000009f0| 20 28 4d 69 6c 65 73 20 | 50 65 72 20 47 61 6c 6c | (Miles |Per Gall|
|00000a00| 6f 6e 20 2d 20 45 75 72 | 6f 70 65 61 6e 20 56 65 |on - Eur|opean Ve|
|00000a10| 72 73 69 6f 6e 29 20 2d | 2d 20 41 20 46 75 65 6c |rsion) -|- A Fuel|
|00000a20| 20 45 63 6f 6e 6f 6d 79 | 20 43 61 6c 63 75 6c 61 | Economy| Calcula|
|00000a30| 74 6f 72 0a 23 20 0a 23 | 20 54 68 69 73 20 73 68 |tor.# .#| This sh|
|00000a40| 65 6c 6c 20 70 72 6f 67 | 72 61 6d 20 75 73 65 73 |ell prog|ram uses|
|00000a50| 20 74 68 65 20 66 6c 6f | 61 74 69 6e 67 20 70 6f | the flo|ating po|
|00000a60| 69 6e 74 20 61 72 69 74 | 68 6d 65 74 69 63 20 63 |int arit|hmetic c|
|00000a70| 6f 6d 6d 61 6e 64 73 0a | 23 20 22 66 70 2a 22 20 |ommands.|# "fp*" |
|00000a80| 74 6f 20 63 61 6c 63 75 | 6c 61 74 65 20 66 75 65 |to calcu|late fue|
|00000a90| 6c 20 65 63 6f 6e 6f 6d | 79 20 69 6e 20 74 65 72 |l econom|y in ter|
|00000aa0| 6d 73 20 6f 66 20 6c 69 | 74 65 72 73 20 70 65 72 |ms of li|ters per|
|00000ab0| 20 31 30 30 20 6b 6d 2c | 0a 23 20 6d 69 6c 65 73 | 100 km,|.# miles|
|00000ac0| 20 70 65 72 20 55 53 20 | 67 61 6c 6c 6f 6e 2c 20 | per US |gallon, |
|00000ad0| 61 6e 64 20 6d 69 6c 65 | 73 20 70 65 72 20 55 4b |and mile|s per UK|
|00000ae0| 20 28 49 6d 70 65 72 69 | 61 6c 29 20 67 61 6c 6c | (Imperi|al) gall|
|00000af0| 6f 6e 2e 0a 23 0a 23 20 | 41 73 20 64 69 73 74 72 |on..#.# |As distr|
|00000b00| 69 62 75 74 65 64 2c 20 | 74 68 65 20 70 72 6f 67 |ibuted, |the prog|
|00000b10| 72 61 6d 20 61 73 73 75 | 6d 65 73 20 74 68 61 74 |ram assu|mes that|
|00000b20| 20 74 68 65 20 75 73 65 | 72 20 77 69 6c 6c 20 65 | the use|r will e|
|00000b30| 6e 74 65 72 20 0a 23 20 | 74 68 65 20 64 69 73 74 |nter .# |the dist|
|00000b40| 61 6e 63 65 20 74 72 61 | 76 65 6c 6c 65 64 20 69 |ance tra|velled i|
|00000b50| 6e 20 4b 49 4c 4f 4d 45 | 54 45 52 53 2c 20 61 6e |n KILOME|TERS, an|
|00000b60| 64 20 74 68 65 20 61 6d | 6f 75 6e 74 20 6f 66 20 |d the am|ount of |
|00000b70| 66 75 65 6c 20 75 73 65 | 64 0a 23 20 69 6e 20 4c |fuel use|d.# in L|
|00000b80| 49 54 45 52 53 2c 20 62 | 75 74 20 74 68 61 74 20 |ITERS, b|ut that |
|00000b90| 69 73 20 6e 6f 74 20 64 | 69 66 66 69 63 75 6c 74 |is not d|ifficult|
|00000ba0| 20 74 6f 20 63 68 61 6e | 67 65 20 74 6f 20 61 6e | to chan|ge to an|
|00000bb0| 79 20 6f 74 68 65 72 0a | 23 20 63 6f 6d 62 69 6e |y other.|# combin|
|00000bc0| 61 74 69 6f 6e 20 6f 66 | 20 76 6f 6c 75 6d 65 20 |ation of| volume |
|00000bd0| 61 6e 64 20 64 69 73 74 | 61 6e 63 65 20 6d 65 61 |and dist|ance mea|
|00000be0| 73 75 72 69 6e 67 20 75 | 6e 69 74 73 2e 0a 23 0a |suring u|nits..#.|
|00000bf0| 23 20 41 75 74 68 6f 72 | 3a 20 57 6f 6c 66 20 4e |# Author|: Wolf N|
|00000c00| 2e 20 50 61 75 6c 20 28 | 69 68 6e 70 34 21 6b 69 |. Paul (|ihnp4!ki|
|00000c10| 6c 6c 65 72 21 64 63 73 | 21 77 6e 70 29 2c 20 31 |ller!dcs|!wnp), 1|
|00000c20| 2f 31 33 2f 38 38 0a 23 | 20 52 65 6c 65 61 73 65 |/13/88.#| Release|
|00000c30| 64 20 69 6e 74 6f 20 74 | 68 65 20 50 75 62 6c 69 |d into t|he Publi|
|00000c40| 63 20 44 6f 6d 61 69 6e | 2c 20 4a 61 6e 20 31 38 |c Domain|, Jan 18|
|00000c50| 2c 20 31 39 38 38 0a 23 | 0a 23 20 73 65 74 20 2d |, 1988.#|.# set -|
|00000c60| 76 20 23 20 65 6e 61 62 | 6c 65 20 64 65 62 75 67 |v # enab|le debug|
|00000c70| 67 69 6e 67 0a 23 0a 23 | 20 43 4f 4e 53 54 41 4e |ging.#.#| CONSTAN|
|00000c80| 54 53 3a 0a 23 0a 46 49 | 4c 45 3d 24 48 4f 4d 45 |TS:.#.FI|LE=$HOME|
|00000c90| 2f 2e 6d 70 67 64 61 74 | 61 0a 55 53 5f 47 41 4c |/.mpgdat|a.US_GAL|
|00000ca0| 4c 4f 4e 3d 33 2e 38 0a | 55 4b 5f 47 41 4c 4c 4f |LON=3.8.|UK_GALLO|
|00000cb0| 4e 3d 34 2e 35 0a 4d 49 | 4c 45 3d 31 2e 36 0a 23 |N=4.5.MI|LE=1.6.#|
|00000cc0| 0a 23 20 56 61 72 69 61 | 62 6c 65 73 20 2d 20 61 |.# Varia|bles - a|
|00000cd0| 6c 6c 20 69 6e 69 74 69 | 61 6c 69 7a 65 64 20 74 |ll initi|alized t|
|00000ce0| 6f 20 30 2e 30 0a 43 5f | 4d 49 4c 45 53 3d 30 2e |o 0.0.C_|MILES=0.|
|00000cf0| 30 09 09 23 20 63 75 72 | 72 65 6e 74 20 6d 69 6c |0..# cur|rent mil|
|00000d00| 65 73 0a 43 5f 4b 4d 53 | 3d 30 2e 30 09 09 23 20 |es.C_KMS|=0.0..# |
|00000d10| 63 75 72 72 65 6e 74 20 | 6b 69 6c 6f 6d 65 74 65 |current |kilomete|
|00000d20| 72 73 0a 43 5f 55 53 47 | 41 4c 3d 30 2e 30 09 09 |rs.C_USG|AL=0.0..|
|00000d30| 23 20 63 75 72 72 65 6e | 74 20 67 61 6c 6c 6f 6e |# curren|t gallon|
|00000d40| 73 20 55 53 0a 43 5f 55 | 4b 47 41 4c 3d 30 2e 30 |s US.C_U|KGAL=0.0|
|00000d50| 09 09 23 20 63 75 72 72 | 65 6e 74 20 67 61 6c 6c |..# curr|ent gall|
|00000d60| 6f 6e 73 20 55 4b 0a 43 | 5f 4c 49 54 45 52 53 3d |ons UK.C|_LITERS=|
|00000d70| 30 2e 30 09 23 20 63 75 | 72 72 65 6e 74 20 6c 69 |0.0.# cu|rrent li|
|00000d80| 74 65 72 73 0a 54 5f 4d | 49 4c 45 53 3d 30 2e 30 |ters.T_M|ILES=0.0|
|00000d90| 09 09 23 20 74 6f 74 61 | 6c 20 6d 69 6c 65 73 0a |..# tota|l miles.|
|00000da0| 54 5f 4b 53 4d 3d 30 2e | 30 09 09 23 20 74 6f 74 |T_KSM=0.|0..# tot|
|00000db0| 61 6c 20 6b 69 6c 6f 6d | 65 74 65 72 73 0a 54 5f |al kilom|eters.T_|
|00000dc0| 55 53 47 41 4c 3d 30 2e | 30 09 09 23 20 74 6f 74 |USGAL=0.|0..# tot|
|00000dd0| 61 6c 20 67 61 6c 6c 6f | 6e 73 20 55 53 0a 54 5f |al gallo|ns US.T_|
|00000de0| 55 4b 47 41 4c 3d 30 2e | 30 09 09 23 20 74 6f 74 |UKGAL=0.|0..# tot|
|00000df0| 61 6c 20 67 61 6c 6c 6f | 6e 73 20 55 4b 0a 54 5f |al gallo|ns UK.T_|
|00000e00| 4c 49 54 45 52 53 3d 30 | 2e 30 09 23 20 74 6f 74 |LITERS=0|.0.# tot|
|00000e10| 61 6c 20 6c 69 74 65 72 | 73 0a 43 5f 55 53 4d 50 |al liter|s.C_USMP|
|00000e20| 47 3d 30 2e 30 09 09 23 | 20 63 75 72 72 65 6e 74 |G=0.0..#| current|
|00000e30| 20 6d 69 6c 65 73 2f 67 | 61 6c 6c 6f 6e 20 55 53 | miles/g|allon US|
|00000e40| 0a 43 5f 55 4b 4d 50 47 | 3d 30 2e 30 09 09 23 20 |.C_UKMPG|=0.0..# |
|00000e50| 63 75 72 72 65 6e 74 20 | 6d 69 6c 65 73 2f 67 61 |current |miles/ga|
|00000e60| 6c 6c 6f 6e 20 55 4b 0a | 43 5f 4c 50 31 30 30 3d |llon UK.|C_LP100=|
|00000e70| 30 2e 30 09 09 23 20 63 | 75 72 72 65 6e 74 20 6c |0.0..# c|urrent l|
|00000e80| 69 74 65 72 73 2f 31 30 | 30 20 6b 6d 0a 41 5f 55 |iters/10|0 km.A_U|
|00000e90| 53 4d 50 47 3d 30 2e 30 | 09 23 20 61 76 65 72 61 |SMPG=0.0|.# avera|
|00000ea0| 67 65 20 6d 69 6c 65 73 | 2f 67 61 6c 6c 6f 6e 20 |ge miles|/gallon |
|00000eb0| 55 53 0a 41 5f 55 4b 4d | 50 47 3d 30 2e 30 09 23 |US.A_UKM|PG=0.0.#|
|00000ec0| 20 61 76 65 72 61 67 65 | 20 6d 69 6c 65 73 2f 67 | average| miles/g|
|00000ed0| 61 6c 6c 6f 6e 20 55 4b | 0a 41 5f 4c 50 31 30 30 |allon UK|.A_LP100|
|00000ee0| 3d 30 2e 30 09 23 20 61 | 76 65 72 61 67 65 20 6c |=0.0.# a|verage l|
|00000ef0| 69 74 65 72 73 2f 31 30 | 30 20 6b 6d 0a 54 4d 50 |iters/10|0 km.TMP|
|00000f00| 3d 30 2e 30 09 09 09 23 | 20 6b 6d 73 2f 31 30 30 |=0.0...#| kms/100|
|00000f10| 0a 0a 65 63 68 6f 20 22 | 4d 50 47 20 2d 20 46 75 |..echo "|MPG - Fu|
|00000f20| 65 6c 20 45 63 6f 6e 6f | 6d 79 20 43 61 6c 63 75 |el Econo|my Calcu|
|00000f30| 6c 61 74 6f 72 5c 6e 22 | 0a 65 63 68 6f 20 22 45 |lator\n"|.echo "E|
|00000f40| 75 72 6f 70 65 61 6e 20 | 28 44 65 63 69 6d 61 6c |uropean |(Decimal|
|00000f50| 29 20 56 65 72 73 69 6f | 6e 20 2d 20 65 6e 74 65 |) Versio|n - ente|
|00000f60| 72 20 4b 69 6c 6f 6d 65 | 74 65 72 73 20 61 6e 64 |r Kilome|ters and|
|00000f70| 20 4c 69 74 65 72 73 5c | 6e 22 0a 0a 65 63 68 6f | Liters\|n"..echo|
|00000f80| 20 22 52 65 61 64 69 6e | 67 20 6f 6c 64 20 76 61 | "Readin|g old va|
|00000f90| 6c 75 65 73 20 2e 2e 2e | 20 5c 63 22 0a 0a 54 5f |lues ...| \c"..T_|
|00000fa0| 4d 49 4c 45 53 3d 60 63 | 75 74 20 2d 64 3a 20 2d |MILES=`c|ut -d: -|
|00000fb0| 66 31 20 24 46 49 4c 45 | 60 0a 54 5f 4b 4d 53 3d |f1 $FILE|`.T_KMS=|
|00000fc0| 60 63 75 74 20 2d 64 3a | 20 2d 66 32 20 24 46 49 |`cut -d:| -f2 $FI|
|00000fd0| 4c 45 60 0a 54 5f 55 53 | 47 41 4c 3d 60 63 75 74 |LE`.T_US|GAL=`cut|
|00000fe0| 20 2d 64 3a 20 2d 66 33 | 20 24 46 49 4c 45 60 0a | -d: -f3| $FILE`.|
|00000ff0| 54 5f 55 4b 47 41 4c 3d | 60 63 75 74 20 2d 64 3a |T_UKGAL=|`cut -d:|
|00001000| 20 2d 66 34 20 24 46 49 | 4c 45 60 0a 54 5f 4c 49 | -f4 $FI|LE`.T_LI|
|00001010| 54 45 52 53 3d 60 63 75 | 74 20 2d 64 3a 20 2d 66 |TERS=`cu|t -d: -f|
|00001020| 35 20 24 46 49 4c 45 60 | 0a 65 63 68 6f 20 22 64 |5 $FILE`|.echo "d|
|00001030| 6f 6e 65 21 5c 6e 22 0a | 0a 65 63 68 6f 20 22 45 |one!\n".|.echo "E|
|00001040| 6e 74 65 72 20 6b 69 6c | 6f 6d 65 74 65 72 73 20 |nter kil|ometers |
|00001050| 64 72 69 76 65 6e 3a 20 | 5c 63 22 0a 72 65 61 64 |driven: |\c".read|
|00001060| 20 43 5f 4b 4d 53 0a 0a | 65 63 68 6f 20 22 45 6e | C_KMS..|echo "En|
|00001070| 74 65 72 20 6c 69 74 65 | 72 73 20 75 73 65 64 3a |ter lite|rs used:|
|00001080| 20 5c 63 22 0a 72 65 61 | 64 20 43 5f 4c 49 54 45 | \c".rea|d C_LITE|
|00001090| 52 53 0a 0a 65 63 68 6f | 20 22 5c 6e 4f 6e 65 20 |RS..echo| "\nOne |
|000010a0| 6d 6f 6d 65 6e 74 20 2d | 20 63 61 6c 63 75 6c 61 |moment -| calcula|
|000010b0| 74 69 6e 67 20 63 6f 6e | 73 75 6d 70 74 69 6f 6e |ting con|sumption|
|000010c0| 20 66 69 67 75 72 65 73 | 20 2e 2e 2e 20 5c 63 22 | figures| ... \c"|
|000010d0| 0a 43 5f 4d 49 4c 45 53 | 3d 60 66 70 64 69 76 69 |.C_MILES|=`fpdivi|
|000010e0| 64 65 20 24 43 5f 4b 4d | 53 20 24 4d 49 4c 45 60 |de $C_KM|S $MILE`|
|000010f0| 0a 43 5f 55 53 47 41 4c | 3d 60 66 70 64 69 76 69 |.C_USGAL|=`fpdivi|
|00001100| 64 65 20 24 43 5f 4c 49 | 54 45 52 53 20 24 55 53 |de $C_LI|TERS $US|
|00001110| 5f 47 41 4c 4c 4f 4e 60 | 0a 43 5f 55 4b 47 41 4c |_GALLON`|.C_UKGAL|
|00001120| 3d 60 66 70 64 69 76 69 | 64 65 20 24 43 5f 4c 49 |=`fpdivi|de $C_LI|
|00001130| 54 45 52 53 20 24 55 4b | 5f 47 41 4c 4c 4f 4e 60 |TERS $UK|_GALLON`|
|00001140| 0a 0a 54 5f 4d 49 4c 45 | 53 3d 60 66 70 61 64 64 |..T_MILE|S=`fpadd|
|00001150| 20 24 54 5f 4d 49 4c 45 | 53 20 24 43 5f 4d 49 4c | $T_MILE|S $C_MIL|
|00001160| 45 53 60 0a 54 5f 4b 4d | 53 3d 60 66 70 61 64 64 |ES`.T_KM|S=`fpadd|
|00001170| 20 24 54 5f 4b 4d 53 20 | 24 43 5f 4b 4d 53 60 0a | $T_KMS |$C_KMS`.|
|00001180| 54 5f 55 53 47 41 4c 3d | 60 66 70 61 64 64 20 24 |T_USGAL=|`fpadd $|
|00001190| 54 5f 55 53 47 41 4c 20 | 24 43 5f 55 53 47 41 4c |T_USGAL |$C_USGAL|
|000011a0| 60 0a 54 5f 55 4b 47 41 | 4c 3d 60 66 70 61 64 64 |`.T_UKGA|L=`fpadd|
|000011b0| 20 24 54 5f 55 4b 47 41 | 4c 20 24 43 5f 55 4b 47 | $T_UKGA|L $C_UKG|
|000011c0| 41 4c 60 0a 54 5f 4c 49 | 54 45 52 53 3d 60 66 70 |AL`.T_LI|TERS=`fp|
|000011d0| 61 64 64 20 24 54 5f 4c | 49 54 45 52 53 20 24 43 |add $T_L|ITERS $C|
|000011e0| 5f 4c 49 54 45 52 53 60 | 0a 0a 43 5f 55 53 4d 50 |_LITERS`|..C_USMP|
|000011f0| 47 3d 60 66 70 64 69 76 | 69 64 65 20 24 43 5f 4d |G=`fpdiv|ide $C_M|
|00001200| 49 4c 45 53 20 24 43 5f | 55 53 47 41 4c 60 0a 41 |ILES $C_|USGAL`.A|
|00001210| 5f 55 53 4d 50 47 3d 60 | 66 70 64 69 76 69 64 65 |_USMPG=`|fpdivide|
|00001220| 20 24 54 5f 4d 49 4c 45 | 53 20 24 54 5f 55 53 47 | $T_MILE|S $T_USG|
|00001230| 41 4c 60 0a 0a 43 5f 55 | 4b 4d 50 47 3d 60 66 70 |AL`..C_U|KMPG=`fp|
|00001240| 64 69 76 69 64 65 20 24 | 43 5f 4d 49 4c 45 53 20 |divide $|C_MILES |
|00001250| 24 43 5f 55 4b 47 41 4c | 60 0a 41 5f 55 4b 4d 50 |$C_UKGAL|`.A_UKMP|
|00001260| 47 3d 60 66 70 64 69 76 | 69 64 65 20 24 54 5f 4d |G=`fpdiv|ide $T_M|
|00001270| 49 4c 45 53 20 24 54 5f | 55 4b 47 41 4c 60 0a 0a |ILES $T_|UKGAL`..|
|00001280| 54 4d 50 3d 60 66 70 64 | 69 76 69 64 65 20 24 43 |TMP=`fpd|ivide $C|
|00001290| 5f 4b 4d 53 20 31 30 30 | 2e 30 30 60 0a 43 5f 4c |_KMS 100|.00`.C_L|
|000012a0| 50 31 30 30 3d 60 66 70 | 64 69 76 69 64 65 20 24 |P100=`fp|divide $|
|000012b0| 43 5f 4c 49 54 45 52 53 | 20 24 54 4d 50 60 0a 54 |C_LITERS| $TMP`.T|
|000012c0| 4d 50 3d 60 66 70 64 69 | 76 69 64 65 20 24 54 5f |MP=`fpdi|vide $T_|
|000012d0| 4b 4d 53 20 31 30 30 2e | 30 30 60 0a 41 5f 4c 50 |KMS 100.|00`.A_LP|
|000012e0| 31 30 30 3d 60 66 70 64 | 69 76 69 64 65 20 24 54 |100=`fpd|ivide $T|
|000012f0| 5f 4c 49 54 45 52 53 20 | 24 54 4d 50 60 0a 0a 65 |_LITERS |$TMP`..e|
|00001300| 63 68 6f 20 22 24 54 5f | 4d 49 4c 45 53 3a 24 54 |cho "$T_|MILES:$T|
|00001310| 5f 4b 4d 53 3a 24 54 5f | 55 53 47 41 4c 3a 24 54 |_KMS:$T_|USGAL:$T|
|00001320| 5f 55 4b 47 41 4c 3a 24 | 54 5f 4c 49 54 45 52 53 |_UKGAL:$|T_LITERS|
|00001330| 22 20 3e 20 24 46 49 4c | 45 0a 0a 65 63 68 6f 20 |" > $FIL|E..echo |
|00001340| 22 64 6f 6e 65 21 22 0a | 65 63 68 6f 20 22 5c 6e |"done!".|echo "\n|
|00001350| 46 75 65 6c 20 45 63 6f | 6e 6f 6d 79 3a 5c 6e 22 |Fuel Eco|nomy:\n"|
|00001360| 0a 65 63 68 6f 20 22 5c | 74 24 43 5f 4c 50 31 30 |.echo "\|t$C_LP10|
|00001370| 30 20 6c 69 74 65 72 73 | 20 70 65 72 20 31 30 30 |0 liters| per 100|
|00001380| 20 6b 6d 5c 74 5c 74 28 | 41 76 65 72 61 67 65 20 | km\t\t(|Average |
|00001390| 24 7b 41 5f 4c 50 31 30 | 30 7d 29 22 0a 65 63 68 |${A_LP10|0})".ech|
|000013a0| 6f 20 22 5c 74 24 43 5f | 55 4b 4d 50 47 20 6d 69 |o "\t$C_|UKMPG mi|
|000013b0| 6c 65 73 20 70 65 72 20 | 55 4b 20 67 61 6c 6c 6f |les per |UK gallo|
|000013c0| 6e 5c 74 28 41 76 65 72 | 61 67 65 20 24 7b 41 5f |n\t(Aver|age ${A_|
|000013d0| 55 4b 4d 50 47 7d 29 22 | 0a 65 63 68 6f 20 22 5c |UKMPG})"|.echo "\|
|000013e0| 74 24 43 5f 55 53 4d 50 | 47 20 6d 69 6c 65 73 20 |t$C_USMP|G miles |
|000013f0| 70 65 72 20 55 53 20 67 | 61 6c 6c 6f 6e 5c 74 28 |per US g|allon\t(|
|00001400| 41 76 65 72 61 67 65 20 | 24 7b 41 5f 55 53 4d 50 |Average |${A_USMP|
|00001410| 47 7d 29 22 0a 65 63 68 | 6f 20 22 5c 6e 44 6f 20 |G})".ech|o "\nDo |
|00001420| 79 6f 75 20 77 61 6e 74 | 20 61 20 70 72 69 6e 74 |you want| a print|
|00001430| 6f 75 74 20 6f 66 20 74 | 68 65 73 65 20 72 65 73 |out of t|hese res|
|00001440| 75 6c 74 73 3f 20 5c 63 | 22 0a 72 65 61 64 20 52 |ults? \c|".read R|
|00001450| 45 50 4c 59 0a 69 66 20 | 5b 20 22 24 52 45 50 4c |EPLY.if |[ "$REPL|
|00001460| 59 22 20 21 3d 20 22 79 | 22 20 2d 61 20 22 24 52 |Y" != "y|" -a "$R|
|00001470| 45 50 4c 59 22 20 21 3d | 20 22 59 22 20 5d 20 3b |EPLY" !=| "Y" ] ;|
|00001480| 20 74 68 65 6e 0a 09 65 | 78 69 74 0a 66 69 0a 65 | then..e|xit.fi.e|
|00001490| 63 68 6f 20 22 0a 4d 50 | 47 20 28 45 75 72 29 20 |cho ".MP|G (Eur) |
|000014a0| 2d 2d 20 46 75 65 6c 20 | 45 63 6f 6e 6f 6d 79 20 |-- Fuel |Economy |
|000014b0| 43 61 6c 63 75 6c 61 74 | 6f 72 0a 46 75 65 6c 20 |Calculat|or.Fuel |
|000014c0| 45 63 6f 6e 6f 6d 79 20 | 53 74 61 74 65 6d 65 6e |Economy |Statemen|
|000014d0| 74 20 61 73 20 6f 66 20 | 60 64 61 74 65 20 27 2b |t as of |`date '+|
|000014e0| 25 68 20 25 64 2c 20 31 | 39 25 79 27 60 0a 0a 4b |%h %d, 1|9%y'`..K|
|000014f0| 69 6c 6f 6d 65 74 65 72 | 73 20 74 68 69 73 20 46 |ilometer|s this F|
|00001500| 69 6c 6c 69 6e 67 3a 20 | 20 20 24 43 5f 4b 4d 53 |illing: | $C_KMS|
|00001510| 5c 74 28 24 43 5f 4d 49 | 4c 45 53 20 6d 69 6c 65 |\t($C_MI|LES mile|
|00001520| 73 29 0a 4c 69 74 65 72 | 73 20 74 68 69 73 20 46 |s).Liter|s this F|
|00001530| 69 6c 6c 69 6e 67 3a 20 | 20 20 20 20 20 20 24 43 |illing: | $C|
|00001540| 5f 4c 49 54 45 52 53 5c | 74 28 24 43 5f 55 53 47 |_LITERS\|t($C_USG|
|00001550| 41 4c 20 55 53 2c 20 24 | 43 5f 55 4b 47 41 4c 20 |AL US, $|C_UKGAL |
|00001560| 55 4b 29 0a 0a 54 6f 74 | 61 6c 20 4b 69 6c 6f 6d |UK)..Tot|al Kilom|
|00001570| 65 74 65 72 73 20 73 6f | 20 66 61 72 3a 20 20 20 |eters so| far: |
|00001580| 24 54 5f 4b 4d 53 5c 74 | 28 24 54 5f 4d 49 4c 45 |$T_KMS\t|($T_MILE|
|00001590| 53 20 6d 69 6c 65 73 29 | 0a 54 6f 74 61 6c 20 4c |S miles)|.Total L|
|000015a0| 69 74 65 72 73 20 73 6f | 20 66 61 72 3a 20 20 20 |iters so| far: |
|000015b0| 20 20 20 20 24 54 5f 4c | 49 54 45 52 53 5c 74 28 | $T_L|ITERS\t(|
|000015c0| 24 54 5f 55 53 47 41 4c | 20 55 53 2c 20 24 54 5f |$T_USGAL| US, $T_|
|000015d0| 55 4b 47 41 4c 20 55 4b | 29 0a 0a 43 75 72 72 65 |UKGAL UK|)..Curre|
|000015e0| 6e 74 20 4c 69 74 65 72 | 73 20 70 65 72 20 31 30 |nt Liter|s per 10|
|000015f0| 30 20 6b 6d 3a 20 24 43 | 5f 4c 50 31 30 30 5c 74 |0 km: $C|_LP100\t|
|00001600| 28 24 43 5f 55 53 4d 50 | 47 20 55 53 2c 20 24 43 |($C_USMP|G US, $C|
|00001610| 5f 55 4b 4d 50 47 20 55 | 4b 29 0a 41 76 65 72 61 |_UKMPG U|K).Avera|
|00001620| 67 65 20 4c 69 74 65 72 | 73 20 70 65 72 20 31 30 |ge Liter|s per 10|
|00001630| 30 20 6b 6d 3a 20 24 41 | 5f 4c 50 31 30 30 5c 74 |0 km: $A|_LP100\t|
|00001640| 28 24 41 5f 55 53 4d 50 | 47 20 55 53 2c 20 24 41 |($A_USMP|G US, $A|
|00001650| 5f 55 4b 4d 50 47 20 55 | 4b 29 5c 0a 22 20 7c 20 |_UKMPG U|K)\." | |
|00001660| 6c 70 20 2d 73 20 26 0a | 53 48 41 52 5f 45 4f 46 |lp -s &.|SHAR_EOF|
|00001670| 0a 66 69 20 23 20 65 6e | 64 20 6f 66 20 6f 76 65 |.fi # en|d of ove|
|00001680| 72 77 72 69 74 69 6e 67 | 20 63 68 65 63 6b 0a 69 |rwriting| check.i|
|00001690| 66 20 74 65 73 74 20 2d | 66 20 27 66 70 64 69 76 |f test -|f 'fpdiv|
|000016a0| 69 64 65 2e 31 27 0a 74 | 68 65 6e 0a 09 65 63 68 |ide.1'.t|hen..ech|
|000016b0| 6f 20 73 68 61 72 3a 20 | 77 69 6c 6c 20 6e 6f 74 |o shar: |will not|
|000016c0| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|000016d0| 74 69 6e 67 20 66 69 6c | 65 20 22 27 66 70 64 69 |ting fil|e "'fpdi|
|000016e0| 76 69 64 65 2e 31 27 22 | 0a 65 6c 73 65 0a 63 61 |vide.1'"|.else.ca|
|000016f0| 74 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |t << \SH|AR_EOF >|
|00001700| 20 27 66 70 64 69 76 69 | 64 65 2e 31 27 0a 2e 54 | 'fpdivi|de.1'..T|
|00001710| 48 20 46 50 44 49 56 49 | 44 45 20 31 4c 20 4c 6f |H FPDIVI|DE 1L Lo|
|00001720| 63 61 6c 0a 2e 53 48 20 | 4e 41 4d 45 0a 66 70 64 |cal..SH |NAME.fpd|
|00001730| 69 76 69 64 65 2c 20 66 | 70 6d 75 6c 74 69 70 6c |ivide, f|pmultipl|
|00001740| 79 2c 20 66 70 61 64 64 | 2c 20 66 70 73 75 62 74 |y, fpadd|, fpsubt|
|00001750| 72 61 63 74 20 5c 2d 0a | 66 6c 6f 61 74 69 6e 67 |ract \-.|floating|
|00001760| 20 70 6f 69 6e 74 20 6d | 61 74 68 20 70 72 6f 67 | point m|ath prog|
|00001770| 72 61 6d 73 20 66 6f 72 | 20 73 68 65 6c 6c 20 73 |rams for| shell s|
|00001780| 63 72 69 70 74 73 0a 2e | 53 48 20 53 59 4e 4f 50 |cripts..|SH SYNOP|
|00001790| 53 49 53 0a 66 70 64 69 | 76 69 64 65 0a 2e 49 20 |SIS.fpdi|vide..I |
|000017a0| 6e 75 6d 31 20 6e 75 6d | 32 0a 23 20 70 65 72 66 |num1 num|2.# perf|
|000017b0| 6f 72 6d 73 20 74 68 65 | 20 64 69 76 69 73 69 6f |orms the| divisio|
|000017c0| 6e 0a 2e 49 20 6e 75 6d | 31 20 2f 20 6e 75 6d 32 |n..I num|1 / num2|
|000017d0| 0a 0a 66 70 6d 75 6c 74 | 69 70 6c 79 0a 2e 49 20 |..fpmult|iply..I |
|000017e0| 6e 75 6d 31 20 6e 75 6d | 32 0a 23 20 70 65 72 66 |num1 num|2.# perf|
|000017f0| 6f 72 6d 73 20 74 68 65 | 20 6d 75 6c 74 69 70 6c |orms the| multipl|
|00001800| 69 63 61 74 69 6f 6e 0a | 2e 49 20 6e 75 6d 31 20 |ication.|.I num1 |
|00001810| 2a 20 6e 75 6d 32 0a 0a | 66 70 61 64 64 0a 2e 49 |* num2..|fpadd..I|
|00001820| 20 6e 75 6d 31 20 6e 75 | 6d 32 0a 23 20 70 65 72 | num1 nu|m2.# per|
|00001830| 66 6f 72 6d 73 20 74 68 | 65 20 61 64 64 69 74 69 |forms th|e additi|
|00001840| 6f 6e 0a 2e 49 20 6e 75 | 6d 31 20 2b 20 6e 75 6d |on..I nu|m1 + num|
|00001850| 32 0a 0a 66 70 73 75 62 | 74 72 61 63 74 0a 2e 49 |2..fpsub|tract..I|
|00001860| 20 6e 75 6d 31 20 6e 75 | 6d 32 0a 23 20 70 65 72 | num1 nu|m2.# per|
|00001870| 66 6f 72 6d 73 20 74 68 | 65 20 73 75 62 74 72 61 |forms th|e subtra|
|00001880| 63 74 69 6f 6e 0a 2e 49 | 20 6e 75 6d 31 20 2d 20 |ction..I| num1 - |
|00001890| 6e 75 6d 32 0a 0a 2e 53 | 48 20 44 45 53 43 52 49 |num2...S|H DESCRI|
|000018a0| 50 54 49 4f 4e 0a 54 68 | 65 73 65 20 63 6f 6d 6d |PTION.Th|ese comm|
|000018b0| 61 6e 64 73 2c 20 77 68 | 69 63 68 20 61 72 65 20 |ands, wh|ich are |
|000018c0| 72 65 61 6c 6c 79 20 6c | 69 6e 6b 73 20 74 6f 20 |really l|inks to |
|000018d0| 74 68 65 20 73 61 6d 65 | 20 70 72 6f 67 72 61 6d |the same| program|
|000018e0| 2c 20 70 65 72 66 6f 72 | 6d 0a 74 68 65 20 66 6c |, perfor|m.the fl|
|000018f0| 6f 61 74 69 6e 67 20 70 | 6f 69 6e 74 20 61 72 69 |oating p|oint ari|
|00001900| 74 68 6d 65 74 69 63 61 | 6c 20 6f 70 65 72 61 74 |thmetica|l operat|
|00001910| 69 6f 6e 73 20 61 73 20 | 6c 69 73 74 65 64 20 61 |ions as |listed a|
|00001920| 62 6f 76 65 2c 20 61 6e | 64 20 70 72 69 6e 74 0a |bove, an|d print.|
|00001930| 74 68 65 69 72 20 72 65 | 73 75 6c 74 20 28 77 69 |their re|sult (wi|
|00001940| 74 68 20 61 20 70 72 65 | 63 69 73 69 6f 6e 20 6f |th a pre|cision o|
|00001950| 66 20 74 77 6f 20 64 65 | 63 69 6d 61 6c 20 64 69 |f two de|cimal di|
|00001960| 67 69 74 73 29 20 6f 6e | 20 74 68 65 20 73 74 61 |gits) on| the sta|
|00001970| 6e 64 61 72 64 0a 6f 75 | 74 70 75 74 2e 0a 0a 54 |ndard.ou|tput...T|
|00001980| 68 65 79 20 61 72 65 20 | 64 65 73 69 67 6e 65 64 |hey are |designed|
|00001990| 20 74 6f 20 61 64 64 20 | 73 69 6d 70 6c 65 20 66 | to add |simple f|
|000019a0| 6c 6f 61 74 69 6e 67 20 | 70 6f 69 6e 74 20 61 72 |loating |point ar|
|000019b0| 69 74 68 6d 65 74 69 63 | 20 74 6f 20 42 6f 75 72 |ithmetic| to Bour|
|000019c0| 6e 65 20 61 6e 64 0a 4b | 6f 72 6e 20 73 68 65 6c |ne and.K|orn shel|
|000019d0| 6c 20 73 63 72 69 70 74 | 73 2e 0a 0a 2e 53 48 20 |l script|s....SH |
|000019e0| 49 4e 53 54 41 4c 4c 41 | 54 49 4f 4e 0a 43 6f 6d |INSTALLA|TION.Com|
|000019f0| 70 69 6c 65 20 74 68 65 | 20 73 6f 75 72 63 65 20 |pile the| source |
|00001a00| 66 69 6c 65 2c 0a 2e 49 | 20 66 70 64 69 76 69 64 |file,..I| fpdivid|
|00001a10| 65 2e 63 2c 0a 63 6f 70 | 79 20 74 68 65 20 72 65 |e.c,.cop|y the re|
|00001a20| 73 75 6c 74 69 6e 67 20 | 65 78 65 63 75 74 61 62 |sulting |executab|
|00001a30| 6c 65 20 69 6e 74 6f 20 | 79 6f 75 72 20 6c 6f 63 |le into |your loc|
|00001a40| 61 6c 0a 2e 49 20 62 69 | 6e 0a 64 69 72 65 63 74 |al..I bi|n.direct|
|00001a50| 6f 72 79 2c 20 61 6e 64 | 20 6d 61 6b 65 20 61 64 |ory, and| make ad|
|00001a60| 64 69 74 69 6f 6e 61 6c | 20 6c 69 6e 6b 73 0a 2e |ditional| links..|
|00001a70| 49 20 66 70 6d 75 6c 74 | 69 70 6c 79 2c 20 66 70 |I fpmult|iply, fp|
|00001a80| 61 64 64 2c 0a 61 6e 64 | 0a 2e 49 20 66 70 73 75 |add,.and|..I fpsu|
|00001a90| 62 74 72 61 63 74 0a 74 | 6f 20 74 68 65 20 73 61 |btract.t|o the sa|
|00001aa0| 6d 65 20 62 69 6e 61 72 | 79 2e 0a 0a 2e 53 48 20 |me binar|y....SH |
|00001ab0| 41 55 54 48 4f 52 0a 57 | 6f 6c 66 20 4e 2e 20 50 |AUTHOR.W|olf N. P|
|00001ac0| 61 75 6c 2c 20 69 68 6e | 70 34 21 6b 69 6c 6c 65 |aul, ihn|p4!kille|
|00001ad0| 72 21 64 63 73 21 77 6e | 70 0a 2e 62 72 0a 52 65 |r!dcs!wn|p..br.Re|
|00001ae0| 6c 65 61 73 65 64 20 69 | 6e 74 6f 20 74 68 65 20 |leased i|nto the |
|00001af0| 50 75 62 6c 69 63 20 44 | 6f 6d 61 69 6e 2c 20 4a |Public D|omain, J|
|00001b00| 61 6e 20 31 38 2c 20 31 | 39 38 38 0a 0a 53 48 41 |an 18, 1|988..SHA|
|00001b10| 52 5f 45 4f 46 0a 66 69 | 20 23 20 65 6e 64 20 6f |R_EOF.fi| # end o|
|00001b20| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|00001b30| 65 63 6b 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |eck.if t|est -f '|
|00001b40| 66 70 64 69 76 69 64 65 | 2e 63 27 0a 74 68 65 6e |fpdivide|.c'.then|
|00001b50| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00001b60| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00001b70| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00001b80| 27 66 70 64 69 76 69 64 | 65 2e 63 27 22 0a 65 6c |'fpdivid|e.c'".el|
|00001b90| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|00001ba0| 45 4f 46 20 3e 20 27 66 | 70 64 69 76 69 64 65 2e |EOF > 'f|pdivide.|
|00001bb0| 63 27 0a 2f 2a 20 66 70 | 64 69 76 69 64 65 2e 63 |c'./* fp|divide.c|
|00001bc0| 20 2d 20 66 6c 6f 61 74 | 69 6e 67 20 70 6f 69 6e | - float|ing poin|
|00001bd0| 74 20 6d 61 74 68 20 70 | 72 6f 67 72 61 6d 0a 20 |t math p|rogram. |
|00001be0| 2a 0a 20 2a 20 54 68 65 | 20 70 72 6f 67 72 61 6d |*. * The| program|
|00001bf0| 27 73 20 61 63 74 69 6f | 6e 20 64 65 70 65 6e 64 |'s actio|n depend|
|00001c00| 73 20 6f 6e 20 69 74 73 | 20 6e 61 6d 65 3a 0a 20 |s on its| name:. |
|00001c10| 2a 0a 20 2a 20 66 70 64 | 69 76 69 64 65 09 09 64 |*. * fpd|ivide..d|
|00001c20| 69 76 69 64 65 20 74 77 | 6f 20 66 6c 6f 61 74 69 |ivide tw|o floati|
|00001c30| 6e 67 20 70 6f 69 6e 74 | 20 6e 75 6d 62 65 72 73 |ng point| numbers|
|00001c40| 0a 20 2a 20 66 70 6d 75 | 6c 74 69 70 6c 79 09 6d |. * fpmu|ltiply.m|
|00001c50| 75 6c 74 69 70 6c 79 20 | 74 77 6f 20 66 6c 6f 61 |ultiply |two floa|
|00001c60| 74 69 6e 67 20 70 6f 69 | 6e 74 20 6e 75 6d 62 65 |ting poi|nt numbe|
|00001c70| 72 73 0a 20 2a 20 66 70 | 61 64 64 09 09 61 64 64 |rs. * fp|add..add|
|00001c80| 20 74 77 6f 20 66 6c 6f | 61 74 69 6e 67 20 70 6f | two flo|ating po|
|00001c90| 69 6e 74 20 6e 75 6d 62 | 65 72 73 0a 20 2a 20 66 |int numb|ers. * f|
|00001ca0| 70 73 75 62 74 72 61 63 | 74 09 73 75 62 74 72 61 |psubtrac|t.subtra|
|00001cb0| 63 74 20 74 77 6f 20 66 | 6c 6f 61 74 69 6e 67 20 |ct two f|loating |
|00001cc0| 70 6f 69 6e 74 20 6e 75 | 6d 62 65 72 73 0a 20 2a |point nu|mbers. *|
|00001cd0| 0a 20 2a 20 49 6e 20 61 | 6e 79 20 63 61 73 65 2c |. * In a|ny case,|
|00001ce0| 20 74 68 65 20 70 72 6f | 67 72 61 6d 20 74 61 6b | the pro|gram tak|
|00001cf0| 65 73 20 74 77 6f 20 61 | 72 67 75 6d 65 6e 74 73 |es two a|rguments|
|00001d00| 20 61 6e 64 20 70 72 69 | 6e 74 73 20 69 74 73 20 | and pri|nts its |
|00001d10| 72 65 73 75 6c 74 0a 20 | 2a 20 74 6f 20 74 68 65 |result. |* to the|
|00001d20| 20 73 74 61 6e 64 61 72 | 64 20 6f 75 74 70 75 74 | standar|d output|
|00001d30| 2e 0a 20 2a 0a 20 2a 20 | 54 68 65 20 70 72 6f 67 |.. *. * |The prog|
|00001d40| 72 61 6d 20 77 61 73 20 | 77 72 69 74 74 65 6e 20 |ram was |written |
|00001d50| 74 6f 20 61 64 64 20 66 | 6c 6f 61 74 69 6e 67 20 |to add f|loating |
|00001d60| 70 6f 69 6e 74 20 61 72 | 69 74 68 6d 65 74 69 63 |point ar|ithmetic|
|00001d70| 20 74 6f 20 73 68 65 6c | 6c 20 70 72 6f 67 72 61 | to shel|l progra|
|00001d80| 6d 73 2e 0a 20 2a 0a 20 | 2a 20 41 75 74 68 6f 72 |ms.. *. |* Author|
|00001d90| 3a 20 57 6f 6c 66 20 4e | 2e 20 50 61 75 6c 2c 20 |: Wolf N|. Paul, |
|00001da0| 69 68 6e 70 34 21 6b 69 | 6c 6c 65 72 21 64 63 73 |ihnp4!ki|ller!dcs|
|00001db0| 0a 20 2a 20 0a 20 2a 20 | 52 65 6c 65 61 73 65 64 |. * . * |Released|
|00001dc0| 20 69 6e 74 6f 20 74 68 | 65 20 50 75 62 6c 69 63 | into th|e Public|
|00001dd0| 20 44 6f 6d 61 69 6e 2c | 20 4a 61 6e 20 31 38 2c | Domain,| Jan 18,|
|00001de0| 20 31 39 38 38 0a 20 2a | 2f 0a 0a 23 69 6e 63 6c | 1988. *|/..#incl|
|00001df0| 75 64 65 20 3c 73 74 64 | 69 6f 2e 68 3e 0a 0a 0a |ude <std|io.h>...|
|00001e00| 63 68 61 72 20 2a 62 61 | 73 65 6e 61 6d 65 28 73 |char *ba|sename(s|
|00001e10| 29 0a 63 68 61 72 20 2a | 73 3b 0a 7b 0a 09 63 68 |).char *|s;.{..ch|
|00001e20| 61 72 20 2a 62 61 73 65 | 3b 0a 09 63 68 61 72 20 |ar *base|;..char |
|00001e30| 2a 73 74 72 72 63 68 72 | 28 29 3b 0a 0a 09 69 66 |*strrchr|();...if|
|00001e40| 20 28 20 28 20 62 61 73 | 65 20 3d 20 73 74 72 72 | ( ( bas|e = strr|
|00001e50| 63 68 72 28 73 2c 20 27 | 2f 27 29 29 20 21 3d 20 |chr(s, '|/')) != |
|00001e60| 4e 55 4c 4c 29 0a 09 09 | 72 65 74 75 72 6e 28 26 |NULL)...|return(&|
|00001e70| 62 61 73 65 5b 31 5d 29 | 3b 0a 09 72 65 74 75 72 |base[1])|;..retur|
|00001e80| 6e 28 73 29 3b 0a 7d 0a | 0a 0a 6d 61 69 6e 28 61 |n(s);.}.|..main(a|
|00001e90| 72 67 63 2c 20 61 72 67 | 76 29 0a 69 6e 74 20 61 |rgc, arg|v).int a|
|00001ea0| 72 67 63 3b 0a 63 68 61 | 72 20 2a 2a 61 72 67 76 |rgc;.cha|r **argv|
|00001eb0| 3b 0a 7b 0a 09 69 6e 74 | 20 64 69 76 69 73 69 6f |;.{..int| divisio|
|00001ec0| 6e 2c 20 6d 75 6c 74 69 | 70 6c 69 63 61 74 69 6f |n, multi|plicatio|
|00001ed0| 6e 2c 20 61 64 64 69 74 | 69 6f 6e 2c 20 73 75 62 |n, addit|ion, sub|
|00001ee0| 74 72 61 63 74 69 6f 6e | 3b 0a 09 63 68 61 72 20 |traction|;..char |
|00001ef0| 2a 70 72 6f 67 6e 61 6d | 65 3b 0a 09 63 68 61 72 |*prognam|e;..char|
|00001f00| 20 2a 62 61 73 65 6e 61 | 6d 65 28 29 3b 0a 09 66 | *basena|me();..f|
|00001f10| 6c 6f 61 74 20 64 69 76 | 69 64 65 6e 64 2c 20 64 |loat div|idend, d|
|00001f20| 69 76 69 73 6f 72 2c 20 | 71 75 6f 74 69 65 6e 74 |ivisor, |quotient|
|00001f30| 3b 0a 09 66 6c 6f 61 74 | 20 66 61 63 74 6f 72 31 |;..float| factor1|
|00001f40| 2c 20 66 61 63 74 6f 72 | 32 2c 20 70 72 6f 64 75 |, factor|2, produ|
|00001f50| 63 74 3b 0a 09 66 6c 6f | 61 74 20 6e 75 6d 31 2c |ct;..flo|at num1,|
|00001f60| 20 6e 75 6d 32 2c 20 73 | 75 6d 3b 0a 09 66 6c 6f | num2, s|um;..flo|
|00001f70| 61 74 20 61 74 6f 66 28 | 29 3b 0a 0a 09 70 72 6f |at atof(|);...pro|
|00001f80| 67 6e 61 6d 65 20 3d 20 | 62 61 73 65 6e 61 6d 65 |gname = |basename|
|00001f90| 28 61 72 67 76 5b 30 5d | 29 3b 0a 0a 09 69 66 20 |(argv[0]|);...if |
|00001fa0| 28 20 73 74 72 63 6d 70 | 28 70 72 6f 67 6e 61 6d |( strcmp|(prognam|
|00001fb0| 65 2c 20 22 66 70 64 69 | 76 69 64 65 22 29 20 3d |e, "fpdi|vide") =|
|00001fc0| 3d 20 30 20 29 0a 09 09 | 64 69 76 69 73 69 6f 6e |= 0 )...|division|
|00001fd0| 20 3d 20 31 3b 0a 09 65 | 6c 73 65 20 69 66 20 28 | = 1;..e|lse if (|
|00001fe0| 20 73 74 72 63 6d 70 28 | 70 72 6f 67 6e 61 6d 65 | strcmp(|progname|
|00001ff0| 2c 20 22 66 70 6d 75 6c | 74 69 70 6c 79 22 29 20 |, "fpmul|tiply") |
|00002000| 3d 3d 20 30 20 29 0a 09 | 09 6d 75 6c 74 69 70 6c |== 0 )..|.multipl|
|00002010| 69 63 61 74 69 6f 6e 20 | 3d 20 31 3b 0a 09 65 6c |ication |= 1;..el|
|00002020| 73 65 20 69 66 20 28 20 | 73 74 72 63 6d 70 28 70 |se if ( |strcmp(p|
|00002030| 72 6f 67 6e 61 6d 65 2c | 20 22 66 70 61 64 64 22 |rogname,| "fpadd"|
|00002040| 29 20 3d 3d 20 30 20 29 | 0a 09 09 61 64 64 69 74 |) == 0 )|...addit|
|00002050| 69 6f 6e 20 3d 20 31 3b | 0a 09 65 6c 73 65 20 69 |ion = 1;|..else i|
|00002060| 66 20 28 20 73 74 72 63 | 6d 70 28 70 72 6f 67 6e |f ( strc|mp(progn|
|00002070| 61 6d 65 2c 20 22 66 70 | 73 75 62 74 72 61 63 74 |ame, "fp|subtract|
|00002080| 22 29 20 3d 3d 20 30 29 | 0a 09 09 73 75 62 74 72 |") == 0)|...subtr|
|00002090| 61 63 74 69 6f 6e 20 3d | 20 31 3b 0a 0a 09 69 66 |action =| 1;...if|
|000020a0| 20 28 20 61 72 67 63 20 | 21 3d 20 33 20 29 0a 09 | ( argc |!= 3 )..|
|000020b0| 7b 0a 09 09 69 66 20 28 | 20 64 69 76 69 73 69 6f |{...if (| divisio|
|000020c0| 6e 20 29 0a 09 09 09 66 | 70 72 69 6e 74 66 28 73 |n )....f|printf(s|
|000020d0| 74 64 65 72 72 2c 22 55 | 73 61 67 65 3a 20 25 73 |tderr,"U|sage: %s|
|000020e0| 20 64 69 76 69 64 65 6e | 64 20 64 69 76 69 73 6f | dividen|d diviso|
|000020f0| 72 5c 6e 5c 6e 22 2c 20 | 70 72 6f 67 6e 61 6d 65 |r\n\n", |progname|
|00002100| 29 3b 0a 09 09 65 6c 73 | 65 20 69 66 20 28 20 6d |);...els|e if ( m|
|00002110| 75 6c 74 69 70 6c 69 63 | 61 74 69 6f 6e 20 29 0a |ultiplic|ation ).|
|00002120| 09 09 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |...fprin|tf(stder|
|00002130| 72 2c 22 55 73 61 67 65 | 3a 20 25 73 20 66 61 63 |r,"Usage|: %s fac|
|00002140| 74 6f 72 31 20 66 61 63 | 74 6f 72 32 5c 6e 5c 6e |tor1 fac|tor2\n\n|
|00002150| 22 2c 20 70 72 6f 67 6e | 61 6d 65 29 3b 0a 09 09 |", progn|ame);...|
|00002160| 65 6c 73 65 20 69 66 20 | 28 20 61 64 64 69 74 69 |else if |( additi|
|00002170| 6f 6e 20 7c 7c 20 73 75 | 62 74 72 61 63 74 69 6f |on || su|btractio|
|00002180| 6e 29 0a 09 09 09 66 70 | 72 69 6e 74 66 28 73 74 |n)....fp|rintf(st|
|00002190| 64 65 72 72 2c 22 55 73 | 61 67 65 3a 20 25 73 20 |derr,"Us|age: %s |
|000021a0| 6e 75 6d 31 20 6e 75 6d | 31 5c 6e 5c 6e 22 2c 20 |num1 num|1\n\n", |
|000021b0| 70 72 6f 67 6e 61 6d 65 | 29 3b 0a 09 09 65 78 69 |progname|);...exi|
|000021c0| 74 28 2d 31 29 3b 0a 09 | 7d 0a 0a 09 69 66 20 28 |t(-1);..|}...if (|
|000021d0| 20 64 69 76 69 73 69 6f | 6e 20 29 0a 09 7b 0a 09 | divisio|n )..{..|
|000021e0| 09 64 69 76 69 64 65 6e | 64 20 3d 20 61 74 6f 66 |.dividen|d = atof|
|000021f0| 28 61 72 67 76 5b 31 5d | 29 3b 0a 09 09 64 69 76 |(argv[1]|);...div|
|00002200| 69 73 6f 72 20 20 3d 20 | 61 74 6f 66 28 61 72 67 |isor = |atof(arg|
|00002210| 76 5b 32 5d 29 3b 0a 09 | 09 69 66 20 28 20 64 69 |v[2]);..|.if ( di|
|00002220| 76 69 73 6f 72 20 3c 3d | 20 30 2e 30 20 29 0a 09 |visor <=| 0.0 )..|
|00002230| 09 7b 0a 09 09 09 66 70 | 72 69 6e 74 66 28 73 74 |.{....fp|rintf(st|
|00002240| 64 65 72 72 2c 22 25 73 | 3a 20 64 69 76 69 73 6f |derr,"%s|: diviso|
|00002250| 72 20 69 73 20 7a 65 72 | 6f 20 6f 72 20 6c 65 73 |r is zer|o or les|
|00002260| 73 2e 5c 6e 22 2c 0a 09 | 09 09 09 09 61 72 67 76 |s.\n",..|....argv|
|00002270| 5b 30 5d 29 3b 0a 09 09 | 09 65 78 69 74 28 2d 32 |[0]);...|.exit(-2|
|00002280| 29 3b 0a 09 09 7d 0a 09 | 09 71 75 6f 74 69 65 6e |);...}..|.quotien|
|00002290| 74 20 3d 20 64 69 76 69 | 64 65 6e 64 20 2f 20 64 |t = divi|dend / d|
|000022a0| 69 76 69 73 6f 72 3b 0a | 09 09 66 70 72 69 6e 74 |ivisor;.|..fprint|
|000022b0| 66 28 73 74 64 6f 75 74 | 2c 22 25 2e 32 66 5c 6e |f(stdout|,"%.2f\n|
|000022c0| 22 2c 20 71 75 6f 74 69 | 65 6e 74 29 3b 0a 09 7d |", quoti|ent);..}|
|000022d0| 0a 09 65 6c 73 65 20 69 | 66 20 28 20 6d 75 6c 74 |..else i|f ( mult|
|000022e0| 69 70 6c 69 63 61 74 69 | 6f 6e 20 29 0a 09 7b 0a |iplicati|on )..{.|
|000022f0| 09 09 66 61 63 74 6f 72 | 31 20 3d 20 61 74 6f 66 |..factor|1 = atof|
|00002300| 28 61 72 67 76 5b 31 5d | 29 3b 0a 09 09 66 61 63 |(argv[1]|);...fac|
|00002310| 74 6f 72 32 20 3d 20 61 | 74 6f 66 28 61 72 67 76 |tor2 = a|tof(argv|
|00002320| 5b 32 5d 29 3b 0a 09 09 | 70 72 6f 64 75 63 74 20 |[2]);...|product |
|00002330| 3d 20 66 61 63 74 6f 72 | 31 20 2a 20 66 61 63 74 |= factor|1 * fact|
|00002340| 6f 72 32 3b 0a 09 09 66 | 70 72 69 6e 74 66 28 73 |or2;...f|printf(s|
|00002350| 74 64 6f 75 74 2c 22 25 | 2e 32 66 5c 6e 22 2c 20 |tdout,"%|.2f\n", |
|00002360| 70 72 6f 64 75 63 74 29 | 3b 0a 09 7d 0a 09 65 6c |product)|;..}..el|
|00002370| 73 65 20 69 66 20 28 20 | 61 64 64 69 74 69 6f 6e |se if ( |addition|
|00002380| 20 7c 7c 20 73 75 62 74 | 72 61 63 74 69 6f 6e 20 | || subt|raction |
|00002390| 29 0a 09 7b 0a 09 09 6e | 75 6d 31 20 3d 20 61 74 |)..{...n|um1 = at|
|000023a0| 6f 66 28 61 72 67 76 5b | 31 5d 29 3b 0a 09 09 6e |of(argv[|1]);...n|
|000023b0| 75 6d 32 20 3d 20 61 74 | 6f 66 28 61 72 67 76 5b |um2 = at|of(argv[|
|000023c0| 32 5d 29 3b 0a 09 09 69 | 66 20 28 20 61 64 64 69 |2]);...i|f ( addi|
|000023d0| 74 69 6f 6e 20 29 20 73 | 75 6d 20 3d 20 6e 75 6d |tion ) s|um = num|
|000023e0| 31 20 2b 20 6e 75 6d 32 | 3b 0a 09 09 65 6c 73 65 |1 + num2|;...else|
|000023f0| 20 69 66 20 28 20 73 75 | 62 74 72 61 63 74 69 6f | if ( su|btractio|
|00002400| 6e 20 29 20 73 75 6d 20 | 3d 20 6e 75 6d 31 20 2d |n ) sum |= num1 -|
|00002410| 20 6e 75 6d 32 3b 0a 09 | 09 66 70 72 69 6e 74 66 | num2;..|.fprintf|
|00002420| 28 73 74 64 6f 75 74 2c | 22 25 2e 32 66 5c 6e 22 |(stdout,|"%.2f\n"|
|00002430| 2c 20 73 75 6d 29 3b 0a | 09 7d 0a 7d 0a 53 48 41 |, sum);.|.}.}.SHA|
|00002440| 52 5f 45 4f 46 0a 66 69 | 20 23 20 65 6e 64 20 6f |R_EOF.fi| # end o|
|00002450| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|00002460| 65 63 6b 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |eck.if t|est -f '|
|00002470| 6d 70 67 2e 31 27 0a 74 | 68 65 6e 0a 09 65 63 68 |mpg.1'.t|hen..ech|
|00002480| 6f 20 73 68 61 72 3a 20 | 77 69 6c 6c 20 6e 6f 74 |o shar: |will not|
|00002490| 20 6f 76 65 72 2d 77 72 | 69 74 65 20 65 78 69 73 | over-wr|ite exis|
|000024a0| 74 69 6e 67 20 66 69 6c | 65 20 22 27 6d 70 67 2e |ting fil|e "'mpg.|
|000024b0| 31 27 22 0a 65 6c 73 65 | 0a 63 61 74 20 3c 3c 20 |1'".else|.cat << |
|000024c0| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 6d 70 67 |\SHAR_EO|F > 'mpg|
|000024d0| 2e 31 27 0a 2e 54 48 20 | 4d 50 47 20 31 4c 20 4c |.1'..TH |MPG 1L L|
|000024e0| 6f 63 61 6c 0a 2e 53 48 | 20 4e 41 4d 45 0a 6d 70 |ocal..SH| NAME.mp|
|000024f0| 67 2c 20 75 73 6d 70 67 | 2c 20 75 6b 6d 70 67 2c |g, usmpg|, ukmpg,|
|00002500| 20 65 75 72 6d 70 67 20 | 5c 2d 20 4d 69 6c 65 73 | eurmpg |\- Miles|
|00002510| 20 50 65 72 20 47 61 6c | 6c 6f 6e 2c 20 41 20 46 | Per Gal|lon, A F|
|00002520| 75 65 6c 20 45 63 6f 6e | 6f 6d 79 20 43 61 6c 63 |uel Econ|omy Calc|
|00002530| 75 6c 61 74 6f 72 0a 2e | 53 48 20 53 59 4e 4f 50 |ulator..|SH SYNOP|
|00002540| 53 49 53 0a 6d 70 67 0a | 2e 53 48 20 44 45 53 43 |SIS.mpg.|.SH DESC|
|00002550| 52 49 50 54 49 4f 4e 0a | 2e 42 20 4d 70 67 0a 69 |RIPTION.|.B Mpg.i|
|00002560| 73 20 61 0a 2e 49 20 66 | 75 65 6c 20 65 63 6f 6e |s a..I f|uel econ|
|00002570| 6f 6d 79 20 63 61 6c 63 | 75 6c 61 74 6f 72 2c 0a |omy calc|ulator,.|
|00002580| 69 2e 65 2e 20 69 74 20 | 63 61 6c 63 75 6c 61 74 |i.e. it |calculat|
|00002590| 65 73 20 66 75 65 6c 20 | 63 6f 6e 73 75 6d 70 74 |es fuel |consumpt|
|000025a0| 69 6f 6e 20 73 74 61 74 | 69 73 74 69 63 73 20 66 |ion stat|istics f|
|000025b0| 6f 72 20 61 20 6d 6f 74 | 6f 72 20 76 65 68 69 63 |or a mot|or vehic|
|000025c0| 6c 65 2e 0a 0a 54 68 65 | 20 70 72 6f 67 72 61 6d |le...The| program|
|000025d0| 20 64 69 73 70 6c 61 79 | 73 20 69 74 73 20 72 65 | display|s its re|
|000025e0| 73 75 6c 74 73 20 6f 6e | 20 74 68 65 20 74 65 72 |sults on| the ter|
|000025f0| 6d 69 6e 61 6c 20 73 63 | 72 65 65 6e 2c 20 61 6e |minal sc|reen, an|
|00002600| 64 20 6f 70 74 69 6f 6e | 61 6c 6c 79 0a 77 69 6c |d option|ally.wil|
|00002610| 6c 20 70 72 6f 64 75 63 | 65 20 61 20 73 68 6f 72 |l produc|e a shor|
|00002620| 74 20 73 74 61 74 65 6d | 65 6e 74 20 6f 6e 20 74 |t statem|ent on t|
|00002630| 68 65 20 73 74 61 6e 64 | 61 72 64 20 6c 69 6e 65 |he stand|ard line|
|00002640| 20 70 72 69 6e 74 65 72 | 2e 0a 0a 54 68 65 72 65 | printer|...There|
|00002650| 20 61 72 65 20 74 68 72 | 65 65 20 76 65 72 73 69 | are thr|ee versi|
|00002660| 6f 6e 73 20 6f 66 20 74 | 68 65 20 70 72 6f 67 72 |ons of t|he progr|
|00002670| 61 6d 2c 20 62 61 73 65 | 64 20 6f 6e 20 74 68 65 |am, base|d on the|
|00002680| 20 66 61 63 74 20 74 68 | 61 74 20 74 68 65 72 65 | fact th|at there|
|00002690| 20 61 72 65 0a 74 68 72 | 65 65 20 28 6f 72 20 72 | are.thr|ee (or r|
|000026a0| 61 74 68 65 72 2c 20 74 | 77 6f 20 61 6e 64 20 6f |ather, t|wo and o|
|000026b0| 6e 65 20 68 61 6c 66 29 | 20 73 79 73 74 65 6d 73 |ne half)| systems|
|000026c0| 20 6f 66 20 6d 65 61 73 | 75 72 65 6d 65 6e 74 20 | of meas|urement |
|000026d0| 63 6f 6d 6d 6f 6e 6c 79 | 20 75 73 65 64 0a 74 6f |commonly| used.to|
|000026e0| 20 6d 65 61 73 75 72 65 | 20 64 69 73 74 61 6e 63 | measure| distanc|
|000026f0| 65 20 74 72 61 76 65 6c | 6c 65 64 20 61 6e 64 20 |e travel|led and |
|00002700| 66 75 65 6c 20 63 6f 6e | 73 75 6d 65 64 2e 0a 0a |fuel con|sumed...|
|00002710| 2e 42 20 55 53 4d 50 47 | 0a 69 73 20 74 68 65 20 |.B USMPG|.is the |
|00002720| 41 6d 65 72 69 63 61 6e | 20 76 65 72 73 69 6f 6e |American| version|
|00002730| 20 6f 66 20 74 68 65 20 | 70 72 6f 67 72 61 6d 2c | of the |program,|
|00002740| 20 72 65 71 75 65 73 74 | 69 6e 67 20 69 6e 70 75 | request|ing inpu|
|00002750| 74 20 69 6e 20 6d 69 6c | 65 73 20 61 6e 64 20 0a |t in mil|es and .|
|00002760| 55 53 20 67 61 6c 6c 6f | 6e 73 2e 0a 0a 2e 42 20 |US gallo|ns....B |
|00002770| 55 4b 4d 50 47 0a 69 73 | 20 74 68 65 20 42 72 69 |UKMPG.is| the Bri|
|00002780| 74 69 73 68 20 76 65 72 | 73 69 6f 6e 20 6f 66 20 |tish ver|sion of |
|00002790| 74 68 65 20 70 72 6f 67 | 72 61 6d 2c 20 72 65 71 |the prog|ram, req|
|000027a0| 75 65 73 74 69 6e 67 20 | 69 6e 70 75 74 20 69 6e |uesting |input in|
|000027b0| 20 6d 69 6c 65 73 20 61 | 6e 64 20 49 6d 70 65 72 | miles a|nd Imper|
|000027c0| 69 61 6c 0a 67 61 6c 6c | 6f 6e 73 2e 20 4f 62 76 |ial.gall|ons. Obv|
|000027d0| 69 6f 75 73 6c 79 2c 20 | 69 74 20 69 73 20 75 73 |iously, |it is us|
|000027e0| 65 66 75 6c 20 61 6e 79 | 77 68 65 72 65 20 77 68 |eful any|where wh|
|000027f0| 65 72 65 20 74 68 69 73 | 20 63 6f 6d 62 69 6e 61 |ere this| combina|
|00002800| 74 69 6f 6e 20 6f 66 0a | 6d 65 61 73 75 72 65 6d |tion of.|measurem|
|00002810| 65 6e 74 73 20 69 73 20 | 75 73 65 64 2e 0a 0a 2e |ents is |used....|
|00002820| 42 20 45 55 52 4d 50 47 | 0a 69 73 20 74 68 65 20 |B EURMPG|.is the |
|00002830| 45 75 72 6f 70 65 61 6e | 20 6f 72 20 44 65 63 69 |European| or Deci|
|00002840| 6d 61 6c 20 76 65 72 73 | 69 6f 6e 20 6f 66 20 74 |mal vers|ion of t|
|00002850| 68 65 20 70 72 6f 67 72 | 61 6d 2c 20 72 65 71 75 |he progr|am, requ|
|00002860| 65 73 74 69 6e 67 20 69 | 6e 70 75 74 20 69 6e 0a |esting i|nput in.|
|00002870| 6b 69 6c 6f 6d 65 74 65 | 72 73 20 61 6e 64 20 6c |kilomete|rs and l|
|00002880| 69 74 65 72 73 2e 20 49 | 74 20 69 73 20 75 73 65 |iters. I|t is use|
|00002890| 66 75 6c 20 77 68 65 72 | 65 76 65 72 20 74 68 65 |ful wher|ever the|
|000028a0| 20 6d 65 74 72 69 63 20 | 73 79 73 74 65 6d 20 68 | metric |system h|
|000028b0| 61 73 20 62 65 65 6e 20 | 66 75 6c 6c 79 0a 69 6d |as been |fully.im|
|000028c0| 70 6c 65 6d 65 6e 74 65 | 64 2e 0a 0a 41 6c 6c 20 |plemente|d...All |
|000028d0| 74 68 72 65 65 20 76 65 | 72 73 69 6f 6e 73 20 6f |three ve|rsions o|
|000028e0| 66 20 74 68 65 20 70 72 | 6f 67 72 61 6d 20 70 72 |f the pr|ogram pr|
|000028f0| 69 6e 74 20 74 68 65 69 | 72 20 72 65 73 75 6c 74 |int thei|r result|
|00002900| 73 20 62 6f 74 68 20 66 | 6f 72 20 74 68 65 20 63 |s both f|or the c|
|00002910| 75 72 72 65 6e 74 0a 74 | 61 6e 6b 20 66 69 6c 6c |urrent.t|ank fill|
|00002920| 69 6e 67 2c 20 61 6e 64 | 20 66 6f 72 20 74 68 65 |ing, and| for the|
|00002930| 20 61 76 65 72 61 67 65 | 20 66 72 6f 6d 20 74 68 | average| from th|
|00002940| 65 20 66 69 72 73 74 20 | 74 69 6d 65 20 61 20 70 |e first |time a p|
|00002950| 61 72 74 69 63 75 6c 61 | 72 20 75 73 65 72 0a 75 |articula|r user.u|
|00002960| 73 65 64 20 74 68 65 20 | 70 72 6f 67 72 61 6d 20 |sed the |program |
|00002970| 28 6f 6c 64 20 64 61 74 | 61 20 66 6f 72 20 74 68 |(old dat|a for th|
|00002980| 69 73 20 70 75 72 70 6f | 73 65 20 69 73 20 6b 65 |is purpo|se is ke|
|00002990| 70 74 20 69 6e 20 61 20 | 66 69 6c 65 20 69 6e 20 |pt in a |file in |
|000029a0| 74 68 65 20 75 73 65 72 | 27 73 0a 68 6f 6d 65 20 |the user|'s.home |
|000029b0| 64 69 72 65 63 74 6f 72 | 79 2e 0a 0a 41 6c 6c 20 |director|y...All |
|000029c0| 74 68 72 65 65 20 76 65 | 72 73 69 6f 6e 73 20 70 |three ve|rsions p|
|000029d0| 72 69 6e 74 20 74 68 65 | 69 72 20 72 65 73 75 6c |rint the|ir resul|
|000029e0| 74 73 20 69 6e 20 74 68 | 72 65 65 20 64 69 66 66 |ts in th|ree diff|
|000029f0| 65 72 65 6e 74 20 66 6f | 72 6d 61 74 73 3a 0a 2e |erent fo|rmats:..|
|00002a00| 6e 66 0a 0a 2d 20 20 4d | 69 6c 65 73 20 70 65 72 |nf..- M|iles per|
|00002a10| 20 55 53 20 47 61 6c 6c | 6f 6e 0a 2d 20 20 4d 69 | US Gall|on.- Mi|
|00002a20| 6c 65 73 20 70 65 72 20 | 49 6d 70 65 72 69 61 6c |les per |Imperial|
|00002a30| 20 47 61 6c 6c 6f 6e 0a | 2d 20 20 4c 69 74 65 72 | Gallon.|- Liter|
|00002a40| 73 20 70 65 72 20 31 30 | 30 20 4b 69 6c 6f 6d 65 |s per 10|0 Kilome|
|00002a50| 74 65 72 73 0a 0a 2e 66 | 69 0a 77 68 69 63 68 20 |ters...f|i.which |
|00002a60| 74 6f 20 6d 79 20 6b 6e | 6f 77 6c 65 64 67 65 20 |to my kn|owledge |
|00002a70| 63 6f 76 65 72 73 20 61 | 6c 6c 20 63 6f 6d 6d 6f |covers a|ll commo|
|00002a80| 6e 20 63 6f 6e 76 65 6e | 74 69 6f 6e 73 20 74 6f |n conven|tions to|
|00002a90| 20 6d 65 61 73 75 72 65 | 20 66 75 65 6c 20 65 66 | measure| fuel ef|
|00002aa0| 66 69 63 69 65 6e 63 79 | 2e 0a 0a 54 68 65 20 64 |ficiency|...The d|
|00002ab0| 61 74 61 66 69 6c 65 20 | 24 48 4f 4d 45 2f 2e 6d |atafile |$HOME/.m|
|00002ac0| 70 67 64 61 74 61 20 63 | 6f 6e 74 61 69 6e 73 20 |pgdata c|ontains |
|00002ad0| 74 68 65 20 74 6f 74 61 | 6c 20 66 69 67 75 72 65 |the tota|l figure|
|00002ae0| 73 20 73 69 6e 63 65 20 | 74 68 65 20 66 69 72 73 |s since |the firs|
|00002af0| 74 20 74 69 6d 65 0a 61 | 20 70 61 72 74 69 63 75 |t time.a| particu|
|00002b00| 6c 61 72 20 75 73 65 72 | 20 75 73 65 64 20 74 68 |lar user| used th|
|00002b10| 65 20 70 72 6f 67 72 61 | 6d 2c 20 69 6e 20 74 68 |e progra|m, in th|
|00002b20| 65 20 66 6f 72 6d 20 6f | 66 20 61 20 73 69 6e 67 |e form o|f a sing|
|00002b30| 6c 65 20 6c 69 6e 65 20 | 6f 66 20 74 65 78 74 2e |le line |of text.|
|00002b40| 0a 54 68 69 73 20 6c 69 | 6e 65 20 63 6f 6e 73 69 |.This li|ne consi|
|00002b50| 73 74 73 20 6f 66 20 66 | 69 76 65 20 63 6f 6c 6f |sts of f|ive colo|
|00002b60| 6e 2d 64 65 6c 69 6d 69 | 74 65 64 20 66 69 65 6c |n-delimi|ted fiel|
|00002b70| 64 73 20 77 68 69 63 68 | 20 63 6f 6e 74 61 69 6e |ds which| contain|
|00002b80| 20 74 68 65 20 74 6f 74 | 61 6c 20 6d 69 6c 65 73 | the tot|al miles|
|00002b90| 2c 0a 6b 69 6c 6f 6d 65 | 74 65 72 73 2c 20 55 53 |,.kilome|ters, US|
|00002ba0| 20 67 61 6c 6c 6f 6e 73 | 2c 20 55 4b 20 67 61 6c | gallons|, UK gal|
|00002bb0| 6c 6f 6e 73 2c 20 61 6e | 64 20 6c 69 74 65 72 73 |lons, an|d liters|
|00002bc0| 2e 20 48 65 72 65 20 69 | 73 20 61 20 73 61 6d 70 |. Here i|s a samp|
|00002bd0| 6c 65 20 6f 66 20 74 68 | 65 0a 24 48 4f 4d 45 2f |le of th|e.$HOME/|
|00002be0| 2e 6d 70 67 64 61 74 61 | 20 66 69 6c 65 3a 0a 0a |.mpgdata| file:..|
|00002bf0| 2e 6e 66 0a 20 20 20 20 | 35 39 38 2e 33 35 3a 39 |.nf. |598.35:9|
|00002c00| 35 37 2e 33 36 3a 32 31 | 2e 35 30 3a 31 38 2e 31 |57.36:21|.50:18.1|
|00002c10| 35 3a 38 31 2e 37 31 0a | 20 20 20 20 20 20 20 7c |5:81.71.| ||
|00002c20| 20 20 20 20 20 20 7c 20 | 20 20 20 20 7c 20 20 20 | | | | |
|00002c30| 20 20 7c 20 20 20 20 20 | 7c 0a 20 20 20 20 6d 69 | | ||. mi|
|00002c40| 6c 65 73 20 20 20 20 20 | 7c 20 20 55 53 20 47 61 |les || US Ga|
|00002c50| 6c 6c 2e 20 7c 20 20 20 | 4c 69 74 65 72 73 0a 09 |ll. | |Liters..|
|00002c60| 09 20 6b 69 6c 6f 6d 65 | 74 65 72 73 20 20 20 20 |. kilome|ters |
|00002c70| 20 55 4b 20 47 61 6c 6c | 2e 0a 2e 66 69 0a 2e 53 | UK Gall|...fi..S|
|00002c80| 48 20 49 4e 53 54 41 4c | 4c 41 54 49 4f 4e 0a 4d |H INSTAL|LATION.M|
|00002c90| 61 6b 65 20 73 75 72 65 | 20 74 68 65 20 66 6c 6f |ake sure| the flo|
|00002ca0| 61 74 69 6e 67 20 70 6f | 69 6e 74 20 61 72 69 74 |ating po|int arit|
|00002cb0| 68 6d 65 74 69 63 20 63 | 6f 6d 6d 61 6e 64 73 20 |hmetic c|ommands |
|00002cc0| 28 66 70 64 69 76 69 64 | 65 2e 31 29 20 61 72 65 |(fpdivid|e.1) are|
|00002cd0| 20 61 76 61 69 6c 61 62 | 6c 65 2e 0a 43 6f 70 79 | availab|le..Copy|
|00002ce0| 20 74 68 65 20 73 68 65 | 6c 6c 20 73 63 72 69 70 | the she|ll scrip|
|00002cf0| 74 73 20 66 6f 72 20 74 | 68 65 20 74 68 72 65 65 |ts for t|he three|
|00002d00| 20 76 65 72 73 69 6f 6e | 73 20 74 6f 20 79 6f 75 | version|s to you|
|00002d10| 72 20 6c 6f 63 61 6c 20 | 62 69 6e 20 64 69 72 65 |r local |bin dire|
|00002d20| 63 74 6f 72 79 2c 0a 61 | 6e 64 20 6d 61 6b 65 20 |ctory,.a|nd make |
|00002d30| 61 6e 20 61 64 64 69 74 | 69 6f 6e 61 6c 20 6c 69 |an addit|ional li|
|00002d40| 6e 6b 0a 2e 49 20 6d 70 | 67 0a 74 6f 20 74 68 65 |nk..I mp|g.to the|
|00002d50| 20 76 65 72 73 69 6f 6e | 20 79 6f 75 20 77 69 6c | version| you wil|
|00002d60| 6c 20 6d 6f 73 74 20 66 | 72 65 71 75 65 6e 74 6c |l most f|requentl|
|00002d70| 79 20 75 73 65 2e 0a 43 | 6f 70 79 20 74 68 65 20 |y use..C|opy the |
|00002d80| 66 69 6c 65 0a 2e 49 20 | 6d 70 67 64 61 74 61 0a |file..I |mpgdata.|
|00002d90| 74 6f 20 24 48 4f 4d 45 | 2f 2e 6d 70 67 64 61 74 |to $HOME|/.mpgdat|
|00002da0| 61 20 66 6f 72 20 65 76 | 65 72 79 20 75 73 65 72 |a for ev|ery user|
|00002db0| 20 77 68 6f 20 77 69 6c | 6c 20 75 73 65 20 74 68 | who wil|l use th|
|00002dc0| 65 20 70 72 6f 67 72 61 | 6d 2e 0a 54 68 65 20 66 |e progra|m..The f|
|00002dd0| 69 6c 65 20 69 73 20 63 | 6f 6d 70 61 74 69 62 6c |ile is c|ompatibl|
|00002de0| 65 20 77 69 74 68 20 61 | 6c 6c 20 76 65 72 73 69 |e with a|ll versi|
|00002df0| 6f 6e 73 20 6f 66 20 74 | 68 65 20 70 72 6f 67 72 |ons of t|he progr|
|00002e00| 61 6d 2c 20 73 6f 20 74 | 68 65 20 76 65 72 73 69 |am, so t|he versi|
|00002e10| 6f 6e 73 20 63 61 6e 0a | 62 65 20 75 73 65 64 20 |ons can.|be used |
|00002e20| 61 6c 74 65 72 6e 61 74 | 69 76 65 6c 79 20 77 69 |alternat|ively wi|
|00002e30| 74 68 20 6e 6f 20 6d 6f | 64 69 66 69 63 61 74 69 |th no mo|dificati|
|00002e40| 6f 6e 20 74 6f 20 23 48 | 4f 4d 45 2f 2e 6d 70 67 |on to #H|OME/.mpg|
|00002e50| 64 61 74 61 20 6e 65 63 | 65 73 73 61 72 79 2e 0a |data nec|essary..|
|00002e60| 2e 53 48 20 46 49 4c 45 | 53 0a 24 48 4f 4d 45 2f |.SH FILE|S.$HOME/|
|00002e70| 2e 6d 70 67 64 61 74 61 | 09 74 68 65 20 64 61 74 |.mpgdata|.the dat|
|00002e80| 61 66 69 6c 65 0a 2e 53 | 48 20 41 55 54 48 4f 52 |afile..S|H AUTHOR|
|00002e90| 0a 57 6f 6c 66 20 4e 2e | 20 50 61 75 6c 20 28 69 |.Wolf N.| Paul (i|
|00002ea0| 68 6e 70 34 21 6b 69 6c | 6c 65 72 21 77 6e 70 29 |hnp4!kil|ler!wnp)|
|00002eb0| 0a 2e 62 72 0a 52 65 6c | 65 61 73 65 64 20 74 6f |..br.Rel|eased to|
|00002ec0| 20 74 68 65 20 50 75 62 | 6c 69 63 20 44 6f 6d 61 | the Pub|lic Doma|
|00002ed0| 69 6e 20 4a 61 6e 20 31 | 38 2c 20 31 39 38 38 0a |in Jan 1|8, 1988.|
|00002ee0| 53 48 41 52 5f 45 4f 46 | 0a 66 69 20 23 20 65 6e |SHAR_EOF|.fi # en|
|00002ef0| 64 20 6f 66 20 6f 76 65 | 72 77 72 69 74 69 6e 67 |d of ove|rwriting|
|00002f00| 20 63 68 65 63 6b 0a 69 | 66 20 74 65 73 74 20 2d | check.i|f test -|
|00002f10| 66 20 27 6d 70 67 64 61 | 74 61 27 0a 74 68 65 6e |f 'mpgda|ta'.then|
|00002f20| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00002f30| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00002f40| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00002f50| 27 6d 70 67 64 61 74 61 | 27 22 0a 65 6c 73 65 0a |'mpgdata|'".else.|
|00002f60| 63 61 74 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |cat << \|SHAR_EOF|
|00002f70| 20 3e 20 27 6d 70 67 64 | 61 74 61 27 0a 30 2e 30 | > 'mpgd|ata'.0.0|
|00002f80| 3a 30 2e 30 3a 30 2e 30 | 3a 30 2e 30 3a 30 2e 30 |:0.0:0.0|:0.0:0.0|
|00002f90| 0a 53 48 41 52 5f 45 4f | 46 0a 66 69 20 23 20 65 |.SHAR_EO|F.fi # e|
|00002fa0| 6e 64 20 6f 66 20 6f 76 | 65 72 77 72 69 74 69 6e |nd of ov|erwritin|
|00002fb0| 67 20 63 68 65 63 6b 0a | 69 66 20 74 65 73 74 20 |g check.|if test |
|00002fc0| 2d 66 20 27 75 6b 6d 70 | 67 27 0a 74 68 65 6e 0a |-f 'ukmp|g'.then.|
|00002fd0| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 77 69 6c 6c |.echo sh|ar: will|
|00002fe0| 20 6e 6f 74 20 6f 76 65 | 72 2d 77 72 69 74 65 20 | not ove|r-write |
|00002ff0| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 22 27 |existing| file "'|
|00003000| 75 6b 6d 70 67 27 22 0a | 65 6c 73 65 0a 63 61 74 |ukmpg'".|else.cat|
|00003010| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00003020| 27 75 6b 6d 70 67 27 0a | 3a 0a 23 20 75 6b 6d 70 |'ukmpg'.|:.# ukmp|
|00003030| 67 20 20 28 4d 69 6c 65 | 73 20 50 65 72 20 47 61 |g (Mile|s Per Ga|
|00003040| 6c 6c 6f 6e 20 2d 2d 20 | 55 4b 20 56 65 72 73 69 |llon -- |UK Versi|
|00003050| 6f 6e 29 20 2d 2d 20 41 | 20 46 75 65 6c 20 45 63 |on) -- A| Fuel Ec|
|00003060| 6f 6e 6f 6d 79 20 43 61 | 6c 63 75 6c 61 74 6f 72 |onomy Ca|lculator|
|00003070| 0a 23 20 0a 23 20 54 68 | 69 73 20 73 68 65 6c 6c |.# .# Th|is shell|
|00003080| 20 70 72 6f 67 72 61 6d | 20 75 73 65 73 20 74 68 | program| uses th|
|00003090| 65 20 66 6c 6f 61 74 69 | 6e 67 20 70 6f 69 6e 74 |e floati|ng point|
|000030a0| 20 61 72 69 74 68 6d 65 | 74 69 63 20 63 6f 6d 6d | arithme|tic comm|
|000030b0| 61 6e 64 73 0a 23 20 22 | 66 70 2a 22 20 74 6f 20 |ands.# "|fp*" to |
|000030c0| 63 61 6c 63 75 6c 61 74 | 65 20 66 75 65 6c 20 65 |calculat|e fuel e|
|000030d0| 63 6f 6e 6f 6d 79 20 69 | 6e 20 74 65 72 6d 73 20 |conomy i|n terms |
|000030e0| 6f 66 20 6c 69 74 65 72 | 73 20 70 65 72 20 31 30 |of liter|s per 10|
|000030f0| 30 20 6b 6d 2c 0a 23 20 | 6d 69 6c 65 73 20 70 65 |0 km,.# |miles pe|
|00003100| 72 20 55 53 20 67 61 6c | 6c 6f 6e 2c 20 61 6e 64 |r US gal|lon, and|
|00003110| 20 6d 69 6c 65 73 20 70 | 65 72 20 55 4b 20 28 49 | miles p|er UK (I|
|00003120| 6d 70 65 72 69 61 6c 29 | 20 67 61 6c 6c 6f 6e 2e |mperial)| gallon.|
|00003130| 0a 23 0a 23 20 41 73 20 | 64 69 73 74 72 69 62 75 |.#.# As |distribu|
|00003140| 74 65 64 2c 20 74 68 65 | 20 70 72 6f 67 72 61 6d |ted, the| program|
|00003150| 20 61 73 73 75 6d 65 73 | 20 74 68 61 74 20 74 68 | assumes| that th|
|00003160| 65 20 75 73 65 72 20 77 | 69 6c 6c 20 65 6e 74 65 |e user w|ill ente|
|00003170| 72 20 0a 23 20 74 68 65 | 20 64 69 73 74 61 6e 63 |r .# the| distanc|
|00003180| 65 20 74 72 61 76 65 6c | 6c 65 64 20 69 6e 20 4d |e travel|led in M|
|00003190| 49 4c 45 53 2c 20 61 6e | 64 20 74 68 65 20 61 6d |ILES, an|d the am|
|000031a0| 6f 75 6e 74 20 6f 66 20 | 66 75 65 6c 20 75 73 65 |ount of |fuel use|
|000031b0| 64 0a 23 20 69 6e 20 55 | 4b 20 47 41 4c 4c 4f 4e |d.# in U|K GALLON|
|000031c0| 53 2c 20 62 75 74 20 74 | 68 61 74 20 69 73 20 6e |S, but t|hat is n|
|000031d0| 6f 74 20 64 69 66 66 69 | 63 75 6c 74 20 74 6f 20 |ot diffi|cult to |
|000031e0| 63 68 61 6e 67 65 20 74 | 6f 20 61 6e 79 20 6f 74 |change t|o any ot|
|000031f0| 68 65 72 0a 23 20 63 6f | 6d 62 69 6e 61 74 69 6f |her.# co|mbinatio|
|00003200| 6e 20 6f 66 20 76 6f 6c | 75 6d 65 20 61 6e 64 20 |n of vol|ume and |
|00003210| 64 69 73 74 61 6e 63 65 | 20 6d 65 61 73 75 72 69 |distance| measuri|
|00003220| 6e 67 20 75 6e 69 74 73 | 2e 0a 23 0a 23 20 41 75 |ng units|..#.# Au|
|00003230| 74 68 6f 72 3a 20 57 6f | 6c 66 20 4e 2e 20 50 61 |thor: Wo|lf N. Pa|
|00003240| 75 6c 20 28 69 68 6e 70 | 34 21 6b 69 6c 6c 65 72 |ul (ihnp|4!killer|
|00003250| 21 64 63 73 21 77 6e 70 | 29 2c 20 31 2f 31 33 2f |!dcs!wnp|), 1/13/|
|00003260| 38 38 0a 23 20 52 65 6c | 65 61 73 65 64 20 69 6e |88.# Rel|eased in|
|00003270| 74 6f 20 74 68 65 20 50 | 75 62 6c 69 63 20 44 6f |to the P|ublic Do|
|00003280| 6d 61 69 6e 2c 20 4a 61 | 6e 20 31 38 2c 20 31 39 |main, Ja|n 18, 19|
|00003290| 38 38 0a 23 0a 23 20 73 | 65 74 20 2d 76 20 23 20 |88.#.# s|et -v # |
|000032a0| 65 6e 61 62 6c 65 20 64 | 65 62 75 67 67 69 6e 67 |enable d|ebugging|
|000032b0| 0a 23 0a 23 20 43 4f 4e | 53 54 41 4e 54 53 3a 0a |.#.# CON|STANTS:.|
|000032c0| 23 0a 46 49 4c 45 3d 24 | 48 4f 4d 45 2f 2e 6d 70 |#.FILE=$|HOME/.mp|
|000032d0| 67 64 61 74 61 0a 55 53 | 5f 47 41 4c 4c 4f 4e 3d |gdata.US|_GALLON=|
|000032e0| 33 2e 38 0a 55 4b 5f 47 | 41 4c 4c 4f 4e 3d 34 2e |3.8.UK_G|ALLON=4.|
|000032f0| 35 0a 4d 49 4c 45 3d 31 | 2e 36 0a 23 0a 23 20 56 |5.MILE=1|.6.#.# V|
|00003300| 61 72 69 61 62 6c 65 73 | 20 2d 20 61 6c 6c 20 69 |ariables| - all i|
|00003310| 6e 69 74 69 61 6c 69 7a | 65 64 20 74 6f 20 30 2e |nitializ|ed to 0.|
|00003320| 30 0a 43 5f 4d 49 4c 45 | 53 3d 30 2e 30 09 09 23 |0.C_MILE|S=0.0..#|
|00003330| 20 63 75 72 72 65 6e 74 | 20 6d 69 6c 65 73 0a 43 | current| miles.C|
|00003340| 5f 4b 4d 53 3d 30 2e 30 | 09 09 23 20 63 75 72 72 |_KMS=0.0|..# curr|
|00003350| 65 6e 74 20 6b 69 6c 6f | 6d 65 74 65 72 73 0a 43 |ent kilo|meters.C|
|00003360| 5f 55 53 47 41 4c 3d 30 | 2e 30 09 09 23 20 63 75 |_USGAL=0|.0..# cu|
|00003370| 72 72 65 6e 74 20 67 61 | 6c 6c 6f 6e 73 20 55 53 |rrent ga|llons US|
|00003380| 0a 43 5f 55 4b 47 41 4c | 3d 30 2e 30 09 09 23 20 |.C_UKGAL|=0.0..# |
|00003390| 63 75 72 72 65 6e 74 20 | 67 61 6c 6c 6f 6e 73 20 |current |gallons |
|000033a0| 55 4b 0a 43 5f 4c 49 54 | 45 52 53 3d 30 2e 30 09 |UK.C_LIT|ERS=0.0.|
|000033b0| 23 20 63 75 72 72 65 6e | 74 20 6c 69 74 65 72 73 |# curren|t liters|
|000033c0| 0a 54 5f 4d 49 4c 45 53 | 3d 30 2e 30 09 09 23 20 |.T_MILES|=0.0..# |
|000033d0| 74 6f 74 61 6c 20 6d 69 | 6c 65 73 0a 54 5f 4b 53 |total mi|les.T_KS|
|000033e0| 4d 3d 30 2e 30 09 09 23 | 20 74 6f 74 61 6c 20 6b |M=0.0..#| total k|
|000033f0| 69 6c 6f 6d 65 74 65 72 | 73 0a 54 5f 55 53 47 41 |ilometer|s.T_USGA|
|00003400| 4c 3d 30 2e 30 09 09 23 | 20 74 6f 74 61 6c 20 67 |L=0.0..#| total g|
|00003410| 61 6c 6c 6f 6e 73 20 55 | 53 0a 54 5f 55 4b 47 41 |allons U|S.T_UKGA|
|00003420| 4c 3d 30 2e 30 09 09 23 | 20 74 6f 74 61 6c 20 67 |L=0.0..#| total g|
|00003430| 61 6c 6c 6f 6e 73 20 55 | 4b 0a 54 5f 4c 49 54 45 |allons U|K.T_LITE|
|00003440| 52 53 3d 30 2e 30 09 23 | 20 74 6f 74 61 6c 20 6c |RS=0.0.#| total l|
|00003450| 69 74 65 72 73 0a 43 5f | 55 53 4d 50 47 3d 30 2e |iters.C_|USMPG=0.|
|00003460| 30 09 09 23 20 63 75 72 | 72 65 6e 74 20 6d 69 6c |0..# cur|rent mil|
|00003470| 65 73 2f 67 61 6c 6c 6f | 6e 20 55 53 0a 43 5f 55 |es/gallo|n US.C_U|
|00003480| 4b 4d 50 47 3d 30 2e 30 | 09 09 23 20 63 75 72 72 |KMPG=0.0|..# curr|
|00003490| 65 6e 74 20 6d 69 6c 65 | 73 2f 67 61 6c 6c 6f 6e |ent mile|s/gallon|
|000034a0| 20 55 4b 0a 43 5f 4c 50 | 31 30 30 3d 30 2e 30 09 | UK.C_LP|100=0.0.|
|000034b0| 09 23 20 63 75 72 72 65 | 6e 74 20 6c 69 74 65 72 |.# curre|nt liter|
|000034c0| 73 2f 31 30 30 20 6b 6d | 0a 41 5f 55 53 4d 50 47 |s/100 km|.A_USMPG|
|000034d0| 3d 30 2e 30 09 23 20 61 | 76 65 72 61 67 65 20 6d |=0.0.# a|verage m|
|000034e0| 69 6c 65 73 2f 67 61 6c | 6c 6f 6e 20 55 53 0a 41 |iles/gal|lon US.A|
|000034f0| 5f 55 4b 4d 50 47 3d 30 | 2e 30 09 23 20 61 76 65 |_UKMPG=0|.0.# ave|
|00003500| 72 61 67 65 20 6d 69 6c | 65 73 2f 67 61 6c 6c 6f |rage mil|es/gallo|
|00003510| 6e 20 55 4b 0a 41 5f 4c | 50 31 30 30 3d 30 2e 30 |n UK.A_L|P100=0.0|
|00003520| 09 23 20 61 76 65 72 61 | 67 65 20 6c 69 74 65 72 |.# avera|ge liter|
|00003530| 73 2f 31 30 30 20 6b 6d | 0a 54 4d 50 3d 30 2e 30 |s/100 km|.TMP=0.0|
|00003540| 09 09 09 23 20 6b 6d 73 | 2f 31 30 30 0a 0a 65 63 |...# kms|/100..ec|
|00003550| 68 6f 20 22 4d 50 47 20 | 2d 20 46 75 65 6c 20 45 |ho "MPG |- Fuel E|
|00003560| 63 6f 6e 6f 6d 79 20 43 | 61 6c 63 75 6c 61 74 6f |conomy C|alculato|
|00003570| 72 5c 6e 22 0a 65 63 68 | 6f 20 22 55 4b 20 56 65 |r\n".ech|o "UK Ve|
|00003580| 72 73 69 6f 6e 20 2d 20 | 65 6e 74 65 72 20 4d 69 |rsion - |enter Mi|
|00003590| 6c 65 73 20 61 6e 64 20 | 49 6d 70 65 72 69 61 6c |les and |Imperial|
|000035a0| 20 47 61 6c 6c 6f 6e 73 | 5c 6e 22 0a 0a 65 63 68 | Gallons|\n"..ech|
|000035b0| 6f 20 22 52 65 61 64 69 | 6e 67 20 6f 6c 64 20 76 |o "Readi|ng old v|
|000035c0| 61 6c 75 65 73 20 2e 2e | 2e 20 5c 63 22 0a 0a 54 |alues ..|. \c"..T|
|000035d0| 5f 4d 49 4c 45 53 3d 60 | 63 75 74 20 2d 64 3a 20 |_MILES=`|cut -d: |
|000035e0| 2d 66 31 20 24 46 49 4c | 45 60 0a 54 5f 4b 4d 53 |-f1 $FIL|E`.T_KMS|
|000035f0| 3d 60 63 75 74 20 2d 64 | 3a 20 2d 66 32 20 24 46 |=`cut -d|: -f2 $F|
|00003600| 49 4c 45 60 0a 54 5f 55 | 53 47 41 4c 3d 60 63 75 |ILE`.T_U|SGAL=`cu|
|00003610| 74 20 2d 64 3a 20 2d 66 | 33 20 24 46 49 4c 45 60 |t -d: -f|3 $FILE`|
|00003620| 0a 54 5f 55 4b 47 41 4c | 3d 60 63 75 74 20 2d 64 |.T_UKGAL|=`cut -d|
|00003630| 3a 20 2d 66 34 20 24 46 | 49 4c 45 60 0a 54 5f 4c |: -f4 $F|ILE`.T_L|
|00003640| 49 54 45 52 53 3d 60 63 | 75 74 20 2d 64 3a 20 2d |ITERS=`c|ut -d: -|
|00003650| 66 35 20 24 46 49 4c 45 | 60 0a 65 63 68 6f 20 22 |f5 $FILE|`.echo "|
|00003660| 64 6f 6e 65 21 5c 6e 22 | 0a 0a 65 63 68 6f 20 22 |done!\n"|..echo "|
|00003670| 45 6e 74 65 72 20 6d 69 | 6c 65 73 20 64 72 69 76 |Enter mi|les driv|
|00003680| 65 6e 3a 20 5c 63 22 0a | 72 65 61 64 20 43 5f 4d |en: \c".|read C_M|
|00003690| 49 4c 45 53 0a 0a 65 63 | 68 6f 20 22 45 6e 74 65 |ILES..ec|ho "Ente|
|000036a0| 72 20 67 61 6c 6c 6f 6e | 73 20 75 73 65 64 3a 20 |r gallon|s used: |
|000036b0| 5c 63 22 0a 72 65 61 64 | 20 43 5f 55 4b 47 41 4c |\c".read| C_UKGAL|
|000036c0| 0a 0a 65 63 68 6f 20 22 | 5c 6e 4f 6e 65 20 6d 6f |..echo "|\nOne mo|
|000036d0| 6d 65 6e 74 20 2d 20 63 | 61 6c 63 75 6c 61 74 69 |ment - c|alculati|
|000036e0| 6e 67 20 63 6f 6e 73 75 | 6d 70 74 69 6f 6e 20 66 |ng consu|mption f|
|000036f0| 69 67 75 72 65 73 20 2e | 2e 2e 20 5c 63 22 0a 43 |igures .|.. \c".C|
|00003700| 5f 4b 4d 53 3d 60 66 70 | 6d 75 6c 74 69 70 6c 79 |_KMS=`fp|multiply|
|00003710| 20 24 43 5f 4d 49 4c 45 | 53 20 24 4d 49 4c 45 60 | $C_MILE|S $MILE`|
|00003720| 0a 43 5f 4c 49 54 45 52 | 53 3d 60 66 70 6d 75 6c |.C_LITER|S=`fpmul|
|00003730| 74 69 70 6c 79 20 24 43 | 5f 55 4b 47 41 4c 20 24 |tiply $C|_UKGAL $|
|00003740| 55 4b 5f 47 41 4c 4c 4f | 4e 60 0a 43 5f 55 53 47 |UK_GALLO|N`.C_USG|
|00003750| 41 4c 3d 60 66 70 64 69 | 76 69 64 65 20 24 43 5f |AL=`fpdi|vide $C_|
|00003760| 4c 49 54 45 52 53 20 24 | 55 53 5f 47 41 4c 4c 4f |LITERS $|US_GALLO|
|00003770| 4e 60 0a 0a 54 5f 4d 49 | 4c 45 53 3d 60 66 70 61 |N`..T_MI|LES=`fpa|
|00003780| 64 64 20 24 54 5f 4d 49 | 4c 45 53 20 24 43 5f 4d |dd $T_MI|LES $C_M|
|00003790| 49 4c 45 53 60 0a 54 5f | 4b 4d 53 3d 60 66 70 61 |ILES`.T_|KMS=`fpa|
|000037a0| 64 64 20 24 54 5f 4b 4d | 53 20 24 43 5f 4b 4d 53 |dd $T_KM|S $C_KMS|
|000037b0| 60 0a 54 5f 55 53 47 41 | 4c 3d 60 66 70 61 64 64 |`.T_USGA|L=`fpadd|
|000037c0| 20 24 54 5f 55 53 47 41 | 4c 20 24 43 5f 55 53 47 | $T_USGA|L $C_USG|
|000037d0| 41 4c 60 0a 54 5f 55 4b | 47 41 4c 3d 60 66 70 61 |AL`.T_UK|GAL=`fpa|
|000037e0| 64 64 20 24 54 5f 55 4b | 47 41 4c 20 24 43 5f 55 |dd $T_UK|GAL $C_U|
|000037f0| 4b 47 41 4c 60 0a 54 5f | 4c 49 54 45 52 53 3d 60 |KGAL`.T_|LITERS=`|
|00003800| 66 70 61 64 64 20 24 54 | 5f 4c 49 54 45 52 53 20 |fpadd $T|_LITERS |
|00003810| 24 43 5f 4c 49 54 45 52 | 53 60 0a 0a 43 5f 55 53 |$C_LITER|S`..C_US|
|00003820| 4d 50 47 3d 60 66 70 64 | 69 76 69 64 65 20 24 43 |MPG=`fpd|ivide $C|
|00003830| 5f 4d 49 4c 45 53 20 24 | 43 5f 55 53 47 41 4c 60 |_MILES $|C_USGAL`|
|00003840| 0a 41 5f 55 53 4d 50 47 | 3d 60 66 70 64 69 76 69 |.A_USMPG|=`fpdivi|
|00003850| 64 65 20 24 54 5f 4d 49 | 4c 45 53 20 24 54 5f 55 |de $T_MI|LES $T_U|
|00003860| 53 47 41 4c 60 0a 0a 43 | 5f 55 4b 4d 50 47 3d 60 |SGAL`..C|_UKMPG=`|
|00003870| 66 70 64 69 76 69 64 65 | 20 24 43 5f 4d 49 4c 45 |fpdivide| $C_MILE|
|00003880| 53 20 24 43 5f 55 4b 47 | 41 4c 60 0a 41 5f 55 4b |S $C_UKG|AL`.A_UK|
|00003890| 4d 50 47 3d 60 66 70 64 | 69 76 69 64 65 20 24 54 |MPG=`fpd|ivide $T|
|000038a0| 5f 4d 49 4c 45 53 20 24 | 54 5f 55 4b 47 41 4c 60 |_MILES $|T_UKGAL`|
|000038b0| 0a 0a 54 4d 50 3d 60 66 | 70 64 69 76 69 64 65 20 |..TMP=`f|pdivide |
|000038c0| 24 43 5f 4b 4d 53 20 31 | 30 30 2e 30 30 60 0a 43 |$C_KMS 1|00.00`.C|
|000038d0| 5f 4c 50 31 30 30 3d 60 | 66 70 64 69 76 69 64 65 |_LP100=`|fpdivide|
|000038e0| 20 24 43 5f 4c 49 54 45 | 52 53 20 24 54 4d 50 60 | $C_LITE|RS $TMP`|
|000038f0| 0a 54 4d 50 3d 60 66 70 | 64 69 76 69 64 65 20 24 |.TMP=`fp|divide $|
|00003900| 54 5f 4b 4d 53 20 31 30 | 30 2e 30 30 60 0a 41 5f |T_KMS 10|0.00`.A_|
|00003910| 4c 50 31 30 30 3d 60 66 | 70 64 69 76 69 64 65 20 |LP100=`f|pdivide |
|00003920| 24 54 5f 4c 49 54 45 52 | 53 20 24 54 4d 50 60 0a |$T_LITER|S $TMP`.|
|00003930| 0a 65 63 68 6f 20 22 24 | 54 5f 4d 49 4c 45 53 3a |.echo "$|T_MILES:|
|00003940| 24 54 5f 4b 4d 53 3a 24 | 54 5f 55 53 47 41 4c 3a |$T_KMS:$|T_USGAL:|
|00003950| 24 54 5f 55 4b 47 41 4c | 3a 24 54 5f 4c 49 54 45 |$T_UKGAL|:$T_LITE|
|00003960| 52 53 22 20 3e 20 24 46 | 49 4c 45 0a 0a 65 63 68 |RS" > $F|ILE..ech|
|00003970| 6f 20 22 64 6f 6e 65 21 | 22 0a 65 63 68 6f 20 22 |o "done!|".echo "|
|00003980| 5c 6e 46 75 65 6c 20 45 | 63 6f 6e 6f 6d 79 3a 5c |\nFuel E|conomy:\|
|00003990| 6e 22 0a 65 63 68 6f 20 | 22 5c 74 24 43 5f 55 4b |n".echo |"\t$C_UK|
|000039a0| 4d 50 47 20 6d 69 6c 65 | 73 20 70 65 72 20 55 4b |MPG mile|s per UK|
|000039b0| 20 67 61 6c 6c 6f 6e 5c | 74 28 41 76 65 72 61 67 | gallon\|t(Averag|
|000039c0| 65 20 24 7b 41 5f 55 4b | 4d 50 47 7d 29 22 0a 65 |e ${A_UK|MPG})".e|
|000039d0| 63 68 6f 20 22 5c 74 24 | 43 5f 55 53 4d 50 47 20 |cho "\t$|C_USMPG |
|000039e0| 6d 69 6c 65 73 20 70 65 | 72 20 55 53 20 67 61 6c |miles pe|r US gal|
|000039f0| 6c 6f 6e 5c 74 28 41 76 | 65 72 61 67 65 20 24 7b |lon\t(Av|erage ${|
|00003a00| 41 5f 55 53 4d 50 47 7d | 29 22 0a 65 63 68 6f 20 |A_USMPG}|)".echo |
|00003a10| 22 5c 74 24 43 5f 4c 50 | 31 30 30 20 6c 69 74 65 |"\t$C_LP|100 lite|
|00003a20| 72 73 20 70 65 72 20 31 | 30 30 20 6b 6d 5c 74 5c |rs per 1|00 km\t\|
|00003a30| 74 28 41 76 65 72 61 67 | 65 20 24 7b 41 5f 4c 50 |t(Averag|e ${A_LP|
|00003a40| 31 30 30 7d 29 22 0a 65 | 63 68 6f 20 22 5c 6e 44 |100})".e|cho "\nD|
|00003a50| 6f 20 79 6f 75 20 77 61 | 6e 74 20 61 20 70 72 69 |o you wa|nt a pri|
|00003a60| 6e 74 6f 75 74 20 6f 66 | 20 74 68 65 73 65 20 72 |ntout of| these r|
|00003a70| 65 73 75 6c 74 73 3f 20 | 5c 63 22 0a 72 65 61 64 |esults? |\c".read|
|00003a80| 20 52 45 50 4c 59 0a 69 | 66 20 5b 20 22 24 52 45 | REPLY.i|f [ "$RE|
|00003a90| 50 4c 59 22 20 21 3d 20 | 22 79 22 20 2d 61 20 22 |PLY" != |"y" -a "|
|00003aa0| 24 52 45 50 4c 59 22 20 | 21 3d 20 22 59 22 20 5d |$REPLY" |!= "Y" ]|
|00003ab0| 20 3b 20 74 68 65 6e 0a | 09 65 78 69 74 0a 66 69 | ; then.|.exit.fi|
|00003ac0| 0a 65 63 68 6f 20 22 0a | 4d 50 47 20 28 55 4b 29 |.echo ".|MPG (UK)|
|00003ad0| 20 2d 2d 20 46 75 65 6c | 20 45 63 6f 6e 6f 6d 79 | -- Fuel| Economy|
|00003ae0| 20 43 61 6c 63 75 6c 61 | 74 6f 72 0a 46 75 65 6c | Calcula|tor.Fuel|
|00003af0| 20 45 63 6f 6e 6f 6d 79 | 20 53 74 61 74 65 6d 65 | Economy| Stateme|
|00003b00| 6e 74 20 61 73 20 6f 66 | 20 60 64 61 74 65 20 27 |nt as of| `date '|
|00003b10| 2b 25 68 20 25 64 2c 20 | 31 39 25 79 27 60 0a 0a |+%h %d, |19%y'`..|
|00003b20| 4d 69 6c 65 73 20 74 68 | 69 73 20 46 69 6c 6c 69 |Miles th|is Filli|
|00003b30| 6e 67 3a 20 20 20 20 20 | 20 20 20 24 43 5f 4d 49 |ng: | $C_MI|
|00003b40| 4c 45 53 5c 74 28 24 43 | 5f 4b 4d 53 20 6b 6d 29 |LES\t($C|_KMS km)|
|00003b50| 0a 47 61 6c 6c 6f 6e 73 | 20 74 68 69 73 20 46 69 |.Gallons| this Fi|
|00003b60| 6c 6c 69 6e 67 3a 20 20 | 20 20 20 20 24 43 5f 55 |lling: | $C_U|
|00003b70| 4b 47 41 4c 5c 74 28 24 | 43 5f 55 53 47 41 4c 20 |KGAL\t($|C_USGAL |
|00003b80| 55 53 2c 20 24 43 5f 4c | 49 54 45 52 53 20 6c 69 |US, $C_L|ITERS li|
|00003b90| 74 65 72 73 29 0a 0a 54 | 6f 74 61 6c 20 4d 69 6c |ters)..T|otal Mil|
|00003ba0| 65 73 20 73 6f 20 66 61 | 72 3a 20 20 20 20 20 20 |es so fa|r: |
|00003bb0| 20 20 24 54 5f 4d 49 4c | 45 53 5c 74 28 24 54 5f | $T_MIL|ES\t($T_|
|00003bc0| 4b 4d 53 20 6b 6d 29 0a | 54 6f 74 61 6c 20 47 61 |KMS km).|Total Ga|
|00003bd0| 6c 6c 6f 6e 73 20 73 6f | 20 66 61 72 3a 20 20 20 |llons so| far: |
|00003be0| 20 20 20 24 54 5f 55 4b | 47 41 4c 5c 74 28 24 54 | $T_UK|GAL\t($T|
|00003bf0| 5f 55 53 47 41 4c 20 55 | 53 2c 20 24 54 5f 4c 49 |_USGAL U|S, $T_LI|
|00003c00| 54 45 52 53 20 6c 69 74 | 65 72 73 29 0a 0a 43 75 |TERS lit|ers)..Cu|
|00003c10| 72 72 65 6e 74 20 4d 69 | 6c 65 73 20 70 65 72 20 |rrent Mi|les per |
|00003c20| 47 61 6c 6c 6f 6e 3a 20 | 20 24 43 5f 55 4b 4d 50 |Gallon: | $C_UKMP|
|00003c30| 47 5c 74 28 24 43 5f 55 | 53 4d 50 47 20 55 53 2c |G\t($C_U|SMPG US,|
|00003c40| 20 24 43 5f 4c 50 31 30 | 30 20 4c 2f 31 30 30 20 | $C_LP10|0 L/100 |
|00003c50| 6b 6d 29 0a 41 76 65 72 | 61 67 65 20 4d 69 6c 65 |km).Aver|age Mile|
|00003c60| 73 20 70 65 72 20 47 61 | 6c 6c 6f 6e 3a 20 20 24 |s per Ga|llon: $|
|00003c70| 41 5f 55 4b 4d 50 47 5c | 74 28 24 41 5f 55 53 4d |A_UKMPG\|t($A_USM|
|00003c80| 50 47 20 55 53 2c 20 24 | 41 5f 4c 50 31 30 30 20 |PG US, $|A_LP100 |
|00003c90| 4c 2f 31 30 30 20 6b 6d | 29 5c 0a 22 20 7c 20 6c |L/100 km|)\." | l|
|00003ca0| 70 20 2d 73 20 26 0a 53 | 48 41 52 5f 45 4f 46 0a |p -s &.S|HAR_EOF.|
|00003cb0| 66 69 20 23 20 65 6e 64 | 20 6f 66 20 6f 76 65 72 |fi # end| of over|
|00003cc0| 77 72 69 74 69 6e 67 20 | 63 68 65 63 6b 0a 69 66 |writing |check.if|
|00003cd0| 20 74 65 73 74 20 2d 66 | 20 27 75 73 6d 70 67 27 | test -f| 'usmpg'|
|00003ce0| 0a 74 68 65 6e 0a 09 65 | 63 68 6f 20 73 68 61 72 |.then..e|cho shar|
|00003cf0| 3a 20 77 69 6c 6c 20 6e | 6f 74 20 6f 76 65 72 2d |: will n|ot over-|
|00003d00| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|00003d10| 69 6c 65 20 22 27 75 73 | 6d 70 67 27 22 0a 65 6c |ile "'us|mpg'".el|
|00003d20| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|00003d30| 45 4f 46 20 3e 20 27 75 | 73 6d 70 67 27 0a 3a 0a |EOF > 'u|smpg'.:.|
|00003d40| 23 20 75 73 6d 70 67 20 | 20 28 4d 69 6c 65 73 20 |# usmpg | (Miles |
|00003d50| 50 65 72 20 47 61 6c 6c | 6f 6e 20 2d 2d 20 55 53 |Per Gall|on -- US|
|00003d60| 20 56 65 72 73 69 6f 6e | 29 20 2d 2d 20 41 20 46 | Version|) -- A F|
|00003d70| 75 65 6c 20 45 63 6f 6e | 6f 6d 79 20 43 61 6c 63 |uel Econ|omy Calc|
|00003d80| 75 6c 61 74 6f 72 0a 23 | 20 0a 23 20 54 68 69 73 |ulator.#| .# This|
|00003d90| 20 73 68 65 6c 6c 20 70 | 72 6f 67 72 61 6d 20 75 | shell p|rogram u|
|00003da0| 73 65 73 20 74 68 65 20 | 66 6c 6f 61 74 69 6e 67 |ses the |floating|
|00003db0| 20 70 6f 69 6e 74 20 61 | 72 69 74 68 6d 65 74 69 | point a|rithmeti|
|00003dc0| 63 20 63 6f 6d 6d 61 6e | 64 73 0a 23 20 22 66 70 |c comman|ds.# "fp|
|00003dd0| 2a 22 20 74 6f 20 63 61 | 6c 63 75 6c 61 74 65 20 |*" to ca|lculate |
|00003de0| 66 75 65 6c 20 65 63 6f | 6e 6f 6d 79 20 69 6e 20 |fuel eco|nomy in |
|00003df0| 74 65 72 6d 73 20 6f 66 | 20 6c 69 74 65 72 73 20 |terms of| liters |
|00003e00| 70 65 72 20 31 30 30 20 | 6b 6d 2c 0a 23 20 6d 69 |per 100 |km,.# mi|
|00003e10| 6c 65 73 20 70 65 72 20 | 55 53 20 67 61 6c 6c 6f |les per |US gallo|
|00003e20| 6e 2c 20 61 6e 64 20 6d | 69 6c 65 73 20 70 65 72 |n, and m|iles per|
|00003e30| 20 55 4b 20 28 49 6d 70 | 65 72 69 61 6c 29 20 67 | UK (Imp|erial) g|
|00003e40| 61 6c 6c 6f 6e 2e 0a 23 | 0a 23 20 41 73 20 64 69 |allon..#|.# As di|
|00003e50| 73 74 72 69 62 75 74 65 | 64 2c 20 74 68 65 20 70 |stribute|d, the p|
|00003e60| 72 6f 67 72 61 6d 20 61 | 73 73 75 6d 65 73 20 74 |rogram a|ssumes t|
|00003e70| 68 61 74 20 74 68 65 20 | 75 73 65 72 20 77 69 6c |hat the |user wil|
|00003e80| 6c 20 65 6e 74 65 72 20 | 0a 23 20 74 68 65 20 64 |l enter |.# the d|
|00003e90| 69 73 74 61 6e 63 65 20 | 74 72 61 76 65 6c 6c 65 |istance |travelle|
|00003ea0| 64 20 69 6e 20 4d 49 4c | 45 53 2c 20 61 6e 64 20 |d in MIL|ES, and |
|00003eb0| 74 68 65 20 61 6d 6f 75 | 6e 74 20 6f 66 20 66 75 |the amou|nt of fu|
|00003ec0| 65 6c 20 75 73 65 64 0a | 23 20 69 6e 20 55 53 20 |el used.|# in US |
|00003ed0| 47 41 4c 4c 4f 4e 53 2c | 20 62 75 74 20 74 68 61 |GALLONS,| but tha|
|00003ee0| 74 20 69 73 20 6e 6f 74 | 20 64 69 66 66 69 63 75 |t is not| difficu|
|00003ef0| 6c 74 20 74 6f 20 63 68 | 61 6e 67 65 20 74 6f 20 |lt to ch|ange to |
|00003f00| 61 6e 79 20 6f 74 68 65 | 72 0a 23 20 63 6f 6d 62 |any othe|r.# comb|
|00003f10| 69 6e 61 74 69 6f 6e 20 | 6f 66 20 76 6f 6c 75 6d |ination |of volum|
|00003f20| 65 20 61 6e 64 20 64 69 | 73 74 61 6e 63 65 20 6d |e and di|stance m|
|00003f30| 65 61 73 75 72 69 6e 67 | 20 75 6e 69 74 73 2e 0a |easuring| units..|
|00003f40| 23 0a 23 20 41 75 74 68 | 6f 72 3a 20 57 6f 6c 66 |#.# Auth|or: Wolf|
|00003f50| 20 4e 2e 20 50 61 75 6c | 20 28 69 68 6e 70 34 21 | N. Paul| (ihnp4!|
|00003f60| 6b 69 6c 6c 65 72 21 64 | 63 73 21 77 6e 70 29 2c |killer!d|cs!wnp),|
|00003f70| 20 31 2f 31 33 2f 38 38 | 0a 23 20 52 65 6c 65 61 | 1/13/88|.# Relea|
|00003f80| 73 65 64 20 69 6e 74 6f | 20 74 68 65 20 50 75 62 |sed into| the Pub|
|00003f90| 6c 69 63 20 44 6f 6d 61 | 69 6e 2c 20 4a 61 6e 20 |lic Doma|in, Jan |
|00003fa0| 31 38 2c 20 31 39 38 38 | 0a 23 0a 23 20 73 65 74 |18, 1988|.#.# set|
|00003fb0| 20 2d 76 20 23 20 65 6e | 61 62 6c 65 20 64 65 62 | -v # en|able deb|
|00003fc0| 75 67 67 69 6e 67 0a 23 | 0a 23 20 43 4f 4e 53 54 |ugging.#|.# CONST|
|00003fd0| 41 4e 54 53 3a 0a 23 0a | 46 49 4c 45 3d 24 48 4f |ANTS:.#.|FILE=$HO|
|00003fe0| 4d 45 2f 2e 6d 70 67 64 | 61 74 61 0a 55 53 5f 47 |ME/.mpgd|ata.US_G|
|00003ff0| 41 4c 4c 4f 4e 3d 33 2e | 38 0a 55 4b 5f 47 41 4c |ALLON=3.|8.UK_GAL|
|00004000| 4c 4f 4e 3d 34 2e 35 0a | 4d 49 4c 45 3d 31 2e 36 |LON=4.5.|MILE=1.6|
|00004010| 0a 23 0a 23 20 56 61 72 | 69 61 62 6c 65 73 20 2d |.#.# Var|iables -|
|00004020| 20 61 6c 6c 20 69 6e 69 | 74 69 61 6c 69 7a 65 64 | all ini|tialized|
|00004030| 20 74 6f 20 30 2e 30 0a | 43 5f 4d 49 4c 45 53 3d | to 0.0.|C_MILES=|
|00004040| 30 2e 30 09 09 23 20 63 | 75 72 72 65 6e 74 20 6d |0.0..# c|urrent m|
|00004050| 69 6c 65 73 0a 43 5f 4b | 4d 53 3d 30 2e 30 09 09 |iles.C_K|MS=0.0..|
|00004060| 23 20 63 75 72 72 65 6e | 74 20 6b 69 6c 6f 6d 65 |# curren|t kilome|
|00004070| 74 65 72 73 0a 43 5f 55 | 53 47 41 4c 3d 30 2e 30 |ters.C_U|SGAL=0.0|
|00004080| 09 09 23 20 63 75 72 72 | 65 6e 74 20 67 61 6c 6c |..# curr|ent gall|
|00004090| 6f 6e 73 20 55 53 0a 43 | 5f 55 4b 47 41 4c 3d 30 |ons US.C|_UKGAL=0|
|000040a0| 2e 30 09 09 23 20 63 75 | 72 72 65 6e 74 20 67 61 |.0..# cu|rrent ga|
|000040b0| 6c 6c 6f 6e 73 20 55 4b | 0a 43 5f 4c 49 54 45 52 |llons UK|.C_LITER|
|000040c0| 53 3d 30 2e 30 09 23 20 | 63 75 72 72 65 6e 74 20 |S=0.0.# |current |
|000040d0| 6c 69 74 65 72 73 0a 54 | 5f 4d 49 4c 45 53 3d 30 |liters.T|_MILES=0|
|000040e0| 2e 30 09 09 23 20 74 6f | 74 61 6c 20 6d 69 6c 65 |.0..# to|tal mile|
|000040f0| 73 0a 54 5f 4b 53 4d 3d | 30 2e 30 09 09 23 20 74 |s.T_KSM=|0.0..# t|
|00004100| 6f 74 61 6c 20 6b 69 6c | 6f 6d 65 74 65 72 73 0a |otal kil|ometers.|
|00004110| 54 5f 55 53 47 41 4c 3d | 30 2e 30 09 09 23 20 74 |T_USGAL=|0.0..# t|
|00004120| 6f 74 61 6c 20 67 61 6c | 6c 6f 6e 73 20 55 53 0a |otal gal|lons US.|
|00004130| 54 5f 55 4b 47 41 4c 3d | 30 2e 30 09 09 23 20 74 |T_UKGAL=|0.0..# t|
|00004140| 6f 74 61 6c 20 67 61 6c | 6c 6f 6e 73 20 55 4b 0a |otal gal|lons UK.|
|00004150| 54 5f 4c 49 54 45 52 53 | 3d 30 2e 30 09 23 20 74 |T_LITERS|=0.0.# t|
|00004160| 6f 74 61 6c 20 6c 69 74 | 65 72 73 0a 43 5f 55 53 |otal lit|ers.C_US|
|00004170| 4d 50 47 3d 30 2e 30 09 | 09 23 20 63 75 72 72 65 |MPG=0.0.|.# curre|
|00004180| 6e 74 20 6d 69 6c 65 73 | 2f 67 61 6c 6c 6f 6e 20 |nt miles|/gallon |
|00004190| 55 53 0a 43 5f 55 4b 4d | 50 47 3d 30 2e 30 09 09 |US.C_UKM|PG=0.0..|
|000041a0| 23 20 63 75 72 72 65 6e | 74 20 6d 69 6c 65 73 2f |# curren|t miles/|
|000041b0| 67 61 6c 6c 6f 6e 20 55 | 4b 0a 43 5f 4c 50 31 30 |gallon U|K.C_LP10|
|000041c0| 30 3d 30 2e 30 09 09 23 | 20 63 75 72 72 65 6e 74 |0=0.0..#| current|
|000041d0| 20 6c 69 74 65 72 73 2f | 31 30 30 20 6b 6d 0a 41 | liters/|100 km.A|
|000041e0| 5f 55 53 4d 50 47 3d 30 | 2e 30 09 23 20 61 76 65 |_USMPG=0|.0.# ave|
|000041f0| 72 61 67 65 20 6d 69 6c | 65 73 2f 67 61 6c 6c 6f |rage mil|es/gallo|
|00004200| 6e 20 55 53 0a 41 5f 55 | 4b 4d 50 47 3d 30 2e 30 |n US.A_U|KMPG=0.0|
|00004210| 09 23 20 61 76 65 72 61 | 67 65 20 6d 69 6c 65 73 |.# avera|ge miles|
|00004220| 2f 67 61 6c 6c 6f 6e 20 | 55 4b 0a 41 5f 4c 50 31 |/gallon |UK.A_LP1|
|00004230| 30 30 3d 30 2e 30 09 23 | 20 61 76 65 72 61 67 65 |00=0.0.#| average|
|00004240| 20 6c 69 74 65 72 73 2f | 31 30 30 20 6b 6d 0a 54 | liters/|100 km.T|
|00004250| 4d 50 3d 30 2e 30 09 09 | 09 23 20 6b 6d 73 2f 31 |MP=0.0..|.# kms/1|
|00004260| 30 30 0a 0a 65 63 68 6f | 20 22 4d 50 47 20 2d 20 |00..echo| "MPG - |
|00004270| 46 75 65 6c 20 45 63 6f | 6e 6f 6d 79 20 43 61 6c |Fuel Eco|nomy Cal|
|00004280| 63 75 6c 61 74 6f 72 5c | 6e 22 0a 65 63 68 6f 20 |culator\|n".echo |
|00004290| 22 55 53 20 56 65 72 73 | 69 6f 6e 20 2d 20 45 6e |"US Vers|ion - En|
|000042a0| 74 65 72 20 4d 69 6c 65 | 73 20 61 6e 64 20 55 53 |ter Mile|s and US|
|000042b0| 20 47 61 6c 6c 6f 6e 73 | 5c 6e 22 0a 0a 65 63 68 | Gallons|\n"..ech|
|000042c0| 6f 20 22 52 65 61 64 69 | 6e 67 20 6f 6c 64 20 76 |o "Readi|ng old v|
|000042d0| 61 6c 75 65 73 20 2e 2e | 2e 20 5c 63 22 0a 0a 54 |alues ..|. \c"..T|
|000042e0| 5f 4d 49 4c 45 53 3d 60 | 63 75 74 20 2d 64 3a 20 |_MILES=`|cut -d: |
|000042f0| 2d 66 31 20 24 46 49 4c | 45 60 0a 54 5f 4b 4d 53 |-f1 $FIL|E`.T_KMS|
|00004300| 3d 60 63 75 74 20 2d 64 | 3a 20 2d 66 32 20 24 46 |=`cut -d|: -f2 $F|
|00004310| 49 4c 45 60 0a 54 5f 55 | 53 47 41 4c 3d 60 63 75 |ILE`.T_U|SGAL=`cu|
|00004320| 74 20 2d 64 3a 20 2d 66 | 33 20 24 46 49 4c 45 60 |t -d: -f|3 $FILE`|
|00004330| 0a 54 5f 55 4b 47 41 4c | 3d 60 63 75 74 20 2d 64 |.T_UKGAL|=`cut -d|
|00004340| 3a 20 2d 66 34 20 24 46 | 49 4c 45 60 0a 54 5f 4c |: -f4 $F|ILE`.T_L|
|00004350| 49 54 45 52 53 3d 60 63 | 75 74 20 2d 64 3a 20 2d |ITERS=`c|ut -d: -|
|00004360| 66 35 20 24 46 49 4c 45 | 60 0a 65 63 68 6f 20 22 |f5 $FILE|`.echo "|
|00004370| 64 6f 6e 65 21 5c 6e 22 | 0a 0a 65 63 68 6f 20 22 |done!\n"|..echo "|
|00004380| 45 6e 74 65 72 20 6d 69 | 6c 65 73 20 64 72 69 76 |Enter mi|les driv|
|00004390| 65 6e 3a 20 5c 63 22 0a | 72 65 61 64 20 43 5f 4d |en: \c".|read C_M|
|000043a0| 49 4c 45 53 0a 0a 65 63 | 68 6f 20 22 45 6e 74 65 |ILES..ec|ho "Ente|
|000043b0| 72 20 67 61 6c 6c 6f 6e | 73 20 75 73 65 64 3a 20 |r gallon|s used: |
|000043c0| 5c 63 22 0a 72 65 61 64 | 20 43 5f 55 53 47 41 4c |\c".read| C_USGAL|
|000043d0| 0a 0a 65 63 68 6f 20 22 | 5c 6e 4f 6e 65 20 6d 6f |..echo "|\nOne mo|
|000043e0| 6d 65 6e 74 20 2d 20 63 | 61 6c 63 75 6c 61 74 69 |ment - c|alculati|
|000043f0| 6e 67 20 63 6f 6e 73 75 | 6d 70 74 69 6f 6e 20 66 |ng consu|mption f|
|00004400| 69 67 75 72 65 73 20 2e | 2e 2e 20 5c 63 22 0a 43 |igures .|.. \c".C|
|00004410| 5f 4b 4d 53 3d 60 66 70 | 6d 75 6c 74 69 70 6c 79 |_KMS=`fp|multiply|
|00004420| 20 24 43 5f 4d 49 4c 45 | 53 20 24 4d 49 4c 45 60 | $C_MILE|S $MILE`|
|00004430| 0a 43 5f 4c 49 54 45 52 | 53 3d 60 66 70 6d 75 6c |.C_LITER|S=`fpmul|
|00004440| 74 69 70 6c 79 20 24 43 | 5f 55 53 47 41 4c 20 24 |tiply $C|_USGAL $|
|00004450| 55 53 5f 47 41 4c 4c 4f | 4e 60 0a 43 5f 55 4b 47 |US_GALLO|N`.C_UKG|
|00004460| 41 4c 3d 60 66 70 64 69 | 76 69 64 65 20 24 43 5f |AL=`fpdi|vide $C_|
|00004470| 4c 49 54 45 52 53 20 24 | 55 4b 5f 47 41 4c 4c 4f |LITERS $|UK_GALLO|
|00004480| 4e 60 0a 0a 54 5f 4d 49 | 4c 45 53 3d 60 66 70 61 |N`..T_MI|LES=`fpa|
|00004490| 64 64 20 24 54 5f 4d 49 | 4c 45 53 20 24 43 5f 4d |dd $T_MI|LES $C_M|
|000044a0| 49 4c 45 53 60 0a 54 5f | 4b 4d 53 3d 60 66 70 61 |ILES`.T_|KMS=`fpa|
|000044b0| 64 64 20 24 54 5f 4b 4d | 53 20 24 43 5f 4b 4d 53 |dd $T_KM|S $C_KMS|
|000044c0| 60 0a 54 5f 55 53 47 41 | 4c 3d 60 66 70 61 64 64 |`.T_USGA|L=`fpadd|
|000044d0| 20 24 54 5f 55 53 47 41 | 4c 20 24 43 5f 55 53 47 | $T_USGA|L $C_USG|
|000044e0| 41 4c 60 0a 54 5f 55 4b | 47 41 4c 3d 60 66 70 61 |AL`.T_UK|GAL=`fpa|
|000044f0| 64 64 20 24 54 5f 55 4b | 47 41 4c 20 24 43 5f 55 |dd $T_UK|GAL $C_U|
|00004500| 4b 47 41 4c 60 0a 54 5f | 4c 49 54 45 52 53 3d 60 |KGAL`.T_|LITERS=`|
|00004510| 66 70 61 64 64 20 24 54 | 5f 4c 49 54 45 52 53 20 |fpadd $T|_LITERS |
|00004520| 24 43 5f 4c 49 54 45 52 | 53 60 0a 0a 43 5f 55 53 |$C_LITER|S`..C_US|
|00004530| 4d 50 47 3d 60 66 70 64 | 69 76 69 64 65 20 24 43 |MPG=`fpd|ivide $C|
|00004540| 5f 4d 49 4c 45 53 20 24 | 43 5f 55 53 47 41 4c 60 |_MILES $|C_USGAL`|
|00004550| 0a 41 5f 55 53 4d 50 47 | 3d 60 66 70 64 69 76 69 |.A_USMPG|=`fpdivi|
|00004560| 64 65 20 24 54 5f 4d 49 | 4c 45 53 20 24 54 5f 55 |de $T_MI|LES $T_U|
|00004570| 53 47 41 4c 60 0a 0a 43 | 5f 55 4b 4d 50 47 3d 60 |SGAL`..C|_UKMPG=`|
|00004580| 66 70 64 69 76 69 64 65 | 20 24 43 5f 4d 49 4c 45 |fpdivide| $C_MILE|
|00004590| 53 20 24 43 5f 55 4b 47 | 41 4c 60 0a 41 5f 55 4b |S $C_UKG|AL`.A_UK|
|000045a0| 4d 50 47 3d 60 66 70 64 | 69 76 69 64 65 20 24 54 |MPG=`fpd|ivide $T|
|000045b0| 5f 4d 49 4c 45 53 20 24 | 54 5f 55 4b 47 41 4c 60 |_MILES $|T_UKGAL`|
|000045c0| 0a 0a 54 4d 50 3d 60 66 | 70 64 69 76 69 64 65 20 |..TMP=`f|pdivide |
|000045d0| 24 43 5f 4b 4d 53 20 31 | 30 30 2e 30 30 60 0a 43 |$C_KMS 1|00.00`.C|
|000045e0| 5f 4c 50 31 30 30 3d 60 | 66 70 64 69 76 69 64 65 |_LP100=`|fpdivide|
|000045f0| 20 24 43 5f 4c 49 54 45 | 52 53 20 24 54 4d 50 60 | $C_LITE|RS $TMP`|
|00004600| 0a 54 4d 50 3d 60 66 70 | 64 69 76 69 64 65 20 24 |.TMP=`fp|divide $|
|00004610| 54 5f 4b 4d 53 20 31 30 | 30 2e 30 30 60 0a 41 5f |T_KMS 10|0.00`.A_|
|00004620| 4c 50 31 30 30 3d 60 66 | 70 64 69 76 69 64 65 20 |LP100=`f|pdivide |
|00004630| 24 54 5f 4c 49 54 45 52 | 53 20 24 54 4d 50 60 0a |$T_LITER|S $TMP`.|
|00004640| 0a 65 63 68 6f 20 22 24 | 54 5f 4d 49 4c 45 53 3a |.echo "$|T_MILES:|
|00004650| 24 54 5f 4b 4d 53 3a 24 | 54 5f 55 53 47 41 4c 3a |$T_KMS:$|T_USGAL:|
|00004660| 24 54 5f 55 4b 47 41 4c | 3a 24 54 5f 4c 49 54 45 |$T_UKGAL|:$T_LITE|
|00004670| 52 53 22 20 3e 20 24 46 | 49 4c 45 0a 0a 65 63 68 |RS" > $F|ILE..ech|
|00004680| 6f 20 22 64 6f 6e 65 21 | 22 0a 65 63 68 6f 20 22 |o "done!|".echo "|
|00004690| 5c 6e 46 75 65 6c 20 45 | 63 6f 6e 6f 6d 79 3a 5c |\nFuel E|conomy:\|
|000046a0| 6e 22 0a 65 63 68 6f 20 | 22 5c 74 24 43 5f 55 53 |n".echo |"\t$C_US|
|000046b0| 4d 50 47 20 6d 69 6c 65 | 73 20 70 65 72 20 55 53 |MPG mile|s per US|
|000046c0| 20 67 61 6c 6c 6f 6e 5c | 74 28 41 76 65 72 61 67 | gallon\|t(Averag|
|000046d0| 65 20 24 7b 41 5f 55 53 | 4d 50 47 7d 29 22 0a 65 |e ${A_US|MPG})".e|
|000046e0| 63 68 6f 20 22 5c 74 24 | 43 5f 55 4b 4d 50 47 20 |cho "\t$|C_UKMPG |
|000046f0| 6d 69 6c 65 73 20 70 65 | 72 20 55 4b 20 67 61 6c |miles pe|r UK gal|
|00004700| 6c 6f 6e 5c 74 28 41 76 | 65 72 61 67 65 20 24 7b |lon\t(Av|erage ${|
|00004710| 41 5f 55 4b 4d 50 47 7d | 29 22 0a 65 63 68 6f 20 |A_UKMPG}|)".echo |
|00004720| 22 5c 74 24 43 5f 4c 50 | 31 30 30 20 6c 69 74 65 |"\t$C_LP|100 lite|
|00004730| 72 73 20 70 65 72 20 31 | 30 30 20 6b 6d 5c 74 5c |rs per 1|00 km\t\|
|00004740| 74 28 41 76 65 72 61 67 | 65 20 24 7b 41 5f 4c 50 |t(Averag|e ${A_LP|
|00004750| 31 30 30 7d 29 22 0a 65 | 63 68 6f 20 22 5c 6e 44 |100})".e|cho "\nD|
|00004760| 6f 20 79 6f 75 20 77 61 | 6e 74 20 61 20 70 72 69 |o you wa|nt a pri|
|00004770| 6e 74 6f 75 74 20 6f 66 | 20 74 68 65 73 65 20 72 |ntout of| these r|
|00004780| 65 73 75 6c 74 73 3f 20 | 5c 63 22 0a 72 65 61 64 |esults? |\c".read|
|00004790| 20 52 45 50 4c 59 0a 69 | 66 20 5b 20 22 24 52 45 | REPLY.i|f [ "$RE|
|000047a0| 50 4c 59 22 20 21 3d 20 | 22 79 22 20 2d 61 20 22 |PLY" != |"y" -a "|
|000047b0| 24 52 45 50 4c 59 22 20 | 21 3d 20 22 59 22 20 5d |$REPLY" |!= "Y" ]|
|000047c0| 20 3b 20 74 68 65 6e 0a | 09 65 78 69 74 0a 66 69 | ; then.|.exit.fi|
|000047d0| 0a 65 63 68 6f 20 22 0a | 4d 50 47 20 28 55 53 29 |.echo ".|MPG (US)|
|000047e0| 20 2d 2d 20 46 75 65 6c | 20 45 63 6f 6e 6f 6d 79 | -- Fuel| Economy|
|000047f0| 20 43 61 6c 63 75 6c 61 | 74 6f 72 0a 46 75 65 6c | Calcula|tor.Fuel|
|00004800| 20 45 63 6f 6e 6f 6d 79 | 20 53 74 61 74 65 6d 65 | Economy| Stateme|
|00004810| 6e 74 20 61 73 20 6f 66 | 20 60 64 61 74 65 20 27 |nt as of| `date '|
|00004820| 2b 25 68 20 25 64 2c 20 | 31 39 25 79 27 60 0a 0a |+%h %d, |19%y'`..|
|00004830| 4d 69 6c 65 73 20 74 68 | 69 73 20 46 69 6c 6c 69 |Miles th|is Filli|
|00004840| 6e 67 3a 20 20 20 20 20 | 20 20 20 24 43 5f 4d 49 |ng: | $C_MI|
|00004850| 4c 45 53 5c 74 28 24 43 | 5f 4b 4d 53 20 6b 6d 29 |LES\t($C|_KMS km)|
|00004860| 0a 47 61 6c 6c 6f 6e 73 | 20 74 68 69 73 20 46 69 |.Gallons| this Fi|
|00004870| 6c 6c 69 6e 67 3a 20 20 | 20 20 20 20 24 43 5f 55 |lling: | $C_U|
|00004880| 53 47 41 4c 5c 74 28 24 | 43 5f 55 4b 47 41 4c 20 |SGAL\t($|C_UKGAL |
|00004890| 55 4b 2c 20 24 43 5f 4c | 49 54 45 52 53 20 6c 69 |UK, $C_L|ITERS li|
|000048a0| 74 65 72 73 29 0a 0a 54 | 6f 74 61 6c 20 4d 69 6c |ters)..T|otal Mil|
|000048b0| 65 73 20 73 6f 20 66 61 | 72 3a 20 20 20 20 20 20 |es so fa|r: |
|000048c0| 20 20 24 54 5f 4d 49 4c | 45 53 5c 74 28 24 54 5f | $T_MIL|ES\t($T_|
|000048d0| 4b 4d 53 20 6b 6d 29 0a | 54 6f 74 61 6c 20 47 61 |KMS km).|Total Ga|
|000048e0| 6c 6c 6f 6e 73 20 73 6f | 20 66 61 72 3a 20 20 20 |llons so| far: |
|000048f0| 20 20 20 24 54 5f 55 53 | 47 41 4c 5c 74 28 24 54 | $T_US|GAL\t($T|
|00004900| 5f 55 4b 47 41 4c 20 55 | 4b 2c 20 24 54 5f 4c 49 |_UKGAL U|K, $T_LI|
|00004910| 54 45 52 53 20 6c 69 74 | 65 72 73 29 0a 0a 43 75 |TERS lit|ers)..Cu|
|00004920| 72 72 65 6e 74 20 4d 69 | 6c 65 73 20 70 65 72 20 |rrent Mi|les per |
|00004930| 47 61 6c 6c 6f 6e 3a 20 | 20 24 43 5f 55 53 4d 50 |Gallon: | $C_USMP|
|00004940| 47 5c 74 28 24 43 5f 55 | 4b 4d 50 47 20 55 4b 2c |G\t($C_U|KMPG UK,|
|00004950| 20 24 43 5f 4c 50 31 30 | 30 20 6c 2f 31 30 30 20 | $C_LP10|0 l/100 |
|00004960| 6b 6d 29 0a 41 76 65 72 | 61 67 65 20 4d 69 6c 65 |km).Aver|age Mile|
|00004970| 73 20 70 65 72 20 47 61 | 6c 6c 6f 6e 3a 20 20 24 |s per Ga|llon: $|
|00004980| 41 5f 55 53 4d 50 47 5c | 74 28 24 41 5f 55 4b 4d |A_USMPG\|t($A_UKM|
|00004990| 50 47 20 55 4b 2c 20 24 | 41 5f 4c 50 31 30 30 20 |PG UK, $|A_LP100 |
|000049a0| 6c 2f 31 30 30 20 6b 6d | 29 5c 0a 22 20 7c 20 6c |l/100 km|)\." | l|
|000049b0| 70 20 2d 73 20 26 0a 53 | 48 41 52 5f 45 4f 46 0a |p -s &.S|HAR_EOF.|
|000049c0| 63 68 6d 6f 64 20 2b 78 | 20 27 75 73 6d 70 67 27 |chmod +x| 'usmpg'|
|000049d0| 0a 66 69 20 23 20 65 6e | 64 20 6f 66 20 6f 76 65 |.fi # en|d of ove|
|000049e0| 72 77 72 69 74 69 6e 67 | 20 63 68 65 63 6b 0a 23 |rwriting| check.#|
|000049f0| 09 45 6e 64 20 6f 66 20 | 73 68 65 6c 6c 20 61 72 |.End of |shell ar|
|00004a00| 63 68 69 76 65 0a 65 78 | 69 74 20 30 0a |chive.ex|it 0. |
+--------+-------------------------+-------------------------+--------+--------+