--- cp.c 2006-05-31 22:15:03.000000000 +0100 +++ cp.c 2006-05-31 22:17:55.000000000 +0100 @@ -83,7 +83,7 @@ PATH_T to = { to.p_path, emptystring, "" }; -int fflag, iflag, nflag, pflag, vflag; +int fflag, iflag, nflag, pflag, vflag, xflag; static int Rflag, rflag; volatile sig_atomic_t info; @@ -101,8 +101,8 @@ int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash; char *target; - Hflag = Lflag = Pflag = 0; - while ((ch = getopt(argc, argv, "HLPRfinprv")) != -1) + Hflag = Lflag = Pflag = xflag = 0; + while ((ch = getopt(argc, argv, "HLPRfinprvx")) != -1) switch (ch) { case 'H': Hflag = 1; @@ -140,6 +140,9 @@ case 'v': vflag = 1; break; + case 'x': + xflag = 1; + break; default: usage(); break; @@ -151,6 +154,9 @@ usage(); fts_options = FTS_NOCHDIR | FTS_PHYSICAL; + if (xflag) { + fts_options |= FTS_XDEV; + } if (rflag) { if (Rflag) errx(1,