updating resize patch to operate outside of signal handler and syncing
version numbers on distributions
This commit is contained in:
parent
aefef3ab2d
commit
451bf4706b
@ -1,5 +1,41 @@
|
|||||||
|
--- cscope-15.5/src/command.c.orig 2004-11-26 21:21:46.523695928 -0500
|
||||||
|
+++ cscope-15.5/src/command.c 2004-11-26 21:30:35.322306320 -0500
|
||||||
|
@@ -80,6 +80,7 @@
|
||||||
|
FILE *file;
|
||||||
|
struct cmd *curritem, *item; /* command history */
|
||||||
|
char *s;
|
||||||
|
+ int lines, cols;
|
||||||
|
|
||||||
|
switch (commandc) {
|
||||||
|
|
||||||
|
@@ -405,6 +406,25 @@
|
||||||
|
entercurses();
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case KEY_RESIZE:
|
||||||
|
+ exitcurses();
|
||||||
|
+ initscr();
|
||||||
|
+ entercurses();
|
||||||
|
+#if TERMINFO
|
||||||
|
+ (void) keypad(stdscr, TRUE); /* enable the keypad */
|
||||||
|
+#ifdef HAVE_FIXKEYPAD
|
||||||
|
+ fixkeypad(); /* fix for getch() intermittently returning garbage */
|
||||||
|
+#endif
|
||||||
|
+#endif
|
||||||
|
+#if UNIXPC
|
||||||
|
+ standend(); /* turn off reverse video */
|
||||||
|
+#endif
|
||||||
|
+ dispinit(); /* initialize display parameters */
|
||||||
|
+ setfield(); /* set the initial cursor position */
|
||||||
|
+ postmsg(""); /* clear any build progress message */
|
||||||
|
+ display(); /* display the version number and input fields */
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case ctrl('L'): /* redraw screen */
|
||||||
|
#if TERMINFO
|
||||||
|
case KEY_CLEAR:
|
||||||
--- cscope-15.5/src/input.c.orig 2001-07-18 09:49:01.000000000 -0400
|
--- cscope-15.5/src/input.c.orig 2001-07-18 09:49:01.000000000 -0400
|
||||||
+++ cscope-15.5/src/input.c 2004-11-22 14:43:09.000000000 -0500
|
+++ cscope-15.5/src/input.c 2004-11-26 21:18:09.526684488 -0500
|
||||||
@@ -43,6 +43,7 @@
|
@@ -43,6 +43,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include <setjmp.h> /* jmp_buf */
|
#include <setjmp.h> /* jmp_buf */
|
||||||
@ -26,26 +62,8 @@
|
|||||||
}
|
}
|
||||||
else { /* longjmp to here from signal handler */
|
else { /* longjmp to here from signal handler */
|
||||||
c = KEY_BREAK;
|
c = KEY_BREAK;
|
||||||
--- cscope-15.5/src/display.c.orig 2004-11-22 14:42:32.000000000 -0500
|
|
||||||
+++ cscope-15.5/src/display.c 2004-11-22 14:43:05.000000000 -0500
|
|
||||||
@@ -129,6 +129,15 @@
|
|
||||||
if (mouse == NO && mdisprefs > strlen(dispchars))
|
|
||||||
mdisprefs = strlen(dispchars);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ *this function can be called from a signal handler
|
|
||||||
+ *as well as the main routine, meaning we might need
|
|
||||||
+ *to free memory that we alloc later in here to avoid
|
|
||||||
+ *a leak
|
|
||||||
+ */
|
|
||||||
+ if(displine)
|
|
||||||
+ free(displine);
|
|
||||||
+
|
|
||||||
/* allocate the displayed line array */
|
|
||||||
displine = mymalloc(mdisprefs * sizeof(int));
|
|
||||||
}
|
|
||||||
--- cscope-15.5/src/main.c.orig 2003-08-14 10:36:18.000000000 -0400
|
--- cscope-15.5/src/main.c.orig 2003-08-14 10:36:18.000000000 -0400
|
||||||
+++ cscope-15.5/src/main.c 2004-11-22 14:45:21.000000000 -0500
|
+++ cscope-15.5/src/main.c 2004-11-26 21:27:12.506139064 -0500
|
||||||
@@ -50,6 +50,7 @@
|
@@ -50,6 +50,7 @@
|
||||||
#endif
|
#endif
|
||||||
#include <sys/types.h> /* needed by stat.h */
|
#include <sys/types.h> /* needed by stat.h */
|
||||||
@ -54,42 +72,19 @@
|
|||||||
|
|
||||||
/* defaults for unset environment variables */
|
/* defaults for unset environment variables */
|
||||||
#define EDITOR "vi"
|
#define EDITOR "vi"
|
||||||
@@ -120,6 +121,34 @@
|
@@ -120,6 +121,11 @@
|
||||||
void fixkeypad();
|
void fixkeypad();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
+/*
|
|
||||||
+ *this handler gets called every time the terminal size changes
|
|
||||||
+ *basically all it does is tear down ncurses, and re-initalizes
|
|
||||||
+ *it, allowing it to repaint the screen at the new dimensions
|
|
||||||
+ *There may well be a more elegant way to do this, but this is
|
|
||||||
+ *pretty straightforward, and isn't very intrusive.
|
|
||||||
+ */
|
|
||||||
+void sigwinch_handler(int sig, siginfo_t *info, void *unused)
|
+void sigwinch_handler(int sig, siginfo_t *info, void *unused)
|
||||||
+{
|
+{
|
||||||
+ exitcurses();
|
+ ungetch(KEY_RESIZE);
|
||||||
+ initscr();
|
|
||||||
+ entercurses();
|
|
||||||
+#if TERMINFO
|
|
||||||
+ (void) keypad(stdscr, TRUE); /* enable the keypad */
|
|
||||||
+#ifdef HAVE_FIXKEYPAD
|
|
||||||
+ fixkeypad(); /* fix for getch() intermittently returning garbage */
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
+#if UNIXPC
|
|
||||||
+ standend(); /* turn off reverse video */
|
|
||||||
+#endif
|
|
||||||
+ postmsg("");
|
|
||||||
+ dispinit(); /* initialize display parameters */
|
|
||||||
+ setfield(); /* set the initial cursor position */
|
|
||||||
+ postmsg(""); /* clear any build progress message */
|
|
||||||
+ display(); /* display the version number and input fields */
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -131,12 +160,19 @@
|
@@ -131,12 +137,20 @@
|
||||||
int c, i;
|
int c, i;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
struct stat stat_buf;
|
struct stat stat_buf;
|
||||||
@ -103,6 +98,7 @@
|
|||||||
+ winch_action.sa_sigaction = sigwinch_handler;
|
+ winch_action.sa_sigaction = sigwinch_handler;
|
||||||
+ sigemptyset(&winch_action.sa_mask);
|
+ sigemptyset(&winch_action.sa_mask);
|
||||||
+ winch_action.sa_flags = SA_SIGINFO;
|
+ winch_action.sa_flags = SA_SIGINFO;
|
||||||
|
+ winch_action.sa_restorer = NULL;
|
||||||
+
|
+
|
||||||
+ sigaction(SIGWINCH,&winch_action,NULL);
|
+ sigaction(SIGWINCH,&winch_action,NULL);
|
||||||
+
|
+
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Summary: C source code tree search and browse tool
|
Summary: C source code tree search and browse tool
|
||||||
Name: cscope
|
Name: cscope
|
||||||
Version: 15.5
|
Version: 15.5
|
||||||
Release: 6
|
Release: 7
|
||||||
Source0: http://unc.dl.sourceforge.net/sourceforge/cscope/cscope-15.5.tar.gz
|
Source0: http://unc.dl.sourceforge.net/sourceforge/cscope/cscope-15.5.tar.gz
|
||||||
URL: http://cscope.sourceforge.net
|
URL: http://cscope.sourceforge.net
|
||||||
License: BSD
|
License: BSD
|
||||||
@ -83,6 +83,10 @@ rm -f %{xemacs_lisp_path}/xcscope.el
|
|||||||
rm -f %{emacs_lisp_path}/xcscope.el
|
rm -f %{emacs_lisp_path}/xcscope.el
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Nov 29 2004 Neil Horman <nhorman@redhat.com>
|
||||||
|
- updated cscope resize patch to do less work in
|
||||||
|
signal handler and synced version nr. on dist.
|
||||||
|
|
||||||
* Mon Nov 22 2004 Neil Horman <nhorman@redhat.com>
|
* Mon Nov 22 2004 Neil Horman <nhorman@redhat.com>
|
||||||
- added cscope-1.5.-resize patch to allow terminal
|
- added cscope-1.5.-resize patch to allow terminal
|
||||||
resizing while cscope is running
|
resizing while cscope is running
|
||||||
|
Loading…
Reference in New Issue
Block a user