delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/09/24/21:30:08

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Subject: mounting stuff (was: RE: cygdrive stuff)
MIME-Version: 1.0
Date: Tue, 25 Sep 2001 11:38:36 +1000
content-class: urn:content-classes:message
X-MimeOLE: Produced By Microsoft Exchange V6.0.4417.0
Message-ID: <EA18B9FA0FE4194AA2B4CDB91F73C0EF7A36@itdomain002.itdomain.net.au>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [PATCH] ls & "magic" cygdrive dir (was: RE: cygdrive stuff)
Thread-Index: AcFFQPwjJPd1bMLBSPKqBWcIqA09FAAHfztA
From: "Robert Collins" <robert DOT collins AT itdomain DOT com DOT au>
To: "Corinna Vinschen" <cygwin AT cygwin DOT com>

------_=_NextPart_001_01C14562.CB8DEA60
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Here tis'.

I stripped out the UMSDOS fhandler, as it is orthogonal to the
architecture change. Where a test for the fhandler added clarity, I have
replaced UMSDOS with DEVFS - to reflect our hypotherical fhandler that
gets mounted at /dev.=20

The upshot of that is, that for this to compile, you will need to edit
fhandler.h and add the appropriate stubs to give DEVFS a device number.=20

Finally, I took this snap shot before a number of changes occured to
cygwin. You will most likely want to do something of the following
nature to get this into your sandbox:

checkout winsup.
read the patch and grab the CVS version number of each modified file...
for each one do the following
cvs up -r _version_number_ path/to/file.
then after all that
patch -p0 < localworkingstate.patch.

and then=20
cvs up -Pd -A
to get the subsequent cvs changes merged into your repository.

