# HG changeset patch # User Bryan O'Sullivan # Date 1156280590 25200 # Node ID 78fe7e2c2e1ec9d88be31e671d1314ee56288590 # Parent 65efeb7b2c56a23c98155e7cdca8115169477d1f mercurial.el: add hg-cwd diff -r 65efeb7b2c56 -r 78fe7e2c2e1e contrib/mercurial.el --- a/contrib/mercurial.el Tue Aug 22 14:02:43 2006 -0700 +++ b/contrib/mercurial.el Tue Aug 22 14:03:10 2006 -0700 @@ -1211,6 +1211,21 @@ root) hg-root)) +(defun hg-cwd (&optional path) + "Return the current directory of PATH within the repository." + (do ((stack nil (cons (file-name-nondirectory + (directory-file-name dir)) + stack)) + (prev nil dir) + (dir (file-name-directory (or path buffer-file-name + (expand-file-name default-directory))) + (file-name-directory (directory-file-name dir)))) + ((equal prev dir)) + (when (file-directory-p (concat dir ".hg")) + (let ((cwd (mapconcat 'identity stack "/"))) + (unless (equal cwd "") + (return (file-name-as-directory cwd))))))) + (defun hg-status (path) "Print revision control status of a file or directory. With prefix argument, prompt for the path to give status for.