Added patch to avoid collision with perl macros. closes bug #523820. Thanks to Karl...
authorJesus Rivero <neurogeek@gentoo.org>
Thu, 19 Feb 2015 02:45:40 +0000 (02:45 +0000)
committerJesus Rivero <neurogeek@gentoo.org>
Thu, 19 Feb 2015 02:45:40 +0000 (02:45 +0000)
Package-Manager: portage-2.2.14/cvs/Linux i686
Manifest-Sign-Key: 0x748B2C601F6F0683

app-editors/nvi/ChangeLog
app-editors/nvi/Manifest
app-editors/nvi/files/nvi-1.81.6-strlen-macro-renaming.patch [new file with mode: 0644]
app-editors/nvi/nvi-1.81.6-r5.ebuild [new file with mode: 0644]

index 314c31d1794dbc8cd3a59c3efbb06419163f8d28..4ca81b26ffb00a724f1ba647b2e725e677cda593 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for app-editors/nvi
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-editors/nvi/ChangeLog,v 1.96 2014/01/26 12:20:13 ago Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-editors/nvi/ChangeLog,v 1.97 2015/02/19 02:45:24 neurogeek Exp $
+
+*nvi-1.81.6-r5 (18 Feb 2015)
+
+  18 Feb 2015; Jesus Rivero <neurogeek@gentoo.org> +nvi-1.81.6-r5.ebuild,
+  +files/nvi-1.81.6-strlen-macro-renaming.patch:
+  Added patch to avoid collision with perl macros. closes bug #523820. Thanks
+  to Karl Hakimian for the patch.
 
   26 Jan 2014; Agostino Sarubbo <ago@gentoo.org> nvi-1.81.6-r4.ebuild:
   Stable for sparc, wrt bug #496600
index d019ad37ba10d6d78de4af86b2abca28ffd71d6a..344923ccbea03e08b90b2b92ade86e46f48e8597 100644 (file)
@@ -6,26 +6,18 @@ AUX nvi-1.81.6-db.patch 686 SHA256 4d39930b1b3f84bb047dccc5629105379088255d2e1fb
 AUX nvi-1.81.6-db44.patch 1085 SHA256 c14af76de127592857c5b1490649faa2fa862b5e773b14cff515de51553ce40f SHA512 0a446faf0fff3d251fe2d23077692d427daa2ff8423df83712cca77fb18833f2e173c712616e3cc4af4733cd0fe25b1a952062489e2233df00704c6d8da1fb75 WHIRLPOOL 3249f89e7abb4461294fa18bac107077a13b91afc4dde61d1f82a86660a542a901c3b97b6180d3dca0979bcd965e59a080b5568531575be5b1accf0cb1999fef
 AUX nvi-1.81.6-perl-as-needed.patch 2799 SHA256 87d8cb928bc5260f5800f3e467ad02176d5a9211c81f5051f118d37e4a1877d5 SHA512 fe42a8dea897f1d6c93cdbaee3d71fce75c015527c9512914876fcaa2912848cc24b8b6a6a0275216852de01d635bd1d34e3932836c3e3f62a0f30b322f3dc96 WHIRLPOOL 1113f83cda693a44adcaef600c991dbd0cfa8c990815a952aac7080712ce54b84532bf7f1ca0d674ffa7eefea89417ac8cb0aa2d12039b76f68e49e60842bd03
 AUX nvi-1.81.6-perl-shortnames.patch 376 SHA256 a2fd1baec1d9efa2b201abd1705c667e4764a50917b2f2bcf7391b899b18b3ec SHA512 c3dc3986f06d9efeb5f26ae17e4430f0d17a8b7c50ff2553519198741b650cedbc2e4998d7b9b2873743578904dfde0add9e5ee55264e67073281f627dad2123 WHIRLPOOL 26e055af5b2b7e9e8c4ff0d5161b628e1b01a682d35fd75670a656183c763cabee6a26e8e26c96121e6626f654b158e8c20d49e5d67906b01a1e3e943dbdb431
+AUX nvi-1.81.6-strlen-macro-renaming.patch 18467 SHA256 5803bc981ff835c7f76f1ae23f8709f39b6907fba56f4e9d72a0172aed5a599a SHA512 af3470a3f56ede588439153ca84db331a418eecc08787ce89680e5614020418bfa0cb806530525d08ce65af189cb338162a5d77444c14f36036df3bb0327b196 WHIRLPOOL 14df3913b291c98c7d3d4d4332a94e447c2328409efdba6e81db00a492a889929321e763bea6cdd720d94654af84e344eedeb962100dcd321dbcd773f88631da
 AUX nvi-1.81.6-use_pkgconfig_for_ncurses.patch 945 SHA256 d42027a4ed66cd63d34fe09c38cad2efd0aaafb6b2d84764c55cc76d014d87a7 SHA512 15d524acfc98bfef4d490a5bb985be6d620487b82b997ffc6fae3e0ad90e7c3a392dd67ebe9fb247c758976485937102dd14422d6218ccbb0491018af5c21906 WHIRLPOOL 490bd5d534110e7c193ab91a6d941f3b58a812fe73a251edbfb2e7cf23bc55e71098dad75ff713dcb2c1fa0286dc620616d4ddd8e89955bf9be39b9e97f6ce42
 DIST nvi-1.81.6.tar.bz2 1758309 SHA256 3441b8e3247b2b6dd19b5fd38355fe6593b2a92e960ecb3dd00d676f63d06b59 SHA512 7e203f7ea6723427d18ff55361254991f50d395f89aab2ea52d0902c474acb24c289da7c35d9e907d652145f13483d8a8270f5c8ee72bd723a3b1eaeecc4f9fd WHIRLPOOL e349a09c281bc41b1ff404a9bfa6bc16b7e4b70c45a91efe231e4e766f72f83f5bbae9a901ffc448b8badae21a494fafd3292028f1a3234d8b92085206772375
 EBUILD nvi-1.81.6-r3.ebuild 2314 SHA256 3ac15c789ec2f65b661f1f321dd43bd15a016fea78de1b0c7001bc770577fc55 SHA512 950c37d104a6814af77d24ff6838c136bae83fb63375bbd011e1698a512473f9cf988e903b55afe1ccf506ef20024171c4cb6c992ef53fe185da57570460dd75 WHIRLPOOL c7f8c512f419e6bb8bffaf6574dcd2895181db95271d3d9e3b2a8ff289645160d0ada4361541e3ff9f47528a44808fbc49f3cee7e22767af66448d2fd6107f33
 EBUILD nvi-1.81.6-r4.ebuild 2372 SHA256 a8de357014bffa684edb543447fea8748f433993e192a28c094660504111ca80 SHA512 8e3f360dd308cc8391ba7415c98b16d60609b1ffe0061dff42b61fee9236d8445be60ecd131a4c8d5b05340b633ad85d11134719a4fd376596a35114703a260f WHIRLPOOL 4d2f079b30c1c239e7334d676a8bc8b55aa8ba9bf82dbb519efc2434f9f9b1dbd27e50a5153a57a4321954809263864b5581c607ecd8ce043d843cbf8e59568a
