git: 6c11c9f48a51 - main - net/quagga: use MORE=-E implicitly within vtysh
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 31 Dec 2022 17:17:14 UTC
The branch main has been updated by eugen:
URL: https://cgit.FreeBSD.org/ports/commit/?id=6c11c9f48a511b4097e532fd678726b5d3e17e8b
commit 6c11c9f48a511b4097e532fd678726b5d3e17e8b
Author: Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2022-12-31 17:09:38 +0000
Commit: Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2022-12-31 17:17:05 +0000
net/quagga: use MORE=-E implicitly within vtysh
quagga's vtysh utility defaults to "more" as PAGER that is less(1)
under FreeBSD and its current behaviour is not suitable for vtysh.
Generally, setting MORE=-E in user environment makes it behave better
but due to collateral damage in bash version 5+
this setting may be ignored.
Let's make it work out of the box while still allowing users to change or
restore pager behaviour with custom MORE settings.
---
net/quagga/Makefile | 2 +-
net/quagga/files/patch-vtysh.c | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index b9ac0900006e..edce72330110 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -1,6 +1,6 @@
PORTNAME= quagga
PORTVERSION= 1.2.4
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= net
MASTER_SITES= https://github.com/Quagga/quagga/releases/download/${DISTNAME}/
diff --git a/net/quagga/files/patch-vtysh.c b/net/quagga/files/patch-vtysh.c
new file mode 100644
index 000000000000..e5779a1de11d
--- /dev/null
+++ b/net/quagga/files/patch-vtysh.c
@@ -0,0 +1,29 @@
+--- vtysh/vtysh.c.orig 2018-02-20 00:24:55.000000000 +0300
++++ vtysh/vtysh.c 2022-12-31 19:56:32.203501000 +0300
+@@ -246,7 +246,7 @@ vtysh_client_execute (struct vtysh_client *vclient, co
+ void
+ vtysh_pager_init (void)
+ {
+- char *pager_defined;
++ char *pager_defined, *s;
+
+ pager_defined = getenv ("VTYSH_PAGER");
+
+@@ -254,6 +254,17 @@ vtysh_pager_init (void)
+ vtysh_pager_name = strdup (pager_defined);
+ else
+ vtysh_pager_name = strdup ("more");
++
++ s = getenv("MORE");
++ if (s != NULL)
++ return;
++
++ s = strrchr(vtysh_pager_name, '/');
++ s = (s == NULL ? vtysh_pager_name : s++);
++ if (strcmp(s, "more") != 0 && strcmp(s, "less") != 0)
++ return;
++
++ putenv("MORE=-E");
+ }
+
+ /* Command execution over the vty interface. */