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


Philip= p Stephani <p.stephani2@gmail.c= om> schrieb am Mo., 9. Mai 2016 um 18:39=C2=A0Uhr:

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