aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Baudis <pasky@suse.cz>2006-06-24 04:34:31 +0200
committerJunio C Hamano <junkio@cox.net>2006-07-02 17:14:40 -0700
commiteca1f6fdb862e6ca07288ac385725c95fd96490e (patch)
tree45618eb01ddb811762e24c937b7398e435c62cc7
parentb1edc53d062c4f6adae08a15be08d6e7bccd242e (diff)
downloadgit-eca1f6fdb862e6ca07288ac385725c95fd96490e.tar.gz
git-eca1f6fdb862e6ca07288ac385725c95fd96490e.tar.xz
Git.pm: Implement Git::exec_path()
This patch implements Git::exec_path() (as a direct XS call). Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--perl/Git.pm15
-rw-r--r--perl/Git.xs12
2 files changed, 26 insertions, 1 deletions
diff --git a/perl/Git.pm b/perl/Git.pm
index 8fff785e0..5c5ae1246 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -48,7 +48,7 @@ require Exporter;
# Methods which can be called as standalone functions as well:
@EXPORT_OK = qw(command command_oneline command_pipe command_noisy
- hash_object);
+ exec_path hash_object);
=head1 DESCRIPTION
@@ -288,6 +288,19 @@ 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 1b81ce244..9e754d253 100644
--- a/perl/Git.xs
+++ b/perl/Git.xs
@@ -6,6 +6,7 @@
/* libgit interface */
#include "../cache.h"
+#include "../exec_cmd.h"
/* XS and Perl interface */
#include "EXTERN.h"
@@ -21,6 +22,17 @@ PROTOTYPES: DISABLE
# /* 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;