cph@zurich.ai.mit.edu (Chris Hanson) (02/09/90)
The following simple changes to "cp.c" and "mv.c" improve these programs when used under hp-ux. The programs work fine without the changes, but they work better with them. *** cp.c.~1~ Sat Feb 3 13:47:13 1990 --- cp.c Thu Feb 8 13:44:08 1990 *************** *** 160,166 **** egid = getegid (); ngroups = 1; groups = (int *) xmalloc (ngroups * sizeof *groups); ! #ifdef USG *groups = getgid (); #else for (;;) --- 160,166 ---- egid = getegid (); ngroups = 1; groups = (int *) xmalloc (ngroups * sizeof *groups); ! #if defined(USG) && !defined(hpux) *groups = getgid (); #else for (;;) *************** *** 748,754 **** /* ??? Since USG doesn't have ftruncate, this can't be done. This should be fixed. */ ! #ifndef USG if (write (target_desc, "", 1) != 1 || ftruncate (target_desc, n_read_total) < 0) error ("cannot write", errno, dst_path, FATAL); --- 748,754 ---- /* ??? Since USG doesn't have ftruncate, this can't be done. This should be fixed. */ ! #if !defined(USG) || defined(hpux) if (write (target_desc, "", 1) != 1 || ftruncate (target_desc, n_read_total) < 0) error ("cannot write", errno, dst_path, FATAL); *** mv.c.~1~ Fri Feb 2 22:57:45 1990 --- mv.c Thu Feb 8 13:44:07 1990 *************** *** 91,97 **** return (stat (fn, &stb) >= 0 && (stb.st_mode & S_IFMT) == S_IFDIR); } ! #ifdef USG int rename (from, to) --- 91,97 ---- return (stat (fn, &stb) >= 0 && (stb.st_mode & S_IFMT) == S_IFDIR); } ! #if defined(USG) && !defined(hpux) int rename (from, to) *************** *** 311,317 **** error (0, errno, "cannot create `%s'", to); return; } ! #ifdef USG chmod (to, stbf.st_mode & 0777); /* again, can't fail */ #else fchmod (ofd, stbf.st_mode & 0777); /* again, can't fail */ --- 311,317 ---- error (0, errno, "cannot create `%s'", to); return; } ! #if defined(USG) && !defined(hpux) chmod (to, stbf.st_mode & 0777); /* again, can't fail */ #else fchmod (ofd, stbf.st_mode & 0777); /* again, can't fail */