I apologise for the state of the code, it's somewhat shakey - but
functional - it was allowing me to mount my umsdos fhandler at arbitrary
points in the file system via the mount table. opendir() and readdir()
are not touched as yet - but this should allow them to tie in very
nicely _in a data driven fashion_ (that is rather than a set of special
cases - /dev, /registry - it's just a mount table lookup).

Rob

------_=_NextPart_001_01C14562.CB8DEA60
Content-Type: application/octet-stream;
	name="localworkingstuff.patch"
Content-Transfer-Encoding: base64
Content-Description: localworkingstuff.patch
Content-Disposition: attachment;
	filename="localworkingstuff.patch"

SW5kZXg6IGN5Z3dpbi9wYXRoLmNjDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3Jj
L3dpbnN1cC9jeWd3aW4vcGF0aC5jYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTYyDQpkaWZm
IC11IC1wIC1yMS4xNjIgcGF0aC5jYw0KLS0tIHBhdGguY2MJMjAwMS8wOS8wNyAyMTozMjowNAkx
LjE2Mg0KKysrIHBhdGguY2MJMjAwMS8wOS8wOSAwNDo1ODozNw0KQEAgLTc5NSw2ICs3OTUsMTA2
IEBAIGdldF9yYXdfZGV2aWNlX251bWJlciAoY29uc3QgY2hhciAqdXhuYW0NCiAgIHJldHVybiBk
ZXZuOw0KIH0NCiANCitEV09SRA0KK21vdW50X2luZm86OmdldF9tb3VudF9kZXZpY2VfbnVtYmVy
IChjb25zdCBjaGFyICp1eG5hbWUpDQorew0KKyAgRFdPUkQgZGV2biA9IEZIX0JBRDsNCisgIG1v
dW50X2l0ZW0gKm1pID0gTlVMTDsgICAgICAgIC8qIGluaXRpYWxpemVkIHRvIGF2b2lkIGNvbXBp
bGVyIHdhcm5pbmcgKi8NCisgIGNoYXIgcGF0aGJ1ZltNQVhfUEFUSF07DQorDQorICAvKiB3ZSBu
b3JtYWxpc2UgdGhlIHBhdGggYmVjYXVzZSAuLi8gbWF5IHRha2UgdXMgb3V0IG9mIGEgbW91bnQg
ZW50cnkgKi8NCisgIGlmIChub3JtYWxpemVfcG9zaXhfcGF0aCAodXhuYW1lLCBwYXRoYnVmKSkN
CisgICAgew0KKyAgICAgIGRlYnVnX3ByaW50ZiAoIkZIX0JBRCA9IGdldF9tb3VudF9kZXZpY2Vf
bnVtYmVyICglcykiLCB1eG5hbWUpOw0KKyAgICAgIHJldHVybiBGSF9CQUQ7DQorICAgIH0NCisN
CisgIGludCBpLCBjaHJvb3RlZF9wYXRoX2xlbjsNCisgIGNocm9vdGVkX3BhdGhfbGVuID0gMDsN
CisgIC8qIENoZWNrIHRoZSBtb3VudCB0YWJsZSBmb3IgcHJlZml4IG1hdGNoZXMuICovDQorICBm
b3IgKGkgPSAwOyBpIDwgbm1vdW50czsgaSsrKQ0KKyAgICB7DQorICAgICAgY29uc3QgY2hhciAq
cGF0aDsNCisgICAgICBpbnQgbGVuOw0KKyAgICAgIG1pID0gbW91bnQgKyBwb3NpeF9zb3J0ZWRb
aV07DQorICAgICAgaWYgKCFjeWdoZWFwLT5yb290LmV4aXN0cyAoKQ0KKyAgICAgICAgICB8fCAo
bWktPnBvc2l4X3BhdGhsZW4gPT0gMSAmJiBtaS0+cG9zaXhfcGF0aFswXSA9PSAnLycpKQ0KKyAg
ICAgICAgew0KKyAgICAgICAgICBwYXRoID0gbWktPnBvc2l4X3BhdGg7DQorICAgICAgICAgIGxl
biA9IG1pLT5wb3NpeF9wYXRobGVuOw0KKyAgICAgICAgfQ0KKyAgICAgIGVsc2UgaWYgKGN5Z2hl
YXAtPnJvb3QucG9zaXhfb2sgKG1pLT5wb3NpeF9wYXRoKSkNCisgICAgICAgIHsNCisgICAgICAg
ICAgcGF0aCA9IGN5Z2hlYXAtPnJvb3QudW5jaHJvb3QgKG1pLT5wb3NpeF9wYXRoKTsNCisgICAg
ICAgICAgY2hyb290ZWRfcGF0aF9sZW4gPSBsZW4gPSBzdHJsZW4gKHBhdGgpOw0KKyAgICAgICAg
fQ0KKyAgICAgIGVsc2UNCisgICAgICAgIHsNCisgICAgICAgICAgY2hyb290ZWRfcGF0aF9sZW4g
PSAwOw0KKyAgICAgICAgICBjb250aW51ZTsNCisgICAgICAgIH0NCisgICAgICBpZiAocGF0aF9w
cmVmaXhfcCAocGF0aCwgcGF0aGJ1ZiwgbGVuKSkNCisgICAgICAgIGJyZWFrOw0KKyAgICB9DQor
DQorICBpZiAoaSA+PSBubW91bnRzKQ0KKyAgICB7DQorICAgICAgLyogZG8gbm90aGluZyAqLw0K
Ky8vICAgICAgc3lzdGVtX3ByaW50ZiAoImZvdW5kIHJvb3QgbWF0Y2ggJXNcbiIsIHBhdGhidWYp
Ow0KKyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICAvKiBmb3VuZCB0aGUgZGV2aWNlIGZv
ciB0aGUgcGF0aCAqLw0KKy8vICAgICAgc3lzdGVtX3ByaW50ZiAoImZvdW5kIG1hdGNoICVzIGRl
dm4gPSAlZFxuIiwgcGF0aGJ1ZiwgbWktPmRldm4pOw0KKyAgICAgICNpZiAwDQorICAgICAgaW50
IG47DQorICAgICAgY29uc3QgY2hhciAqbmF0aXZlX3BhdGg7DQorICAgICAgaW50IHBvc2l4X3Bh
dGhsZW47DQorICAgICAgaWYgKGNocm9vdF9vayB8fCBjaHJvb3RlZF9wYXRoX2xlbiB8fCBtaS0+
cG9zaXhfcGF0aGxlbiAhPSAxDQorICAgICAgICAgIHx8IG1pLT5wb3NpeF9wYXRoWzBdICE9ICcv
JykNCisgICAgICAgIHsNCisgICAgICAgICAgbiA9IG1pLT5uYXRpdmVfcGF0aGxlbjsNCisgICAg
ICAgICAgbmF0aXZlX3BhdGggPSBtaS0+bmF0aXZlX3BhdGg7DQorICAgICAgICAgIHBvc2l4X3Bh
dGhsZW4gPSBjaHJvb3RlZF9wYXRoX2xlbiA/OiBtaS0+cG9zaXhfcGF0aGxlbjsNCisgICAgICAg
ICAgY2hyb290X29rID0gMTsNCisgICAgICAgIH0NCisgICAgICBlbHNlDQorICAgICAgICB7DQor
ICAgICAgICAgIG4gPSBjeWdoZWFwLT5yb290Lm5hdGl2ZV9sZW5ndGggKCk7DQorICAgICAgICAg
IG5hdGl2ZV9wYXRoID0gY3lnaGVhcC0+cm9vdC5uYXRpdmVfcGF0aCAoKTsNCisgICAgICAgICAg
cG9zaXhfcGF0aGxlbiA9IG1pLT5wb3NpeF9wYXRobGVuOw0KKyAgICAgICAgICBjaHJvb3Rfb2sg
PSAxOw0KKyAgICAgICAgfQ0KKyAgICAgIG1lbWNweSAoZHN0LCBuYXRpdmVfcGF0aCwgbiArIDEp
Ow0KKyAgICAgIGNvbnN0IGNoYXIgKnAgPSBwYXRoYnVmICsgcG9zaXhfcGF0aGxlbjsNCisgICAg
ICBpZiAoKnAgPT0gJy8nKQ0KKyAgICAgICAgLyogbm90aGluZyAqLzsNCisgICAgICBlbHNlIGlm
ICgoaXNkcml2ZSAoZHN0KSAmJiAhZHN0WzJdKSB8fCAqcCkNCisgICAgICAgIGRzdFtuKytdID0g
J1xcJzsNCisgICAgICAgIHN0cmNweSAoZHN0ICsgbiwgcCk7DQorICAgICAgICBiYWNrc2xhc2hp
ZnkgKGRzdCwgZHN0LCAwKTsNCisgICAgICAgICpmbGFncyA9IG1pLT5mbGFnczsNCisJI2VuZGlm
DQorICAgIH0NCisJCQkJCQkJCQkJCQkJCQkJCSAgICAgIA0KKw0KKyAgcmV0dXJuIGRldm47DQor
fQ0KKw0KK2NvbnN0IGNoYXIgKg0KK2dldF9kZXZpY2VfbmFtZSAoRFdPUkQgZGV2bikNCit7DQor
ICBzd2l0Y2ggKGRldm4pDQorICAgIHsNCisgICAgY2FzZSBGSF9CQUQ6DQorICAgICAgcmV0dXJu
ICJCYWQgZGV2aWNlIG51bWJlciI7DQorICAgIGNhc2UgRkhfREVWRlM6DQorICAgICAgcmV0dXJu
ICJERVZGUyI7DQorICAgIGRlZmF1bHQ6DQorICAgICAgcmV0dXJuICJVTktOT1dOIjsNCisgICAg
fQ0KK30NCisNCiBpbnQgX19zdGRjYWxsDQogZ2V0X2RldmljZV9udW1iZXIgKGNvbnN0IGNoYXIg
Km5hbWUsIGludCAmdW5pdCwgQk9PTCBmcm9tX2NvbnYpDQogew0KQEAgLTg2OSw2ICs5NjksMTAg
QEAgZ2V0X2RldmljZV9udW1iZXIgKGNvbnN0IGNoYXIgKm5hbWUsIGludA0KICAgICBkZXZuID0g
RkhfU0VSSUFMOw0KICAgZWxzZSBpZiAoZGV2ZXFuICgidHR5UyIsIDQpICYmICh1bml0ID0gZGln
aXRzIChuYW1lICsgNCkpID49IDApDQogICAgIGRldm4gPSBGSF9TRVJJQUw7DQorICBlbHNlIGlm
IChkZXZlcSAoIkRFVkZTIikpDQorICAgIGRldm4gPSBGSF9ERVZGUzsNCisgIGVsc2UNCisgICAg
ZGV2biA9IG1vdW50X3RhYmxlLT5nZXRfbW91bnRfZGV2aWNlX251bWJlciAobmFtZSk7DQogDQog
ICByZXR1cm4gZGV2bjsNCiB9DQpAQCAtMTUwNSw3ICsxNjA5LDcgQEAgbW91bnRfaW5mbzo6c2V0
X2ZsYWdzX2Zyb21fd2luMzJfcGF0aCAoYw0KIHZvaWQNCiBtb3VudF9pbmZvOjpyZWFkX21vdW50
cyAocmVnX2tleSYgcikNCiB7DQotICBjaGFyIHBvc2l4X3BhdGhbTUFYX1BBVEhdOw0KKyAgY2hh
ciBwb3NpeF9wYXRoW01BWF9QQVRIXSwgdHlwZVtNQVhfUEFUSF07DQogICBIS0VZIGtleSA9IHIu
Z2V0X2tleSAoKTsNCiAgIERXT1JEIGksIHBvc2l4X3BhdGhfc2l6ZTsNCiAgIGludCByZXM7DQpA
QCAtMTUzOSwxMCArMTY0MywxMiBAQCBtb3VudF9pbmZvOjpyZWFkX21vdW50cyAocmVnX2tleSYg
cikNCiANCiAgICAgICAvKiBGZXRjaCBpbmZvIGZyb20gdGhlIHN1YmtleS4gKi8NCiAgICAgICBz
dWJrZXkuZ2V0X3N0cmluZyAoIm5hdGl2ZSIsIG5hdGl2ZV9wYXRoLCBzaXplb2YgKG5hdGl2ZV9w
YXRoKSwgIiIpOw0KKyAgICAgIHN1YmtleS5nZXRfc3RyaW5nICgidHlwZSIsIHR5cGUsIHNpemVv
ZiAodHlwZSksICIiKTsNCiAgICAgICBtb3VudF9mbGFncyA9IHN1YmtleS5nZXRfaW50ICgiZmxh
Z3MiLCAwKTsNCiANCiAgICAgICAvKiBBZGQgbW91bnRfaXRlbSBjb3JyZXNwb25kaW5nIHRvIHJl
Z2lzdHJ5IG1vdW50IHBvaW50LiAqLw0KLSAgICAgIHJlcyA9IG1vdW50X3RhYmxlLT5hZGRfaXRl
bSAobmF0aXZlX3BhdGgsIHBvc2l4X3BhdGgsIG1vdW50X2ZsYWdzLCBGQUxTRSk7DQorICAgICAg
cmVzID0gbW91bnRfdGFibGUtPmFkZF9pdGVtIChuYXRpdmVfcGF0aCwgcG9zaXhfcGF0aCwgdHlw
ZSwgbW91bnRfZmxhZ3MsDQorICAgICAgCUZBTFNFKTsNCiAgICAgICBpZiAocmVzICYmIGdldF9l
cnJubyAoKSA9PSBFTUZJTEUpDQogCWJyZWFrOyAvKiBUaGUgbnVtYmVyIG9mIGVudHJpZXMgZXhj
ZWVkcyBNQVhfTU9VTlRTICovDQogICAgIH0NCkBAIC0xNTg0LDkgKzE2OTAsOSBAQCBtb3VudF9p
bmZvOjpmcm9tX3JlZ2lzdHJ5ICgpDQogLyogYWRkX3JlZ19tb3VudDogQWRkIG1vdW50IGl0ZW0g
dG8gcmVnaXN0cnkuICBSZXR1cm4gemVybyBvbiBzdWNjZXNzLA0KICAgIG5vbi16ZXJvIG9uIGZh
aWx1cmUuICovDQogLyogRklYTUU6IE5lZWQgYSBtdXRleCB0byBhdm9pZCBjb2xsaXNpb25zIHdp
dGggb3RoZXIgdGFza3MuICovDQotDQorLyogV2UgZG9uJ3QgY2hlY2sgdGhlIHR5cGUgcGFyYW1l
dGVyLCB0byBhbGxvdyBhZGRpbmcgbW91bnRzIGZvciB0aGUgbmV4dCAiYm9vdCIgKi8NCiBpbnQN
Ci1tb3VudF9pbmZvOjphZGRfcmVnX21vdW50IChjb25zdCBjaGFyICogbmF0aXZlX3BhdGgsIGNv
bnN0IGNoYXIgKiBwb3NpeF9wYXRoLCB1bnNpZ25lZCBtb3VudGZsYWdzKQ0KK21vdW50X2luZm86
OmFkZF9yZWdfbW91bnQgKGNvbnN0IGNoYXIgKiBuYXRpdmVfcGF0aCwgY29uc3QgY2hhciAqIHBv
c2l4X3BhdGgsIGNvbnN0IGNoYXIgKnR5cGUsIHVuc2lnbmVkIG1vdW50ZmxhZ3MpDQogew0KICAg
aW50IHJlcyA9IDA7DQogDQpAQCAtMTYwOSw2ICsxNzE1LDEwIEBAIG1vdW50X2luZm86OmFkZF9y
ZWdfbW91bnQgKGNvbnN0IGNoYXIgKiANCiAgICAgICByZXMgPSBzdWJrZXkuc2V0X3N0cmluZyAo
Im5hdGl2ZSIsIG5hdGl2ZV9wYXRoKTsNCiAgICAgICBpZiAocmVzICE9IEVSUk9SX1NVQ0NFU1Mp
DQogCWdvdG8gZXJyOw0KKyAgICAgIHN5c3RlbV9wcmludGYoInR5cGUgaXMgJXNcbiIsdHlwZSk7
DQorICAgICAgcmVzID0gc3Via2V5LnNldF9zdHJpbmcgKCJ0eXBlIiwgdHlwZSk7DQorICAgICAg
aWYgKHJlcyAhPSBFUlJPUl9TVUNDRVNTKQ0KKwlnb3RvIGVycjsNCiAgICAgICByZXMgPSBzdWJr
ZXkuc2V0X2ludCAoImZsYWdzIiwgbW91bnRmbGFncyk7DQogICAgIH0NCiAgIGVsc2UgLyogbG9j
YWxfbWFjaGluZSBtb3VudCAqLw0KQEAgLTE2MzIsNiArMTc0MiwxMSBAQCBtb3VudF9pbmZvOjph
ZGRfcmVnX21vdW50IChjb25zdCBjaGFyICogDQogICAgICAgcmVzID0gc3Via2V5LnNldF9zdHJp
bmcgKCJuYXRpdmUiLCBuYXRpdmVfcGF0aCk7DQogICAgICAgaWYgKHJlcyAhPSBFUlJPUl9TVUND
RVNTKQ0KIAlnb3RvIGVycjsNCisgICAgICBzeXN0ZW1fcHJpbnRmKCJ0eXBlIGlzICVzXG4iLHR5
cGUpOw0KKyAgICAgIHJlcyA9IHN1YmtleS5zZXRfc3RyaW5nICgidHlwZSIsIHR5cGUpOw0KKyAg
ICAgIGlmIChyZXMgIT0gRVJST1JfU1VDQ0VTUykNCisgICAgICAgIGdvdG8gZXJyOw0KKwkgICAg
DQogICAgICAgcmVzID0gc3Via2V5LnNldF9pbnQgKCJmbGFncyIsIG1vdW50ZmxhZ3MpOw0KIA0K
ICAgICAgIHN5c19tb3VudF90YWJsZV9jb3VudGVyKys7DQpAQCAtMTk0NywxNSArMjA2MiwxOCBA
QCBtb3VudF9pbmZvOjpzb3J0ICgpDQogICAgZG8gdGhpcyB3aGVuIGNhbGxlZCBpbnRlcm5hbGx5
LCBidXQgaXQncyBjbGVhbmVyIHRvIGtlZXAgaXQgYWxsIGhlcmUuICAqLw0KIA0KIGludA0KLW1v
dW50X2luZm86OmFkZF9pdGVtIChjb25zdCBjaGFyICpuYXRpdmUsIGNvbnN0IGNoYXIgKnBvc2l4
LCB1bnNpZ25lZCBtb3VudGZsYWdzLCBpbnQgcmVnX3ApDQorbW91bnRfaW5mbzo6YWRkX2l0ZW0g
KGNvbnN0IGNoYXIgKm5hdGl2ZSwgY29uc3QgY2hhciAqcG9zaXgsIGNvbnN0IGNoYXIgKnR5cGUs
IHVuc2lnbmVkIG1vdW50ZmxhZ3MsIGludCByZWdfcCkNCiB7DQogICAvKiBTb21ldGhpbmcncyB3
cm9uZyBpZiBlaXRoZXIgcGF0aCBpcyBOVUxMIG9yIGVtcHR5LCBvciBpZiBpdCdzDQogICAgICBu
b3QgYSBVTkMgb3IgYWJzb2x1dGUgcGF0aC4gKi8NCiANCisgIGludCB1bml0ID0gMDsNCisNCiAg
IGlmICgobmF0aXZlID09IE5VTEwpIHx8ICgqbmF0aXZlID09IDApIHx8DQogICAgICAgKHBvc2l4
ID09IE5VTEwpIHx8ICgqcG9zaXggPT0gMCkgfHwNCiAgICAgICAhaXNhYnNwYXRoIChuYXRpdmUp
IHx8ICFpc2Fic3BhdGggKHBvc2l4KSB8fA0KLSAgICAgIHNsYXNoX3VuY19wcmVmaXhfcCAocG9z
aXgpIHx8IGlzZHJpdmUgKHBvc2l4KSkNCisgICAgICBzbGFzaF91bmNfcHJlZml4X3AgKHBvc2l4
KSB8fCBpc2RyaXZlIChwb3NpeCkgfHwNCisgICAgICB0eXBlICYmIHR5cGVbMF0gJiYgKERXT1JE
KSBnZXRfZGV2aWNlX251bWJlciAodHlwZSwgdW5pdCwgRkFMU0UpID09IEZIX0JBRCkNCiAgICAg
ew0KICAgICAgIHNldF9lcnJubyAoRUlOVkFMKTsNCiAgICAgICByZXR1cm4gLTE7DQpAQCAtMTk3
MSw4ICsyMDg5LDggQEAgbW91bnRfaW5mbzo6YWRkX2l0ZW0gKGNvbnN0IGNoYXIgKm5hdGl2ZQ0K
ICAgc2xhc2hpZnkgKHBvc2l4LCBwb3NpeHRtcCwgMCk7DQogICBub2ZpbmFsc2xhc2ggKHBvc2l4
dG1wLCBwb3NpeHRtcCk7DQogDQotICBkZWJ1Z19wcmludGYgKCIlc1slc10sICVzWyVzXSwgJXAi
LA0KLQkJbmF0aXZlLCBuYXRpdmV0bXAsIHBvc2l4LCBwb3NpeHRtcCwgbW91bnRmbGFncyk7DQor
ICBkZWJ1Z19wcmludGYgKCIlc1slc10sICVzWyVzXSwgJXMsICVwIiwNCisJCW5hdGl2ZSwgbmF0
aXZldG1wLCBwb3NpeCwgcG9zaXh0bXAsIHR5cGUsIG1vdW50ZmxhZ3MpOw0KIA0KICAgLyogRHVw
bGljYXRlIC8ncyBpbiBwYXRoIGFyZSBhbiBlcnJvci4gKi8NCiAgIGZvciAoY2hhciAqcCA9IHBv
c2l4dG1wICsgMTsgKnA7ICsrcCkNCkBAIC0yMDAwLDEyICsyMTE4LDEyIEBAIG1vdW50X2luZm86
OmFkZF9pdGVtIChjb25zdCBjaGFyICpuYXRpdmUNCiAgICAgICByZXR1cm4gLTE7DQogICAgIH0N
CiANCi0gIGlmIChyZWdfcCAmJiBhZGRfcmVnX21vdW50IChuYXRpdmV0bXAsIHBvc2l4dG1wLCBt
b3VudGZsYWdzKSkNCisgIGlmIChyZWdfcCAmJiBhZGRfcmVnX21vdW50IChuYXRpdmV0bXAsIHBv
c2l4dG1wLCB0eXBlLCBtb3VudGZsYWdzKSkNCiAgICAgcmV0dXJuIC0xOw0KIA0KICAgaWYgKGkg
PT0gbm1vdW50cykNCiAgICAgbm1vdW50cysrOw0KLSAgbW91bnRbaV0uaW5pdCAobmF0aXZldG1w
LCBwb3NpeHRtcCwgbW91bnRmbGFncyk7DQorICBtb3VudFtpXS5pbml0IChuYXRpdmV0bXAsIHBv
c2l4dG1wLCB0eXBlLCBtb3VudGZsYWdzKTsNCiAgIHNvcnQgKCk7DQogDQogICByZXR1cm4gMDsN
CkBAIC0yMTA5LDcgKzIyMjcsNyBAQCBtb3VudF9pbmZvOjpyZWFkX3YxX21vdW50cyAocmVnX2tl
eSByLCB1DQogCSAgICAgd2UncmUgcmVhZGluZy4gKi8NCiAJICBtb3VudGZsYWdzIHw9IHdoaWNo
Ow0KIA0KLQkgIGludCByZXMgPSBtb3VudF90YWJsZS0+YWRkX2l0ZW0gKHdpbjMycGF0aCwgdW5p
eHBhdGgsIG1vdW50ZmxhZ3MsIFRSVUUpOw0KKwkgIGludCByZXMgPSBtb3VudF90YWJsZS0+YWRk
X2l0ZW0gKHdpbjMycGF0aCwgdW5peHBhdGgsIE5VTEwsIG1vdW50ZmxhZ3MsIFRSVUUpOw0KIAkg
IGlmIChyZXMgJiYgZ2V0X2Vycm5vICgpID09IEVNRklMRSkNCiAJICAgIGJyZWFrOyAvKiBUaGUg
bnVtYmVyIG9mIGVudHJpZXMgZXhjZWVkcyBNQVhfTU9VTlRTICovDQogCX0NCkBAIC0yMTQ5LDcg
KzIyNjcsNyBAQCBtb3VudF9pbmZvOjppbXBvcnRfdjFfbW91bnRzICgpDQogLyoqKioqKioqKioq
KioqKioqKioqKioqKiogbW91bnRfaXRlbSBjbGFzcyAqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLw0KIA0KIHN0YXRpYyBtbnRlbnQgKg0KLWZpbGxvdXRfbW50ZW50IChjb25zdCBjaGFyICpu
YXRpdmVfcGF0aCwgY29uc3QgY2hhciAqcG9zaXhfcGF0aCwgdW5zaWduZWQgZmxhZ3MpDQorZmls
bG91dF9tbnRlbnQgKGNvbnN0IGNoYXIgKm5hdGl2ZV9wYXRoLCBjb25zdCBjaGFyICpwb3NpeF9w
YXRoLCBEV09SRCB0eXBlLCB1bnNpZ25lZCBmbGFncykNCiB7DQogI2lmZGVmIF9NVF9TQUZFDQog
ICBzdHJ1Y3QgbW50ZW50ICZyZXQ9X3JlZW50X3dpbnN1cCgpLT5tbnRidWY7DQpAQCAtMjE3NSwx
MCArMjI5MywxNSBAQCBmaWxsb3V0X21udGVudCAoY29uc3QgY2hhciAqbmF0aXZlX3BhdGgsDQog
ICBzdHJjcHkgKF9yZWVudF93aW5zdXAgKCktPm1udF9kaXIsIHBvc2l4X3BhdGgpOw0KICAgcmV0
Lm1udF9kaXIgPSBfcmVlbnRfd2luc3VwICgpLT5tbnRfZGlyOw0KIA0KLSAgaWYgKCEoZmxhZ3Mg
JiBNT1VOVF9TWVNURU0pKQkJLyogdXNlciBtb3VudCAqLw0KLSAgICBzdHJjcHkgKF9yZWVudF93
aW5zdXAgKCktPm1udF90eXBlLCAoY2hhciAqKSAidXNlciIpOw0KLSAgZWxzZQkJCQkJLyogc3lz
dGVtIG1vdW50ICovDQotICAgIHN0cmNweSAoX3JlZW50X3dpbnN1cCAoKS0+bW50X3R5cGUsIChj
aGFyICopICJzeXN0ZW0iKTsNCisgIGlmICh0eXBlID09IEZIX0JBRCkNCisgICAgew0KKyAgICAg
IGlmICghKGZsYWdzICYgTU9VTlRfU1lTVEVNKSkJCS8qIHVzZXIgbW91bnQgKi8NCisgICAgICAg
IHN0cmNweSAoX3JlZW50X3dpbnN1cCAoKS0+bW50X3R5cGUsIChjaGFyICopICJ1c2VyIik7DQor
ICAgICAgZWxzZQkJCQkJLyogc3lzdGVtIG1vdW50ICovDQorICAgICAgICBzdHJjcHkgKF9yZWVu
dF93aW5zdXAgKCktPm1udF90eXBlLCAoY2hhciAqKSAic3lzdGVtIik7DQorICAgIH0NCisgIGVs
c2UJCQkJCQkvKiByZWFsIG1vdW50ICovDQorICAgIHN0cmNweSAoX3JlZW50X3dpbnN1cCAoKS0+
bW50X3R5cGUsIChjaGFyICopIGdldF9kZXZpY2VfbmFtZSAodHlwZSkpOw0KIA0KICAgcmV0Lm1u
dF90eXBlID0gX3JlZW50X3dpbnN1cCAoKS0+bW50X3R5cGU7DQogDQpAQCAtMjIwOSw3ICsyMzMy
LDcgQEAgZmlsbG91dF9tbnRlbnQgKGNvbnN0IGNoYXIgKm5hdGl2ZV9wYXRoLA0KIHN0cnVjdCBt
bnRlbnQgKg0KIG1vdW50X2l0ZW06OmdldG1udGVudCAoKQ0KIHsNCi0gIHJldHVybiBmaWxsb3V0
X21udGVudCAobmF0aXZlX3BhdGgsIHBvc2l4X3BhdGgsIGZsYWdzKTsNCisgIHJldHVybiBmaWxs
b3V0X21udGVudCAobmF0aXZlX3BhdGgsIHBvc2l4X3BhdGgsIGRldm4sIGZsYWdzKTsNCiB9DQog
DQogc3RhdGljIHN0cnVjdCBtbnRlbnQgKg0KQEAgLTIyMzUsNyArMjM1OCw3IEBAIGN5Z2RyaXZl
X2dldG1udGVudCAoKQ0KIAl9DQogICAgICAgbmF0aXZlX3BhdGhbMl0gPSAnXDAnOw0KICAgICAg
IF9fc21hbGxfc3ByaW50ZiAocG9zaXhfcGF0aCwgIiVzJWMiLCBtb3VudF90YWJsZS0+Y3lnZHJp
dmUsIGRyaXZlKTsNCi0gICAgICByZXQgPSBmaWxsb3V0X21udGVudCAobmF0aXZlX3BhdGgsIHBv
c2l4X3BhdGgsIG1vdW50X3RhYmxlLT5jeWdkcml2ZV9mbGFncyk7DQorICAgICAgcmV0ID0gZmls
bG91dF9tbnRlbnQgKG5hdGl2ZV9wYXRoLCBwb3NpeF9wYXRoLCBGSF9CQUQsIG1vdW50X3RhYmxl
LT5jeWdkcml2ZV9mbGFncyk7DQogICAgICAgYnJlYWs7DQogICAgIH0NCiANCkBAIC0yMjU0LDEw
ICsyMzc3LDIyIEBAIG1vdW50X2luZm86OmdldG1udGVudCAoaW50IHgpDQogLyogRmlsbCBpbiB0
aGUgZmllbGRzIG9mIGEgbW91bnQgdGFibGUgZW50cnkuICAqLw0KIA0KIHZvaWQNCi1tb3VudF9p
dGVtOjppbml0IChjb25zdCBjaGFyICpuYXRpdmUsIGNvbnN0IGNoYXIgKnBvc2l4LCB1bnNpZ25l
ZCBtb3VudGZsYWdzKQ0KK21vdW50X2l0ZW06OmluaXQgKGNvbnN0IGNoYXIgKm5hdGl2ZSwgY29u
c3QgY2hhciAqcG9zaXgsIGNvbnN0IGNoYXIgKnR5cGUsDQorCQkgIHVuc2lnbmVkIG1vdW50Zmxh
Z3MpDQogew0KICAgc3RyY3B5ICgoY2hhciAqKSBuYXRpdmVfcGF0aCwgbmF0aXZlKTsNCiAgIHN0
cmNweSAoKGNoYXIgKikgcG9zaXhfcGF0aCwgcG9zaXgpOw0KKyAgaWYgKHR5cGUgJiYgdHlwZVsw
XSkNCisgICAgew0KKyAgICAgIGRldm4gPSBnZXRfZGV2aWNlX251bWJlciAodHlwZSwgdW5pdCwg
RkFMU0UpOw0KKyAgICAgIHN5c3RlbV9wcmludGYoIm1vdW50IGVudHJ5IGhhcyB0eXBlICVzIGRl
dm4gJWRcbiIsIHR5cGUsIGRldm4pOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsNCisgICAgICBk
ZXZuID0gRkhfQkFEOyANCisgICAgICAvKiBGSF9CQUQgaGVyZSBmb3JjZXMgZHRhYmxlOjpidWls
ZF9maGFuZGxlciB0byBjaGVjayBmb3Igc29ja2V0cyBldGMgKi8NCisgICAgICB1bml0ID0gMDsN
CisgICAgfQ0KIA0KICAgbmF0aXZlX3BhdGhsZW4gPSBzdHJsZW4gKG5hdGl2ZV9wYXRoKTsNCiAg
IHBvc2l4X3BhdGhsZW4gPSBzdHJsZW4gKHBvc2l4X3BhdGgpOw0KQEAgLTIyNzYsNyArMjQxMSw3
IEBAIG1vdW50X2l0ZW06OmluaXQgKGNvbnN0IGNoYXIgKm5hdGl2ZSwgY28NCiANCiBleHRlcm4g
IkMiDQogaW50DQotbW91bnQgKGNvbnN0IGNoYXIgKndpbjMyX3BhdGgsIGNvbnN0IGNoYXIgKnBv
c2l4X3BhdGgsIHVuc2lnbmVkIGZsYWdzKQ0KK21vdW50IChjb25zdCBjaGFyICp3aW4zMl9wYXRo
LCBjb25zdCBjaGFyICpwb3NpeF9wYXRoLCBjb25zdCBjaGFyICp0eXBlLCB1bnNpZ25lZCBmbGFn
cykNCiB7DQogICBpbnQgcmVzID0gLTE7DQogDQpAQCAtMjI4OSw3ICsyNDI0LDcgQEAgbW91bnQg
KGNvbnN0IGNoYXIgKndpbjMyX3BhdGgsIGNvbnN0IGNoYQ0KICAgICAgIHdpbjMyX3BhdGggPSBO
VUxMOw0KICAgICB9DQogICBlbHNlDQotICAgIHJlcyA9IG1vdW50X3RhYmxlLT5hZGRfaXRlbSAo
d2luMzJfcGF0aCwgcG9zaXhfcGF0aCwgZmxhZ3MsIFRSVUUpOw0KKyAgICByZXMgPSBtb3VudF90
YWJsZS0+YWRkX2l0ZW0gKHdpbjMyX3BhdGgsIHBvc2l4X3BhdGgsIHR5cGUsIGZsYWdzLCBUUlVF
KTsNCiANCiAgIHN5c2NhbGxfcHJpbnRmICgiJWQgPSBtb3VudCAoJXMsICVzLCAlcCkiLCByZXMs
IHdpbjMyX3BhdGgsIHBvc2l4X3BhdGgsIGZsYWdzKTsNCiAgIHJldHVybiByZXM7DQpJbmRleDog
Y3lnd2luL3NoYXJlZF9pbmZvLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv
d2luc3VwL2N5Z3dpbi9zaGFyZWRfaW5mby5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMg0K
ZGlmZiAtdSAtcCAtcjEuMTIgc2hhcmVkX2luZm8uaA0KLS0tIHNoYXJlZF9pbmZvLmgJMjAwMS8w
OS8wNyAyMTozMjowNQkxLjEyDQorKysgc2hhcmVkX2luZm8uaAkyMDAxLzA5LzA5IDA0OjU4OjM3
DQpAQCAtMjcsOSArMjcsMTMgQEAgY2xhc3MgbW91bnRfaXRlbQ0KICAgY2hhciBwb3NpeF9wYXRo
W01BWF9QQVRIXTsNCiAgIGludCBwb3NpeF9wYXRobGVuOw0KIA0KKyAgLyogZmlsZSBoYW5kbGVy
IGZvciB0aGUgbW91bnQgLSAwIG1lYW5zIGRlZmF1bHQgKi8NCisgIERXT1JEIGRldm47DQorICBp
bnQgdW5pdDsNCisNCiAgIHVuc2lnbmVkIGZsYWdzOw0KIA0KLSAgdm9pZCBpbml0IChjb25zdCBj
aGFyICpkZXYsIGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGZsYWdzKTsNCisgIHZvaWQgaW5p
dCAoY29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICpwYXRoLCBjb25zdCBjaGFyICp0eXBlLCB1
bnNpZ25lZCBmbGFncyk7DQogDQogICBzdHJ1Y3QgbW50ZW50ICpnZXRtbnRlbnQgKCk7DQogfTsN
CkBAIC02NywxMiArNzEsMTIgQEAgY2xhc3MgbW91bnRfaW5mbw0KICAgaW50IGhhZF90b19jcmVh
dGVfbW91bnRfYXJlYXM7DQogDQogICB2b2lkIGluaXQgKCk7DQotICBpbnQgYWRkX2l0ZW0gKGNv
bnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqcGF0aCwgdW5zaWduZWQgZmxhZ3MsIGludCByZWdf
cCk7DQorICBpbnQgYWRkX2l0ZW0gKGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqcGF0aCwg
Y29uc3QgY2hhciAqdHlwZSwgdW5zaWduZWQgZmxhZ3MsIGludCByZWdfcCk7DQogICBpbnQgZGVs
X2l0ZW0gKGNvbnN0IGNoYXIgKnBhdGgsIHVuc2lnbmVkIGZsYWdzLCBpbnQgcmVnX3ApOw0KIA0K
ICAgdm9pZCBmcm9tX3JlZ2lzdHJ5ICgpOw0KICAgaW50IGFkZF9yZWdfbW91bnQgKGNvbnN0IGNo
YXIgKiBuYXRpdmVfcGF0aCwgY29uc3QgY2hhciAqIHBvc2l4X3BhdGgsDQotCQkgICAgICB1bnNp
Z25lZCBtb3VudGZsYWdzKTsNCisJCSAgICAgIGNvbnN0IGNoYXIgKiB0eXBlLCB1bnNpZ25lZCBt
b3VudGZsYWdzKTsNCiAgIGludCBkZWxfcmVnX21vdW50IChjb25zdCBjaGFyICogcG9zaXhfcGF0
aCwgdW5zaWduZWQgbW91bnRmbGFncyk7DQogDQogICB1bnNpZ25lZCBzZXRfZmxhZ3NfZnJvbV93
aW4zMl9wYXRoIChjb25zdCBjaGFyICpwYXRoKTsNCkBAIC04OCw2ICs5Miw3IEBAIGNsYXNzIG1v
dW50X2luZm8NCiAJCQkgY2hhciogc3lzdGVtX2ZsYWdzKTsNCiANCiAgIHZvaWQgaW1wb3J0X3Yx
X21vdW50cyAoKTsNCisgIERXT1JEIGdldF9tb3VudF9kZXZpY2VfbnVtYmVyIChjb25zdCBjaGFy
ICp1eG5hbWUpOw0KIA0KICBwcml2YXRlOg0KIA0KQEAgLTEwMCw2ICsxMDUsNyBAQCBjbGFzcyBt
b3VudF9pbmZvDQogICBpbnQgY3lnZHJpdmVfd2luMzJfcGF0aCAoY29uc3QgY2hhciAqc3JjLCBj
aGFyICpkc3QsIGludCB0cmFpbGluZ19zbGFzaF9wKTsNCiAgIHZvaWQgY3lnZHJpdmVfcG9zaXhf
cGF0aCAoY29uc3QgY2hhciAqc3JjLCBjaGFyICpkc3QsIGludCB0cmFpbGluZ19zbGFzaF9wKTsN
CiAgIHZvaWQgcmVhZF9jeWdkcml2ZV9pbmZvX2Zyb21fcmVnaXN0cnkgKCk7DQorDQogfTsNCiAN
CiAvKioqKioqKiogQ2xvc2Utb24tZGVsZXRlIHF1ZXVlICoqKioqKioqLw0KSW5kZXg6IGN5Z3dp
bi9pbmNsdWRlL3N5cy9tb3VudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3Jj
L3dpbnN1cC9jeWd3aW4vaW5jbHVkZS9zeXMvbW91bnQuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuNQ0KZGlmZiAtdSAtcCAtcjEuNSBtb3VudC5oDQotLS0gbW91bnQuaAkyMDAxLzAzLzA1IDIx
OjI5OjIzCTEuNQ0KKysrIG1vdW50LmgJMjAwMS8wOS8wOSAwNDo1ODozOA0KQEAgLTI3LDcgKzI3
LDcgQEAgZW51bQ0KICAgTU9VTlRfTUlYRUQJPQkweDA4MCwJLyogcmVhZHMgYXJlIHRleHQsIHdy
aXRlcyBhcmUgYmluYXJ5ICovDQogfTsNCiANCi1pbnQgbW91bnQgKGNvbnN0IGNoYXIgKiwgY29u
c3QgY2hhciAqLCB1bnNpZ25lZCBfX2ZsYWdzKTsNCitpbnQgbW91bnQgKGNvbnN0IGNoYXIgKiwg
Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHVuc2lnbmVkIF9fZmxhZ3MpOw0KIGludCB1bW91
bnQgKGNvbnN0IGNoYXIgKik7DQogaW50IGN5Z3dpbl91bW91bnQgKGNvbnN0IGNoYXIgKl9fcGF0
aCwgdW5zaWduZWQgX19mbGFncyk7DQogDQpJbmRleDogdXRpbHMvbW91bnQuY2MNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL3V0aWxzL21vdW50LmNjLHYNCnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xNw0KZGlmZiAtdSAtcCAtcjEuMTcgbW91bnQuY2MNCi0tLSBtb3Vu
dC5jYwkyMDAxLzA5LzA0IDAxOjA5OjM5CTEuMTcNCisrKyBtb3VudC5jYwkyMDAxLzA5LzA5IDA0
OjU4OjM4DQpAQCAtNDUsNyArNDUsNyBAQCBlcnJvciAoY29uc3QgY2hhciAqcGF0aCkNCiAgICBp
cyBhIG5vbi1leGlzdGVudCBXaW4zMiBwYXRoLiAqLw0KIA0KIHN0YXRpYyB2b2lkDQotZG9fbW91
bnQgKGNvbnN0IGNoYXIgKmRldiwgY29uc3QgY2hhciAqd2hlcmUsIGludCBmbGFncykNCitkb19t
b3VudCAoY29uc3QgY2hhciAqZGV2LCBjb25zdCBjaGFyICp3aGVyZSwgY29uc3QgY2hhciAqdHlw
ZSwgaW50IGZsYWdzKQ0KIHsNCiAgIHN0cnVjdCBzdGF0IHN0YXRidWY7DQogICBjaGFyIHdpbjMy
X3BhdGhbTUFYX1BBVEhdOw0KQEAgLTY5LDcgKzY5LDcgQEAgZG9fbW91bnQgKGNvbnN0IGNoYXIg
KmRldiwgY29uc3QgY2hhciAqdw0KICAgICB9DQogI2VuZGlmDQogDQotICBpZiAobW91bnQgKGRl
diwgd2hlcmUsIGZsYWdzKSkNCisgIGlmIChtb3VudCAoZGV2LCB3aGVyZSwgdHlwZSwgZmxhZ3Mp
KQ0KICAgICBlcnJvciAod2hlcmUpOw0KIA0KICAgaWYgKHN0YXRyZXMgPT0gLTEpDQpAQCAtMjI4
LDcgKzIyOCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAgICAgICBtb3VudF9j
b21tYW5kcyAoKTsNCiAgICAgICBicmVhazsNCiAgICAgZGVmYXVsdDoNCi0gICAgICBpZiAob3B0
aW5kICE9IChhcmdjIC0gMSkpDQorICAgICAgaWYgKG9wdGluZCAhPSAoYXJnYyAtIDEpICYmIG9w
dGluZCAhPSAoYXJnYyAtIDIpKQ0KIAl7DQogCSAgaWYgKG9wdGluZCA+PSBhcmdjKQ0KIAkgICAg
ZnByaW50ZiAoc3RkZXJyLCAiJXM6IG5vdCBlbm91Z2ggYXJndW1lbnRzXG4iLCBwcm9nbmFtZSk7
DQpAQCAtMjM3LDcgKzIzNyw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJICB1
c2FnZSAoKTsNCiAJfQ0KICAgICAgIGlmIChmb3JjZSB8fCAhbW91bnRfYWxyZWFkeV9leGlzdHMg
KGFyZ3Zbb3B0aW5kICsgMV0sIGZsYWdzKSkNCi0JZG9fbW91bnQgKGFyZ3Zbb3B0aW5kXSwgYXJn
dltvcHRpbmQgKyAxXSwgZmxhZ3MpOw0KKwlkb19tb3VudCAoYXJndltvcHRpbmRdLCBhcmd2W29w
dGluZCArIDFdLCBhcmd2W29wdGluZCArIDJdLCBmbGFncyk7DQogICAgICAgZWxzZQ0KIAl7DQog
CSAgZXJybm8gPSBFQlVTWTsNCkBAIC0zNzYsNyArMzc2LDcgQEAgY2hhbmdlX2N5Z2RyaXZlX3By
ZWZpeCAoY29uc3QgY2hhciAqbmV3Xw0KIHsNCiAgIGZsYWdzIHw9IE1PVU5UX0FVVE87DQogDQot
ICBpZiAobW91bnQgKE5VTEwsIG5ld19wcmVmaXgsIGZsYWdzKSkNCisgIGlmIChtb3VudCAoTlVM
TCwgbmV3X3ByZWZpeCwgTlVMTCwgZmxhZ3MpKQ0KICAgICBlcnJvciAobmV3X3ByZWZpeCk7DQog
DQogICBleGl0ICgwKTsNCg==


------_=_NextPart_001_01C14562.CB8DEA60
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------_=_NextPart_001_01C14562.CB8DEA60--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019