%s [-m|x%s|c|o|a|z] [-h] [-d|p] [-g|t] [-v|n] [from to]\n\
\n\
Use #N in the ``to'' pattern to get the string matched\n\
-by the N'th ``from'' pattern wildcard.\n\
-Use -- as the end of options.\n";
+by the N'th ``from'' pattern wildcard.\n";
#define OTHEROPT (_osmajor < 3 ? "" : "|r")
string matched by the N'th ``from'' pattern wildcard.\n\
\n\
A ``from'' pattern containing wildcards should be quoted when given\n\
-on the command line. Also you may need to quote ``to'' pattern.\n\
-\n\
-Use -- as the end of options.\n";
+on the command line.\n";
#ifdef IS_SYSV
#define OTHEROPT ""
#endif
-#include <unistd.h>
#include <stdio.h>
#include <ctype.h>
#include <sys/stat.h>
#include <sys/file.h>
+extern char *getenv();
+extern long lseek();
+extern char *malloc();
+
#ifdef HAS_DIRENT
#include <dirent.h>
typedef struct dirent DIRENTRY;
static int snap(/* REP *first, REP *p */);
static void showdone(/* REP *fin */);
static void breakout(/* */);
-static void breakrep(int);
+static int breakrep(/* */);
static void breakstat(/* */);
static void quit(/* */);
static int copymove(/* REP *p */);
static SLICER slicer[2] = {{NULL, NULL, 0}, {NULL, NULL, 0}};
static int badreps = 0, paterr = 0, direrr, failed = 0, gotsig = 0, repbad;
-static FILE *outfile;
+static FILE *outfile = stdout;
static char IDF[] = "$$mmvdid.";
static char TEMP[] = "$$mmvtmp.";
{
char *frompat, *topat;
- outfile = stdout;
-
init();
procargs(argc, argv, &frompat, &topat);
domatch(frompat, topat);
for (argc--, argv++; argc > 0 && **argv == '-'; argc--, argv++)
for (p = *argv + 1; *p != '\0'; p++) {
c = mylower(*p);
- if (c == '-') {
- argc--;
- argv++;
- goto endargs;
- }
if (c == 'v' && !noex)
verbose = 1;
else if (c == 'n' && !verbose)
}
}
-endargs:
if (op == DFLT)
if (strcmp(cmdname, MOVENAME) == 0)
op = XMOVE;
printf(TRAILESC, from, to, ESC);
return(-1);
}
-#ifdef IS_MSDOS
default:
if (
+#ifdef IS_MSDOS
c <= ' ' || c >= 127 ||
strchr(":/\\*?[]=+;,\"|<>", c) != NULL
+#else
+ c & 0x80
+#endif
) {
printf("%s -> %s : illegal character '%c' (0x%02X).\n",
from, to, c, c);
return(-1);
}
+#ifdef IS_MSDOS
if (isupper(c))
*p = c + ('a' - 'A');
#endif
}
-static void breakrep(int signum)
+static int breakrep()
{
gotsig = 1;
- return;
+ return(1);
}
static int copy(ff, len)
FILEINFO *ff;
- off_t len;
+ long len;
{
char buf[BUFSIZE], c;
int f, t, k, mode, perm;
return(-1);
}
if (op & APPEND)
- lseek(t, (off_t)0, SEEK_END);
+ lseek(t, 0L, 2);
#ifdef IS_MSDOS
if (op & ZAPPEND && filelength(t) != 0) {
if (lseek(t, -1L, 1) == -1L || read(t, &c, 1) != 1) {
lseek(t, -1L, 1);
}
#endif
- if ((op & APPEND) && len != (off_t)-1) {
+ if ((op & APPEND) && len != -1L) {
while (
len != 0 &&
- (k = read(f, buf, (len > BUFSIZE) ? BUFSIZE : (size_t)len)) > 0 &&
+ (k = read(f, buf, len > BUFSIZE ? BUFSIZE : (unsigned)len)) > 0 &&
write(t, buf, k) == k
)
len -= k;