emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [PATCH 1/2] Use lisp cd function to change directories to avoi


From: Bernt Hansen
Subject: [Orgmode] [PATCH 1/2] Use lisp cd function to change directories to avoid shell dependencies
Date: Wed, 19 Aug 2009 16:06:17 -0400

This fixes git version determination on windows for cygwin and for msysGit
where git is installed in the user's PATH for the windows command shell.
---
 lisp/org.el |   38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index e2cdce8..63ce2de 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -104,25 +104,27 @@ With prefix arg HERE, insert it at point."
   (interactive "P")
   (let* ((org-version org-version)
         (git-version)
-        (dir (concat (file-name-directory (locate-library "org")) "../" )))
+        (dir (concat (file-name-directory (locate-library "org")) "../" ))
+        (version))
     (if (file-exists-p (expand-file-name ".git" dir))
-       (progn
-        (shell-command (concat "cd " dir " && git describe --abbrev=4 HEAD"))
-        (save-excursion
-          (set-buffer "*Shell Command Output*")
-          (goto-char (point-min))
-          (replace-regexp "-" ".")
-          (goto-char (point-min))
-          (re-search-forward "[^\n]+")
-          (setq git-version (match-string 0))
-          (shell-command (concat "cd " dir " && git diff-index --name-only 
HEAD --"))
-          (unless (eql 1 (point-max))
-            (setq git-version (concat git-version ".dirty")))
-          (setq org-version (concat org-version " (" git-version ")")))))
-    (let ((version (format "Org-mode version %s" org-version)))
-      (if here (insert version))
-      (message version)
-      version)))
+       (let ((pwd (substring (pwd) 10)))
+         (cd dir)
+         (shell-command "git describe --abbrev=4 HEAD")
+         (save-excursion
+           (set-buffer "*Shell Command Output*")
+           (goto-char (point-min))
+           (re-search-forward "[^\n]+")
+           (setq git-version (match-string 0))
+           (subst-char-in-string ?- ?. git-version t)
+           (shell-command "git diff-index --name-only HEAD --")
+           (unless (eql 1 (point-max))
+             (setq git-version (concat git-version ".dirty")))
+           (setq org-version (concat org-version " (" git-version ")")))
+         (cd pwd)))
+    (setq version (format "Org-mode version %s" org-version))
+    (if here (insert version))
+    (message version)
+    version))
 
 ;;; Compatibility constants
 
-- 
1.6.4





reply via email to

[Prev in Thread] Current Thread [Next in Thread]