All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
-The "lib" parameter can specify some shell code that will be run before each
-command, this can be a useful way to define shell functions for other commands
-to use.
+The "lib" parameter can specify some shell code that will be run
+before each command, this can be a useful way to define shell
+functions for other commands to use. Unlike most other parameters,
+this can be specified multiple times, in which case the chunks of
+shell code are accumulatively concatenated together. This is
+particularly useful because it allows the user to build a library of
+shell functions defined in the [DEFAULT] section scattered across
+various mr modules (files referenced by an C<include> directive).
override these VCS specific actions. To add a new version control system,
you can just add VCS specific actions for it.
override these VCS specific actions. To add a new version control system,
you can just add VCS specific actions for it.
+As with the C<lib> parameter, if a parameter is suffixed with
+C<_append>, its value is concatenated to the existing value of the
+parameter for that config block, rather than overwriting it. In this
+way, actions such as C<fixup> can be constructed accumulatively.
+
=head1 UNTRUSTED MRCONFIG FILES
Since mrconfig files can contain arbitrary shell commands, they can do
=head1 UNTRUSTED MRCONFIG FILES
Since mrconfig files can contain arbitrary shell commands, they can do
if ($section eq 'ALIAS') {
$alias{$parameter}=$value;
}
if ($section eq 'ALIAS') {
$alias{$parameter}=$value;
}
- elsif ($parameter eq 'lib') {
- $config{$dir}{$section}{lib}.=$value."\n";
+ elsif ($parameter eq 'lib' or $parameter =~ s/_append$//) {
+ $config{$dir}{$section}{$parameter}.="\n".$value."\n";
}
else {
$config{$dir}{$section}{$parameter}=$value;
}
else {
$config{$dir}{$section}{$parameter}=$value;