mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-12-04 00:51:42 +01:00
47 lines
1.1 KiB
Diff
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"
|
|
+}
|