This patch implements Git::exec_path() (as a direct XS call). Signed-off-by: Petr Baudis <pasky@xxxxxxx> --- perl/Git.pm | 20 +++++++++++++++++++- perl/Git.xs | 10 ++++++++++ 2 files changed, 29 insertions(+), 1 deletions(-) diff --git a/perl/Git.pm b/perl/Git.pm index 4bb7c50..516c065 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -47,7 +47,8 @@ require Exporter; @EXPORT = qw(); # Methods which can be called as standalone functions as well: -@EXPORT_OK = qw(command command_oneline command_pipe command_noisy); +@EXPORT_OK = qw(command command_oneline command_pipe command_noisy + exec_path hash_object); =head1 DESCRIPTION @@ -213,6 +214,7 @@ sub command { } } + =item command_oneline ( COMMAND [, ARGUMENTS... ] ) Execute the given C<COMMAND> in the same way as command() @@ -231,6 +233,7 @@ sub command_oneline { return $line; } + =item command_pipe ( COMMAND [, ARGUMENTS... ] ) Execute the given C<COMMAND> in the same way as command() @@ -253,6 +256,7 @@ sub command_pipe { return $fh; } + =item command_noisy ( COMMAND [, ARGUMENTS... ] ) Execute the given C<COMMAND> in the same way as command() does but do not @@ -283,6 +287,20 @@ sub command_noisy { } } + +=item exec_path () + +Return path to the git sub-command executables (the same as +C<git --exec-path>). Useful mostly only internally. + +Implementation of this function is very fast; no external command calls +are involved. + +=cut + +# Implemented in Git.xs. + + =item hash_object ( FILENAME [, TYPE ] ) =item hash_object ( FILEHANDLE [, TYPE ] ) diff --git a/perl/Git.xs b/perl/Git.xs index 33bb3ca..d1f94a4 100644 --- a/perl/Git.xs +++ b/perl/Git.xs @@ -6,6 +6,7 @@ #include <ctype.h> /* libgit interface */ #include "../cache.h" +#include "../exec_cmd.h" /* XS and Perl interface */ #include "EXTERN.h" @@ -19,6 +20,15 @@ MODULE = Git PACKAGE = Git # /* TODO: xs_call_gate(). See Git.pm. */ + +const char * +xs_exec_path() +CODE: + RETVAL = git_exec_path(); +OUTPUT: + RETVAL + + char * xs_hash_object(file, type = "blob") SV *file; - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html