From eab4454ac588e241b864d8863f309c3fd63fc145 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Sat, 29 Jan 2022 14:48:58 +0000 Subject: [PATCH] Fix #2659: Use get_hg_branch() to get Mercurial branch information. --- vendor/clink.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/vendor/clink.lua b/vendor/clink.lua index 2d35e4716..2cb362f71 100644 --- a/vendor/clink.lua +++ b/vendor/clink.lua @@ -303,11 +303,18 @@ local function get_git_branch(git_dir) end --- --- Find out current branch --- @return {false|mercurial branch name} +-- Find out current branch information +-- @return {false|mercurial branch information} --- local function get_hg_branch() - local file = io.popen("hg branch 2>nul") + -- Return the branch information. The default is to get just the + -- branch name, but you could e.g. use the "hg-prompt" extension to + -- get more information, such as any applied mq patches. Here's an + -- example of that: + -- local cmd = "hg prompt \"{branch}{status}{|{patch}}{update}\"" + local cmd = "hg branch 2>nul" + local file = io.popen(cmd) + for line in file:lines() do local m = line:match("(.+)$") if m then @@ -521,10 +528,7 @@ local function hg_prompt_filter() dirty = get_dirty_color(), nostatus = get_unknown_color() } - - local pipe = io.popen("hg branch 2>&1") - local output = pipe:read('*all') - local rc = { pipe:close() } + local output = get_hg_branch() -- strip the trailing newline from the branch name local n = #output