From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Freja Nordsiek Newsgroups: gmane.lisp.guile.devel Subject: [PATCH] Fix bug #24816: open-string-output-port extraction thunk does not truncate string port as expected by R6RS in Guile 2.1.7 Date: Tue, 21 Feb 2017 20:36:20 +0100 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=f403045f530aa4aace05490f7ee0 X-Trace: blaine.gmane.org 1487705798 12956 195.159.176.226 (21 Feb 2017 19:36:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 21 Feb 2017 19:36:38 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Feb 21 20:36:32 2017 Return-path: Envelope-to: guile-devel@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 1cgGEi-0002me-If for guile-devel@m.gmane.org; Tue, 21 Feb 2017 20:36:32 +0100 Original-Received: from localhost ([::1]:48110 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cgGEl-000631-1o for guile-devel@m.gmane.org; Tue, 21 Feb 2017 14:36:35 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47182) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cgGEb-00062h-V5 for guile-devel@gnu.org; Tue, 21 Feb 2017 14:36:27 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cgGEa-0005pw-NB for guile-devel@gnu.org; Tue, 21 Feb 2017 14:36:26 -0500 Original-Received: from mail-wr0-x233.google.com ([2a00:1450:400c:c0c::233]:36298) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cgGEa-0005pi-DR for guile-devel@gnu.org; Tue, 21 Feb 2017 14:36:24 -0500 Original-Received: by mail-wr0-x233.google.com with SMTP id 89so84024747wrr.3 for ; Tue, 21 Feb 2017 11:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Zaa/YblpF+HU8mkxAiYmlP0wYkWanME1xAxviP54Xp4=; b=NftlhGAxaLw8C0ooIQdA2WT4OUtrRRBovAYdPRELZpbU5JU8QOJpTuA5i3O8QWSkVt L759/i/GygfPzuhZpbDJWbbyqSJ5bOqV8zln2Y1c9PCa6fAOkmKHc73mxWWB9h20byu8 OsjJtc2giA62+xn82ayiBVMETviC7voxMVwYL1fT+D1CfwdB9K5wreJFy6E/7ulwTjcw 7TQu8iboqZyktJjnV2SpjGW87olH6QoVkjoT26Q8xoSiYzdQMvkrEnKHTtKSD14dQeYf DaPVmLj6D+oLa+cQH1tU/sS2j9A5YzvANuCbvlgz1+JzVBd/TqLMAU+jfyXvp6vY+YRD 0rrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Zaa/YblpF+HU8mkxAiYmlP0wYkWanME1xAxviP54Xp4=; b=KAX2Rn8HLeC/TggeIfWMyKz4gF7wbnml82x0izSduofRHmmw18RCq4Zxa8I9TZlrLk +mvQQJBBxf1Is2udPcEEG4Png38JvP6Em3Fy6rL+v04hqK1yqax3+9sMNiy0dojQk76D ucrGL02cGDl3vYGMK81/xDy5N+L8kOaE8mKo7Em3/j8aNITWFvIcHU/7vvKzKP+FgC7e Ym9nTchNrmBIIiG5iAg7N/GZ0NEu+XBLN6Szx4vH2Zxm5A3PVeRdEyLVNxWZNsRv5gxK E8T4t8rxlYQRUOxnHRiV/8JTJo7MwdecpEuwd+J65m5LJNzRuiIO8nxgsC/1eZwkRfr9 nGLQ== X-Gm-Message-State: AMke39kOprAeKD3xOpiEq9vsUKRpeDM/z1BzeQ3gB1tsRsPfxksxA3P+9d5Fmeiy3ILOernI4GrnEAjzxVXBdQ== X-Received: by 10.223.141.229 with SMTP id o92mr22656622wrb.22.1487705781562; Tue, 21 Feb 2017 11:36:21 -0800 (PST) Original-Received: by 10.28.143.142 with HTTP; Tue, 21 Feb 2017 11:36:20 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:400c:c0c::233 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.org gmane.lisp.guile.devel:18935 Archived-At: --f403045f530aa4aace05490f7ee0 Content-Type: text/plain; charset=UTF-8 Patch for bug #24816: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24816 Patch is for Guile 2.1.7.1 (problem dates back at least as far as 2.1.4). Problem is that the extraction thunk returned by open-string-output-port in module "rnrs io ports" does not truncate the string port as expected by R6RS (page 39 of the library standard document). The open-string-output-port procedure (module/rnrs/io/ports.scm) is changed to make the extraction thunk call truncate-file on the string port after extracting its contents. In order to make that work, string ports were made truncatable (libguile/strports.c). A test (test-suite/tests/r6rs-ports.scm) was added to make sure that the string port is truncated by the thunk. Freja Nordsiek --f403045f530aa4aace05490f7ee0 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Fixed-bug-where-string-reading-thunk-provided-by-R6R.patch" Content-Disposition: attachment; filename="0001-Fixed-bug-where-string-reading-thunk-provided-by-R6R.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_izfxiuke0 RnJvbSBiNTY0ZWZlYmQ1MjY4ZjM5M2ZhMjcwNDU4N2VlZDUzMGFmZjE0Y2I1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVqYSBOb3Jkc2llayA8Zm5vcmRzaWVAZ21haWwuY29tPgpE YXRlOiBUdWUsIDIxIEZlYiAyMDE3IDIwOjIxOjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gRml4 ZWQgYnVnIHdoZXJlIHN0cmluZyByZWFkaW5nIHRodW5rIHByb3ZpZGVkIGJ5IFI2UlMKIG9wZW4t c3RyaW5nLW91dHB1dC1wb3J0IGRvZXMgbm90IHRydW5jYXRlIHRoZSBzdHJpbmcgcG9ydC4KCi0t LQogbGliZ3VpbGUvc3RycG9ydHMuYyAgICAgICAgICAgICAgfCAyMyArKysrKysrKysrKysrKysr KysrKysrKwogbW9kdWxlL3JucnMvaW8vcG9ydHMuc2NtICAgICAgICAgfCAgNyArKysrKy0tCiB0 ZXN0LXN1aXRlL3Rlc3RzL3I2cnMtcG9ydHMudGVzdCB8IDE2ICsrKysrKysrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saWJndWlsZS9zdHJwb3J0cy5jIGIvbGliZ3VpbGUvc3RycG9ydHMuYwppbmRleCBiMTJk NjY5Li41Zjk1MTlkIDEwMDY0NAotLS0gYS9saWJndWlsZS9zdHJwb3J0cy5jCisrKyBiL2xpYmd1 aWxlL3N0cnBvcnRzLmMKQEAgLTEzOSw2ICsxMzksMjggQEAgc3RyaW5nX3BvcnRfc2VlayAoU0NN IHBvcnQsIHNjbV90X29mZiBvZmZzZXQsIGludCB3aGVuY2UpCiAvKiBUaGUgaW5pdGlhbCBzaXpl IGluIGJ5dGVzIG9mIGEgc3RyaW5nIHBvcnQncyBidWZmZXIuICAqLwogI2RlZmluZSBJTklUSUFM X0JVRkZFUl9TSVpFIDEyOAogCisKK3N0YXRpYyB2b2lkCitzdHJpbmdfcG9ydF90cnVuY2F0ZSAo U0NNIHBvcnQsIHNjbV90X29mZiBsZW5ndGgpCisjZGVmaW5lIEZVTkNfTkFNRSAic3RyaW5nX3Bv cnRfdHJ1bmNhdGUiCit7CisgIHN0cnVjdCBzdHJpbmdfcG9ydCAqc3RyZWFtID0gKHZvaWQgKikg U0NNX1NUUkVBTSAocG9ydCk7CisKKyAgaWYgKGxlbmd0aCA8IDApCisgICAgc2NtX3dyb25nX3R5 cGVfYXJnX21zZyAoRlVOQ19OQU1FLCAwLCBwb3J0LCAiaW52YWxpZCBgbGVuZ3RoJyBwYXJhbWV0 ZXIiKTsKKyAgZWxzZSBpZiAobGVuZ3RoID49IHN0cmVhbS0+bGVuKQorICAgIHJldHVybjsKKwor ICAvKiBBbGxvY2F0ZSBhIG5ldyBidWZmZXIgdG8gd3JpdGUgdG8uICAqLworICBzdHJlYW0tPmJ5 dGV2ZWN0b3IgPSBzY21fY19tYWtlX2J5dGV2ZWN0b3IgKG1heCAoSU5JVElBTF9CVUZGRVJfU0la RSwgbGVuZ3RoKSk7CisKKyAgc3RyZWFtLT5sZW4gPSBsZW5ndGg7CisgIHN0cmVhbS0+cG9zID0g bWluIChzdHJlYW0tPnBvcywgbGVuZ3RoKTsKK30KKyN1bmRlZiBGVU5DX05BTUUKKworCisKIC8q IFJldHVybiBhIG5ldyBzdHJpbmcgcG9ydCB3aXRoIE1PREVTLiAgSWYgU1RSIGlzICNmLCBhIG5l dyBiYWNraW5nCiAgICBidWZmZXIgaXMgYWxsb2NhdGVkOyBvdGhlcndpc2UgU1RSIG11c3QgYmUg YSBzdHJpbmcgYW5kIGEgY29weSBvZiBpdAogICAgc2VydmVzIGFzIHRoZSBidWZmZXIgZm9yIHRo ZSBuZXcgcG9ydC4gICovCkBAIC0zNzIsNiArMzk0LDcgQEAgc2NtX21ha2Vfc3RyaW5nX3BvcnRf dHlwZSAoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmluZ19wb3J0X3JlYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyaW5nX3BvcnRfd3JpdGUpOwogICBzY21fc2V0X3BvcnRfc2VlayAocHRvYiwgc3Ry aW5nX3BvcnRfc2Vlayk7CisgIHNjbV9zZXRfcG9ydF90cnVuY2F0ZSAocHRvYiwgc3RyaW5nX3Bv cnRfdHJ1bmNhdGUpOwogCiAgIHJldHVybiBwdG9iOwogfQpkaWZmIC0tZ2l0IGEvbW9kdWxlL3Ju cnMvaW8vcG9ydHMuc2NtIGIvbW9kdWxlL3JucnMvaW8vcG9ydHMuc2NtCmluZGV4IGU5MjRhZDgu LjVkMWIxNDUgMTAwNjQ0Ci0tLSBhL21vZHVsZS9ybnJzL2lvL3BvcnRzLnNjbQorKysgYi9tb2R1 bGUvcm5ycy9pby9wb3J0cy5zY20KQEAgLTM4NCwxMCArMzg0LDEzIEBAIHJlYWQgZnJvbS93cml0 dGVuIHRvIGluIEB2YXJ7cG9ydH0uIgogCiAoZGVmaW5lIChvcGVuLXN0cmluZy1vdXRwdXQtcG9y dCkKICAgIlJldHVybiB0d28gdmFsdWVzOiBhbiBvdXRwdXQgcG9ydCB0aGF0IHdpbGwgY29sbGVj dCBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gaXQKLWFzIGEgc3RyaW5nLCBhbmQgYSB0aHVuayB0byBy ZXRyaWV2ZSB0aGUgY2hhcmFjdGVycyBhc3NvY2lhdGVkIHdpdGggdGhhdCBwb3J0LiIKK2FzIGEg c3RyaW5nLCBhbmQgYSB0aHVuayB0byByZXRyaWV2ZSB0aGUgY2hhcmFjdGVycyBhc3NvY2lhdGVk IHdpdGggdGhhdCBwb3J0CithbmQgdGhlbiB0cnVuY2F0ZXMgdGhlIHN0cmluZyBwb3J0LiIKICAg KGxldCAoKHBvcnQgKG9wZW4tb3V0cHV0LXN0cmluZykpKQogICAgICh2YWx1ZXMgcG9ydAotICAg ICAgICAgICAgKGxhbWJkYSAoKSAoZ2V0LW91dHB1dC1zdHJpbmcgcG9ydCkpKSkpCisgICAgICAg ICAgICAobGFtYmRhICgpIChsZXQgKChvdXQgKGdldC1vdXRwdXQtc3RyaW5nIHBvcnQpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAodHJ1bmNhdGUtZmlsZSBwb3J0IDApCisgICAgICAgICAg ICAgICAgICAgICAgICAgb3V0KSkpKSkKIAogKGRlZmluZSogKG9wZW4tZmlsZS1vdXRwdXQtcG9y dCBmaWxlbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjOm9wdGlvbmFsCmRp ZmYgLS1naXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3I2cnMtcG9ydHMudGVzdCBiL3Rlc3Qtc3VpdGUv dGVzdHMvcjZycy1wb3J0cy50ZXN0CmluZGV4IDk0ZDlmYzAuLjNhYjc5YmMgMTAwNjQ0Ci0tLSBh L3Rlc3Qtc3VpdGUvdGVzdHMvcjZycy1wb3J0cy50ZXN0CisrKyBiL3Rlc3Qtc3VpdGUvdGVzdHMv cjZycy1wb3J0cy50ZXN0CkBAIC04MDksNiArODA5LDIyIEBAIG5vdCBgc2V0LXBvcnQtcG9zaXRp b24hJyIKICAgICAgICAgICAgICAoYnl0ZXZlY3Rvcj0/IChnZXQtY29udGVudCkgc291cmNlKQog ICAgICAgICAgICAgIChieXRldmVjdG9yPT8gKGdldC1jb250ZW50KSAobWFrZS1ieXRldmVjdG9y IDApKSkpKSkKIAorICAocGFzcy1pZiAib3Blbi1zdHJpbmctb3V0cHV0LXBvcnQgd3JpdGUgYW5k IHRydW5jYXRlZCByZWFkYmFjayIKKyAgICAobGV0LXZhbHVlcyAoKChwb3J0IGdldC1jb250ZW50 KQorICAgICAgICAgICAgICAgICAgKG9wZW4tc3RyaW5nLW91dHB1dC1wb3J0KSkpCisgICAgICAo bGV0ICgoc291cmNlICJIZWxsbyBQb3J0ISIpKQorICAgICAgICAocHV0LXN0cmluZyBwb3J0IHNv dXJjZSkKKyAgICAgICAgKGxldCogKChyZWFkLWdvcy1iZWZvcmUxIChnZXQtb3V0cHV0LXN0cmlu ZyBwb3J0KSkKKyAgICAgICAgICAgICAgIChyZWFkLWdvcy1iZWZvcmUyIChnZXQtb3V0cHV0LXN0 cmluZyBwb3J0KSkKKyAgICAgICAgICAgICAgIChyZWFkLXByb3ZpZGVkMSAoZ2V0LWNvbnRlbnQp KQorICAgICAgICAgICAgICAgKHJlYWQtZ29zLWFmdGVyIChnZXQtb3V0cHV0LXN0cmluZyBwb3J0 KSkKKyAgICAgICAgICAgICAgIChyZWFkLXByb3ZpZGVkMiAoZ2V0LWNvbnRlbnQpKSkKKyAgICAg ICAgICAoYW5kIChzdHJpbmc9PyBzb3VyY2UgcmVhZC1nb3MtYmVmb3JlMSkKKyAgICAgICAgICAg ICAgIChzdHJpbmc9PyBzb3VyY2UgcmVhZC1nb3MtYmVmb3JlMikKKyAgICAgICAgICAgICAgIChz dHJpbmc9PyBzb3VyY2UgcmVhZC1wcm92aWRlZDEpCisgICAgICAgICAgICAgICAoc3RyaW5nLW51 bGw/IHJlYWQtZ29zLWFmdGVyKQorICAgICAgICAgICAgICAgKHN0cmluZy1udWxsPyByZWFkLXBy b3ZpZGVkMikpKSkpKQorCiAgIChwYXNzLWlmICJtYWtlLWN1c3RvbS1iaW5hcnktb3V0cHV0LXBv cnQiCiAgICAgKGxldCAoKHBvcnQgKG1ha2UtY3VzdG9tLWJpbmFyeS1vdXRwdXQtcG9ydCAiY2Jv cCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1i ZGEgKHggeSB6KSAwKQotLSAKMi43LjQKCg== --f403045f530aa4aace05490f7ee0--