platform/upstream/coreutils.git
25 years ago(readtoken, readtokens): Protoize.
Jim Meyering [Sun, 11 Apr 1999 13:25:52 +0000 (13:25 +0000)]
(readtoken, readtokens): Protoize.

25 years ago(xwrite): Use STDOUT_FILENO instead of literal `1'.
Jim Meyering [Sun, 11 Apr 1999 03:42:21 +0000 (03:42 +0000)]
(xwrite): Use STDOUT_FILENO instead of literal `1'.

25 years ago*** empty log message ***
Jim Meyering [Sun, 11 Apr 1999 03:24:12 +0000 (03:24 +0000)]
*** empty log message ***

25 years ago(alpha): Add trailing slash for ncftp.
Jim Meyering [Sun, 11 Apr 1999 03:24:04 +0000 (03:24 +0000)]
(alpha): Add trailing slash for ncftp.

25 years ago*** empty log message *** FILEUTILS-4_0f
Jim Meyering [Sun, 11 Apr 1999 02:19:51 +0000 (02:19 +0000)]
*** empty log message ***

25 years ago.
Jim Meyering [Sun, 11 Apr 1999 02:17:48 +0000 (02:17 +0000)]
.

25 years ago.
Jim Meyering [Sun, 11 Apr 1999 02:17:20 +0000 (02:17 +0000)]
.

