Re: patch to add microsecond resolution support to cp -p, etc.

2003-08-11 Thread Jim Meyering
Paul Eggert [EMAIL PROTECTED] wrote:
 Sun patch 109933-02 for Solaris 8 sparc, released August 1, added
 support to cp -p to set file timestamps to microsecond resolution,
 instead of the old behavior, which set them only to 1-second
 resolution.  Sun make relies on this new behavior so that make
 actions like dest: source; cp -p source dest do not confuse make.

 Here is a patch to add this capability to GNU coreutils.

 2003-08-06  Paul Eggert  [EMAIL PROTECTED]

   * NEWS: Add support for setting file timestamps to microsecond
   resolution, on hosts that support this.
   * lib/Makefile.am (libeftish_a_SOURCES): Add utimens.c, utimens.h.
   * lib/utimens.c, lib/utimens.h: New files.
   * m4/prereq.m4 (jm_PREREQ): Require gl_UTIMENS.
   * m4/timespec.m4: Sync with gnulib.
   * m4/utimens.m4: New file.
   * src/copy.c, src/cp.c, src/install.c, src/touch.c: Include timespec.h.
   * src/copy.c (copy_internal):
   Set file timestamps with utimens, not utimes.
   * src/cp.c (re_protect): Likewise.
   * src/install.c (change_timestamps): Likewise.
   * src/touch.c (newtime, touch, main): Likewise.
...
 diff -Naurp coreutils/src/copy.c coreutils-cp-p/src/copy.c
 --- coreutils/src/copy.c  2003-07-22 23:38:18.0 -0700
 +++ coreutils-cp-p/src/copy.c 2003-08-06 17:21:52.489506000 -0700

Thanks for those changes!
I've applied most of them.

In particular, I've changed this:

  * src/copy.c, src/cp.c, src/install.c, src/touch.c: Include timespec.h.
to
  Include utimens.h.

That exposed a little problem.
I've removed a few of the leading `' like this one:

 +  if (utimens (dst_path, timespec))

More importantly, utimes doesn't seem to work on my
system (linux-2.4.21, libc-2.3.2) so I'm changing your patch
to check for utime (not utimes) and use utimes only if `! HAVE_UTIME'.

Besides, before your change, touch used `utime' unconditionally.
Why does utimens.c bother with utimes at all?


___
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils


Re: patch to add microsecond resolution support to cp -p, etc.

2003-08-11 Thread Jim Meyering
I wrote:
 Why does utimens.c bother with utimes at all?

:-)
Because utimes lets you specify the fractional part of the file times.

Now, I prefer the way you wrote utimens.c, but we'll need a
replacement utimes function for systems where it's broken.


___
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils