Initial revision
This commit is contained in:
parent
470b8f44f6
commit
189184991a
123
clients/ffindcmd.c
Normal file
123
clients/ffindcmd.c
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
/*-
|
||||
* Copyright (c) 1990 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*********************************************************************\
|
||||
* Copyright (c) 1993 by Michael Meskes *
|
||||
* (meskes@ulysses.informatik.rwth-aachen.de) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "client_def.h"
|
||||
#include "c_extern.h"
|
||||
#include "bsd_extern.h"
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
#include <fcntl.h>
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include "find.h"
|
||||
|
||||
extern PLAN *plan;
|
||||
|
||||
time_t now; /* time find was run */
|
||||
int isoutput; /* user specified output operator */
|
||||
int process; /* process current directory */
|
||||
|
||||
static void usage_ffind PROTO0((void));
|
||||
|
||||
static void eval_file PROTO4(char *, name, struct stat *, sbufp,
|
||||
int, mode, int, level)
|
||||
{
|
||||
register PLAN *p;
|
||||
|
||||
for (p = plan; p && (p->eval)(p, sbufp, name); p = p->next);
|
||||
}
|
||||
|
||||
static int eval_dir PROTO3(char *, name, struct stat *, sbufp, u_long *, sum)
|
||||
{
|
||||
register PLAN *p;
|
||||
|
||||
process = 0;
|
||||
for (p = plan; p && (p->eval)(p, sbufp, name); p = p->next);
|
||||
return (process);
|
||||
}
|
||||
|
||||
int main PROTO2(int, argc, char **, argv)
|
||||
{
|
||||
register char **p;
|
||||
char *singlefile[2], **files;
|
||||
|
||||
env_client();
|
||||
(void)time(&now); /* initialize the time-of-day */
|
||||
|
||||
p = ++argv;
|
||||
|
||||
/* First option delimits the file list. */
|
||||
while (*p && !option(*p)) p++;
|
||||
if (p == argv) usage_ffind();
|
||||
|
||||
find_formplan(p);
|
||||
|
||||
/* Execute plan for all file lists */
|
||||
while (*argv) {
|
||||
if (argv >= p) break;
|
||||
if (!(files = glob(*argv))) {
|
||||
files = singlefile;
|
||||
singlefile[0] = *argv;
|
||||
singlefile[1] = 0;
|
||||
}
|
||||
for ( ; *files; files++)
|
||||
util_process_file(*files, 0, eval_file, eval_dir, 0L, 0);
|
||||
|
||||
argv++;
|
||||
}
|
||||
|
||||
client_done();
|
||||
return(0);
|
||||
}
|
||||
|
||||
static void usage_ffind PROTO0((void))
|
||||
{
|
||||
fprintf(stderr,"usage: ffind file [file ...] expression\n");
|
||||
exit(1);
|
||||
}
|
||||
37
clients/flscmd.c
Normal file
37
clients/flscmd.c
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "client_def.h"
|
||||
#include "c_extern.h"
|
||||
#include "bsd_extern.h"
|
||||
#include "ls.h"
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
int ls_bad PROTO1(int, n)
|
||||
{
|
||||
client_done();
|
||||
exit(n);
|
||||
}
|
||||
|
||||
int main PROTO2(int, argc, char **, argv)
|
||||
{
|
||||
env_client();
|
||||
|
||||
fls_main(argc,argv);
|
||||
|
||||
client_done();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
50
clients/fmkdir.c
Normal file
50
clients/fmkdir.c
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "client_def.h"
|
||||
#include "c_extern.h"
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include "my-string.h"
|
||||
|
||||
static int make_dir PROTO1(char *, p)
|
||||
{
|
||||
char *op;
|
||||
UBUF *ub;
|
||||
|
||||
op = util_abs_path(p);
|
||||
|
||||
ub = client_interact(CC_MAKE_DIR,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||
(unsigned char *)NULLP);
|
||||
|
||||
if(ub->cmd == CC_ERR) {
|
||||
fprintf(stderr,"Can't create %s: %s\n",p,ub->buf);
|
||||
free(op);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
printf("%s\t: %s\n",p,ub->buf);
|
||||
|
||||
free(op);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int main PROTO2(int, argc, char **, argv)
|
||||
{
|
||||
env_client();
|
||||
while(*++argv) make_dir(*argv);
|
||||
client_done();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
57
clients/frmcmd.c
Normal file
57
clients/frmcmd.c
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "client_def.h"
|
||||
#include "c_extern.h"
|
||||
#include "bsd_extern.h"
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include "my-string.h"
|
||||
|
||||
static int remove_it PROTO1(char *, p)
|
||||
{
|
||||
char *op;
|
||||
UBUF *ub;
|
||||
|
||||
op = util_abs_path(p);
|
||||
|
||||
ub = client_interact(CC_DEL_FILE,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||
(unsigned char *)NULLP);
|
||||
|
||||
if(ub->cmd == CC_ERR) {
|
||||
fprintf(stderr,"Can't remove %s: %s\n",p,ub->buf);
|
||||
free(op); return(-1);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
int main PROTO2(int, argc, char **, argv)
|
||||
{
|
||||
char **av, *av2[2];
|
||||
|
||||
env_client();
|
||||
|
||||
while(*++argv) {
|
||||
if(!(av = glob(*argv))) {
|
||||
av = av2;
|
||||
av2[0] = *argv;
|
||||
av2[1] = 0;
|
||||
}
|
||||
while(*av) remove_it(*av++);
|
||||
}
|
||||
|
||||
client_done();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
58
clients/frmdircmd.c
Normal file
58
clients/frmdircmd.c
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#include "tweak.h"
|
||||
#include "client_def.h"
|
||||
#include "c_extern.h"
|
||||
#include "bsd_extern.h"
|
||||
#ifdef STDC_HEADERS
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include "my-string.h"
|
||||
|
||||
static int remove_it PROTO1(char *, p)
|
||||
{
|
||||
char *op;
|
||||
UBUF *ub;
|
||||
|
||||
op = util_abs_path(p);
|
||||
|
||||
ub = client_interact(CC_DEL_DIR,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||
(unsigned char *)NULLP);
|
||||
|
||||
if(ub->cmd == CC_ERR) {
|
||||
fprintf(stderr,"Can't remove %s: %s\n",p,ub->buf);
|
||||
free(op);
|
||||
return(-1);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
int main PROTO2(int, argc, char **, argv)
|
||||
{
|
||||
char **av, *av2[2];
|
||||
|
||||
env_client();
|
||||
|
||||
while(*++argv) {
|
||||
if(!(av = glob(*argv))) {
|
||||
av = av2;
|
||||
av2[0] = *argv;
|
||||
av2[1] = 0;
|
||||
}
|
||||
while(*av) remove_it(*av++);
|
||||
}
|
||||
|
||||
client_done();
|
||||
|
||||
exit(0);
|
||||
}
|
||||
48
include/client_def.h
Normal file
48
include/client_def.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*********************************************************************\
|
||||
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||
* *
|
||||
* You may copy or modify this file in any manner you wish, provided *
|
||||
* that this notice is always included, and that you hold the author *
|
||||
* harmless for any loss or damage resulting from the installation or *
|
||||
* use of this software. *
|
||||
\*********************************************************************/
|
||||
|
||||
#ifndef _FSP_CLIENT_DEF_H_
|
||||
#define _FSP_CLIENT_DEF_H_ 1
|
||||
|
||||
#include "common_def.h"
|
||||
#include "client_conf.h"
|
||||
|
||||
/*************************************************************************
|
||||
* The following global variables are used to change the behavior when *
|
||||
* fgrab encounters a file with the same name in the current directory *
|
||||
* Added 11 Jan 93 by A.E.J.Fellows *
|
||||
*************************************************************************/
|
||||
|
||||
#define C_NOCLOBBER 1 /* Will not overwrite file of same name */
|
||||
#define C_CLOBBER 2 /* Will always overwrite file even if
|
||||
remote file is not found */
|
||||
#define C_UNIQUE 3 /* Create unique name to avoid overwrite */
|
||||
#define C_TEMPNAME 4 /* Download to temp name */
|
||||
#define C_APPEND 5 /* Downloads will attempt to append to
|
||||
end of file if it already exists */
|
||||
|
||||
/****************************************************************************
|
||||
* These structures are used to implement a opendir/readdir mechanism similar
|
||||
* to that of the normal opendir/reader mechanism in unix.
|
||||
****************************************************************************/
|
||||
|
||||
typedef struct DDLIST { struct DDLIST *next;
|
||||
char *path;
|
||||
RDIRENT **dep_root;
|
||||
int ref_cnt; } DDLIST;
|
||||
|
||||
typedef struct RDIR { DDLIST *ddp;
|
||||
RDIRENT **dep; } RDIR;
|
||||
|
||||
typedef struct rdirent { unsigned long d_fileno;
|
||||
unsigned short d_rcdlen;
|
||||
unsigned short d_namlen;
|
||||
char *d_name; } rdirent;
|
||||
|
||||
#endif /* _FSP_CLIENT_DEF_H_ */
|
||||
Loading…
Reference in New Issue
Block a user