summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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.Jim Meyering
(parse_integer): Migrate most of the work into the new xstrtoumax fn.
1999-04-18Include xstrtol.h, not obsolete file xstrtoul.h.Jim Meyering
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.
1999-04-18(tempname): Add a FIXME comment.Jim Meyering
1999-04-18(NAME_MAX_IN_DIR): Rename from PATH_MAX_IN_DIR. Use _POSIX_NAME_MAX,Jim Meyering
not _POSIX_PATH_MAX. Guard with #if HAVE_PATHCONF rather than #if HAVE_UNISTD_H.
1999-04-18Rename global: s/temp_file_prefix/temp_dir/.Jim Meyering
1999-04-18(usage): s/DIRECT/DIRECTORY/gJim Meyering
1999-04-18(main): Open the output file with *read* accessJim Meyering
only if we might need to read to satisfy a `seek=' request. From Matthias Urlichs.
1999-04-17(file_lines): Fix serious bug introduced with last changes.Jim Meyering
From Andreas Schwab.
1999-04-15Add comments.Jim Meyering
(init_header): Tweak white space in Date/Time header.
1999-04-13new version via automakeJim Meyering
1999-04-13(main): Declare out_dev to be of type dev_t, not `int'.Jim Meyering
Declare out_ino to be of type ino_t, not `int'.
1999-04-13* src/od.c (MIN, MAX): Remove definitions.Jim Meyering
* src/sys2.h (MIN, MAX): Define here instead.
1999-04-12(COPY_TO_EOF): Define.Jim Meyering
(dump_remainder): Add parameter, n_bytes, and rewrite to use it. Update callers. (file_lines): Rename parameter. (tail_bytes): Remove obsolete comment.
1999-04-11Fix the problem whereby `yes > k & tail -1 k' would infloop.Jim Meyering
(dump_remainder): Move this function to precede the new use in file_lines. (tail_lines): Don't call dump_remainder here. (file_lines): Call dump_remainder here instead.
1999-04-11(xwrite): Use STDOUT_FILENO instead of literal `1'.Jim Meyering
1999-04-11`ls --color' would segfaultJim Meyering
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.
1999-04-11(scanargs): Fix bug introduced with last change: now thatJim Meyering
the loop is gone, manually decrement argc and increment argv.
1999-04-08Accept new option: --iso-8601.Jim Meyering
1999-04-06split long lineJim Meyering
1999-04-04Don't include string.h.Jim Meyering
[!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.
1999-04-04Add case_GETOPT_* cases.Jim Meyering
1999-04-04Standardize --help and --version processing.Jim Meyering
1999-04-04define/use AUTHORSJim Meyering
1999-04-04(print_long_format): Add a space between %s and %3u. ThisJim Meyering
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.
1999-04-04(S_IWUSR): Define if not already defined.Jim Meyering
1999-04-04(dopass): add curly braces to avoid warning about ambiguous `else'.Jim Meyering
(wipefd): Add parentheses suggested by gcc. (do_wipefd): Remove declaration of unused local.
1999-04-04[!HAVE_CONFIG_H] (xstrtoul, error, close_stdout): Added stubsJim Meyering
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
1999-04-04back out Paul's changesJim Meyering
1999-04-03Use AUTHORS in place of string in parse_long_options call.Jim Meyering
1999-04-03Insert AUTHORS definition.Jim Meyering
1999-04-03Use PROGRAM_NAME in place of string in parse_long_options call.Jim Meyering
1999-04-03define PROGRAM_NAMEJim Meyering
1999-04-03(S_IWUSR): Define if not already defined.Jim Meyering
1999-04-03(isaac_seed): Don't overrun the s->mm buffer.Jim Meyering
Use gethrtime if available. Don't assume that clock_gettime succeeds. Put most random sources first.
1999-04-03Add new options -bcCklL and fix some porting problems.Jim Meyering
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.
1999-04-02[HAVE_SYS_ACL_H]: Include sys/acl.h.Jim Meyering
(struct fileinfo): New member `have_acl'. (gobble_file): Initialize it. (print_long_format): Use it. Mostly from Alen Muzinic.
1999-04-02(open_maybe_create): New function.Jim Meyering
(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.
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(install_file_in_dir): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01Remove prototypes and tsort function definitions.Jim Meyering
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(main): Move the declaration of `e' into the scopeJim Meyering
where it's used and make it `const'.
1999-04-01(main): Qualify a char* with the `const' keyword.Jim Meyering
1999-04-01(touch): Qualify a char* with the `const' keyword.Jim Meyering
1999-03-31Don't include closeout.h or version-etc.h explicitly. Now, they're included ↵Jim Meyering
via sys2.h.