Aittvax.147 net.4bsd-bugs,net.v7-bugs utzoo!decvax!ittvax!swatt Wed Nov 25 19:37:27 1981 cp(1) bug Wed Nov 25 19:15:37 EST 1981 (reported by swatt) [ ] "cp" when faced with a source argument which is a directory copies the data of the directory file into a plain file in the destination area. This is obnoxious; either it should allow recursive copying of directory trees or it should ignore directory source arguments. Fix is: ________________________________________________________ cp /usr/src/cmd/cp.c /tmp/upd.$$.tmp ; chmod +w /tmp/upd.$$.tmp ed - /tmp/upd.$$.tmp <<\!XXFUNNYXX MORE COPY -R ((MODE&S_IFMT)="=" STATIC * , . DIRECTORY SKIP /* ; A SET Q !XXFUNNYXX W FROM); CHAR OF FLAG { } (STDERR, 71A 1C PROBABLY BE S_IFDIR) /TMP/UPD.$$.TMP RETURN; CONTENTS FPRINTF DIRECTORY? /USR/SRC/CMD/CP.C TO WOULD SO, ACTION IT. (FOLD); CLOSE */ DIFF %S IS A DIRECTORY (IGNORED)\N IF IS *SCCSID="@(#)cp.c 4.2 (ITT) 11/19/81" SOURCE REASONABLE>/tmp/upd.$$.dif if cmp - /tmp/upd.$$.dif <<\!XXFUNNYXX STATIC ; < CHAR 1C1 --- *SCCSID="@(#)cp.c 4.1 (Berkeley) 10/1/80"> static char *sccsid = "@(#)cp.c 4.2 (ITT) 11/19/81"; 71a72,80 > /* Is source a directory? if so, skip it. > * Probably more reasonable action would be to > * copy contents of directory if -r flag set > */ > if ((mode&S_IFMT) == S_IFDIR) { > close (fold); > fprintf (stderr, "%s is a directory (ignored)\n", from); > return; > } !xxFUNNYxx then : 'compare equal, ok' rm -f cp.c cp /tmp/upd.$$.tmp cp.c ; chmod a-w cp.c else echo "Old source file not same version;" \ "use diff listings by hand" fi rm -f /tmp/upd.$$.tmp /tmp/upd.$$.dif ________________________________________________________ [ /bin/cp: cp.c 4.1 (Berkeley) 10/1/80 ] ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.