From patchwork Mon Aug 8 05:34:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fernando Ramos X-Patchwork-Id: 12938480 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C00D1C00140 for ; Mon, 8 Aug 2022 05:35:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233787AbiHHFfM (ORCPT ); Mon, 8 Aug 2022 01:35:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232118AbiHHFfK (ORCPT ); Mon, 8 Aug 2022 01:35:10 -0400 Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 583E3EE12 for ; Sun, 7 Aug 2022 22:35:09 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 987EE3200684; Mon, 8 Aug 2022 01:35:08 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 08 Aug 2022 01:35:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=u92.eu; h=cc:cc :content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1659936908; x=1660023308; bh=fm mBVaMJQITCbKB/iCSW/LxRh0S+Tn5VguyzOpxSgPw=; b=ZvhGqi2/XXFV693cX3 7ycW3PeSfbQyTV75T3t5uTU5ugC00SXW29prHcCcovMKxKcbIYaPYl8nrcTwvic+ yXRJBlh2P/BJEvZV7frF2T/nme0Xe8s2OE3o/gNQkWgu5CDtoTyKpXJGFk9qx9jC 7Nru+8V5deJk3257FGDWh0OMfQ4CQX9eLV2nQGuC5eyuttfMKlhbFTHbpOBCR6F6 GnDa//LpAUgEYDyrQQCt/XH2n7eLxt/tLqva2RF5Bx8MaSlpt6JXc1r4npcElX0s J/Hj++IUg/heJshM2SYvEwfLap0264jrQsDxVHBkjZgRv2+vP861L41mXpfGlQUe 6BxQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1659936908; x=1660023308; bh=fmmBVaMJQITCb KB/iCSW/LxRh0S+Tn5VguyzOpxSgPw=; b=xI7274P7FpAnkOOgLudhYHcYFabrk CFExIPBVK+H4uxa0t16TDJMgYXYP4V87zcwUb2+AN/Q657rIT+X7IWPEECbKQHHW Vr+3yoVb/tCZ6qYNKUod4yAtQp9x5L3fDmmdEPzhId+EEc4NTnb/tRJVQa8tNTu3 MbvXR6OZEcKk5uSRKJekfshkyPvE7keG/xYYS0IEkoCvnkIqjJOTokE1jblbu6bn 9vreKRSkeCb2rof0xJSrJPTX0W6NYTrvAUVvgGBwDUMU6Br9zrVDl+ulI7n0GsgT GFH5cJh72w3tpj0b6svnBr+HAFIWwtZ8vxL+sjDCViau9JfwY3WiCQymw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdefjedgleegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoteeftdduqddtudculdduhedmnecujfgurhephf fvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhephfgvrhhnrghnughoucft rghmohhsuceoghhrvggvnhhfohhosehuledvrdgvuheqnecuggftrfgrthhtvghrnhepie euvdeggfdvteetkeevtedtgfehudettdelvdegvdfffefgffevgfeujeehveeunecuvehl uhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepghhrvggvnhhfoh hosehuledvrdgvuh X-ME-Proxy: Feedback-ID: i96f14706:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 8 Aug 2022 01:35:06 -0400 (EDT) From: Fernando Ramos To: greenfoo@u92.eu Cc: felipe.contreras@gmail.com, git@vger.kernel.org Subject: [PATCH v3 1/3] mergetools: vimdiff: fix comment Date: Mon, 8 Aug 2022 07:34:57 +0200 Message-Id: <20220808053459.184367-2-greenfoo@u92.eu> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220808053459.184367-1-greenfoo@u92.eu> References: <20220807024941.222018-1-felipe.contreras@gmail.com> <20220808053459.184367-1-greenfoo@u92.eu> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org From: Felipe Contreras The name of the variable is wrong, and it can be set to anything, like 1. Signed-off-by: Felipe Contreras --- mergetools/vimdiff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mergetools/vimdiff b/mergetools/vimdiff index f770b8fe24..ea416adcaa 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff @@ -29,8 +29,8 @@ ################################################################################ debug_print () { - # Send message to stderr if global variable GIT_MERGETOOL_VIMDIFF is set - # to "true" + # Send message to stderr if global variable GIT_MERGETOOL_VIMDIFF_DEBUG + # is set. if test -n "$GIT_MERGETOOL_VIMDIFF_DEBUG" then From patchwork Mon Aug 8 05:34:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fernando Ramos X-Patchwork-Id: 12938481 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 753EAC00140 for ; Mon, 8 Aug 2022 05:35:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235405AbiHHFfU (ORCPT ); Mon, 8 Aug 2022 01:35:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235343AbiHHFfN (ORCPT ); Mon, 8 Aug 2022 01:35:13 -0400 Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D02A527B for ; Sun, 7 Aug 2022 22:35:11 -0700 (PDT) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 1BF493200302; Mon, 8 Aug 2022 01:35:11 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Mon, 08 Aug 2022 01:35:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=u92.eu; h=cc:cc :content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1659936910; x=1660023310; bh=21 GZPtRIO+8QAAS9/NQ6Il7S3f+a9uv7fAhdDyET9oc=; b=L25STkZ5qlS7Qn+SL/ gdXOzMaQvs5WHZcgtgIiYgdeJRHoVPX+udRI2/Ctc6fOPJ4M20Qd/0RZwEFExlLY MgkmEiTSEtx6rLw/VOBlIDsmaDev4UoQMgVGsZAJQWQK8oj70++GlYon326C/mBH M8cvUP7wDs13XlvgXVpFtDVdHWDiFiQQaqpBKaYGxyAG9czd+8VpFrD9Q2AwHGj3 +XjcLiZihGXI9o5j2QtbxdHbk7sdCEiWwgur2neetxLI5P/sUJyUO9lIr2Ig+V0y QpiQqoZ5x6I3gYPMUgQFDfRlspeeQKeSpULGF+sixJuKq9r4zme8+vdiKSvfKrpK bO2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1659936910; x=1660023310; bh=21GZPtRIO+8QA AS9/NQ6Il7S3f+a9uv7fAhdDyET9oc=; b=hTGXfXkn3nGRUfIWLwAPI1l/rEJDC KUnTuUkB9WA0pInMWZ6g0nDYXfzd4FsClQY9emefHPpNNsQmASO/YSd648l9BdRL OaBKEuktM5Ooqz2djvto/cO1sINljLPMFY4Th7Cs4FZwa393p9xhRaZO8rxQEVrj 2+GTzTV2x4wLXkvqb6kOfF2fOP23uw0yGzz5SkyamRkvrOWowixhkKZ5fW4jSajw fUqroNj6Qh27HDPdXlhakftTM6GRPUFqREIU7MicLP3vdrozUXI7zSxj9dQFeRM0 4FbLfONo2t2PPUKRSi+VUVuQ0lWnTnr0UmAyWOJCDLnSKjK40LbIr9EBw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdefjedgleegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoteeftdduqddtudculdduhedmnecujfgurhephf fvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhephfgvrhhnrghnughoucft rghmohhsuceoghhrvggvnhhfohhosehuledvrdgvuheqnecuggftrfgrthhtvghrnheple effedvvdefudeuleetveelvdevteetuddvkefgffejvdfgudduffegfeduueffnecuffho mhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpehgrhgvvghnfhhoohesuhelvddrvghu X-ME-Proxy: Feedback-ID: i96f14706:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 8 Aug 2022 01:35:09 -0400 (EDT) From: Fernando Ramos To: greenfoo@u92.eu Cc: felipe.contreras@gmail.com, git@vger.kernel.org Subject: [PATCH v3 2/3] mergetools: vimdiff: fix single tab mode, single window mode and colors Date: Mon, 8 Aug 2022 07:34:58 +0200 Message-Id: <20220808053459.184367-3-greenfoo@u92.eu> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220808053459.184367-1-greenfoo@u92.eu> References: <20220807024941.222018-1-felipe.contreras@gmail.com> <20220808053459.184367-1-greenfoo@u92.eu> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org vimdiff3 was introduced in 7c147b77d3 (mergetools: add vimdiff3 mode, 2014-04-20) and then partially broken in 0041797449 (vimdiff: new implementation with layout support, 2022-03-30) in two ways: - It does not show colors unless the user has "set hidden" in his .vimrc file - It prompts the user to "Press ENTER" every time it runs. This patch fixes both issues and, in adition: - Unifies the previously "special" case where LAYOUT contained one single tab with one single window. - Fixes colors in tabs with just one window. Cc: Felipe Contreras Signed-off-by: Fernando Ramos --- mergetools/vimdiff | 69 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 20 deletions(-) diff --git a/mergetools/vimdiff b/mergetools/vimdiff index ea416adcaa..f8cd7a83f0 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff @@ -55,12 +55,40 @@ substring () { echo "$STRING" | cut -c$(( START + 1 ))-$(( START + $LEN )) } +enable_diff_mode () { + # Auxiliary function that appends extra vim commands at the end of each + # tab section to enable diff mode + + NUMBER_OF_WINDOWS_IN_TAB=$1 + + if test "$NUMBER_OF_WINDOWS_IN_TAB" -eq 1 + then + # Tabs that only contains one window will "diff" + # against all loaded/hidden buffers + + echo "let tmp=bufnr('%') | execute 'silent 1,4bufdo diffthis' | execute 'buffer '.tmp" + else + # Tabs that contain more than one window will + # only "diff" against those windows + + echo "execute 'windo diffthis'" + fi +} + gen_cmd_aux () { # Auxiliary function used from "gen_cmd()". # Read that other function documentation for more details. + # + # This function returns two items + # - STDOUT: The vim command to use + # - RETCODE: The number of windows opened in the current tab - LAYOUT=$1 - CMD=$2 # This is a second (hidden) argument used for recursion + WINDOWS_NR=$1 # Number of windows opened in the current tab after + # having parsed the provided "LAYOUT" + # If applicable, this variable will be updated and + # returned in RETCODE + LAYOUT=$2 # Substring (from the original LAYOUT) to process + CMD=$3 # This is a third (hidden) argument used for recursion debug_print debug_print "LAYOUT : $LAYOUT" @@ -232,6 +260,7 @@ gen_cmd_aux () { after="wincmd j" index=$index_horizontal_split terminate="true" + WINDOWS_NR=$(( WINDOWS_NR + 1 )) elif ! test -z "$index_vertical_split" then @@ -239,16 +268,27 @@ gen_cmd_aux () { after="wincmd l" index=$index_vertical_split terminate="true" + WINDOWS_NR=$(( WINDOWS_NR + 1 )) fi if test "$terminate" = "true" then CMD="$CMD | $before" - CMD=$(gen_cmd_aux "$(substring "$LAYOUT" "$start" "$(( index - start ))")" "$CMD") + CMD=$(gen_cmd_aux $WINDOWS_NR "$(substring "$LAYOUT" "$start" "$(( index - start ))")" "$CMD") + WINDOWS_NR=$? + + if ! test -z "$index_new_tab" + then + CMD="$CMD | $(enable_diff_mode $WINDOWS_NR)" + WINDOWS_NR=1 + fi + CMD="$CMD | $after" - CMD=$(gen_cmd_aux "$(substring "$LAYOUT" "$(( index + 1 ))" "$(( ${#LAYOUT} - index ))")" "$CMD") + CMD=$(gen_cmd_aux $WINDOWS_NR "$(substring "$LAYOUT" "$(( index + 1 ))" "$(( ${#LAYOUT} - index ))")" "$CMD") + WINDOWS_NR=$? + echo "$CMD" - return + return $WINDOWS_NR fi @@ -280,10 +320,9 @@ gen_cmd_aux () { fi echo "$CMD" - return + return $WINDOWS_NR } - gen_cmd () { # This function returns (in global variable FINAL_CMD) the string that # you can use when invoking "vim" (as shown next) to obtain a given @@ -333,25 +372,15 @@ gen_cmd () { # Obtain the first part of vim "-c" option to obtain the desired layout - CMD=$(gen_cmd_aux "$LAYOUT") - - - # Adjust the just obtained script depending on whether more than one - # windows are visible or not - - if echo "$LAYOUT" | grep ",\|/" >/dev/null - then - CMD="$CMD | tabdo windo diffthis" - else - CMD="$CMD | bufdo diffthis" - fi + CMD=$(gen_cmd_aux 1 "$LAYOUT") + CMD="$CMD | $(enable_diff_mode $?)" # Add an extra "-c" option to move to the first tab (notice that we # can't simply append the command to the previous "-c" string as # explained here: https://github.com/vim/vim/issues/9076 - FINAL_CMD="-c \"$CMD\" -c \"tabfirst\"" + FINAL_CMD="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"$CMD\" -c \"tabfirst\"" } From patchwork Mon Aug 8 05:34:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fernando Ramos X-Patchwork-Id: 12938482 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAAFFC00140 for ; Mon, 8 Aug 2022 05:35:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235389AbiHHFfX (ORCPT ); Mon, 8 Aug 2022 01:35:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235387AbiHHFfR (ORCPT ); Mon, 8 Aug 2022 01:35:17 -0400 Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FB97100D for ; Sun, 7 Aug 2022 22:35:14 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id A14EA32003F4; Mon, 8 Aug 2022 01:35:13 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 08 Aug 2022 01:35:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=u92.eu; h=cc:cc :content-transfer-encoding:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1659936913; x=1660023313; bh=wb OHNg4h2l7C6VcRA/GtR8XiFqyybizvDDDoggrIP50=; b=nSESrpVRXoUOxdDzeM 8UGhYzciCMDQ8+B6T+/nYNJblrn+KCnzhQWoAT+ORW/ji1jAUhnvOoqCt5jW+6Bu ijFfSsWRjXs81kmJQumyJHPcFiS9QhllCdgyOvXMglBgzZRkcbRkfyyp9fuU/8LP myTTJJjQdOCVf1T9U8+TPfjyAEmmuf3livKpMTxuhm/CbQVJQIMpGrsRAwoqgaou 2XYI/yBnw2Ob8WYZI5ml3LJJMyYgn4rNk8bjFIJ5kNsb1Ws+mZxAzA+18mOq+icJ d1r7XpYySy5uwSJf+cZl0CfWfNf52rLJyfnTF0NCzcPT/x6aSlaHrgE38tDG4Nqe Uycw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1659936913; x=1660023313; bh=wbOHNg4h2l7C6 VcRA/GtR8XiFqyybizvDDDoggrIP50=; b=gVQw9yXc59moFmDCWnWAgCyC5az0X p9Mcqj9vympZJMAS/zWrk8h0d1ZBElJpUz2+btpW5VMb9lzQZ75GaEGPnfRdzZaP tjp90LBexyi3OQ+1KOjHilMfX9knFTm8CZQkyg1MNHUEqbWiUatHygW5nd6ng9qR 1WRtnnrofZlEARnHlt7QDghp7jJRDJdaplSuw9qprWP9xkaCOyD2HKkpZgaLA12U qeBCx/106TEzeK1TrnPyigxUuvJkG9gUhewbIxWoiVkxze8pyuegPx1AmUCcalkX m9HQXobVQsgdDsk/sc6wCVqPhJiKwC9z6kvxfPtp+6t6sc2JXoTLB6bUA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdefjedgleegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgoteeftdduqddtudculdduhedmnecujfgurhephf fvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhephfgvrhhnrghnughoucft rghmohhsuceoghhrvggvnhhfohhosehuledvrdgvuheqnecuggftrfgrthhtvghrnhepie euvdeggfdvteetkeevtedtgfehudettdelvdegvdfffefgffevgfeujeehveeunecuvehl uhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomhepghhrvggvnhhfoh hosehuledvrdgvuh X-ME-Proxy: Feedback-ID: i96f14706:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 8 Aug 2022 01:35:11 -0400 (EDT) From: Fernando Ramos To: greenfoo@u92.eu Cc: felipe.contreras@gmail.com, git@vger.kernel.org Subject: [PATCH v3 3/3] mergetools: vimdiff: update unit tests Date: Mon, 8 Aug 2022 07:34:59 +0200 Message-Id: <20220808053459.184367-4-greenfoo@u92.eu> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220808053459.184367-1-greenfoo@u92.eu> References: <20220807024941.222018-1-felipe.contreras@gmail.com> <20220808053459.184367-1-greenfoo@u92.eu> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Signed-off-by: Fernando Ramos --- mergetools/vimdiff | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/mergetools/vimdiff b/mergetools/vimdiff index f8cd7a83f0..f04dad24ce 100644 --- a/mergetools/vimdiff +++ b/mergetools/vimdiff @@ -584,22 +584,22 @@ run_unit_tests () { TEST_CASE_15=" (( (LOCAL , BASE , REMOTE) / MERGED)) +(BASE) , LOCAL+ BASE , REMOTE+ (((LOCAL / BASE / REMOTE)) , MERGED ) " TEST_CASE_16="LOCAL,BASE,REMOTE / MERGED + BASE,LOCAL + BASE,REMOTE + (LOCAL / BASE / REMOTE),MERGED" - EXPECTED_CMD_01="-c \"echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_02="-c \"echo | leftabove vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_03="-c \"echo | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 4b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_04="-c \"echo | 4b | bufdo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_05="-c \"echo | leftabove split | 1b | wincmd j | leftabove split | 4b | wincmd j | 3b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_06="-c \"echo | leftabove vertical split | leftabove split | 1b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_07="-c \"echo | leftabove vertical split | 4b | wincmd l | leftabove split | 1b | wincmd j | 3b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_08="-c \"echo | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_09="-c \"echo | leftabove split | 4b | wincmd j | leftabove vertical split | 1b | wincmd l | 3b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_10="-c \"echo | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_11="-c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_12="-c \"echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_13="-c \"echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | leftabove vertical split | leftabove split | 1b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_14="-c \"echo | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | 2b | wincmd l | 1b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_15="-c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" - EXPECTED_CMD_16="-c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | tabdo windo diffthis\" -c \"tabfirst\"" + EXPECTED_CMD_01="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_02="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | 1b | wincmd l | 3b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_03="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 4b | wincmd l | 3b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_04="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | 4b | let tmp=bufnr('%') | execute 'silent 1,4bufdo diffthis' | execute 'buffer '.tmp\" -c \"tabfirst\"" + EXPECTED_CMD_05="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove split | 1b | wincmd j | leftabove split | 4b | wincmd j | 3b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_06="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | leftabove split | 1b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_07="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | 4b | wincmd l | leftabove split | 1b | wincmd j | 3b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_08="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_09="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove split | 4b | wincmd j | leftabove vertical split | 1b | wincmd l | 3b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_10="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_11="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | execute 'windo diffthis' | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_12="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_13="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | leftabove vertical split | leftabove split | leftabove vertical split | 1b | wincmd l | 3b | wincmd j | 2b | wincmd l | leftabove vertical split | leftabove split | 1b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_14="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | execute 'windo diffthis' | tabnext | leftabove vertical split | 2b | wincmd l | 1b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_15="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | execute 'windo diffthis' | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" + EXPECTED_CMD_16="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"echo | -tabnew | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | 2b | wincmd l | 3b | wincmd j | 4b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 1b | execute 'windo diffthis' | tabnext | -tabnew | leftabove vertical split | 2b | wincmd l | 3b | execute 'windo diffthis' | tabnext | leftabove vertical split | leftabove split | 1b | wincmd j | leftabove split | 2b | wincmd j | 3b | wincmd l | 4b | execute 'windo diffthis'\" -c \"tabfirst\"" EXPECTED_TARGET_01="MERGED" EXPECTED_TARGET_02="LOCAL" @@ -664,7 +664,9 @@ run_unit_tests () { cat >expect <<-\EOF -f -c - echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | quit | wincmd l | 2b | wincmd j | 3b | tabdo windo diffthis + set hidden diffopt-=hiddenoff diffopt-=closeoff + -c + echo | leftabove split | leftabove vertical split | 1b | wincmd l | leftabove vertical split | quit | wincmd l | 2b | wincmd j | 3b | execute 'windo diffthis' -c tabfirst lo cal