move several applets to more correct ex-project. No code changes.

This commit is contained in:
Denis Vlasenko
2007-06-12 08:12:33 +00:00
parent aa198dd39c
commit cc5e090f12
15 changed files with 78 additions and 78 deletions

View File

@@ -65,13 +65,6 @@ config CKSUM
help
cksum is used to calculate the CRC32 checksum of a file.
config CMP
bool "cmp"
default n
help
cmp is used to compare two files and returns the result
to standard output.
config COMM
bool "comm"
default n
@@ -142,38 +135,6 @@ config DF
df reports the amount of disk space used and available
on filesystems.
config DIFF
bool "diff"
default n
help
diff compares two files or directories and outputs the
differences between them in a form that can be given to
the patch command.
config FEATURE_DIFF_BINARY
bool "Enable checks for binary files"
default y
depends on DIFF
help
This option enables support for checking for binary files
before a comparison is carried out.
config FEATURE_DIFF_DIR
bool "Enable directory support"
default y
depends on DIFF
help
This option enables support for directory and subdirectory
comparison.
config FEATURE_DIFF_MINIMAL
bool "Enable -d option to find smaller sets of changes"
default n
depends on DIFF
help
Enabling this option allows the use of -d to make diff
try hard to find the smallest possible set of changes.
config DIRNAME
bool "dirname"
default n
@@ -474,6 +435,20 @@ config PWD
help
pwd is used to print the current directory.
config READLINK
bool "readlink"
default n
help
This program reads a symbolic link and returns the name
of the file it points to
config FEATURE_READLINK_FOLLOW
bool "Enable canonicalization by following all symlinks (-f)"
default n
depends on READLINK
help
Enable the readlink option (-f).
config REALPATH
bool "realpath"
default n
@@ -704,14 +679,6 @@ config UUENCODE
help
uuencode is used to uuencode a file.
config WATCH
bool "watch"
default n
select DATE
help
watch is used to execute a program periodically, showing
output to the screen.
config WC
bool "wc"
default n

View File

@@ -18,14 +18,12 @@ lib-$(CONFIG_CHMOD) += chmod.o
lib-$(CONFIG_CHOWN) += chown.o
lib-$(CONFIG_CHROOT) += chroot.o
lib-$(CONFIG_CKSUM) += cksum.o
lib-$(CONFIG_CMP) += cmp.o
lib-$(CONFIG_COMM) += comm.o
lib-$(CONFIG_CP) += cp.o
lib-$(CONFIG_CUT) += cut.o
lib-$(CONFIG_DATE) += date.o
lib-$(CONFIG_DD) += dd.o
lib-$(CONFIG_DF) += df.o
lib-$(CONFIG_DIFF) += diff.o
lib-$(CONFIG_DIRNAME) += dirname.o
lib-$(CONFIG_DOS2UNIX) += dos2unix.o
lib-$(CONFIG_DU) += du.o
@@ -54,6 +52,7 @@ lib-$(CONFIG_OD) += od.o
lib-$(CONFIG_PRINTENV) += printenv.o
lib-$(CONFIG_PRINTF) += printf.o
lib-$(CONFIG_PWD) += pwd.o
lib-$(CONFIG_READLINK) += readlink.o
lib-$(CONFIG_REALPATH) += realpath.o
lib-$(CONFIG_RM) += rm.o
lib-$(CONFIG_RMDIR) += rmdir.o
@@ -79,7 +78,6 @@ lib-$(CONFIG_UNIQ) += uniq.o
lib-$(CONFIG_USLEEP) += usleep.o
lib-$(CONFIG_UUDECODE) += uudecode.o
lib-$(CONFIG_UUENCODE) += uuencode.o
lib-$(CONFIG_WATCH) += watch.o
lib-$(CONFIG_WC) += wc.o
lib-$(CONFIG_WHO) += who.o
lib-$(CONFIG_WHOAMI) += whoami.o

View File

