[arch-commits] Commit in zsh/trunk (40285.patch PKGBUILD)
Bartłomiej Piotrowski
bpiotrowski at archlinux.org
Tue Mar 21 09:43:21 UTC 2017
Date: Tuesday, March 21, 2017 @ 09:43:20
Author: bpiotrowski
Revision: 291144
upgpkg: zsh 5.3.1-2
backport patch that fixes history-incremental-pattern-search-backward
Added:
zsh/trunk/40285.patch
Modified:
zsh/trunk/PKGBUILD
-------------+
40285.patch | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PKGBUILD | 9 +++++--
2 files changed, 72 insertions(+), 3 deletions(-)
Added: 40285.patch
===================================================================
--- 40285.patch (rev 0)
+++ 40285.patch 2017-03-21 09:43:20 UTC (rev 291144)
@@ -0,0 +1,66 @@
+From 48cadf48ff9c61ce09e826ad9a58e250e999a262 Mon Sep 17 00:00:00 2001
+From: Peter Stephenson <pws at zsh.org>
+Date: Fri, 6 Jan 2017 17:42:13 +0000
+Subject: [PATCH] 40285: Be more careful with pattern allocation in history
+ isearch.
+
+If there are ZLE hooks to be called, they may use patterns, in
+which case it's not safe to allocate the isearch pattern in the
+static buffer.
+---
+ Src/Zle/zle_hist.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c
+index abd6e17..434735d 100644
+--- a/Src/Zle/zle_hist.c
++++ b/Src/Zle/zle_hist.c
+@@ -1220,13 +1220,12 @@ doisearch(char **args, int dir, int pattern)
+ char *patbuf = ztrdup(sbuf);
+ char *patstring;
+ /*
+- * Use static pattern buffer since we don't need
+- * to maintain it and won't call other pattern functions
+- * meanwhile.
++ * Do not use static pattern buffer (PAT_STATIC) since we call zle hooks,
++ * which might call other pattern functions. Use PAT_ZDUP instead.
+ * Use PAT_NOANCH because we don't need the match
+ * anchored to the end, even if it is at the start.
+ */
+- int patflags = PAT_STATIC|PAT_NOANCH;
++ int patflags = PAT_ZDUP|PAT_NOANCH;
+ if (sbuf[0] == '^') {
+ /*
+ * We'll handle the anchor later when
+@@ -1521,6 +1520,7 @@ doisearch(char **args, int dir, int pattern)
+ if (only_one || !top_spot || old_sbptr != sbptr)
+ break;
+ }
++ freepatprog(patprog);
+ patprog = NULL;
+ nosearch = 1;
+ skip_pos = 0;
+@@ -1632,6 +1632,7 @@ doisearch(char **args, int dir, int pattern)
+ }
+ strcpy(sbuf + sbptr, paste);
+ sbptr += pastelen;
++ freepatprog(patprog);
+ patprog = NULL;
+ free(paste);
+ } else if (cmd == Th(z_acceptsearch)) {
+@@ -1682,6 +1683,7 @@ doisearch(char **args, int dir, int pattern)
+ * always valid at this point.
+ */
+ sbptr += zlecharasstring(LASTFULLCHAR, sbuf + sbptr);
++ freepatprog(patprog);
+ patprog = NULL;
+ }
+ if (feep)
+@@ -1702,6 +1704,7 @@ doisearch(char **args, int dir, int pattern)
+ zsfree(okeymap);
+ if (matchlist)
+ freematchlist(matchlist);
++ freepatprog(patprog);
+ isearch_active = 0;
+ /*
+ * Don't allow unused characters provided as a string to the
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2017-03-21 07:49:31 UTC (rev 291143)
+++ PKGBUILD 2017-03-21 09:43:20 UTC (rev 291144)
@@ -4,22 +4,25 @@
pkgbase=zsh
pkgname=('zsh' 'zsh-doc')
pkgver=5.3.1
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://www.zsh.org/'
license=('custom')
makedepends=('pcre' 'libcap' 'gdbm')
source=("https://www.zsh.org/pub/zsh-${pkgver}"{,-doc}".tar.xz"{,.asc}
- 'zprofile')
+ 'zprofile'
+ '40285.patch')
md5sums=('67d3e5ed99de68340c16aef613b0ecf7'
'SKIP'
'6b908409528e77e00a26b7283f1f425d'
'SKIP'
- '24a9335edf77252a7b5f52e079f7aef7')
+ '24a9335edf77252a7b5f52e079f7aef7'
+ 'fed5d393aa5b6ea51e873fa0605796ac')
validpgpkeys=('F7B2754C7DE2830914661F0EA71D9A9D4BDB27B3')
prepare() {
cd "${srcdir}/${pkgbase}-${pkgver}"
+ patch -p1 -i "${srcdir}/40285.patch"
# Set correct keymap path
sed -i 's#/usr/share/keymaps#/usr/share/kbd/keymaps#g' Completion/Unix/Command/_loadkeys
More information about the arch-commits
mailing list