From 5fb563ecd192324bff6c79b1ef5ff91741b4eac3 Mon Sep 17 00:00:00 2001 From: Satoshi Asami Date: Mon, 25 Mar 1996 08:58:59 +0000 Subject: An xview-based graphical ftp interface. Submitted by: Janusz Kokot --- ftp/ftptool/Makefile | 29 +++ ftp/ftptool/distinfo | 1 + ftp/ftptool/files/lex.c | 483 +++++++++++++++++++++++++++++++++++++++++++++ ftp/ftptool/files/patch-aa | 154 +++++++++++++++ ftp/ftptool/files/patch-ab | 35 ++++ ftp/ftptool/pkg-comment | 1 + ftp/ftptool/pkg-descr | 8 + ftp/ftptool/pkg-plist | 3 + 8 files changed, 714 insertions(+) create mode 100644 ftp/ftptool/Makefile create mode 100644 ftp/ftptool/distinfo create mode 100644 ftp/ftptool/files/lex.c create mode 100644 ftp/ftptool/files/patch-aa create mode 100644 ftp/ftptool/files/patch-ab create mode 100644 ftp/ftptool/pkg-comment create mode 100644 ftp/ftptool/pkg-descr create mode 100644 ftp/ftptool/pkg-plist (limited to 'ftp/ftptool') diff --git a/ftp/ftptool/Makefile b/ftp/ftptool/Makefile new file mode 100644 index 000000000000..239933998142 --- /dev/null +++ b/ftp/ftptool/Makefile @@ -0,0 +1,29 @@ +# New ports collection makefile for: Ftptool +# Version required: 4.6 +# Date created: 19 March 1996 +# Whom: janek@gaja.ipan.lublin.pl +# +# $Id$ +# + +DISTNAME= ftptool-4.6 +CATEGORIES+= net +MASTER_SITES= ftp://ftp.x.org/contrib/utilities \ + ftp://crl.dec.com/pub/X11/contrib/utilities/ \ + ftp://ftp.icm.edu.pl/pub/X11/contrib/utilities/ +DISTFILES= Ftptool4.6.tar.gz + +MAINTAINER= janek@gaja.ipan.lublin.pl + +LIB_DEPENDS= xview\\.3\\.:${PORTSDIR}/x11/xview-lib + +USE_IMAKE= yes +WRKSRC= ${WRKDIR}/Ftptool4.6 + +# Because lex.l is broken, lex.c is taken from old FreeBSD 1.1 port + +post-extract: + cp ${FILESDIR}/lex.c ${WRKSRC} + rm -f ${WRKSRC}/lex.l + +.include diff --git a/ftp/ftptool/distinfo b/ftp/ftptool/distinfo new file mode 100644 index 000000000000..b94c67129df4 --- /dev/null +++ b/ftp/ftptool/distinfo @@ -0,0 +1 @@ +MD5 (Ftptool4.6.tar.gz) = 4fd26469b493d09b761bf01708e4b060 diff --git a/ftp/ftptool/files/lex.c b/ftp/ftptool/files/lex.c new file mode 100644 index 000000000000..86c1126b57a6 --- /dev/null +++ b/ftp/ftptool/files/lex.c @@ -0,0 +1,483 @@ +# include "stdio.h" +# define U(x) x +# define NLSTATE yyprevious=YYNEWLINE +# define BEGIN yybgin = yysvec + 1 + +# define INITIAL 0 +# define YYLERR yysvec +# define YYSTATE (yyestate-yysvec-1) +# define YYOPTIM 1 +# define YYLMAX BUFSIZ +# define output(c) putc(c,yyout) +# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) +# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} +# define yymore() (yymorfg=1) +# define ECHO fprintf(yyout, "%s",yytext) +# define REJECT { nstr = yyreject(); goto yyfussy;} +int yyleng; extern char yytext[]; +int yymorfg; +extern char *yysptr, yysbuf[]; +int yytchar; +FILE *yyin = {stdin}, *yyout = {stdout}; +extern int yylineno; +struct yysvf { + struct yywork *yystoff; + struct yysvf *yyother; + int *yystops;}; +struct yysvf *yyestate; +extern struct yysvf yysvec[], *yybgin; + +#pragma ident "@(#)lex.l 1.2 93/01/13" + +#undef ECHO +#undef input +#include "ftptool.h" + +#undef input +extern char *lex_string; +# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):*lex_string++)==10?(yylineno++,yytchar):yytchar)==0?0:yytchar) +# define YYNEWLINE 10 +yylex(){ +int nstr; extern int yyprevious; +while((nstr = yylook()) >= 0) +yyfussy: switch(nstr){ +case 0: +if(yywrap()) return(0); break; +case 1: +{return(' ');} +break; +case 2: + {return(PERMS);} +break; +case 3: + {return(LINKS);} +break; +case 4: + {return(USER);} +break; +case 5: + {return(GROUP);} +break; +case 6: + {return(SIZE);} +break; +case 7: + {return(MONTH);} +break; +case 8: + {return(DAY);} +break; +case 9: + {return(TIME);} +break; +case 10: + {return(NAME);} +break; +case 11: + {return(SKIP);} +break; +case 12: + {return(NONUNIX);} +break; +case 13: + {return(LOWERNAME);} +break; +case 14: + {return(yytext[0]);} +break; +case -1: +break; +default: +fprintf(yyout,"bad switch yylook %d",nstr); +} return(0); } +/* end of yylex */ + +yywrap() +{ + return 1; +} +int yyvstop[] = { +0, + +14, +0, + +1, +14, +0, + +1, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +14, +0, + +8, +0, + +10, +0, + +6, +0, + +11, +0, + +9, +0, + +4, +0, + +5, +0, + +3, +0, + +7, +0, + +2, +0, + +13, +0, + +12, +0, +0}; +# define YYTYPE char +struct yywork { YYTYPE verify, advance; } yycrank[] = { +0,0, 0,0, 1,3, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 1,4, 1,5, +4,5, 4,5, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 4,5, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 0,0, 0,0, 0,0, +0,0, 1,6, 0,0, 51,57, +0,0, 0,0, 7,17, 16,28, +0,0, 1,7, 12,23, 27,39, +1,8, 33,44, 9,19, 11,21, +14,26, 1,9, 1,10, 1,11, +2,6, 1,12, 6,16, 8,18, +1,13, 1,14, 1,15, 10,20, +2,7, 11,22, 13,24, 2,8, +13,25, 15,27, 17,29, 18,30, +2,9, 2,10, 2,11, 19,31, +2,12, 20,32, 21,33, 2,13, +2,14, 2,15, 22,34, 23,35, +24,36, 25,37, 26,38, 28,40, +30,41, 31,42, 32,43, 34,45, +35,46, 36,47, 37,48, 38,49, +39,50, 40,51, 41,52, 42,53, +43,54, 45,55, 46,56, 55,58, +58,59, 0,0, 0,0, 0,0, +0,0}; +struct yysvf yysvec[] = { +0, 0, 0, +yycrank+-1, 0, 0, +yycrank+-20, yysvec+1, 0, +yycrank+0, 0, yyvstop+1, +yycrank+3, 0, yyvstop+3, +yycrank+0, yysvec+4, yyvstop+6, +yycrank+4, 0, yyvstop+8, +yycrank+1, 0, yyvstop+10, +yycrank+1, 0, yyvstop+12, +yycrank+1, 0, yyvstop+14, +yycrank+8, 0, yyvstop+16, +yycrank+10, 0, yyvstop+18, +yycrank+1, 0, yyvstop+20, +yycrank+17, 0, yyvstop+22, +yycrank+3, 0, yyvstop+24, +yycrank+10, 0, yyvstop+26, +yycrank+2, 0, 0, +yycrank+5, 0, 0, +yycrank+16, 0, 0, +yycrank+21, 0, 0, +yycrank+23, 0, 0, +yycrank+25, 0, 0, +yycrank+28, 0, 0, +yycrank+25, 0, 0, +yycrank+18, 0, 0, +yycrank+36, 0, 0, +yycrank+33, 0, 0, +yycrank+2, 0, 0, +yycrank+34, 0, 0, +yycrank+0, 0, yyvstop+28, +yycrank+27, 0, 0, +yycrank+38, 0, 0, +yycrank+30, 0, 0, +yycrank+4, 0, 0, +yycrank+30, 0, 0, +yycrank+39, 0, 0, +yycrank+48, 0, 0, +yycrank+38, 0, 0, +yycrank+50, 0, 0, +yycrank+38, 0, 0, +yycrank+52, 0, 0, +yycrank+42, 0, 0, +yycrank+40, 0, 0, +yycrank+52, 0, 0, +yycrank+0, 0, yyvstop+30, +yycrank+47, 0, 0, +yycrank+43, 0, 0, +yycrank+0, 0, yyvstop+32, +yycrank+0, 0, yyvstop+34, +yycrank+0, 0, yyvstop+36, +yycrank+0, 0, yyvstop+38, +yycrank+1, 0, 0, +yycrank+0, 0, yyvstop+40, +yycrank+0, 0, yyvstop+42, +yycrank+0, 0, yyvstop+44, +yycrank+54, 0, 0, +yycrank+0, 0, yyvstop+46, +yycrank+0, 0, yyvstop+48, +yycrank+40, 0, 0, +yycrank+0, 0, yyvstop+50, +0, 0, 0}; +struct yywork *yytop = yycrank+128; +struct yysvf *yybgin = yysvec+1; +char yymatch[] = { +00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , +0}; +char yyextra[] = { +0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0, +0}; +#ifndef lint +static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */ +#endif + +int yylineno =1; +# define YYU(x) x +# define NLSTATE yyprevious=YYNEWLINE +char yytext[YYLMAX]; +struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; +char yysbuf[YYLMAX]; +char *yysptr = yysbuf; +int *yyfnd; +extern struct yysvf *yyestate; +int yyprevious = YYNEWLINE; +yylook(){ + register struct yysvf *yystate, **lsp; + register struct yywork *yyt; + struct yysvf *yyz; + int yych, yyfirst; + struct yywork *yyr; +# ifdef LEXDEBUG + int debug; +# endif + char *yylastch; + /* start off machines */ +# ifdef LEXDEBUG + debug = 0; +# endif + yyfirst=1; + if (!yymorfg) + yylastch = yytext; + else { + yymorfg=0; + yylastch = yytext+yyleng; + } + for(;;){ + lsp = yylstate; + yyestate = yystate = yybgin; + if (yyprevious==YYNEWLINE) yystate++; + for (;;){ +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); +# endif + yyt = yystate->yystoff; + if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ + yyz = yystate->yyother; + if(yyz == 0)break; + if(yyz->yystoff == yycrank)break; + } + *yylastch++ = yych = input(); + yyfirst=0; + tryagain: +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"char "); + allprint(yych); + putchar('\n'); + } +# endif + yyr = yyt; + if ( (int)yyt > (int)yycrank){ + yyt = yyr + yych; + if (yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transitions */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + } +# ifdef YYOPTIM + else if((int)yyt < (int)yycrank) { /* r < yycrank */ + yyt = yyr = yycrank+(yycrank-yyt); +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"compressed state\n"); +# endif + yyt = yyt + yych; + if(yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transitions */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + yyt = yyr + YYU(yymatch[yych]); +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"try fall back character "); + allprint(YYU(yymatch[yych])); + putchar('\n'); + } +# endif + if(yyt <= yytop && yyt->verify+yysvec == yystate){ + if(yyt->advance+yysvec == YYLERR) /* error transition */ + {unput(*--yylastch);break;} + *lsp++ = yystate = yyt->advance+yysvec; + goto contin; + } + } + if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ +# ifdef LEXDEBUG + if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); +# endif + goto tryagain; + } +# endif + else + {unput(*--yylastch);break;} + contin: +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"state %d char ",yystate-yysvec-1); + allprint(yych); + putchar('\n'); + } +# endif + ; + } +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); + allprint(yych); + putchar('\n'); + } +# endif + while (lsp-- > yylstate){ + *yylastch-- = 0; + if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ + yyolsp = lsp; + if(yyextra[*yyfnd]){ /* must backup */ + while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ + lsp--; + unput(*yylastch--); + } + } + yyprevious = YYU(*yylastch); + yylsp = lsp; + yyleng = yylastch-yytext+1; + yytext[yyleng] = 0; +# ifdef LEXDEBUG + if(debug){ + fprintf(yyout,"\nmatch "); + sprint(yytext); + fprintf(yyout," action %d\n",*yyfnd); + } +# endif + return(*yyfnd++); + } + unput(*yylastch); + } + if (yytext[0] == 0 /* && feof(yyin) */) + { + yysptr=yysbuf; + return(0); + } + yyprevious = yytext[0] = input(); + if (yyprevious>0) + output(yyprevious); + yylastch=yytext; +# ifdef LEXDEBUG + if(debug)putchar('\n'); +# endif + } + } +yyback(p, m) + int *p; +{ +if (p==0) return(0); +while (*p) + { + if (*p++ == m) + return(1); + } +return(0); +} + /* the following are only used in the lex library */ +yyinput(){ + return(input()); + } +yyoutput(c) + int c; { + output(c); + } +yyunput(c) + int c; { + unput(c); + } diff --git a/ftp/ftptool/files/patch-aa b/ftp/ftptool/files/patch-aa new file mode 100644 index 000000000000..394789ac7ff6 --- /dev/null +++ b/ftp/ftptool/files/patch-aa @@ -0,0 +1,154 @@ +diff -rc ../../Ftptool4.6.orig/batch.c ./batch.c +*** ../../Ftptool4.6.orig/batch.c Tue Mar 19 21:11:25 1996 +--- ./batch.c Tue Mar 19 21:17:42 1996 +*************** +*** 383,389 **** +--- 383,391 ---- + { + FILE *fp; + int isdir; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + int nitems, row; + struct batchlist *tmp; + +*************** +*** 420,426 **** +--- 422,430 ---- + mode_t mode; + int ch; + FILE *fp; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + + if ((fp = fopen(filename, "r")) == NULL) { + footer_message("%s:%s", filename, sys_errlist[errno]); +diff -rc ../../Ftptool4.6.orig/change_dir.c ./change_dir.c +*** ../../Ftptool4.6.orig/change_dir.c Tue Mar 19 21:11:22 1996 +--- ./change_dir.c Tue Mar 19 21:17:42 1996 +*************** +*** 82,88 **** +--- 82,90 ---- + #endif + { + static char cld[MAXPATHLEN + 2]; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + struct dirlist *head = NULL; + int wasinactive; + int rval = 0; +*************** +*** 482,488 **** +--- 484,492 ---- + { + struct dirlist *head = NULL; + struct dirlist *tmp; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + int rval = 0; + + if (chdir(dir) == -1) { +*************** +*** 524,530 **** +--- 528,536 ---- + #endif + { + int answer; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + #ifdef XVIEW3 + Xv_notice notice; + #endif +diff -rc ../../Ftptool4.6.orig/dofuncs.c ./dofuncs.c +*** ../../Ftptool4.6.orig/dofuncs.c Tue Mar 19 21:11:23 1996 +--- ./dofuncs.c Tue Mar 19 21:17:41 1996 +*************** +*** 581,587 **** +--- 581,589 ---- + char *name = NULL; + struct extension_info *ext_info; + struct stat buf; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + + xfer_buttons_inactive(); + abort_transfer = 0; +diff -rc ../../Ftptool4.6.orig/ftp_var.h ./ftp_var.h +*** ../../Ftptool4.6.orig/ftp_var.h Tue Mar 19 21:11:25 1996 +--- ./ftp_var.h Tue Mar 19 21:17:40 1996 +*************** +*** 35,41 **** +--- 35,43 ---- + */ + + #define strerror(e) sys_errlist[e] ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + + #ifdef USE_PROTOTYPES + +diff -rc ../../Ftptool4.6.orig/ftptool.h ./ftptool.h +*** ../../Ftptool4.6.orig/ftptool.h Tue Mar 19 21:11:22 1996 +--- ./ftptool.h Tue Mar 19 21:17:40 1996 +*************** +*** 49,64 **** +--- 49,70 ---- + #ifdef AIXV3 + #include + #else ++ #ifdef __FreeBSD__ ++ #include ++ #else + #include + #endif + #endif + #endif ++ #endif + + #include + #include + #include + #include ++ #ifndef __FreeBSD__ + #include ++ #endif + #include + #include + #include +diff -rc ../../Ftptool4.6.orig/tar_view.c ./tar_view.c +*** ../../Ftptool4.6.orig/tar_view.c Tue Mar 19 21:11:24 1996 +--- ./tar_view.c Tue Mar 19 21:17:41 1996 +*************** +*** 173,179 **** +--- 173,181 ---- + #endif + { + char *dir; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + int rval; + + xv_set(base_window.frame, +diff -rc ../../Ftptool4.6.orig/view_file.c ./view_file.c +*** ../../Ftptool4.6.orig/view_file.c Tue Mar 19 21:11:23 1996 +--- ./view_file.c Tue Mar 19 21:17:41 1996 +*************** +*** 582,588 **** +--- 582,590 ---- + char *filename = NULL; + struct extension_info *tmp; + FILE *fp; ++ #ifndef __FreeBSD__ + extern char *sys_errlist[]; ++ #endif + char *typename; + + /* create will also truncate, which we want to do here */ diff --git a/ftp/ftptool/files/patch-ab b/ftp/ftptool/files/patch-ab new file mode 100644 index 000000000000..b47654869757 --- /dev/null +++ b/ftp/ftptool/files/patch-ab @@ -0,0 +1,35 @@ +--- ./Imakefile.org Sun Aug 28 20:05:38 1994 ++++ ./Imakefile Mon Mar 25 00:47:06 1996 +@@ -21,10 +21,10 @@ + #CC=gcc -ansi + + #Uncomment the following lines for SunOS 5.x with Sun cc. +-DEFINES= -DSYSV -DSVR4 $(XVIEW) $(SOCKDEFS) -DGLOBAL_FTPTOOLRC=\"$(FTPTOOLRC)\" +-LIBSUNOS5= -R /usr/openwin/lib:/opt/openwin/lib:/usr/opt/openwin/lib \ +- -lsocket -lnsl +-CC=cc -Xa ++#DEFINES= -DSYSV -DSVR4 $(XVIEW) $(SOCKDEFS) -DGLOBAL_FTPTOOLRC=\"$(FTPTOOLRC)\" ++#LIBSUNOS5= -R /usr/openwin/lib:/opt/openwin/lib:/usr/opt/openwin/lib \ ++# -lsocket -lnsl ++#CC=cc -Xa + + #Uncomment the following lines for SunOS 5.x with gcc + #Don't use -ansi, there seems to be a header file problem with that. +@@ -45,6 +45,8 @@ + #define ManSuffix 1 + #endif + ++OPENWINHOME = $(PROJECTROOT) ++ + FTPTOOLRCDIR = $(LIBDIR)/ftptool + FTPTOOLRC = $(FTPTOOLRCDIR)/ftptoolrc + SYS_LIBRARIES = -lm +@@ -73,7 +75,7 @@ + + SRCS = batch.c button_funcs.c change_dir.c create_main.c create_other.c \ + dircache.c dirlist.c dofuncs.c dnd.c event.c ftp.c host_list.c \ +- lex.l main.c menu_funcs.c misc.c readdir.c schedule.c tar_view.c \ ++ lex.c main.c menu_funcs.c misc.c readdir.c schedule.c tar_view.c \ + transfer.c view_file.c + + OBJS = batch.o button_funcs.o change_dir.o create_main.o create_other.o \ diff --git a/ftp/ftptool/pkg-comment b/ftp/ftptool/pkg-comment new file mode 100644 index 000000000000..634e877402d6 --- /dev/null +++ b/ftp/ftptool/pkg-comment @@ -0,0 +1 @@ +Graphic ftp shell based on xview diff --git a/ftp/ftptool/pkg-descr b/ftp/ftptool/pkg-descr new file mode 100644 index 000000000000..ee30a5b16e65 --- /dev/null +++ b/ftp/ftptool/pkg-descr @@ -0,0 +1,8 @@ +The source for ftptool is, as far as I'm concerned freely distributable as +long as I recieve credit for it (my bosses agree, though Sun hasn't spoken). + +Author: Mike Sullivan (Mike.Sullivan@Sun.COM) + +Ported to 386 SVR4 by Jerry Whelan . +Ported to Ultrix by Robert Evans . +Ported to FreeBSD by Janusz Kokot diff --git a/ftp/ftptool/pkg-plist b/ftp/ftptool/pkg-plist new file mode 100644 index 000000000000..4edc5db2cf77 --- /dev/null +++ b/ftp/ftptool/pkg-plist @@ -0,0 +1,3 @@ +bin/ftptool +lib/help/ftptool.info +man/man1/ftptool.1.gz -- cgit v1.2.3