-MISC ChangeLog 13421 SHA256 873e4f117a7b69ee5bf9ead73434941f7f566026c12bcd10874454943961097e SHA512 46dc09763825a8e7775c9d36c1730d3c68064e800a23dc0e7bac2e62052c8a387cb297bcf30426c08d263ce36e93727f3d5915097dc823d80871002486df0558 WHIRLPOOL 75809a571df13db99657d18c865ce459caeb13941d35cb57ac56b4a3d52eab77cd7c0cbfdec856d96683d4eb38c6a79ba5bc3150d7e78c748e31d0a2d5468885
+EBUILD nvi-1.81.6-r5.ebuild 2440 SHA256 8d4083848dfa8bbbb04f9a323de6e752e91449ae88eeba01f9308215520dd89a SHA512 33bd859bd63a5322a43b8daf8362fce2a398556e7304e4c65ee1bcabd50a1da6e5dddf82ca19790a13835ada4a4f5d377e921897e41b633a7ef2a54823d4bc6a WHIRLPOOL f76afe50a9028ec63383b8f34cf837856dfb284388d8aee81bd9902f690834d553853bec19f29ba31db7733aec67afafd77629990108d13c3542ae6a2751744f
+MISC ChangeLog 13693 SHA256 68b62b4be32fe5156a08a7d329cdb73e8654067280851814ae7a631d1b13163b SHA512 c16ebf133dc832ebecc700901d43cb6c80630de0a571b1870eaebd1437cb6d4d7cfadd024088778ed8d05d96d109b7f3911565bf521629b81993682206aa9003 WHIRLPOOL 912ee474e0191a73d70d7f9cf378da6fd0a37a4d1652f60fa90739126d2056d76eaf774bbd25d7f9e0aee852973c86593d40d5710f6e3de10e079a8f59266f03
 MISC metadata.xml 234 SHA256 02f0cc57d2e1027d594d1686ac8f5d9cb992854b3e895beb7bd4c16d67cb90e9 SHA512 211ec5e95c3c4e23bcd28ce39518ffff08105334652f58ece6768229bd06623b5b6549445ebdcd2bc787f1be65e05d79f7fab5a53e7cd69774be22b593b7c71e WHIRLPOOL 1b91186683e7f17c9edca1c2bf4e295c6f5b3cd3e5179df4afc254e6efcd1d957b3e673dbee3666b01a627634905426a19949b755b18d18ef3a46864856b57bc
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.22 (GNU/Linux)
+Version: GnuPG v2
 
-iQIcBAEBCAAGBQJS5P1+AAoJELp701BxlEWfcOUP/0sb/mJOo/L8DTb/4FYjKLqc
-sHsmfn0DBJkzXdfLrg8Af6xUNrzRTR/7EC8UHtm+Gg/RPcOyxNZIB9cemUo7O6We
-WwabyKNHc9BXxjOvJTbQNuF/Iih2pWy/es2KPlChGt89y34zDulnn6fQrqli7+lG
-XnX1q6/Fqt1wMAmbqlY93BycUlp9DjBY/JONkdDulh5kGsme1IbZzRAnnys8NixH
-2OCe5WjMAyBh5ckZg2eijL/Cuh+a9g4DUcVi1hmbxBggGnm/obYbyzoe37KIykJ3
-1Kpc4QSvOKS52QmDV9xQ/bP1x/I7tF5yBYZacaEOOnF8lE8FWLDJXBW00c4NsGE8
-5TDhv5SbyP1TDx7eE0qlTkxwD4W691Dj1Fxa64wY+CcPQsvQDbfCDDRDTkuYeoeM
-2mOtSGkPEdKhUaU/K3m5ARr50L1+SHliFLDfVaNViRnTiKomikXB1S9pPyjlGP3D
-GZ8zKjXWwfPrxOW5jskonuXR8PZMCJ7VwquMHmUiLodGoLJ6dx+lKkNTDWFDzM/u
-dvAuC13fO0xnvz5hZ509JiyLgU+GdntpZJ6RIpomwW9W8ZwU4OkgExPhzCCDuwYg
-X9obb5MSjgOJ+KbSTe/gQze6sy+VP6NY2R7ISwTEQwMi3Df5UW9bHxtviV59zg4t
-yOOAiSZQGx46RVT5NBbW
-=625r
+iEUEAREIAAYFAlTlB/0ACgkQdIssYB9vBoPiVgCYiz+E6RP2Ma3S0Brghu5xFI8j
+uACfTN0X6gH8wTOA3Je6K3fitrgxwJM=
+=MxgM
 -----END PGP SIGNATURE-----