@@ -1,145 +0,0 @@
/* vi: set sw=4 ts=4: */
/*
* Mini cmp implementation for busybox
*
* Copyright (C) 2000,2001 by Matt Kraai <kraai@alumni.carnegiemellon.edu>
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
/* BB_AUDIT SUSv3 (virtually) compliant -- uses nicer GNU format for -l. */
/* http://www.opengroup.org/onlinepubs/007904975/utilities/cmp.html */
/* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org)
*
* Original version majorly reworked for SUSv3 compliance, bug fixes, and
* size optimizations. Changes include:
* 1) Now correctly distinguishes between errors and actual file differences.
* 2) Proper handling of '-' args.
* 3) Actual error checking of i/o.
* 4) Accept SUSv3 -l option. Note that we use the slightly nicer gnu format
* in the '-l' case.
*/
#include "libbb.h"
static FILE *cmp_xfopen_input(const char *filename)
{
FILE *fp;
fp = fopen_or_warn_stdin(filename);
if (fp)
return fp;
xfunc_die(); /* We already output an error message. */
}
static const char fmt_eof[] = "cmp: EOF on %s\n";
static const char fmt_differ[] = "%s %s differ: char %"OFF_FMT"d, line %d\n";
// This fmt_l_opt uses gnu-isms. SUSv3 would be "%.0s%.0s%"OFF_FMT"d %o %o\n"
static const char fmt_l_opt[] = "%.0s%.0s%"OFF_FMT"d %3o %3o\n";
static const char opt_chars[] = "sl";
#define CMP_OPT_s (1<<0)
#define CMP_OPT_l (1<<1)
int cmp_main(int argc, char **argv);
int cmp_main(int argc, char **argv)
{
FILE *fp1, *fp2, *outfile = stdout;
const char *filename1, *filename2 = "-";
USE_DESKTOP(off_t skip1 = 0, skip2 = 0;)
off_t char_pos = 0;
int line_pos = 1; /* Hopefully won't overflow... */
const char *fmt;
int c1, c2;
unsigned opt;
int retval = 0;
xfunc_error_retval = 2; /* 1 is returned if files are different. */
opt_complementary = "?:-1"
USE_DESKTOP(":?4")
SKIP_DESKTOP(":?2")
":l--s:s--l";
opt = getopt32(argc, argv, opt_chars);
argv += optind;
filename1 = *argv;
fp1 = cmp_xfopen_input(filename1);
if (*++argv) {
filename2 = *argv;
#if ENABLE_DESKTOP
if (*++argv) {
skip1 = XATOOFF(*argv);
if (*++argv) {
skip2 = XATOOFF(*argv);
}
}
#endif
}
fp2 = cmp_xfopen_input(filename2);
if (fp1 == fp2) { /* Paranoia check... stdin == stdin? */
/* Note that we don't bother reading stdin. Neither does gnu wc.
* But perhaps we should, so that other apps down the chain don't
* get the input. Consider 'echo hello | (cmp - - && cat -)'.
*/
return 0;
}
if (opt & CMP_OPT_l)
fmt = fmt_l_opt;
else
fmt = fmt_differ;
#if ENABLE_DESKTOP
while (skip1) { getc(fp1); skip1--; }
while (skip2) { getc(fp2); skip2--; }
#endif
do {
c1 = getc(fp1);
c2 = getc(fp2);
++char_pos;
if (c1 != c2) { /* Remember: a read error may have occurred. */
retval = 1; /* But assume the files are different for now. */
if (c2 == EOF) {
/* We know that fp1 isn't at EOF or in an error state. But to
* save space below, things are setup to expect an EOF in fp1
* if an EOF occurred. So, swap things around.
*/
fp1 = fp2;
filename1 = filename2;
c1 = c2;
}
if (c1 == EOF) {
die_if_ferror(fp1, filename1);
fmt = fmt_eof; /* Well, no error, so it must really be EOF. */
outfile = stderr;
/* There may have been output to stdout (option -l), so
* make sure we fflush before writing to stderr. */
xfflush_stdout();
}
if (!(opt & CMP_OPT_s)) {
if (opt & CMP_OPT_l) {
line_pos = c1; /* line_pos is unused in the -l case. */
}
fprintf(outfile, fmt, filename1, filename2, char_pos, line_pos, c2);
if (opt) { /* This must be -l since not -s. */
/* If we encountered an EOF,
* the while check will catch it. */
continue;
}
}
break;
}
if (c1 == '\n') {
++line_pos;
}
} while (c1 != EOF);
die_if_ferror(fp1, filename1);
die_if_ferror(fp2, filename2);
fflush_stdout_and_exit(retval);
}

