summaryrefslogtreecommitdiff
path: root/manualPorts/alpine
diff options
context:
space:
mode:
Diffstat (limited to 'manualPorts/alpine')
-rw-r--r--manualPorts/alpine/.md5sum1
-rw-r--r--manualPorts/alpine/.signature5
-rw-r--r--manualPorts/alpine/Pkgfile2
-rw-r--r--manualPorts/alpine/backwards-search.patch93
4 files changed, 99 insertions, 2 deletions
diff --git a/manualPorts/alpine/.md5sum b/manualPorts/alpine/.md5sum
index 0276689..ac26ba5 100644
--- a/manualPorts/alpine/.md5sum
+++ b/manualPorts/alpine/.md5sum
@@ -1,2 +1,3 @@
db6023ebd9693c2e0e3ac19a26fc231a 0707eb6.tar.gz
+4d3befe19d6d66b3ea1024a70f4ab8bc backwards-search.patch
09f73ce6a93a93e475253d3c90ba0315 topal-patch.patch
diff --git a/manualPorts/alpine/.signature b/manualPorts/alpine/.signature
index a16ee29..10d3cdf 100644
--- a/manualPorts/alpine/.signature
+++ b/manualPorts/alpine/.signature
@@ -1,6 +1,7 @@
untrusted comment: verify with /etc/ports/deepthought.pub
-RWQxCptPusLGGj0/fwjYV5ti+IyZ3Xcby6MHQTYM/Ze7xwUslh8SsVFCO8hEP9PE/6UWFwjWdO/jAyrxHSeNu8csxub7drHeIw8=
-SHA256 (Pkgfile) = 723a206807c492452019476baf898504811c3a35500859d8b19d4c0c4448492b
+RWQxCptPusLGGiGRA40WL5slDIk+ua/y/fy7AhseCm/qqJa0nsjkm6NVbKWjjBU8sRbX8b1BCjvehdXGBGqw53y3AtCj2OdF7wY=
+SHA256 (Pkgfile) = c6bb2332f039282f0b21f17c3cf49ad579566218cd4bcc9653d9bd84802a3355
SHA256 (.footprint) = dd67d2fc4470f569897d32b8ecd5d740c59592de8ead67668be423dd89456871
SHA256 (0707eb6.tar.gz) = b221769f2afa5be3db6fe49aa99c7b804e6ce8575f8be23bade448cf5d6ac0c4
+SHA256 (backwards-search.patch) = 2de9c773a8d1754eead015c2e3952f8a803646b5859ad3440bfeece5afd7cfa9
SHA256 (topal-patch.patch) = 8ee8e1dfa18e3089cc9d8db0ed06c49898c089ff8ba5703cce608102fb9b0b9b
diff --git a/manualPorts/alpine/Pkgfile b/manualPorts/alpine/Pkgfile
index a9e1d34..42441a2 100644
--- a/manualPorts/alpine/Pkgfile
+++ b/manualPorts/alpine/Pkgfile
@@ -8,11 +8,13 @@ version=2.21.999.r73.0707eb6
_commit=${version##*.}
release=1
source=("http://repo.or.cz/alpine.git/snapshot/${_commit}.tar.gz"
+backwards-search.patch
topal-patch.patch)
build() {
cd "alpine-${_commit}"
+ patch -p1 -i "${SRC}/backwards-search.patch"
patch -p1 -i "${SRC}/topal-patch.patch"
./configure \
diff --git a/manualPorts/alpine/backwards-search.patch b/manualPorts/alpine/backwards-search.patch
new file mode 100644
index 0000000..8926609
--- /dev/null
+++ b/manualPorts/alpine/backwards-search.patch
@@ -0,0 +1,93 @@
+diff --git a/alpine/mailindx.c b/alpine/mailindx.c
+index 18583c3..f1dd874 100644
+--- a/alpine/mailindx.c
++++ b/alpine/mailindx.c
+@@ -2954,19 +2954,21 @@ away.
+ void
+ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *msgmap)
+ {
+- int rc, select_all = 0, flags, prefetch, we_turned_on = 0;
++ int rc, select_all = 0, flags, prefetch, searchbound, otherbound, offset = 0, we_turned_on = 0;
+ long i, sorted_msg, selected = 0L;
+ char prompt[MAX_SEARCH+50], new_string[MAX_SEARCH+1];
+ char buf[MAX_SCREEN_COLS+1], *p;
+ HelpType help;
+ char search_string[MAX_SEARCH+1];
+ ICE_S *ice, *ic;
++ static int direction = 1;
+ static HISTORY_S *history = NULL;
+ static ESCKEY_S header_search_key[] = { {0, 0, NULL, NULL },
+ {ctrl('Y'), 10, "^Y", N_("First Msg")},
+ {ctrl('V'), 11, "^V", N_("Last Msg")},
+ {KEY_UP, 30, "", ""},
+ {KEY_DOWN, 31, "", ""},
++ {ctrl('W'), 32, "^W", N_("Direction")},
+ {-1, 0, NULL, NULL} };
+ #define KU_IS (3) /* index of KEY_UP */
+ #define PREFETCH_THIS_MANY_LINES (50)
+@@ -2995,7 +2997,8 @@ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *
+ new_string[0] = '\0';
+
+ while(1) {
+- snprintf(prompt, sizeof(prompt), _("Word to search for [%s] : "), search_string);
++ snprintf(prompt, sizeof(prompt), _("Word to search %sfor [%s] : "),
++ direction == -1 ? _("(backwards) ") : "", search_string);
+
+ if(F_ON(F_ENABLE_AGG_OPS, ps_global)){
+ header_search_key[0].ch = ctrl('X');
+@@ -3092,6 +3095,10 @@ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *
+
+ continue;
+ }
++ else if(rc == 32){
++ direction *= -1;
++ continue;
++ }
+
+ if(rc != 4){ /* 4 is redraw */
+ save_hist(history, new_string, 0, NULL);
+@@ -3115,9 +3122,18 @@ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *
+ we_turned_on = intr_handling_on();
+
+ prefetch = 0;
+- for(i = sorted_msg + ((select_all)?0:1);
+- i <= mn_get_total(msgmap) && !ps_global->intr_pending;
+- i++){
++ if (direction == -1) {
++ searchbound = -1;
++ otherbound = mn_get_total(msgmap);
++ offset = 2;
++ } else {
++ searchbound = mn_get_total(msgmap);
++ otherbound = 1;
++ }
++
++ for(i = sorted_msg + ((select_all)?0:1) - offset;
++ i * direction <= searchbound && !ps_global->intr_pending;
++ i += direction){
+ if(msgline_hidden(stream, msgmap, i, 0))
+ continue;
+
+@@ -3139,8 +3155,11 @@ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *
+ }
+
+ prefetch = 0;
+- if(i > mn_get_total(msgmap)){
+- for(i = 1; i < sorted_msg && !ps_global->intr_pending; i++){
++ if(i * direction > searchbound){
++ for(i = otherbound;
++ i * direction < sorted_msg * direction && !ps_global->intr_pending;
++ i += direction ){
++
+ if(msgline_hidden(stream, msgmap, i, 0))
+ continue;
+
+@@ -3194,7 +3213,7 @@ index_search(struct pine *state, MAILSTREAM *stream, int command_line, MSGNO_S *
+ }
+ else if(selected){
+ q_status_message1(SM_ORDER, 0, 3, _("Word found%s"),
+- (i < sorted_msg) ? _(". Search wrapped to beginning") :
++ (i * direction < sorted_msg * direction) ? _(". Search wrapped to beginning") :
+ (i == sorted_msg) ? _(". Current line contains only match") : "");
+ mn_set_cur(msgmap, i);
+ }