summaryrefslogtreecommitdiff
path: root/libre-testing/vi
diff options
context:
space:
mode:
Diffstat (limited to 'libre-testing/vi')
-rw-r--r--libre-testing/vi/PKGBUILD51
-rw-r--r--libre-testing/vi/fix-tubesize-short-overflow.patch12
-rw-r--r--libre-testing/vi/navkeys.patch55
-rw-r--r--libre-testing/vi/preserve-dir.patch99
4 files changed, 217 insertions, 0 deletions
diff --git a/libre-testing/vi/PKGBUILD b/libre-testing/vi/PKGBUILD
new file mode 100644
index 000000000..dc7860a51
--- /dev/null
+++ b/libre-testing/vi/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Eric BĂ©langer <eric@archlinux.org>
+
+pkgname=vi
+pkgver=070224
+pkgrel=3
+epoch=1
+pkgdesc="The original ex/vi text editor"
+arch=('x86_64' 'ppc64le')
+url="http://ex-vi.sourceforge.net/"
+license=('custom:ex')
+groups=('base')
+depends=('ncurses')
+optdepends=('s-nail: used by the preserve command for notification')
+source=(https://sources.archlinux.org/other/$pkgname/ex-$pkgver.tar.xz{,.sig}
+ fix-tubesize-short-overflow.patch
+ navkeys.patch
+ preserve-dir.patch)
+sha256sums=('c3e52dd44edd1f6bf0b52207f717c56149dc50aac0d131fff3851d589727f52f'
+ 'SKIP'
+ '42167fabebe30a13d594346b1d254db82090ba41742a9f35b8895d37092053f0'
+ '0e9e2d381f1d8cb86daae68462b3849825b003c08007725c0db9939d3d5bf58d'
+ 'f0ef9ed2ccea98bf47b08dd3faa2abb911b4e6c0579f5294e9d0e8742282ff65')
+validpgpkeys=('86CFFCA918CF3AF47147588051E8B148A9999C34')
+
+prepare() {
+ cd ex-$pkgver
+
+ patch -Np1 -i ../fix-tubesize-short-overflow.patch
+ patch -Np1 -i ../navkeys.patch
+
+ # https://bugs.archlinux.org/task/20653
+ patch -Np1 -i ../preserve-dir.patch
+}
+
+build() {
+ cd ex-$pkgver
+
+ make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
+ TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
+}
+
+package() {
+ cd ex-$pkgver
+
+ make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
+ INSTALL=/usr/bin/install DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre-testing/vi/fix-tubesize-short-overflow.patch b/libre-testing/vi/fix-tubesize-short-overflow.patch
new file mode 100644
index 000000000..46cc2af28
--- /dev/null
+++ b/libre-testing/vi/fix-tubesize-short-overflow.patch
@@ -0,0 +1,12 @@
+diff -upr ex-070224.orig/ex_vis.h ex-070224/ex_vis.h
+--- ex-070224.orig/ex_vis.h 2005-08-06 14:41:15.000000000 +0300
++++ ex-070224/ex_vis.h 2015-05-02 20:41:13.938665281 +0300
+@@ -104,7 +104,7 @@ var enum {
+ */
+ var short TUBELINES;
+ var short TUBECOLS;
+-var short TUBESIZE;
++var int TUBESIZE;
+
+ /*
+ * The screen in visual and crtopen is of varying size; the basic
diff --git a/libre-testing/vi/navkeys.patch b/libre-testing/vi/navkeys.patch
new file mode 100644
index 000000000..46924379c
--- /dev/null
+++ b/libre-testing/vi/navkeys.patch
@@ -0,0 +1,55 @@
+diff -ru ex-050325/ex_tty.c ex-050325-du/ex_tty.c
+--- ex-050325/ex_tty.c 2005-03-04 13:42:58.000000000 +0100
++++ ex-050325-du/ex_tty.c 2009-06-25 20:06:57.000000000 +0200
+@@ -132,7 +132,8 @@
+ &ED, &EI, &F0, &F1, &F2, &F3, &F4, &F5, &F6, &F7, &F8, &F9,
+ &HO, &IC, &IM, &IP, &KD, &KE, &KH, &KL, &KR, &KS, &KU, &LL, &ND, &xNL,
+ &xPC, &RC, &SC, &SE, &SF, &SO, &SR, &TA, &TE, &TI, &UP, &VB, &VS, &VE,
+- &AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM
++ &AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM,
++ &kI, &kD, &kh, &at7, &kP, &kN
+ };
+ bool *sflags[] = {
+ &AM, &BS, &DA, &DB, &EO, &HC,
+@@ -170,7 +171,12 @@
+ addmac1(KD, "j", "down", arrows, 1);
+ addmac1(KL, "h", "left", arrows, 1);
+ addmac1(KR, "l", "right", arrows, 1);
+- addmac1(KH, "H", "home", arrows, 1);
++ addmac1(kI, "i", "insert", arrows, 1);
++ addmac1(kD, "x", "delete", arrows, 1);
++ addmac1(kh, "^", "home", arrows, 1);
++ addmac1(at7, "$", "end", arrows, 1);
++ addmac1(kP, "", "pgup", arrows, 1);
++ addmac1(kN, "", "pgdn", arrows, 1);
+
+ /*
+ * Handle funny termcap capabilities
+@@ -341,7 +347,7 @@
+ *(*fp++) = flag;
+ namp += 2;
+ } while (*namp);
+- namp = "albcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullndnlpcrcscsesfsosrtatetiupvbvsveALDLUPDOLERI";
++ namp = "albcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullndnlpcrcscsesfsosrtatetiupvbvsveALDLUPDOLERIkIkDkh@7kPkN";
+ sp = sstrs;
+ do {
+ string = tgetstr(namp, &aoftspace);
+diff -ru ex-050325/ex_tty.h ex-050325-du/ex_tty.h
+--- ex-050325/ex_tty.h 2004-12-01 19:21:06.000000000 +0100
++++ ex-050325-du/ex_tty.h 2009-06-25 20:06:05.000000000 +0200
+@@ -183,6 +183,15 @@
+ var bool XX; /* Tektronix 4025 insert line */
+ /* X? is reserved for severely nauseous glitches */
+ /* If there are enough of these we may need bit masks! */
++/*
++ * Insert, Delete, Home, End, PgUp an PgDown keys
++ */
++var char *kI;
++var char *kD;
++var char *kh;
++var char *at7;
++var char *kP;
++var char *kN;
+
+ /*
+ * From the tty modes...
diff --git a/libre-testing/vi/preserve-dir.patch b/libre-testing/vi/preserve-dir.patch
new file mode 100644
index 000000000..ddfe8783a
--- /dev/null
+++ b/libre-testing/vi/preserve-dir.patch
@@ -0,0 +1,99 @@
+diff -Naur ex-050325.ori/ex.1 ex-050325/ex.1
+--- ex-050325.ori/ex.1 2005-02-17 07:39:36.000000000 -0500
++++ ex-050325/ex.1 2011-02-01 16:21:51.496666674 -0500
+@@ -1950,7 +1950,7 @@
+ .B /var/tmp/Rx\fInnnnnnnnnn\fP
+ named buffer temporary
+ .TP
+-.B /var/preserve
++.B /var/lib/ex
+ preservation directory
+ .SH DOCUMENTATION
+ The document
+diff -Naur ex-050325.ori/expreserve.c ex-050325/expreserve.c
+--- ex-050325.ori/expreserve.c 2005-03-04 07:44:46.000000000 -0500
++++ ex-050325/expreserve.c 2011-02-01 16:22:06.583333342 -0500
+@@ -272,7 +272,7 @@
+ #ifdef notdef
+ char pattern[] = "/usr/preserve/Exaa`XXXXX";
+ #else
+-char pattern[] = "/var/preserve/Exa`XXXXXXXXXX";
++char pattern[] = "/var/lib/ex/Exa`XXXXXXXXXX";
+ #endif
+
+ /*
+@@ -296,7 +296,7 @@
+ timestamp = ctime(&time);
+ timestamp[16] = 0; /* blast from seconds on */
+ putenv("MAILRC=/dev/null");
+- sprintf(cmd, "/bin/mail %s", pp->pw_name);
++ sprintf(cmd, "/usr/bin/mail %s", pp->pw_name);
+ setuid(getuid());
+ mf = popen(cmd, "w");
+ if (mf == NULL)
+diff -Naur ex-050325.ori/exrecover.c ex-050325/exrecover.c
+--- ex-050325.ori/exrecover.c 2005-03-04 07:44:46.000000000 -0500
++++ ex-050325/exrecover.c 2011-02-01 16:21:51.496666674 -0500
+@@ -167,7 +167,7 @@
+ #ifdef notdef
+ char mydir[] = "/usr/preserve";
+ #else
+-char mydir[] = "/var/preserve";
++char mydir[] = "/var/lib/ex";
+ #endif
+
+ /*
+diff -Naur ex-050325.ori/Makefile ex-050325/Makefile
+--- ex-050325.ori/Makefile 2005-03-24 18:50:09.000000000 -0500
++++ ex-050325/Makefile 2011-02-01 16:21:51.496666674 -0500
+@@ -83,7 +83,7 @@
+ BINDIR = $(PREFIX)/bin
+ LIBEXECDIR = $(PREFIX)/libexec
+ MANDIR = $(PREFIX)/share/man
+-PRESERVEDIR = /var/preserve
++PRESERVEDIR = /var/lib/ex
+
+ #
+ # DESTDIR is prepended to the installation paths. It is mostly useful
+diff -Naur ex-050325.ori/vi.1 ex-050325/vi.1
+--- ex-050325.ori/vi.1 2005-02-17 07:39:36.000000000 -0500
++++ ex-050325/vi.1 2011-02-01 16:21:51.496666674 -0500
+@@ -979,7 +979,7 @@
+ .B /var/tmp/Rx\fInnnnnnnnnn\fP
+ named buffer temporary
+ .TP
+-.B /var/preserve
++.B /var/lib/ex
+ preservation directory
+ .SH SEE ALSO
+ ex(1),
+--- ex-050325.original/ex.1 2012-01-27 20:43:00.602119283 +0100
++++ ex-050325/ex.1 2012-01-27 20:47:24.535436516 +0100
+@@ -1932,10 +1932,10 @@
+ Determines the terminal type.
+ .SH FILES
+ .TP
+-.B /usr/libexec/expreserve
++.B /usr/lib/ex/expreserve
+ preserve command
+ .TP
+-.B /usr/libexec/exrecover
++.B /usr/lib/ex/exrecover
+ recover command
+ .TP
+ .B /etc/termcap
+--- ex-050325.original/vi.1 2012-01-27 20:43:00.602119283 +0100
++++ ex-050325/vi.1 2012-01-27 20:46:33.815439611 +0100
+@@ -961,10 +961,10 @@
+ Determines the terminal type.
+ .SH FILES
+ .TP
+-.B /usr/libexec/expreserve
++.B /usr/lib/ex/expreserve
+ preserve command
+ .TP
+-.B /usr/libexec/exrecover
++.B /usr/lib/ex/exrecover
+ recover command
+ .TP
+ .B /etc/termcap