File diff suppressed because it is too large Load Diff

50
coreutils/readlink.c Normal file
View File

@@ -0,0 +1,50 @@
/* vi: set sw=4 ts=4: */
/*
* Mini readlink implementation for busybox
*
* Copyright (C) 2000,2001 Matt Kraai <kraai@alumni.carnegiemellon.edu>
*
* Licensed under GPL v2 or later, see file LICENSE in this tarball for details.
*/
#include <getopt.h>
#include "libbb.h"
int readlink_main(int argc, char **argv);
int readlink_main(int argc, char **argv)
{
char *buf;
char *fname;
USE_FEATURE_READLINK_FOLLOW(
unsigned opt;
/* We need exactly one non-option argument. */
opt_complementary = "=1";
opt = getopt32(argc, argv, "f");
fname = argv[optind];
)
SKIP_FEATURE_READLINK_FOLLOW(
const unsigned opt = 0;
if (argc != 2) bb_show_usage();
fname = argv[1];
)
/* compat: coreutils readlink reports errors silently via exit code */
logmode = LOGMODE_NONE;
if (opt) {
buf = realpath(fname, bb_common_bufsiz1);
} else {
buf = xmalloc_readlink_or_warn(fname);
}
if (!buf)
return EXIT_FAILURE;
puts(buf);
if (ENABLE_FEATURE_CLEAN_UP && !opt)
free(buf);
fflush_stdout_and_exit(EXIT_SUCCESS);
}

View File

@@ -1,80 +0,0 @@
/* vi: set sw=4 ts=4: */
/*
* Mini watch implementation for busybox
*
* Copyright (C) 2001 by Michael Habermann <mhabermann@gmx.de>
* Copyrigjt (C) Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org)
*
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
/* BB_AUDIT SUSv3 N/A */
/* BB_AUDIT GNU defects -- only option -n is supported. */
#include "libbb.h"
// procps 2.0.18:
// watch [-d] [-n seconds]
// [--differences[=cumulative]] [--interval=seconds] command
//
// procps-3.2.3:
// watch [-dt] [-n seconds]
// [--differences[=cumulative]] [--interval=seconds] [--no-title] command
//
// (procps 3.x and procps 2.x are forks, not newer/older versions of the same)
int watch_main(int argc, char **argv);
int watch_main(int argc, char **argv)
{
unsigned opt;
unsigned period = 2;
unsigned cmdlen = 1; // 1 for terminal NUL
char *header = NULL;
char *cmd;
char *tmp;
char **p;
opt_complementary = "-1"; // at least one param please
opt = getopt32(argc, argv, "+dtn:", &tmp);
//if (opt & 0x1) // -d (ignore)
//if (opt & 0x2) // -t
if (opt & 0x4) period = xatou(tmp);
argv += optind;
p = argv;
while (*p)
cmdlen += strlen(*p++) + 1;
tmp = cmd = xmalloc(cmdlen);
while (*argv) {
tmp += sprintf(tmp, " %s", *argv);
argv++;
}
cmd++; // skip initial space
while (1) {
printf("\033[H\033[J");
if (!(opt & 0x2)) { // no -t
int width, len;
char *thyme;
time_t t;
get_terminal_width_height(STDOUT_FILENO, &width, 0);
header = xrealloc(header, width--);
// '%-*s' pads header with spaces to the full width
snprintf(header, width, "Every %ds: %-*s", period, width, cmd);
time(&t);
thyme = ctime(&t);
len = strlen(thyme);
if (len < width)
strcpy(header + width - len, thyme);
puts(header);
}
fflush(stdout);
// TODO: 'real' watch pipes cmd's output to itself
// and does not allow it to overflow the screen
// (taking into account linewrap!)
system(cmd);
sleep(period);
}
return 0; // gcc thinks we can reach this :)
}