From 73e115aab038880a68c9f73b5c49d8fa12d0e5e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?= Date: Wed, 14 Dec 2022 20:52:04 +0000 Subject: vt: add OSC 7 support for plumbing of remote files without mount/bind magic --- sys/src/cmd/vt/main.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'sys/src/cmd/vt/main.c') diff --git a/sys/src/cmd/vt/main.c b/sys/src/cmd/vt/main.c index cdf2e2586..764b24591 100644 --- a/sys/src/cmd/vt/main.c +++ b/sys/src/cmd/vt/main.c @@ -1007,13 +1007,30 @@ snarfsel(void) void plumbsel(void) { - char *s, wdir[1024]; + char *s, *e, wdir[WDIR]; + Plumbmsg msg; int plumb; s = selection(); if(s == nil || *s == 0) return; - if(getwd(wdir, sizeof wdir) == nil){ + memset(&msg, 0, sizeof(msg)); + msg.src = "vt"; + msg.type = "text"; + msg.ndata = strlen(s); + msg.data = s; + msg.wdir = wdir; + if(*osc7cwd != 0){ + strcpy(wdir, osc7cwd); + /* absolute path? adjust wdir and path */ + if(*s == '/'){ + if((e = strchr(wdir+3, '/')) != nil){ + *e = 0; + msg.data++; + msg.ndata--; + } + } + }else if(getwd(wdir, sizeof wdir) == nil){ free(s); return; } @@ -1021,7 +1038,7 @@ plumbsel(void) free(s); return; } - plumbsendtext(plumb, "vt", nil, wdir, s); + plumbsend(plumb, &msg); close(plumb); free(s); } -- cgit v1.2.3