debian/0000755000000000000000000000000012214666255007177 5ustar debian/patches/0000755000000000000000000000000012214663034010616 5ustar debian/patches/better-diagnostics-for-directories-584850.diff0000644000000000000000000000124412025605307021113 0ustar Description: Provide better diagnostic for directories Provides better diagnostic when renaming directories. Based on patch by Ulrich Eckhardt . Debian-Bug: 584850 Author: Axel Beckert Index: mmv/mmv.c =================================================================== --- mmv.orig/mmv.c 2012-09-16 20:03:04.269626454 +0200 +++ mmv/mmv.c 2012-09-16 20:06:18.220733497 +0200 @@ -1215,7 +1215,11 @@ getstat(pathbuf, ffrom); if ((ffrom->fi_stflags & FI_ISDIR) ? !dirs : !fils) #endif + { + if (verbose) + printf("ignoring directory %s\n", ffrom->fi_name); return(0); + } if (needslash) { strcpy(pathend + *pk, SLASHSTR); debian/patches/format-security.diff0000644000000000000000000000112712025605307014605 0ustar Description: Fixes build failure with -Werror=format-security ("format not a string literal and no format arguments") Author: Axel Beckert Index: mmv/mmv.c =================================================================== --- mmv.orig/mmv.c 2012-09-16 18:51:28.000000000 +0200 +++ mmv/mmv.c 2012-09-16 18:59:20.600733584 +0200 @@ -2828,7 +2828,7 @@ static FILE *tty = NULL; int c, r; - fprintf(stderr, m); + fprintf(stderr, "%s", m); if (tty == NULL && (tty = fopen(TTY, "r")) == NULL) { fprintf(stderr, "Can not open %s to get reply.\n", TTY); if (failact == -1) debian/patches/man-page-examples.diff0000644000000000000000000000221712146474103014754 0ustar Description: Add examples section to man page This patch adds several examples of common mmv usage to the man page Debian-Bug: 380327 Author: Axel Beckert Last-Update: 2012-12-29 Index: mmv/mmv.1 =================================================================== --- mmv.orig/mmv.1 2012-12-29 02:20:59.510075480 +0100 +++ mmv/mmv.1 2012-12-29 02:39:33.591699513 +0100 @@ -35,6 +35,43 @@ .B mmvpatch [\fBexecutable\fP] \} +.SH "EXAMPLES" +Rename all +.I *.jpeg +files in the current directory to +\fI*.jpg\fR: + +.in +3 +mmv '*.jpeg' '#1.jpg' +.in -3 + +Replace the first occurrence of +.I abc +with +.I xyz +in all files in the current directory: + +.in +3 +mmv '*abc*' '#1xyz#2' +.in -3 + +Rename files ending in \fI.html.en\fR, \fI.html.de\fR, etc. to ending +in \fI.en.html\fR, \fI.de.html\fR, etc. in the current directory: + +.in +3 +mmv '*.html.??' '#1.#2#3.html' +.in -3 + +Rename music files from +.I - - .ogg +to +.I - - .ogg +in the current directory: + +.in +3 +mmv '* - * - *.ogg' '#2 - #1 - #3.ogg' +.in -3 + .SH "DESCRIPTION" .I Mmv moves (or copies, debian/patches/man-page-fixes.diff0000644000000000000000000002632612146474103014263 0ustar Description: Man page fixes as of mmv 1.01b-15 This patch contains the man-page fixes 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-12-29 --- 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. debian/patches/man-page-warning-149873.diff0000644000000000000000000000241712146474103015362 0ustar Description: Add warnings about #149873 to man page This patch adds warnings about issues with spaces in patterns and files when patterns are read from STDIN to the man page Debian-Bug: 149873 Author: Axel Beckert Last-Update: 2012-12-29 Index: mmv/mmv.1 =================================================================== --- mmv.orig/mmv.1 2012-12-29 02:44:07.591288928 +0100 +++ mmv/mmv.1 2012-12-29 02:56:01.425012596 +0100 @@ -234,7 +234,7 @@ i.e. "mmv \-mk" is allowed. .ce -Multiple Pattern Pairs +Multiple Pattern Pairs / Reading Patterns from STDIN .PP Multiple .I from @@ -277,6 +277,11 @@ (even if it exists) was already matched by the first pattern pair. +\fBWARNING:\fR This operation mode does \fBnot\fR work if the patterns +itself contain \fBspaces\fR. See +.I http://bugs.debian.org/149873 +for details. + .ce The \fIFrom\fP Pattern .PP @@ -592,6 +597,12 @@ 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. + +\fBWARNING:\fR This means that \fBunexpected things\fR may happen if +\fBfiles\fR matched by the patterns contain \fBspaces\fR. See +.I http://bugs.debian.org/149873 +for details. + When feeding .I mmv its own output, debian/patches/patches-as-of-mmv-1.01b-15.diff0000644000000000000000000002132612146474103015646 0ustar Description: Patches as of mmv 1.01b-15 This patch contains the functional 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-12-29 --- 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) ) Index: mmv/Makefile =================================================================== --- mmv.orig/Makefile 2012-09-16 18:24:31.375886230 +0200 +++ mmv/Makefile 2012-09-16 18:24:46.260122528 +0200 @@ -1,16 +1,16 @@ # 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 #IMAN =$(LOCAL)$(ANY)/man IBIN=$(DESTDIR)/usr/bin/ -IMAN=$(DESTDIR)/usr/man/ +IMAN=$(DESTDIR)/usr/share/man/ mmv: mmv.o debian/patches/series0000644000000000000000000000025412214657566012051 0ustar patches-as-of-mmv-1.01b-15.diff man-page-fixes.diff format-security.diff better-diagnostics-for-directories-584850.diff man-page-examples.diff man-page-warning-149873.diff debian/source/0000755000000000000000000000000012025605307010466 5ustar debian/source/format0000644000000000000000000000001412025605307011674 0ustar 3.0 (quilt) debian/compat0000644000000000000000000000000212025605307010364 0ustar 9 debian/copyright0000644000000000000000000000301612146475465011137 0ustar This is the Debian GNU/Linux prepackaged version of mmv. This package was put together by Michael Meskes , from sources obtained from USENET. It was maintained by Bernd Eckenfels with some enhancements (NLS Char Support, glibc compiles) from Bernd and kind contributions from Hartmut Koptein . At the moment it is maintained by Gerfried Fuchs and Axel Beckert . Copyright (c) 1989 Vladimir Lanin Mmv is freeware. That means that the entire package of software and documentation is copyrighted, and may not be distributed with any modifications or for any charge (without the author's explicit written permission). Other than that, it may be used and distributed freely. Vladimir Lanin 330 Wadsworth Ave, Apt 6F New York, NY 10040 lanin@csd2.nyu.edu ...!cmcl2!csd2!lanin However, Vladimir told me: Michael, This message is to serve as an announcement that I am changing the copyright of mmv to GPL. If this message is in any way insufficient to do so, please tell me what I have to do. Please keep in mind that I do not have in hand either the full GPL text or the source code of the last mmv release (oops). If there is any other way that I can help out, please tell me. Thanks, Vladimir Lanin vlad@brm.com Thanks to Joost for getting into touch with him. On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-2 file, later versions can be found in the same directory. debian/dirs0000644000000000000000000000003312025605307010046 0ustar usr/bin usr/share/man/man1 debian/docs0000644000000000000000000000001012025605307010030 0ustar READ.ME debian/links0000644000000000000000000000036012025605307010230 0ustar usr/bin/mmv usr/bin/mcp usr/bin/mmv usr/bin/mad usr/bin/mmv usr/bin/mln usr/share/man/man1/mmv.1.gz usr/share/man/man1/mcp.1.gz usr/share/man/man1/mmv.1.gz usr/share/man/man1/mad.1.gz usr/share/man/man1/mmv.1.gz usr/share/man/man1/mln.1.gz debian/lintian-overrides0000644000000000000000000000006212025605307012545 0ustar mmv: no-upstream-changelog mmv: no-homepage-field debian/control0000644000000000000000000000132412146475465010607 0ustar Source: mmv Maintainer: Gerfried Fuchs Uploaders: Axel Beckert Section: utils Priority: optional Standards-Version: 3.9.4 Build-Depends: debhelper (>= 9~), dpkg-dev (>= 1.16.1~) Vcs-Git: git://git.deb.at/pkg/mmv.git Vcs-Browser: http://git.deb.at/w/pkg/mmv.git Package: mmv Architecture: any Description: Move/Copy/Append/Link multiple files mmv is a program to move/copy/append/link multiple files according to a set of wildcard patterns. This multiple action is performed safely, i.e. without any unexpected deletion of files due to collisions of target names with existing filenames or with other target names. Depends: ${misc:Depends}, ${shlibs:Depends} debian/rules0000755000000000000000000000036412214657241010255 0ustar #! /usr/bin/make -f DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk %: dh $@ override_dh_auto_build: dh_auto_build -- LDFLAGS="$(LDFLAGS)" CFLAGS="$(CFLAGS) $(shell getconf LFS_CFLAGS) -DIS_SYSV -DHAS_DIRENT -DHAS_RENAME" debian/source.lintian-overrides0000644000000000000000000000005112146474103014044 0ustar mmv source: debian-watch-file-is-missing debian/changelog0000644000000000000000000001502012214666255011047 0ustar mmv (1.01b-18) unstable; urgency=low * Make LFS support working on 32-bit (again?) by adding the output of "getconf LFS_CFLAGS" to CFLAGS. + Fixes lintian warning binary-file-built-without-LFS-support + Closes: #722709 * Switch to a dh7 style debian/rules file * Bump Standards-Version to 3.9.4 (no changes) * Apply wrap-and-sort -- Axel Beckert Fri, 13 Sep 2013 21:42:25 +0200 mmv (1.01b-17) unstable; urgency=low * Fix lintian warning malformed-override * Fix blhc warning dpkg-buildflags-missing by passing CFLAGS explicitly. * Fix double build by calling "touch build-stamp" after the build. * Add Vcs-* headers -- Axel Beckert Sat, 29 Dec 2012 17:14:25 +0100 mmv (1.01b-16) unstable; urgency=low * Add myself as Uploader. * Bump Standards-Version to 3.9.3 (no other changes necessary) * Switch to source format "3.0 (quilt)" * Add slightly modified patch by Ulrich Eckhardt to provide better diagnostics for directory renaming (Closes: #584850) * Add examples section to man page (Closes: #380327) * Add warnings about blanks in patterns and file names when reading patterns from STDIN (Mitigates: #149873) * Rewrite debian/rules with oldstyle debhelper utilities + Use compat-level 9 + Add build-dependency on debhelper >= 9~ * Fix lintian-warnings debian-rules-missing-recommended-target * Use hardening build flags + Add build-dependency on dpkg-dev >= 1.16.1~ + Add patch to fix FTBFS with -Werror=format-security * Fix wrong license reference in debian/copyright * Add some lintian overrides related to non-existent upstream web page or upstream changelog. -- Axel Beckert Sat, 29 Dec 2012 03:37:29 +0100 mmv (1.01b-15) unstable; urgency=low * New Maintainer (closes: #485999) * Update to Standards-Version 3.8.1: - Switch from DEB_BUILD_OPTIONS debug to noopt, add support for parallel. * Replace call to dh_md5sums with direct creation and remove Build-Depends on debhelper. * Don't ignore make clean errors anymore and use $(MAKE) instead of make in debian/rules. * Add empty line before .ce The Task Options (closes: #411182) * Initialize tv_usec (closes: #452993) * Add mising linebreak to an italic line (closes: #411181) * Wrap cmdname in basename() (closes: #452989) * Add reference to the full text of the GPL file in the common-licenses directory. * Escape all relevant dashes in the manpage to not turn them into hyphens. -- Gerfried Fuchs Sat, 30 May 2009 18:08:18 +0200 mmv (1.01b-14) unstable; urgency=low * Thanks for NMU to Joey, Ai and Uwe * applied Patch to initialize var (Closes: Bug #316363) * removed 2 dozent GCC warnings (uninitialized, unused, ambiquous else) -- Bernd Eckenfels Sat, 04 Feb 2006 23:58:43 +0100 mmv (1.01b-12.3) unstable; urgency=low * NMU * Remove postinst and prerm, finishing /usr/doc transition. Closes: #322813 -- Joey Hess Tue, 10 Jan 2006 00:54:51 -0500 mmv (1.01b-12.2) unstable; urgency=low * NMU * Fix segfault at startup on amd64 (and possibly other architectures) due to implicit declaration of functions from stdlib.h. (Closes: #322541) -- Ari Pollak Sat, 13 Aug 2005 01:01:13 -0400 mmv (1.01b-12.1) unstable; urgency=low * Non-Maintainer Upload (BSP 2005-08-06). * Fixed FTBFS with gcc 3.4 / 4.0 by applying patch from Andreas Jochens (Closes: #260574). -- Uwe Hermann Sat, 6 Aug 2005 22:07:06 +0200 mmv (1.01b-12) unstable; urgency=low * LFS support! (not sure if this breaks something :) (Closes: Bug #106822) * support -- as option terminator (Closes: Bug #52417) -- Bernd Eckenfels Tue, 20 Nov 2001 19:03:24 +0100 mmv (1.01b-11) unstable; urgency=medium * added Build-Depends (Closes: Bug #105025) * bumped Standards Version from 3.0.1 to 3.6.5 * make strig/-g depending on environemnt variable * added a comment about quoting 'to' patter (Closes: Bug #106076) -- Bernd Eckenfels Sat, 10 Nov 2001 18:28:56 +0100 mmv (1.01b-10.1) unstable; urgency=LOW * reupload cause it was rejected -- Bernd Eckenfels Thu, 3 Aug 2000 02:38:20 +0200 mmv (1.01b-10) unstable; urgency=LOW * debian/rules clean will now kill *~ files -- Bernd Eckenfels Sun, 23 Jul 2000 04:28:46 +0200 mmv (1.01b-9) unstable; urgency=LOW * closes: #67605 (no special handling for char > 127 anymore) * clsoes: #60128 (i think it was fixed by hartmut already) * man page and doc now in /usr/share, new standards version -- Bernd Eckenfels Sun, 23 Jul 2000 04:08:19 +0200 mmv (1.01b-8.1) unstable; urgency=LOW * NMU * fixed the invalid initializer for glibc-2.1 * closes: #31929 * changed in debian/rules in the clean target: + /bin/rm -f into -rm -f + make into -make + added *~ -- Hartmut Koptein Fri, 9 Jul 1999 10:24:17 +0200 mmv (1.01b-8) unstable; urgency=LOW * should compile now with different headers (Bug#26955). -- Bernd Eckenfels Sun, 1 Nov 1998 05:36:36 +0100 mmv (1.01b-7) frozen unstable; urgency=LOW * Remove debian/files with make clean (Bug#21526). -- Michael Meskes Wed, 22 Apr 1998 16:19:30 +0200 mmv (1.01b-6) frozen unstable; urgency=LOW * Make lintian happy. -- Michael Meskes Fri, 17 Apr 1998 14:36:19 +0200 mmv (1.01b-5) unstable; urgency=LOW * Added new copyright notice and moved package back into main. My thanks go to Joost for getting into touch with the upstream author. -- Michael Meskes Thu, 5 Mar 1998 10:42:42 +0100 mmv (1.01b-4) unstable; urgency=LOW * Updated standard * Added man page links. -- Michael Meskes Fri, 27 Feb 1998 15:33:54 +0100 mmv (1.01b-3) unstable; urgency=LOW * Moved package to non-free. Sorry, I cannot reach the upstream author to clarify the problems with his copyright. (#14908). * Do not comress copyright file. (#14460) -- Michael Meskes Fri, 19 Dec 1997 10:47:37 +0100 mmv (1.01b-2) unstable; urgency=LOW * Put copyright file into /usr/doc/mmv/copyright (#10623) * Removed -m486 option in Makefile (#10780). * Corrected man page permission (#4913). * Compiled against libc6. -- Michael Meskes Tue, 5 Aug 1997 13:11:36 +0200 mmv (1.01b-1) unstable; urgency=LOW * Initial release -- Michael Meskes Tue, 15 Oct 1996 13:02:46 +0200