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: linasvepstas <at> gmail.com
Subject: bug#21221: closed (Re: bug#21221: guile-2.2 socket ports used
 with display does not send utf8 !)
Date: Mon, 20 Jun 2016 15:56:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#21221: guile-2.2 socket ports used with display does not send utf8 !

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 21221 <at> debbugs.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: 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

[Message part 3 (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



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.