aboutsummaryrefslogtreecommitdiff
path: root/development/ex-vi/ex-vi.SlackBuild
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2015-04-03 12:35:57 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2015-04-03 20:50:17 +0700
commitab0ffaa245e0362f4b3bdbd27d665600b0be81a7 (patch)
treebc81f3781fad56ec49173f75571140948f7356f4 /development/ex-vi/ex-vi.SlackBuild
parentee59266f8f5f8219ef9eefc4a3ae8b092efcfa19 (diff)
development/ex-vi: Added support for large terminals.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/ex-vi/ex-vi.SlackBuild')
-rw-r--r--development/ex-vi/ex-vi.SlackBuild31
1 files changed, 29 insertions, 2 deletions
diff --git a/development/ex-vi/ex-vi.SlackBuild b/development/ex-vi/ex-vi.SlackBuild
index 9d7d5324fe5a..48963c40b414 100644
--- a/development/ex-vi/ex-vi.SlackBuild
+++ b/development/ex-vi/ex-vi.SlackBuild
@@ -6,9 +6,30 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20150331 bkw: build 2
+# Increase TUBE* constants in config.h to allow for larger terminals.
+
+# vi has hardcoded terminal size limits of 160 columns and 100 lines.
+# These days it's not unusual to have a 1920x1080 framenbuffer with 8x16
+# console font, for 240x67 characters. Increase limits here. Doing so uses
+# TUBESIZE bytes of memory at startup, and another TUBESIZE bytes every
+# time you switch from ex mode to visual mode, so let's not get too crazy
+# with the cheez whiz. The real problem is TUBECOLS (the width): if the
+# terminal exceeds this, you get 'Terminal too wide' and are stuck in ex
+# mode. Exceeding TUBELINES just means vi ignores the extra lines at the
+# bottom of the terminal.
+
+# Default to 320x200, which would be enough for a 8x16 console font on a
+# WQXGA 2560x1600 display, or a 2/3-width full-height X terminal on 4K
+# UHDTV (3840x2160). If I don't make this configurable, someone will
+# need it to be. So:
+TUBECOLS=${TUBECOLS:-320}
+TUBELINES=${TUBELINES:-200}
+
+# We now return you to your regularly scheduled programming:
PRGNAM=ex-vi
VERSION=${VERSION:-050325}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -55,10 +76,16 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# don't install the binary with the sticky bit set. It doesn't do anything
+# Don't install the binary with the sticky bit set. It doesn't do anything
# on Linux, and might set off alarm bells.
sed -i 's,-m 1755,-m 755,' Makefile
+# Apologies for the fugly sed code here. It works, though.
+sed -i -e "/^#define/s,\\(TUBESIZE *\\).*$,\\1 $(( TUBECOLS * TUBELINES ))," \
+ -e "/^#define/s,\\(TUBECOLS *\\).*$,\\1 $TUBECOLS," \
+ -e "/^#define/s,\\(TUBELINES *\\).*$,\\1 $TUBELINES," \
+ config.h
+
# To avoid conflicts with Slackware's elvis and/or vim, we install to /opt and
# include a login script to set PATH and MANPATH.
make all install \