platform/upstream/coreutils.git
19 years ago*** empty log message ***
Jim Meyering [Wed, 24 Nov 2004 21:30:22 +0000 (21:30 +0000)]
*** empty log message ***

19 years agoSince the changes of 2004-05-22, the u.saved_cwd member at
Jim Meyering [Wed, 24 Nov 2004 21:30:18 +0000 (21:30 +0000)]
Since the changes of 2004-05-22, the u.saved_cwd member at
the bottom of the active-directory stack was no longer
strictly necessary.  This change removes that member and uses
the newer cwd_state parameter for the final restore_cwd.

(struct AD_ent) [u]: Remove now-unnecessary union.
[dev_ino]: Rename from `a'.
(AD_pop_and_chdir): Add a parameter to play the role of just-removed
bottom-of-stack cwd-state member.
(AD_pop_and_chdir): No longer return boolean.  Adjust caller.
(AD_push_initial): Remove CWD parameter.  Adjust caller.

19 years agoremove trailing blanks
Jim Meyering [Tue, 23 Nov 2004 21:39:21 +0000 (21:39 +0000)]
remove trailing blanks

19 years agoSync from gnulib.
Paul Eggert [Tue, 23 Nov 2004 21:03:45 +0000 (21:03 +0000)]
Sync from gnulib.

19 years agoMinor performance improvements and cleanups for "touch".
Paul Eggert [Tue, 23 Nov 2004 20:44:13 +0000 (20:44 +0000)]
Minor performance improvements and cleanups for "touch".

19 years ago(posix_date): Remove; not needed as a static var.
Paul Eggert [Tue, 23 Nov 2004 20:43:47 +0000 (20:43 +0000)]
(posix_date): Remove; not needed as a static var.
All uses rewritten.
(touch): Use new futimens function to operate more efficiently
in some cases.  Don't stat/fstat existing file when
(!amtime_now && change_times == (CH_ATIME | CH_MTIME)); the
old time stamps aren't needed in that case.
(main): change_times is int, not bool.  Simplify test for
change_times.

19 years ago(gl_UTIMENS): Check for futimes function.
Paul Eggert [Tue, 23 Nov 2004 20:43:17 +0000 (20:43 +0000)]
(gl_UTIMENS): Check for futimes function.

19 years agoutimens upgrade to support futimes.
Paul Eggert [Tue, 23 Nov 2004 20:42:54 +0000 (20:42 +0000)]
utimens upgrade to support futimes.

19 years ago* utimens.m4 (gl_UTIMENS): Check for futimes function.
Paul Eggert [Tue, 23 Nov 2004 20:42:31 +0000 (20:42 +0000)]
* utimens.m4 (gl_UTIMENS): Check for futimes function.

19 years ago(__attribute__, ATTRIBUTE_UNUSED): New macros.
Paul Eggert [Tue, 23 Nov 2004 20:42:13 +0000 (20:42 +0000)]
(__attribute__, ATTRIBUTE_UNUSED): New macros.
(futimens): New function, which uses futimes if available.
(futimens, utimens): Support timespec==NULL, with same semantics
as utime and utimens.

19 years ago(futimens): New decl.
Paul Eggert [Tue, 23 Nov 2004 20:41:51 +0000 (20:41 +0000)]
(futimens): New decl.

19 years agoadd a comment
Jim Meyering [Tue, 23 Nov 2004 11:02:03 +0000 (11:02 +0000)]
add a comment

19 years agotweak comment
Jim Meyering [Tue, 23 Nov 2004 09:44:17 +0000 (09:44 +0000)]
tweak comment

19 years ago*** empty log message ***
Jim Meyering [Tue, 23 Nov 2004 09:15:08 +0000 (09:15 +0000)]
*** empty log message ***

19 years agoRevert last change, since it seems EBADF is always defined.
Jim Meyering [Tue, 23 Nov 2004 09:15:05 +0000 (09:15 +0000)]
Revert last change, since it seems EBADF is always defined.

19 years ago*** empty log message ***
Jim Meyering [Mon, 22 Nov 2004 14:24:11 +0000 (14:24 +0000)]
*** empty log message ***

19 years ago(EBADF): Fail with `#error ...' if it's not defined,
Jim Meyering [Mon, 22 Nov 2004 14:24:04 +0000 (14:24 +0000)]
(EBADF): Fail with `#error ...' if it's not defined,
asking the user to report the problem.

19 years ago*** empty log message ***
Jim Meyering [Sun, 21 Nov 2004 21:02:49 +0000 (21:02 +0000)]
*** empty log message ***

19 years ago* src/install.c (usage): Avoid usage that runs afoul of Docbook.
Paul Eggert [Sun, 21 Nov 2004 07:29:50 +0000 (07:29 +0000)]
* src/install.c (usage): Avoid usage that runs afoul of Docbook.

19 years ago(usage): Avoid usage that runs afoul of Docbook
Paul Eggert [Sun, 21 Nov 2004 07:29:31 +0000 (07:29 +0000)]
(usage): Avoid usage that runs afoul of Docbook
translation.  Problem reported by Eric S. Raymond.

19 years agoRestore dd's noctty flag, reverting the change of 2004-04-08.
Paul Eggert [Sat, 20 Nov 2004 08:57:21 +0000 (08:57 +0000)]
Restore dd's noctty flag, reverting the change of 2004-04-08.

19 years ago(flags, usage, main): Add noctty flag to dd.
Paul Eggert [Sat, 20 Nov 2004 08:56:44 +0000 (08:56 +0000)]
(flags, usage, main): Add noctty flag to dd.

19 years ago(dd invocation): Add noctty flag to dd.
Paul Eggert [Sat, 20 Nov 2004 08:56:05 +0000 (08:56 +0000)]
(dd invocation): Add noctty flag to dd.

19 years agoAdd noctty flag to dd.
Paul Eggert [Sat, 20 Nov 2004 08:55:22 +0000 (08:55 +0000)]
Add noctty flag to dd.

19 years ago(usage): Clarified description of --no-group (-G),
Jim Meyering [Fri, 19 Nov 2004 21:41:00 +0000 (21:41 +0000)]
(usage): Clarified description of --no-group (-G),
--human-readable (-h), --inode (-i), --size (-s), --time,
and --time-style.

19 years ago*** empty log message ***
Jim Meyering [Fri, 19 Nov 2004 21:40:51 +0000 (21:40 +0000)]
*** empty log message ***

19 years ago(find_dir_entry): Update comment to match reality.
Jim Meyering [Fri, 19 Nov 2004 21:36:00 +0000 (21:36 +0000)]
(find_dir_entry): Update comment to match reality.

19 years ago*** empty log message ***
Jim Meyering [Fri, 19 Nov 2004 19:30:12 +0000 (19:30 +0000)]
*** empty log message ***

19 years ago(usage): Clarify description of --author.
Jim Meyering [Fri, 19 Nov 2004 19:29:55 +0000 (19:29 +0000)]
(usage): Clarify description of --author.
Tweak indentation so that help2man creates better nroff.

19 years ago*** empty log message ***
Jim Meyering [Fri, 19 Nov 2004 18:57:05 +0000 (18:57 +0000)]
*** empty log message ***

19 years ago(check_file): Don't check stdout for errors here.
Jim Meyering [Fri, 19 Nov 2004 18:56:16 +0000 (18:56 +0000)]
(check_file): Don't check stdout for errors here.

19 years ago*** empty log message ***
Jim Meyering [Thu, 18 Nov 2004 14:47:01 +0000 (14:47 +0000)]
*** empty log message ***

19 years ago(robust_getcwd): Correct the comment: this function constructs the
Jim Meyering [Thu, 18 Nov 2004 14:46:47 +0000 (14:46 +0000)]
(robust_getcwd): Correct the comment: this function constructs the
directory name.  The caller prints it.

19 years agoSync from gnulib.
Paul Eggert [Wed, 17 Nov 2004 23:14:24 +0000 (23:14 +0000)]
Sync from gnulib.

19 years agoSync from gnulib.
Paul Eggert [Wed, 17 Nov 2004 23:09:12 +0000 (23:09 +0000)]
Sync from gnulib.

19 years agoRegenerate.
Paul Eggert [Wed, 17 Nov 2004 03:50:34 +0000 (03:50 +0000)]
Regenerate.

19 years ago* canon-host.m4 (gl_CANON_HOST): Check for getaddrinfo.
Paul Eggert [Wed, 17 Nov 2004 03:46:55 +0000 (03:46 +0000)]
* canon-host.m4 (gl_CANON_HOST): Check for getaddrinfo.

19 years ago* xgetcwd.c: Work around Solaris 9 bug.
Paul Eggert [Wed, 17 Nov 2004 03:42:45 +0000 (03:42 +0000)]
* xgetcwd.c: Work around Solaris 9 bug.

19 years agoInclude <limits.h>, for PATH_MAX.
Paul Eggert [Wed, 17 Nov 2004 03:41:16 +0000 (03:41 +0000)]
Include <limits.h>, for PATH_MAX.
(xgetcwd): Set errno correctly when failing.
Work around Solaris 9 bug: getcwd sets errno==ERANGE even though
the failure is actually due to a PATH_MAX problem.

19 years agostat portability fix for Solaris 9.
Paul Eggert [Wed, 17 Nov 2004 03:12:56 +0000 (03:12 +0000)]
stat portability fix for Solaris 9.

19 years ago(STATFS): New macro, for portability to Solaris 9.
Paul Eggert [Wed, 17 Nov 2004 03:12:06 +0000 (03:12 +0000)]
(STATFS): New macro, for portability to Solaris 9.
(do_statfs): Use it.

19 years agoMerge from gnulib.
Paul Eggert [Wed, 17 Nov 2004 01:59:29 +0000 (01:59 +0000)]
Merge from gnulib.

19 years agoRecent checkins for getopt, canon-host.
Paul Eggert [Wed, 17 Nov 2004 01:07:07 +0000 (01:07 +0000)]
Recent checkins for getopt, canon-host.

19 years ago(_getopt_internal, _getopt_internal_r,
Paul Eggert [Wed, 17 Nov 2004 01:06:02 +0000 (01:06 +0000)]
(_getopt_internal, _getopt_internal_r,
_getopt_long_r, _getopt_long_only_r): argv is char **,
not char *__getopt_argv_const *.

19 years ago(getopt_long, _getopt_long_r, getopt_long_only,
Paul Eggert [Wed, 17 Nov 2004 01:04:52 +0000 (01:04 +0000)]
(getopt_long, _getopt_long_r, getopt_long_only,
_getopt_long_only_r): Argv is now char**, not char *__getopt_argv_const*.

19 years ago(getopt_long, _getopt_long_r, getopt_long_only,
Paul Eggert [Wed, 17 Nov 2004 01:03:54 +0000 (01:03 +0000)]
(getopt_long, _getopt_long_r, getopt_long_only,
_getopt_long_only_r): Argv is now char **, not char *__getopt_argv_const*.

19 years ago(_getopt_initialize, _getopt_internal_r, _getopt_internal):
Paul Eggert [Wed, 17 Nov 2004 01:02:47 +0000 (01:02 +0000)]
(_getopt_initialize, _getopt_internal_r, _getopt_internal):
New arg POSIXLY_CORRECT.  All callers changed.
(getopt): Argv is now char * const *, as per standard.
(_getopt_internal_r, _getopt_internal): Argv is now char **,
not char *__getopt_argv_const *.

19 years agoGetopt update and recent Debian fixes.
Paul Eggert [Wed, 17 Nov 2004 00:58:19 +0000 (00:58 +0000)]
Getopt update and recent Debian fixes.

19 years ago(main): argv is not const.
Paul Eggert [Wed, 17 Nov 2004 00:57:11 +0000 (00:57 +0000)]
(main): argv is not const.

19 years ago(main): Use getopt_long rather than getopt.
Paul Eggert [Wed, 17 Nov 2004 00:56:25 +0000 (00:56 +0000)]
(main): Use getopt_long rather than getopt.

19 years agoAdd putty, screen-bce.
Paul Eggert [Tue, 16 Nov 2004 20:49:17 +0000 (20:49 +0000)]
Add putty, screen-bce.

19 years ago(usage): Improve documentation along the lines suggested
Paul Eggert [Tue, 16 Nov 2004 20:47:28 +0000 (20:47 +0000)]
(usage): Improve documentation along the lines suggested
by Debian 5.2.1-2.

19 years agoFix memory leak.
Paul Eggert [Tue, 16 Nov 2004 20:44:34 +0000 (20:44 +0000)]
Fix memory leak.

19 years ago(gl_CANON_HOST): Check for getaddrinfo.
Paul Eggert [Tue, 16 Nov 2004 20:39:19 +0000 (20:39 +0000)]
(gl_CANON_HOST): Check for getaddrinfo.

19 years agoInclude "strdup.h".
Paul Eggert [Tue, 16 Nov 2004 20:38:33 +0000 (20:38 +0000)]
Include "strdup.h".
(canon_host): Use getaddrinfo if available, so that IPv6 works.
Use strdup instead of malloc/strcpy to duplicate strings.

19 years agodoc patches inspired by Debian coreutils 5.2.1-2.
Paul Eggert [Tue, 16 Nov 2004 20:31:21 +0000 (20:31 +0000)]
doc patches inspired by Debian coreutils 5.2.1-2.

19 years ago(General output formatting): -x doesn't have
Paul Eggert [Tue, 16 Nov 2004 20:29:58 +0000 (20:29 +0000)]
(General output formatting): -x doesn't have
an operand.
(Formatting the file names): Warn that even with -N unprintable
chars are still printed as '?' some times.
(rm invocation): Reword rm -d to note that it's sometimes useful
on non-directories.
(logname invocation, users invocation, who invocation):
The utmp and wtmp file names vary from system to system.

19 years ago* getdate.y (tORDINAL): New token.
Paul Eggert [Tue, 16 Nov 2004 08:18:49 +0000 (08:18 +0000)]
* getdate.y (tORDINAL): New token.

19 years ago* getdate.texi (General date syntax): "next" is 1, not 2.
Paul Eggert [Tue, 16 Nov 2004 08:18:05 +0000 (08:18 +0000)]
* getdate.texi (General date syntax): "next" is 1, not 2.

19 years ago(General date syntax): "next" is 1, not 2.
Paul Eggert [Tue, 16 Nov 2004 08:16:57 +0000 (08:16 +0000)]
(General date syntax): "next" is 1, not 2.
Document that "second" isn't allowed as an ordinal number.

19 years ago(tORDINAL): New token.
Paul Eggert [Tue, 16 Nov 2004 08:16:10 +0000 (08:16 +0000)]
(tORDINAL): New token.
(day, relunit): Allow it for relative times.
(relative_time_table): Use tORDINAL for ordinals.

19 years agoSupport for human_space_before_unit.
Paul Eggert [Tue, 16 Nov 2004 07:54:07 +0000 (07:54 +0000)]
Support for human_space_before_unit.

19 years ago(human_readable): Support human_space_before_unit.
Paul Eggert [Tue, 16 Nov 2004 07:53:08 +0000 (07:53 +0000)]
(human_readable): Support human_space_before_unit.

19 years ago(LONGEST_HUMAN_READABLE): Add 1 for space before unit.
Paul Eggert [Tue, 16 Nov 2004 07:51:59 +0000 (07:51 +0000)]
(LONGEST_HUMAN_READABLE): Add 1 for space before unit.
(human_space_before_unit): New constant.

19 years agoNew dd operand "status=noxfer". Change diagnostic wording slightly.
Paul Eggert [Tue, 16 Nov 2004 07:50:07 +0000 (07:50 +0000)]
New dd operand "status=noxfer".  Change diagnostic wording slightly.

19 years ago* coreutils.texi (dd invocation): Reword the new dd message.
Paul Eggert [Tue, 16 Nov 2004 07:49:15 +0000 (07:49 +0000)]
* coreutils.texi (dd invocation): Reword the new dd message.

19 years ago(dd invocation): Reword the new dd message.
Paul Eggert [Tue, 16 Nov 2004 07:48:36 +0000 (07:48 +0000)]
(dd invocation): Reword the new dd message.

19 years ago(@Tests): Use status=noxfer to avoid
Paul Eggert [Tue, 16 Nov 2004 07:46:58 +0000 (07:46 +0000)]
(@Tests): Use status=noxfer to avoid
problems with regression testing.

19 years ago(C_ASCII, C_EBCDIC, C_IBM, C_BLOCK, C_UNBLOCK,
Paul Eggert [Tue, 16 Nov 2004 07:46:08 +0000 (07:46 +0000)]
(C_ASCII, C_EBCDIC, C_IBM, C_BLOCK, C_UNBLOCK,
C_LCASE, C_UCASE, C_SWAB, C_NOERROR, C_NOTRUNC, C_SYNC, C_TWOBUFS,
C_NOCREAT, C_EXCL, C_FDATASYNC, C_FSYNC): Now constants, not
macros.
(STATUS_NOXFER, statuses): New constants.
(usage, print_stats, scanargs): Add support for status=noxfer.
(usage): Update status output to match new behavior.
(print_stats): Always output complete byte count.
Put space between numbers and units, as SI requires.
Use ngettext so that i18n can use plurals for "byte" and "second".
Don't multiply by 1e-9 (inexact); divide by 1e9 (which is exact).
(iflag_error_msgid, oflag_error_msgid): Remove; replace uses by
the string.

19 years agoNew dd operand "status=noxfer".
Paul Eggert [Tue, 16 Nov 2004 07:45:15 +0000 (07:45 +0000)]
New dd operand "status=noxfer".

19 years agodd now outputs total bytes, seconds, and bytes per second.
Paul Eggert [Mon, 15 Nov 2004 06:50:44 +0000 (06:50 +0000)]
dd now outputs total bytes, seconds, and bytes per second.

19 years ago(dd invocation): dd now outputs total bytes,
Paul Eggert [Mon, 15 Nov 2004 06:50:23 +0000 (06:50 +0000)]
(dd invocation): dd now outputs total bytes,
seconds, and bytes per second.

19 years agoInclude "human.h".
Paul Eggert [Mon, 15 Nov 2004 06:49:59 +0000 (06:49 +0000)]
Include "human.h".
(w_bytes, start_time): New vars.
(usage): Document new I/O statistics output
(print_stats): Output new I/O statistics.
(cleanup): Do statistics after closing stdin and stdout, so that
the times are more accurate.
(write_output, dd_copy): Count output bytes.
(main): Get initial value of clock.

19 years ago(dd_LDADD): Add $(LIB_CLOCK_GETTIME).
Paul Eggert [Mon, 15 Nov 2004 06:49:36 +0000 (06:49 +0000)]
(dd_LDADD): Add $(LIB_CLOCK_GETTIME).

19 years agodd now outputs total bytes, seconds, and bytes per second.
Paul Eggert [Mon, 15 Nov 2004 06:49:08 +0000 (06:49 +0000)]
dd now outputs total bytes, seconds, and bytes per second.

19 years ago*** empty log message ***
Jim Meyering [Sun, 14 Nov 2004 13:55:17 +0000 (13:55 +0000)]
*** empty log message ***

19 years ago*** empty log message ***
Jim Meyering [Sun, 14 Nov 2004 11:08:22 +0000 (11:08 +0000)]
*** empty log message ***

19 years ago*** empty log message ***
Jim Meyering [Sun, 14 Nov 2004 09:58:19 +0000 (09:58 +0000)]
*** empty log message ***

19 years agoBackslash-escape `-'s in email addresses, so that they are
Jim Meyering [Sun, 14 Nov 2004 09:48:05 +0000 (09:48 +0000)]
Backslash-escape `-'s in email addresses, so that they are
rendered properly in UTF-locales.

(escape_hyphens): New function.
(main): Call it on email addresses.

19 years ago(usage): Put the description of `[-n] STRING'
Jim Meyering [Sun, 14 Nov 2004 08:56:53 +0000 (08:56 +0000)]
(usage): Put the description of `[-n] STRING'
on two lines, one for `-n STRING' and one for `STRING' so that
help2man properly escapes the `-'.  Otherwise, the hyphen is
rendered inappropriately in UTF-8 locales.

19 years agorestore file, now that closeout needs the function again
Jim Meyering [Sun, 14 Nov 2004 08:49:46 +0000 (08:49 +0000)]
restore file, now that closeout needs the function again

19 years ago*** empty log message ***
Jim Meyering [Sun, 14 Nov 2004 08:36:43 +0000 (08:36 +0000)]
*** empty log message ***

19 years ago(zaptemp): Mark new diagnostic for translation.
Jim Meyering [Sun, 14 Nov 2004 08:36:30 +0000 (08:36 +0000)]
(zaptemp): Mark new diagnostic for translation.

19 years ago*** empty log message ***
Jim Meyering [Sun, 14 Nov 2004 00:40:03 +0000 (00:40 +0000)]
*** empty log message ***

19 years agoDo require gl_FUNC_FPENDING.
Jim Meyering [Sun, 14 Nov 2004 00:34:04 +0000 (00:34 +0000)]
Do require gl_FUNC_FPENDING.

19 years ago.
Jim Meyering [Sun, 14 Nov 2004 00:33:27 +0000 (00:33 +0000)]
.

19 years ago.
Jim Meyering [Sun, 14 Nov 2004 00:32:50 +0000 (00:32 +0000)]
.

19 years ago.
Jim Meyering [Sun, 14 Nov 2004 00:29:36 +0000 (00:29 +0000)]
.

19 years ago.
Jim Meyering [Sun, 14 Nov 2004 00:20:33 +0000 (00:20 +0000)]
.

19 years ago(close_stdout): Don't fail just because stdout was
Jim Meyering [Sun, 14 Nov 2004 00:20:01 +0000 (00:20 +0000)]
(close_stdout): Don't fail just because stdout was
closed initially, since some programs don't write to stdout in the
normal course of operation (other than --version and --help), and
we don't want this function to make e.g. `cp 1 2 >&-' fail.
But do fail if it was closed and someone has tried to write to it.
E.g., printf 'foo' >&-

