/pidgin/main: 4663f9da17aa: Merged in CMaiku/pidgin (pull reques...

Gary Kramlich <[email protected]> Fri, 30 Sep 2016 10:52:03 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Q2hhbmdlc2V0OiA0NjYzZjlkYTE3YWEwYzdlZTM2ZDZlYzdhODYwMzQ5ZWM3YWE4MjcxCkF1dGhv
cjoJIEdhcnkgS3JhbWxpY2ggPGdyaW1AcmVhcGVyd29ybGQuY29tPgpEYXRlOgkgMjAxNi0wOS0z
MCAwOTo1MCAtMDUwMApCcmFuY2g6CSBkZWZhdWx0ClVSTDogaHR0cHM6Ly9oZy5waWRnaW4uaW0v
cGlkZ2luL21haW4vcmV2LzQ2NjNmOWRhMTdhYQoKRGVzY3JpcHRpb246CgpNZXJnZWQgaW4gQ01h
aWt1L3BpZGdpbiAocHVsbCByZXF1ZXN0ICMxMjkpCgpmYWNlYm9vazogUG9ydCBmcm9tIHNzbGNv
bm4gdG8gR2lvCgpkaWZmc3RhdDoKCiBsaWJwdXJwbGUvcHJvdG9jb2xzL2ZhY2Vib29rL2ZhY2Vi
b29rLmMgfCAgICA0ICstCiBsaWJwdXJwbGUvcHJvdG9jb2xzL2ZhY2Vib29rL21xdHQuYyAgICAg
fCAgMzM0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGxpYnB1cnBsZS9wcm90b2Nv
bHMvZmFjZWJvb2svbXF0dC5oICAgICB8ICAgMTcgLQogMyBmaWxlcyBjaGFuZ2VkLCAxOTggaW5z
ZXJ0aW9ucygrKSwgMTU3IGRlbGV0aW9ucygtKQoKZGlmZnMgKHRydW5jYXRlZCBmcm9tIDUzNSB0
byAzMDAgbGluZXMpOgoKZGlmZiAtLWdpdCBhL2xpYnB1cnBsZS9wcm90b2NvbHMvZmFjZWJvb2sv
ZmFjZWJvb2suYyBiL2xpYnB1cnBsZS9wcm90b2NvbHMvZmFjZWJvb2svZmFjZWJvb2suYwotLS0g
YS9saWJwdXJwbGUvcHJvdG9jb2xzL2ZhY2Vib29rL2ZhY2Vib29rLmMKKysrIGIvbGlicHVycGxl
L3Byb3RvY29scy9mYWNlYm9vay9mYWNlYm9vay5jCkBAIC0zMzIsOCArMzMyLDggQEAgZmJfY2Jf
YXBpX2Vycm9yKEZiQXBpICphcGksIEdFcnJvciAqZXJybwogCiAJZ2MgPSBmYl9kYXRhX2dldF9j
b25uZWN0aW9uKGZhdGEpOwogCi0JaWYgKGVycm9yLT5kb21haW4gPT0gRkJfTVFUVF9TU0xfRVJS
T1IpIHsKLQkJcHVycGxlX2Nvbm5lY3Rpb25fc3NsX2Vycm9yKGdjLCBlcnJvci0+Y29kZSk7CisJ
aWYgKGVycm9yLT5kb21haW4gPT0gR19JT19FUlJPUikgeworCQlwdXJwbGVfY29ubmVjdGlvbl9n
X2Vycm9yKGdjLCBlcnJvcik7CiAJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBhL2xpYnB1cnBs
ZS9wcm90b2NvbHMvZmFjZWJvb2svbXF0dC5jIGIvbGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9v
ay9tcXR0LmMKLS0tIGEvbGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9vay9tcXR0LmMKKysrIGIv
bGlicHVycGxlL3Byb3RvY29scy9mYWNlYm9vay9tcXR0LmMKQEAgLTI4LDcgKzI4LDggQEAKICNp
bmNsdWRlICJhY2NvdW50LmgiCiAjaW5jbHVkZSAiZXZlbnRsb29wLmgiCiAjaW5jbHVkZSAiZ2xp
YmNvbXBhdC5oIgotI2luY2x1ZGUgInNzbGNvbm4uaCIKKyNpbmNsdWRlICJwdXJwbGUtZ2lvLmgi
CisjaW5jbHVkZSAicXVldWVkb3V0cHV0c3RyZWFtLmgiCiAKICNpbmNsdWRlICJtYXJzaGFsLmgi
CiAjaW5jbHVkZSAibXF0dC5oIgpAQCAtMzcsMTcgKzM4LDE3IEBACiBzdHJ1Y3QgX0ZiTXF0dFBy
aXZhdGUKIHsKIAlQdXJwbGVDb25uZWN0aW9uICpnYzsKLQlQdXJwbGVTc2xDb25uZWN0aW9uICpn
c2M7CisJR0lPU3RyZWFtICpjb25uOworCUdCdWZmZXJlZElucHV0U3RyZWFtICppbnB1dDsKKwlQ
dXJwbGVRdWV1ZWRPdXRwdXRTdHJlYW0gKm91dHB1dDsKKwlHQ2FuY2VsbGFibGUgKmNhbmNlbGxh
YmxlOwogCWdib29sZWFuIGNvbm5lY3RlZDsKIAlndWludDE2IG1pZDsKIAogCUdCeXRlQXJyYXkg
KnJidWY7Ci0JR0J5dGVBcnJheSAqd2J1ZjsKIAlnc2l6ZSByZW16OwogCiAJZ2ludCB0ZXY7Ci0J
Z2ludCByZXY7Ci0JZ2ludCB3ZXY7CiB9OwogCiBzdHJ1Y3QgX0ZiTXF0dE1lc3NhZ2VQcml2YXRl
CkBAIC02NSw2ICs2Niw4IEBAIHN0cnVjdCBfRmJNcXR0TWVzc2FnZVByaXZhdGUKIEdfREVGSU5F
X1RZUEUoRmJNcXR0LCBmYl9tcXR0LCBHX1RZUEVfT0JKRUNUKTsKIEdfREVGSU5FX1RZUEUoRmJN
cXR0TWVzc2FnZSwgZmJfbXF0dF9tZXNzYWdlLCBHX1RZUEVfT0JKRUNUKTsKIAorc3RhdGljIHZv
aWQgZmJfbXF0dF9yZWFkX3BhY2tldChGYk1xdHQgKm1xdHQpOworCiBzdGF0aWMgdm9pZAogZmJf
bXF0dF9kaXNwb3NlKEdPYmplY3QgKm9iaikKIHsKQEAgLTczLDcgKzc2LDYgQEAgZmJfbXF0dF9k
aXNwb3NlKEdPYmplY3QgKm9iaikKIAogCWZiX21xdHRfY2xvc2UobXF0dCk7CiAJZ19ieXRlX2Fy
cmF5X2ZyZWUocHJpdi0+cmJ1ZiwgVFJVRSk7Ci0JZ19ieXRlX2FycmF5X2ZyZWUocHJpdi0+d2J1
ZiwgVFJVRSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xNjEsNyArMTYzLDYgQEAgZmJfbXF0dF9p
bml0KEZiTXF0dCAqbXF0dCkKIAltcXR0LT5wcml2ID0gcHJpdjsKIAogCXByaXYtPnJidWYgPSBn
X2J5dGVfYXJyYXlfbmV3KCk7Ci0JcHJpdi0+d2J1ZiA9IGdfYnl0ZV9hcnJheV9uZXcoKTsKIH0K
IAogc3RhdGljIHZvaWQKQEAgLTIwNSwxOCArMjA2LDYgQEAgZmJfbXF0dF9lcnJvcl9xdWFyayh2
b2lkKQogCXJldHVybiBxOwogfQogCi1HUXVhcmsKLWZiX21xdHRfc3NsX2Vycm9yX3F1YXJrKHZv
aWQpCi17Ci0Jc3RhdGljIEdRdWFyayBxID0gMDsKLQotCWlmIChHX1VOTElLRUxZKHEgPT0gMCkp
IHsKLQkJcSA9IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJmYi1tcXR0LXNzbC1lcnJvci1x
dWFyayIpOwotCX0KLQotCXJldHVybiBxOwotfQotCiBGYk1xdHQgKgogZmJfbXF0dF9uZXcoUHVy
cGxlQ29ubmVjdGlvbiAqZ2MpCiB7CkBAIC0yNDAsMzMgKzIyOSw0NyBAQCBmYl9tcXR0X2Nsb3Nl
KEZiTXF0dCAqbXF0dCkKIAlnX3JldHVybl9pZl9mYWlsKEZCX0lTX01RVFQobXF0dCkpOwogCXBy
aXYgPSBtcXR0LT5wcml2OwogCi0JaWYgKHByaXYtPndldiA+IDApIHsKLQkJcHVycGxlX2lucHV0
X3JlbW92ZShwcml2LT53ZXYpOwotCQlwcml2LT53ZXYgPSAwOwotCX0KLQotCWlmIChwcml2LT5y
ZXYgPiAwKSB7Ci0JCXB1cnBsZV9pbnB1dF9yZW1vdmUocHJpdi0+cmV2KTsKLQkJcHJpdi0+cmV2
ID0gMDsKLQl9Ci0KIAlpZiAocHJpdi0+dGV2ID4gMCkgewogCQlwdXJwbGVfdGltZW91dF9yZW1v
dmUocHJpdi0+dGV2KTsKIAkJcHJpdi0+dGV2ID0gMDsKIAl9CiAKLQlpZiAocHJpdi0+Z3NjICE9
IE5VTEwpIHsKLQkJcHVycGxlX3NzbF9jbG9zZShwcml2LT5nc2MpOwotCQlwcml2LT5nc2MgPSBO
VUxMOworCWlmIChwcml2LT5jYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisJCWdfY2FuY2VsbGFibGVf
Y2FuY2VsKHByaXYtPmNhbmNlbGxhYmxlKTsKKwkJZ19jbGVhcl9vYmplY3QoJnByaXYtPmNhbmNl
bGxhYmxlKTsKIAl9CiAKLQlpZiAocHJpdi0+d2J1Zi0+bGVuID4gMCkgewotCQlmYl91dGlsX2Rl
YnVnX3dhcm5pbmcoIkNsb3Npbmcgd2l0aCB1bndyaXR0ZW4gZGF0YSIpOworCWlmIChwcml2LT5j
b25uICE9IE5VTEwpIHsKKwkJcHVycGxlX2dpb19ncmFjZWZ1bF9jbG9zZShwcml2LT5jb25uLAor
CQkJCUdfSU5QVVRfU1RSRUFNKHByaXYtPmlucHV0KSwKKwkJCQlHX09VVFBVVF9TVFJFQU0ocHJp
di0+b3V0cHV0KSk7CisJCWdfY2xlYXJfb2JqZWN0KCZwcml2LT5pbnB1dCk7CisJCWdfY2xlYXJf
b2JqZWN0KCZwcml2LT5vdXRwdXQpOworCQlnX2NsZWFyX29iamVjdCgmcHJpdi0+Y29ubik7CiAJ
fQogCiAJcHJpdi0+Y29ubmVjdGVkID0gRkFMU0U7CiAJZ19ieXRlX2FycmF5X3NldF9zaXplKHBy
aXYtPnJidWYsIDApOwotCWdfYnl0ZV9hcnJheV9zZXRfc2l6ZShwcml2LT53YnVmLCAwKTsKK30K
Kworc3RhdGljIHZvaWQKK2ZiX21xdHRfdGFrZV9lcnJvcihGYk1xdHQgKm1xdHQsIEdFcnJvciAq
ZXJyLCBjb25zdCBnY2hhciAqcHJlZml4KQoreworCWlmIChnX2Vycm9yX21hdGNoZXMoZXJyLCBH
X0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpIHsKKwkJLyogUmV0dXJuIGFzIGNhbmNl
bGxlZCBtZWFucyB0aGUgY29ubmVjdGlvbiBpcyBjbG9zaW5nICovCisJCWdfZXJyb3JfZnJlZShl
cnIpOworCQlyZXR1cm47CisJfQorCisJLyogTm93IHdlIGNhbiBjaGVjayBmb3IgcHJvZ3JhbW1p
bmcgZXJyb3JzICovCisJZ19yZXR1cm5faWZfZmFpbChGQl9JU19NUVRUKG1xdHQpKTsKKworCWlm
IChwcmVmaXggIT0gTlVMTCkgeworCQlnX3ByZWZpeF9lcnJvcigmZXJyLCAiJXM6ICIsIHByZWZp
eCk7CisJfQorCisJZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1xdHQsICJlcnJvciIsIGVycik7CisJ
Z19lcnJvcl9mcmVlKGVycik7CiB9CiAKIHZvaWQKQEAgLTM0NCw3NCArMzQ3LDEzMCBAQCBmYl9t
cXR0X3BpbmcoRmJNcXR0ICptcXR0KQogfQogCiBzdGF0aWMgdm9pZAotZmJfbXF0dF9jYl9yZWFk
KGdwb2ludGVyIGRhdGEsIGdpbnQgZmQsIFB1cnBsZUlucHV0Q29uZGl0aW9uIGNvbmQpCitmYl9t
cXR0X2NiX2ZpbGwoR09iamVjdCAqc291cmNlLCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIg
ZGF0YSkKK3sKKwlHQnVmZmVyZWRJbnB1dFN0cmVhbSAqaW5wdXQgPSBHX0JVRkZFUkVEX0lOUFVU
X1NUUkVBTShzb3VyY2UpOworCUZiTXF0dCAqbXF0dCA9IGRhdGE7CisJZ3NzaXplIHJldDsKKwlH
RXJyb3IgKmVyciA9IE5VTEw7CisKKwlyZXQgPSBnX2J1ZmZlcmVkX2lucHV0X3N0cmVhbV9maWxs
X2ZpbmlzaChpbnB1dCwgcmVzLCAmZXJyKTsKKworCWlmIChyZXQgPCAxKSB7CisJCWlmIChyZXQg
PT0gMCkgeworCQkJZXJyID0gZ19lcnJvcl9uZXdfbGl0ZXJhbChHX0lPX0VSUk9SLAorCQkJCQlH
X0lPX0VSUk9SX0NPTk5FQ1RJT05fQ0xPU0VELAorCQkJCQlfKCJDb25uZWN0aW9uIGNsb3NlZCIp
KTsKKwkJfQorCisJCWZiX21xdHRfdGFrZV9lcnJvcihtcXR0LCBlcnIsIF8oIkZhaWxlZCB0byBy
ZWFkIGZpeGVkIGhlYWRlciIpKTsKKwkJcmV0dXJuOworCX0KKworCWZiX21xdHRfcmVhZF9wYWNr
ZXQobXF0dCk7Cit9CisKK3N0YXRpYyB2b2lkCitmYl9tcXR0X2NiX3JlYWRfcGFja2V0KEdPYmpl
Y3QgKnNvdXJjZSwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIGRhdGEpCiB7CiAJRmJNcXR0
ICptcXR0ID0gZGF0YTsKKwlGYk1xdHRQcml2YXRlICpwcml2OworCWdzc2l6ZSByZXQ7CiAJRmJN
cXR0TWVzc2FnZSAqbXNnOwotCUZiTXF0dFByaXZhdGUgKnByaXYgPSBtcXR0LT5wcml2OwotCWdp
bnQgcmVzOwotCWd1aW50IG11bHQ7Ci0JZ3VpbnQ4IGJ1ZlsxMDI0XTsKLQlndWludDggYnl0ZTsK
LQlnc2l6ZSBzaXplOwotCWdzc2l6ZSByaXplOworCUdFcnJvciAqZXJyID0gTlVMTDsKIAotCWlm
IChwcml2LT5yZW16IDwgMSkgewotCQkvKiBSZXNldCB0aGUgcmVhZCBidWZmZXIgKi8KLQkJZ19i
eXRlX2FycmF5X3NldF9zaXplKHByaXYtPnJidWYsIDApOworCXJldCA9IGdfaW5wdXRfc3RyZWFt
X3JlYWRfZmluaXNoKEdfSU5QVVRfU1RSRUFNKHNvdXJjZSksIHJlcywgJmVycik7CiAKLQkJcmVz
ID0gcHVycGxlX3NzbF9yZWFkKHByaXYtPmdzYywgJmJ5dGUsIHNpemVvZiBieXRlKTsKLQkJZ19i
eXRlX2FycmF5X2FwcGVuZChwcml2LT5yYnVmLCAmYnl0ZSwgc2l6ZW9mIGJ5dGUpOwotCi0JCWlm
IChyZXMgIT0gc2l6ZW9mIGJ5dGUpIHsKLQkJCWZiX21xdHRfZXJyb3IobXF0dCwgRkJfTVFUVF9F
UlJPUl9HRU5FUkFMLAotCQkJICAgICAgICAgICAgICBfKCJGYWlsZWQgdG8gcmVhZCBmaXhlZCBo
ZWFkZXIiKSk7Ci0JCQlyZXR1cm47CisJaWYgKHJldCA8IDEpIHsKKwkJaWYgKHJldCA9PSAwKSB7
CisJCQllcnIgPSBnX2Vycm9yX25ld19saXRlcmFsKEdfSU9fRVJST1IsCisJCQkJCUdfSU9fRVJS
T1JfQ09OTkVDVElPTl9DTE9TRUQsCisJCQkJCV8oIkNvbm5lY3Rpb24gY2xvc2VkIikpOwogCQl9
CiAKLQkJbXVsdCA9IDE7Ci0KLQkJZG8gewotCQkJcmVzID0gcHVycGxlX3NzbF9yZWFkKHByaXYt
PmdzYywgJmJ5dGUsIHNpemVvZiBieXRlKTsKLQkJCWdfYnl0ZV9hcnJheV9hcHBlbmQocHJpdi0+
cmJ1ZiwgJmJ5dGUsIHNpemVvZiBieXRlKTsKLQotCQkJaWYgKHJlcyAhPSBzaXplb2YgYnl0ZSkg
ewotCQkJCWZiX21xdHRfZXJyb3IobXF0dCwgRkJfTVFUVF9FUlJPUl9HRU5FUkFMLAotCQkJCSAg
ICAgICAgICAgICAgXygiRmFpbGVkIHRvIHJlYWQgcGFja2V0IHNpemUiKSk7Ci0JCQkJcmV0dXJu
OwotCQkJfQotCi0JCQlwcml2LT5yZW16ICs9IChieXRlICYgMTI3KSAqIG11bHQ7Ci0JCQltdWx0
ICo9IDEyODsKLQkJfSB3aGlsZSAoKGJ5dGUgJiAxMjgpICE9IDApOworCQlmYl9tcXR0X3Rha2Vf
ZXJyb3IobXF0dCwgZXJyLCBfKCJGYWlsZWQgdG8gcmVhZCBwYWNrZXQgZGF0YSIpKTsKKwkJcmV0
dXJuOwogCX0KIAorCXByaXYgPSBtcXR0LT5wcml2OworCXByaXYtPnJlbXogLT0gcmV0OworCiAJ
aWYgKHByaXYtPnJlbXogPiAwKSB7Ci0JCXNpemUgPSBNSU4ocHJpdi0+cmVteiwgc2l6ZW9mIGJ1
Zik7Ci0JCXJpemUgPSBwdXJwbGVfc3NsX3JlYWQocHJpdi0+Z3NjLCBidWYsIHNpemUpOworCQln
X2lucHV0X3N0cmVhbV9yZWFkX2FzeW5jKEdfSU5QVVRfU1RSRUFNKHNvdXJjZSksCisJCQkJcHJp
di0+cmJ1Zi0+ZGF0YSArCisJCQkJcHJpdi0+cmJ1Zi0+bGVuIC0gcHJpdi0+cmVteiwgcHJpdi0+
cmVteiwKKwkJCQlHX1BSSU9SSVRZX0RFRkFVTFQsIHByaXYtPmNhbmNlbGxhYmxlLAorCQkJCWZi
X21xdHRfY2JfcmVhZF9wYWNrZXQsIG1xdHQpOworCQlyZXR1cm47CisJfQogCi0JCWlmIChyaXpl
IDwgMSkgewotCQkJZmJfbXF0dF9lcnJvcihtcXR0LCBGQl9NUVRUX0VSUk9SX0dFTkVSQUwsCi0J
CQkgICAgICAgICAgICAgIF8oIkZhaWxlZCB0byByZWFkIHBhY2tldCBkYXRhIikpOwotCQkJcmV0
dXJuOworCW1zZyA9IGZiX21xdHRfbWVzc2FnZV9uZXdfYnl0ZXMocHJpdi0+cmJ1Zik7CisKKwlp
ZiAoR19VTkxJS0VMWShtc2cgPT0gTlVMTCkpIHsKKwkJZmJfbXF0dF9lcnJvcihtcXR0LCBGQl9N
UVRUX0VSUk9SX0dFTkVSQUwsCisJCSAgICAgICAgICAgICAgXygiRmFpbGVkIHRvIHBhcnNlIG1l
c3NhZ2UiKSk7CisJCXJldHVybjsKKwl9CisKKwlmYl9tcXR0X3JlYWQobXF0dCwgbXNnKTsKKwln
X29iamVjdF91bnJlZihtc2cpOworCisJLyogUmVhZCBhbm90aGVyIHBhY2tldCBpZiBjb25uZWN0
aW9uIHdhc24ndCByZXNldCBpbiBmYl9tcXR0X3JlYWQoKSAqLworCWlmIChmYl9tcXR0X2Nvbm5l
Y3RlZChtcXR0LCBGQUxTRSkpIHsKKwkJZmJfbXF0dF9yZWFkX3BhY2tldChtcXR0KTsKKwl9Cit9
CisKK3N0YXRpYyB2b2lkCitmYl9tcXR0X3JlYWRfcGFja2V0KEZiTXF0dCAqbXF0dCkKK3sKKwlG
Yk1xdHRQcml2YXRlICpwcml2ID0gbXF0dC0+cHJpdjsKKwljb25zdCBndWludDggY29uc3QgKmJ1
ZjsKKwlnc2l6ZSBjb3VudCA9IDA7CisJZ3NpemUgcG9zOworCWd1aW50IG11bHQgPSAxOworCWd1
aW50OCBieXRlOworCWdzaXplIHNpemUgPSAwOworCisJYnVmID0gZ19idWZmZXJlZF9pbnB1dF9z
dHJlYW1fcGVla19idWZmZXIocHJpdi0+aW5wdXQsICZjb3VudCk7CisKKwkvKiBTdGFydCBhdCAx
IHRvIHNraXAgdGhlIGZpcnN0IGJ5dGUgKi8KKwlwb3MgPSAxOworCisJZG8geworCQlpZiAocG9z
ID49IGNvdW50KSB7CisJCQkvKiBOb3QgZW5vdWdoIGRhdGEgeWV0LCB0cnkgYWdhaW4gbGF0ZXIg
Ki8KKwkJCXNpemUgPSAwOworCQkJYnJlYWs7CiAJCX0KIAotCQlnX2J5dGVfYXJyYXlfYXBwZW5k
KHByaXYtPnJidWYsIGJ1Ziwgcml6ZSk7Ci0JCXByaXYtPnJlbXogLT0gcml6ZTsKLQl9CgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpDb21taXRzIG1haWxp
bmcgbGlzdApDb21taXRzQHBpZGdpbi5pbQpodHRwczovL3BpZGdpbi5pbS9jZ2ktYmluL21haWxt
YW4vbGlzdGluZm8vY29tbWl0cw==