* [gentoo-commits] gentoo commit in src/patchsets/coreutils/7.2: 001_all_coreutils-gen-progress-bar.patch 003_all_coreutils-gentoo-uname.patch 010_all_coreutils-tests.patch 030_all_coreutils-more-dir-colors.patch README.history
@ 2009-03-31 20:17 Mike Frysinger (vapier)
0 siblings, 0 replies; only message in thread
From: Mike Frysinger (vapier) @ 2009-03-31 20:17 UTC (permalink / raw
To: gentoo-commits
vapier 09/03/31 20:17:38
Added: 001_all_coreutils-gen-progress-bar.patch
003_all_coreutils-gentoo-uname.patch
010_all_coreutils-tests.patch
030_all_coreutils-more-dir-colors.patch
README.history
Log:
initial 7.2 patchset import pased on last 7.1 patchset
Revision Changes Path
1.1 src/patchsets/coreutils/7.2/001_all_coreutils-gen-progress-bar.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/001_all_coreutils-gen-progress-bar.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/001_all_coreutils-gen-progress-bar.patch?rev=1.1&content-type=text/plain
Index: 001_all_coreutils-gen-progress-bar.patch
===================================================================
Upstream has been contacted about this a few times ...
they dont want progress bars in mv/cp:
http://lists.gnu.org/archive/html/bug-coreutils/2003-08/msg00114.html
http://lists.gnu.org/archive/html/bug-coreutils/2003-09/msg00083.html
http://lists.gnu.org/archive/html/bug-coreutils/2003-09/msg00084.html
but they don't seem to mind a general util ... add this to future patchset:
http://lists.gnu.org/archive/html/bug-coreutils/2003-09/msg00101.html
http://lists.gnu.org/archive/html/bug-coreutils/2004-02/msg00071.html
--- coreutils/src/copy.c
+++ coreutils/src/copy.c
@@ -17,6 +17,8 @@
/* Extracted from cp.c and librarified by Jim Meyering. */
+/* Progress bar support added by Miika Pekkarinen. miipekk@ihme.org */
+
#include <config.h>
#include <stdio.h>
#include <assert.h>
@@ -29,6 +31,10 @@
# include <priv.h>
#endif
+#ifdef GWINSZ_IN_SYS_IOCTL
+# include <sys/ioctl.h>
+#endif
+
#include "system.h"
#include "acl.h"
#include "backupfile.h"
@@ -50,6 +56,9 @@
#include "utimens.h"
#include "xreadlink.h"
#include "yesno.h"
+#include "xstrtol.h"
+#include "human.h"
+#include "quotearg.h"
#ifndef HAVE_FCHOWN
# define HAVE_FCHOWN false
@@ -85,6 +92,8 @@ struct F_triple
/* Initial size of the above hash table. */
#define DEST_INFO_INITIAL_CAPACITY 61
+#define SAMPLE_MAX 10
+
static bool copy_internal (char const *src_name, char const *dst_name,
bool new_dst, dev_t device,
struct dir_list *ancestors,
@@ -191,6 +200,31 @@ copy_dir (char const *src_name_in, char
#endif
}
+/* Shorten a string '/long path/long file' to 'long fi...'
+ Also adds padding bytes to end of the string if necessary */
+char *shorten_name(const char *str, size_t max_width)
+{
+ char *shortname;
+ const char *filename;
+ size_t len;
+
+ filename = base_name (str);
+ len = strlen(filename);
+ shortname = (char *) xmalloc (max_width + 1);
+ strncpy (shortname, filename, max_width);
+ shortname[max_width] = '\0';
+ if (len > max_width)
+ {
+ memset(shortname + max_width - 3, '.', 3);
+ }
+ else
+ {
+ memset(shortname + len, ' ', max_width - len);
+ }
+
+ return shortname;
+}
+
/* Copy a regular file from SRC_NAME to DST_NAME.
If the source file contains holes, copies holes and blocks of zeros
in the source file as holes in the destination file.
@@ -222,6 +287,19 @@ copy_reg (char const *src_name, char con
struct stat sb;
struct stat src_open_sb;
bool return_val = true;
+ time_t t_start;
+ time_t t_last;
+ time_t t_now;
+ off_t last_bytes = 0;
+ int progress_bar_printed = 0;
+ char *shortname = NULL;
+ off_t sample_window[SAMPLE_MAX];
+ off_t sample_sum = 0;
+ int sample_count = 0;
+ long int line_length = 0;
+#ifdef TIOCGWINSZ
+ struct winsize ws;
+#endif
source_desc = open (src_name, O_RDONLY | O_BINARY);
if (source_desc < 0)
@@ -326,6 +404,9 @@ copy_reg (char const *src_name, char con
buf_alloc = xmalloc (buf_size + buf_alignment_slop);
buf = ptr_align (buf_alloc, buf_alignment);
+ time (&t_start);
+ t_last = t_start;
+
for (;;)
{
word *wp = NULL;
@@ -390,6 +471,110 @@ copy_reg (char const *src_name, char con
if (n_read != buf_size && S_ISREG (src_open_sb.st_mode))
break;
}
+
+ time (&t_now);
+
+ /* Progress bar stuff */
+ if (! x->pbar_show || t_now - t_start < x->pbar_delay)
+ {
+ continue;
+ }
+
+ if (! progress_bar_printed)
+ {
+ /* Column width check code copied from ls.c */
+ char const *p = getenv ("COLUMNS");
+ if (p && *p)
+ {
+ long int tmp_long;
+ if (xstrtol (p, NULL, 0, &tmp_long, NULL) == LONGINT_OK
+ && 0 < tmp_long && tmp_long <= INT_MAX)
+ {
+ line_length = tmp_long;
+ }
+ else
+ {
+ error (0, 0,
+ _("ignoring invalid width in environment \
+ variable COLUMNS: %s"),
+ quotearg (p));
+ }
+ }
+
+#ifdef TIOCGWINSZ
+ if (ioctl (STDOUT_FILENO, TIOCGWINSZ, &ws) != -1 && ws.ws_col != 0)
+ {
+ line_length = ws.ws_col;
+ }
+#endif
+ if (line_length < 50)
+ {
+ continue;
+ }
+
+ /* Take a short filename for progress bar */
+ shortname = shorten_name(src_name, line_length - 48);
+ progress_bar_printed = 1;
+ }
+
+ if (t_now == t_last)
+ {
+ continue;
+ }
+
+ if (sample_count == SAMPLE_MAX)
+ {
+ int i;
+
+ sample_sum -= sample_window[0];
+ for (i = 0; i < SAMPLE_MAX - 1; i++)
+ {
+ sample_window[i] = sample_window[i + 1];
+ }
+ }
+ else
+ {
+ sample_count++;
+ }
+
+ {
+ char str_size[LONGEST_HUMAN_READABLE + 1];
+ char str_speed[LONGEST_HUMAN_READABLE + 1];
+ char etabuf[64];
+ time_t t_temp;
+
+ sample_window[sample_count - 1] = (n_read_total - last_bytes) /
+ (t_now - t_last);
+ sample_sum += sample_window[sample_count - 1];
+
+ /* Calculate the remaining time */
+ t_temp = (src_open_sb.st_size - n_read_total) / (sample_sum / sample_count);
+
+ /* Don't print the progress bar if the estimated remaining
+ time is low. */
+ if (progress_bar_printed == 1 && t_temp < x->pbar_min_est)
+ {
+ continue;
+ }
+ progress_bar_printed = 2;
+
+ strftime(etabuf, sizeof etabuf, "%H:%M.%S",
+ gmtime(&t_temp));
+ printf (_("%s | %3lu%% | %9s | %9s/s | ETA %s\r"), shortname,
+ (unsigned long)(n_read_total * 100 / src_open_sb.st_size),
+ human_readable(src_open_sb.st_size, str_size, human_autoscale|human_base_1024|human_space_before_unit|human_SI|human_B, 1, 1),
+ human_readable(sample_sum / sample_count, str_speed, human_autoscale|human_base_1024|human_space_before_unit|human_SI|human_B, 1, 1),
+ etabuf);
+ fflush (stdout);
+ t_last = t_now;
+ last_bytes = n_read_total;
+ }
+ }
+
+ /* Print a newline if progress bar is enabled and has been shown */
+ if (progress_bar_printed == 2)
+ {
+ printf ("%s | 100%%\n", shortname);
}
/* If the file ends with a `hole', we need to do something to record
@@ -488,6 +676,11 @@ close_src_desc:
return_val = false;
}
+ if (shortname != NULL)
+ {
+ free (shortname);
+ }
+
free (buf_alloc);
return return_val;
}
--- coreutils/src/copy.h
+++ coreutils/src/copy.h
@@ -175,6 +175,16 @@ struct cp_options
/* If true, display the names of the files before copying them. */
bool verbose;
+ /* If true, display a progress bar when the following conditions are
+ * met:
+ - pbar_delay defines how many seconds to wait before considering to
+ display the progress bar
+ - pbar_min_est defines how many seconds estimated operation complete
+ time should be at least to show the progress bar. */
+ bool pbar_show;
+ int pbar_delay;
+ int pbar_min_est;
+
/* If true, stdin is a tty. */
bool stdin_tty;
--- coreutils/src/cp.c
+++ coreutils/src/cp.c
@@ -81,6 +81,14 @@ enum
/* Initial number of entries in the inode hash table. */
#define INITIAL_ENTRY_TAB_SIZE 70
+/* Initial settings for progress bar when it's enabled.
+ PROGRESS_DELAY defines how many seconds to wait before even
+ considering to display a proggress bar.
+ PROGRESS_MIN_EST defines how many seconds estimated operation
+ complete time should be at least to show the progress bar. */
+#define PROGRESS_DELAY 5
+#define PROGRESS_MIN_EST 5
+
/* The invocation name of this program. */
char *program_name;
@@ -120,6 +128,7 @@ static struct option const long_opts[] =
{"copy-contents", no_argument, NULL, COPY_CONTENTS_OPTION},
{"dereference", no_argument, NULL, 'L'},
{"force", no_argument, NULL, 'f'},
+ {"progress", no_argument, NULL, 'g'},
{"interactive", no_argument, NULL, 'i'},
{"link", no_argument, NULL, 'l'},
{"no-dereference", no_argument, NULL, 'P'},
@@ -176,6 +185,8 @@ Mandatory arguments to long options are
fputs (_("\
-f, --force if an existing destination file cannot be\n\
opened, remove it and try again\n\
+ -g, --progress show a progress bar if operation is going to\n\
+ take a long time\n\
-i, --interactive prompt before overwrite\n\
-H follow command-line symbolic links\n\
"), stdout);
@@ -705,6 +716,11 @@ cp_option_init (struct cp_options *x)
x->update = false;
x->verbose = false;
+
+ x->pbar_show = false;
+ x->pbar_delay = PROGRESS_DELAY;
+ x->pbar_min_est = PROGRESS_MIN_EST;
+
x->dest_info = NULL;
x->src_info = NULL;
}
@@ -811,7 +827,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
- while ((c = getopt_long (argc, argv, "abdfHilLprst:uvxPRS:T",
+ while ((c = getopt_long (argc, argv, "abdfgHilLprst:uvxPRS:T",
long_opts, NULL))
!= -1)
{
@@ -871,6 +887,10 @@ main (int argc, char **argv)
x.dereference = DEREF_NEVER;
break;
+ case 'g':
+ x.pbar_show = true;
+ break;
+
case NO_PRESERVE_ATTRIBUTES_OPTION:
decode_preserve_arg (optarg, &x, false);
break;
--- coreutils/src/mv.c
+++ coreutils/src/mv.c
@@ -45,6 +45,14 @@
/* Initial number of entries in the inode hash table. */
#define INITIAL_ENTRY_TAB_SIZE 70
+/* Initial settings for progress bar when it's enabled.
+ PROGRESS_DELAY defines how many seconds to wait before even
+ considering to display a proggress bar.
+ PROGRESS_MIN_EST defines how many seconds estimated operation
+ complete time should be at least to show the progress bar. */
+#define PROGRESS_DELAY 5
+#define PROGRESS_MIN_EST 5
+
/* For long options that have no equivalent short option, use a
non-character as a pseudo short option, starting with CHAR_MAX + 1. */
enum
@@ -75,6 +83,7 @@ static struct option const long_options[
{
{"backup", optional_argument, NULL, 'b'},
{"force", no_argument, NULL, 'f'},
+ {"progress", no_argument, NULL, 'g'},
{"interactive", no_argument, NULL, 'i'},
{"no-target-directory", no_argument, NULL, 'T'},
{"reply", required_argument, NULL, REPLY_OPTION}, /* Deprecated 2005-07-03,
@@ -104,6 +113,10 @@ rm_option_init (struct rm_options *x)
x->verbose = false;
+ x->pbar_show = false;
+ x->pbar_delay = PROGRESS_DELAY;
+ x->pbar_min_est = PROGRESS_MIN_EST;
+
/* Since this program may well have to process additional command
line arguments after any call to `rm', that function must preserve
the initial working directory, in case one of those is a
@@ -145,6 +158,10 @@
x->set_mode = false;
x->mode = 0;
x->stdin_tty = isatty (STDIN_FILENO);
+
+ x->pbar_show = false;
+ x->pbar_delay = PROGRESS_DELAY;
+ x->pbar_min_est = PROGRESS_MIN_EST;
x->verbose = false;
x->dest_info = NULL;
@@ -312,6 +325,8 @@ Mandatory arguments to long options are
--backup[=CONTROL] make a backup of each existing destination file\n\
-b like --backup but does not accept an argument\n\
-f, --force do not prompt before overwriting\n\
+ -g, --progress show a progress bar if operation is going to\n\
+ take a long time\n\
-i, --interactive prompt before overwrite\n\
"), stdout);
fputs (_("\
@@ -375,7 +393,7 @@ main (int argc, char **argv)
we'll actually use backup_suffix_string. */
backup_suffix_string = getenv ("SIMPLE_BACKUP_SUFFIX");
- while ((c = getopt_long (argc, argv, "bfit:uvS:T", long_options, NULL))
+ while ((c = getopt_long (argc, argv, "bfgit:uvS:T", long_options, NULL))
!= -1)
{
switch (c)
@@ -388,6 +406,9 @@ main (int argc, char **argv)
case 'f':
x.interactive = I_ALWAYS_YES;
break;
+ case 'g':
+ x.pbar_show = true;
+ break;
case 'i':
x.interactive = I_ASK_USER;
break;
--- coreutils/src/remove.h
+++ coreutils/src/remove.h
@@ -48,6 +48,16 @@ struct rm_options
/* If true, display the name of each file removed. */
bool verbose;
+ /* If true, display a progress bar when the following conditions are
+ * met:
+ - pbar_delay defines how many seconds to wait before considering to
+ display the progress bar
+ - pbar_min_est defines how many seconds estimated operation complete
+ time should be at least to show the progress bar. */
+ bool pbar_show;
+ int pbar_delay;
+ int pbar_min_est;
+
/* If true, treat the failure by the rm function to restore the
current working directory as a fatal error. I.e., if this field
is true and the rm function cannot restore cwd, it must exit with
1.1 src/patchsets/coreutils/7.2/003_all_coreutils-gentoo-uname.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/003_all_coreutils-gentoo-uname.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/003_all_coreutils-gentoo-uname.patch?rev=1.1&content-type=text/plain
Index: 003_all_coreutils-gentoo-uname.patch
===================================================================
On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
Prob not suitable for upstream seeing as how it's 100% linux-specific
http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but
heavily reworked to suck less.
To add support for additional platforms, check out the show_cpuinfo()
func in the linux/arch/<ARCH>/ source tree of the kernel.
--- coreutils/src/uname.c
+++ coreutils/src/uname.c
@@ -51,6 +51,11 @@
# include <mach-o/arch.h>
#endif
+#if defined(__linux__)
+# define USE_PROCINFO
+# define UNAME_HARDWARE_PLATFORM
+#endif
+
#include "system.h"
#include "error.h"
#include "quote.h"
@@ -138,6 +143,117 @@
exit (status);
}
+#if defined(USE_PROCINFO)
+
+# if defined(__s390__) || defined(__s390x__)
+# define CPUINFO_FILE "/proc/sysinfo"
+# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
+# else
+# define CPUINFO_FILE "/proc/cpuinfo"
+# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
+# endif
+
+# define PROCINFO_PROCESSOR 0
+# define PROCINFO_HARDWARE_PLATFORM 1
+
+static void __eat_cpuinfo_space(char *buf)
+{
+ /* first eat trailing space */
+ char *tmp = buf + strlen(buf) - 1;
+ while (tmp > buf && isspace(*tmp))
+ *tmp-- = '\0';
+ /* then eat leading space */
+ tmp = buf;
+ while (*tmp && isspace(*tmp))
+ tmp++;
+ if (tmp != buf)
+ memmove(buf, tmp, strlen(tmp)+1);
+ /* finally collapse whitespace */
+ tmp = buf;
+ while (tmp[0] && tmp[1]) {
+ if (isspace(tmp[0]) && isspace(tmp[1])) {
+ memmove(tmp, tmp+1, strlen(tmp));
+ continue;
+ }
+ ++tmp;
+ }
+}
+
+static int __linux_procinfo(int x, char *fstr, size_t s)
+{
+ FILE *fp;
+
+ char *procinfo_keys[] = {
+ /* --processor --hardware-platform */
+ #if defined(__alpha__)
+ "cpu model", "system type"
+ #elif defined(__arm__)
+ "Processor", "Hardware"
+ #elif defined(__avr32__)
+ "processor", "cpu family"
+ #elif defined(__bfin__)
+ "CPU", "BOARD Name"
+ #elif defined(__cris__)
+ "cpu", "cpu model"
+ #elif defined(__frv__)
+ "CPU-Core", "System"
+ #elif defined(__i386__) || defined(__x86_64__)
+ "model name", "vendor_id"
+ #elif defined(__ia64__)
+ "family", "vendor"
+ #elif defined(__hppa__)
+ "cpu", "model"
+ #elif defined(__m68k__)
+ "CPU", "MMU"
+ #elif defined(__mips__)
+ "cpu model", "system type"
+ #elif defined(__powerpc__) || defined(__powerpc64__)
+ "cpu", "machine"
+ #elif defined(__s390__) || defined(__s390x__)
+ "Type", "Manufacturer"
+ #elif defined(__sh__)
+ "cpu type", "machine"
+ #elif defined(sparc) || defined(__sparc__)
+ "type", "cpu"
+ #elif defined(__vax__)
+ "cpu type", "cpu"
+ #else
+ "unknown", "unknown"
+ #endif
+ };
+
+ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
+ char key[65], value[257], eol, *ret = NULL;
+
+ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
+ __eat_cpuinfo_space(key);
+ if (!strcmp(key, procinfo_keys[x])) {
+ __eat_cpuinfo_space(value);
+ ret = value;
+ break;
+ }
+ if (eol != '\n') {
+ /* we need two fscanf's here in case the previous
+ * length limit caused us to read right up to the
+ * newline ... doing "%*[^\n]\n" wont eat the newline
+ */
+ fscanf(fp, "%*[^\n]");
+ fscanf(fp, "\n");
+ }
+ }
+ fclose(fp);
+
+ if (ret) {
+ strncpy(fstr, ret, s);
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
+#endif
+
/* Print ELEMENT, preceded by a space if something has already been
printed. */
@@ -250,10 +344,14 @@ main (int argc, char **argv)
if (toprint & PRINT_PROCESSOR)
{
char const *element = unknown;
-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
+#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
{
static char processor[257];
+#if defined(USE_PROCINFO)
+ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
+#else
if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
+#endif
element = processor;
}
#endif
@@ -306,9 +404,13 @@ main (int argc, char **argv)
if (element == unknown)
{
static char hardware_platform[257];
+#if defined(USE_PROCINFO)
+ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
+#else
size_t s = sizeof hardware_platform;
static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
+#endif
element = hardware_platform;
}
#endif
1.1 src/patchsets/coreutils/7.2/010_all_coreutils-tests.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/010_all_coreutils-tests.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/010_all_coreutils-tests.patch?rev=1.1&content-type=text/plain
Index: 010_all_coreutils-tests.patch
===================================================================
this test only gets run as non-root, so giving it temp write access to the
root dir is safe since normal unix access will deny it #259876
--- a/tests/touch/not-owner
+++ b/tests/touch/not-owner
@@ -39,7 +39,10 @@
# Before fileutils-4.1, we'd get the following misleading
# diagnostic instead of `...: Permission denied'.
# touch: creating `/': Is a directory
+save_sbw=${SANDBOX_WRITE}
+export SANDBOX_WRITE=${SANDBOX_WRITE}:/
touch / > out 2>&1 && fail=1
+SANDBOX_WRITE=${save_sbw}
# On SunOS4, EPERM is `Not owner'.
# On some *BSD systems it's `Operation not permitted'.
the dd test looks up a device and tries to test seeking on it. it shouldnt
cause any corruption because it uses a count of 0 and seeks past the end of
the device
--- a/tests/dd/skip-seek-past-dev
+++ b/tests/dd/skip-seek-past-dev
@@ -53,8 +53,11 @@
0+0 records out" > err_ok || framework_failure
compare err_ok err || fail=1
+save_sbw=${SANDBOX_WRITE}
+export SANDBOX_WRITE=${SANDBOX_WRITE}:$device
timeout 1 dd bs=1 seek=$DEV_OFLOW count=0 status=noxfer > "$device" 2> err
test "$?" = "1" || fail=1
+SANDBOX_WRITE=${save_sbw}
echo "dd: \`standard output': cannot seek: Invalid argument
0+0 records in
0+0 records out" > err_ok || framework_failure
we dont build/install the `groups` binary, so skip the test
--- a/tests/misc/groups-dash
+++ b/tests/misc/groups-dash
@@ -23,6 +23,8 @@
. $srcdir/test-lib.sh
+test -x "$abs_top_builddir/src/groups" || skip_test_
+
# Coreutils 6.9 and earlier failed to display information on first argument
# if later argument was --.
fail=0
1.1 src/patchsets/coreutils/7.2/030_all_coreutils-more-dir-colors.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/030_all_coreutils-more-dir-colors.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/030_all_coreutils-more-dir-colors.patch?rev=1.1&content-type=text/plain
Index: 030_all_coreutils-more-dir-colors.patch
===================================================================
--- coreutils-6.7/src/dircolors.hin
+++ coreutils-6.7/src/dircolors.hin
@@ -5,6 +5,9 @@
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
+
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
@@ -66,7 +66,8 @@
DOOR 01;35 # door
BLK 40;33;01 # block device driver
CHR 40;33;01 # character device driver
-ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
+ORPHAN 01;05;37;41 # orphaned syminks
+MISSING 01;05;37;41 # ... and the files they point to
SETUID 37;41 # file that is setuid (u+s)
SETGID 30;43 # file that is setgid (g+s)
STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
@@ -125,6 +154,16 @@
.xwd 01;35
.yuv 01;35
+# Document files
+.pdf 00;32
+.ps 00;32
+.txt 00;32
+.patch 00;32
+.diff 00;32
+.log 00;32
+.tex 00;32
+.doc 00;32
+
# audio formats
.aac 00;36
.au 00;36
1.1 src/patchsets/coreutils/7.2/README.history
file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/README.history?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils/7.2/README.history?rev=1.1&content-type=text/plain
Index: README.history
===================================================================
1 31.03.2009
+ 001_all_coreutils-gen-progress-bar.patch
+ 003_all_coreutils-gentoo-uname.patch
+ 010_all_coreutils-tests.patch
+ 030_all_coreutils-more-dir-colors.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2009-03-31 20:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-31 20:17 [gentoo-commits] gentoo commit in src/patchsets/coreutils/7.2: 001_all_coreutils-gen-progress-bar.patch 003_all_coreutils-gentoo-uname.patch 010_all_coreutils-tests.patch 030_all_coreutils-more-dir-colors.patch README.history Mike Frysinger (vapier)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox