CSuite: getdate fix for Y2K compliance

Date: Mon, 29 Nov 1999 14:06:44 -0400 (AST)
From: Michael Smith <michael@csuite.ns.ca>
To: csuite-tech@chebucto.ns.ca
Precedence: bulk
Return-Path: <csuite-tech-mml-owner@chebucto.ns.ca>

next message in archive
no next message in thread
previous message in archive
Index of Subjects


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1978089469-1709501013-942019453=:3435
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.20.9911291401372.32724@pentagram.nslug.ns.ca>

getdate is the nexus of UNIX and human-readable time in CSuite. It's used
mainly to name old logfiles as they're rotated each night, and to time
periods like "2 months ago last week".

There were a few post-year-2000 problems with the version of getdate
shipped with CSuite 1.0. Since CSuite 1.1 will probably not be released in
time for some sites to upgrade before the new year, we're releasing an
updated revision of getdate.

Installation is simple. Save getdate.c and parser.y (the first two files
attached to this message) and transfer them to your CSuite system.

Log into your CSuite system and become root.

	$ su
	Password:
	#

Change to your CSuite root (on most systems this is /var/csuite).

	# cd /var/csuite

Change to the getdate source subdirectory.

	# cd src/lib/getdate

Copy getdate.c and parser.y to the current directory.

	# cp -p /location/of/new/getdate.c /location/of/new/parser.y .

Add <your CSuite root>/lib to your execution PATH.

	# PATH=$PATH:/var/csuite/lib

Recompile and install the new getdate.

	# rm getdate *.o
	# make install-csuite

Test the new getdate and exit your root shell.

	# /var/csuite/lib/getdate 02/28/2000 5:30 PST
	951744600
	# exit

For the curious, a `cvs diff -u` of the changes to each file is also
attached.

The files attached to this message are also available on the CSuite ftp
site (csuite.ns.ca).

ftp://your-csuite-ftp-username@csuite.ns.ca/1.0-fixes/getdate-y2k.tar.gz

--------------------------------------------------------------------------
 Michael Smith				michael@csuite.ns.ca
 Systems Administration			Halifax, Nova Scotia, Canada
 Chebucto Community Net			http://www.chebucto.ns.ca/~aa529/
==========================================================================

---1978089469-1709501013-942019453=:3435
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="getdate.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911072004130.3435@pentagram.nslug.ns.ca>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="getdate.c"

LyoNCiAqICRJZDogZ2V0ZGF0ZS5jLHYgMS4zIDE5OTkvMDgvMTggMDE6MjU6
NTIgbWljaGFlbCBFeHAgJA0KICogQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2
IENoZWJ1Y3RvIENvbW11bml0eSBOZXQgU29jaWV0eQ0KICogVGhpcyBmaWxl
IGlzIHBhcnQgb2YgQ2hlYnVjdG8gU3VpdGUuICBVc2UgaXMgZ292ZXJuZWQg
YnkgdGhlIHRlcm1zDQogKiBsYWlkIG91dCBpbiB0aGUgZmlsZSBDT1BZUklH
SFQuDQogKi8NCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3lz
L3R5cGVzLmg+DQoNCm1haW4oYXJnYywgYXJndikNCmludCBhcmdjOw0KY2hh
ciAqYXJndltdOw0Kew0KCWludCBpOw0KCWNoYXIgYnVmW0JVRlNJWl07DQoJ
dGltZV90CXNlY3M7DQoJZXh0ZXJuIHRpbWVfdCBDU19nZXRkYXRlKCk7DQoN
CglpZiAoYXJnYyA8PSAxKSB7DQoJCXByaW50ZigiJWxkXG4iLCAobG9uZykg
dGltZSgodGltZV90ICopTlVMTCkpOw0KCQlleGl0KDApOw0KCX0NCglpZiAo
c3RyY21wKGFyZ3ZbMV0sICItIikgPT0gMCkgew0KCQl3aGlsZSAoZmdldHMo
YnVmLCBzaXplb2YoYnVmKSwgc3RkaW4pICE9IE5VTEwpDQoJCQlwcmludGYo
IiVsZFxuIiwgQ1NfZ2V0ZGF0ZShidWYpKTsNCgkJZXhpdCgwKTsNCgl9DQoJ
YnVmWzBdID0gJ1wwJzsNCglmb3IgKGkgPSAxOyBpIDwgYXJnYzsgaSsrKSB7
DQoJCXN0cmNhdChidWYsIGFyZ3ZbaV0pOw0KCQlzdHJjYXQoYnVmLCAiICIp
Ow0KCX0NCglzZWNzID0gQ1NfZ2V0ZGF0ZShidWYpOw0KCWlmIChzZWNzID09
IC0xKQ0KCQlleGl0KDEpOw0KCWVsc2UNCgkJcHJpbnRmKCIlbGRcbiIsIChs
b25nKSBzZWNzKTsNCglleGl0KDApOw0KfQ0K
---1978089469-1709501013-942019453=:3435
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="parser.y"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911072004131.3435@pentagram.nslug.ns.ca>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="parser.y"

