GNU bug report logs - #21221
guile-2.2 socket ports used with display does not send utf8 !

Previous Next

Package: guile;

Reported by: linasvepstas <at> gmail.com

Date: Sun, 9 Aug 2015 02:22:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Andy Wingo <wingo <at> pobox.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#21221: closed (guile-2.2 socket ports used with display does
 not send utf8 !)
Date: Mon, 20 Jun 2016 15:56:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 20 Jun 2016 17:55:37 +0200
with message-id <87y45zg8hy.fsf <at> pobox.com>
and subject line Re: bug#21221: guile-2.2 socket ports used with display does not send utf8 !
has caused the debbugs.gnu.org bug report #21221,
regarding guile-2.2 socket ports used with display does not send utf8 !
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
21221: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21221
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Linas Vepstas <linasvepstas <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: guile-2.2 socket ports used with display does not send utf8 !
Date: Sat, 8 Aug 2015 21:20:54 -0500
The following simple client-server program fails for me.
For simplicity, for the server, just use netcat listening on port 7777:

$ nc -l 7777

In a guile shell, try this:
(setlocale LC_ALL "")
(define sss (socket PF_INET SOCK_STREAM 0))
(set-port-encoding! sss "utf-8")
(connect sss AF_INET (inet-pton AF_INET "127.0.0.1") 7777)
(set-port-encoding! sss "utf-8")
(display "SmålandSmåland\n" sss)
(close-port sss)


The SmålandSmåland gets corrupted:  nc receives Sm?landSm?land

Some types of utf8 do go through, so e.g. (display "Ćićolina\n" sss)
seems to work fine.  This finish/norweign thing, though, fails,
vietnamese too.
(display "Hòa Phú Phú Tân Hiệp An  Tương Bình Hiệp Định Hòa\n" sss)

I suppose the answer is "don't use display for sending strings on a
socket", but I'm stumped as to why there should even be an encoding
error, why its not utf8 end-to-end.

This is for guile-2.2 from a recent git pull of the master source from
about June 2015, but I believe the problem occurs on guile-2.0 as
well.

guile --version
guile (GNU Guile) 2.1.0.305-e7097-dirty

this is on ubuntu 14.04 aka ubuntu trusty

-- Linas Vepstas


[Message part 3 (message/rfc822, inline)]
From: Andy Wingo <wingo <at> pobox.com>
To: Linas Vepstas <linasvepstas <at> gmail.com>
Cc: 21221-done <at> debbugs.gnu.org
Subject: Re: bug#21221: guile-2.2 socket ports used with display does not send
 utf8 !
Date: Mon, 20 Jun 2016 17:55:37 +0200
On Sun 09 Aug 2015 04:20, Linas Vepstas <linasvepstas <at> gmail.com> writes:

> The following simple client-server program fails for me.
> For simplicity, for the server, just use netcat listening on port 7777:
>
> $ nc -l 7777
>
> In a guile shell, try this:
> (setlocale LC_ALL "")
> (define sss (socket PF_INET SOCK_STREAM 0))
> (set-port-encoding! sss "utf-8")
> (connect sss AF_INET (inet-pton AF_INET "127.0.0.1") 7777)
> (set-port-encoding! sss "utf-8")
> (display "SmålandSmåland\n" sss)
> (close-port sss)
>
>
> The SmålandSmåland gets corrupted:  nc receives Sm?landSm?land

I have tried this in 2.1.3 and it seems to work for me.  Thanks for the
report, please reopen if you can still reproduce the bug.

Cheers,

Andy


This bug report was last modified 8 years and 339 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.