diff options
author | wiz <wiz@pkgsrc.org> | 2009-10-22 22:01:25 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2009-10-22 22:01:25 +0000 |
commit | b4a2493127e0a182c9a57c9d9297011974a71e60 (patch) | |
tree | b1f7a1f49c95272aaeba4ac1933a10e1ea9390d8 | |
parent | b7ed99511c349b4f35a0a67c8ed0264a9b25bd0f (diff) | |
download | pkgsrc-b4a2493127e0a182c9a57c9d9297011974a71e60.tar.gz |
Add patch from Dennis Preiser on tin-dev.
Fixes, among others, |perl-script issues with suspending and
SIGWINCH problems.
Bump PKGREVISION.
-rw-r--r-- | news/tin/Makefile | 3 | ||||
-rw-r--r-- | news/tin/distinfo | 11 | ||||
-rw-r--r-- | news/tin/patches/patch-ad | 12 | ||||
-rw-r--r-- | news/tin/patches/patch-ae | 12 | ||||
-rw-r--r-- | news/tin/patches/patch-af | 13 | ||||
-rw-r--r-- | news/tin/patches/patch-ag | 28 | ||||
-rw-r--r-- | news/tin/patches/patch-ah | 23 | ||||
-rw-r--r-- | news/tin/patches/patch-ai | 15 | ||||
-rw-r--r-- | news/tin/patches/patch-aj | 110 | ||||
-rw-r--r-- | news/tin/patches/patch-ak | 84 | ||||
-rw-r--r-- | news/tin/patches/patch-al | 142 |
11 files changed, 451 insertions, 2 deletions
diff --git a/news/tin/Makefile b/news/tin/Makefile index 56f599a75d8..1568c6f0ba6 100644 --- a/news/tin/Makefile +++ b/news/tin/Makefile @@ -1,7 +1,8 @@ -# $NetBSD: Makefile,v 1.42 2009/08/23 16:49:54 wiz Exp $ +# $NetBSD: Makefile,v 1.43 2009/10/22 22:01:25 wiz Exp $ # DISTNAME= tin-1.9.4 +PKGREVISION= 1 CATEGORIES= news MASTER_SITES= ftp://ftp.tin.org/pub/news/clients/tin/unstable/ \ ftp://ftp.cs.tu-berlin.de/pub/net/news/tin/unstable/ diff --git a/news/tin/distinfo b/news/tin/distinfo index 8048f602eab..dd4a79c8821 100644 --- a/news/tin/distinfo +++ b/news/tin/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.16 2009/07/22 10:53:51 wiz Exp $ +$NetBSD: distinfo,v 1.17 2009/10/22 22:01:25 wiz Exp $ SHA1 (tin-1.9.4.tar.bz2) = e1f5ff2f04923137f43119b144f8a20e733eea23 RMD160 (tin-1.9.4.tar.bz2) = 6a85e47ea06f2e86f2b8f688df137432ecb7c4e9 @@ -6,3 +6,12 @@ Size (tin-1.9.4.tar.bz2) = 1526534 bytes SHA1 (patch-aa) = a3d40ff4e38230bcf8a3814c92ec2a75f85bf44e SHA1 (patch-ab) = 34794d259ae4fb81888184ded9876ab5874d8731 SHA1 (patch-ac) = b5e72a659414833db5f18c2e8f3404dadd03f87f +SHA1 (patch-ad) = 598a9e287a343eff866ac95d89ed7724eb364c0c +SHA1 (patch-ae) = 558deb467d7c3c423d4982952a736a501c906355 +SHA1 (patch-af) = c71cfb049312ac4931bb2d488623aa249d255486 +SHA1 (patch-ag) = 6885a9a8444129288207904084963705fb60aaea +SHA1 (patch-ah) = bac7062665d7351f88081d8582110c079d828228 +SHA1 (patch-ai) = d956f88aff41969e25857af60b04e92c055fb8d2 +SHA1 (patch-aj) = db18012097b3f7fbc1108c1ec530658dc2d3ff1d +SHA1 (patch-ak) = 746c6edfef424e8ccfd93f945e51eea4b93f4f1c +SHA1 (patch-al) = f17d06620d7556f90cd72de443ac27fe91604896 diff --git a/news/tin/patches/patch-ad b/news/tin/patches/patch-ad new file mode 100644 index 00000000000..08b5aa09d7f --- /dev/null +++ b/news/tin/patches/patch-ad @@ -0,0 +1,12 @@ +$NetBSD: patch-ad,v 1.3 2009/10/22 22:01:26 wiz Exp $ + +--- include/proto.h.orig 2009-01-25 19:59:14.000000000 +0100 ++++ include/proto.h +@@ -503,6 +503,7 @@ extern t_bool prompt_option_string(enum + extern t_bool prompt_string(const char *prompt, char *buf, int which_hist); + extern void prompt_continue(void); + extern void prompt_slk_redraw(void); ++extern void prompt_yn_redraw(void); + + /* read.c */ + extern char *tin_fgets(FILE *fp, t_bool header); diff --git a/news/tin/patches/patch-ae b/news/tin/patches/patch-ae new file mode 100644 index 00000000000..56d6b7babb7 --- /dev/null +++ b/news/tin/patches/patch-ae @@ -0,0 +1,12 @@ +$NetBSD: patch-ae,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- include/tcurses.h.orig 2008-12-30 20:27:28.000000000 +0100 ++++ include/tcurses.h +@@ -95,6 +95,7 @@ + # define HpGlitch(func) /*nothing*/ + + extern int cmdReadCh(void); ++extern int cmd_get_arrow_key(int prech); + extern char *screen_contents(int row, int col, char *buffer); + extern void MoveCursor(int row, int col); + extern void my_erase(void); diff --git a/news/tin/patches/patch-af b/news/tin/patches/patch-af new file mode 100644 index 00000000000..20ccc881290 --- /dev/null +++ b/news/tin/patches/patch-af @@ -0,0 +1,13 @@ +$NetBSD: patch-af,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- include/tin.h.orig 2009-02-10 18:10:02.000000000 +0100 ++++ include/tin.h +@@ -98,7 +98,7 @@ + #include <signal.h> + + enum context { cMain, cArt, cConfig, cFilter, cGroup, cHelp, cInfopager, cPage, cSelect, cThread }; +-enum icontext { cNone, cGetline, cPromptSLK }; ++enum icontext { cNone, cGetline, cPromptCONT, cPromptSLK, cPromptYN }; + enum resizer { cNo, cYes, cRedraw }; + enum rc_state { RC_IGNORE, RC_CHECK, RC_UPGRADE, RC_DOWNGRADE, RC_ERROR }; + diff --git a/news/tin/patches/patch-ag b/news/tin/patches/patch-ag new file mode 100644 index 00000000000..173529624c0 --- /dev/null +++ b/news/tin/patches/patch-ag @@ -0,0 +1,28 @@ +$NetBSD: patch-ag,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/curses.c.orig 2008-12-30 20:26:23.000000000 +0100 ++++ src/curses.c +@@ -32,6 +32,7 @@ + #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) && defined(M_UNIX) + # define ReadWch cmdReadWch + #endif /* MULTIBYTE_ABLE && !NO_LOCALE && M_UNIX */ ++#define get_arrow_key cmd_get_arrow_key + + void my_dummy(void) { } /* ANSI C requires non-empty file */ + t_bool have_linescroll = TRUE; /* USE_CURSES always allows line scrolling */ +@@ -920,6 +921,7 @@ word_highlight_string( + tputs(_reset, 1, outchar); + stow_cursor(); + } ++#endif /* USE_CURSES */ + + + /* +@@ -1142,7 +1144,6 @@ get_arrow_key( + return KEYMAP_UNKNOWN; + } + } +-#endif /* USE_CURSES */ + + + /* diff --git a/news/tin/patches/patch-ah b/news/tin/patches/patch-ah new file mode 100644 index 00000000000..bc87284f67f --- /dev/null +++ b/news/tin/patches/patch-ah @@ -0,0 +1,23 @@ +$NetBSD: patch-ah,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/feed.c.orig 2008-12-30 20:26:23.000000000 +0100 ++++ src/feed.c +@@ -607,8 +607,10 @@ feed_articles( + EndWin(); /* Turn off curses/windowing */ + Raw(FALSE); + fflush(stdout); ++ set_signal_catcher(FALSE); + if ((pipe_fp = popen(tinrc.default_pipe_command, "w")) == NULL) { + perror_message(_(txt_command_failed), tinrc.default_pipe_command); ++ set_signal_catcher(TRUE); + Raw(TRUE); + InitWin(); + return; +@@ -846,6 +848,7 @@ got_sig_pipe_while_piping: + got_sig_pipe = FALSE; + fflush(pipe_fp); + (void) pclose(pipe_fp); ++ set_signal_catcher(TRUE); + Raw(TRUE); + InitWin(); + prompt_continue(); diff --git a/news/tin/patches/patch-ai b/news/tin/patches/patch-ai new file mode 100644 index 00000000000..40d78006b69 --- /dev/null +++ b/news/tin/patches/patch-ai @@ -0,0 +1,15 @@ +$NetBSD: patch-ai,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/nntplib.c.orig 2009-02-09 11:03:19.000000000 +0100 ++++ src/nntplib.c +@@ -888,6 +888,10 @@ get_server( + * leave the s_gets() in that case) + */ + while (nntp_rd_fp == NULL || s_gets(string, size, nntp_rd_fp) == NULL) { ++ if (errno == EINTR) { ++ errno = 0; ++ continue; ++ } + if (quitting) /* Don't bother to reconnect */ + tin_done(NNTP_ERROR_EXIT); /* And don't try to disconnect again! */ + diff --git a/news/tin/patches/patch-aj b/news/tin/patches/patch-aj new file mode 100644 index 00000000000..d1df7c1f793 --- /dev/null +++ b/news/tin/patches/patch-aj @@ -0,0 +1,110 @@ +$NetBSD: patch-aj,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/prompt.c.orig 2009-01-23 16:10:39.000000000 +0100 ++++ src/prompt.c +@@ -44,6 +44,7 @@ + + + static char *prompt_slk_message; /* prompt message for prompt_slk_redraw */ ++static char *prompt_yn_message; + + /* + * Local prototypes +@@ -163,7 +164,7 @@ prompt_yn( + { + char *keyprompt; + char keyno[MAXKEYLEN], keyyes[MAXKEYLEN]; +- int keyyes_len = 0, keyno_len = 0, maxlen; ++ int keyyes_len = 0, keyno_len = 0, maxlen, prompt_len; + t_function func; + #if defined (MULTIBYTE_ABLE) && !defined(NO_LOCALE) + wint_t yes, no, prompt_ch, ch; +@@ -194,21 +195,17 @@ prompt_yn( + keyno_len = (int) strlen(keyno); + #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ + maxlen = MAX(keyyes_len, keyno_len); ++ prompt_len = (int) strlen(prompt) + keyyes_len + keyno_len + maxlen + 6; ++ prompt_yn_message = my_malloc(prompt_len + 1); ++ ++ input_context = cPromptYN; + + do { + prompt_ch = (default_answer ? yes : no); + keyprompt = (default_answer ? keyyes : keyno); + +- if (!cmd_line) { +- MoveCursor(cLINES, 0); +- CleartoEOLN(); +- } +- my_printf("%s (%s/%s) %-*s", prompt, keyyes, keyno, maxlen, keyprompt); +- if (!cmd_line) +- cursoron(); +- my_flush(); +- if (!cmd_line) +- MoveCursor(cLINES, (int) strlen(prompt) + keyyes_len + keyno_len + 5); ++ snprintf(prompt_yn_message, prompt_len, "%s (%s/%s) %-*s", prompt, keyyes, keyno, maxlen, keyprompt); ++ prompt_yn_redraw(); + + #if defined (MULTIBYTE_ABLE) && !defined(NO_LOCALE) + if (((ch = ReadWch()) == '\n') || (ch == '\r')) +@@ -248,6 +245,9 @@ prompt_yn( + func = key_to_func(ch, prompt_keys); + } while (func == NOT_ASSIGNED); + ++ input_context = cNone; ++ FreeAndNull(prompt_yn_message); ++ + if (!cmd_line) { + clear_message(); + my_flush(); +@@ -256,6 +256,24 @@ prompt_yn( + } + + ++/* (Re)draws the prompt message for prompt_yn() */ ++void ++prompt_yn_redraw( ++ void) ++{ ++ if (!cmd_line) { ++ MoveCursor(cLINES, 0); ++ CleartoEOLN(); ++ } ++ my_printf("%s", prompt_yn_message); ++ if (!cmd_line) ++ cursoron(); ++ my_flush(); ++ if (!cmd_line) ++ MoveCursor(cLINES, (int) strlen(prompt_yn_message) -1); ++} ++ ++ + /* + * help_text is displayed near the bottom of the screen. + * var is an index into a list containing size elements. +@@ -745,11 +763,14 @@ prompt_continue( + void) + { + int ch; ++ int save_signal_context = signal_context; + + #ifdef USE_CURSES + cmd_line = TRUE; + #endif /* USE_CURSES */ + info_message(_(txt_return_key)); ++ signal_context = cMain; ++ input_context = cPromptCONT; + + switch ((ch = ReadCh())) { + case ESC: +@@ -763,6 +784,10 @@ prompt_continue( + break; + } + ++ input_context = cNone; ++ signal_context = save_signal_context; ++ my_fputc('\n', stdout); ++ + #ifdef USE_CURSES + cmd_line = FALSE; + my_retouch(); diff --git a/news/tin/patches/patch-ak b/news/tin/patches/patch-ak new file mode 100644 index 00000000000..26547f8be6c --- /dev/null +++ b/news/tin/patches/patch-ak @@ -0,0 +1,84 @@ +$NetBSD: patch-ak,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/signal.c.orig 2008-12-30 20:26:25.000000000 +0100 ++++ src/signal.c +@@ -104,6 +104,8 @@ int need_resize = cNo; + */ + int NOTESLINES; + ++static t_bool redraw_after_suspend; ++ + + #ifndef __LCLINT__ /* lclint doesn't like it */ + static const struct { +@@ -268,7 +270,7 @@ handle_resize( + switch (signal_context) { + case cArt: + ClearScreen(); +- show_art_msg(curr_group->name); ++ show_art_msg(CURR_GROUP.name); + break; + + case cConfig: +@@ -303,14 +305,24 @@ handle_resize( + gl_redraw(); + break; + ++ case cPromptCONT: ++ if (redraw_after_suspend) ++ info_message(_(txt_return_key)); ++ break; ++ + case cPromptSLK: + prompt_slk_redraw(); + break; + ++ case cPromptYN: ++ prompt_yn_redraw(); ++ break; ++ + default: + break; + } + my_fflush(stdout); ++ redraw_after_suspend = FALSE; + #endif /* SIGWINCH || SIGTSTP */ + } + +@@ -320,22 +332,34 @@ static void + handle_suspend( + void) + { ++ t_bool save_cmd_line = cmd_line; ++ t_bool save_state = (!batch_mode || !cmd_line); ++ + TRACE(("handle_suspend(%d)", signal_context)); + + set_keypad_off(); + if (!cmd_line) + set_xclick_off(); + +- Raw(FALSE); ++ if (save_state) { ++ EndWin(); ++ Raw(FALSE); ++ } ++ + wait_message(0, _(txt_suspended_message), tin_progname); + + kill(0, SIGSTOP); /* Put ourselves to sleep */ + + RESTORE_HANDLER(SIGTSTP, signal_handler); + +- if (!batch_mode) { ++ if (save_state) { + Raw(TRUE); ++ InitWin(); ++ cmd_line = save_cmd_line; ++ if (!cmd_line) ++ my_retouch(); + need_resize = cRedraw; /* Flag a redraw */ ++ redraw_after_suspend = TRUE; + } + set_keypad_on(); + if (!cmd_line) diff --git a/news/tin/patches/patch-al b/news/tin/patches/patch-al new file mode 100644 index 00000000000..581bdf6103e --- /dev/null +++ b/news/tin/patches/patch-al @@ -0,0 +1,142 @@ +$NetBSD: patch-al,v 1.1 2009/10/22 22:01:26 wiz Exp $ + +--- src/tcurses.c.orig 2008-12-30 20:26:25.000000000 +0100 ++++ src/tcurses.c +@@ -896,72 +896,77 @@ get_arrow_key( + # ifdef NCURSES_MOUSE_VERSION + MEVENT my_event; + # endif /* NCURSES_MOUSE_VERSION */ +- int ch = getch(); ++ int ch; + int code = KEYMAP_UNKNOWN; + +- switch (ch) { +- case KEY_DC: +- code = KEYMAP_DEL; +- break; +- +- case KEY_IC: +- code = KEYMAP_INS; +- break; +- +- case KEY_UP: +- code = KEYMAP_UP; +- break; +- +- case KEY_DOWN: +- code = KEYMAP_DOWN; +- break; +- +- case KEY_LEFT: +- code = KEYMAP_LEFT; +- break; +- +- case KEY_RIGHT: +- code = KEYMAP_RIGHT; +- break; +- +- case KEY_NPAGE: +- code = KEYMAP_PAGE_DOWN; +- break; +- +- case KEY_PPAGE: +- code = KEYMAP_PAGE_UP; +- break; +- +- case KEY_HOME: +- code = KEYMAP_HOME; +- break; +- +- case KEY_END: +- code = KEYMAP_END; +- break; ++ if (cmd_line) ++ code = cmd_get_arrow_key(prech); ++ else { ++ ch = getch(); ++ switch (ch) { ++ case KEY_DC: ++ code = KEYMAP_DEL; ++ break; ++ ++ case KEY_IC: ++ code = KEYMAP_INS; ++ break; ++ ++ case KEY_UP: ++ code = KEYMAP_UP; ++ break; ++ ++ case KEY_DOWN: ++ code = KEYMAP_DOWN; ++ break; ++ ++ case KEY_LEFT: ++ code = KEYMAP_LEFT; ++ break; ++ ++ case KEY_RIGHT: ++ code = KEYMAP_RIGHT; ++ break; ++ ++ case KEY_NPAGE: ++ code = KEYMAP_PAGE_DOWN; ++ break; ++ ++ case KEY_PPAGE: ++ code = KEYMAP_PAGE_UP; ++ break; ++ ++ case KEY_HOME: ++ code = KEYMAP_HOME; ++ break; ++ ++ case KEY_END: ++ code = KEYMAP_END; ++ break; + + # ifdef NCURSES_MOUSE_VERSION +- case KEY_MOUSE: +- if (getmouse(&my_event) != ERR) { +- switch ((int) my_event.bstate) { +- case BUTTON1_CLICKED: +- xmouse = MOUSE_BUTTON_1; +- break; +- +- case BUTTON2_CLICKED: +- xmouse = MOUSE_BUTTON_2; +- break; +- +- case BUTTON3_CLICKED: +- xmouse = MOUSE_BUTTON_3; +- break; ++ case KEY_MOUSE: ++ if (getmouse(&my_event) != ERR) { ++ switch ((int) my_event.bstate) { ++ case BUTTON1_CLICKED: ++ xmouse = MOUSE_BUTTON_1; ++ break; ++ ++ case BUTTON2_CLICKED: ++ xmouse = MOUSE_BUTTON_2; ++ break; ++ ++ case BUTTON3_CLICKED: ++ xmouse = MOUSE_BUTTON_3; ++ break; ++ } ++ xcol = my_event.x; /* column */ ++ xrow = my_event.y; /* row */ ++ code = KEYMAP_MOUSE; + } +- xcol = my_event.x; /* column */ +- xrow = my_event.y; /* row */ +- code = KEYMAP_MOUSE; +- } +- break; ++ break; + # endif /* NCURSES_MOUSE_VERSION */ ++ } + } + return code; + } |