JXRva2VuIElEIE1PTlRIIERBWSBNRVJJRElBTiBOVU1CRVIgVU5JVCBNVU5J
VCBTVU5JVCBaT05FIERBWVpPTkUgQUdPDQolew0KCS8qIAlTdGV2ZW4gTS4g
QmVsbG92aW4gKHVuYyFzbWIpCQkJKi8NCgkvKglEZXB0LiBvZiBDb21wdXRl
ciBTY2llbmNlCQkJKi8NCgkvKglVbml2ZXJzaXR5IG9mIE5vcnRoIENhcm9s
aW5hIGF0IENoYXBlbCBIaWxsCSovDQoJLyoJQCgjKWdldGRhdGUueQkyLjEz
CTkvMTYvODYgKi8NCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8
c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8Y3R5cGUuaD4NCiNpbmNsdWRlIDx0
aW1lLmg+DQoNCiNkZWZpbmUgZGF5c2VjICgyNEwqNjBMKjYwTCkNCg0KCXN0
YXRpYyBpbnQgdGltZWZsYWcsIHpvbmVmbGFnLCBkYXRlZmxhZywgZGF5Zmxh
ZywgcmVsZmxhZzsNCglzdGF0aWMgdGltZV90IHJlbHNlYywgcmVsbW9udGg7
DQoJc3RhdGljIGludCBoaCwgbW0sIHNzLCBtZXJpZCwgZGF5bGlnaHQ7DQoJ
c3RhdGljIGludCBkYXlvcmQsIGRheXJlcTsNCglzdGF0aWMgaW50IG1vbnRo
LCBkYXksIHllYXI7DQoJc3RhdGljIGludCBvdXJ6b25lOw0KDQojZGVmaW5l
IEFNIDENCiNkZWZpbmUgUE0gMg0KI2RlZmluZSBEQVlMSUdIVCAxDQojZGVm
aW5lIFNUQU5EQVJEIDINCiNkZWZpbmUgTUFZQkUgICAgMw0KJX0NCg0KJSUN
CnRpbWVkYXRlOiAJCS8qIGVtcHR5ICovDQoJfCB0aW1lZGF0ZSBpdGVtOw0K
DQppdGVtOgl0c3BlYyA9DQoJCXt0aW1lZmxhZysrO30NCgl8IHpvbmUgPQ0K
CQl7em9uZWZsYWcrKzt9DQoJfCBkdHNwZWMgPQ0KCQl7ZGF0ZWZsYWcrKzt9
DQoJfCBkeXNwZWMgPQ0KCQl7ZGF5ZmxhZysrO30NCgl8IHJzcGVjID0NCgkJ
e3JlbGZsYWcrKzt9DQoJfCBuc3BlYzsNCg0KbnNwZWM6CU5VTUJFUiA9DQoJ
CXtpZiAodGltZWZsYWcgJiYgZGF0ZWZsYWcgJiYgIXJlbGZsYWcpIHllYXIg
PSAkMTsNCgkJZWxzZSB7dGltZWZsYWcrKztoaCA9ICQxLzEwMDttbSA9ICQx
JTEwMDtzcyA9IDA7bWVyaWQgPSAyNDt9fTsNCg0KdHNwZWM6CU5VTUJFUiBN
RVJJRElBTiA9DQoJCXtoaCA9ICQxOyBtbSA9IDA7IHNzID0gMDsgbWVyaWQg
PSAkMjt9DQoJfCBOVU1CRVIgJzonIE5VTUJFUiA9DQoJCXtoaCA9ICQxOyBt
bSA9ICQzOyBtZXJpZCA9IDI0O30NCgl8IE5VTUJFUiAnOicgTlVNQkVSIE1F
UklESUFOID0NCgkJe2hoID0gJDE7IG1tID0gJDM7IG1lcmlkID0gJDQ7fQ0K
CXwgTlVNQkVSICc6JyBOVU1CRVIgTlVNQkVSID0NCgkJe2hoID0gJDE7IG1t
ID0gJDM7IG1lcmlkID0gMjQ7DQoJCWRheWxpZ2h0ID0gU1RBTkRBUkQ7IG91
cnpvbmUgPSAkNCUxMDAgKyA2MCokNC8xMDA7fQ0KCXwgTlVNQkVSICc6JyBO
VU1CRVIgJzonIE5VTUJFUiA9DQoJCXtoaCA9ICQxOyBtbSA9ICQzOyBzcyA9
ICQ1OyBtZXJpZCA9IDI0O30NCgl8IE5VTUJFUiAnOicgTlVNQkVSICc6JyBO
VU1CRVIgTUVSSURJQU4gPQ0KCQl7aGggPSAkMTsgbW0gPSAkMzsgc3MgPSAk
NTsgbWVyaWQgPSAkNjt9DQoJfCBOVU1CRVIgJzonIE5VTUJFUiAnOicgTlVN
QkVSIE5VTUJFUiA9DQoJCXtoaCA9ICQxOyBtbSA9ICQzOyBzcyA9ICQ1OyBt
ZXJpZCA9IDI0Ow0KCQlkYXlsaWdodCA9IFNUQU5EQVJEOyBvdXJ6b25lID0g
JDYlMTAwICsgNjAqJDYvMTAwO307DQoNCnpvbmU6CVpPTkUgPQ0KCQl7b3Vy
em9uZSA9ICQxOyBkYXlsaWdodCA9IFNUQU5EQVJEO30NCgl8IERBWVpPTkUg
PQ0KCQl7b3Vyem9uZSA9ICQxOyBkYXlsaWdodCA9IERBWUxJR0hUO307DQoN
CmR5c3BlYzoJREFZID0NCgkJe2RheW9yZCA9IDE7IGRheXJlcSA9ICQxO30N
Cgl8IERBWSAnLCcgPQ0KCQl7ZGF5b3JkID0gMTsgZGF5cmVxID0gJDE7fQ0K
CXwgTlVNQkVSIERBWSA9DQoJCXtkYXlvcmQgPSAkMTsgZGF5cmVxID0gJDI7
fTsNCg0KZHRzcGVjOglOVU1CRVIgJy8nIE5VTUJFUiA9DQoJCXttb250aCA9
ICQxOyBkYXkgPSAkMzt9DQoJfCBOVU1CRVIgJy8nIE5VTUJFUiAnLycgTlVN
QkVSID0NCgkJe21vbnRoID0gJDE7IGRheSA9ICQzOyB5ZWFyID0gJDU7fQ0K
CXwgTU9OVEggTlVNQkVSID0NCgkJe21vbnRoID0gJDE7IGRheSA9ICQyO30N
Cgl8IE1PTlRIIE5VTUJFUiAnLCcgTlVNQkVSID0NCgkJe21vbnRoID0gJDE7
IGRheSA9ICQyOyB5ZWFyID0gJDQ7fQ0KCXwgTlVNQkVSIE1PTlRIID0NCgkJ
e21vbnRoID0gJDI7IGRheSA9ICQxO30NCgl8IE5VTUJFUiBNT05USCBOVU1C
RVIgPQ0KCQl7bW9udGggPSAkMjsgZGF5ID0gJDE7IHllYXIgPSAkMzt9Ow0K
DQoNCnJzcGVjOglOVU1CRVIgVU5JVCA9DQoJCXtyZWxzZWMgKz0gIDYwTCAq
ICQxICogJDI7fQ0KCXwgTlVNQkVSIE1VTklUID0NCgkJe3JlbG1vbnRoICs9
ICQxICogJDI7fQ0KCXwgTlVNQkVSIFNVTklUID0NCgkJe3JlbHNlYyArPSAk
MTt9DQoJfCBVTklUID0NCgkJe3JlbHNlYyArPSAgNjBMICogJDE7fQ0KCXwg
TVVOSVQgPQ0KCQl7cmVsbW9udGggKz0gJDE7fQ0KCXwgU1VOSVQgPQ0KCQl7
cmVsc2VjKys7fQ0KCXwgcnNwZWMgQUdPID0NCgkJe3JlbHNlYyA9IC1yZWxz
ZWM7IHJlbG1vbnRoID0gLXJlbG1vbnRoO307DQolJQ0KDQpzdGF0aWMgaW50
IG1kYXlzWzEyXSA9DQoJezMxLCAwLCAzMSwgIDMwLCAzMSwgMzAsICAzMSwg
MzEsIDMwLCAgMzEsIDMwLCAzMX07DQojZGVmaW5lIGVwb2NoIDE5NzANCg0K
ZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lKCk7DQoNCnN0YXRpYyB0aW1l
X3QNCmRhdGVjb252KG1tLCBkZCwgeXksIGgsIG0sIHMsIG1lciwgem9uZSwg
ZGF5ZmxhZykNCmludCBtbSwgZGQsIHl5LCBoLCBtLCBzLCBtZXIsIHpvbmUs
IGRheWZsYWc7DQp7DQoJdGltZV90IHRvZCwgamRhdGU7DQoJcmVnaXN0ZXIg
aW50IGk7DQoJc3RhdGljIHRpbWVfdCB0aW1lY29udigpOw0KDQoJaWYgKHl5
IDwgMCkgeXkgPSAteXk7DQoJaWYgKHl5IDwgMTkwMCkgeXkgKz0gMTkwMDsN
CgltZGF5c1sxXSA9IDI4ICsgKHl5JTQgPT0gMCAmJiAoeXklMTAwICE9IDAg
fHwgeXklNDAwID09IDApKTsNCglpZiAoeXkgPCBlcG9jaCB8fCB5eSA+IDIw
MzggfHwgbW0gPCAxIHx8IG1tID4gMTIgfHwNCgkJZGQgPCAxIHx8IGRkID4g
bWRheXNbLS1tbV0pIHJldHVybiAoLTEpOw0KCWpkYXRlID0gZGQtMTsNCiAg
ICAgICAgZm9yIChpPTA7IGk8bW07IGkrKykgamRhdGUgKz0gbWRheXNbaV07
DQoJZm9yIChpID0gZXBvY2g7IGkgPCB5eTsgaSsrKSBqZGF0ZSArPSAzNjUN
CgkJCQkgICArIChpJTQgPT0gMCAmJiAoeXklMTAwICE9IDAgfHwgeXklNDAw
ID09IDApKTsNCglqZGF0ZSAqPSBkYXlzZWM7DQoJamRhdGUgKz0gem9uZSAq
IDYwTDsNCglpZiAoKHRvZCA9IHRpbWVjb252KGgsIG0sIHMsIG1lcikpIDwg
MCkgcmV0dXJuICgtMSk7DQoJamRhdGUgKz0gdG9kOw0KCWlmIChkYXlmbGFn
PT1EQVlMSUdIVCB8fCAoZGF5ZmxhZz09TUFZQkUmJmxvY2FsdGltZSgmamRh
dGUpLT50bV9pc2RzdCkpDQoJCWpkYXRlICs9IC0xKjYwKjYwOw0KCXJldHVy
biAoamRhdGUpOw0KfQ0KDQpzdGF0aWMgdGltZV90DQpkYXljb252KG9yZCwg
ZGF5LCBub3cpDQppbnQgb3JkLCBkYXk7IHRpbWVfdCBub3c7DQp7DQoJcmVn
aXN0ZXIgc3RydWN0IHRtICpsb2N0aW1lOw0KCXRpbWVfdCB0b2Q7DQoJc3Rh
dGljIHRpbWVfdCBkYXlsY29ycigpOw0KDQoJdG9kID0gbm93Ow0KCWxvY3Rp
bWUgPSBsb2NhbHRpbWUoJnRvZCk7DQoJdG9kICs9IGRheXNlYyAqICgoZGF5
IC0gbG9jdGltZS0+dG1fd2RheSArIDcpICUgNyk7DQoJdG9kICs9IDcqZGF5
c2VjKihvcmQ8PTA/b3JkOm9yZC0xKTsNCglyZXR1cm4gZGF5bGNvcnIodG9k
LCBub3cpOw0KfQ0KDQpzdGF0aWMgdGltZV90DQp0aW1lY29udihoaCwgbW0s
IHNzLCBtZXIpDQpyZWdpc3RlciBpbnQgaGgsIG1tLCBzcywgbWVyOw0Kew0K
CWlmIChtbSA8IDAgfHwgbW0gPiA1OSB8fCBzcyA8IDAgfHwgc3MgPiA1OSkg
cmV0dXJuICgtMSk7DQoJc3dpdGNoIChtZXIpIHsNCgkJY2FzZSBBTTogaWYg
KGhoIDwgMSB8fCBoaCA+IDEyKSByZXR1cm4oLTEpOw0KCQkJIHJldHVybiAo
NjBMICogKChoaCUxMikqNjBMICsgbW0pK3NzKTsNCgkJY2FzZSBQTTogaWYg
KGhoIDwgMSB8fCBoaCA+IDEyKSByZXR1cm4oLTEpOw0KCQkJIHJldHVybiAo
NjBMICogKChoaCUxMiArMTIpKjYwTCArIG1tKStzcyk7DQoJCWNhc2UgMjQ6
IGlmIChoaCA8IDAgfHwgaGggPiAyMykgcmV0dXJuICgtMSk7DQoJCQkgcmV0
dXJuICg2MEwgKiAoaGgqNjBMICsgbW0pK3NzKTsNCgkJZGVmYXVsdDogcmV0
dXJuICgtMSk7DQoJfQ0KfQ0KDQpzdGF0aWMgdGltZV90DQptb250aGFkZChz
ZGF0ZSwgcmVsbW9udGgpDQp0aW1lX3Qgc2RhdGUsIHJlbG1vbnRoOw0Kew0K
CXN0cnVjdCB0bSAqbHRpbWU7DQoJdGltZV90IGRhdGVjb252KCk7DQoJc3Rh
dGljIHRpbWVfdCBkYXlsY29ycigpOw0KCWludCBtbSwgeXk7DQoNCglpZiAo
cmVsbW9udGggPT0gMCkgcmV0dXJuIDA7DQoJbHRpbWUgPSBsb2NhbHRpbWUo
JnNkYXRlKTsNCgltbSA9IDEyKmx0aW1lLT50bV95ZWFyICsgbHRpbWUtPnRt
X21vbiArIHJlbG1vbnRoOw0KCXl5ID0gbW0vMTI7DQoJbW0gPSBtbSUxMiAr
IDE7DQoJcmV0dXJuIGRheWxjb3JyKGRhdGVjb252KG1tLCBsdGltZS0+dG1f
bWRheSwgeXksIGx0aW1lLT50bV9ob3VyLA0KCQlsdGltZS0+dG1fbWluLCBs
dGltZS0+dG1fc2VjLCAyNCwgb3Vyem9uZSwgTUFZQkUpLCBzZGF0ZSk7DQp9
DQoNCnN0YXRpYyB0aW1lX3QNCmRheWxjb3JyKGZ1dHVyZSwgbm93KQ0KdGlt
ZV90IGZ1dHVyZSwgbm93Ow0Kew0KCWludCBmZGF5bCwgbm93ZGF5bDsNCg0K
CW5vd2RheWwgPSAobG9jYWx0aW1lKCZub3cpLT50bV9ob3VyKzEpICUgMjQ7
DQoJZmRheWwgPSAobG9jYWx0aW1lKCZmdXR1cmUpLT50bV9ob3VyKzEpICUg
MjQ7DQoJcmV0dXJuIChmdXR1cmUtbm93KSArIDYwTCo2MEwqKG5vd2RheWwt
ZmRheWwpOw0KfQ0KDQpzdGF0aWMgY2hhciAqbHB0cjsNCg0KeXlsZXgoKQ0K
ew0KCXN0YXRpYyBpbnQgbG9va3VwKCk7DQoJZXh0ZXJuIGludCB5eWx2YWw7
DQoJaW50IHNpZ247DQoJcmVnaXN0ZXIgY2hhciBjOw0KCXJlZ2lzdGVyIGNo
YXIgKnA7DQoJY2hhciBpZGJ1ZlsyMF07DQoJaW50IHBjbnQ7DQoNCglmb3Ig
KDs7KSB7DQoJCXdoaWxlIChpc3NwYWNlKCpscHRyKSkgbHB0cisrOw0KDQoJ
CWlmIChpc2RpZ2l0KGMgPSAqbHB0cikgfHwgYyA9PSAnLScgfHwgYyA9PSAn
KycpIHsNCgkJCWlmIChjPT0gJy0nIHx8IGMgPT0gJysnKSB7DQoJCQkJaWYg
KGM9PSctJykgc2lnbiA9IC0xOw0KCQkJCWVsc2Ugc2lnbiA9IDE7DQoJCQkJ
aWYgKCFpc2RpZ2l0KCorK2xwdHIpKSB7DQoJCQkJCS8qIHl5bHZhbCA9IHNp
Z247IHJldHVybiAoTlVNQkVSKTsgKi8NCgkJCQkJcmV0dXJuIHl5bGV4KCk7
CS8qIHNraXAgdGhlICctJyBzaWduICovDQoJCQkJfQ0KCQkJfSBlbHNlIHNp
Z24gPSAxOw0KCQkJeXlsdmFsID0gMDsNCgkJCXdoaWxlIChpc2RpZ2l0KGMg
PSAqbHB0cisrKSkgeXlsdmFsID0gMTAqeXlsdmFsICsgYyAtICcwJzsNCgkJ
CXl5bHZhbCAqPSBzaWduOw0KCQkJbHB0ci0tOw0KCQkJcmV0dXJuIChOVU1C
RVIpOw0KDQoJCX0gZWxzZSBpZiAoaXNhbHBoYShjKSkgew0KCQkJcCA9IGlk
YnVmOw0KCQkJd2hpbGUgKGlzYWxwaGEoYyA9ICpscHRyKyspIHx8IGM9PScu
JykNCgkJCQlpZiAocCA8ICZpZGJ1ZltzaXplb2YoaWRidWYpLTFdKQ0KCQkJ
CQkqcCsrID0gYzsNCgkJCSpwID0gJ1wwJzsNCgkJCWxwdHItLTsNCgkJCXJl
dHVybiAobG9va3VwKGlkYnVmKSk7DQoJCX0NCg0KCQllbHNlIGlmIChjID09
ICcoJykgew0KCQkJcGNudCA9IDA7DQoJCQlkbyB7DQoJCQkJYyA9ICpscHRy
Kys7DQoJCQkJaWYgKGMgPT0gJ1wwJykgcmV0dXJuKGMpOw0KCQkJCWVsc2Ug
aWYgKGMgPT0gJygnKSBwY250Kys7DQoJCQkJZWxzZSBpZiAoYyA9PSAnKScp
IHBjbnQtLTsNCgkJCX0gd2hpbGUgKHBjbnQgPiAwKTsNCgkJfQ0KDQoJCWVs
c2UgcmV0dXJuICgqbHB0cisrKTsNCgl9DQp9DQoNCnN0cnVjdCB0YWJsZSB7
DQoJY2hhciAqbmFtZTsNCglpbnQgdHlwZSwgdmFsdWU7DQp9Ow0KDQpzdGF0
aWMgc3RydWN0IHRhYmxlIG1kdGFiW10gPSB7DQoJeyJKYW51YXJ5IiwgTU9O
VEgsIDF9LA0KCXsiRmVicnVhcnkiLCBNT05USCwgMn0sDQoJeyJNYXJjaCIs
IE1PTlRILCAzfSwNCgl7IkFwcmlsIiwgTU9OVEgsIDR9LA0KCXsiTWF5Iiwg
TU9OVEgsIDV9LA0KCXsiSnVuZSIsIE1PTlRILCA2fSwNCgl7Ikp1bHkiLCBN
T05USCwgN30sDQoJeyJBdWd1c3QiLCBNT05USCwgOH0sDQoJeyJTZXB0ZW1i
ZXIiLCBNT05USCwgOX0sDQoJeyJTZXB0IiwgTU9OVEgsIDl9LA0KCXsiT2N0
b2JlciIsIE1PTlRILCAxMH0sDQoJeyJOb3ZlbWJlciIsIE1PTlRILCAxMX0s
DQoJeyJEZWNlbWJlciIsIE1PTlRILCAxMn0sDQoNCgl7IlN1bmRheSIsIERB
WSwgMH0sDQoJeyJNb25kYXkiLCBEQVksIDF9LA0KCXsiVHVlc2RheSIsIERB
WSwgMn0sDQoJeyJUdWVzIiwgREFZLCAyfSwNCgl7IldlZG5lc2RheSIsIERB
WSwgM30sDQoJeyJXZWRuZXMiLCBEQVksIDN9LA0KCXsiVGh1cnNkYXkiLCBE
QVksIDR9LA0KCXsiVGh1ciIsIERBWSwgNH0sDQoJeyJUaHVycyIsIERBWSwg
NH0sDQoJeyJGcmlkYXkiLCBEQVksIDV9LA0KCXsiU2F0dXJkYXkiLCBEQVks
IDZ9LA0KCXswLCAwLCAwfX07DQoNCiNkZWZpbmUgSFJTICo2MA0KI2RlZmlu
ZSBIQUxGSFIgMzANCnN0YXRpYyBzdHJ1Y3QgdGFibGUgbXp0YWJbXSA9IHsN
Cgl7ImEubS4iLCBNRVJJRElBTiwgQU19LA0KCXsiYW0iLCBNRVJJRElBTiwg
QU19LA0KCXsicC5tLiIsIE1FUklESUFOLCBQTX0sDQoJeyJwbSIsIE1FUklE
SUFOLCBQTX0sDQoJeyJuc3QiLCBaT05FLCAzIEhSUyArIEhBTEZIUn0sCQkv
KiBOZXdmb3VuZGxhbmQgKi8NCgl7Im4ucy50LiIsIFpPTkUsIDMgSFJTICsg
SEFMRkhSfSwNCgl7ImFzdCIsIFpPTkUsIDQgSFJTfSwJCS8qIEF0bGFudGlj
ICovDQoJeyJhLnMudC4iLCBaT05FLCA0IEhSU30sDQoJeyJhZHQiLCBEQVla
T05FLCA0IEhSU30sDQoJeyJhLmQudC4iLCBEQVlaT05FLCA0IEhSU30sDQoJ
eyJlc3QiLCBaT05FLCA1IEhSU30sCQkvKiBFYXN0ZXJuICovDQoJeyJlLnMu
dC4iLCBaT05FLCA1IEhSU30sDQoJeyJlZHQiLCBEQVlaT05FLCA1IEhSU30s
DQoJeyJlLmQudC4iLCBEQVlaT05FLCA1IEhSU30sDQoJeyJjc3QiLCBaT05F
LCA2IEhSU30sCQkvKiBDZW50cmFsICovDQoJeyJjLnMudC4iLCBaT05FLCA2
IEhSU30sDQoJeyJjZHQiLCBEQVlaT05FLCA2IEhSU30sDQoJeyJjLmQudC4i
LCBEQVlaT05FLCA2IEhSU30sDQoJeyJtc3QiLCBaT05FLCA3IEhSU30sCQkv
KiBNb3VudGFpbiAqLw0KCXsibS5zLnQuIiwgWk9ORSwgNyBIUlN9LA0KCXsi
bWR0IiwgREFZWk9ORSwgNyBIUlN9LA0KCXsibS5kLnQuIiwgREFZWk9ORSwg
NyBIUlN9LA0KCXsicHN0IiwgWk9ORSwgOCBIUlN9LAkJLyogUGFjaWZpYyAq
Lw0KCXsicC5zLnQuIiwgWk9ORSwgOCBIUlN9LA0KCXsicGR0IiwgREFZWk9O
RSwgOCBIUlN9LA0KCXsicC5kLnQuIiwgREFZWk9ORSwgOCBIUlN9LA0KCXsi
eXN0IiwgWk9ORSwgOSBIUlN9LAkJLyogWXVrb24gKi8NCgl7Inkucy50LiIs
IFpPTkUsIDkgSFJTfSwNCgl7InlkdCIsIERBWVpPTkUsIDkgSFJTfSwNCgl7
InkuZC50LiIsIERBWVpPTkUsIDkgSFJTfSwNCgl7ImhzdCIsIFpPTkUsIDEw
IEhSU30sCQkvKiBIYXdhaWkgKi8NCgl7Imgucy50LiIsIFpPTkUsIDEwIEhS
U30sDQoJeyJoZHQiLCBEQVlaT05FLCAxMCBIUlN9LA0KCXsiaC5kLnQuIiwg
REFZWk9ORSwgMTAgSFJTfSwNCg0KCXsiZ210IiwgWk9ORSwgMCBIUlN9LA0K
CXsiZy5tLnQuIiwgWk9ORSwgMCBIUlN9LA0KCXsidXQiLCBaT05FLCAwIEhS
U30sDQoJeyJ1LnQuIiwgWk9ORSwgMCBIUlN9LA0KCXsiYnN0IiwgREFZWk9O
RSwgMCBIUlN9LAkJLyogQnJpdGlzaCBTdW1tZXIgVGltZSAqLw0KCXsiYi5z
LnQuIiwgREFZWk9ORSwgMCBIUlN9LA0KCXsiZWV0IiwgWk9ORSwgMCBIUlN9
LAkJLyogRXVyb3BlYW4gRWFzdGVybiBUaW1lICovDQoJeyJlLmUudC4iLCBa
T05FLCAwIEhSU30sDQoJeyJlZXN0IiwgREFZWk9ORSwgMCBIUlN9LAkvKiBF
dXJvcGVhbiBFYXN0ZXJuIFN1bW1lciBUaW1lICovDQoJeyJlLmUucy50LiIs
IERBWVpPTkUsIDAgSFJTfSwNCgl7Im1ldCIsIFpPTkUsIC0xIEhSU30sCQkv
KiBNaWRkbGUgRXVyb3BlYW4gVGltZSAqLw0KCXsibS5lLnQuIiwgWk9ORSwg
LTEgSFJTfSwNCgl7Im1lc3QiLCBEQVlaT05FLCAtMSBIUlN9LAkvKiBNaWRk
bGUgRXVyb3BlYW4gU3VtbWVyIFRpbWUgKi8NCgl7Im0uZS5zLnQuIiwgREFZ
Wk9ORSwgLTEgSFJTfSwNCgl7IndldCIsIFpPTkUsIC0yIEhSUyB9LAkJLyog
V2VzdGVybiBFdXJvcGVhbiBUaW1lICovDQoJeyJ3LmUudC4iLCBaT05FLCAt
MiBIUlMgfSwNCgl7Indlc3QiLCBEQVlaT05FLCAtMiBIUlN9LAkvKiBXZXN0
ZXJuIEV1cm9wZWFuIFN1bW1lciBUaW1lICovDQoJeyJ3LmUucy50LiIsIERB
WVpPTkUsIC0yIEhSU30sDQoNCgl7ImpzdCIsIFpPTkUsIC05IEhSU30sCQkv
KiBKYXBhbiBTdGFuZGFyZCBUaW1lICovDQoJeyJqLnMudC4iLCBaT05FLCAt
OSBIUlN9LAkvKiBKYXBhbiBTdGFuZGFyZCBUaW1lICovDQoJCQkJCS8qIE5v
IGRheWxpZ2h0IHNhdmluZ3MgdGltZSAqLw0KDQoJeyJhZXN0IiwgWk9ORSwg
LTEwIEhSU30sCS8qIEF1c3RyYWxpYW4gRWFzdGVybiBUaW1lICovDQoJeyJh
LmUucy50LiIsIFpPTkUsIC0xMCBIUlN9LA0KCXsiYWVzc3QiLCBEQVlaT05F
LCAtMTAgSFJTfSwJLyogQXVzdHJhbGlhbiBFYXN0ZXJuIFN1bW1lciBUaW1l
ICovDQoJeyJhLmUucy5zLnQuIiwgREFZWk9ORSwgLTEwIEhSU30sDQoJeyJh
Y3N0IiwgWk9ORSwgLSg5IEhSUyArIEhBTEZIUil9LAkvKiBBdXN0cmFsaWFu
IENlbnRyYWwgVGltZSAqLw0KCXsiYS5jLnMudC4iLCBaT05FLCAtKDkgSFJT
ICsgSEFMRkhSKX0sDQoJeyJhY3NzdCIsIERBWVpPTkUsIC0oOSBIUlMgKyBI
QUxGSFIpfSwJLyogQXVzdHJhbGlhbiBDZW50cmFsIFN1bW1lciAqLw0KCXsi
YS5jLnMucy50LiIsIERBWVpPTkUsIC0oOSBIUlMgKyBIQUxGSFIpfSwNCgl7
ImF3c3QiLCBaT05FLCAtOCBIUlN9LAkJLyogQXVzdHJhbGlhbiBXZXN0ZXJu
IFRpbWUgKi8NCgl7ImEudy5zLnQuIiwgWk9ORSwgLTggSFJTfSwJLyogKG5v
IGRheWxpZ2h0IHRpbWUgdGhlcmUsIEknbSB0b2xkICovDQoJezAsIDAsIDB9
fTsNCg0Kc3RhdGljIHN0cnVjdCB0YWJsZSB1bml0dGJbXSA9IHsNCgl7Inll
YXIiLCBNVU5JVCwgMTJ9LA0KCXsibW9udGgiLCBNVU5JVCwgMX0sDQoJeyJm
b3J0bmlnaHQiLCBVTklULCAxNCoyNCo2MH0sDQoJeyJ3ZWVrIiwgVU5JVCwg
NyoyNCo2MH0sDQoJeyJkYXkiLCBVTklULCAxKjI0KjYwfSwNCgl7ImhvdXIi
LCBVTklULCA2MH0sDQoJeyJtaW51dGUiLCBVTklULCAxfSwNCgl7Im1pbiIs
IFVOSVQsIDF9LA0KCXsic2Vjb25kIiwgU1VOSVQsIDF9LA0KCXsic2VjIiwg
U1VOSVQsIDF9LA0KCXswLCAwLCAwfX07DQoNCnN0YXRpYyBzdHJ1Y3QgdGFi
bGUgb3RoZXJ0YltdID0gew0KCXsidG9tb3Jyb3ciLCBVTklULCAxKjI0KjYw
fSwNCgl7Inllc3RlcmRheSIsIFVOSVQsIC0xKjI0KjYwfSwNCgl7InRvZGF5
IiwgVU5JVCwgMH0sDQoJeyJub3ciLCBVTklULCAwfSwNCgl7Imxhc3QiLCBO
VU1CRVIsIC0xfSwNCgl7InRoaXMiLCBVTklULCAwfSwNCgl7Im5leHQiLCBO
VU1CRVIsIDJ9LA0KCXsiZmlyc3QiLCBOVU1CRVIsIDF9LA0KCS8qIHsic2Vj
b25kIiwgTlVNQkVSLCAyfSwgKi8NCgl7InRoaXJkIiwgTlVNQkVSLCAzfSwN
Cgl7ImZvdXJ0aCIsIE5VTUJFUiwgNH0sDQoJeyJmaWZ0aCIsIE5VTUJFUiwg
NX0sDQoJeyJzaXh0aCIsIE5VTUJFUiwgNn0sDQoJeyJzZXZlbnRoIiwgTlVN
QkVSLCA3fSwNCgl7ImVpZ3RoIiwgTlVNQkVSLCA4fSwNCgl7Im5pbnRoIiwg
TlVNQkVSLCA5fSwNCgl7InRlbnRoIiwgTlVNQkVSLCAxMH0sDQoJeyJlbGV2
ZW50aCIsIE5VTUJFUiwgMTF9LA0KCXsidHdlbGZ0aCIsIE5VTUJFUiwgMTJ9
LA0KCXsiYWdvIiwgQUdPLCAxfSwNCgl7MCwgMCwgMH19Ow0KDQpzdGF0aWMg
c3RydWN0IHRhYmxlIG1pbHpvbmVbXSA9IHsNCgl7ImEiLCBaT05FLCAxIEhS
U30sDQoJeyJiIiwgWk9ORSwgMiBIUlN9LA0KCXsiYyIsIFpPTkUsIDMgSFJT
fSwNCgl7ImQiLCBaT05FLCA0IEhSU30sDQoJeyJlIiwgWk9ORSwgNSBIUlN9
LA0KCXsiZiIsIFpPTkUsIDYgSFJTfSwNCgl7ImciLCBaT05FLCA3IEhSU30s
DQoJeyJoIiwgWk9ORSwgOCBIUlN9LA0KCXsiaSIsIFpPTkUsIDkgSFJTfSwN
Cgl7ImsiLCBaT05FLCAxMCBIUlN9LA0KCXsibCIsIFpPTkUsIDExIEhSU30s
DQoJeyJtIiwgWk9ORSwgMTIgSFJTfSwNCgl7Im4iLCBaT05FLCAtMSBIUlN9
LA0KCXsibyIsIFpPTkUsIC0yIEhSU30sDQoJeyJwIiwgWk9ORSwgLTMgSFJT
fSwNCgl7InEiLCBaT05FLCAtNCBIUlN9LA0KCXsiciIsIFpPTkUsIC01IEhS
U30sDQoJeyJzIiwgWk9ORSwgLTYgSFJTfSwNCgl7InQiLCBaT05FLCAtNyBI
UlN9LA0KCXsidSIsIFpPTkUsIC04IEhSU30sDQoJeyJ2IiwgWk9ORSwgLTkg
SFJTfSwNCgl7InciLCBaT05FLCAtMTAgSFJTfSwNCgl7IngiLCBaT05FLCAt
MTEgSFJTfSwNCgl7InkiLCBaT05FLCAtMTIgSFJTfSwNCgl7InoiLCBaT05F
LCAwIEhSU30sDQoJezAsIDAsIDB9fTsNCg0Kc3RhdGljIGludA0KbG9va3Vw
KGlkKQ0KY2hhciAqaWQ7DQp7DQojZGVmaW5lIGdvdGl0ICh5eWx2YWw9aS0+
dmFsdWUsICBpLT50eXBlKQ0KI2RlZmluZSBnZXRpZCBmb3Ioaj1pZHZhciwg
az1pZDsgKmorKyA9ICprKys7ICkNCg0KCWNoYXIgaWR2YXJbMjBdOw0KCXJl
Z2lzdGVyIGNoYXIgKmosICprOw0KCXJlZ2lzdGVyIHN0cnVjdCB0YWJsZSAq
aTsNCglpbnQgYWJicmV2Ow0KDQoJZ2V0aWQ7DQoJaWYgKHN0cmxlbihpZHZh
cikgPT0gMykgYWJicmV2ID0gMTsNCgllbHNlIGlmIChzdHJsZW4oaWR2YXIp
ID09IDQgJiYgaWR2YXJbM10gPT0gJy4nKSB7DQoJCWFiYnJldiA9IDE7DQoJ
CWlkdmFyWzNdID0gJ1wwJzsNCgl9DQoJZWxzZSBhYmJyZXYgPSAwOw0KDQoJ
aWYgKGlzbG93ZXIoKmlkdmFyKSkgKmlkdmFyID0gdG91cHBlcigqaWR2YXIp
Ow0KDQoJZm9yIChpID0gbWR0YWI7IGktPm5hbWU7IGkrKykgew0KCQlrID0g
aWR2YXI7DQoJCWZvciAoaiA9IGktPm5hbWU7ICpqKysgPT0gKmsrKzspIHsN
CgkJCWlmIChhYmJyZXYgJiYgaj09aS0+bmFtZSszKSByZXR1cm4gZ290aXQ7
DQoJCQlpZiAoalstMV0gPT0gMCkgcmV0dXJuIGdvdGl0Ow0KCQl9DQoJfQ0K
DQoJZ2V0aWQ7DQoJZm9yIChpID0gbXp0YWI7IGktPm5hbWU7IGkrKykNCgkJ
aWYgKHN0cmNtcChpLT5uYW1lLCBpZHZhcikgPT0gMCkgcmV0dXJuIGdvdGl0
Ow0KDQoJZm9yIChqID0gaWR2YXI7ICpqOyBqKyspDQoJCWlmIChpc3VwcGVy
KCpqKSkgKmogPSB0b2xvd2VyKCpqKTsNCglmb3IgKGk9bXp0YWI7IGktPm5h
bWU7IGkrKykNCgkJaWYgKHN0cmNtcChpLT5uYW1lLCBpZHZhcikgPT0gMCkg
cmV0dXJuIGdvdGl0Ow0KDQoJZ2V0aWQ7DQoJZm9yIChpPXVuaXR0YjsgaS0+
bmFtZTsgaSsrKQ0KCQlpZiAoc3RyY21wKGktPm5hbWUsIGlkdmFyKSA9PSAw
KSByZXR1cm4gZ290aXQ7DQoNCglpZiAoaWR2YXJbc3RybGVuKGlkdmFyKS0x
XSA9PSAncycpDQoJCWlkdmFyW3N0cmxlbihpZHZhciktMV0gPSAnXDAnOw0K
CWZvciAoaT11bml0dGI7IGktPm5hbWU7IGkrKykNCgkJaWYgKHN0cmNtcChp
LT5uYW1lLCBpZHZhcikgPT0gMCkgcmV0dXJuIGdvdGl0Ow0KDQoJZ2V0aWQ7
DQoJZm9yIChpID0gb3RoZXJ0YjsgaS0+bmFtZTsgaSsrKQ0KCQlpZiAoc3Ry
Y21wKGktPm5hbWUsIGlkdmFyKSA9PSAwKSByZXR1cm4gZ290aXQ7DQoNCgln
ZXRpZDsNCglpZiAoc3RybGVuKGlkdmFyKSA9PSAxICYmIGlzYWxwaGEoKmlk
dmFyKSkgew0KCQlpZiAoaXN1cHBlcigqaWR2YXIpKSAqaWR2YXIgPSB0b2xv
d2VyKCppZHZhcik7DQoJCWZvciAoaSA9IG1pbHpvbmU7IGktPm5hbWU7IGkr
KykNCgkJCWlmIChzdHJjbXAoaS0+bmFtZSwgaWR2YXIpID09IDApIHJldHVy
biBnb3RpdDsNCgl9DQoNCglyZXR1cm4oSUQpOw0KfQ0KDQp0aW1lX3QNCkNT
X2dldGRhdGUocCkNCmNoYXIgKnA7DQp7DQojZGVmaW5lIG1jaGVjayhmKQlp
ZiAoZj4xKSBlcnIrKw0KCXRpbWVfdCBtb250aGFkZCgpOw0KCWludCBlcnI7
DQoJc3RydWN0IHRtICpsdDsNCgl0aW1lX3QgdGltOw0KDQoJdGltZV90IHNk
YXRlLCB0b2Q7DQoNCglscHRyID0gcDsNCgl0aW1lKCZ0aW0pOw0KCWx0ID0g
bG9jYWx0aW1lKCZ0aW0pOw0KCXllYXIgPSBsdC0+dG1feWVhcjsNCgltb250
aCA9IGx0LT50bV9tb24rMTsNCglkYXkgPSBsdC0+dG1fbWRheTsNCglyZWxz
ZWMgPSAwOyByZWxtb250aCA9IDA7DQoJdGltZWZsYWc9em9uZWZsYWc9ZGF0
ZWZsYWc9ZGF5ZmxhZz1yZWxmbGFnPTA7DQoJLyogbWljaGFlbEBjc3VpdGUu
bnMuY2E6IGZ0aW1lKCkgaXNuJ3QgcmVxdWlyZWQgdG8gc2V0IHRpbWV6b25l
DQoJICogYW5kIGl0IGRvZXNuJ3Qgc2V0IGl0IHRvIHdoYXQgZ2V0ZGF0ZSdz
IGV4cGVjdGluZy4NCgkgKi8NCgkvKiBvdXJ6b25lID0gbm93LT50aW1lem9u
ZTsgKi8NCglvdXJ6b25lID0gdGltZXpvbmUgLyA2MDsNCglkYXlsaWdodCA9
IE1BWUJFOw0KCWhoID0gbW0gPSBzcyA9IDA7DQoJbWVyaWQgPSAyNDsNCg0K
CWlmIChlcnIgPSB5eXBhcnNlKCkpIHJldHVybiAoLTEpOw0KDQoJbWNoZWNr
KHRpbWVmbGFnKTsNCgltY2hlY2soem9uZWZsYWcpOw0KCW1jaGVjayhkYXRl
ZmxhZyk7DQoJbWNoZWNrKGRheWZsYWcpOw0KDQoJaWYgKGVycikgcmV0dXJu
ICgtMSk7DQoJaWYgKGRhdGVmbGFnIHx8IHRpbWVmbGFnIHx8IGRheWZsYWcp
IHsNCgkJc2RhdGUgPSBkYXRlY29udihtb250aCxkYXkseWVhcixoaCxtbSxz
cyxtZXJpZCxvdXJ6b25lLGRheWxpZ2h0KTsNCgkJaWYgKHNkYXRlIDwgMCkg
cmV0dXJuIC0xOw0KCX0NCgllbHNlIHsNCgkJc2RhdGUgPSB0aW07DQoJCWlm
IChyZWxmbGFnID09IDApDQoJCQlzZGF0ZSAtPSAobHQtPnRtX3NlYyArIGx0
LT50bV9taW4qNjAgKw0KCQkJCWx0LT50bV9ob3VyKig2MEwqNjBMKSk7DQoJ
fQ0KDQoJc2RhdGUgKz0gcmVsc2VjOw0KCXNkYXRlICs9IG1vbnRoYWRkKHNk
YXRlLCByZWxtb250aCk7DQoNCglpZiAoZGF5ZmxhZyAmJiAhZGF0ZWZsYWcp
IHsNCgkJdG9kID0gZGF5Y29udihkYXlvcmQsIGRheXJlcSwgc2RhdGUpOw0K
CQlzZGF0ZSArPSB0b2Q7DQoJfQ0KDQoJcmV0dXJuIHNkYXRlOw0KfQ0KDQp5
eWVycm9yKHMpIGNoYXIgKnM7DQp7fQ0K
---1978089469-1709501013-942019453=:3435
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="getdate.c.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911072004132.3435@pentagram.nslug.ns.ca>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="getdate.c.diff"