diff --git a/app-editors/nvi/files/nvi-1.81.6-strlen-macro-renaming.patch b/app-editors/nvi/files/nvi-1.81.6-strlen-macro-renaming.patch
new file mode 100644 (file)
index 0000000..70a47fd
--- /dev/null
@@ -0,0 +1,499 @@
+Created by: Karl Hakimian 
+Added by: Jesus Rivero <neurogeek@gentoo.org>
+Added on: Feb 18, 2015
+diff -rupN nvi-1.81.6.orig/common/api.c nvi-1.81.6/common/api.c
+--- nvi-1.81.6.orig/common/api.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/common/api.c    2015-02-17 11:04:50.199111784 -0800
+@@ -423,7 +423,7 @@ api_opts_get(SCR *sp, CHAR_T *name, char
+       switch (op->type) {
+       case OPT_0BOOL:
+       case OPT_1BOOL:
+-              MALLOC_RET(sp, *value, char *, STRLEN(op->name) + 2 + 1);
++              MALLOC_RET(sp, *value, char *, NVI_STRLEN(op->name) + 2 + 1);
+               (void)sprintf(*value,
+                   "%s"WS, O_ISSET(sp, offset) ? "" : "no", op->name);
+               if (boolvalue != NULL)
+diff -rupN nvi-1.81.6.orig/common/msg.c nvi-1.81.6/common/msg.c
+--- nvi-1.81.6.orig/common/msg.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/common/msg.c    2015-02-17 11:04:50.203891722 -0800
+@@ -378,7 +378,7 @@ msgq_wstr(SCR *sp, mtype_t mtype, CHAR_T
+               msgq(sp, mtype, fmt);
+               return;
+       }
+-      INT2CHAR(sp, str, STRLEN(str) + 1, nstr, nlen);
++      INT2CHAR(sp, str, NVI_STRLEN(str) + 1, nstr, nlen);
+       msgq_str(sp, mtype, nstr, fmt);
+ }
+ 
+diff -rupN nvi-1.81.6.orig/common/multibyte.h nvi-1.81.6/common/multibyte.h
+--- nvi-1.81.6.orig/common/multibyte.h 2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/common/multibyte.h      2015-02-17 11:04:50.204262910 -0800
+@@ -12,7 +12,7 @@ typedef      wchar_t         CHAR_T;
+ typedef       u_int           UCHAR_T;
+ #define RCHAR_BIT     24
+ 
+-#define STRLEN                wcslen
++#define NVI_STRLEN            wcslen
+ #define STRTOL                wcstol
+ #define STRTOUL               wcstoul
+ #define SPRINTF               swprintf
+@@ -31,7 +31,7 @@ typedef      u_char          CHAR_T;
+ typedef       u_char          UCHAR_T;
+ #define RCHAR_BIT     CHAR_BIT
+ 
+-#define STRLEN                strlen
++#define NVI_STRLEN            strlen
+ #define STRTOL                strtol
+ #define STRTOUL               strtoul
+ #define SPRINTF               snprintf
+diff -rupN nvi-1.81.6.orig/common/options.c nvi-1.81.6/common/options.c
+--- nvi-1.81.6.orig/common/options.c   2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/common/options.c        2015-02-17 11:04:50.195900457 -0800
+@@ -315,7 +315,7 @@ opts_init(SCR *sp, int *oargs)
+ 
+       /* Set numeric and string default values. */
+ #define       OI(indx, str) {                                                 \
+-      a.len = STRLEN(str);                                            \
++      a.len = NVI_STRLEN(str);                                                \
+       if ((CHAR_T*)str != b2)   /* GCC puts strings in text-space. */ \
+               (void)MEMCPY(b2, str, a.len+1);                         \
+       if (opts_set(sp, argv, NULL)) {                                 \
+@@ -620,10 +620,10 @@ opts_set(SCR *sp, ARGS **argv, char *usa
+                               goto badnum;
+                       if ((nret =
+                           nget_uslong(sp, &value, sep, &endp, 10)) != NUM_OK) {
+-                              INT2CHAR(sp, name, STRLEN(name) + 1, 
++                              INT2CHAR(sp, name, NVI_STRLEN(name) + 1, 
+                                            np, nlen);
+                               p2 = msg_print(sp, np, &nf);
+-                              INT2CHAR(sp, sep, STRLEN(sep) + 1, 
++                              INT2CHAR(sp, sep, NVI_STRLEN(sep) + 1, 
+                                            np, nlen);
+                               t2 = msg_print(sp, np, &nf2);
+                               switch (nret) {
+@@ -647,10 +647,10 @@ opts_set(SCR *sp, ARGS **argv, char *usa
+                               break;
+                       }
+                       if (*endp && !ISBLANK(*endp)) {
+-badnum:                               INT2CHAR(sp, name, STRLEN(name) + 1, 
++badnum:                               INT2CHAR(sp, name, NVI_STRLEN(name) + 1, 
+                                            np, nlen);
+                               p2 = msg_print(sp, np, &nf);
+-                              INT2CHAR(sp, sep, STRLEN(sep) + 1, 
++                              INT2CHAR(sp, sep, NVI_STRLEN(sep) + 1, 
+                                            np, nlen);
+                               t2 = msg_print(sp, np, &nf2);
+                               msgq(sp, M_ERR,
+@@ -680,7 +680,7 @@ badnum:                            INT2CHAR(sp, name, STRLEN(nam
+                               break;
+ 
+                       /* Report to subsystems. */
+-                      INT2CHAR(sp, sep, STRLEN(sep) + 1, np, nlen);
++                      INT2CHAR(sp, sep, NVI_STRLEN(sep) + 1, np, nlen);
+                       if (op->func != NULL &&
+                           op->func(sp, spo, np, &value) ||
+                           ex_optchange(sp, offset, np, &value) ||
+@@ -712,7 +712,7 @@ badnum:                            INT2CHAR(sp, name, STRLEN(nam
+                        * Do nothing if the value is unchanged, the underlying
+                        * functions can be expensive.
+                        */
+-                      INT2CHAR(sp, sep, STRLEN(sep) + 1, np, nlen);
++                      INT2CHAR(sp, sep, NVI_STRLEN(sep) + 1, np, nlen);
+                       if (!F_ISSET(op, OPT_ALWAYS) &&
+                           O_STR(sp, offset) != NULL &&
+                           !strcmp(O_STR(sp, offset), np))
+@@ -879,7 +879,7 @@ opts_dump(SCR *sp, enum optdisp type)
+               }
+               F_CLR(&sp->opts[cnt], OPT_SELECTED);
+ 
+-              curlen = STRLEN(op->name);
++              curlen = NVI_STRLEN(op->name);
+               switch (op->type) {
+               case OPT_0BOOL:
+               case OPT_1BOOL:
+@@ -1049,7 +1049,7 @@ opts_search(CHAR_T *name)
+        * Check to see if the name is the prefix of one (and only one)
+        * option.  If so, return the option.
+        */
+-      len = STRLEN(name);
++      len = NVI_STRLEN(name);
+       for (found = NULL, op = optlist; op->name != NULL; ++op) {
+               if (op->name[0] < name[0])
+                       continue;
+diff -rupN nvi-1.81.6.orig/dist/tags nvi-1.81.6/dist/tags
+--- nvi-1.81.6.orig/dist/tags  2007-11-18 08:43:55.000000000 -0800
++++ nvi-1.81.6/dist/tags       2015-02-17 11:04:50.225314084 -0800
+@@ -1068,8 +1068,8 @@ SPRINTF  ../common/multibyte.h   37;"    d
+ STANDARD_TAB  ../common/key.h 213;"   d
+ STRCMP        ../common/multibyte.h   19;"    d
+ STRCMP        ../common/multibyte.h   38;"    d
+-STRLEN        ../common/multibyte.h   15;"    d
+-STRLEN        ../common/multibyte.h   34;"    d
++NVI_STRLEN    ../common/multibyte.h   15;"    d
++NVI_STRLEN    ../common/multibyte.h   34;"    d
+ STRPBRK       ../common/multibyte.h   20;"    d
+ STRPBRK       ../common/multibyte.h   39;"    d
+ STRSET        ../common/multibyte.h   22;"    d
+diff -rupN nvi-1.81.6.orig/ex/ex_argv.c nvi-1.81.6/ex/ex_argv.c
+--- nvi-1.81.6.orig/ex/ex_argv.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_argv.c    2015-02-17 11:04:50.267171388 -0800
+@@ -217,7 +217,7 @@ argv_exp2(SCR *sp, EXCMD *excp, CHAR_T *
+ 
+                       *p = '\0';
+                       INT2CHAR(sp, bp + SHELLOFFSET, 
+-                               STRLEN(bp + SHELLOFFSET) + 1, np, nlen);
++                               NVI_STRLEN(bp + SHELLOFFSET) + 1, np, nlen);
+                       d = strdup(np);
+                       rval = argv_lexp(sp, excp, d);
+                       free (d);
+@@ -332,7 +332,7 @@ argv_fexp(SCR *sp, EXCMD *excp, CHAR_T *
+                                   "115|No previous command to replace \"!\"");
+                               return (1);
+                       }
+-                      len += tlen = STRLEN(exp->lastbcomm);
++                      len += tlen = NVI_STRLEN(exp->lastbcomm);
+                       off = p - bp;
+                       ADD_SPACE_RETW(sp, bp, blen, len);
+                       p = bp + off;
+@@ -683,7 +683,7 @@ err:               if (ifp != NULL)
+                * XXX
+                * Assume that all shells have -c.
+                */
+-              INT2CHAR(sp, bp, STRLEN(bp)+1, np, nlen);
++              INT2CHAR(sp, bp, NVI_STRLEN(bp)+1, np, nlen);
+               execl(sh_path, sh, "-c", np, (char *)NULL);
+               msgq_str(sp, M_SYSERR, sh_path, "118|Error: execl: %s");
+               _exit(127);
+diff -rupN nvi-1.81.6.orig/ex/ex_cscope.c nvi-1.81.6/ex/ex_cscope.c
+--- nvi-1.81.6.orig/ex/ex_cscope.c     2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_cscope.c  2015-02-17 11:04:50.261539058 -0800
+@@ -140,7 +140,7 @@ ex_cscope(SCR *sp, EXCMD *cmdp)
+               for (; *p && isspace(*p); ++p);
+       }
+ 
+-      INT2CHAR(sp, cmd, STRLEN(cmd) + 1, np, nlen);
++      INT2CHAR(sp, cmd, NVI_STRLEN(cmd) + 1, np, nlen);
+       if ((ccp = lookup_ccmd(np)) == NULL) {
+ usage:                msgq(sp, M_ERR, "309|Use \"cscope help\" for help");
+               return (1);
+@@ -214,7 +214,7 @@ cscope_add(SCR *sp, EXCMD *cmdp, CHAR_T
+        * >1 additional args: object, too many args.
+        */
+       cur_argc = cmdp->argc;
+-      if (argv_exp2(sp, cmdp, dname, STRLEN(dname))) {
++      if (argv_exp2(sp, cmdp, dname, NVI_STRLEN(dname))) {
+               return (1);
+       }
+       if (cmdp->argc == cur_argc) {
+@@ -228,7 +228,7 @@ cscope_add(SCR *sp, EXCMD *cmdp, CHAR_T
+               return (1);
+       }
+ 
+-      INT2CHAR(sp, dname, STRLEN(dname)+1, np, nlen);
++      INT2CHAR(sp, dname, NVI_STRLEN(dname)+1, np, nlen);
+ 
+       /*
+        * The user can specify a specific file (so they can have multiple
+@@ -471,7 +471,7 @@ cscope_find(SCR *sp, EXCMD *cmdp, CHAR_T
+       }
+ 
+       /* Create the cscope command. */
+-      INT2CHAR(sp, pattern, STRLEN(pattern) + 1, np, nlen);
++      INT2CHAR(sp, pattern, NVI_STRLEN(pattern) + 1, np, nlen);
+       np = strdup(np);
+       if ((tqp = create_cs_cmd(sp, np, &search)) == NULL)
+               goto err;
+@@ -801,7 +801,7 @@ cscope_help(SCR *sp, EXCMD *cmdp, CHAR_T
+       char *np;
+       size_t nlen;
+ 
+-      INT2CHAR(sp, subcmd, STRLEN(subcmd) + 1, np, nlen);
++      INT2CHAR(sp, subcmd, NVI_STRLEN(subcmd) + 1, np, nlen);
+       return (csc_help(sp, np));
+ }
+ 
+@@ -842,7 +842,7 @@ cscope_kill(SCR *sp, EXCMD *cmdp, CHAR_T
+       char *np;
+       size_t nlen;
+ 
+-      INT2CHAR(sp, cn, STRLEN(cn) + 1, np, nlen);
++      INT2CHAR(sp, cn, NVI_STRLEN(cn) + 1, np, nlen);
+       return (terminate(sp, NULL, atoi(np)));
+ }
+ 
+diff -rupN nvi-1.81.6.orig/ex/ex_filter.c nvi-1.81.6/ex/ex_filter.c
+--- nvi-1.81.6.orig/ex/ex_filter.c     2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_filter.c  2015-02-17 11:04:50.263257613 -0800
+@@ -138,7 +138,7 @@ err:               if (input[0] != -1)
+               else
+                       ++name;
+ 
+-              INT2SYS(sp, cmd, STRLEN(cmd)+1, np, nlen);
++              INT2SYS(sp, cmd, NVI_STRLEN(cmd)+1, np, nlen);
+               execl(O_STR(sp, O_SHELL), name, "-c", np, (char *)NULL);
+               msgq_str(sp, M_SYSERR, O_STR(sp, O_SHELL), "execl: %s");
+               _exit (127);
+@@ -283,7 +283,7 @@ err:               if (input[0] != -1)
+        * Ignore errors on vi file reads, to make reads prettier.  It's
+        * completely inconsistent, and historic practice.
+        */
+-uwait:        INT2CHAR(sp, cmd, STRLEN(cmd) + 1, np, nlen);
++uwait:        INT2CHAR(sp, cmd, NVI_STRLEN(cmd) + 1, np, nlen);
+       return (proc_wait(sp, (long)utility_pid, np,
+           ftype == FILTER_READ && F_ISSET(sp, SC_VI) ? 1 : 0, 0) || rval);
+ }
+diff -rupN nvi-1.81.6.orig/ex/ex_init.c nvi-1.81.6/ex/ex_init.c
+--- nvi-1.81.6.orig/ex/ex_init.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_init.c    2015-02-17 11:04:50.279419412 -0800
+@@ -61,7 +61,7 @@ ex_screen_copy(SCR *orig, SCR *sp)
+ 
+               if (oexp->lastbcomm != NULL &&
+                   (nexp->lastbcomm = v_wstrdup(sp, oexp->lastbcomm, 
+-                                   STRLEN(oexp->lastbcomm))) == NULL) {
++                                   NVI_STRLEN(oexp->lastbcomm))) == NULL) {
+                       msgq(sp, M_SYSERR, NULL);
+                       return(1);
+               }
+diff -rupN nvi-1.81.6.orig/ex/ex_tag.c nvi-1.81.6/ex/ex_tag.c
+--- nvi-1.81.6.orig/ex/ex_tag.c        2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_tag.c     2015-02-17 11:04:50.275254557 -0800
+@@ -68,7 +68,7 @@ ex_tag_first(SCR *sp, CHAR_T *tagarg)
+ 
+       /* Build an argument for the ex :tag command. */
+       ex_cinit(sp, &cmd, C_TAG, 0, OOBLNO, OOBLNO, 0);
+-      argv_exp0(sp, &cmd, tagarg, STRLEN(tagarg));
++      argv_exp0(sp, &cmd, tagarg, NVI_STRLEN(tagarg));
+ 
+       /*
+        * XXX
+@@ -115,7 +115,7 @@ ex_tag_push(SCR *sp, EXCMD *cmdp)
+ 
+               /* Taglength may limit the number of characters. */
+               if ((tl =
+-                  O_VAL(sp, O_TAGLENGTH)) != 0 && STRLEN(exp->tag_last) > tl)
++                  O_VAL(sp, O_TAGLENGTH)) != 0 && NVI_STRLEN(exp->tag_last) > tl)
+                       exp->tag_last[tl] = '\0';
+               break;
+       case 0:
+@@ -587,7 +587,7 @@ ex_tag_copy(SCR *orig, SCR *sp)
+       /* Copy the last tag. */
+       if (oexp->tag_last != NULL &&
+           (nexp->tag_last = v_wstrdup(sp, oexp->tag_last, 
+-                                      STRLEN(oexp->tag_last))) == NULL) {
++                                      NVI_STRLEN(oexp->tag_last))) == NULL) {
+               msgq(sp, M_SYSERR, NULL);
+               return (1);
+       }
+@@ -997,7 +997,7 @@ ctag_slist(SCR *sp, CHAR_T *tag)
+       exp = EXP(sp);
+ 
+       /* Allocate and initialize the tag queue structure. */
+-      INT2CHAR(sp, tag, STRLEN(tag) + 1, np, nlen);
++      INT2CHAR(sp, tag, NVI_STRLEN(tag) + 1, np, nlen);
+       len = nlen - 1;
+       CALLOC_GOTO(sp, tqp, TAGQ *, 1, sizeof(TAGQ) + len + 1);
+       CIRCLEQ_INIT(&tqp->tagq);
+diff -rupN nvi-1.81.6.orig/ex/ex_util.c nvi-1.81.6/ex/ex_util.c
+--- nvi-1.81.6.orig/ex/ex_util.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_util.c    2015-02-17 11:04:50.268378054 -0800
+@@ -153,7 +153,7 @@ ex_wemsg(SCR* sp, CHAR_T *p, exm_t which
+       char *np;
+       size_t nlen;
+ 
+-      if (p) INT2CHAR(sp, p, STRLEN(p), np, nlen);
++      if (p) INT2CHAR(sp, p, NVI_STRLEN(p), np, nlen);
+       else np = NULL;
+       ex_emsg(sp, np, which);
+ }
+diff -rupN nvi-1.81.6.orig/ex/ex_write.c nvi-1.81.6/ex/ex_write.c
+--- nvi-1.81.6.orig/ex/ex_write.c      2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ex/ex_write.c   2015-02-17 11:04:50.277249383 -0800
+@@ -158,7 +158,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cm
+                       ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE);
+                       return (1);
+               }
+-              if (argv_exp1(sp, cmdp, p, STRLEN(p), 1))
++              if (argv_exp1(sp, cmdp, p, NVI_STRLEN(p), 1))
+                       return (1);
+ 
+               /*
+@@ -203,7 +203,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cm
+                   &cmdp->addr1, &cmdp->addr2, NULL, flags));
+ 
+       /* Build an argv so we get an argument count and file expansion. */
+-      if (argv_exp2(sp, cmdp, p, STRLEN(p)))
++      if (argv_exp2(sp, cmdp, p, NVI_STRLEN(p)))
+               return (1);
+ 
+       /*
+@@ -255,7 +255,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cm
+                       set_alt_name(sp, name);
+               break;
+       default:
+-              INT2CHAR(sp, p, STRLEN(p) + 1, n, nlen);
++              INT2CHAR(sp, p, NVI_STRLEN(p) + 1, n, nlen);
+               ex_emsg(sp, n, EXM_FILECOUNT);
+               return (1);
+       }
+diff -rupN nvi-1.81.6.orig/ip/ip_term.c nvi-1.81.6/ip/ip_term.c
+--- nvi-1.81.6.orig/ip/ip_term.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/ip/ip_term.c    2015-02-17 11:04:50.280203225 -0800
+@@ -127,7 +127,7 @@ ip_optchange(SCR *sp, int offset, char *
+ 
+       ipb.code = SI_EDITOPT;
+       ipb.str1 = (char*)opt->name;
+-      ipb.len1 = STRLEN(opt->name) * sizeof(CHAR_T);
++      ipb.len1 = NVI_STRLEN(opt->name) * sizeof(CHAR_T);
+ 
+       (void)vi_send(ipp->o_fd, "ab1", &ipb);
+       return (0);
+diff -rupN nvi-1.81.6.orig/perl_api/perl.xs nvi-1.81.6/perl_api/perl.xs
+--- nvi-1.81.6.orig/perl_api/perl.xs   2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/perl_api/perl.xs        2015-02-17 11:04:50.189684363 -0800
+@@ -326,7 +326,7 @@ perl_ex_perl(scrp, cmdp, cmdlen, f_lno,
+       newVIrv(pp->svid, scrp);
+ 
+       istat = signal(SIGINT, my_sighandler);
+-      INT2CHAR(scrp, cmdp, STRLEN(cmdp)+1, np, nlen);
++      INT2CHAR(scrp, cmdp, NVI_STRLEN(cmdp)+1, np, nlen);
+       perl_eval(np);
+       signal(SIGINT, istat);
+ 
+@@ -421,7 +421,7 @@ perl_ex_perldo(scrp, cmdp, cmdlen, f_lno
+       /* Backwards compatibility. */
+       newVIrv(pp->svid, scrp);
+ 
+-      INT2CHAR(scrp, cmdp, STRLEN(cmdp)+1, np, nlen);
++      INT2CHAR(scrp, cmdp, NVI_STRLEN(cmdp)+1, np, nlen);
+       if (!(command = malloc(length = nlen - 1 + sizeof("sub {}"))))
+               return 1;
+       snprintf(command, length, "sub {%s}", np);
+diff -rupN nvi-1.81.6.orig/regex/engine.c nvi-1.81.6/regex/engine.c
+--- nvi-1.81.6.orig/regex/engine.c     2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/regex/engine.c  2015-02-17 11:04:50.181456859 -0800
+@@ -161,7 +161,7 @@ int eflags;
+               stop = string + pmatch[0].rm_eo;
+       } else {
+               start = string;
+-              stop = start + STRLEN(start);
++              stop = start + NVI_STRLEN(start);
+       }
+       if (stop < start)
+               return(REG_INVARG);
+diff -rupN nvi-1.81.6.orig/regex/regcomp.c nvi-1.81.6/regex/regcomp.c
+--- nvi-1.81.6.orig/regex/regcomp.c    2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/regex/regcomp.c 2015-02-17 11:04:50.175705539 -0800
+@@ -198,7 +198,7 @@ regcomp(regex_t *preg, const RCHAR_T *pa
+                       return(REG_INVARG);
+               len = preg->re_endp - pattern;
+       } else
+-              len = STRLEN(pattern);
++              len = NVI_STRLEN(pattern);
+ 
+       /* do the mallocs early so failure handling is easy */
+       g = (struct re_guts *)malloc(sizeof(struct re_guts) +
+@@ -818,7 +818,7 @@ p_b_cclass(register struct parse *p, reg
+               NEXT();
+       len = p->next - sp;
+       for (cp = cclasses; cp->name != NULL; cp++)
+-              if (STRLEN(cp->name) == len && MEMCMP(cp->name, sp, len))
++              if (NVI_STRLEN(cp->name) == len && MEMCMP(cp->name, sp, len))
+                       break;
+       if (cp->name == NULL) {
+               /* oops, didn't find it */
+@@ -889,7 +889,7 @@ p_b_coll_elem(register struct parse *p,
+       }
+       len = p->next - sp;
+       for (cp = cnames; cp->name != NULL; cp++)
+-              if (STRLEN(cp->name) == len && MEMCMP(cp->name, sp, len))
++              if (NVI_STRLEN(cp->name) == len && MEMCMP(cp->name, sp, len))
+                       return(cp->code);       /* known name */
+       if (len == 1)
+               return(*sp);    /* single character */
+diff -rupN nvi-1.81.6.orig/vi/v_event.c nvi-1.81.6/vi/v_event.c
+--- nvi-1.81.6.orig/vi/v_event.c       2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/vi/v_event.c    2015-02-17 11:04:50.242966563 -0800
+@@ -97,7 +97,7 @@ v_editopt(SCR *sp, VICMD *vp)
+       size_t nlen;
+       char *p2;
+ 
+-      INT2CHAR(sp, vp->ev.e_str2, STRLEN(vp->ev.e_str2)+1, np, nlen);
++      INT2CHAR(sp, vp->ev.e_str2, NVI_STRLEN(vp->ev.e_str2)+1, np, nlen);
+       p2 = strdup(np);
+       rval = api_opts_set(sp, vp->ev.e_str1, p2, 
+                           vp->ev.e_val1, vp->ev.e_val1);
+@@ -135,7 +135,7 @@ v_tag(SCR *sp, VICMD *vp)
+               return (1);
+ 
+       ex_cinit(sp, &cmd, C_TAG, 0, OOBLNO, OOBLNO, 0);
+-      argv_exp0(sp, &cmd, VIP(sp)->keyw, STRLEN(VIP(sp)->keyw));
++      argv_exp0(sp, &cmd, VIP(sp)->keyw, NVI_STRLEN(VIP(sp)->keyw));
+       return (v_exec_ex(sp, vp, &cmd));
+ }
+ 
+@@ -167,7 +167,7 @@ v_tagsplit(SCR *sp, VICMD *vp)
+ 
+       ex_cinit(sp, &cmd, C_TAG, 0, OOBLNO, OOBLNO, 0);
+       F_SET(&cmd, E_NEWSCREEN);
+-      argv_exp0(sp, &cmd, VIP(sp)->keyw, STRLEN(VIP(sp)->keyw));
++      argv_exp0(sp, &cmd, VIP(sp)->keyw, NVI_STRLEN(VIP(sp)->keyw));
+       return (v_exec_ex(sp, vp, &cmd));
+ }
+ 
+diff -rupN nvi-1.81.6.orig/vi/v_ex.c nvi-1.81.6/vi/v_ex.c
+--- nvi-1.81.6.orig/vi/v_ex.c  2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/vi/v_ex.c       2015-02-17 11:04:50.246380280 -0800
+@@ -210,7 +210,7 @@ v_tagpush(SCR *sp, VICMD *vp)
+       EXCMD cmd;
+ 
+       ex_cinit(sp, &cmd, C_TAG, 0, OOBLNO, 0, 0);
+-      argv_exp0(sp, &cmd, VIP(sp)->keyw, STRLEN(VIP(sp)->keyw) + 1);
++      argv_exp0(sp, &cmd, VIP(sp)->keyw, NVI_STRLEN(VIP(sp)->keyw) + 1);
+       return (v_exec_ex(sp, vp, &cmd));
+ }
+ 
+diff -rupN nvi-1.81.6.orig/vi/vs_msg.c nvi-1.81.6/vi/vs_msg.c
+--- nvi-1.81.6.orig/vi/vs_msg.c        2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/vi/vs_msg.c     2015-02-17 11:04:50.251093618 -0800
+@@ -175,7 +175,7 @@ vs_update(SCR *sp, const char *m1, const
+        */
+       if (F_ISSET(sp, SC_SCR_EXWROTE)) {
+               if (m2 != NULL)
+-                      INT2CHAR(sp, m2, STRLEN(m2) + 1, np, nlen);
++                      INT2CHAR(sp, m2, NVI_STRLEN(m2) + 1, np, nlen);
+               (void)ex_printf(sp,
+                   "%s\n", m1 == NULL? "" : m1, m2 == NULL ? "" : np);
+               (void)ex_fflush(sp);
+@@ -203,7 +203,7 @@ vs_update(SCR *sp, const char *m1, const
+       } else
+               len = 0;
+       if (m2 != NULL) {
+-              mlen = STRLEN(m2);
++              mlen = NVI_STRLEN(m2);
+               if (len + mlen > sp->cols - 2)
+                       mlen = (sp->cols - 2) - len;
+               (void)gp->scr_waddstr(sp, m2, mlen);
+diff -rupN nvi-1.81.6.orig/vi/vs_split.c nvi-1.81.6/vi/vs_split.c
+--- nvi-1.81.6.orig/vi/vs_split.c      2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/vi/vs_split.c   2015-02-17 11:04:50.256136584 -0800
+@@ -628,7 +628,7 @@ vs_fg(SCR *sp, SCR **nspp, CHAR_T *name,
+       wp = sp->wp;
+ 
+       if (name)
+-          INT2CHAR(sp, name, STRLEN(name) + 1, np, nlen);
++          INT2CHAR(sp, name, NVI_STRLEN(name) + 1, np, nlen);
+       else
+           np = NULL;
+       if (newscreen)
+diff -rupN nvi-1.81.6.orig/vi/v_txt.c nvi-1.81.6/vi/v_txt.c
+--- nvi-1.81.6.orig/vi/v_txt.c 2007-11-18 08:41:42.000000000 -0800
++++ nvi-1.81.6/vi/v_txt.c      2015-02-17 11:04:50.240596567 -0800
+@@ -2049,7 +2049,7 @@ retry:           for (len = 0,
+               return (0);
+       case 1:                         /* One match. */
+               /* If something changed, do the exchange. */
+-              nlen = STRLEN(cmd.argv[0]->bp);
++              nlen = NVI_STRLEN(cmd.argv[0]->bp);
+               if (len != nlen || MEMCMP(cmd.argv[0]->bp, p, len))
+                       break;
+ 
diff --git a/app-editors/nvi/nvi-1.81.6-r5.ebuild b/app-editors/nvi/nvi-1.81.6-r5.ebuild
new file mode 100644 (file)
index 0000000..e7a84b2
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-editors/nvi/nvi-1.81.6-r5.ebuild,v 1.1 2015/02/19 02:45:24 neurogeek Exp $
+
+EAPI=4
+
+inherit autotools db-use eutils flag-o-matic
+
+DBVERS="4.8.30 4.7 4.6 4.5 4.4 4.3 4.2"
+DBSLOTS=
+DBDEPENDS=
+for DBVER in ${DBVERS}
+do
+       if [[ ${DBVER} = *.*.* ]]; then
+               DBSLOTS="${DBSLOTS} ${DBVER%.*}"
+               DBDEPENDS="${DBDEPENDS} >=sys-libs/db-${DBVER}:${DBVER%.*}"
+       else
+               DBSLOTS="${DBSLOTS} ${DBVER}"
+               DBDEPENDS="${DBDEPENDS} sys-libs/db:${DBVER}"
+       fi
+done
+
+DESCRIPTION="Vi clone"
+HOMEPAGE="https://sites.google.com/a/bostic.com/keithbostic/vi"
+SRC_URI="http://garage.linux.student.kuleuven.be/~skimo/nvi/devel/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="perl tcl unicode"
+
+CDEPEND="|| ( ${DBDEPENDS} )
+       >=sys-libs/ncurses-5.6-r2
+       perl? ( dev-lang/perl )
+       tcl? ( !unicode? ( >=dev-lang/tcl-8.5 ) )"
+
+DEPEND="${CDEPEND}
+               virtual/pkgconfig"
+
+RDEPEND="${CDEPEND}
+       app-admin/eselect-vi"
+
+REQUIRED_USE="tcl? ( !unicode )"
+
+src_prepare() {
+
+       epatch "${FILESDIR}"/${P}-strlen-macro-renaming.patch
+       epatch "${FILESDIR}"/${P}-db44.patch
+       epatch "${FILESDIR}"/${P}-db.patch
+       epatch "${FILESDIR}"/${P}-perl-as-needed.patch
+       epatch "${FILESDIR}"/${P}-perl-shortnames.patch
+       epatch "${FILESDIR}"/${P}-ac_config_header.patch
+       epatch "${FILESDIR}"/${P}-use_pkgconfig_for_ncurses.patch
+
+       cd dist || die
+       chmod +x findconfig || die
+
+       append-cppflags -I"$(db_includedir ${DBSLOTS})"
+
+       sed -i -e "s@-ldb@-l$(db_libname ${DBSLOTS})@" configure.in || die
+       rm -f configure || die
+       eautoreconf -Im4
+}
+
+src_configure() {
+       local myconf
+
+       use perl && myconf="${myconf} --enable-perlinterp"
+       use unicode && myconf="${myconf} --enable-widechar"
+       use tcl && ! use unicode && myconf="${myconf} --enable-tclinterp"
+
+       append-cppflags '-D_PATH_MSGCAT="\"/usr/share/vi/catalog/\""'
+
+       pushd dist 2>/dev/null
+       econf \
+               --program-prefix=n \
+               ${myconf} \
+               || die "configure failed"
+       popd 2>/dev/null
+}
+
+src_compile() {
+       pushd dist 2>/dev/null
+       emake || die "make failed"
+       popd 2>/dev/null
+}
+
+src_install() {
+       pushd dist 2>/dev/null
+       emake -j1 DESTDIR="${D}" install || die "install failed"
+       popd 2>/dev/null
+}
+
+pkg_postinst() {
+       einfo "Setting /usr/bin/vi symlink"
+       eselect vi update --if-unset
+}
+
+pkg_postrm() {
+       einfo "Updating /usr/bin/vi symlink"
+       eselect vi update --if-unset
+}