25 years ago*** empty log message ***
Jim Meyering [Sun, 11 Apr 1999 02:15:26 +0000 (02:15 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Sun, 11 Apr 1999 01:45:44 +0000 (01:45 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Sun, 11 Apr 1999 01:44:26 +0000 (01:44 +0000)]
*** empty log message ***

25 years ago`ls --color' would segfault
Jim Meyering [Sun, 11 Apr 1999 01:43:34 +0000 (01:43 +0000)]
`ls --color' would segfault
Include assert.h.
(color_indicator[]): Add an entry for the type, `door.'
(main): Assert that the lengths of the color_indicator and
indicator_name arrays are appropriately related.

25 years ago*** empty log message ***
Jim Meyering [Sun, 11 Apr 1999 01:35:01 +0000 (01:35 +0000)]
*** empty log message ***

25 years ago(scanargs): Fix bug introduced with last change: now that
Jim Meyering [Sun, 11 Apr 1999 01:32:28 +0000 (01:32 +0000)]
(scanargs): Fix bug introduced with last change: now that
the loop is gone, manually decrement argc and increment argv.

25 years ago*** empty log message ***
Jim Meyering [Thu, 8 Apr 1999 13:44:31 +0000 (13:44 +0000)]
*** empty log message ***

25 years ago(Options for date): Document --iso-8601
Jim Meyering [Thu, 8 Apr 1999 13:44:19 +0000 (13:44 +0000)]
(Options for date): Document --iso-8601

25 years agoAccept new option: --iso-8601.
Jim Meyering [Thu, 8 Apr 1999 13:44:00 +0000 (13:44 +0000)]
Accept new option: --iso-8601.

25 years ago*** empty log message ***
Jim Meyering [Wed, 7 Apr 1999 17:43:47 +0000 (17:43 +0000)]
*** empty log message ***

25 years ago(difftm): Protoize.
Jim Meyering [Wed, 7 Apr 1999 17:43:36 +0000 (17:43 +0000)]
(difftm): Protoize.

25 years ago.
Jim Meyering [Wed, 7 Apr 1999 17:43:12 +0000 (17:43 +0000)]
.

25 years ago.
Jim Meyering [Wed, 7 Apr 1999 17:41:57 +0000 (17:41 +0000)]
.

25 years ago*** empty log message ***
Jim Meyering [Wed, 7 Apr 1999 12:53:22 +0000 (12:53 +0000)]
*** empty log message ***

25 years agosplit long line
Jim Meyering [Tue, 6 Apr 1999 17:26:07 +0000 (17:26 +0000)]
split long line

25 years agoUpdate from master source in libc, removing %f.
Jim Meyering [Tue, 6 Apr 1999 14:22:06 +0000 (14:22 +0000)]
Update from master source in libc, removing %f.

25 years ago*** empty log message ***
Jim Meyering [Tue, 6 Apr 1999 14:15:04 +0000 (14:15 +0000)]
*** empty log message ***

25 years agoRemove test for %f.
Jim Meyering [Tue, 6 Apr 1999 14:14:58 +0000 (14:14 +0000)]
Remove test for %f.

25 years ago*** empty log message ***
Jim Meyering [Mon, 5 Apr 1999 03:51:33 +0000 (03:51 +0000)]
*** empty log message ***

25 years agoComment out the test added on 1999-01-31.
Jim Meyering [Mon, 5 Apr 1999 03:51:17 +0000 (03:51 +0000)]
Comment out the test added on 1999-01-31.

25 years ago(url_dir_list): Define properly.
Jim Meyering [Mon, 5 Apr 1999 02:00:03 +0000 (02:00 +0000)]
(url_dir_list): Define properly.
(real_dir_list): Likewise.

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 23:15:20 +0000 (23:15 +0000)]
*** empty log message ***

25 years agoDon't include string.h.
Jim Meyering [Sun, 4 Apr 1999 23:15:07 +0000 (23:15 +0000)]
Don't include string.h.
[!HAVE_CONFIG_H]: Include string.h here.
[!HAVE_CONFIG_H]: Hard-code RETSIGTYPE to `int'.
(sigill_handler): Change return type and type of local `oldhandler' to
RETSIGTYPE.
(isaac_seed_machdep): Change and type of local `oldhandler' to
RETSIGTYPE.

25 years agouse dquotes, not squotes FILEUTILS-4_0e
Jim Meyering [Sun, 4 Apr 1999 21:07:25 +0000 (21:07 +0000)]
use dquotes, not squotes

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 20:54:30 +0000 (20:54 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 16:02:28 +0000 (16:02 +0000)]
*** empty log message ***

25 years agoChange the sed command used to extract the
Jim Meyering [Sun, 4 Apr 1999 16:00:50 +0000 (16:00 +0000)]
Change the sed command used to extract the
filename from ls -l output, to accommodate the change in format.

25 years agoAdd case_GETOPT_* cases.
Jim Meyering [Sun, 4 Apr 1999 15:46:31 +0000 (15:46 +0000)]
Add case_GETOPT_* cases.

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 15:44:58 +0000 (15:44 +0000)]
*** empty log message ***

25 years agoStandardize --help and --version processing.
Jim Meyering [Sun, 4 Apr 1999 15:44:26 +0000 (15:44 +0000)]
Standardize --help and --version processing.

25 years agodefine/use AUTHORS
Jim Meyering [Sun, 4 Apr 1999 14:44:45 +0000 (14:44 +0000)]
define/use AUTHORS

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 14:43:27 +0000 (14:43 +0000)]
*** empty log message ***

