commit d6034f6d254a79fa753ec913e2f220d63a76291b
Author: Lucas Gabriel Vuotto <[email protected]>
Date:   Fri Nov 25 09:35:13 2016 -0300

    Update st externalpipe patch
    
    Signed-off-by: Lucas Gabriel Vuotto <[email protected]>

diff --git a/st.suckless.org/patches/externalpipe.md 
b/st.suckless.org/patches/externalpipe.md
index 27e8ed4..8b2c75a 100644
--- a/st.suckless.org/patches/externalpipe.md
+++ b/st.suckless.org/patches/externalpipe.md
@@ -27,10 +27,11 @@ Download
 * [st-externalpipe-0.4.1.diff](st-externalpipe-0.4.1.diff)
 * [st-externalpipe-0.5.diff](st-externalpipe-0.5.diff)
 * [st-externalpipe-0.6.diff](st-externalpipe-0.6.diff)
-* 
[st-externalpipe-20160727-308bfbf.diff](st-externalpipe-20160727-308bfbf.diff)
+* 
[st-externalpipe-20161125-e448324.diff](st-externalpipe-20161125-e448324.diff)
 
 Authors
 -------
 
  * Rob Pilling - <[email protected]>
  * Laslo Hunhold - <[email protected]> (0.4.1, 0.5, 0.6, git ports)
+ * Lucas Gabriel Vuotto - <[email protected]> (git ports)
diff --git a/st.suckless.org/patches/st-externalpipe-20160727-308bfbf.diff 
b/st.suckless.org/patches/st-externalpipe-20160727-308bfbf.diff
deleted file mode 100644
index 5bc2047..0000000
--- a/st.suckless.org/patches/st-externalpipe-20160727-308bfbf.diff
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/st.c b/st.c
-index 2594c65..1491e77 100644
---- a/st.c
-+++ b/st.c
-@@ -336,6 +336,7 @@ static void printsel(const Arg *);
- static void printscreen(const Arg *) ;
- static void toggleprinter(const Arg *);
- static void sendbreak(const Arg *);
-+static void externalpipe(const Arg *);
- 
- /* Config.h for applying patches and the configuration. */
- #include "config.h"
-@@ -2922,6 +2923,62 @@ eschandle(uchar ascii)
- }
- 
- void
-+externalpipe(const Arg *arg)
-+{
-+      int to[2]; /* 0 = read, 1 = write */
-+      pid_t child;
-+      int n;
-+      void (*oldsigpipe)(int);
-+      char buf[UTF_SIZ];
-+      Glyph *bp, *end;
-+
-+      if(pipe(to) == -1)
-+              return;
-+
-+      /* sigchld() handles this */
-+      switch(child = fork()){
-+              case -1:
-+                      close(to[0]), close(to[1]);
-+                      return;
-+              case 0:
-+                      /* child */
-+                      close(to[1]);
-+                      dup2(to[0], STDIN_FILENO); /* 0<&to */
-+                      close(to[0]);
-+                      execvp(
-+                                      "sh",
-+                                      (char *const []){
-+                                              "/bin/sh",
-+                                              "-c",
-+                                              (char *)arg->v,
-+                                              0
-+                                      });
-+                      exit(127);
-+      }
-+
-+      /* parent */
-+      close(to[0]);
-+      /* ignore sigpipe for now, in case child exits early */
-+      oldsigpipe = signal(SIGPIPE, SIG_IGN);
-+
-+      for(n = 0; n < term.row; n++){
-+              bp = &term.line[n][0];
-+              end = &bp[MIN(tlinelen(n), term.col) - 1];
-+              if(bp != end || bp->u != ' ')
-+                      for(; bp <= end; ++bp)
-+                              if(xwrite(to[1], buf, utf8encode(bp->u, buf)) < 
0)
-+                                      break;
-+              if(xwrite(to[1], "
", 1) < 0)
-+                      break;
-+      }
-+
-+      close(to[1]);
-+
-+      /* restore */
-+      signal(SIGPIPE, oldsigpipe);
-+}
-+
-+void
- tputc(Rune u)
- {
-       char c[UTF_SIZ];
diff --git a/st.suckless.org/patches/st-externalpipe-20161125-e448324.diff 
b/st.suckless.org/patches/st-externalpipe-20161125-e448324.diff
new file mode 100644
index 0000000..e4b47e0
--- /dev/null
+++ b/st.suckless.org/patches/st-externalpipe-20161125-e448324.diff
@@ -0,0 +1,75 @@
+diff --git a/st.c b/st.c
+index d6fe58a..1595e59 100644
+--- a/st.c
++++ b/st.c
+@@ -344,6 +344,7 @@ static void printscreen(const Arg *) ;
+ static void iso14755(const Arg *);
+ static void toggleprinter(const Arg *);
+ static void sendbreak(const Arg *);
++static void externalpipe(const Arg *);
+ 
+ /* Config.h for applying patches and the configuration. */
+ #include "config.h"
+@@ -2996,6 +2997,62 @@ eschandle(uchar ascii)
+ }
+ 
+ void
++externalpipe(const Arg *arg)
++{
++      int to[2]; /* 0 = read, 1 = write */
++      pid_t child;
++      int n;
++      void (*oldsigpipe)(int);
++      char buf[UTF_SIZ];
++      Glyph *bp, *end;
++
++      if(pipe(to) == -1)
++              return;
++
++      /* sigchld() handles this */
++      switch(child = fork()){
++              case -1:
++                      close(to[0]), close(to[1]);
++                      return;
++              case 0:
++                      /* child */
++                      close(to[1]);
++                      dup2(to[0], STDIN_FILENO); /* 0<&to */
++                      close(to[0]);
++                      execvp(
++                                      "sh",
++                                      (char *const []){
++                                              "/bin/sh",
++                                              "-c",
++                                              (char *)arg->v,
++                                              0
++                                      });
++                      exit(127);
++      }
++
++      /* parent */
++      close(to[0]);
++      /* ignore sigpipe for now, in case child exits early */
++      oldsigpipe = signal(SIGPIPE, SIG_IGN);
++
++      for(n = 0; n < term.row; n++){
++              bp = &term.line[n][0];
++              end = &bp[MIN(tlinelen(n), term.col) - 1];
++              if(bp != end || bp->u != ' ')
++                      for(; bp <= end; ++bp)
++                              if(xwrite(to[1], buf, utf8encode(bp->u, buf)) < 
0)
++                                      break;
++              if(xwrite(to[1], "
", 1) < 0)
++                      break;
++      }
++
++      close(to[1]);
++
++      /* restore */
++      signal(SIGPIPE, oldsigpipe);
++}
++
++void
+ tputc(Rune u)
+ {
+       char c[UTF_SIZ];


Reply via email to