From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Antipov Newsgroups: gmane.emacs.bugs Subject: bug#16448: 24.3; Messages from (error "...") with UTF-8 chars are printed wrongly in Emacs Lisp scripts Date: Wed, 15 Jan 2014 08:02:49 +0400 Message-ID: <52D60869.1000206@yandex.ru> References: <20140115111009.dc0d435fa9991c3e15816f84@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1389758593 19819 80.91.229.3 (15 Jan 2014 04:03:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 15 Jan 2014 04:03:13 +0000 (UTC) Cc: 16448@debbugs.gnu.org To: Sergey Tselikh Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jan 15 05:03:20 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W3HhG-0000kP-N3 for geb-bug-gnu-emacs@m.gmane.org; Wed, 15 Jan 2014 05:03:18 +0100 Original-Received: from localhost ([::1]:51959 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3HhG-00031N-7Y for geb-bug-gnu-emacs@m.gmane.org; Tue, 14 Jan 2014 23:03:18 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37941) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3Hh7-00031H-L2 for bug-gnu-emacs@gnu.org; Tue, 14 Jan 2014 23:03:16 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W3Hh0-0003va-Lc for bug-gnu-emacs@gnu.org; Tue, 14 Jan 2014 23:03:09 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3Hh0-0003vU-Ev for bug-gnu-emacs@gnu.org; Tue, 14 Jan 2014 23:03:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1W3Hgz-0000Aq-Vj for bug-gnu-emacs@gnu.org; Tue, 14 Jan 2014 23:03:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Antipov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 15 Jan 2014 04:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16448 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 16448-submit@debbugs.gnu.org id=B16448.1389758577656 (code B ref 16448); Wed, 15 Jan 2014 04:03:01 +0000 Original-Received: (at 16448) by debbugs.gnu.org; 15 Jan 2014 04:02:57 +0000 Original-Received: from localhost ([127.0.0.1]:50845 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W3Hgu-0000AW-7o for submit@debbugs.gnu.org; Tue, 14 Jan 2014 23:02:56 -0500 Original-Received: from forward5l.mail.yandex.net ([84.201.143.138]:43989) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W3Hgq-0000AK-QY for 16448@debbugs.gnu.org; Tue, 14 Jan 2014 23:02:54 -0500 Original-Received: from smtp3o.mail.yandex.net (smtp3o.mail.yandex.net [37.140.190.28]) by forward5l.mail.yandex.net (Yandex) with ESMTP id AA26DC40DEB; Wed, 15 Jan 2014 08:02:50 +0400 (MSK) Original-Received: from smtp3o.mail.yandex.net (localhost [127.0.0.1]) by smtp3o.mail.yandex.net (Yandex) with ESMTP id 5603A1E0C65; Wed, 15 Jan 2014 08:02:50 +0400 (MSK) Original-Received: from unknown (unknown [37.139.80.10]) by smtp3o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id AzOq63yh62-2onaDWth; Wed, 15 Jan 2014 08:02:50 +0400 (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (Client certificate not present) X-Yandex-Uniq: 53cae515-1f29-459c-91c1-2cfa7b407ac3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1389758570; bh=DY6tM7E3lkZVywa/t368nPdsjpRqkDO8OF6KJYB1ZO0=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=nK9g7M4E5zL4m9YXunx9NFf30I8cFxZGsdm+wuTEexH3wYcG4ZMAkfQCC7uXudQBG aUhGDXxjLoklmfSuiSQDcJWoFKFZ+Q4bL1OTiMGeUSeajpCHOPkxSQRmv+JqN2uAeq kFz/Xfo3+KrY3YnK1OpI9/dHW4spFuTEKk6yUFTk= Authentication-Results: smtp3o.mail.yandex.net; dkim=pass header.i=@yandex.ru User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 In-Reply-To: <20140115111009.dc0d435fa9991c3e15816f84@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:83514 Archived-At: On 01/15/2014 04:10 AM, Sergey Tselikh wrote: > In a script, when (error "...") instruction is executed with some UTF-8 > characters in its text, the message is not printed correctly. In batch mode, (error ...) is handled by external-debugging-output, and the latter just does: putc (XINT (character) & 0xFF, stderr); ^^^^^^ To allow multibyte sequences here, we should use something like: === modified file 'src/print.c' --- src/print.c 2014-01-01 07:43:34 +0000 +++ src/print.c 2014-01-15 03:55:39 +0000 @@ -709,8 +709,14 @@ to make it write to the debugging output. */) (Lisp_Object character) { + unsigned char str[MAX_MULTIBYTE_LENGTH]; + unsigned int ch; + ptrdiff_t len; + CHECK_NUMBER (character); - putc (XINT (character) & 0xFF, stderr); + ch = XINT (character); + len = CHAR_STRING (ch, str); + fwrite (str, len, 1, stderr); #ifdef WINDOWSNT /* Send the output to a debugger (nothing happens if there isn't one). */ Dmitry