25 years ago(print_long_format): Add a space between %s and %3u. This
Jim Meyering [Sun, 4 Apr 1999 14:41:43 +0000 (14:41 +0000)]
(print_long_format): Add a space between %s and %3u.  This
assures that even when modebuf has the trailing `+' and there are more
than 99 hard links to a file, the permissions string and the link count
will be separated.

25 years agoimport latest
Jim Meyering [Sun, 4 Apr 1999 14:33:18 +0000 (14:33 +0000)]
import latest

25 years ago(S_IWUSR): Define if not already defined.
Jim Meyering [Sun, 4 Apr 1999 14:32:58 +0000 (14:32 +0000)]
(S_IWUSR): Define if not already defined.

25 years ago.
Jim Meyering [Sun, 4 Apr 1999 14:30:44 +0000 (14:30 +0000)]
.

25 years agofix comments
Jim Meyering [Sun, 4 Apr 1999 14:30:30 +0000 (14:30 +0000)]
fix comments
add FIXME

25 years ago(dopass): add curly braces to avoid warning about ambiguous `else'.
Jim Meyering [Sun, 4 Apr 1999 04:54:34 +0000 (04:54 +0000)]
(dopass): add curly braces to avoid warning about ambiguous `else'.
(wipefd): Add parentheses suggested by gcc.
(do_wipefd): Remove declaration of unused local.

25 years ago[!HAVE_CONFIG_H] (xstrtoul, error, close_stdout): Added stubs
Jim Meyering [Sun, 4 Apr 1999 04:37:39 +0000 (04:37 +0000)]
[!HAVE_CONFIG_H] (xstrtoul, error, close_stdout): Added stubs
to allow standalone compilation.

(wipefile): Added support for emulating /dev/fd/# files even if
the OS doesn't support them.  From Paul Eggert.

(main, usage): Changed --device short option to -D.

(wipefd, do_wipefd): Renamed function to do_wipefd and added
separate wipefd that performs sanity checks on externally-opened file
descriptors, such as not append-only.  From Paul Eggert.

(do_wipefd, isaac_seedfd): Do not read file for any reason.
if the file is low-entropy, it's a security hole.
(wipefile) Changed to open O_WRONLY and chmod to write-only when
forcing.
(isaac_seedfd) Function deleted as unnecessary.
From Paul Eggert.

(dopass): Dynamically fall back to fsync() if fdatasync() fails,
since POSIX, in their infinitesimal wisdom, encourage implementations
that return constant -1, making compile-time testing useless.
From Paul Eggert.

(dopass): Changed to support a size of -1 to mean "unknown".
This entailed changing to a counting-up offset rather than couting-down
cursize for the central state variable.  Also changed size argument to
be call-by-reference so that it can be passed back once known.
(sizer) Function deleted as unnecessary.
(wipefd): Changed to match.  From Paul Eggert

(dopass): Try to skip over bad blocks in destination files.
Also added ftruncate() for more complete destruction of metadata.

(main, usage): Changed "-" to stand for standard output.
(wipefd): Added error message to detect conflict with -v.

(dopass): Added periodic fsync() calls to keep the pass progress
display in sync with reality.  Hopefully they're sufficiently far spaced
that throughput isn't affected.  It might be a good thing to do even in
non-verbose mode, to avoid filling up the kernel caches with dirty data.
Also added ftruncate() for more complete destruction of metadata.

(quotearg_colon): New function to print
pathological filenames properly.
[!HAVE_CONFIG_H] (quotearg_colon_buf) New internal helper function
that does most of the work.
(wipefd, do_wipefd, dopass) Now take a qname (pre-quoted name) argument.
(wipename, wipefile, main) Changed diagnostics to use quotearg_colon.
Error messages are also in a more uniform format.
From Paul Eggert.

(struct Options, main, do_wipefd): Added -s/--size=N flag.
(xstrtoul): Added support for valid_suffixes to help this.
(usage) Documented it.

(error): Changed some arguments from N_() to _(), since error()
does not translate its argument.  I think this is a bug.

(struct Options do_wipefd, wipefd, wipefile, main): moved passes
argument into the Options structure as n_iterations, which is now a
size_t.  From Paul Eggert.

(isaac_seed_start, isaac_seed_data, isaac_seed_finish): New functions
to manage seeding of RNG with arbitrary-sized data.
(isaac_init): commented out as dead code.
(isaac_seed): changed to use new functions to prevent any possibility of
a buffer overflow.

(isaac_seed): Added support for Solaris' gethrtime()
configure.in: Corresponding feature test.  From Paul Eggert.

(wipename): Change remove() to unlink() for speed & portability.
Use lstat() instead of access() to see if a filename is taken.  This
works even on dangling symlinks and avoids the suid problems of
access(2).  From Paul Eggert.

(isaac_seed_machdep): New function for reading cycle counters

25 years ago*** empty log message ***
Jim Meyering [Sun, 4 Apr 1999 04:34:16 +0000 (04:34 +0000)]
*** empty log message ***

25 years agoback out Paul's changes
Jim Meyering [Sun, 4 Apr 1999 02:34:49 +0000 (02:34 +0000)]
back out Paul's changes

25 years agoUse AUTHORS in place of string in parse_long_options call.
Jim Meyering [Sat, 3 Apr 1999 05:26:48 +0000 (05:26 +0000)]
Use AUTHORS in place of string in parse_long_options call.

25 years agoInsert AUTHORS definition.
Jim Meyering [Sat, 3 Apr 1999 05:22:05 +0000 (05:22 +0000)]
Insert AUTHORS definition.

25 years agoUse PROGRAM_NAME in place of string in parse_long_options call.
Jim Meyering [Sat, 3 Apr 1999 05:20:06 +0000 (05:20 +0000)]
Use PROGRAM_NAME in place of string in parse_long_options call.

25 years agodefine PROGRAM_NAME
Jim Meyering [Sat, 3 Apr 1999 05:01:48 +0000 (05:01 +0000)]
define PROGRAM_NAME

25 years ago*** empty log message ***
Jim Meyering [Sat, 3 Apr 1999 03:29:41 +0000 (03:29 +0000)]
*** empty log message ***

25 years ago(S_IWUSR): Define if not already defined.
Jim Meyering [Sat, 3 Apr 1999 03:29:17 +0000 (03:29 +0000)]
(S_IWUSR): Define if not already defined.

25 years ago(isaac_seed): Don't overrun the s->mm buffer.
Jim Meyering [Sat, 3 Apr 1999 03:27:57 +0000 (03:27 +0000)]
(isaac_seed): Don't overrun the s->mm buffer.
Use gethrtime if available.  Don't assume that clock_gettime succeeds.
Put most random sources first.

25 years agoAdd new options -bcCklL and fix some porting problems.
Jim Meyering [Sat, 3 Apr 1999 03:27:27 +0000 (03:27 +0000)]
Add new options -bcCklL and fix some porting problems.
Remove options -dp.  Do not read output files.

(long_opts, usage, main, wipefile): Adjust to new options.
("human.h", "quotearg.h"): New includes.
(struct Options): New members contents, links, n_iterations.
Remove allow_devices, remove_file.  Change n_iterations to size_t.
All uses changed.
(output_block_size): New var.
(usage): Declare __noreturn__ attribute.
(fdatasync): Define to -1 if not present, since we need to invoke both
fdatasync and fsync if both are present.  All invokers of fdatasync
now try fdatasync, then fsync.
(MIXIN): New macro.
(isaac_seed): Use it to mix in values.  Add uid, gid to mix.
Don't use gettimeofday, as it has too many porting problems.
(isaac_seedfd): Remove, since we no longer read the output files.
(sizefd): Remove; we now determine size by writing sequentially.
(dopass, wipename, wipefile, main): Clean up error messages.
(dopass): Keep track of offset relative to start of file, not
end, since we may not know how large the file is.  If size is
negative, write until we fall off the end of the file.
(wipefd): Do not read output file.
Return 0 if successful, -1 if not; do not make a special case for
non-regular files, since our callers have that info now.
(wipename): Now static.  Return errno if error.
(main): "-" now stands for standard output.
Do not shred append-only standard output.
(wipefile): Do not grant read permission to file when wiping it.
Use symbolic permission (S_IWUSR), not octal.
From Paul Eggert.

25 years ago[HAVE_SYS_ACL_H]: Include sys/acl.h.
Jim Meyering [Fri, 2 Apr 1999 05:38:15 +0000 (05:38 +0000)]
[HAVE_SYS_ACL_H]: Include sys/acl.h.
(struct fileinfo): New member `have_acl'.
(gobble_file): Initialize it.
(print_long_format): Use it.
Mostly from Alen Muzinic.

