App-ccdiff
    
    
  
  
  
view release on metacpan or search on metacpan
    * Fix doc typo (issue#4)
0.20	- 2018-08-16
    * Start inline documentation
    * Support configuration
    * Add -I/--index
    * Add --verbose meaning
    * Add --list-colors
0.10	- 2018-08-15
    * Allow bold variants for colors
    * Start of -B implementation
0.09	- 2018-08-10
    * Header for unified diff
0.08	- 2018-08-02
    * Implement -b
    * Implement -Z
    * Implement -i
 * [`colordiff`](https://www.colordiff.org/)
 * [`klondiff`](https://github.com/pierstitus/klondiff)
 * [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy)
 * `git`
   This however requires a long command:
```
$ git -c color.diff.new='bold reverse green' \
         -c color.diff.old='bold reverse red'   \
         diff --no-index -U0 --no-color \
              --word-diff=color --word-diff-regex=. \
             <file1> <file2>
```
   An alternative for integration with git is `diff-so-fancy`
## ASCII
 * `vimdiff`
    require Pod::Man;
    my $p = Pod::Man->new ();
    open my $fh, "|-", "nroff", "-man";
    $p->parse_from_file ($0, $fh);
    close $fh;
    exit 0;
    } # pod_nroff
# Color initialization
for ($old_color, $new_color, $rev_color) {
    s/^(.*)[ _]bold$/bold $1/i;
    s/^bold_/bold /i;
    }
my %clr = map { $_ => color (s{^(.*)[ _]bold$}{bold $1}ir =~
                             s{^bold[ _]}{bold }ir) }
	  map {( $_, "on_$_", "bold $_" )}
    qw( red green blue black white cyan magenta yellow );
$clr{$_} //= color ($_) for tac_colors ();
$no_colors and $clr{$_} = "" for keys %clr;
$clr{none} = $clr{on_none} = "";
my ($reset,   $bg_new,  $bg_old,
    $chr_cml, $chr_cmr, $chr_ctx, $chr_eli, $chr_eql, $chr_lft,
    $chr_new, $chr_old, $chr_rgt,
    $clr_dbg, $clr_grn, $clr_new, $clr_old, $clr_red, $clr_rev,
    $cmp_sub) = (RESET);
	$$c && exists $clr{$$c} and next;
	warn "color ", $$c // "(undefined)", " is unknown, using $def instead\n";
	$$c = $def;
	}
    $clr_red = $clr{$old_color};
    $clr_grn = $clr{$new_color};
    $clr_rev = $clr{$rev_color};
    $clr_dbg = $opt_r && exists $clr{"on_$rc{verbose}"} ? $clr{"on_$rc{verbose}"} : $clr{$rc{verbose}};
    $reset   = $no_colors ? "" : RESET;
    $bg_old = $clr{$rc{bg_old} || ($opt_r ? "on_$old_color" =~ s/bold //ir :
					       "on_$rev_color" =~ s/bold //ir)};
    $bg_new = $clr{$rc{bg_new} || ($opt_r ? "on_$new_color" =~ s/bold //ir :
					       "on_$rev_color" =~ s/bold //ir)};
    $clr_old = $opt_r ? $clr_rev . $bg_old : $clr_red . $bg_old;
    $clr_new = $opt_r ? $clr_rev . $bg_new : $clr_grn . $bg_new;
    $opt_s and ($clr_new, $clr_old) = ($clr_old, $clr_new);
    # Indicators
    if ($opt_a) {
	@rc{qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v )} = qw( ^ ^ > < - <> );
	}
    elsif (!$opt_U) {
	$rc{$_} = encode ("utf-8", $rc{$_}) for qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v );
	}
=item --pink -p
Change the default C<red> for deleted text to the color closest to pink that
is supported by L<Term::ANSIColor>: C<magenta>.
=item --reverse -r
Reverse/invert the foreground and background for the colored indicators.
If the foreground color has C<bold>, it will be stripped from the new background
color.
=item --swap -s
Swap the colors for new and old.
=item --list-colors
List available colors and exit.
=item new (--new)
 new     : green
Defines the color to be used for added text. The default is C<green>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
 new-color
 new_color
 new-colour
 new_colour
=item old (--old)
 old     : red
Defines the color to be used for deleted text. The default is C<red>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
 old-color
 old_color
 old-colour
 old_colour
=item bg (--bg)
 bg      : white
Defines the color to be used as background for changed text. The default is
C<white>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. The C<bold> attribute is not allowed.
This option may also be specified as
 bg-color
 bg_color
 bg-colour
 bg_colour
 background
 background-color
 background_color
lib/App/ccdiff.pm view on Meta::CPAN
    require Pod::Man;
    my $p = Pod::Man->new ();
    open my $fh, "|-", "nroff", "-man";
    $p->parse_from_file ($0, $fh);
    close $fh;
    exit 0;
    } # pod_nroff
# Color initialization
for ($old_color, $new_color, $rev_color) {
    s/^(.*)[ _]bold$/bold $1/i;
    s/^bold_/bold /i;
    }
my %clr = map { $_ => color (s{^(.*)[ _]bold$}{bold $1}ir =~
                             s{^bold[ _]}{bold }ir) }
	  map {( $_, "on_$_", "bold $_" )}
    qw( red green blue black white cyan magenta yellow );
$clr{$_} //= color ($_) for tac_colors ();
$no_colors and $clr{$_} = "" for keys %clr;
$clr{none} = $clr{on_none} = "";
my ($reset,   $bg_new,  $bg_old,
    $chr_cml, $chr_cmr, $chr_ctx, $chr_eli, $chr_eql, $chr_lft,
    $chr_new, $chr_old, $chr_rgt,
    $clr_dbg, $clr_grn, $clr_new, $clr_old, $clr_red, $clr_rev,
    $cmp_sub) = (RESET);
lib/App/ccdiff.pm view on Meta::CPAN
	$$c && exists $clr{$$c} and next;
	warn "color ", $$c // "(undefined)", " is unknown, using $def instead\n";
	$$c = $def;
	}
    $clr_red = $clr{$old_color};
    $clr_grn = $clr{$new_color};
    $clr_rev = $clr{$rev_color};
    $clr_dbg = $opt_r && exists $clr{"on_$rc{verbose}"} ? $clr{"on_$rc{verbose}"} : $clr{$rc{verbose}};
    $reset   = $no_colors ? "" : RESET;
    $bg_old = $clr{$rc{bg_old} || ($opt_r ? "on_$old_color" =~ s/bold //ir :
					       "on_$rev_color" =~ s/bold //ir)};
    $bg_new = $clr{$rc{bg_new} || ($opt_r ? "on_$new_color" =~ s/bold //ir :
					       "on_$rev_color" =~ s/bold //ir)};
    $clr_old = $opt_r ? $clr_rev . $bg_old : $clr_red . $bg_old;
    $clr_new = $opt_r ? $clr_rev . $bg_new : $clr_grn . $bg_new;
    $opt_s and ($clr_new, $clr_old) = ($clr_old, $clr_new);
    # Indicators
    if ($opt_a) {
	@rc{qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v )} = qw( ^ ^ > < - <> );
	}
    elsif (!$opt_U) {
	$rc{$_} = encode ("utf-8", $rc{$_}) for qw( chr_old chr_new chr_cml chr_cmr chr_eli chr_eli_v );
	}
lib/App/ccdiff.pm view on Meta::CPAN
=item --pink -p
Change the default C<red> for deleted text to the color closest to pink that
is supported by L<Term::ANSIColor>: C<magenta>.
=item --reverse -r
Reverse/invert the foreground and background for the colored indicators.
If the foreground color has C<bold>, it will be stripped from the new background
color.
=item --swap -s
Swap the colors for new and old.
=item --list-colors
List available colors and exit.
lib/App/ccdiff.pm view on Meta::CPAN
=item new (--new)
 new     : green
Defines the color to be used for added text. The default is C<green>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
 new-color
 new_color
 new-colour
 new_colour
=item old (--old)
 old     : red
Defines the color to be used for deleted text. The default is C<red>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. This option can include C<bold> either as prefix or
as suffix.
This option may also be specified as
 old-color
 old_color
 old-colour
 old_colour
=item bg (--bg)
 bg      : white
Defines the color to be used as background for changed text. The default is
C<white>.
The color C<none> is also accepted and disables this color.
Any color accepted by L<Term::ANSIColor> is allowed. Any other color will
result in a warning. The C<bold> attribute is not allowed.
This option may also be specified as
 bg-color
 bg_color
 bg-colour
 bg_colour
 background
 background-color
 background_color
( run in 1.408 second using v1.01-cache-2.11-cpan-c333fce770f )