commit 8b1563baffd317eade787e919746a2608e98e2dd
Author: Michael Buch <[email protected]>
Date:   Sun May 20 16:39:14 2018 +0100

    [copuryl patch] Cleanup URL determination logic
    
    Separate out into separate function and provide
    ability to add more URLs to the list.

diff --git a/st.suckless.org/patches/copyurl/index.md 
b/st.suckless.org/patches/copyurl/index.md
index b078e827..0325e8f9 100644
--- a/st.suckless.org/patches/copyurl/index.md
+++ b/st.suckless.org/patches/copyurl/index.md
@@ -25,7 +25,7 @@ Download
 Following patches also highlight the selected urls:
 
  * [st-copyurl-20180514-a7bd977.diff](st-copyurl-20180514-a7bd977.diff)
- * [st-copyurl-20180520-53d59ef.diff](st-copyurl-20180520-53d59ef.diff)
+ * [st-copyurl-20180520-0fe819f.diff](st-copyurl-20180520-0fe819f.diff)
 
 Authors
 -------
diff --git a/st.suckless.org/patches/copyurl/st-copyurl-20180520-53d59ef.diff 
b/st.suckless.org/patches/copyurl/st-copyurl-20180520-73f375a.diff
similarity index 78%
rename from st.suckless.org/patches/copyurl/st-copyurl-20180520-53d59ef.diff
rename to st.suckless.org/patches/copyurl/st-copyurl-20180520-73f375a.diff
index 4a2e7e1b..6d2fcd0f 100644
--- a/st.suckless.org/patches/copyurl/st-copyurl-20180520-53d59ef.diff
+++ b/st.suckless.org/patches/copyurl/st-copyurl-20180520-73f375a.diff
@@ -1,16 +1,15 @@
-From 53d59ef83576afface82889e21bf86ed9c288496 Mon Sep 17 00:00:00 2001
+From 73f375a7c3256d32c62bdb7d616207071e89f982 Mon Sep 17 00:00:00 2001
 From: Michael Buch <[email protected]>
-Date: Sun, 20 May 2018 01:35:03 +0100
-Subject: [PATCH] Handle multiple URLs on single line scenario
+Date: Sun, 20 May 2018 16:14:14 +0100
+Subject: [PATCH] [copuryl patch] Cleanup URL determination logic
 
-When cycling through URLs, instead of picking the first
-URL of each line, cycle through URLs on a single line
-from back to front
+Separate out into separate function and provide
+ability to add more URLs to the list.
 ---
  config.def.h |   1 +
- st.c         | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ st.c         | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++
  st.h         |   1 +
- 3 files changed, 118 insertions(+)
+ 3 files changed, 125 insertions(+)
 
 diff --git a/config.def.h b/config.def.h
 index 82b1b09..cbe923e 100644
@@ -25,7 +24,7 @@ index 82b1b09..cbe923e 100644
  
  /*
 diff --git a/st.c b/st.c
-index 0628707..309aa89 100644
+index 0628707..b08f454 100644
 --- a/st.c
 +++ b/st.c
 @@ -204,6 +204,7 @@ static void tdefutf8(char);
@@ -54,18 +53,21 @@ index 0628707..309aa89 100644
  void
  csihandle(void)
  {
-@@ -2617,3 +2629,107 @@ redraw(void)
+@@ -2617,3 +2629,114 @@ redraw(void)
        tfulldirt();
        draw();
  }
 +
 +char *
-+findlast(char *str, const char* find)
++findlastany(char *str, const char** find, size_t len)
 +{
 +      char* found = NULL;
++      int i = 0;
 +      for(found = str + strlen(str) - 1; found >= str; --found) {
-+              if(strncmp(found, find, strlen(find)) == 0) {
-+                      return found;
++              for(i = 0; i < len; i++) {
++                      if(strncmp(found, find[i], strlen(find[i])) == 0) {
++                              return found;
++                      }
 +              }
 +      }
 +
@@ -87,15 +89,18 @@ index 0628707..309aa89 100644
 +              "abcdefghijklmnopqrstuvwxyz"
 +              "0123456789-._~:/?#@!$&'*+,;=%";
 +
++      static const char* URLSTRINGS[] = {"http://";, "https://"};
++
 +      /* remove highlighting from previous selection if any */
 +      if(sel.ob.x >= 0 && sel.oe.x >= 0)
 +              tsetcolor(sel.nb.y, sel.ob.x, sel.oe.x + 1, defaultfg, 
defaultbg);
 +
 +      int i = 0,
-+              row = 0,
-+              col = 0,
-+              startrow = 0,
-+              colend = 0;
++              row = 0, /* row of current URL */
++              col = 0, /* column of current URL start */
++              startrow = 0, /* row of last occurrence */
++              colend = 0, /* column of last occurrence */
++              passes = 0; /* how many rows have been scanned */
 +
 +      char *linestr = calloc(sizeof(char), term.col+1); /* assume ascii */
 +      char *c = NULL,
@@ -112,7 +117,7 @@ index 0628707..309aa89 100644
 +      ** Scan from (term.bot,term.col) to (0,0) and find
 +      ** next occurrance of a URL
 +      */
-+      do {
++      while(passes !=term.bot + 2) {
 +              /* Read in each column of every row until
 +              ** we hit previous occurrence of URL
 +              */
@@ -124,15 +129,16 @@ index 0628707..309aa89 100644
 +              }
 +              linestr[term.col] = '

Reply via email to