19 years ago(libfetish_a_SOURCES): Add __fpending.h.
Jim Meyering [Sun, 14 Nov 2004 00:19:28 +0000 (00:19 +0000)]
(libfetish_a_SOURCES): Add __fpending.h.

19 years agoRestore these files. They're useful after all.
Jim Meyering [Sun, 14 Nov 2004 00:19:01 +0000 (00:19 +0000)]
Restore these files.  They're useful after all.

19 years agoNew file. Test today's closeout.c change.
Jim Meyering [Sun, 14 Nov 2004 00:17:24 +0000 (00:17 +0000)]
New file.  Test today's closeout.c change.

19 years ago(TESTS): Add close-stdout.
Jim Meyering [Sun, 14 Nov 2004 00:17:10 +0000 (00:17 +0000)]
(TESTS): Add close-stdout.

19 years ago* src/sort.c (zaptemp): Warn if a temporary file is not removed.
Paul Eggert [Sat, 13 Nov 2004 04:49:14 +0000 (04:49 +0000)]
* src/sort.c (zaptemp): Warn if a temporary file is not removed.

19 years ago(zaptemp): Warn if a temporary file is not removed.
Paul Eggert [Sat, 13 Nov 2004 04:45:58 +0000 (04:45 +0000)]
(zaptemp): Warn if a temporary file is not removed.
Prune unnecessary accesses to volatile locations, and take some
code out of the critical section that didn't need to be in it.

