fix possible LP64 issue (improper sentinel)
allow editors/pagers with arguments
getline namespace collision, upstream git 256ced029c

--- misc.c.orig	Sat May  5 11:17:26 2007
+++ misc.c	Thu Mar  1 22:04:17 2012
@@ -172,9 +172,11 @@ edit(char *pathname, long line)
 		if (line > 0) {
 			char buf[20];
 			snprintf(buf, 20, "+%ld", line);
-			execlp(vi, vi, buf, pathname, 0);
+			execl("/bin/sh", "sh", "-c", "exec $0 \"$@\"", vi,
+			      buf, pathname, (char *) NULL);
 		} else
-			execlp(vi, vi, pathname, 0);
+			execl("/bin/sh", "sh", "-c", "exec $0 \"$@\"", vi,
+			      pathname, (char *) NULL);
 		syserr();
 	}
 
@@ -213,7 +215,8 @@ view(char *pathname)
 	case -1:
 		syserr();
 	case 0:
-		execlp(pg, pg, pathname, 0);
+		execl("/bin/sh", "sh", "-c", "exec $0 \"$@\"", pg,
+		      pathname, (char *) NULL);
 		syserr();
 	}
 
@@ -245,7 +248,7 @@ pipeview(int *fd)
 		close(fds[1]);
 		dup2(fds[0], 0);
 		close(fds[0]);
-		execlp(pg, pg, 0);
+		execl("/bin/sh", "sh", "-c", "exec $0", pg, (char *) NULL);
 		syserr();
 	}
 
@@ -315,7 +318,7 @@ write_ldapvi_history()
 }
 
 char *
-getline(char *prompt, char *value)
+ldapvi_getline(char *prompt, char *value)
 {
 	tdialog d;
 	init_dialog(&d, DIALOG_DEFAULT, prompt, value);