SW5kZXg6IGdldGRhdGUuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
IGZpbGU6IC9ob21lL2N2c3Jvb3QvY3N1aXRlL2xpYi9nZXRkYXRlL2dldGRh
dGUuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMg0KcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjMNCmRpZmYgLXUgLXIxLjIgLXIxLjMNCi0tLSBnZXRkYXRl
LmMJMTk5Ni8xMi8wNCAxODo1MDo0NAkxLjINCisrKyBnZXRkYXRlLmMJMTk5
OS8wOC8xOCAwMToyNTo1MgkxLjMNCkBAIC0xLDUgKzEsNSBAQA0KIC8qDQot
ICogJElkOiBnZXRkYXRlLmMsdiAxLjIgMTk5Ni8xMi8wNCAxODo1MDo0NCBs
YW5kb24gRXhwICQNCisgKiAkSWQ6IGdldGRhdGUuYyx2IDEuMyAxOTk5LzA4
LzE4IDAxOjI1OjUyIG1pY2hhZWwgRXhwICQNCiAgKiBDb3B5cmlnaHQgKEMp
IDE5OTUsIDE5OTYgQ2hlYnVjdG8gQ29tbXVuaXR5IE5ldCBTb2NpZXR5DQog
ICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgQ2hlYnVjdG8gU3VpdGUuICBVc2Ug
aXMgZ292ZXJuZWQgYnkgdGhlIHRlcm1zDQogICogbGFpZCBvdXQgaW4gdGhl
IGZpbGUgQ09QWVJJR0hULg0KQEAgLTcsNyArNyw2IEBADQogDQogI2luY2x1
ZGUgPHN0ZGlvLmg+DQogI2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KLSNpbmNs
dWRlIDxzeXMvdGltZWIuaD4NCiANCiBtYWluKGFyZ2MsIGFyZ3YpDQogaW50
IGFyZ2M7DQpAQCAtMjQsNyArMjMsNyBAQA0KIAl9DQogCWlmIChzdHJjbXAo
YXJndlsxXSwgIi0iKSA9PSAwKSB7DQogCQl3aGlsZSAoZmdldHMoYnVmLCBz
aXplb2YoYnVmKSwgc3RkaW4pICE9IE5VTEwpDQotCQkJcHJpbnRmKCIlbGRc
biIsIENTX2dldGRhdGUoYnVmLCAoc3RydWN0IHRpbWViICopTlVMTCkpOw0K
KwkJCXByaW50ZigiJWxkXG4iLCBDU19nZXRkYXRlKGJ1ZikpOw0KIAkJZXhp
dCgwKTsNCiAJfQ0KIAlidWZbMF0gPSAnXDAnOw0KQEAgLTMyLDcgKzMxLDcg
QEANCiAJCXN0cmNhdChidWYsIGFyZ3ZbaV0pOw0KIAkJc3RyY2F0KGJ1Ziwg
IiAiKTsNCiAJfQ0KLQlzZWNzID0gQ1NfZ2V0ZGF0ZShidWYsIChzdHJ1Y3Qg
dGltZWIgKilOVUxMKTsNCisJc2VjcyA9IENTX2dldGRhdGUoYnVmKTsNCiAJ
aWYgKHNlY3MgPT0gLTEpDQogCQlleGl0KDEpOw0KIAllbHNlDQo=
---1978089469-1709501013-942019453=:3435
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="parser.y.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9911072004133.3435@pentagram.nslug.ns.ca>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="parser.y.diff"