25 years ago*** empty log message ***
Jim Meyering [Fri, 2 Apr 1999 04:24:48 +0000 (04:24 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Fri, 2 Apr 1999 04:20:17 +0000 (04:20 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Fri, 2 Apr 1999 04:15:14 +0000 (04:15 +0000)]
*** empty log message ***

25 years ago(open_maybe_create): New function.
Jim Meyering [Fri, 2 Apr 1999 02:55:10 +0000 (02:55 +0000)]
(open_maybe_create): New function.
(touch): Rewrite not to use `creat' and to eliminate a race
condition that could make touch truncate a nonempty file.
Report and suggestions from Andrew Tridgell.

25 years ago*** empty log message ***
Jim Meyering [Fri, 2 Apr 1999 02:47:58 +0000 (02:47 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Thu, 1 Apr 1999 05:16:46 +0000 (05:16 +0000)]
*** empty log message ***

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 05:15:37 +0000 (05:15 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 05:10:41 +0000 (05:10 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years ago(install_file_in_dir): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 05:09:59 +0000 (05:09 +0000)]
(install_file_in_dir): Qualify a char* with the `const' keyword.

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 05:08:22 +0000 (05:08 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 05:07:51 +0000 (05:07 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years agoRemove prototypes and tsort function definitions.
Jim Meyering [Thu, 1 Apr 1999 05:05:17 +0000 (05:05 +0000)]
Remove prototypes and tsort function definitions.

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 04:58:29 +0000 (04:58 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years ago(main): Move the declaration of `e' into the scope
Jim Meyering [Thu, 1 Apr 1999 04:56:28 +0000 (04:56 +0000)]
(main): Move the declaration of `e' into the scope
where it's used and make it `const'.

25 years ago(main): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 04:53:13 +0000 (04:53 +0000)]
(main): Qualify a char* with the `const' keyword.

25 years ago(touch): Qualify a char* with the `const' keyword.
Jim Meyering [Thu, 1 Apr 1999 04:47:55 +0000 (04:47 +0000)]
(touch): Qualify a char* with the `const' keyword.

25 years ago.
Jim Meyering [Wed, 31 Mar 1999 15:21:00 +0000 (15:21 +0000)]
.

25 years ago*** empty log message ***
Jim Meyering [Wed, 31 Mar 1999 06:02:07 +0000 (06:02 +0000)]
*** empty log message ***

25 years agoDon't include closeout.h or version-etc.h explicitly. Now, they're included via sys2.h.
Jim Meyering [Wed, 31 Mar 1999 05:59:13 +0000 (05:59 +0000)]
Don't include closeout.h or version-etc.h explicitly. Now, they're included via sys2.h.

25 years ago*** empty log message ***
Jim Meyering [Wed, 31 Mar 1999 05:54:11 +0000 (05:54 +0000)]
*** empty log message ***

25 years agoNo longer include long-options.h.
Jim Meyering [Wed, 31 Mar 1999 05:52:46 +0000 (05:52 +0000)]
No longer include long-options.h.
[long_options]: Add entries for --help and --version.
Remove parse_long_options call.
(main) [getopt switch]: Add a case for each of --help and --version.

25 years agoInclude "closeout.h" and "version-etc.h"
Jim Meyering [Wed, 31 Mar 1999 05:52:46 +0000 (05:52 +0000)]
Include "closeout.h" and "version-etc.h"

25 years ago(AUTHORS): Actually define and use.
Jim Meyering [Wed, 31 Mar 1999 05:06:42 +0000 (05:06 +0000)]
(AUTHORS): Actually define and use.

25 years ago(PROGRAM_NAME, AUTHORS): Define and use.
Jim Meyering [Wed, 31 Mar 1999 04:16:08 +0000 (04:16 +0000)]
(PROGRAM_NAME, AUTHORS): Define and use.

25 years ago(PROGRAM_NAME, AUTHORS): Define and use.
Jim Meyering [Wed, 31 Mar 1999 04:11:35 +0000 (04:11 +0000)]
(PROGRAM_NAME, AUTHORS): Define and use.

25 years agoimport latest
Jim Meyering [Tue, 30 Mar 1999 15:11:20 +0000 (15:11 +0000)]
import latest

25 years ago.
Jim Meyering [Tue, 30 Mar 1999 05:40:40 +0000 (05:40 +0000)]
.

25 years ago.
Jim Meyering [Tue, 30 Mar 1999 04:52:57 +0000 (04:52 +0000)]
.

25 years ago(make_node_op_equals): New function.
Jim Meyering [Tue, 30 Mar 1999 04:51:08 +0000 (04:51 +0000)]
(make_node_op_equals): New function.
(mode_append_entry): Likewise.
(mode_compile): When none of [ugoa] is specified in an `=OP' change
mode request, insert a `=0' entry into the linked list so that all
bits are cleared first.  Use the new functions.

25 years ago*** empty log message ***
Jim Meyering [Tue, 30 Mar 1999 04:48:57 +0000 (04:48 +0000)]
*** empty log message ***

25 years ago(rmdir): Use pid_t instead of int; check status
Jim Meyering [Tue, 30 Mar 1999 04:48:41 +0000 (04:48 +0000)]
(rmdir): Use pid_t instead of int; check status
against zero.  This is to improve portability.

25 years ago(rename): Use pid_t instead of int; check status
Jim Meyering [Tue, 30 Mar 1999 04:48:17 +0000 (04:48 +0000)]
(rename): Use pid_t instead of int; check status
against zero.  This is to improve portability.

25 years ago(mkdir): Use pid_t instead of int; check status
Jim Meyering [Tue, 30 Mar 1999 04:47:52 +0000 (04:47 +0000)]
(mkdir): Use pid_t instead of int; check status
against zero.  This is to improve portability.

25 years ago(strip): Use standard "cannot fork" message.
Jim Meyering [Tue, 30 Mar 1999 04:43:53 +0000 (04:43 +0000)]
(strip): Use standard "cannot fork" message.
Check for strip nonzero exit status.

25 years ago*** empty log message ***
Jim Meyering [Tue, 30 Mar 1999 04:36:00 +0000 (04:36 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Tue, 30 Mar 1999 04:34:46 +0000 (04:34 +0000)]
*** empty log message ***

25 years ago*** empty log message ***
Jim Meyering [Tue, 30 Mar 1999 04:33:22 +0000 (04:33 +0000)]
*** empty log message ***

25 years ago(jm_CHECK_ALL_TYPES): New macro.
Jim Meyering [Tue, 30 Mar 1999 04:29:19 +0000 (04:29 +0000)]
(jm_CHECK_ALL_TYPES): New macro.

25 years ago*** empty log message ***
Jim Meyering [Mon, 29 Mar 1999 04:39:56 +0000 (04:39 +0000)]
*** empty log message ***

25 years agoDefine GNU_PACKAGE here.
Jim Meyering [Mon, 29 Mar 1999 04:39:50 +0000 (04:39 +0000)]
Define GNU_PACKAGE here.
Be sure to AC_SUBST it, once again, so that @GNU_PACKAGE@ is
replaced e.g., in the *.sh files of the sh-utils.

25 years agoPROGRAM_NAME: rename from COMMAND_NAME
Jim Meyering [Mon, 29 Mar 1999 02:56:52 +0000 (02:56 +0000)]
PROGRAM_NAME: rename from COMMAND_NAME

25 years ago*** empty log message ***
Jim Meyering [Sun, 28 Mar 1999 21:01:09 +0000 (21:01 +0000)]
*** empty log message ***

25 years ago(get_date): Reuse tm_isdst of first localtime
Jim Meyering [Sun, 28 Mar 1999 20:58:51 +0000 (20:58 +0000)]
(get_date): Reuse tm_isdst of first localtime
call; this is an improvement on a bug fix suggested by
martin@dresden.nacamar.de.  Do not assume that localtime and
gmtime return non-null.
From Paul Eggert.