From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: bug#23750: 25.0.95; bug in url-retrieve or json.el Date: Wed, 28 Dec 2016 20:45:47 +0200 Message-ID: <83k2ajvqn8.fsf@gnu.org> References: <6d0c8c2e-8428-2fdb-0d6e-899f7b9d7ffd@nifty.com> <8053af81-80e1-a24a-f649-8ffc86963ed5@nifty.com> <0cc7fab4-9a2c-6a8d-def7-36bd50317ca3@yandex.ru> <7f9a799f-de88-fd78-0cdc-dac0928f1503@nifty.com> <308bb78f-8be3-092d-d877-e129d340242b@nifty.com> <4dc615e7-ec73-60a5-426e-0d6986f15d76@yandex.ru> <0cb406fb-ffc4-a4ad-557a-2cacc99b8e75@nifty.com> <86ccb4af-5719-c017-26bb-fc06b4c904d2@yandex.ru> <83r35uxkr5.fsf@gnu.org> <4e12d4ad-cd6b-3087-5d7c-449d4c1886e2@yandex.ru> <83lgw1q9uu.fsf@gnu.org> <83eg1tq8is.fsf@gnu.org> <787e5206-53e0-752f-a339-4608d2f7ad39@yandex.ru> <8360n5q6j4.fsf@gnu.org> <83r35sq02k.fsf@gnu.org> <83mvffvrh7.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1482951220 11051 195.159.176.226 (28 Dec 2016 18:53:40 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 28 Dec 2016 18:53:40 +0000 (UTC) Cc: larsi@gnus.org, dgutov@yandex.ru, kentaro.nakazawa@nifty.com, emacs-devel@gnu.org To: Philipp Stephani Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 28 19:53:32 2016 Return-path: Envelope-to: ged-emacs-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 1cMJLl-0000a3-3a for ged-emacs-devel@m.gmane.org; Wed, 28 Dec 2016 19:53:21 +0100 Original-Received: from localhost ([::1]:60552 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMJLp-00052T-S8 for ged-emacs-devel@m.gmane.org; Wed, 28 Dec 2016 13:53:25 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44576) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMJEp-0000OY-TX for emacs-devel@gnu.org; Wed, 28 Dec 2016 13:46:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cMJEm-00036Z-OR for emacs-devel@gnu.org; Wed, 28 Dec 2016 13:46:11 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43655) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMJEZ-00032r-Lb; Wed, 28 Dec 2016 13:45:55 -0500 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4243 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cMJEY-00070M-Pz; Wed, 28 Dec 2016 13:45:55 -0500 In-reply-to: (message from Philipp Stephani on Wed, 28 Dec 2016 18:35:58 +0000) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:210925 Archived-At: > From: Philipp Stephani > Date: Wed, 28 Dec 2016 18:35:58 +0000 > Cc: larsi@gnus.org, emacs-devel@gnu.org, kentaro.nakazawa@nifty.com, > dgutov@yandex.ru > > How do you see that process-send-string special-cases unibyte strings? > > The send_process function has two branches, one for unibyte, one for multibyte. That's not special-casing. That's polymorphism, if you like: Emacs silently does TRT for both. > We are miscommunicating. string-to-unibyte can only meaningfully be > called on a pure-ASCII string, and for pure-ASCII strings 'length' > will count bytes. So I see no need for 'byte-array-length' if its > implementation is as you indicated. > > That depends on how you want to represent byte arrays/octet streams in Emacs. If you want to represent > them using unibyte strings, then you indeed only need `length'. But some earlier messages sounded like you > wanted to represent byte arrays either using unibyte strings or byte-only multibyte strings. In that case > `string-to-unibyte' is necessary. No, it's not. Multibyte strings that include raw bytes are converted to single bytes when you encode them. > Once you encoded the string, why do you need anything except calling > process-send-string? > > The byte size should be added as a Content-length HTTP header. If url-request-data is a unibyte string, that's > not a problem (except for the newline conversion behavior in send_string), you can just use `length'. But if it's > a multibyte string, you need to encode first to find the byte length. I thought we've just agreed that multibyte strings there should not be allowed.