X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=debian%2Fpatches%2Fpatches-as-of-mmv-1.01b-15.diff;fp=debian%2Fpatches%2Fpatches-as-of-mmv-1.01b-15.diff;h=b99d45beeea37d63eb03dd451dd44f08259bb7c1;hb=64bd8f3abfd6de40e29281c34183fb563316d5da;hp=0000000000000000000000000000000000000000;hpb=d5490ea49bbe91f57686ed013c9b9741ad7fccfb;p=pkg%2Fmmv.git diff --git a/debian/patches/patches-as-of-mmv-1.01b-15.diff b/debian/patches/patches-as-of-mmv-1.01b-15.diff new file mode 100644 index 0000000..b99d45b --- /dev/null +++ b/debian/patches/patches-as-of-mmv-1.01b-15.diff @@ -0,0 +1,713 @@ +Description: Patches as of mmv 1.01b-15 + This patch contains the patches as of mmv 1.01b-15 when it has been + converted to the source format "3.0 (quilt)" +Author: Multiple Authors. See changelog for details. +Reviewed-By: Axel Beckert +Last-Update: 2012-09-16 + +--- mmv-1.01b.orig/mmv.c ++++ mmv-1.01b/mmv.c +@@ -62,7 +62,8 @@ static char USAGE[] = + %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"; ++by the N'th ``from'' pattern wildcard.\n\ ++Use -- as the end of options.\n"; + + #define OTHEROPT (_osmajor < 3 ? "" : "|r") + +@@ -75,7 +76,9 @@ Use #[l|u]N in the ``to'' pattern to get + 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.\n"; ++on the command line. Also you may need to quote ``to'' pattern.\n\ ++\n\ ++Use -- as the end of options.\n"; + + #ifdef IS_SYSV + #define OTHEROPT "" +@@ -85,6 +88,7 @@ on the command line.\n"; + + #endif + ++#include + #include + #include + +@@ -120,14 +124,12 @@ extern unsigned _stklen = 10000; + #else + /* for various flavors of UN*X */ + ++#include ++#include + #include + #include + #include + +-extern char *getenv(); +-extern long lseek(); +-extern char *malloc(); +- + #ifdef HAS_DIRENT + #include + typedef struct dirent DIRENTRY; +@@ -390,7 +392,7 @@ static int movealias(/* REP *first, REP + static int snap(/* REP *first, REP *p */); + static void showdone(/* REP *fin */); + static void breakout(/* */); +-static int breakrep(/* */); ++static void breakrep(int); + static void breakstat(/* */); + static void quit(/* */); + static int copymove(/* REP *p */); +@@ -436,9 +438,11 @@ static CHUNK *freechunks = NULL; + 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 = stdout; ++static FILE *outfile; + ++#ifdef IS_MSDOS + static char IDF[] = "$$mmvdid."; ++#endif + static char TEMP[] = "$$mmvtmp."; + static char TOOLONG[] = "(too long)"; + static char EMPTY[] = "(empty)"; +@@ -456,12 +460,12 @@ char pathbuf[MAXPATH]; + char fullrep[MAXPATH + 1]; + static char *(start[MAXWILD]); + static int len[MAXWILD]; +-static char hasdot[MAXWILD]; + static REP mistake; + #define MISTAKE (&mistake) + + #ifdef IS_MSDOS + ++static char hasdot[MAXWILD]; + static int olddevflag, curdisk, maxdisk; + static struct { + char ph_banner[30]; +@@ -497,6 +501,8 @@ int main(argc, argv) + { + char *frompat, *topat; + ++ outfile = stdout; ++ + init(); + procargs(argc, argv, &frompat, &topat); + domatch(frompat, topat); +@@ -560,7 +566,7 @@ static void procargs(argc, argv, pfrompa + char **pfrompat, **ptopat; + { + char *p, c; +- char *cmdname = argv[0]; ++ char *cmdname = basename(argv[0]); + + #ifdef IS_MSDOS + #define CMDNAME (patch.ph_name) +@@ -575,6 +581,11 @@ static void procargs(argc, argv, pfrompa + 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) +@@ -618,7 +629,8 @@ static void procargs(argc, argv, pfrompa + } + } + +- if (op == DFLT) ++endargs: ++ if (op == DFLT) { + if (strcmp(cmdname, MOVENAME) == 0) + op = XMOVE; + else if (strcmp(cmdname, COPYNAME) == 0) +@@ -629,6 +641,8 @@ static void procargs(argc, argv, pfrompa + op = HARDLINK; + else + op = DFLTOP; ++ } ++ + if ( + op & DIRMOVE && + #ifdef IS_MSDOS +@@ -775,7 +789,7 @@ static void matchpat() + static int parsepat() + { + char *p, *lastname, c; +- int totwilds, instage, x, havedot; ++ int totwilds, instage, x; + static char TRAILESC[] = "%s -> %s : trailing %c is superfluous.\n"; + + lastname = from; +@@ -999,20 +1013,16 @@ static int parsepat() + 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 +@@ -1042,7 +1052,7 @@ static int dostage(lastend, pathend, sta + DIRINFO *di; + HANDLE *h, *hto; + int prelen, litlen, nfils, i, k, flags, try; +- FILEINFO **pf, *fdel; ++ FILEINFO **pf, *fdel = NULL; + char *nto, *firstesc; + REP *p; + int wantdirs, ret = 1, laststage = (stage + 1 == nstages); +@@ -1172,11 +1182,12 @@ static int trymatch(ffrom, pat) + if (*p == '.' || (!matchall && ffrom->fi_attrib & (FA_HIDDEN | FA_SYSTEM))) + return(strcmp(pat, p) == 0); + #else +- if (*p == '.') ++ if (*p == '.') { + if (p[1] == '\0' || (p[1] == '.' && p[2] == '\0')) + return(strcmp(pat, p) == 0); + else if (!matchall && *pat != '.') + return(0); ++ } + #endif + return(-1); + } +@@ -1312,7 +1323,7 @@ static int checkto(hfrom, f, phto, pnto, + { + char tpath[MAXPATH + 1]; + char *pathend; +- FILEINFO *fdel; ++ FILEINFO *fdel = NULL; + int hlen, tlen; + + if (op & DIRMOVE) { +@@ -1405,7 +1416,9 @@ static char *getpath(tpath) + static int badname(s) + char *s; + { ++#ifdef IS_MSDOS + char *ext; ++#endif + + return ( + #ifdef IS_MSDOS +@@ -1715,20 +1728,19 @@ static HANDLE *checkdir(p, pathend, whic + struct stat dstat; + DIRID d; + DEVID v; +- DIRINFO **newdirs, *di; +- int nfils; +- FILEINFO **fils; ++ DIRINFO *di = NULL; + char *myp, *lastslash = NULL; + int sticky; + HANDLE *h; + +- if (hsearch(p, which, &h)) ++ if (hsearch(p, which, &h)) { + if (h->h_di == NULL) { + direrr = h->h_err; + return(NULL); + } + else + return(h); ++ } + + if (*p == '\0') + myp = "."; +@@ -1899,7 +1911,10 @@ static int match(pat, s, start1, len1) + char *pat, *s, **start1; + int *len1; + { +- char c, *olds; ++ char c; ++#ifdef IS_MSDOS ++ char *olds; ++#endif + + *start1 = 0; + for(;;) +@@ -2376,9 +2391,9 @@ static void goonordie() + static void doreps() + { + char *fstart; +- int k, printaliased = 0, alias; ++ int k, printaliased = 0, alias = 0; + REP *first, *p; +- long aliaslen; ++ long aliaslen = 0l; + + #ifdef IS_MSDOS + ctrlbrk(breakrep); +@@ -2396,11 +2411,12 @@ static void doreps() + } + strcpy(fullrep, p->r_hto->h_name); + strcat(fullrep, p->r_nto); +- if (!noex && (p->r_flags & R_ISCYCLE)) ++ if (!noex && (p->r_flags & R_ISCYCLE)) { + if (op & APPEND) + aliaslen = appendalias(first, p, &printaliased); + else + alias = movealias(first, p, &printaliased); ++ } + strcpy(pathbuf, p->r_hfrom->h_name); + fstart = pathbuf + strlen(pathbuf); + if ((p->r_flags & R_ISALIASED) && !(op & APPEND)) +@@ -2459,7 +2475,7 @@ static long appendalias(first, p, pprint + REP *first, *p; + int *pprintaliased; + { +- long ret; ++ long ret = 0l; + + #ifdef IS_MSDOS + int fd; +@@ -2578,10 +2594,10 @@ static void breakout() + } + + +-static int breakrep() ++static void breakrep(int signum) + { + gotsig = 1; +- return(1); ++ return; + } + + +@@ -2624,11 +2640,12 @@ static int copymove(p) + + static int copy(ff, len) + FILEINFO *ff; +- long len; ++ off_t len; + { +- char buf[BUFSIZE], c; ++ char buf[BUFSIZE]; + int f, t, k, mode, perm; + #ifdef IS_MSDOS ++ char c; + struct ftime tim; + #else + #ifdef IS_SYSV +@@ -2672,7 +2689,7 @@ static int copy(ff, len) + return(-1); + } + if (op & APPEND) +- lseek(t, 0L, 2); ++ lseek(t, (off_t)0, SEEK_END); + #ifdef IS_MSDOS + if (op & ZAPPEND && filelength(t) != 0) { + if (lseek(t, -1L, 1) == -1L || read(t, &c, 1) != 1) { +@@ -2684,10 +2701,10 @@ static int copy(ff, len) + lseek(t, -1L, 1); + } + #endif +- if ((op & APPEND) && len != -1L) { ++ if ((op & APPEND) && len != (off_t)-1) { + while ( + len != 0 && +- (k = read(f, buf, len > BUFSIZE ? BUFSIZE : (unsigned)len)) > 0 && ++ (k = read(f, buf, (len > BUFSIZE) ? BUFSIZE : (size_t)len)) > 0 && + write(t, buf, k) == k + ) + len -= k; +@@ -2711,7 +2728,9 @@ static int copy(ff, len) + tim.modtime = fstat.st_mtime, + #else + tim[0].tv_sec = fstat.st_atime, ++ tim[0].tv_usec = 0, + tim[1].tv_sec = fstat.st_mtime, ++ tim[1].tv_usec = 0, + #endif + utimes(fullrep, tim) + ) +--- mmv-1.01b.orig/mmv.1 ++++ mmv-1.01b/mmv.1 +@@ -2,7 +2,7 @@ + .\" To print the MS-DOS version, use option -rO2. + .\" Under System V, take out the '.\" ' from the next line. + .\" .nr O 1 +-.TH MMV 1 "November 20, 1989 (v1.0)" ++.TH MMV 1 "November 20, 2001 (v1.0lfs)" + .ie !'\nO'2' \{\ + .SH NAME + mmv \- move/copy/append/link multiple files by wildcard patterns +@@ -21,13 +21,14 @@ mmv \- move/copy/append multiple files b + \} + .SH SYNOPSIS + .B mmv +-.if '\nO'2' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBz\fP] +-.if '\nO'0' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP|\fBs\fP] +-.if '\nO'1' [\fB-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP] +-[\fB-h\fP] +-[\fB-d\fP|\fBp\fP] +-[\fB-g\fP|\fBt\fP] +-[\fB-v\fP|\fBn\fP] ++.if '\nO'2' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBz\fP] ++.if '\nO'0' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP|\fBs\fP] ++.if '\nO'1' [\fB\-m\fP|\fBx\fP|\fBr\fP|\fBc\fP|\fBo\fP|\fBa\fP|\fBl\fP] ++[\fB\-h\fP] ++[\fB\-d\fP|\fBp\fP] ++[\fB\-g\fP|\fBt\fP] ++[\fB\-v\fP|\fBn\fP] ++[\fB\-\-\fP] + [\fBfrom to\fP] + .if '\nO'2' \{\ + .br +@@ -56,6 +57,9 @@ from the entire set of actions specified + and gives the user the choice of either + proceeding by avoiding the offending parts + or aborting. ++.I mmv ++does support large files (LFS) but it does *NOT* support ++sparse files (i.e. it explodes them). + + .ce + The Task Options +@@ -71,7 +75,7 @@ If none of these are specified, + .ie '\nO'2' \{\ + a default (patchable by + .IR mmvpatch , +-and initially -x) ++and initially \-x) + determines the task. + \} + .el \{\ +@@ -81,18 +85,18 @@ was invoked (argv[0]): + + command name default task + +- mmv -x ++ mmv \-x + .br +- mcp -c ++ mcp \-c + .br +- mad -a ++ mad \-a + .br +- mln -l ++ mln \-l + \} + .PP + The task option choices are: + .TP +--m : ++\-m : + move source file to target name. + Both must be on the same device. + Will not move directories. +@@ -102,8 +106,8 @@ moves the link without checking if the l + directory is different than the old. + \} + .TP +--x : +-same as -m, except cross-device moves are done ++\-x : ++same as \-m, except cross-device moves are done + by copying, then deleting source. + When copying, sets the + .ie !'\nO'2' permission bits +@@ -111,7 +115,7 @@ When copying, sets the + and file modification time + of the target file to that of the source file. + .TP +--r : ++\-r : + rename source file or directory to target name. + The target name must not include a path: + the file remains in the same directory in all cases. +@@ -119,7 +123,7 @@ This option is the only way of renaming + .IR mmv . + .if '\nO'2' It is only available under DOS version 3.0 or higher. + .TP +--c : ++\-c : + copy source file to target name. + Sets the file modification time and + .ie !'\nO'2' permission bits +@@ -128,7 +132,7 @@ of the target file to that of the source + regardless of whether the target file already exists. + Chains and cycles (to be explained below) are not allowed. + .TP +--o : ++\-o : + overwrite target name with source file. + .ie '\nO'2' \{\ + If target file exists, its attributes are left unchanged. +@@ -146,38 +150,38 @@ and the execute permission bits copied f + In either case, the file modification time is set to the current time. + \} + .TP +--a : ++\-a : + append contents of source file to target name. + Target file modification time is set to the current time. + If target file does not exist, + it is created with + .ie '\nO'2' attributes + .el permission bits +-set as under -o. +-Unlike all other options, -a allows multiple source files to have the +-same target name, e.g. "mmv -a ++set as under \-o. ++Unlike all other options, \-a allows multiple source files to have the ++same target name, e.g. "mmv \-a + .ie '\nO'2' *.c + .el \\*.c + big" will append all ".c" files to "big". +-Chains and cycles are also allowed, so "mmv -a f f" will double up "f". ++Chains and cycles are also allowed, so "mmv \-a f f" will double up "f". + .ie '\nO'2' \{\ + .TP +--z : +-same as -a, but if the target file exists, and its last character is a ^Z, ++\-z : ++same as \-a, but if the target file exists, and its last character is a ^Z, + and the source file is not empty, + this ^Z is truncated before doing the append. + \} + .el \{\ + .TP +--l : ++\-l : + link target name to source file. + Both must be on the same device, + and the source must not be a directory. + Chains and cycles are not allowed. + .if '\nO'0' \{\ + .TP +--s : +-same as -l, but use symbolic links instead of hard links. ++\-s : ++same as \-l, but use symbolic links instead of hard links. + For the resulting link to aim back at the source, + either the source name must begin with a '/', + or the target must reside in either the current or the source directory. +@@ -190,7 +194,7 @@ and the source can be a directory. + Only one of these option may be given, + and it applies to all matching files. + Remaining options need not be given separately, +-i.e. "mmv -mk" is allowed. ++i.e. "mmv \-mk" is allowed. + + .ce + Multiple Pattern Pairs +@@ -232,7 +236,7 @@ a b + a c + .in -3 + +-would give the error message "a -> c : no match" because file "a" ++would give the error message "a \-> c : no match" because file "a" + (even if it exists) + was already matched by the first pattern pair. + +@@ -255,10 +259,10 @@ matching any single character, + and matching any one of a set of characters. + .PP + Between the '[' and ']', a range from character 'a' through character 'z' +-is specified with "a-z". ++is specified with "a\-z". + The set of matching characters can be negated by inserting + a '^' after the '['. +-Thus, "[^b-e2-5_]" ++Thus, "[^b\-e2\-5_]" + will match any character but 'b' through 'e', '2' through '5', and '_'. + .if '\nO'2' \{\ + .PP +@@ -305,13 +309,13 @@ However, the '~' is not treated as a wil + in the sense that it is not assigned a wildcard index (see below). + \} + .PP +-Since matching a directory under a task option other than -r or -s ++Since matching a directory under a task option other than \-r or \-s + would result in an error, +-tasks other than -r and -s ++tasks other than \-r and \-s + match directories only against completely explicit + .I from + patterns (i.e. not containing wildcards). +-Under -r and -s, this applies only to "." and "..". ++Under \-r and \-s, this applies only to "." and "..". + .PP + .ie '\nO'2' \{\ + Hidden and system files are also only matched +@@ -324,7 +328,7 @@ Files beginning with '.' are only matche + .I from + patterns that begin with an explicit '.'. + \} +-However, if -h is specified, they are matched normally. ++However, if \-h is specified, they are matched normally. + .if !'\nO'2' \{\ + .PP + Warning: since the shell normally expands wildcards +@@ -332,8 +336,9 @@ before passing the command-line argument + .IR mmv , + it is usually necessary to enclose the command-line + .I from +-pattern +-in quotes. ++and ++.I to ++patterns in quotes. + \} + + .ce +@@ -363,7 +368,7 @@ pattern is "abc*.*" and the + pattern is "xyz#2.#1", + then "abc.txt" is targeted to "xyztxt.". + (The first '*' matched "", and the second matched "txt".) +-Similarly, for the pattern pair ";*.[clp]" -> "#1#3\*(SL#2", ++Similarly, for the pattern pair ";*.[clp]" \-> "#1#3\*(SL#2", + "foo1\*(SLfoo2\*(SLprog.c" is targeted to "foo1\*(SLfoo2\*(SLc\*(SLprog". + Note that there is no '\*(SL' following the "#1" in the + .I to +@@ -397,7 +402,7 @@ expands the '~' in the exact same manner + does not expand it at all). + \} + .PP +-For all task options other than -r, if the target name is a directory, ++For all task options other than \-r, if the target name is a directory, + the real target name is formed by appending + a '\*(SL' followed by the last component + of the source file name. +@@ -434,7 +439,7 @@ a b + .br + b c + +-specifies the chain "a" -> "b" -> "c". ++specifies the chain "a" \-> "b" \-> "c". + A cycle is a chain where the last target name + refers back to the first source file, + e.g. "mmv a a". +@@ -461,9 +466,9 @@ Furthermore, + .I mmv + checks if any of its actions will result + in the destruction of existing files. +-If the -d (delete) option is specified, ++If the \-d (delete) option is specified, + all file deletions or overwrites are done silently. +-Under -p (protect), all deletions or overwrites ++Under \-p (protect), all deletions or overwrites + (except those specified with "(*)" on the standard input, see below) + are treated as errors. + And if neither option is specified, +@@ -487,16 +492,16 @@ Once all errors are detected, + queries the user whether he wishes + to continue by avoiding the erroneous actions or to abort altogether. + This and all other queries may be avoided by specifying either the +--g (go) or -t (terminate) option. ++\-g (go) or \-t (terminate) option. + The former will resolve all difficulties by avoiding the erroneous actions; + the latter will abort + .I mmv + if any errors are detected. + Specifying either of them defaults + .I mmv +-to -p, unless -d is specified ++to \-p, unless \-d is specified + (see above). +-Thus, -g and -t are most useful when running ++Thus, \-g and \-t are most useful when running + .I mmv + in the background or in + a shell script, +@@ -508,28 +513,28 @@ Reports + Once the actions to be performed are determined, + .I mmv + performs them silently, +-unless either the -v (verbose) or -n (no-execute) option is specified. ++unless either the \-v (verbose) or \-n (no-execute) option is specified. + The former causes + .I mmv + to report each performed action + on the standard output as + +-a -> b : done. ++a \-> b : done. + + Here, "a" and "b" would be replaced by the source and target names, + respectively. + If the action deletes the old target, + a "(*)" is inserted after the the target name. +-Also, the "->" symbol is modified when a cycle has to be broken: ++Also, the "\->" symbol is modified when a cycle has to be broken: + the '>' is changed to a '^' on the action prior to which the old target + is renamed to a temporary, +-and the '-' is changed to a '=' on the action where the temporary is used. ++and the '\-' is changed to a '=' on the action where the temporary is used. + .PP +-Under -n, none of the actions are performed, ++Under \-n, none of the actions are performed, + but messages like the above are printed on the standard output + with the ": done." omitted. + .PP +-The output generated by -n can (after editing, if desired) ++The output generated by \-n can (after editing, if desired) + be fed back to + .I mmv + on the standard input +@@ -545,9 +550,9 @@ To facilitate this, + ignores lines on the standard input that look + like its own error and "done" messages, + as well as all lines beginning with white space, +-and will accept pattern pairs with or without the intervening "->" +-(or "-^", "=>", or "=^"). +-Lines with "(*)" after the target pattern have the effect of enabling -d ++and will accept pattern pairs with or without the intervening "\->" ++(or "\-^", "=>", or "=^"). ++Lines with "(*)" after the target pattern have the effect of enabling \-d + for the files matching this pattern only, + so that such deletions are done silently. + When feeding +@@ -596,11 +601,11 @@ on a copy of + .I mmv + named as follows: + +- -x, -m, -r mmv.exe ++ \-x, \-m, \-r mmv.exe + .br +- -c, -o mcp.exe ++ \-c, \-o mcp.exe + .br +- -a, -z mad.exe ++ \-a, \-z mad.exe + .PP + .I Mmvpatch + also determines the best way to uniquely identify directories. +--- mmv-1.01b.orig/Makefile ++++ mmv-1.01b/Makefile +@@ -1,10 +1,10 @@ + # Possible defines in CONF: + # IS_MSDOS IS_SYSV IS_V7 IS_BSD HAS_DIRENT HAS_RENAME MV_DIR + +-CC =gcc -traditional ++CC =gcc + LD =$(CC) + CONF =-DIS_SYSV -DHAS_DIRENT -DHAS_RENAME +-CFLAGS =-O2 -m486 $(CONF) ++CFLAGS =-O2 $(CONF) + LDFLAGS =-s -N + + #IBIN =$(LOCAL)$(ARCH)/bin