SW5kZXg6IHBhcnNlci55DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
ZmlsZTogL2hvbWUvY3Zzcm9vdC9jc3VpdGUvbGliL2dldGRhdGUvcGFyc2Vy
Lnksdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjENCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4zDQpkaWZmIC11IC1yMS4xIC1yMS4zDQotLS0gcGFyc2VyLnkJ
MTk5Ni8xMC8xMCAxOTowNjozOAkxLjENCisrKyBwYXJzZXIueQkxOTk5LzA4
LzE4IDAxOjI1OjUyCTEuMw0KQEAgLTksOCArOSw2IEBADQogI2luY2x1ZGUg
PHN5cy90eXBlcy5oPg0KICNpbmNsdWRlIDxjdHlwZS5oPg0KICNpbmNsdWRl
IDx0aW1lLmg+DQotI2RlZmluZQl0aW1lem9uZQl0bXpuCS8qIHVnbHkgaGFj
ayBmb3Igb2JzY3VyZSBuYW1lIGNsYXNoICovDQotI2luY2x1ZGUgPHN5cy90
aW1lYi5oPg0KIA0KICNkZWZpbmUgZGF5c2VjICgyNEwqNjBMKjYwTCkNCiAN
CkBAIC0xMTksMTYgKzExNywxNyBAQA0KIHsNCiAJdGltZV90IHRvZCwgamRh
dGU7DQogCXJlZ2lzdGVyIGludCBpOw0KLQl0aW1lX3QgdGltZWNvbnYoKTsN
CisJc3RhdGljIHRpbWVfdCB0aW1lY29udigpOw0KIA0KIAlpZiAoeXkgPCAw
KSB5eSA9IC15eTsNCi0JaWYgKHl5IDwgMTAwKSB5eSArPSAxOTAwOw0KKwlp
ZiAoeXkgPCAxOTAwKSB5eSArPSAxOTAwOw0KIAltZGF5c1sxXSA9IDI4ICsg
KHl5JTQgPT0gMCAmJiAoeXklMTAwICE9IDAgfHwgeXklNDAwID09IDApKTsN
Ci0JaWYgKHl5IDwgZXBvY2ggfHwgeXkgPiAxOTk5IHx8IG1tIDwgMSB8fCBt
bSA+IDEyIHx8DQorCWlmICh5eSA8IGVwb2NoIHx8IHl5ID4gMjAzOCB8fCBt
bSA8IDEgfHwgbW0gPiAxMiB8fA0KIAkJZGQgPCAxIHx8IGRkID4gbWRheXNb
LS1tbV0pIHJldHVybiAoLTEpOw0KIAlqZGF0ZSA9IGRkLTE7DQogICAgICAg
ICBmb3IgKGk9MDsgaTxtbTsgaSsrKSBqZGF0ZSArPSBtZGF5c1tpXTsNCi0J
Zm9yIChpID0gZXBvY2g7IGkgPCB5eTsgaSsrKSBqZGF0ZSArPSAzNjUgKyAo
aSU0ID09IDApOw0KKwlmb3IgKGkgPSBlcG9jaDsgaSA8IHl5OyBpKyspIGpk
YXRlICs9IDM2NQ0KKwkJCQkgICArIChpJTQgPT0gMCAmJiAoeXklMTAwICE9
IDAgfHwgeXklNDAwID09IDApKTsNCiAJamRhdGUgKj0gZGF5c2VjOw0KIAlq
ZGF0ZSArPSB6b25lICogNjBMOw0KIAlpZiAoKHRvZCA9IHRpbWVjb252KGgs
IG0sIHMsIG1lcikpIDwgMCkgcmV0dXJuICgtMSk7DQpAQCAtMTQ0LDcgKzE0
Myw3IEBADQogew0KIAlyZWdpc3RlciBzdHJ1Y3QgdG0gKmxvY3RpbWU7DQog
CXRpbWVfdCB0b2Q7DQotCXRpbWVfdCBkYXlsY29ycigpOw0KKwlzdGF0aWMg
dGltZV90IGRheWxjb3JyKCk7DQogDQogCXRvZCA9IG5vdzsNCiAJbG9jdGlt
ZSA9IGxvY2FsdGltZSgmdG9kKTsNCkBAIC0xNzUsNyArMTc0LDcgQEANCiB7
DQogCXN0cnVjdCB0bSAqbHRpbWU7DQogCXRpbWVfdCBkYXRlY29udigpOw0K
LQl0aW1lX3QgZGF5bGNvcnIoKTsNCisJc3RhdGljIHRpbWVfdCBkYXlsY29y
cigpOw0KIAlpbnQgbW0sIHl5Ow0KIA0KIAlpZiAocmVsbW9udGggPT0gMCkg
cmV0dXJuIDA7DQpAQCAtMjAyLDYgKzIwMSw3IEBADQogDQogeXlsZXgoKQ0K
IHsNCisJc3RhdGljIGludCBsb29rdXAoKTsNCiAJZXh0ZXJuIGludCB5eWx2
YWw7DQogCWludCBzaWduOw0KIAlyZWdpc3RlciBjaGFyIGM7DQpAQCAtNDIx
LDcgKzQyMSw3IEBADQogCXsieiIsIFpPTkUsIDAgSFJTfSwNCiAJezAsIDAs
IDB9fTsNCiANCi1zdGF0aWMNCitzdGF0aWMgaW50DQogbG9va3VwKGlkKQ0K
IGNoYXIgKmlkOw0KIHsNCkBAIC00ODQsMzAgKzQ4NCwzMCBAQA0KIH0NCiAN
CiB0aW1lX3QNCi1DU19nZXRkYXRlKHAsIG5vdykNCitDU19nZXRkYXRlKHAp
DQogY2hhciAqcDsNCi1zdHJ1Y3QgdGltZWIgKm5vdzsNCiB7DQogI2RlZmlu
ZSBtY2hlY2soZikJaWYgKGY+MSkgZXJyKysNCiAJdGltZV90IG1vbnRoYWRk
KCk7DQogCWludCBlcnI7DQogCXN0cnVjdCB0bSAqbHQ7DQotCXN0cnVjdCB0
aW1lYiBmdHo7DQorCXRpbWVfdCB0aW07DQogDQogCXRpbWVfdCBzZGF0ZSwg
dG9kOw0KIA0KIAlscHRyID0gcDsNCi0JaWYgKG5vdyA9PSAoKHN0cnVjdCB0
aW1lYiAqKSBOVUxMKSkgew0KLQkJbm93ID0gJmZ0ejsNCi0JCWZ0aW1lKCZm
dHopOw0KLQl9DQotCWx0ID0gbG9jYWx0aW1lKCZub3ctPnRpbWUpOw0KKwl0
aW1lKCZ0aW0pOw0KKwlsdCA9IGxvY2FsdGltZSgmdGltKTsNCiAJeWVhciA9
IGx0LT50bV95ZWFyOw0KIAltb250aCA9IGx0LT50bV9tb24rMTsNCiAJZGF5
ID0gbHQtPnRtX21kYXk7DQogCXJlbHNlYyA9IDA7IHJlbG1vbnRoID0gMDsN
CiAJdGltZWZsYWc9em9uZWZsYWc9ZGF0ZWZsYWc9ZGF5ZmxhZz1yZWxmbGFn
PTA7DQotCW91cnpvbmUgPSBub3ctPnRpbWV6b25lOw0KKwkvKiBtaWNoYWVs
QGNzdWl0ZS5ucy5jYTogZnRpbWUoKSBpc24ndCByZXF1aXJlZCB0byBzZXQg
dGltZXpvbmUNCisJICogYW5kIGl0IGRvZXNuJ3Qgc2V0IGl0IHRvIHdoYXQg
Z2V0ZGF0ZSdzIGV4cGVjdGluZy4NCisJICovDQorCS8qIG91cnpvbmUgPSBu
b3ctPnRpbWV6b25lOyAqLw0KKwlvdXJ6b25lID0gdGltZXpvbmUgLyA2MDsN
CiAJZGF5bGlnaHQgPSBNQVlCRTsNCiAJaGggPSBtbSA9IHNzID0gMDsNCiAJ
bWVyaWQgPSAyNDsNCkBAIC01MjUsNyArNTI1LDcgQEANCiAJCWlmIChzZGF0
ZSA8IDApIHJldHVybiAtMTsNCiAJfQ0KIAllbHNlIHsNCi0JCXNkYXRlID0g
bm93LT50aW1lOw0KKwkJc2RhdGUgPSB0aW07DQogCQlpZiAocmVsZmxhZyA9
PSAwKQ0KIAkJCXNkYXRlIC09IChsdC0+dG1fc2VjICsgbHQtPnRtX21pbio2
MCArDQogCQkJCWx0LT50bV9ob3VyKig2MEwqNjBMKSk7DQo=
---1978089469-1709501013-942019453=:3435--

next message in archive
no next message in thread
previous message in archive
Index of Subjects