19 years agoMake the newly-introduced critical section a bit smaller.
Paul Eggert [Sat, 13 Nov 2004 01:02:48 +0000 (01:02 +0000)]
Make the newly-introduced critical section a bit smaller.

19 years ago* src/sort.c: Avoid O(N**2) behavior when there are many temporary files.
Paul Eggert [Sat, 13 Nov 2004 00:53:23 +0000 (00:53 +0000)]
* src/sort.c: Avoid O(N**2) behavior when there are many temporary files.
Fix a race condition.

19 years agoDocument today's changes to "sort".
Paul Eggert [Sat, 13 Nov 2004 00:52:32 +0000 (00:52 +0000)]
Document today's changes to "sort".

19 years agoAvoid O(N**2) behavior when there are many temporary files.
Paul Eggert [Sat, 13 Nov 2004 00:50:56 +0000 (00:50 +0000)]
Avoid O(N**2) behavior when there are many temporary files.
(temptail): New variable, so that we can easily append to list.
(create_temp_file): Create new files at end of list, so that
searching the list has O(N**NMERGE) behavior instead of O(N**2).
(zaptemp): Update temptail if needed.
(mergefps, merge): Accept new arg that counts temp files, and keep it
up to date as we create and remove temporaries.  This is for
efficiency, so that we don't call zaptemp so often.
All callers changed.
(sort): Don't create array in reverse order, since the list of
temporaries is now in the correct order.

(zaptemp): Protect against race condition: if 'sort' is
interrupted in the middle of zaptemp, it might unlink the
temporary file twice, and the second time this happens the file
might already have been created by some other process.

(create_temp_file): Use offsetof for clarity.
(die): Move it up earlier, to clean up the code a bit.