plan9port

[fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port # fast
git clone https://src.adamsgaard.dk/plan9port.git # slow
Log | Files | Refs | README | LICENSE Back to index

commit 951fef52c99ad174f9cfb413ba7fd831d1ee5e4b
parent 6541f1798bb775b2a00c64af2b8d3f296a3d6f40
Author: Akshat Kumar <seed@mail.nanosouffle.net>
Date:   Fri,  6 Sep 2013 16:10:26 -0400

mailfs: allow spaces in box name

Mail services (such as Google Mail) will often have
directories with names that contain spaces. Acme
does not support spaces in window names. So, replace
spaces in mail directory names with the Unicode
character for visible space.

The code is a bit of an over-approximation and
generally non-optimal.

R=rsc, david.ducolombier, 0intro
CC=plan9port.codebot
https://codereview.appspot.com/13010048

Diffstat:
Msrc/cmd/acme/mail/win.c | 17++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/cmd/acme/mail/win.c b/src/cmd/acme/mail/win.c @@ -105,7 +105,22 @@ wintagwrite(Window *w, char *s, int n) void winname(Window *w, char *s) { - ctlprint(w->ctl, "name %s\n", s); + int len; + char *ns, *sp; + Rune r = L'␣'; /* visible space */ + + len = 0; + ns = emalloc(strlen(s)*runelen(r) + 1); + for(sp = s; *sp != '\0'; sp++, len++){ + if(isspace(*sp)){ + len += runetochar(ns+len, &r)-1; + continue; + } + *(ns+len) = *sp; + } + ctlprint(w->ctl, "name %s\n", ns); + free(ns); + return; } void