mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
Update new port to 2.9.6
Give maintainership to new fork of joe Remove unneeded patches Fix up pkg-descr PR: 26773 Submitted by: Pete Fritchman <petef@databits.net>
This commit is contained in:
parent
79bd4915f4
commit
09d91258bb
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=44437
@ -1,22 +1,29 @@
|
||||
# New ports collection makefile for: joe
|
||||
# Date created: 01 Jul 1995
|
||||
# Whom: torstenb@FreeBSD.org
|
||||
# New ports collection makefile for: joe-devel
|
||||
# Date created: 25 Jul 2001
|
||||
# Whom: dwcjr@FreeBSD.org
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= joe
|
||||
PORTVERSION= 2.8
|
||||
PORTREVISION= 3
|
||||
CATEGORIES+= editors
|
||||
MASTER_SITES= ftp://ftp.std.com/src/editors/
|
||||
DISTNAME= ${PORTNAME}${PORTVERSION}
|
||||
EXTRACT_SUFX= .tar.Z
|
||||
PORTVERSION= 2.9.6
|
||||
CATEGORIES= editors
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
|
||||
MASTER_SITE_SUBDIR= joe-editor
|
||||
EXTRACT_SUFX= .tgz
|
||||
|
||||
MAINTAINER?= toasty@dragondata.com
|
||||
MAINTAINER= petef@databits.net
|
||||
|
||||
WRKSRC= ${WRKDIR}/joe
|
||||
ALL_TARGET= joe
|
||||
MAN1= joe.1
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
USE_GMAKE= yes
|
||||
|
||||
post-install:
|
||||
.if !defined(NOPORTDOCS)
|
||||
@${MKDIR} ${PREFIX}/share/doc/joe
|
||||
${INSTALL_DATA} ${WRKSRC}/INFO ${WRKSRC}/README ${PREFIX}/share/doc/joe
|
||||
${INSTALL_DATA} ${WRKSRC}/LIST ${PREFIX}/share/doc/joe/CommandList
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1 +1 @@
|
||||
MD5 (joe2.8.tar.Z) = bad4221aa63ca432e37dac1a953294b1
|
||||
MD5 (joe-2.9.6.tgz) = 304084bd8e32ec3a4ac2d90bbfef19b3
|
||||
|
@ -1,106 +0,0 @@
|
||||
*** Makefile.orig Sat Jul 1 18:43:39 1995
|
||||
--- Makefile Sat Jul 1 18:59:47 1995
|
||||
***************
|
||||
*** 9,17 ****
|
||||
# to go and where you want the man page
|
||||
# to go:
|
||||
|
||||
! WHEREJOE = /usr/local/bin
|
||||
! WHERERC = /usr/local/lib
|
||||
! WHEREMAN = /usr/man/man1
|
||||
|
||||
# If you want to use TERMINFO, you have to set
|
||||
# the following variable to 1. Also you have to
|
||||
--- 9,17 ----
|
||||
# to go and where you want the man page
|
||||
# to go:
|
||||
|
||||
! WHEREJOE = ${PREFIX}/bin
|
||||
! WHERERC = ${PREFIX}/lib
|
||||
! WHEREMAN = ${PREFIX}/man/man1
|
||||
|
||||
# If you want to use TERMINFO, you have to set
|
||||
# the following variable to 1. Also you have to
|
||||
***************
|
||||
*** 27,33 ****
|
||||
|
||||
# C compiler options: make's built-in rules use this variable
|
||||
|
||||
! CFLAGS = -O
|
||||
|
||||
# C compiler to use: make's built-in rules use this variable
|
||||
|
||||
--- 27,33 ----
|
||||
|
||||
# C compiler options: make's built-in rules use this variable
|
||||
|
||||
! # CFLAGS = -O
|
||||
|
||||
# C compiler to use: make's built-in rules use this variable
|
||||
|
||||
***************
|
||||
*** 84,100 ****
|
||||
|
||||
# Install proceedure
|
||||
|
||||
! install: joe termidx
|
||||
strip joe
|
||||
! strip termidx
|
||||
if [ ! -d $(WHEREJOE) ]; then mkdir $(WHEREJOE); chmod a+rx $(WHEREJOE); fi
|
||||
! rm -f $(WHEREJOE)/joe $(WHEREJOE)/jmacs $(WHEREJOE)/jstar $(WHEREJOE)/jpico $(WHEREJOE)/rjoe $(WHEREJOE)/termidx
|
||||
mv joe $(WHEREJOE)
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jmacs
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jstar
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/rjoe
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jpico
|
||||
! mv termidx $(WHEREJOE)
|
||||
if [ ! -d $(WHERERC) ]; then mkdir $(WHERERC); chmod a+rx $(WHERERC); fi
|
||||
rm -f $(WHERERC)/joerc $(WHERERC)/jmacsrc $(WHERERC)/jstarrc $(WHERERC)/jpicorc $(WHERERC)/rjoerc $(WHEREMAN)/joe.1
|
||||
cp joerc $(WHERERC)
|
||||
--- 84,100 ----
|
||||
|
||||
# Install proceedure
|
||||
|
||||
! install: joe # termidx
|
||||
strip joe
|
||||
! # strip termidx
|
||||
if [ ! -d $(WHEREJOE) ]; then mkdir $(WHEREJOE); chmod a+rx $(WHEREJOE); fi
|
||||
! rm -f $(WHEREJOE)/joe $(WHEREJOE)/jmacs $(WHEREJOE)/jstar $(WHEREJOE)/jpico $(WHEREJOE)/rjoe # $(WHEREJOE)/termidx
|
||||
mv joe $(WHEREJOE)
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jmacs
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jstar
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/rjoe
|
||||
ln $(WHEREJOE)/joe $(WHEREJOE)/jpico
|
||||
! # mv termidx $(WHEREJOE)
|
||||
if [ ! -d $(WHERERC) ]; then mkdir $(WHERERC); chmod a+rx $(WHERERC); fi
|
||||
rm -f $(WHERERC)/joerc $(WHERERC)/jmacsrc $(WHERERC)/jstarrc $(WHERERC)/jpicorc $(WHERERC)/rjoerc $(WHEREMAN)/joe.1
|
||||
cp joerc $(WHERERC)
|
||||
***************
|
||||
*** 114,126 ****
|
||||
chmod a+r $(WHERERC)/rjoerc
|
||||
chmod a+r $(WHERERC)/jpicorc
|
||||
chmod a+r $(WHEREMAN)/joe.1
|
||||
! chmod a+x $(WHEREJOE)/termidx
|
||||
! rm -f $(WHERERC)/termcap
|
||||
! cp termcap $(WHERERC)/termcap
|
||||
! chmod a+r $(WHERERC)/termcap
|
||||
! rm -f $(WHERERC)/terminfo
|
||||
! cp terminfo $(WHERERC)/terminfo
|
||||
! chmod a+r $(WHERERC)/terminfo
|
||||
|
||||
# Cleanup proceedure
|
||||
|
||||
--- 114,126 ----
|
||||
chmod a+r $(WHERERC)/rjoerc
|
||||
chmod a+r $(WHERERC)/jpicorc
|
||||
chmod a+r $(WHEREMAN)/joe.1
|
||||
! # chmod a+x $(WHEREJOE)/termidx
|
||||
! # rm -f $(WHERERC)/termcap
|
||||
! # cp termcap $(WHERERC)/termcap
|
||||
! # chmod a+r $(WHERERC)/termcap
|
||||
! # rm -f $(WHERERC)/terminfo
|
||||
! # cp terminfo $(WHERERC)/terminfo
|
||||
! # chmod a+r $(WHERERC)/terminfo
|
||||
|
||||
# Cleanup proceedure
|
||||
|
@ -1,64 +0,0 @@
|
||||
--- main.c.orig Sat Jan 21 19:21:08 1995
|
||||
+++ main.c Wed Feb 28 18:52:17 2001
|
||||
@@ -18,6 +18,10 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
+#ifdef __FreeBSD__
|
||||
+#include <locale.h>
|
||||
+#include <ctype.h>
|
||||
+#endif
|
||||
#include "config.h"
|
||||
#include "w.h"
|
||||
#include "tty.h"
|
||||
@@ -187,6 +191,20 @@
|
||||
run=namprt(argv[0]);
|
||||
#endif
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+ setlocale(LC_ALL, "");
|
||||
+ for(c=0;c<256;c++)
|
||||
+ { int a=0;
|
||||
+ if(iscntrl(c))
|
||||
+ a|=UNDERLINE;
|
||||
+ if((c&0x80)&&!isprint(c))
|
||||
+ a|=INVERSE;
|
||||
+ xlata[c]=a;
|
||||
+ if(isprint(c))
|
||||
+ xlatc[c]=c;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
||||
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
||||
if(s=getenv("BAUD")) sscanf(s,"%u",&Baud);
|
||||
@@ -234,20 +252,6 @@
|
||||
|
||||
#else
|
||||
|
||||
- s=vsncpy(NULL,0,sc("."));
|
||||
- s=vsncpy(sv(s),sv(run));
|
||||
- s=vsncpy(sv(s),sc("rc"));
|
||||
- c=procrc(cap,s);
|
||||
- if(c==0) goto donerc;
|
||||
- if(c==1)
|
||||
- {
|
||||
- char buf[8];
|
||||
- fprintf(stderr,"There were errors in '%s'. Use it anyway?",s);
|
||||
- fflush(stderr);
|
||||
- fgets(buf,8,stdin);
|
||||
- if(buf[0]=='y' || buf[0]=='Y') goto donerc;
|
||||
- }
|
||||
-
|
||||
vsrm(s);
|
||||
s=getenv("HOME");
|
||||
if(s)
|
||||
@@ -365,7 +369,7 @@
|
||||
maint->curwin=maint->topwin;
|
||||
if(help) helpon(maint);
|
||||
if(!nonotice)
|
||||
- msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8 ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||
+ msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8l ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||
edloop(0);
|
||||
vclose(vmem);
|
||||
nclose(n);
|
@ -1,16 +0,0 @@
|
||||
--- scrn.c.old Thu Oct 6 02:10:07 1994
|
||||
+++ scrn.c Thu Sep 11 11:45:47 1997
|
||||
@@ -288,6 +288,12 @@
|
||||
if(!(t->uc=jgetstr(t->cap,"uc"))) if(t->ul) t->uc="_";
|
||||
if(t->uc) t->avattr|=UNDERLINE;
|
||||
|
||||
+/* If we don't have underline, but we do have bold, print underline as bold */
|
||||
+if (!(t->avattr & UNDERLINE) && t->md != NULL)
|
||||
+ {
|
||||
+ t->us = t->md ; t->ue = t->me ; t->avattr |= UNDERLINE;
|
||||
+ }
|
||||
+
|
||||
t->ms=getflag(t->cap,"ms");
|
||||
|
||||
t->da=getflag(t->cap,"da");
|
||||
|
@ -1,98 +1,66 @@
|
||||
--- b.c.orig Fri Jan 20 00:38:25 1995
|
||||
+++ b.c Sun Dec 3 09:58:21 2000
|
||||
@@ -21,6 +21,9 @@
|
||||
--- b.c.orig Wed Apr 11 17:10:49 2001
|
||||
+++ b.c Sat Apr 21 23:11:38 2001
|
||||
@@ -16,6 +16,9 @@
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
#include <errno.h>
|
||||
+#include <sys/file.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "blocks.h"
|
||||
@@ -201,6 +204,7 @@
|
||||
if(prop) b->o=prop->o;
|
||||
else b->o=pdefault;
|
||||
mset(b->marks,0,sizeof(b->marks));
|
||||
+ b->filehandle = -1; /* initialize filehandle &&& ob */
|
||||
b->rdonly=0;
|
||||
b->orphan=0;
|
||||
b->oldcur=0;
|
||||
@@ -255,6 +259,10 @@
|
||||
{
|
||||
if(b && !--b->count)
|
||||
{
|
||||
+ if (b->filehandle != -1) {
|
||||
+ /* close filehandle, free lock &&& ob */
|
||||
+ close (b->filehandle);
|
||||
+ }
|
||||
if(b->changed) abrerr(b->name);
|
||||
if(b==errbuf) errbuf=0;
|
||||
if(b->undo) undorm(b->undo);
|
||||
@@ -1671,7 +1679,8 @@
|
||||
B *b;
|
||||
long skip,amnt;
|
||||
char *n;
|
||||
- int nowrite=0;
|
||||
+ struct stat sb;
|
||||
+ int nowrite=0,fh=-1;
|
||||
|
||||
if(!s || !s[0])
|
||||
{
|
||||
@@ -1704,6 +1713,28 @@
|
||||
else fclose(fi);
|
||||
fi=fopen(n,"r");
|
||||
if(!fi) nowrite=0;
|
||||
+/*printf ("nowrite open=%i\n", nowrite); */
|
||||
+
|
||||
+ /* check file mod, if no write flags set,
|
||||
+ joe in read only mode. &&& ob */
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
@@ -178,6 +181,7 @@
|
||||
else
|
||||
b->o = pdefault;
|
||||
mset (b->marks, 0, sizeof (b->marks));
|
||||
+ b->filehandle = -1; /* initialize filehandle &&& ob */
|
||||
b->rdonly = 0;
|
||||
b->orphan = 0;
|
||||
b->oldcur = 0;
|
||||
@@ -229,6 +233,11 @@
|
||||
void brm (B *b) {
|
||||
if (b && !--b->count)
|
||||
{
|
||||
+ if (b->filehandle != -1) {
|
||||
+ /* close filehandle, free lock &&& ob */
|
||||
+ close (b->filehandle);
|
||||
+ }
|
||||
+
|
||||
+ if (!nowrite) {
|
||||
+ nowrite = (!stat (n, &sb)) && (!(sb.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)));
|
||||
+ }
|
||||
+/*printf ("nowrite stat=%i\n", nowrite); */
|
||||
+
|
||||
+ /* lock the file if writable, or go into read only mode if
|
||||
+ already locked, */
|
||||
+
|
||||
+ if ((fi) && (!nowrite)) {
|
||||
+ fh = dup( fileno(fi) );
|
||||
+ nowrite = (flock (fh, LOCK_EX | LOCK_NB));
|
||||
+ }
|
||||
+/*printf ("nowrite flock=%i\n", nowrite); */
|
||||
+
|
||||
+/*nowrite = 1; */ /* for test purpose */
|
||||
+/*printf ("nowrite=%i\n", nowrite); */
|
||||
+
|
||||
}
|
||||
joesep(n);
|
||||
if (b->changed)
|
||||
abrerr (b->name);
|
||||
if (b == errbuf)
|
||||
@@ -1867,7 +1876,8 @@
|
||||
B *b;
|
||||
long skip, amnt;
|
||||
char *n;
|
||||
- int nowrite = 0;
|
||||
+ struct stat sb;
|
||||
+ int nowrite = 0, fh = -1;
|
||||
|
||||
@@ -1761,6 +1792,7 @@
|
||||
vsrm(n);
|
||||
if (!s || !s[0])
|
||||
{
|
||||
@@ -1920,6 +1930,14 @@
|
||||
goto opnerr;
|
||||
}
|
||||
|
||||
b->er=error;
|
||||
+ if( fh != -1 ) b->filehandle = fh;
|
||||
return b;
|
||||
}
|
||||
+ /* Lock the file &&& ob,petef */
|
||||
+ if (fi)
|
||||
+ {
|
||||
+ fh = dup( fileno(fi) );
|
||||
+ nowrite = (flock (fh, LOCK_EX | LOCK_NB));
|
||||
+ }
|
||||
+
|
||||
+
|
||||
/* Skip data if we need to */
|
||||
if (skip && lseek (fileno (fi), skip, 0) < 0)
|
||||
{
|
||||
@@ -1978,6 +1996,8 @@
|
||||
vsrm (n);
|
||||
|
||||
b->er = error;
|
||||
+ if (fh != -1)
|
||||
+ b->filehandle = fh;
|
||||
return b;
|
||||
}
|
||||
|
||||
@@ -1990,7 +2022,18 @@
|
||||
{
|
||||
long tim=time(0);
|
||||
B *b;
|
||||
- FILE *f=fopen("DEADJOE","a");
|
||||
+ FILE *f;
|
||||
+ struct stat sb;
|
||||
+ if ((lstat("DEADJOE", &sb) == 0) && (((sb.st_mode & S_IFLNK) && (sb.st_uid != getuid())) || (sb.st_nlink > 1)))
|
||||
+ {
|
||||
+ printf("*** JOE was aborted ");
|
||||
+ if (sig) printf("by signal %d, cannot save DEADJOE due to unsafe symlink\n",sig);
|
||||
+ else printf("because the terminal closed, cannot save DEADJOE due to unsafe symlink\n");
|
||||
+ if(sig) ttclsn();
|
||||
+ _exit(1);
|
||||
+ }
|
||||
+ f=fopen("DEADJOE","a");
|
||||
+ chmod("DEADJOE", S_IRUSR | S_IWUSR);
|
||||
fprintf(f,"\n*** Modified files in JOE when it aborted on %s",ctime(&tim));
|
||||
if(sig) fprintf(f,"*** JOE was aborted by signal %d\n",sig);
|
||||
else fprintf(f,"*** JOE was aborted because the terminal closed\n");
|
||||
|
@ -1,8 +1,10 @@
|
||||
--- b.h.orig Wed Dec 21 13:04:46 1994
|
||||
+++ b.h Tue Dec 7 13:35:11 1999
|
||||
@@ -61,4 +61,5 @@
|
||||
int internal; /* Set for internal buffers */
|
||||
int er; /* Error code when file was loaded */
|
||||
+ int filehandle; /* File handle for locking */
|
||||
};
|
||||
--- b.h.orig Sat Apr 21 23:15:48 2001
|
||||
+++ b.h Sat Apr 21 23:16:16 2001
|
||||
@@ -56,6 +56,7 @@
|
||||
P *oldtop; /* Last top screen position before orphaning */
|
||||
int rdonly; /* Set for read-only */
|
||||
int internal; /* Set for internal buffers */
|
||||
+ int filehandle; /* File handle for locking */
|
||||
int er; /* Error code when file was loaded */
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,17 @@
|
||||
--- conf.c.orig Fri Jun 1 19:32:10 2001
|
||||
+++ conf.c Fri Jun 1 19:33:37 2001
|
||||
@@ -204,8 +204,6 @@
|
||||
fprintf(f,"\n");
|
||||
--- conf.c.orig Wed Apr 11 16:11:00 2001
|
||||
+++ conf.c Mon Jun 25 22:19:07 2001
|
||||
@@ -179,14 +179,6 @@
|
||||
fprintf (f, "\n");
|
||||
|
||||
fprintf(f,"char *getenv();\n");
|
||||
- if(sizeof(long)==8) fprintf(f,"int time();\n");
|
||||
- else fprintf(f,"long time();\n");
|
||||
fprintf(f,"void *malloc();\n");
|
||||
fprintf(f,"void free();\n");
|
||||
fprintf(f,"void *calloc();\n");
|
||||
fprintf (f, "char *getenv();\n");
|
||||
-#if !defined(__linux__) || !defined(__alpha)
|
||||
- if (sizeof (long) == 8) {
|
||||
- fprintf (f, "int time();\n");
|
||||
- } else
|
||||
-#endif
|
||||
- {
|
||||
- fprintf (f, "long time();\n");
|
||||
- }
|
||||
fprintf (f, "void *malloc();\n");
|
||||
fprintf (f, "void free();\n");
|
||||
fprintf (f, "void *calloc();\n");
|
||||
|
@ -1,9 +1,15 @@
|
||||
JOE is the professional freeware ASCII text screen editor for UNIX.
|
||||
It makes full use of the power and versatility of UNIX, but lacks the steep
|
||||
learning curve and basic nonsense you have to deal with in every other UNIX
|
||||
editor. JOE has the feel of most IBM PC text editors: The key-sequences are
|
||||
reminiscent of WordStar and Turbo-C. JOE is much more powerful than those
|
||||
editors, however. JOE has all of the features a UNIX user should expect:
|
||||
full use of termcap/terminfo, excellent screen update optimizations (JOE is
|
||||
fully useable at 2400 baud), simple installation, and all of the
|
||||
JOE is the professional freeware ASCII text screen editor for UNIX.
|
||||
It makes full use of the power and versatility of UNIX, but lacks
|
||||
the steep learning curve and basic nonsense you have to deal with
|
||||
in every other UNIX editor. JOE has the feel of most IBM PC text
|
||||
editors: the key-sequences are reminiscent of WordStar and Turbo-C.
|
||||
JOE is much more powerful than those editors, however. JOE has
|
||||
all of the features a UNIX user should expect: full use of
|
||||
termcap/terminfo, excellent screen update optimizations (JOE is
|
||||
fully usable at 2400 baud), simple installation, and all of the
|
||||
UNIX-integration features of VI.
|
||||
|
||||
WWW: http://sourceforge.net/projects/joe-editor/
|
||||
|
||||
-Pete
|
||||
petef@databits.net
|
||||
|
@ -3,8 +3,13 @@ bin/jmacs
|
||||
bin/jstar
|
||||
bin/rjoe
|
||||
bin/jpico
|
||||
lib/joerc
|
||||
lib/jmacsrc
|
||||
lib/jstarrc
|
||||
lib/rjoerc
|
||||
lib/jpicorc
|
||||
bin/termidx
|
||||
etc/joerc
|
||||
etc/jmacsrc
|
||||
etc/jstarrc
|
||||
etc/rjoerc
|
||||
etc/jpicorc
|
||||
%%PORTDOCS%%share/doc/joe/INFO
|
||||
%%PORTDOCS%%share/doc/joe/README
|
||||
%%PORTDOCS%%share/doc/joe/CommandList
|
||||
%%PORTDOCS%%@dirrm share/doc/joe
|
||||
|
Loading…
Reference in New Issue
Block a user