summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/5pkgs/haskell/reaktor2.nix6
-rw-r--r--tv/5pkgs/override/default.nix6
-rw-r--r--tv/5pkgs/override/rxvt_unicode/default.nix6
-rw-r--r--tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch41
4 files changed, 56 insertions, 3 deletions
diff --git a/krebs/5pkgs/haskell/reaktor2.nix b/krebs/5pkgs/haskell/reaktor2.nix
index 40c628802..f06e79121 100644
--- a/krebs/5pkgs/haskell/reaktor2.nix
+++ b/krebs/5pkgs/haskell/reaktor2.nix
@@ -7,11 +7,11 @@
}:
mkDerivation {
pname = "reaktor2";
- version = "0.2.1";
+ version = "0.2.2";
src = fetchgit {
url = "https://cgit.krebsco.de/reaktor2";
- sha256 = "0wg76wlzfi893rl0lzhfs6bkpdcvwvgl6mpnz6w7r8f7znr4a9vr";
- rev = "0e199f7a357a4c5973e5837ec67699cf224ca69c";
+ sha256 = "1kyr5i5zdzvc7fcyac1i1yvi88kcxafrgp8p79c1b9l4g9sjnv78";
+ rev = "9f4e2644188f985d7cd806c13e2c0dee1688b9f0";
fetchSubmodules = true;
};
isLibrary = false;
diff --git a/tv/5pkgs/override/default.nix b/tv/5pkgs/override/default.nix
new file mode 100644
index 000000000..cd7c5645b
--- /dev/null
+++ b/tv/5pkgs/override/default.nix
@@ -0,0 +1,6 @@
+with import <stockholm/lib>;
+self: super: {
+ rxvt_unicode = self.callPackage ./rxvt_unicode {
+ rxvt_unicode = super.rxvt_unicode;
+ };
+}
diff --git a/tv/5pkgs/override/rxvt_unicode/default.nix b/tv/5pkgs/override/rxvt_unicode/default.nix
new file mode 100644
index 000000000..858a46be6
--- /dev/null
+++ b/tv/5pkgs/override/rxvt_unicode/default.nix
@@ -0,0 +1,6 @@
+{ rxvt_unicode }:
+rxvt_unicode.overrideAttrs (old: {
+ patches = old.patches ++ [
+ ./finish-running-selection.patch
+ ];
+})
diff --git a/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch b/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
new file mode 100644
index 000000000..a342ccf5c
--- /dev/null
+++ b/tv/5pkgs/override/rxvt_unicode/finish-running-selection.patch
@@ -0,0 +1,41 @@
+diff --git a/src/rxvttoolkit.h b/src/rxvttoolkit.h
+index 56c9a3f..429055d 100644
+--- a/src/rxvttoolkit.h
++++ b/src/rxvttoolkit.h
+@@ -384,6 +384,7 @@ struct rxvt_selection
+ {
+ rxvt_selection (rxvt_display *disp, int selnum, Time tm, Window win, Atom prop, rxvt_term *term);
+ void run ();
++ void finish (char *data = 0, unsigned int len = 0);
+ ~rxvt_selection ();
+
+ rxvt_term *term; // terminal to paste to, may be 0
+@@ -404,7 +405,6 @@ private:
+ void timer_cb (ev::timer &w, int revents); ev::timer timer_ev;
+ void x_cb (XEvent &xev); xevent_watcher x_ev;
+
+- void finish (char *data = 0, unsigned int len = 0);
+ void stop ();
+ bool request (Atom target, int selnum);
+ void handle_selection (Window win, Atom prop, bool delete_prop);
+diff --git a/src/screen.C b/src/screen.C
+index 9eb375a..77e7109 100644
+--- a/src/screen.C
++++ b/src/screen.C
+@@ -2736,11 +2736,11 @@ rxvt_term::paste (char *data, unsigned int len) NOTHROW
+ void
+ rxvt_term::selection_request (Time tm, int selnum) NOTHROW
+ {
+- if (!selection_req)
+- {
+- selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], this);
+- selection_req->run ();
+- }
++ if (selection_req)
++ selection_req->finish ();
++
++ selection_req = new rxvt_selection (display, selnum, tm, vt, xa[XA_VT_SELECTION], this);
++ selection_req->run ();
+ }
+
+ /* ------------------------------------------------------------------------- */