From c8972e913e09433e1baf15bdf17bebdfec92e116 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 16 Feb 2017 11:38:57 +0000 Subject: main/sed: upgrade to 4.4 --- main/sed/APKBUILD | 16 +-- ...x-reallocation-bug-when-matching-newlines.patch | 160 --------------------- 2 files changed, 5 insertions(+), 171 deletions(-) delete mode 100644 main/sed/fix-reallocation-bug-when-matching-newlines.patch diff --git a/main/sed/APKBUILD b/main/sed/APKBUILD index 45187e0d31..6f185784b7 100644 --- a/main/sed/APKBUILD +++ b/main/sed/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=sed -pkgver=4.3 -pkgrel=1 +pkgver=4.4 +pkgrel=0 subpackages="$pkgname-doc" pkgdesc="GNU stream editor" url="http://www.gnu.org/software/sed" @@ -9,12 +9,11 @@ arch="all" license="GPL" makedepends="perl" install="$pkgname.post-deinstall" -source="ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.xz - fix-reallocation-bug-when-matching-newlines.patch" +source="http://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.xz" builddir="$srcdir/$pkgname-$pkgver" -build() { +build() { cd "$builddir" ./configure \ --build=$CBUILD \ @@ -39,9 +38,4 @@ package() { return 0 } -md5sums="1957fe58dffa4a4106c1f1d7cc8dee18 sed-4.3.tar.xz -281083d69fbdff0fc9f22e3056bb6eda fix-reallocation-bug-when-matching-newlines.patch" -sha256sums="47c20d8841ce9e7b6ef8037768aac44bc2937fff1c265b291c824004d56bd0aa sed-4.3.tar.xz -e8287c052fb36c900cd0bffbe7447563165ed2d4972b02a036adbc6db73e70c3 fix-reallocation-bug-when-matching-newlines.patch" -sha512sums="4d76a099cf7115763b79b45be5c96338750baa47e34c36075f714e022614397aa9240099d6d009e69aa4d06b6cfc14dcc0f8313442a1465f448b36fb6874a26d sed-4.3.tar.xz -82cef9dacb65997877908c4f20f16d79a5dddd0c6965434a62bc0738be58466a5d278f8053f1027cd976d0395825cbe44dbf398153d950d2a43a3e2e66e46fea fix-reallocation-bug-when-matching-newlines.patch" +sha512sums="4e1b0a7403913f1e25047eb2292a0a9b3488b15b4463ce2803e05eaecbc2da19f477a18e6a70c992461c38ced90774415091aa2d8ce85cb74e391610d9eedb70 sed-4.4.tar.xz" diff --git a/main/sed/fix-reallocation-bug-when-matching-newlines.patch b/main/sed/fix-reallocation-bug-when-matching-newlines.patch deleted file mode 100644 index fa8df0e830..0000000000 --- a/main/sed/fix-reallocation-bug-when-matching-newlines.patch +++ /dev/null @@ -1,160 +0,0 @@ ---- sed-4.3.orig/lib/dfa.c -+++ sed-4.3/lib/dfa.c -@@ -2581,6 +2581,41 @@ - free (merged.elems); - } - -+/* Make sure D's state arrays are large enough to hold NEW_STATE. */ -+static void -+realloc_trans_if_necessary (struct dfa *d, state_num new_state) -+{ -+ state_num oldalloc = d->tralloc; -+ if (oldalloc <= new_state) -+ { -+ state_num **realtrans = d->trans ? d->trans - 2 : NULL; -+ ptrdiff_t newalloc, newalloc1; -+ newalloc1 = realtrans ? d->tralloc + 2 : 0; -+ realtrans = xpalloc (realtrans, &newalloc1, new_state - oldalloc + 1, -+ -1, sizeof *realtrans); -+ realtrans[0] = realtrans[1] = NULL; -+ d->trans = realtrans + 2; -+ d->tralloc = newalloc = newalloc1 - 2; -+ d->fails = xnrealloc (d->fails, newalloc, sizeof *d->fails); -+ d->success = xnrealloc (d->success, newalloc, sizeof *d->success); -+ d->newlines = xnrealloc (d->newlines, newalloc, sizeof *d->newlines); -+ if (d->localeinfo.multibyte) -+ { -+ realtrans = d->mb_trans ? d->mb_trans - 2 : NULL; -+ realtrans = xnrealloc (realtrans, newalloc1, sizeof *realtrans); -+ if (oldalloc == 0) -+ realtrans[0] = realtrans[1] = NULL; -+ d->mb_trans = realtrans + 2; -+ } -+ for (; oldalloc < newalloc; oldalloc++) -+ { -+ d->trans[oldalloc] = NULL; -+ d->fails[oldalloc] = NULL; -+ if (d->localeinfo.multibyte) -+ d->mb_trans[oldalloc] = NULL; -+ } -+ } -+} - - /* Return the transition out of state s of d for the input character uc, - updating the slots in trans accordingly. -@@ -2622,6 +2657,7 @@ - state_num state; /* New state. */ - state_num state_newline; /* New state on a newline transition. */ - state_num state_letter; /* New state on a letter transition. */ -+ state_num maxstate = -1; - size_t i, j, k; - - #ifdef DEBUG -@@ -2815,18 +2851,22 @@ - /* Set the transitions for each character in the label. */ - for (i = 0; i < NOTCHAR; i++) - if (tstbit (i, label)) -- switch (d->syntax.sbit[i]) -- { -- case CTX_NEWLINE: -- trans[i] = state_newline; -- break; -- case CTX_LETTER: -- trans[i] = state_letter; -- break; -- default: -- trans[i] = state; -- break; -- } -+ { -+ switch (d->syntax.sbit[i]) -+ { -+ case CTX_NEWLINE: -+ trans[i] = state_newline; -+ break; -+ case CTX_LETTER: -+ trans[i] = state_letter; -+ break; -+ default: -+ trans[i] = state; -+ break; -+ } -+ if (maxstate < trans[i]) -+ maxstate = trans[i]; -+ } - - #ifdef DEBUG - fprintf (stderr, "trans table %td", s); -@@ -2843,6 +2883,9 @@ - free (follows.elems); - free (tmp.elems); - -+ /* Reallocate now, to allocate any newline transition properly. */ -+ realloc_trans_if_necessary (d, maxstate); -+ - /* Keep the newline transition in a special place so we can use it as - a sentinel. */ - if (tstbit (d->syntax.eolbyte, label)) -@@ -2854,42 +2897,6 @@ - return trans[uc]; - } - --/* Make sure D's state arrays are large enough to hold NEW_STATE. */ --static void --realloc_trans_if_necessary (struct dfa *d, state_num new_state) --{ -- state_num oldalloc = d->tralloc; -- if (oldalloc <= new_state) -- { -- state_num **realtrans = d->trans ? d->trans - 2 : NULL; -- ptrdiff_t newalloc, newalloc1; -- newalloc1 = realtrans ? d->tralloc + 2 : 0; -- realtrans = xpalloc (realtrans, &newalloc1, new_state - oldalloc + 1, -- -1, sizeof *realtrans); -- realtrans[0] = realtrans[1] = NULL; -- d->trans = realtrans + 2; -- d->tralloc = newalloc = newalloc1 - 2; -- d->fails = xnrealloc (d->fails, newalloc, sizeof *d->fails); -- d->success = xnrealloc (d->success, newalloc, sizeof *d->success); -- d->newlines = xnrealloc (d->newlines, newalloc, sizeof *d->newlines); -- if (d->localeinfo.multibyte) -- { -- realtrans = d->mb_trans ? d->mb_trans - 2 : NULL; -- realtrans = xnrealloc (realtrans, newalloc1, sizeof *realtrans); -- if (oldalloc == 0) -- realtrans[0] = realtrans[1] = NULL; -- d->mb_trans = realtrans + 2; -- } -- for (; oldalloc < newalloc; oldalloc++) -- { -- d->trans[oldalloc] = NULL; -- d->fails[oldalloc] = NULL; -- if (d->localeinfo.multibyte) -- d->mb_trans[oldalloc] = NULL; -- } -- } --} -- - /* Calculate the transition table for a new state derived from state s - for a compiled dfa d after input character uc, and return the new - state number. */ -@@ -2936,18 +2943,7 @@ - if (ACCEPTS_IN_CONTEXT (d->states[s].context, CTX_NONE, s, *d)) - d->success[s] |= CTX_NONE; - -- s = dfastate (s, d, uc, trans); -- -- /* Now go through the new transition table, and make sure that the trans -- and fail arrays are allocated large enough to hold a pointer for the -- largest state mentioned in the table. */ -- state_num maxstate = -1; -- for (int i = 0; i < NOTCHAR; i++) -- if (maxstate < trans[i]) -- maxstate = trans[i]; -- realloc_trans_if_necessary (d, maxstate); -- -- return s; -+ return dfastate (s, d, uc, trans); - } - - /* Multibyte character handling sub-routines for dfaexec. */ -- cgit v1.2.3