Hello Jianzhong,
> When using ctrl-p to load uri from clipboard, it's better to strip the
> leading whitespace.
I'm not sure it is.
> For example, to select/copy a uri from text in terminal and paste to
> surf, currently it need to be very careful not to include any
> whitespace before the uri.
Yes, yo do.
> It's easy for keyboard selection, but for mouse selection, precise
> positioning is a little bit difficult.
I'd suggest you manage this outside of surf, either by training your
mouse skills, or by stripping those leading whitespaces in your
selecting application.
> patch as below:
>
> diff -Nur surf/surf.c surfn/surf.c
> --- surf/surf.c 2017-10-17 13:58:00.636699137 +0800
> +++ surfn/surf.c 2017-10-17 13:58:29.440798516 +0800
> _AT_@ -1707,7 +1707,8 @@
> void
> pasteuri(GtkClipboard *clipboard, const char *text, gpointer d)
> {
> - Arg a = {.v = text };
> + char *trimed = g_strstrip(g_strdup(text));
> + Arg a = {.v = trimed };
> if (text)
> loaduri((Client *) d, &a);
> }
As other stated, you're allocating a new string there whithout ever
releasing it which is wrong.
I'd suggest a simpler approach like this :
diff --git a/surf.c b/surf.c
index 0f8b9c9..8a40a3b 100644
--- a/surf.c
+++ b/surf.c
_AT_@ -1685,9 +1685,14 @@ destroywin(GtkWidget* w, Client *c)
void
pasteuri(GtkClipboard *clipboard, const char *text, gpointer d)
{
- Arg a = {.v = text };
- if (text)
+ Arg a;
+
+ if (text) {
+ for (; *text && (*text == ' ' || *text == '\t'); ++text)
+ ;
+ a.v = text;
loaduri((Client *) d, &a);
+ }
}
void
---
I'm open to discuss this further though if more people complain about
it, thanks for your interest in surf!
-- Quentin
Received on Thu Oct 19 2017 - 12:19:13 CEST