From mboxrd@z Thu Jan 1 00:00:00 1970
Path: news.gmane.org!.POSTED!not-for-mail
From: Philipp Stephani
Newsgroups: gmane.emacs.bugs
Subject: bug#23486: 25.0.93; Modules: features missing from make_function
Date: Sun, 11 Sep 2016 14:13:43 +0000
Message-ID:
References:
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=001a114e2e3a548999053c3bfde5
X-Trace: blaine.gmane.org 1473603321 28884 195.159.176.226 (11 Sep 2016 14:15:21 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Sun, 11 Sep 2016 14:15:21 +0000 (UTC)
To: 23486@debbugs.gnu.org
Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Sep 11 16:15:17 2016
Return-path:
Envelope-to: geb-bug-gnu-emacs@m.gmane.org
Original-Received: from lists.gnu.org ([208.118.235.17])
by blaine.gmane.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1bj5XP-0006gk-Ei
for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Sep 2016 16:15:15 +0200
Original-Received: from localhost ([::1]:37810 helo=lists.gnu.org)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from )
id 1bj5XN-0000gX-GL
for geb-bug-gnu-emacs@m.gmane.org; Sun, 11 Sep 2016 10:15:13 -0400
Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58365)
by lists.gnu.org with esmtp (Exim 4.71)
(envelope-from ) id 1bj5XH-0000dv-I4
for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2016 10:15:08 -0400
Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
(envelope-from ) id 1bj5XD-0002vE-8F
for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2016 10:15:06 -0400
Original-Received: from debbugs.gnu.org ([208.118.235.43]:58823)
by eggs.gnu.org with esmtp (Exim 4.71)
(envelope-from ) id 1bj5XD-0002v8-3E
for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2016 10:15:03 -0400
Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
(envelope-from ) id 1bj5XC-0007oy-KX
for bug-gnu-emacs@gnu.org; Sun, 11 Sep 2016 10:15:02 -0400
X-Loop: help-debbugs@gnu.org
Resent-From: Philipp Stephani
Original-Sender: "Debbugs-submit"
Resent-CC: bug-gnu-emacs@gnu.org
Resent-Date: Sun, 11 Sep 2016 14:15:02 +0000
Resent-Message-ID:
Resent-Sender: help-debbugs@gnu.org
X-GNU-PR-Message: followup 23486
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords:
Original-Received: via spool by 23486-submit@debbugs.gnu.org id=B23486.147360324229964
(code B ref 23486); Sun, 11 Sep 2016 14:15:02 +0000
Original-Received: (at 23486) by debbugs.gnu.org; 11 Sep 2016 14:14:02 +0000
Original-Received: from localhost ([127.0.0.1]:56535 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from )
id 1bj5WE-0007nA-8a
for submit@debbugs.gnu.org; Sun, 11 Sep 2016 10:14:02 -0400
Original-Received: from mail-wm0-f41.google.com ([74.125.82.41]:35671)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from ) id 1bj5WC-0007mg-G9
for 23486@debbugs.gnu.org; Sun, 11 Sep 2016 10:14:01 -0400
Original-Received: by mail-wm0-f41.google.com with SMTP id a6so17043916wmc.0
for <23486@debbugs.gnu.org>; Sun, 11 Sep 2016 07:14:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
bh=XhdXcJo9J9Q/V/+FIxoN9pp9V7JbdY9GrX61kvTTVG8=;
b=vB/IYVcwbaF3y6TpkfhAdjeh83KS6cSmsxGHrU6zHjHJyLJCKtdcig6N6+6sX8+1Rh
yLXN+XD9MPV5hDh5bGW5QX2tw/zBcFX5bIdRY4DO0rjJzjXjjuoHWLdeKsyPaVaUlE4i
jHSNrE6LpQXyP4lG60eP8YqAobko0ECqbwDfQwZ/fybdAP8gpLxhRL3kLr8om/dgRl8A
6ZJ73L30gYU3BJuY+qJwdYwCQ4LD89ojOXRY1cJlt4YMgqnA20+DJaZu5mY4EJTp8MDU
HIayxbapYZaboMf10IzQgU6VgtdiGJXw0iOYBNrx+fDy3AKHmWIin+ZMskW6bcfoOrPZ
M/Lg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20130820;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to;
bh=XhdXcJo9J9Q/V/+FIxoN9pp9V7JbdY9GrX61kvTTVG8=;
b=HcXickfnO1ahZvzZkVBN3UxNo7Knrv2e7+YIXbiURelrNivhv06YZy39A/HYjN1Q9m
26lt4lBSqBvTzdQASIWS1OxWPn7i6INVImtOkBwsyeqpzgMW5Inq6AdTGRNuKYzgb76B
Hcq+viSXB37XPZKVR7OlZAb3CWz+Un3CsURgDj2tSAVdT2t/GuJJOs7QQo3N05g+Gdt4
Q3OoGYzLxXJh4V50g4xrYBzmMEfnHWhy7LXliFuy1NtJu/pvcVD0vt4xA2zY0hLsqr15
J0I6dihl+Gq7pG61Ve4j38XN1EU1jgfmDfjuN5bi/+SFpGIc7Z3YdpKCkArEjrZR52FH
Jinw==
X-Gm-Message-State: AE9vXwPppgqrHrGhwkX0nPzjAHI3CEWax4p5QdT1HJYNkeobtsOyf+DceEJBFC6VWiTCjRFjjDMyzMP6j2hLCw==
X-Received: by 10.28.74.217 with SMTP id n86mr7063663wmi.84.1473603234457;
Sun, 11 Sep 2016 07:13:54 -0700 (PDT)
In-Reply-To:
X-BeenThere: debbugs-submit@debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 208.118.235.43
X-BeenThere: bug-gnu-emacs@gnu.org
List-Id: "Bug reports for GNU Emacs,
the Swiss army knife of text editors"
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org
Original-Sender: "bug-gnu-emacs"
Xref: news.gmane.org gmane.emacs.bugs:123170
Archived-At:
--001a114e2e3a548999053c3bfde5
Content-Type: multipart/alternative; boundary=001a114e2e3a548995053c3bfde3
--001a114e2e3a548995053c3bfde3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Philipp Stephani schrieb am Mo., 9. Mai 2016 um
18:39 Uhr:
>
> emacs_env::make_function lacks the following features supported by
> `defun':
>
> 1. Functions with both optional and rest arguments.
> 2. Specification of parameter names.
> 3. Integration with `help-function-arglist'.
> 4. Specification of interactive forms.
> 5. Specification of declare forms.
> 6. Docstrings containing null or non-Unicode characters.
>
> (6) is probably rather unimportant. (5) is probably not implementable
> (would require wrapping `defun', not `lambda'). (1)=E2=80=93(4) are more=
severe
> and quite limit the usefulness of make_function right now; for a
> truly generic `defun'-like construct one currently has to eval a `defun'
> form wrapping another function.
>
> To solve (1)=E2=80=93(3), I'd propose replacing the "arity" arguments wit=
h a
> true arglist specification. This could either be at the C level, e.g.
>
> ptrdiff_t num_mandatory_args, char** mandatory_arg_names,
> ptrdiff_t num_optional_args, char** optional_arg_names,
> char* rest_arg_name
>
> or by requiring to pass a Lisp argument list.
>
I've attached a patch for fixing (1)-(4) and (6).
--001a114e2e3a548995053c3bfde3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
emacs_env::make_function lacks the following features supported by
`defun':
1. Functions with both optional and rest arguments.
2. Specification of parameter names.
3. Integration with `help-function-arglist'.
4. Specification of interactive forms.
5. Specification of declare forms.
6. Docstrings containing null or non-Unicode characters.
(6) is probably rather unimportant.=C2=A0 (5) is probably not implementable=
(would require wrapping `defun', not `lambda').=C2=A0 (1)=E2=80=93(=
4) are more severe
and quite limit the usefulness of make_function right now; for a
truly generic `defun'-like construct one currently has to eval a `defun=
'
form wrapping another function.
To solve (1)=E2=80=93(3), I'd propose replacing the "arity" a=
rguments with a
true arglist specification.=C2=A0 This could either be at the C level, e.g.=
=C2=A0 =C2=A0 ptrdiff_t num_mandatory_args, char** mandatory_arg_names,
=C2=A0 =C2=A0 ptrdiff_t num_optional_args, char** optional_arg_names,
=C2=A0 =C2=A0 char* rest_arg_name
or by requiring to pass a Lisp argument list.
I've attached a patch for fixing (1)-(=
4) and (6).=C2=A0
--001a114e2e3a548995053c3bfde3--
--001a114e2e3a548999053c3bfde5
Content-Type: application/octet-stream;
name="0001-Introduce-new-module-function-make_function_ext.patch"
Content-Disposition: attachment;
filename="0001-Introduce-new-module-function-make_function_ext.patch"
Content-Transfer-Encoding: base64
Content-ID: <1571998aa6f687a050a1>
X-Attachment-Id: 1571998aa6f687a050a1
RnJvbSA0N2ZmMDNkYTMwNWVjMTE4ZmI4NDFjYWM0YzdhYzk5NGIyZWViNTJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh
dGU6IFN1biwgMTEgU2VwIDIwMTYgMTY6MDk6MDEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBJbnRy
b2R1Y2UgbmV3IG1vZHVsZSBmdW5jdGlvbiBgbWFrZV9mdW5jdGlvbl9leHQnCgpUaGlzIGZ1bmN0
aW9uIGFsbG93cyBzcGVjaWZ5aW5nIGEgZnVsbCBhcmd1bWVudCBsaXN0IGFuZCBhbGwgb3RoZXIK
ZmVhdHVyZXMgb2YgYGxhbWJkYSc7IHNlZSBCdWcjMjM0ODYuCgoqIHNyYy9lbWFjcy1tb2R1bGUu
YyAobW9kdWxlX21ha2VfZnVuY3Rpb25fZXh0KTogTmV3IGZ1bmN0aW9uLgooaW5pdGlhbGl6ZV9l
bnZpcm9ubWVudCk6IFVzZSBuZXcgZnVuY3Rpb24uCgoqIG1vZHVsZXMvbW9kLXRlc3QvbW9kLXRl
c3QuYyAoRm1vZF90ZXN0X3N1bV8yKQooZW1hY3NfbW9kdWxlX2luaXQpOiBBZGQgYW4gZXhhbXBs
ZSBtb2R1bGUgZnVuY3Rpb24gdXNpbmcKbWFrZV9mdW5jdGlvbl9leHQuCgoqIG1vZHVsZXMvbW9k
LXRlc3QvdGVzdC5lbCAobW9kLXRlc3Qtc3VtLTItdGVzdCk6IEFkZCBhIHRlc3QgZm9yCm5ldyBl
eGFtcGxlIG1vZHVsZSBmdW5jdGlvbi4KLS0tCiBtb2R1bGVzL21vZC10ZXN0L21vZC10ZXN0LmMg
fCAyOSArKysrKysrKysrKysrKysrKysrKysKIG1vZHVsZXMvbW9kLXRlc3QvdGVzdC5lbCAgICB8
ICA5ICsrKysrKysKIHNyYy9lbWFjcy1tb2R1bGUuYyAgICAgICAgICB8IDYzICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2VtYWNzLW1vZHVsZS5oICAg
ICAgICAgIHwgMjIgKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0
aW9ucygrKQoKZGlmZiAtLWdpdCBhL21vZHVsZXMvbW9kLXRlc3QvbW9kLXRlc3QuYyBiL21vZHVs
ZXMvbW9kLXRlc3QvbW9kLXRlc3QuYwppbmRleCAzYzhhYjBmLi4xYzJlNWM2IDEwMDY0NAotLS0g
YS9tb2R1bGVzL21vZC10ZXN0L21vZC10ZXN0LmMKKysrIGIvbW9kdWxlcy9tb2QtdGVzdC9tb2Qt
dGVzdC5jCkBAIC01Miw2ICs1MiwyNiBAQCBGbW9kX3Rlc3Rfc3VtIChlbWFjc19lbnYgKmVudiwg
cHRyZGlmZl90IG5hcmdzLCBlbWFjc192YWx1ZSBhcmdzW10sIHZvaWQgKmRhdGEpCiAgIHJldHVy
biBlbnYtPm1ha2VfaW50ZWdlciAoZW52LCByKTsKIH0KIAorc3RhdGljIGVtYWNzX3ZhbHVlCitG
bW9kX3Rlc3Rfc3VtXzIgKGVtYWNzX2VudiAqZW52LCBwdHJkaWZmX3QgbmFyZ3MsIGVtYWNzX3Zh
bHVlICphcmdzLCB2b2lkICpkYXRhKQoreworICBpbnRtYXhfdCBhY2N1bXVsYXRvciA9IDA7CisK
KyAgZm9yIChwdHJkaWZmX3QgaSA9IDA7IGkgPCBuYXJnczsgKytpKQorICAgIHsKKyAgICAgIGlm
ICghIGVudi0+aXNfbm90X25pbCAoZW52LCBhcmdzW2ldKSkKKyAgICAgICAgY29udGludWU7Cisg
ICAgICBpbnRtYXhfdCBhcmcgPSBlbnYtPmV4dHJhY3RfaW50ZWdlciAoZW52LCBhcmdzW2ldKTsK
KyAgICAgIGlmIChfX2J1aWx0aW5fYWRkX292ZXJmbG93IChhY2N1bXVsYXRvciwgYXJnLCAmYWNj
dW11bGF0b3IpKQorICAgICAgICB7CisgICAgICAgICAgZW52LT5ub25fbG9jYWxfZXhpdF9zaWdu
YWwgKGVudiwgZW52LT5pbnRlcm4gKGVudiwgIm92ZXJmbG93LWVycm9yIiksIGVudi0+aW50ZXJu
IChlbnYsICJuaWwiKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAg
cmV0dXJuIGVudi0+bWFrZV9pbnRlZ2VyIChlbnYsIGFjY3VtdWxhdG9yKTsKK30KKwogCiAvKiBT
aWduYWwgJyhlcnJvciA1NikuICAqLwogc3RhdGljIGVtYWNzX3ZhbHVlCkBAIC0yNjMsNiArMjgz
LDE1IEBAIGVtYWNzX21vZHVsZV9pbml0IChzdHJ1Y3QgZW1hY3NfcnVudGltZSAqZXJ0KQogCiAj
dW5kZWYgREVGVU4KIAorICBlbWFjc192YWx1ZSBsaXN0X2FyZ3NbXSA9IHtlbnYtPmludGVybiAo
ZW52LCAiYSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmludGVybiAoZW52
LCAiJm9wdGlvbmFsIiksIGVudi0+aW50ZXJuIChlbnYsICJiIiksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVudi0+aW50ZXJuIChlbnYsICImcmVzdCIpLCBlbnYtPmludGVybiAoZW52
LCAicmVzdCIpfTsKKyAgYmluZF9mdW5jdGlvbiAoZW52LCAibW9kLXRlc3Qtc3VtLTIiLAorICAg
ICAgICAgICAgICAgICBlbnYtPm1ha2VfZnVuY3Rpb25fZXh0IChlbnYsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudi0+ZnVuY2FsbCAoZW52LCBlbnYtPmludGVy
biAoZW52LCAibGlzdCIpLCA1LCBsaXN0X2FyZ3MpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnYtPmludGVybiAoZW52LCAibmlsIiksIE5VTEwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZtb2RfdGVzdF9zdW1fMiwgTlVMTCkp
OworCiAgIHByb3ZpZGUgKGVudiwgIm1vZC10ZXN0Iik7CiAgIHJldHVybiAwOwogfQpkaWZmIC0t
Z2l0IGEvbW9kdWxlcy9tb2QtdGVzdC90ZXN0LmVsIGIvbW9kdWxlcy9tb2QtdGVzdC90ZXN0LmVs
CmluZGV4IDJkMzYzYzMuLjAzN2E5OTYgMTAwNjQ0Ci0tLSBhL21vZHVsZXMvbW9kLXRlc3QvdGVz
dC5lbAorKysgYi9tb2R1bGVzL21vZC10ZXN0L3Rlc3QuZWwKQEAgLTU2LDYgKzU2LDE1IEBACiAg
IChzaG91bGQtZXJyb3IgKG1vZC10ZXN0LXN1bSAtMSBtb3N0LW5lZ2F0aXZlLWZpeG51bSkKICAg
ICAgICAgICAgICAgICA6dHlwZSAnb3ZlcmZsb3ctZXJyb3IpKQogCisoZXJ0LWRlZnRlc3QgbW9k
LXRlc3Qtc3VtLTItdGVzdCAoKQorICAoc2hvdWxkLWVycm9yIChtb2QtdGVzdC1zdW0tMikgOnR5
cGUgJ3dyb25nLW51bWJlci1vZi1hcmd1bWVudHMpCisgIChzaG91bGQgKGVxdWFsIChtb2QtdGVz
dC1zdW0tMiAxKSAxKSkKKyAgKHNob3VsZCAoZXF1YWwgKG1vZC10ZXN0LXN1bS0yIDEgMikgMykp
CisgIChzaG91bGQgKGVxdWFsIChtb2QtdGVzdC1zdW0tMiAxIDIgMykgNikpCisgIChzaG91bGQg
KGVxdWFsIChtb2QtdGVzdC1zdW0tMiAxIDIgMyA0KSAxMCkpCisgIChzaG91bGQtZXJyb3IgKG1v
ZC10ZXN0LXN1bS0yICdmb28pIDp0eXBlICd3cm9uZy10eXBlLWFyZ3VtZW50KQorICAoc2hvdWxk
LWVycm9yIChtb2QtdGVzdC1zdW0tMiBtb3N0LXBvc2l0aXZlLWZpeG51bSAxKSA6dHlwZSAnb3Zl
cmZsb3ctZXJyb3IpKQorCiAoZXJ0LWRlZnRlc3QgbW9kLXRlc3Qtc3VtLWRvY3N0cmluZyAoKQog
ICAoc2hvdWxkIChzdHJpbmc9IChkb2N1bWVudGF0aW9uICdtb2QtdGVzdC1zdW0pICJSZXR1cm4g
QSArIEIiKSkpCiAKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy1tb2R1bGUuYyBiL3NyYy9lbWFjcy1t
b2R1bGUuYwppbmRleCA3MjRkMjRhLi4yNWZjZGQyIDEwMDY0NAotLS0gYS9zcmMvZW1hY3MtbW9k
dWxlLmMKKysrIGIvc3JjL2VtYWNzLW1vZHVsZS5jCkBAIC00MTUsNiArNDE1LDY4IEBAIG1vZHVs
ZV9tYWtlX2Z1bmN0aW9uIChlbWFjc19lbnYgKmVudiwgcHRyZGlmZl90IG1pbl9hcml0eSwgcHRy
ZGlmZl90IG1heF9hcml0eSwKIH0KIAogc3RhdGljIGVtYWNzX3ZhbHVlCittb2R1bGVfbWFrZV9m
dW5jdGlvbl9leHQgKGVtYWNzX2VudiAqZW52LCBlbWFjc192YWx1ZSBhcmdsaXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbWFjc192YWx1ZSBkb2NzdHJpbmcsIGVtYWNzX3ZhbHVlICpp
bnRlcmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZW1hY3Nfc3ViciBmdW5jdGlv
biwgdm9pZCAqZGF0YSkKK3sKKyAgTU9EVUxFX0ZVTkNUSU9OX0JFR0lOIChtb2R1bGVfbmlsKTsK
KworICBMaXNwX09iamVjdCBhcmdsaXN0X29iaiA9IHZhbHVlX3RvX2xpc3AgKGFyZ2xpc3QpOwor
ICBDSEVDS19MSVNUIChhcmdsaXN0X29iaik7CisKKyAgTGlzcF9PYmplY3QgZG9jc3RyaW5nX29i
aiA9IHZhbHVlX3RvX2xpc3AgKGRvY3N0cmluZyk7CisgIGlmICghIE5JTFAgKGRvY3N0cmluZ19v
YmopKQorICAgIC8qIEV4cGxpY2l0bHkgY2hlY2sgd2hldGhlciB0aGUgZG9jc3RyaW5nIGlzIGlu
ZGVlZCBhIHN0cmluZywgc28gdGhhdAorICAgICAgIGNhbGxlcnMgY2FuJ3Qgc25lYWsgaW4gYm9k
eSBmb3Jtcy4gICovCisgICAgQ0hFQ0tfU1RSSU5HIChkb2NzdHJpbmdfb2JqKTsKKworICAvKiBC
dWlsZCB1cCBsaXN0cyB0aGF0IGZvcndhcmQgdGhlIGFyZ3VtZW50cyB0byBpbnRlcm5hbC0tbW9k
dWxlLWNhbGwuICAqLworICBMaXNwX09iamVjdCBub3JtYWxfYXJncyA9IFFuaWw7CisgIExpc3Bf
T2JqZWN0IHJlc3RfYXJncyA9IFFuaWw7CisgIGZvciAoTGlzcF9PYmplY3QgaXQgPSBhcmdsaXN0
X29iajsgISBOSUxQIChpdCk7IGl0ID0gQ0RSIChpdCkpCisgICAgeworICAgICAgLyogV2UgZG9u
J3QgY2hlY2sgZm9yIGludmFsaWQgcGFyYW1ldGVycyBoZXJlLiAgZnVuY2FsbF9sYW1iZGEgd2ls
bCBjaGVjay4gICovCisgICAgICBMaXNwX09iamVjdCBhcmcgPSBDQVIgKGl0KTsKKyAgICAgIGlm
IChFUSAoYXJnLCBRYW5kX29wdGlvbmFsKSkKKyAgICAgICAgY29udGludWU7CisgICAgICBpZiAo
RVEgKGFyZywgUWFuZF9yZXN0KSkKKyAgICAgICAgeworICAgICAgICAgIHJlc3RfYXJncyA9IEZj
b25zIChDQVIgKENEUiAoaXQpKSwgcmVzdF9hcmdzKTsKKyAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgbm9ybWFsX2FyZ3MgPSBGY29ucyAoYXJnLCBub3JtYWxfYXJncyk7CisgICAg
fQorICBub3JtYWxfYXJncyA9IEZucmV2ZXJzZSAobm9ybWFsX2FyZ3MpOworCisgIC8qIEZJWE1F
OiBUaGlzIHNob3VsZCBiZSBmcmVlZCB3aGVuIGVudm9iaiBpcyBHQydkLiAgKi8KKyAgc3RydWN0
IG1vZHVsZV9mdW5fZW52ICplbnZwdHIgPSB4bWFsbG9jIChzaXplb2YgKmVudnB0cik7CisgIC8q
IFRoZSBhY3R1YWwgYXJndW1lbnQgY291bnQgY2hlY2sgaXMgZG9uZSBieSBmdW5jYWxsX2xhbWJk
YS4gICovCisgIGVudnB0ci0+bWluX2FyaXR5ID0gMDsKKyAgZW52cHRyLT5tYXhfYXJpdHkgPSBl
bWFjc192YXJpYWRpY19mdW5jdGlvbjsKKyAgZW52cHRyLT5zdWJyID0gZnVuY3Rpb247CisgIGVu
dnB0ci0+ZGF0YSA9IGRhdGE7CisgIExpc3BfT2JqZWN0IGVudm9iaiA9IG1ha2Vfc2F2ZV9wdHIg
KGVudnB0cik7CisKKyAgLyogQnVpbGQgdXAgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24uICBJdCBp
cyBhIG5vcm1hbCBsYW1iZGEgZm9ybS4gICovCisgIExpc3BfT2JqZWN0IHJldCA9IENBTExOIChG
YXBwZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdDMgKFFhcHBseSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0MiAoUWZ1bmN0aW9uLCBRaW50ZXJuYWxf
X21vZHVsZV9jYWxsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZvYmop
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsX2FyZ3MsIHJlc3RfYXJncyk7Cisg
IHJldCA9IGxpc3QxIChyZXQpOworCisgIGlmIChpbnRlcmFjdGl2ZSAhPSBOVUxMKQorICAgIHJl
dCA9IEZjb25zIChsaXN0MiAoUWludGVyYWN0aXZlLCB2YWx1ZV90b19saXNwICgqaW50ZXJhY3Rp
dmUpKSwgcmV0KTsKKworICBpZiAoISBOSUxQIChkb2NzdHJpbmdfb2JqKSkKKyAgICByZXQgPSBG
Y29ucyAoZG9jc3RyaW5nX29iaiwgcmV0KTsKKworICByZXQgPSBGY29ucyAoUWxhbWJkYSwgRmNv
bnMgKGFyZ2xpc3Rfb2JqLCByZXQpKTsKKworICByZXR1cm4gbGlzcF90b192YWx1ZSAocmV0KTsK
K30KKworc3RhdGljIGVtYWNzX3ZhbHVlCiBtb2R1bGVfZnVuY2FsbCAoZW1hY3NfZW52ICplbnYs
IGVtYWNzX3ZhbHVlIGZ1biwgcHRyZGlmZl90IG5hcmdzLAogCQllbWFjc192YWx1ZSBhcmdzW10p
CiB7CkBAIC05MTYsNiArOTc4LDcgQEAgaW5pdGlhbGl6ZV9lbnZpcm9ubWVudCAoZW1hY3NfZW52
ICplbnYsIHN0cnVjdCBlbWFjc19lbnZfcHJpdmF0ZSAqcHJpdikKICAgZW52LT5ub25fbG9jYWxf
ZXhpdF9zaWduYWwgPSBtb2R1bGVfbm9uX2xvY2FsX2V4aXRfc2lnbmFsOwogICBlbnYtPm5vbl9s
b2NhbF9leGl0X3Rocm93ID0gbW9kdWxlX25vbl9sb2NhbF9leGl0X3Rocm93OwogICBlbnYtPm1h
a2VfZnVuY3Rpb24gPSBtb2R1bGVfbWFrZV9mdW5jdGlvbjsKKyAgZW52LT5tYWtlX2Z1bmN0aW9u
X2V4dCA9IG1vZHVsZV9tYWtlX2Z1bmN0aW9uX2V4dDsKICAgZW52LT5mdW5jYWxsID0gbW9kdWxl
X2Z1bmNhbGw7CiAgIGVudi0+aW50ZXJuID0gbW9kdWxlX2ludGVybjsKICAgZW52LT50eXBlX29m
ID0gbW9kdWxlX3R5cGVfb2Y7CmRpZmYgLS1naXQgYS9zcmMvZW1hY3MtbW9kdWxlLmggYi9zcmMv
ZW1hY3MtbW9kdWxlLmgKaW5kZXggYWU3MzExYi4uZGE2YTEwMyAxMDA2NDQKLS0tIGEvc3JjL2Vt
YWNzLW1vZHVsZS5oCisrKyBiL3NyYy9lbWFjcy1tb2R1bGUuaApAQCAtMTg1LDYgKzE4NSwyOCBA
QCBzdHJ1Y3QgZW1hY3NfZW52XzI1CiAJCSAgIGVtYWNzX3ZhbHVlIHZhbCk7CiAKICAgcHRyZGlm
Zl90ICgqdmVjX3NpemUpIChlbWFjc19lbnYgKmVudiwgZW1hY3NfdmFsdWUgdmVjKTsKKworICAv
KiBWYXJpYW50IG9mIG1ha2VfZnVuY3Rpb24gdGhhdCBhbGxvd3Mgc3BlY2lmeWluZyBhIGZ1bGwg
YXJndW1lbnQgbGlzdCwKKyAgICAgZG9jdW1lbnRhdGlvbiBzdHJpbmcsIGFuZCBpbnRlcmFjdGl2
ZSBmb3JtLiAgVGhpcyBhbGxvd3MgZGVmaW5pbmcKKyAgICAgZnVuY3Rpb25zIHRoYXQgYXJlIGlt
cG9zc2libGUgdG8gZGVmaW5lIHdpdGggbWFrZV9mdW5jdGlvbiwgc3VjaCBhcworICAgICBmdW5j
dGlvbnMgd2l0aCBib3RoIG9wdGlvbmFsIGFuZCByZXN0IGFyZ3VtZW50cy4gIEl0IGFsc28gaW1w
cm92ZXMgaGVscAorICAgICBkaXNwbGF5IGZvciB0aGUgZnVuY3Rpb24sIGFzIHRoZSBhcmd1bWVu
dHMgYXJlIG5hbWVkLiAgQVJHTElTVCBtdXN0IGJlIGEKKyAgICAgbGlzdCBzcGVjaWZ5aW5nIHRo
ZSBmdW5jdGlvbiBwYXJhbWV0ZXJzLCBhcyB3aXRoIGBsYW1iZGEnIG9yIGBkZWZ1bicuCisgICAg
IERPQ1NUUklORyBtdXN0IGJlIGVpdGhlciBuaWwgKGZvciBhbiB1bmRvY3VtZW50ZWQgZnVuY3Rp
b24pIG9yIGEgc3RyaW5nLgorICAgICBJTlRFUkFDVElWRSBtdXN0IGJlIGVpdGhlciBOVUxMIChm
b3IgYSBub24taW50ZXJhY3RpdmUgZnVuY3Rpb24pIG9yIGEKKyAgICAgcG9pbnRlciB0byBhIExp
c3Agb2JqZWN0IHRvIGJlIHVzZWQgYXMgYXJndW1lbnQgdG8gYGludGVyYWN0aXZlJywgd2hpY2gK
KyAgICAgc2VlLiAgV2hlbiBjYWxsaW5nIHRoZSBmdW5jdGlvbiwgaXQgaXMgdW5zcGVjaWZpZWQg
d2hldGhlciBvcHRpb25hbAorICAgICBhcmd1bWVudHMgYXJlIHBhc3NlZCBhcyBuaWwgb3Igbm90
IHBhc3NlZCBhdCBhbGwuICAqLworICBlbWFjc192YWx1ZSAoKm1ha2VfZnVuY3Rpb25fZXh0KSAo
ZW1hY3NfZW52ICplbnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWFj
c192YWx1ZSBhcmdsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1h
Y3NfdmFsdWUgZG9jc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW1hY3NfdmFsdWUgKmludGVyYWN0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZW1hY3NfdmFsdWUgKCpmdW5jdGlvbikgKGVtYWNzX2VudiAqZW52LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRp
ZmZfdCBuYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbWFjc192YWx1ZSAqYXJncywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU1BQ1NfTk9FWENFUFQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKTsKIH07CiAKIC8qIEV2ZXJ5
IG1vZHVsZSBzaG91bGQgZGVmaW5lIGEgZnVuY3Rpb24gYXMgZm9sbG93cy4gICovCi0tIAoyLjku
MAoK
--001a114e2e3a548999053c3bfde5--