aports/community/irssi-tcl/systemscript.patch
2023-11-04 12:59:58 +00:00

47 lines
1.1 KiB
Diff

Modified from patch provided in https://github.com/horgh/irssi-tcl/issues/8
--- a/src/tcl_core.c
+++ b/src/tcl_core.c
@@ -5,6 +5,7 @@
#include <stdbool.h>
#include <string.h>
+#include <unistd.h>
#include <tcl.h>
@@ -14,6 +15,8 @@
#include "tcl_core.h"
+#define IRSSI_TCL_SYSTEM_PATH "/usr/share/irssi/tcl/irssi.tcl"
+
static Tcl_Interp* interp;
/*
@@ -186,6 +189,11 @@
Tcl_DString dsPtr;
Tcl_DStringInit(&dsPtr);
irssi_dir_ds(&dsPtr, "/tcl/irssi.tcl");
+ if (access(Tcl_DStringValue(&dsPtr), R_OK) == -1) {
+ // no user provided irssi.tcl, try the system one
+ Tcl_DStringSetLength(&dsPtr, 0);
+ Tcl_DStringAppend(&dsPtr, IRSSI_TCL_SYSTEM_PATH, -1);
+ }
int result = Tcl_EvalFile(interp, Tcl_DStringValue(&dsPtr));
Tcl_DStringFree(&dsPtr);
return result;
--- a/tcl/irssi.tcl
+++ b/tcl/irssi.tcl
@@ -135,4 +135,9 @@
source $script
}
-load_script scripts.conf
+# only source script if it exists to prevent error while running /load tcl
+if {[file exists [irssi_dir]${::SCRIPT_PATH}/scripts.conf]} {
+ load_script scripts.conf
+} else {
+ irssi_print "no [irssi_dir]${::SCRIPT_PATH}/scripts.conf found"
+}