| delorie.com/archives/browse.cgi | search |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:date:from:to:subject:message-id:mime-version | |
| :content-type; q=dns; s=default; b=Wv5cY/DLT9z1OeGJ3N7KuTmPD3lAD | |
| xMMdNm+5kaNK50cj5VpISBGBgcZMiBUHIQpqOpA+bWJlvX+hwYuDjOwNzd2SaBkz | |
| bWFvPfXtVOSYMcHZWhTtAvUXxh8wcj2K3m+QGBHwR7xlXXA/9P+7BNzn592bgViZ | |
| jOP0cvqzy17sDU= | |
| DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
| :list-unsubscribe:list-subscribe:list-archive:list-post | |
| :list-help:sender:date:from:to:subject:message-id:mime-version | |
| :content-type; s=default; bh=6D3H0pWoGb+663rnf58TzhWz2ac=; b=TeD | |
| MFcpv2jv9i1+EeF8ErUM2t+LYEX0obgbF6P4L9OEKM5I0/kai+fzdtAP8OK/jjtq | |
| YY+LB8vs8sLyv8dQjkYPpR0j0ahn3ZI9HWpB3fhX897cPHCfx4x9TpRjfdVe8cBl | |
| t7Z3fo2lzq+t4btEwqwr0utyFnXpsQCAOkfBVVos= | |
| Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
| List-Id: | <cygwin.cygwin.com> |
| List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
| List-Archive: | <http://sourceware.org/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
| Sender: | cygwin-owner AT cygwin DOT com |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| Delivered-To: | mailing list cygwin AT cygwin DOT com |
| Authentication-Results: | sourceware.org; auth=none |
| X-Spam-SWARE-Status: | No, score=2.1 required=5.0 tests=BAYES_00,BODY_8BITS,GARBLED_BODY,RCVD_IN_DNSWL_NONE,TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=L, HDKIM-Filter:OpenDKIM, HDKIM-Filter:Filter, HDKIM-Filter:v2.10.3 |
| X-HELO: | conssluserg-02.nifty.com |
| DKIM-Filter: | OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com w5RB1FGs013666 |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1530097275; bh=jV0OG2clBmIjt1IMa9CY93NPZn1QFXHYXvFcV09/6nI=; h=Date:From:To:Subject:From; b=VPvc2c4zOkqZgvi7jFFh0k7MIX6lXBoIyxpEBEJHlZaCzht92lDrBeScNicyMzBp2 Y6oLBzN+CF9gPFa9mZ0rnyMDxNAO3+d74Q5TmUOEBmHx8AKjo1tjOhY+98D3YvKwM+ EQS18D7u4DkWuQiarS78a47wA+fwkMSNcJE9uwHGRCGCMmrBNzHj6LO5w0ilIV0nV7 9gHcS1+4PvltQMgn6LiHreXGzL8e/7CoqMhcXi8I687ometsUaj+ynYmiHMEJ+lv7m Lont1RlgfCkk8ZYDAeg+BYtzJ8teBmSwFLl8IAqsz9zuywqd6crLaXIDiF27EQqu2f 0u6uNvcBjO9dA== |
| Date: | Wed, 27 Jun 2018 20:01:16 +0900 |
| From: | Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp> |
| To: | cygwin AT cygwin DOT com |
| Subject: | perror() changes the orientation of stderr to byte-oriented mode if stderr is not oriented yet. |
| Message-Id: | <20180627200116.ddd80f78597f8fd3f09d5d4b@nifty.ne.jp> |
| Mime-Version: | 1.0 |
| X-IsSubscribed: | yes |
| Note-from-DJ: | This may be spam |
--Multipart=_Wed__27_Jun_2018_20_01_16_+0900_vk0gE2/gPfTfn3vO
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
POSIX states:
The perror() function shall not change the orientation of the standard
error stream.
However, cygwin perror() function changes the orientation of stderr to
byte-oriented mode if stderr is not oriented yet.
Simple test case (chkperror.c) attached checks this behavior.
Expected result:
0
äöü: Invalid argument
0
äöü
1
äöü: Invalid argument
However, cygwin result:
0
äöü: Invalid argument
-1
â–’â–’â–’
-1
äöü: Invalid argument
I have made a patch to solve this problem, attached. However, I am not
sure that calling _write_r() here is correct manner. I will appreciate
if anyone familiar with libc code comment or make suggestions.
--
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--Multipart=_Wed__27_Jun_2018_20_01_16_+0900_vk0gE2/gPfTfn3vO
Content-Type: application/octet-stream;
name="0001-Fix-a-bug-of-perror-which-changes-the-orientation-of.patch"
Content-Disposition: attachment;
filename="0001-Fix-a-bug-of-perror-which-changes-the-orientation-of.patch"
Content-Transfer-Encoding: base64
RnJvbSBjZjU2Y2YwZWVmOGQ0OGNhNTQzYWFjOTZkNTdmZGZlYmUzZTg3Njdh
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8g
PHRha2FzaGkueWFub0BuaWZ0eS5uZS5qcD4KRGF0ZTogV2VkLCAyNyBKdW4g
MjAxOCAxOToyNjoxNSArMDkwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBhIGJ1
ZyBvZiBwZXJyb3IoKSB3aGljaCBjaGFuZ2VzIHRoZSBvcmllbnRhdGlvbiBv
Zgogc3RkZXJyLgoKKiBwZXJyb3IuYzogRml4IHRoZSBwcm9ibGVtIHRoYXQg
cGVycm9yKCkgY2hhbmdlcyB0aGUgb3JpZW50YXRpb24KICBvZiBzdGRlcnIg
dG8gYnl0ZS1vcmllbnRlZCBtb2RlIGlmIHN0ZGVyciBpcyBub3Qgb3JpZW50
ZWQgeWV0LgotLS0KIG5ld2xpYi9saWJjL3N0ZGlvL3BlcnJvci5jIHwgMjUg
KysrKysrKysrKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIx
IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bmV3bGliL2xpYmMvc3RkaW8vcGVycm9yLmMgYi9uZXdsaWIvbGliYy9zdGRp
by9wZXJyb3IuYwppbmRleCBkOThlMTdlMTkuLjMzMjg0MjVkYSAxMDA2NDQK
LS0tIGEvbmV3bGliL2xpYmMvc3RkaW8vcGVycm9yLmMKKysrIGIvbmV3bGli
L2xpYmMvc3RkaW8vcGVycm9yLmMKQEAgLTU4LDYgKzU4LDIzIEBAIFN1cHBv
cnRpbmcgT1Mgc3Vicm91dGluZXMgcmVxdWlyZWQ6IDw8Y2xvc2U+PiwgPDxm
c3RhdD4+LCA8PGlzYXR0eT4+LAogI2luY2x1ZGUgPHN0cmluZy5oPgogI2lu
Y2x1ZGUgImxvY2FsLmgiCiAKK3N0YXRpYyBpbnQKK3dyaXRlX2VyciAoc3Ry
dWN0IF9yZWVudCAqcHRyLCBjb25zdCBjaGFyICpzKQoreworICBzaXplX3Qg
bGVuID0gc3RybGVuIChzKTsKKyAgc2l6ZV90IGxlbl9vdXQgPSAwOworICBp
bnQgZmRfZXJyID0gZmlsZW5vIChfc3RkZXJyX3IgKHB0cikpOworICB3aGls
ZSAobGVuX291dCAhPSBsZW4pCisgICAgeworICAgICAgX3NzaXplX3QgbGVu
MSA9IF93cml0ZV9yIChwdHIsIGZkX2VyciwgcytsZW5fb3V0LCBsZW4tbGVu
X291dCk7CisgICAgICBpZiAobGVuMSA+IDApCisJbGVuX291dCArPSBsZW4x
OworICAgICAgZWxzZQorCXJldHVybiAtMTsKKyAgICB9CisgIHJldHVybiAw
OworfQorCiB2b2lkCiBfcGVycm9yX3IgKHN0cnVjdCBfcmVlbnQgKnB0ciwK
ICAgICAgICBjb25zdCBjaGFyICpzKQpAQCAtNjgsMTQgKzg1LDE0IEBAIF9w
ZXJyb3JfciAoc3RydWN0IF9yZWVudCAqcHRyLAogICBfUkVFTlRfU01BTExf
Q0hFQ0tfSU5JVCAocHRyKTsKICAgaWYgKHMgIT0gTlVMTCAmJiAqcyAhPSAn
XDAnKQogICAgIHsKLSAgICAgIGZwdXRzIChzLCBfc3RkZXJyX3IgKHB0cikp
OwotICAgICAgZnB1dHMgKCI6ICIsIF9zdGRlcnJfciAocHRyKSk7CisgICAg
ICB3cml0ZV9lcnIgKHB0ciwgcyk7CisgICAgICB3cml0ZV9lcnIgKHB0ciwg
IjogIik7CiAgICAgfQogCiAgIGlmICgoZXJyb3IgPSBfc3RyZXJyb3JfciAo
cHRyLCBwdHItPl9lcnJubywgMSwgJmR1bW15KSkgIT0gTlVMTCkKLSAgICBm
cHV0cyAoZXJyb3IsIF9zdGRlcnJfciAocHRyKSk7CisgICAgd3JpdGVfZXJy
IChwdHIsIGVycm9yKTsKIAotICBmcHV0YyAoJ1xuJywgX3N0ZGVycl9yIChw
dHIpKTsKKyAgd3JpdGVfZXJyIChwdHIsICJcbiIpOwogfQogCiAjaWZuZGVm
IF9SRUVOVF9PTkxZCi0tIAoyLjE3LjAKCg==
--Multipart=_Wed__27_Jun_2018_20_01_16_+0900_vk0gE2/gPfTfn3vO
Content-Type: text/x-csrc;
name="chkperror.c"
Content-Disposition: attachment;
filename="chkperror.c"
Content-Transfer-Encoding: quoted-printable
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <errno.h>
int main()
{
setlocale(LC_CTYPE, "de_DE.UTF-8");
errno =3D EINVAL;
printf("%d\n", fwide(stderr, 0));
perror("=C3=A4=C3=B6=C3=BC");
printf("%d\n", fwide(stderr, 0));
fwprintf(stderr, L"=C3=A4=C3=B6=C3=BC\n");
printf("%d\n", fwide(stderr, 0));
perror("=C3=A4=C3=B6=C3=BC");
return 0;
}
--Multipart=_Wed__27_Jun_2018_20_01_16_+0900_vk0gE2/gPfTfn3vO
Content-Type: text/plain; charset=us-ascii
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
--Multipart=_Wed__27_Jun_2018_20_01_16_+0900_vk0gE2/gPfTfn3vO--
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |