[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
coreutils, dircolors, rc support
From: |
Daniel C. Bastos |
Subject: |
coreutils, dircolors, rc support |
Date: |
Sun, 23 Dec 2007 17:44:25 -0500 |
In case I should've:
; diff -u dircolors.1.~1~ dircolors.1
--- dircolors.1.~1~ 2006-05-25 13:27:34.000000000 -0400
+++ dircolors.1 2007-12-23 17:21:45.000000000 -0500
@@ -17,6 +17,9 @@
\fB\-c\fR, \fB\-\-csh\fR, \fB\-\-c\-shell\fR
output C shell code to set LS_COLORS
.TP
+\fB\-r\fR, \fB\-\-rc\fR, \fB\-\-plan9\-shell\fR
+output rc shell code to set LS_COLORS
+.TP
\fB\-p\fR, \fB\-\-print\-database\fR
output defaults
.TP
Daniel C. Bastos writes:
> Hi there. I've patched dircolors to support the rc shell syntax. The
> source code I used was coreutils 5.97 from the GNU Debian's apt-get etch
> source repository. If I can help with anything else, shoot me a line.
>
> http://math.utoledo.edu/~dbastos/files/patch/rc-dircolors-patch.diff
>
> For an immediate overview:
>
> --- ./dircolors.c 2005-11-06 03:36:03.000000000 -0500
> +++ ./rc-dircolors.c 2007-12-23 15:19:21.000000000 -0500
> @@ -46,6 +46,7 @@ enum Shell_syntax
> {
> SHELL_SYNTAX_BOURNE,
> SHELL_SYNTAX_C,
> + SHELL_SYNTAX_RC,
> SHELL_SYNTAX_UNKNOWN
> };
>
> @@ -86,6 +87,8 @@ static struct option const long_options[
> {"sh", no_argument, NULL, 'b'},
> {"csh", no_argument, NULL, 'c'},
> {"c-shell", no_argument, NULL, 'c'},
> + {"rc", no_argument, NULL, 'r'},
> + {"plan9-shell", no_argument, NULL, 'r'},
> {"print-database", no_argument, NULL, 'p'},
> {GETOPT_HELP_OPTION_DECL},
> {GETOPT_VERSION_OPTION_DECL},
> @@ -109,6 +112,7 @@ Output commands to set the LS_COLORS env
> Determine format of output:\n\
> -b, --sh, --bourne-shell output Bourne shell code to set
> LS_COLORS\n\
> -c, --csh, --c-shell output C shell code to set LS_COLORS\n\
> + -r, --rc, --plan9-shell output rc shell code to set LS_COLORS\n\
> -p, --print-database output defaults\n\
> "), stdout);
> fputs (HELP_OPTION_DESCRIPTION, stdout);
> @@ -125,8 +129,7 @@ For details on the format of these files
> exit (status);
> }
>
> -/* If the SHELL environment variable is set to `csh' or `tcsh,'
> - assume C shell. Else Bourne shell. */
> +/* Decide which shell syntax to use */
>
> static enum Shell_syntax
> guess_shell_syntax (void)
> @@ -142,6 +145,9 @@ guess_shell_syntax (void)
> if (STREQ (shell, "csh") || STREQ (shell, "tcsh"))
> return SHELL_SYNTAX_C;
>
> + if (STREQ (shell, "rc"))
> + return SHELL_SYNTAX_RC;
> +
> return SHELL_SYNTAX_BOURNE;
> }
>
> @@ -416,7 +422,7 @@ main (int argc, char **argv)
>
> atexit (close_stdout);
>
> - while ((optc = getopt_long (argc, argv, "bcp", long_options, NULL))
> != -1)
> + while ((optc = getopt_long (argc, argv, "bcpr", long_options, NULL))
> != -1)
> switch (optc)
> {
> case 'b': /* Bourne shell syntax. */
> @@ -427,6 +433,10 @@ main (int argc, char **argv)
> syntax = SHELL_SYNTAX_C;
> break;
>
> + case 'r': /* rc shell syntax. */
> + syntax = SHELL_SYNTAX_RC;
> + break;
> +
> case 'p':
> print_database = true;
> break;
> @@ -442,8 +452,7 @@ main (int argc, char **argv)
> argc -= optind;
> argv += optind;
>
> - /* It doesn't make sense to use --print with either of
> - --bourne or --c-shell. */
> + /* It doesn't make sense to use --print with a shell syntax */
> if (print_database && syntax != SHELL_SYNTAX_UNKNOWN)
> {
> error (0, 0,
> @@ -502,6 +511,11 @@ to select a shell syntax are mutually ex
> prefix = "LS_COLORS='";
> suffix = "';\nexport LS_COLORS\n";
> }
> + else if (syntax == SHELL_SYNTAX_RC)
> + {
> + prefix = "LS_COLORS='";
> + suffix = "'\n";
> + }
> else
> {
> prefix = "setenv LS_COLORS '";