summaryrefslogtreecommitdiff
path: root/src/shred.c
AgeCommit message (Collapse)Author
2003-03-08Before, when using shred on a device, one had to specify --exact,Jim Meyering
or be careful to choose a size that would not be rounded up and exceed the maximum value; that could result in a failure of the final write. (do_wipefd): --exact is now the default for non-regular files. Suggestion from Ben Elliston. (usage): Say it.
2003-01-13(long_opts): --zero does not require an argument.Jim Meyering
Patch by Michael Stone.
2003-01-10Don't include xalloc.h.Jim Meyering
It's already included via system.h.
2003-01-10Remove declaration of xstrdup.Jim Meyering
Instead, include "xalloc.h".
2003-01-04[S_ISLNK, S_ISFIFO, S_ISSOCK]: Don't define.Jim Meyering
They're already defined in sys2.h.
2002-12-15Remove all uses of `PARAMS'.Jim Meyering
2002-11-05(dopass):Jim Meyering
Use primitives from inttostr.h, not human.h, to print large numbers simply. (OUTPUT_BLOCK_SIZE): remove. (dopass): When printing progress, use floor for what has been done so far (since we should be conservative there), and ceiling for what needs to be done (since that's what other programs use).
2002-09-28(dopass): Use a uintmax_t temporary to avoid bogus compiler warnings.Jim Meyering
2002-08-31Change `exit (0)' to `exit (EXIT_SUCCESS)',Jim Meyering
`exit (1)' to `exit (EXIT_FAILURE)', and `usage (1)' to `usage (EXIT_FAILURE)'.
2002-08-30Change `error (1, ...' to `error (EXIT_FAILURE, ...'.Jim Meyering
2002-07-02(usage): Use the PACKAGE_BUGREPORT e-mail address, rather than hard-coding it.Jim Meyering
2002-02-01* src/shred.c: (VERBOSE_UPDATE): Update every 5 seconds, not every 10.Jim Meyering
(wipename): Quote file names only when necessary. (main): Copy quoted string into malloc'd storage so it doesn't get clobbered when using -u and --verbose. Minor clean-up. * src/shred.c: Use `NULL' rather than `(time_t *) 0'. (dopass): Use STREQ in place of strcmp. Add parentheses around use of nested ternary operator.
2002-02-01(VERBOSE_UPDATE): Now counts seconds, not bytes.Jim Meyering
(dopass): If verbose, output a line every VERBOSE_UPDATE seconds, and suppress duplicate output lines. Output a percentage as well as a count of bytes. Also, fix comment/code typo regarding how many bytes have been written; this typo was harmless before, but is no longer harmless with the above change in effect.
2002-01-21Don't include "xalloc.h", as system.h already does that via sys2.h.Jim Meyering
2002-01-12(usage): Also mention Ext3.Jim Meyering
2001-12-21[!HAVE_CONFIG_H]: Remove block of code that duplicatedJim Meyering
code in lib/ for compiling this program without config.h.
2001-12-19Add FSF copyright notice.Jim Meyering
2001-12-19(xstrtoumax): If there is no number but thereJim Meyering
is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary. Accept 'K' as well as 'k'.
2001-12-02Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTIONJim Meyering
instead of hard-coding --help and --version descriptions.
2001-11-26Don't include "gtod.h"Jim Meyering
(main): Don't `call' GETTIMEOFDAY_INIT.
2001-11-23(usage): Note that ``Mandatory arguments to long options are mandatoryJim Meyering
for short options too.''
2001-11-23(usage): Use `output', not `print' in description ofJim Meyering
the --version option, so this message is consistent with all the rest.
2001-11-23Split usage strings so that --help and --versionJim Meyering
descriptions are alone in their own string.
2001-11-23(usage): Split --help output into smaller pieces.Jim Meyering
Use fputs, not printf.
2001-10-21(isaac_seed_machdep): Handle SIGSEGV, too. Ick.Jim Meyering
2001-08-12Include gtod.h -- should have been part of preceding deltaJim Meyering
2001-08-12Include gtod.h.Jim Meyering
(main): `Call' GETTIMEOFDAY_INIT, just in case the code ever changes to make it necessary.
2001-05-11(usage): Warn about backups and mirrors.Jim Meyering
2001-04-29--help:Jim Meyering
downcase bulleted items remove some periods
2001-04-29(usage): Include in --help output the warning aboutJim Meyering
some of the filesystem types on which shred is not effective.
2001-01-17(PACKAGE): Likewise.Jim Meyering
2001-01-14(UINT_MAX_32_BITS): Define.Jim Meyering
Use UINT_MAX_32_BITS in the cpp conditions that determine the `word32' typedef. Using a literal `0xffffffff' failed with HPUX10.20's /bin/cc.
2000-12-22(isaac_seed_machdep) [_ARCH_PPC]: Disable the codeJim Meyering
that would use the PPC mfspr `asm' code.
2000-10-28Include assert.h.Jim Meyering
(fillrand): Add a parameter, size_max. Add an assertion. Adjust caller. (dopass): Break out of the `for (;;)' loop if size < offset. That can happen now that dopass is called with SIZE == -1. (do_wipefd): Accept a length of zero only for a regular file. If lseek fails or returns 0 for a non-regular file, let dopass determine the length. Inspired by a patch from Alan Iwi.
2000-09-25(long_opts): --exact doesn't take an argument.Jim Meyering
2000-08-08(quotearg_colon, xmalloc): "virtual memory exhausted" -> "memory exhausted"Jim Meyering
2000-07-31[!HAVE_CONFIG_H]: Use `virtual memory exhausted', not `Memory exhausted'.Jim Meyering
2000-07-30Convert "`%s'" in format strings to "%s", and wrap eachJim Meyering
corresponding argument in a `quote (...)' call.
2000-07-17(usage): Give a little more info.Jim Meyering
Remove FIXME comment.
2000-05-13Arrange to call close_stdout only upon exit.Jim Meyering
2000-05-09Include sys/types.h in shred.c before includingJim Meyering
sys/stat.h or system.h. From John David Anglin.
2000-05-09back out last change -- the two should be separateJim Meyering
2000-05-09Include sys/types.h in shred.c before includingJim Meyering
sys/stat.h or system.h. From John David Anglin.
1999-12-18(wipename): When repeatedly renaming a file, making the name shorterJim Meyering
and shorter, skip to the next shorter length length if a rename fails (e.g. due to permission denied). Otherwise, this loop would iterate for so long that shred would appear to be stuck in an infinite loop for any but the shortest file names.
1999-05-12(main): Put `u' for -u in getopt_long's string argument.Jim Meyering
Remove the `R'.
1999-04-22(word32): Don't use `#error'; it runs afoul of SunOS 4.1.4 cc.Jim Meyering
1999-04-20<config.h>: Include first, since it can doJim Meyering
things like #define const, and this must be done before including any system headers.
1999-04-19(main, longopts):Jim Meyering
Use -u instead of -R for --remove, so that we can preserve future compatibility with rm.
1999-04-19[!HAVE_CONFIG_H] (ST_BLKSIZE): Define to 65536.Jim Meyering
(do_wipefd): Use ST_BLKSIZE instead of referring to the st_blksize member directly.
1999-04-18Include xstrtol.h, not obsolete file xstrtoul.h.Jim Meyering
"human.h", "xalloc.h": Include. (attribute): Remove; no longer needed. (xstrdup): New decl. (STDOUT_FILENO): New macro. (O_NOCTTY): Make sure it's always defined, even if HAVE_CONFIG_H. The following changes have effect only if !HAVE_CONFIG_H. <ctype.h>: New include. (RETSIGTYPE): Remove bogus semicolon at end. (STDOUT_FILENO, uintmax_t, human_readable, LONGEST_HUMAN_READABLE): New macros. (xstrtoumax): Renamed from xstrtoul, with corresponding type changes. Handle suffixes like the real routine does. (error): Remove bogus assignment of errno to errnum. (xmalloc, xstrdup): New functions. (O_NOCTTY): Define even if !HAVE_CONFIG_H. (S_ISFIFO, S_ISSOCK): New macros, if not already defined. (OUTPUT_BLOCK_SIZE): New macro. (struct Options.verbose): Now a boolean, since we no longer have two levels of verbosity. (long_opts, usage, main): Remove -D or --device option. Invert -p or --preserve option, and rename it to -R or --remove. (usage): Describe G suffix. (usage): "-" no longer conflicts with -v. (UCHAR_MAX): Indent `#error' so that SunOS 4.1.4 cc doesn't reject it. (ind): Portability fixes: return word32, not unsigned; multiply by sizeof (word32) instead of shifting left by 2. (isaac_refill, isaac_mix): Comment out size of array parameter, as ansi2knr mishandles this. (status_visible, status_pos, pfstatus, flushstatus): Remove, since pfstatus isn't portable to users with varying width fonts, or internationalized messages, and vfprintf is problematic. All callers of pfstatus changed to use error instead; this removes incompatibility of -v with -. All calls to flushstatus removed. (dopass, do_wipefd): Do not translate non-English msgs with gettext. (dopass): Cast lseek constant arguments to (off_t) for benefit of pre-ANSI compilers; fix one lseek call whose args were interchanged. Remove unnecessary casts to (off_t). Do not check for EIO when determining file size; this was just my earlier wild guess. Use human_readable to print off_t, instead of casting to unsigned long (which doesn't work in Solaris 2.6, where off_t is longer than long). Output human-readable sizes, instead of always using "K". Check for offset overflow (it happened to me in SunOS 4.1.4). (do_wipefd): Do not insist on regular files, but do check for special files that cannot possibly be shredded. Use xmalloc instead of malloc + check. Do not inspect st_size for non-regular files. Try to find the size of a non-regular file by seeking to its end. Do not assume that a regular file of size-0 has unknown size. Check for regular files with negative sizes, and for overflow after rounding to next block. Always try to truncate, even for special files, but do not report an error if truncation fails on a special file. (dopass, wipefile): Do not return 1 for special files; the caller doesn't care any more. (wipefd): Remove unnecessary (and nonportable) check for whether the file descriptor is read-only. Remove no-longer-needed check for `-v -'. (incname): Return 1 for carry bit, like the documentation says. (wipename, wipefile): Accept new argument, specifying the quoted file name. All callers changed. (wipename): Use xstrdup instead of strdup+error check. (wipefile): Check for ENOTDIR when opening /dev/fd/NNN. Check for errors in NNN more carefully. Restore errno after the check. Check for errors when closing the file descriptor. Use more consistent wording when unable to remove a file. (main): Do not remove files by default. Use xstrtoumax instead of xstrtoul uniformly, since xstrtoul won't exist if !HAVE_CONFIG_H. In diagnostics, quote invalid operands to -n and -s options. Allow T, P, E, Z, and Y suffixes in -s operand. flags.verbose is now a boolean, not a counter. Use STDOUT_FILENO instead of 1, for clarity.