Well, the best way I see to keep hotmail from corrupting the patch is to
attach it as a gzipped patch file (ls.c.patch.gz).
--
John W. Saalwaechter <[EMAIL PROTECTED]>
>From: "John Saalwaechter" <[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>Subject: New option submission for ls -- thousands separator in file size
>Date: Fri, 02 Nov 2001 02:35:48 -0500
>
>I have modified ls to include a --thousands-separator option that
>puts thousands' separators in the file size field. It does this with
>printf's apostrophe format specifier (%'), which automatically makes it
>locale aware. My patch also widens the default file size field from 8
>to 10 chars so that sizes up to 9999999999 (9,999,999,999) print aligned.
>Please consider adding this change into ls.
>
>I know ls has the -h option, but I find that I prefer file sizes shown
>as thousands-separated numbers in ls output instead of numbers with
>scale-factor suffixes. For example,
>
>$ ./ls -lh /boot/vmlinu*
>-rwxr-xr-x 1 root root 2.2M Apr 8 2001
>/boot/vmlinux-2.4.2-2
>lrwxrwxrwx 1 root root 15 May 26 11:06 /boot/vmlinuz ->
>vmlinuz-2.4.2-2
>-rw-r--r-- 1 root root 763k Apr 8 2001
>/boot/vmlinuz-2.4.2-2
>$ ./ls -l --thousands-separator /boot/vmlinu*
>-rwxr-xr-x 1 root root 2,280,836 Apr 8 2001
>/boot/vmlinux-2.4.2-2
>lrwxrwxrwx 1 root root 15 May 26 11:06 /boot/vmlinuz
>-> vmlinuz-2.4.2-2
>-rw-r--r-- 1 root root 781,806 Apr 8 2001
>/boot/vmlinuz-2.4.2-2
>
>Below is sample output and the patch. (Note that --thousands-separator
>can be shortened on the command line to just --th)
>
>$ echo $LANG
>en_US
>
>$ /bin/ls -l /tmp/foo (using ls version 4.0.36)
>total 178716
>-rw-r--r-- 1 user1 user1 104857600 Nov 2 00:03 file.100m
>-rw-r--r-- 1 user1 user1 10485760 Nov 2 00:02 file.10m
>-rw-r--r-- 1 user1 user1 1073741824 Nov 2 00:05 file.1g
>-rw-r--r-- 1 user1 user1 1024 Nov 2 00:02 file.1k
>-rw-r--r-- 1 user1 user1 1048576 Nov 2 00:02 file.1m
>
>$ ./ls -l /tmp/foo (my patch widens standard file size field to 10)
>total 178716
>-rw-r--r-- 1 user1 user1 104857600 Nov 2 00:03 file.100m
>-rw-r--r-- 1 user1 user1 10485760 Nov 2 00:02 file.10m
>-rw-r--r-- 1 user1 user1 1073741824 Nov 2 00:05 file.1g
>-rw-r--r-- 1 user1 user1 1024 Nov 2 00:02 file.1k
>-rw-r--r-- 1 user1 user1 1048576 Nov 2 00:02 file.1m
>
>$ ./ls -l --thousands-separator /tmp/foo (with new option)
>total 178716
>-rw-r--r-- 1 user1 user1 104,857,600 Nov 2 00:03 file.100m
>-rw-r--r-- 1 user1 user1 10,485,760 Nov 2 00:02 file.10m
>-rw-r--r-- 1 user1 user1 1,073,741,824 Nov 2 00:05 file.1g
>-rw-r--r-- 1 user1 user1 1,024 Nov 2 00:02 file.1k
>-rw-r--r-- 1 user1 user1 1,048,576 Nov 2 00:02 file.1m
>
>$ ./ls -l --th /tmp/foo (only really need to type '--th')
>total 178716
>-rw-r--r-- 1 user1 user1 104,857,600 Nov 2 00:03 file.100m
>-rw-r--r-- 1 user1 user1 10,485,760 Nov 2 00:02 file.10m
>-rw-r--r-- 1 user1 user1 1,073,741,824 Nov 2 00:05 file.1g
>-rw-r--r-- 1 user1 user1 1,024 Nov 2 00:02 file.1k
>-rw-r--r-- 1 user1 user1 1,048,576 Nov 2 00:02 file.1m
>
>$ env LANG=deutsch ./ls -l --th /tmp/foo (locale aware)
>total 178716
>-rw-r--r-- 1 user1 user1 104.857.600 Nov 2 00:03 file.100m
>-rw-r--r-- 1 user1 user1 10.485.760 Nov 2 00:02 file.10m
>-rw-r--r-- 1 user1 user1 1.073.741.824 Nov 2 00:05 file.1g
>-rw-r--r-- 1 user1 user1 1.024 Nov 2 00:02 file.1k
>-rw-r--r-- 1 user1 user1 1.048.576 Nov 2 00:02 file.1m
>
>===========START PATCH======================================
>--- ls.c Fri Nov 2 02:00:42 2001
>+++ ls.c.orig Thu Nov 1 22:58:01 2001
>@@ -608,10 +608,6 @@
> quoting methods pass through control chars as-is. */
>static int qmark_funny_chars;
>
>-/* Nonzero means print file size numbers with the locale's thousands
>- separator. For example, "12,345,678". */
>-static int print_with_thousands_sep;
>-
>/* Quoting options for file and dir name output. */
>
>static struct quoting_options *filename_quoting_options;
>@@ -667,7 +663,6 @@
> SHOW_CONTROL_CHARS_OPTION,
> SI_OPTION,
> SORT_OPTION,
>- THOUSANDS_SEPARATOR_OPTION,
> TIME_OPTION
>};
>
>@@ -706,7 +701,6 @@
> {"time", required_argument, 0, TIME_OPTION},
> {"color", optional_argument, 0, COLOR_OPTION},
> {"block-size", required_argument, 0, BLOCK_SIZE_OPTION},
>- {"thousands-separator", no_argument, 0, THOUSANDS_SEPARATOR_OPTION},
> {GETOPT_HELP_OPTION_DECL},
> {GETOPT_VERSION_OPTION_DECL},
> {NULL, 0, NULL, 0}
>@@ -980,7 +974,6 @@
> int sort_type_specified = 0;
>
> qmark_funny_chars = 0;
>- print_with_thousands_sep = 0;
>
> /* initialize all switches to default settings */
>
>@@ -1127,7 +1120,6 @@
>
> case 'h':
> output_block_size = -1024;
>- print_with_thousands_sep = 0;
> break;
>
> case 'H':
>@@ -1138,7 +1130,6 @@
> /* Fall through. */
> case SI_OPTION:
> output_block_size = -1000;
>- print_with_thousands_sep = 0;
> break;
>
> case 'i':
>@@ -1343,10 +1334,6 @@
> human_block_size (optarg, 1, &output_block_size);
> break;
>
>- case THOUSANDS_SEPARATOR_OPTION:
>- print_with_thousands_sep = 1;
>- break;
>-
> case_GETOPT_HELP_CHAR;
>
> case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
>@@ -2542,10 +2529,7 @@
> else
> {
> char hbuf[LONGEST_HUMAN_READABLE + 1];
>- if (print_with_thousands_sep)
>- sprintf (p, "%'13lu ", f->stat.st_size);
>- else
>- sprintf (p, "%10s ",
>+ sprintf (p, "%8s ",
> human_readable ((uintmax_t) f->stat.st_size, hbuf, 1,
> output_block_size < 0 ? output_block_size : 1));
> }
>@@ -3330,7 +3314,6 @@
> specified time as sort key if
>--sort=time\n\
> -t sort by modification time\n\
> -T, --tabsize=COLS assume tab stops at each COLS instead of 8\n\
>- --thousands-separator print file sizes with locale's thousands
>separator\n\
> -u with -lt: sort by, and show, access time\n\
> with -l: show access time and sort by
>name\n\
> otherwise: sort by access time\n\
>===========END PATCH========================================
>
>--
>John W. Saalwaechter <[EMAIL PROTECTED]>
>
>
>
>_________________________________________________________________
>Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
>
>
>_______________________________________________
>Bug-fileutils mailing list
>[EMAIL PROTECTED]
>http://mail.gnu.org/mailman/listinfo/bug-fileutils
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
ls.c.patch.gz