Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from <p.stephenson@samsung.com>, uid 7791) with qmail-scanner-2.11 
 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1.  
 Clear:RC:0(210.118.77.12):SA:0(-0.5/5.0):. 
 Processed in 0.117127 secs); 12 Aug 2016 10:51:57 -0000
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au
X-Spam-Level: 
X-Spam-Status: No, score=-0.5 required=5.0 tests=RP_MATCHES_RCVD
	autolearn=unavailable autolearn_force=no version=3.4.1
X-Envelope-From: p.stephenson@samsung.com
X-Qmail-Scanner-Mime-Attachments: |
X-Qmail-Scanner-Zip-Files: |
Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts)
X-AuditID: cbfec7f5-f792a6d000001302-fe-57ada7e9fa2f
Date: Fri, 12 Aug 2016 11:41:42 +0100
From: Peter Stephenson <p.stephenson@samsung.com>
To: zsh-workers@zsh.org
Subject: Re: [PATCH] enable number argument for transpose-words
Message-id: <20160812114142.79587341@pwslap01u.europe.root.pri>
In-reply-to: <1516997.6itNjt3W91@kdudka-nb>
References: <20160801103212.GA24067@localhost.localdomain>
 <20160812025402.GA5319@localhost.localdomain>
 <20160812102918.5ad0f649@pwslap01u.europe.root.pri>
 <1516997.6itNjt3W91@kdudka-nb>
Organization: Samsung Cambridge Solution Centre
X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu)
MIME-version: 1.0
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7bit
X-Brightmail-Tracker:
 H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsVy+t/xy7ovl68NNzi3gtfiYPNDJgdGj1UH
	PzAFMEZx2aSk5mSWpRbp2yVwZVw83sJW8JKl4sKp02wNjNeZuxg5OSQETCSmHprACmGLSVy4
	t54NxBYSWMooMf1jGYQ9g0niziWHLkYuIPsco8TC7e+YIZyzjBKdSw4zgVSxCKhKfL/XBmaz
	CRhKTN00mxHEFhEQlzi79jwLiC0sYC+x9fEbsG28QPaXJ6vAruAU0Jb4tfg/1NCDjBIT2qeB
	DeIX0Je4+vcTE8R59hIzr5xhhGgWlPgx+R7YUGYBLYnN25pYIWx5ic1r3jJDnK0ucePubvYJ
	jMKzkLTMQtIyC0nLAkbmVYyiqaXJBcVJ6blGesWJucWleel6yfm5mxgh4fx1B+PSY1aHGAU4
	GJV4eDlWrAkXYk0sK67MPcQowcGsJMLrv3RtuBBvSmJlVWpRfnxRaU5q8SFGaQ4WJXHembve
	hwgJpCeWpGanphakFsFkmTg4pRoY1/Y63Z0p1lPJ3L+xlClw04wz5ys/L/51RUnJrWlXuLGo
	8FOtWdwpCr+2ZvjO5DWtkC98v/N6jBqrhK9ryNH3FyTrnCInT5xZfnf13s++Hl8fedfOcHO+
	aCtwteqD9McE34mLJx1ZxrvKvZDp2wPe2qDCpdsce2Ir2tc+fbfr2Ofp/wvtTeexKLEUZyQa
	ajEXFScCAPSccEZjAgAA
X-Seq: zsh-workers 39031

On Fri, 12 Aug 2016 12:25:55 +0200
Kamil Dudka <kdudka@redhat.com> wrote:
> Is the body of 'while (n--)' loop guaranteed to be executed at least once?
> 
> Otherwise p1 and p2 may be used uninitialized by code following after the
> loop.

It's probably reasonable to do the following...

pws

diff --git a/Src/Zle/zle_word.c b/Src/Zle/zle_word.c
index 2a15171..e4a878e 100644
--- a/Src/Zle/zle_word.c
+++ b/Src/Zle/zle_word.c
@@ -722,7 +722,7 @@ transposewords(UNUSED(char **args))
     if (!p3)
 	return 1;
 
-    pt = p3;
+    p1 = p2 = pt = p3;
 
     while (n--) {
 	for (p2 = pt; p2; ) {

