** Bug fixes
chown and chgrp with the -v --from= options, now output the correct owner.
- I.E. for skipped files, the original ownership is output, not the new one.
+ I.e., for skipped files, the original ownership is output, not the new one.
[bug introduced in sh-utils-2.0g]
cp -r could mistakenly change the permissions of an existing destination
the DF_BLOCK_SIZE, BLOCK_SIZE, and BLOCKSIZE environment variables. It
is still affected by POSIXLY_CORRECT, though.
- Using pr -m -s (i.e. merging files, with TAB as the output separator)
+ Using pr -m -s (i.e., merging files, with TAB as the output separator)
no longer inserts extraneous spaces between output columns.
* Noteworthy changes in release 6.8 (2007-02-24) [not-unstable]
-----------------------
A known problem exists when compiling on HPUX on both hppa and ia64
-in 64-bit mode (i.e. +DD64) on HP-UX 11.0, 11.11, and 11.23. This
+in 64-bit mode (i.e., +DD64) on HP-UX 11.0, 11.11, and 11.23. This
is not due to a bug in the package but instead due to a bug in the
system header file which breaks things in 64-bit mode. The default
compilation mode is 32-bit and the software compiles fine using the
This gives some notes on obtaining the tools required for development.
-I.E. the tools checked for by the bootstrap script and include:
+I.e., the tools checked for by the bootstrap script and include:
- Autoconf <http://www.gnu.org/software/autoconf/>
- Automake <http://www.gnu.org/software/automake/>
# 4914152 9e
export XZ_OPT = -8e
-old_NEWS_hash = 807de7c63283042c8506780fa28c5dce
+old_NEWS_hash = 41e5c3133f5d8947e2ff13aab58fc52b
# Add an exemption for sc_makefile_at_at_check.
_makefile_at_at_check_exceptions = ' && !/^cu_install_prog/ && !/dynamic-dep/'
halt='TAB in indentation; use only spaces' \
$(_sc_search_regexp)
+# Enforce lowercase 'e' in "I.e.".
+sc_prohibit_uppercase_id_est:
+ @prohibit='I\.E\.' \
+ halt='Uppercase "Id Est" abbreviation; use "I.e.," instead' \
+ $(_sc_search_regexp)
+
+# Enforce double-space before "I.e." at the beginning of a sentence.
+sc_ensure_double_space_after_dot_before_id_est:
+ @prohibit='\. I\.e\.' \
+ halt='Single space after dot before "i.e."; use ". i.e." instead' \
+ $(_sc_search_regexp)
+
+# Enforce comma after "i.e." (at least before a blank or at EOL).
+sc_ensure_comma_after_id_est:
+ @prohibit='[Ii]\.e\.( |$$)' \
+ halt='Missing comma after "i.e."; use "i.e.," instead' \
+ $(_sc_search_regexp)
+
# The SEE ALSO section of a man page should not be terminated with
# a period. Check the first line after each "SEE ALSO" line in man/*.x:
sc_prohibit_man_see_also_period:
@item --suppress-matched
@opindex --suppress-matched
Do not output lines matching the specified @var{pattern}.
-I.E. suppress the boundary line from the start of the second
+I.e., suppress the boundary line from the start of the second
and subsequent splits.
@item -z
@end smallexample
Relative symbolic links are generated based on their canonicalized
-containing directory, and canonicalized targets. I.E. all symbolic
+containing directory, and canonicalized targets. I.e., all symbolic
links in these file names will be resolved.
@xref{realpath invocation}, which gives greater control
over relative file name generation, as demonstrated in the following example:
as that would sync the containing file system rather than the referenced one.
Note also that depending on the system, passing individual device nodes or files
may have different sync characteristics than using no arguments.
-I.E. arguments passed to fsync(2) may provide greater guarantees through
+I.e., arguments passed to fsync(2) may provide greater guarantees through
write barriers, than a global sync(2) used when no arguments are provided.
@end table
/* The central step. S->m is the whole state array, while M is a
pointer to the current word. OFF is the offset from M to the
- word ISAAC_WORDS/2 words away in the SM array, i.e. +/-
+ word ISAAC_WORDS/2 words away in the SM array, i.e., +/-
ISAAC_WORDS/2. A and B are state variables, and R the result.
This updates A, B, M[I], and R[I]. */
#define ISAAC_STEP(i, off, mix) \
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
/* Generate a temporary file name based on TMPL. TMPL must match the
-- rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix).
-+ rules for mk[s]temp (i.e. end in at least X_SUFFIX_LEN "X"s,
+- rules for mk[s]temp (i.e., end in "XXXXXX", possibly with a suffix).
++ rules for mk[s]temp (i.e., end in at least X_SUFFIX_LEN "X"s,
+ possibly with a suffix).
The name constructed does not exist at the time of the call to
- __gen_tempname. TMPL is overwritten with the result.
.br
This will immedidately display unique entries from access.log
[BUGS]
-On GLIBC platforms, specifying a buffer size, i.e. using fully buffered mode
+On GLIBC platforms, specifying a buffer size, i.e., using fully buffered mode
will result in undefined operation.
/* Pointer to the next character in the input buffer. */
char *bpin;
- /* Pointer to the first non-valid byte in the input buffer, i.e. the
+ /* Pointer to the first non-valid byte in the input buffer, i.e., the
current end of the buffer. */
char *eob;
/* It was a real (not a sentinel) newline. */
/* Was the last line empty?
- (i.e. have two or more consecutive newlines been read?) */
+ (i.e., have two or more consecutive newlines been read?) */
if (++newlines > 0)
{
which means that the buffer is empty or that a proper newline
has been found. */
- /* If quoting, i.e. at least one of -v, -e, or -t specified,
+ /* If quoting, i.e., at least one of -v, -e, or -t specified,
scan for chars that need conversion. */
if (show_nonprinting)
{
}
/* Some file systems (like XFS) preallocate when write extending a file.
- I.E. a previous write() may have preallocated extra space
+ I.e., a previous write() may have preallocated extra space
that the seek above will not discard. A subsequent write() could
then make this allocation permanent. */
if (punch_holes && punch_hole (fd, file_end - size, size) < 0)
last_ext_start = ext_start;
/* Treat an unwritten but allocated extent much like a hole.
- I.E. don't read, but don't convert to a hole in the destination,
+ I.e., don't read, but don't convert to a hole in the destination,
unless SPARSE_ALWAYS. */
/* For now, do not treat FIEMAP_EXTENT_UNWRITTEN specially,
because that (in combination with no sync) would lead to data
that was specified on the command line. Use it to avoid clobbering
source files in commands like this:
rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
- For now, it protects only regular files when copying (i.e. not renaming).
+ For now, it protects only regular files when copying (i.e., not renaming).
When renaming, it protects all non-directories.
Use dest_info_init to initialize it, or set it to NULL to disable
this feature. */
"without an SELinux-enabled kernel"));
/* FIXME: This handles new files. But what about existing files?
- I.E. if updating a tree, new files would have the specified context,
+ I.e., if updating a tree, new files would have the specified context,
but shouldn't existing files be updated for consistency like this?
if (scontext)
restorecon (dst_path, 0, true);
return field_found;
}
-/* Increment *ITEM_IDX (i.e. a field or byte index),
+/* Increment *ITEM_IDX (i.e., a field or byte index),
and if required CURRENT_RP. */
static inline void
The page alignment is necessary on any Linux kernel that supports
either the SGI raw I/O patch or Steven Tweedies raw I/O patch.
- It is necessary when accessing raw (i.e. character special) disk
+ It is necessary when accessing raw (i.e., character special) disk
devices on Unixware or other SVR4-derived system. */
if (skip_records != 0 || skip_bytes != 0)
/* Filter mount list by skipping duplicate entries.
In the case of duplicates - based on the device number - the mount entry
- with a '/' in its me_devname (i.e. not pseudo name like tmpfs) wins.
+ with a '/' in its me_devname (i.e., not pseudo name like tmpfs) wins.
If both have a real devname (e.g. bind mounts), then that with the shorter
me_mountdir wins. With DEVICES_ONLY == true (set with df -a), only update
the global device_list, rather than filtering the global mount_list. */
/* Multiple files in block. Set EXTENT_NOT_ALIGNED. */
# define FIEMAP_EXTENT_DATA_TAIL 0x00000400
-/* Space allocated, but not data (i.e. zero). */
+/* Space allocated, but not data (i.e., zero). */
# define FIEMAP_EXTENT_UNWRITTEN 0x00000800
/* File does not natively support extents. Result merged for efficiency. */
high_addend_2, low_addend_2) adds two UWtype integers, composed by
HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and LOW_ADDEND_2
respectively. The result is placed in HIGH_SUM and LOW_SUM. Overflow
- (i.e. carry out) is not stored anywhere, and is lost.
+ (i.e., carry out) is not stored anywhere, and is lost.
8) sub_ddmmss(high_difference, low_difference, high_minuend, low_minuend,
high_subtrahend, low_subtrahend) subtracts two two-word UWtype integers,
composed by HIGH_MINUEND_1 and LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and
LOW_SUBTRAHEND_2 respectively. The result is placed in HIGH_DIFFERENCE
- and LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere,
+ and LOW_DIFFERENCE. Overflow (i.e., carry out) is not stored anywhere,
and is lost.
If any of these macros are left undefined for a particular CPU,
if (__r1 < __m) \
{ \
__q1--, __r1 += (d); \
- if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\
+ if (__r1 >= (d)) /* i.e., we didn't get carry when adding to __r1 */\
if (__r1 < __m) \
__q1--, __r1 += (d); \
} \
};
/* The number of sort keys is calculated as the sum of
- the number of elements in the sort_type enum (i.e. sort_numtypes)
- the number of elements in the time_type enum (i.e. time_numtypes) - 1
+ the number of elements in the sort_type enum (i.e., sort_numtypes)
+ the number of elements in the time_type enum (i.e., time_numtypes) - 1
This is because when sort_type==sort_time, we have up to
time_numtypes possible sort keys.
*_suffix = skip_fields (*_data, 1);
if (**_suffix)
{
- /* there is a suffix (i.e. the field is not the last on the line),
+ /* there is a suffix (i.e., the field is not the last on the line),
so null-terminate the _data before it. */
**_suffix = '\0';
++(*_suffix);
only one POSIX requirement has to be met:
The default n-separator should be a TAB. The consequence is a
different width between the number and the text if the output position
- of the separator changes, i.e. it depends upon the left margin used.
+ of the separator changes, i.e., it depends upon the left margin used.
That's not nice but easy-to-use together with the defaults of other
utilities, e.g. sort or cut. - Same as SunOS does.
- With multicolumn output
/* Retry without direct I/O since this may not be supported
at all on some (file) systems, or with the current size.
- I.E. a specified --size that is not aligned, or when
+ I.e., a specified --size that is not aligned, or when
dealing with slop at the end of a file with --exact. */
if (! try_without_directio && errno == EINVAL)
{
size_t n_lines;
/* TODO: We should limit the amount of data read here,
- to less than RESERVOIR_MIN_INPUT. I.E. adjust fread_file() to support
+ to less than RESERVOIR_MIN_INPUT. I.e., adjust fread_file() to support
taking a byte limit. We'd then need to ensure we handle a line spanning
this boundary. With that in place we could set use_reservoir_sampling
when used==RESERVOIR_MIN_INPUT, and have read_input_reservoir_sampling()
In specialised cases the consumer can keep reading
from the fifo, terminating on conditions in the data
itself, or perhaps never in the case of 'tail -f'.
- I.E. for fifos it is valid to attempt this reopen.
+ I.e., for fifos it is valid to attempt this reopen.
We don't handle the filter_command case here, as create()
will exit if there are not enough files in that case.
- I.E. we don't support restarting filters, as that would
+ I.e., we don't support restarting filters, as that would
put too much burden on users specifying --filter commands. */
fd = open (files[i_check].of_name,
O_WRONLY | O_BINARY | O_APPEND | O_NONBLOCK);
# If the EXIT-keyed one is omitted, then expect the exit status to be zero.
# FIXME: Make sure that no junkfile is also listed as a
-# non-junkfile (i.e. with undef for contents)
+# non-junkfile (i.e., with undef for contents)
sub _shell_quote ($)
{
}
# For each test in @$TESTS, generate two additional tests,
-# one using stdin, the other using a pipe. I.e., given this one
+# one using stdin, the other using a pipe. I.e., given this one
# ['idem-0', {IN=>''}, {OUT=>''}],
# generate these:
# ['idem-0.r', '<', {IN=>''}, {OUT=>''}],
# Ensure we output the same values for device nodes and '.'
# This was not the case in coreutil-8.22 on systems
# where the device in the mount list was a symlink itself.
-# I.E. '.' => /dev/mapper/fedora-home -> /dev/dm-2
+# I.e., '.' => /dev/mapper/fedora-home -> /dev/dm-2
df --out=source,target '.' > out || fail=1
compare exp out || fail=1
# Verify that rootfs is in mtab (and shown when the -a option is specified).
# Note this is the case when /proc/self/mountinfo is parsed
-# rather than /proc/mounts. I.E. when libmount is being used.
+# rather than /proc/mounts. I.e., when libmount is being used.
df -a >out || fail=1
grep '^rootfs' out || skip_ 'no rootfs in mtab'
# This is used to simplify checking of the return value
# which is useful when ensuring a command fails as desired.
-# I.E. just doing `command ... &&fail=1` will not catch
+# I.e., just doing `command ... &&fail=1` will not catch
# a segfault in command for example. With this helper you
# instead check an explicit exit code like
# returns_ 1 command ... || fail
#!/bin/sh
# Ensure "ls --color" properly colors "normal" text and files.
-# I.E. that it uses NORMAL to style non file name output and
+# I.e., that it uses NORMAL to style non file name output and
# file names with no associated color (unless FILE is also set).
# Copyright (C) 2010-2015 Free Software Foundation, Inc.
);
# Append a newline to end of each expected 'OUT' string.
-# Skip -z tests, i.e. those whose 'OUT' string has a trailing '\0'.
+# Skip -z tests, i.e., those whose 'OUT' string has a trailing '\0'.
my $t;
foreach $t (@Tests)
{
# The patch associated with sl-dangle[678] introduced a regression
# that was fixed after coreutils-8.19. This edge case triggers when
# listing a dir containing dangling symlinks, but with orphans uncolored.
- # I.E. the same as the previous test, but listing the directory
+ # I.e., the same as the previous test, but listing the directory
# rather than the symlink directly.
['sl-dangle9', '--color=always d',
{OUT => "$e\e[1;36ms$e\n"},
# Ensure we can --check BSD alternate format.
# Note we start this list with a name
# that's unambiguous in BSD format.
-# I.E. one not starting with ' ' or '*'
+# I.e., one not starting with ' ' or '*'
for i in 'a' ' b' '*c' 'dd' ' '; do
echo "$i" > "$i"
md5sum "$i" >> check.md5sum
# make sure direct I/O is handled appropriately at end of file
# Create a 1MiB file as we'll probably not be using blocks larger than that
-# (i.e. we want to test failed writes not at the start).
+# (i.e., we want to test failed writes not at the start).
truncate -s1MiB file.slop || framework_failure_
truncate -s+1 file.slop || framework_failure_
shred --exact -n2 file.slop || fail=1
["18e", '-nb -k1.1,1.2', {IN=>" 901\n100\n"}, {OUT=>"100\n 901\n"}],
# When ignoring leading blanks for end position, ensure blanks from
-# next field are not included in the sort. I.E. order should not change here.
+# next field are not included in the sort. I.e., order should not change here.
["18f", '-k1,1b', {IN=>"a y\na z\n"}, {OUT=>"a y\na z\n"}],
# When ignoring leading blanks for start position, ensure blanks from
-# next field are not included in the sort. I.E. order should not change here.
+# next field are not included in the sort. I.e., order should not change here.
# This was noticed as an issue on fedora 8 (only in multibyte locales).
["18g", '-k1b,1', {IN=>"a y\na z\n"}, {OUT=>"a y\na z\n"},
{ENV => "LC_ALL=$mb_locale"}],
retry_delay_ stdbuf_unbuffer .1 6 || fail=1
# Ensure un buffering stdin takes effect
-# The following works for me, but is racy. I.E. we're depending
+# The following works for me, but is racy. I.e., we're depending
# on dd to run and close the fifo before the second write by uniq.
# If we add a sleep, then we're just testing -oL
# printf '3\n' > exp
fp_tmp="$FULL_PARTITION_TMPDIR/tac-cont-$$"
cleanup_() { rm -f "$fp_tmp"; }
-# Make sure we can create an empty file there (i.e. no shortage of inodes).
+# Make sure we can create an empty file there (i.e., no shortage of inodes).
if ! touch $fp_tmp; then
echo "$0: $fp_tmp: cannot create empty file" 1>&2
Exit 1
grep "^rm: it is dangerous to operate recursively on '/'" err && fail=1
# Instead, rm(1) should have called the intercepted unlinkat() function,
-# i.e. the evidence file "x" should exist.
+# i.e., the evidence file "x" should exist.
test -f x || fail=1
test $fail = 1 && { cat out; cat err; }
rm -f target out || framework_failure_
# Ensure we correctly handle the source symlink itself changing.
-# I.E. that we don't operate solely on the targets.
+# I.e., that we don't operate solely on the targets.
# Clear 'out' so that we can check its contents without races.
>out || framework_failure_
echo "X1" > target1 || framework_failure_
rm -f target1 target2 out || framework_failure_
# Note other symlink edge cases are currently just diagnosed
-# rather than being handled. I.E. if you specify a missing item,
+# rather than being handled. I.e., if you specify a missing item,
# or existing file that later change to a symlink, if inotify
# is in use, you'll get a diagnostic saying that link will
# no longer be tailed.