summaryrefslogtreecommitdiffstats
path: root/scripts/exec_clean.pl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 20:19:02 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 20:19:02 +0000
commit03929dac2a29664878d2c971648a4fe1fb698462 (patch)
tree02c5e2b3e006234aa29545f7a93a1ce01b291a8b /scripts/exec_clean.pl
parentInitial commit. (diff)
downloadirssi-scripts-03929dac2a29664878d2c971648a4fe1fb698462.tar.xz
irssi-scripts-03929dac2a29664878d2c971648a4fe1fb698462.zip
Adding upstream version 20231031.upstream/20231031upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--scripts/exec_clean.pl52
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/exec_clean.pl b/scripts/exec_clean.pl
new file mode 100644
index 0000000..766627f
--- /dev/null
+++ b/scripts/exec_clean.pl
@@ -0,0 +1,52 @@
+# $Id: exec-clean.pl,v 1.6 2002/07/04 13:18:02 jylefort Exp $
+
+use strict;
+use Irssi 20020121.2020 ();
+use vars qw($VERSION %IRSSI);
+$VERSION = "1.01";
+%IRSSI = (
+ authors => 'Jean-Yves Lefort',
+ contact => 'jylefort\@brutele.be, decadix on IRCNet',
+ name => 'exec-clean',
+ description => 'Adds a setting to automatically terminate a process whose parent window has been closed',
+ license => 'BSD',
+ url => 'http://void.adminz.be/irssi.shtml',
+ changed => '$Date: 2002/07/04 13:18:02 $ ',
+);
+
+# /set's:
+#
+# autokill_orphan_processes
+#
+# guess :)
+#
+# changes:
+#
+# 2002-07-04 release 1.01
+# * signal_add's uses a reference instead of a string
+#
+# 2002-04-25 release 1.00
+# * increased version number
+#
+# 2002-01-28 initial release
+#
+# todo:
+#
+# * kill the process using a better method (TERM -> sleep -> KILL etc)
+
+use Irssi::UI;
+
+sub window_destroyed {
+ my ($window) = @_;
+
+ foreach (Irssi::UI::processes()) {
+ if ($_->{target_win}->{refnum} == $window->{refnum}
+ && Irssi::settings_get_bool("autokill_orphan_processes")) {
+ kill 15, $_->{pid};
+ return;
+ }
+ }
+}
+
+Irssi::signal_add("window destroyed", \&window_destroyed);
+Irssi::settings_add_bool("misc", "autokill_orphan_processes", 1);