Fix for resizing the window in modes other than normal edit mode Changes to handle_sigwinch(), main(). Fixes bug #52 (Rocco)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@509 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
e434b45148
commit
08020889d3
15
BUGS
15
BUGS
|
@ -1,3 +1,6 @@
|
||||||
|
- Marked cutting sometimes leaves a newline in the file unintelligently,
|
||||||
|
such as when all of a line is selected but the mark doesn't proceed to
|
||||||
|
the new line. (8) [FIXED/IRRELEVANT]
|
||||||
- Certains are not lined up properly when there are tabs in them at
|
- Certains are not lined up properly when there are tabs in them at
|
||||||
certain col values. (9) [FIXED]
|
certain col values. (9) [FIXED]
|
||||||
- edit_refresh() and update_line() do not handle selecting text when the
|
- edit_refresh() and update_line() do not handle selecting text when the
|
||||||
|
@ -49,6 +52,7 @@
|
||||||
[FIXED]
|
[FIXED]
|
||||||
- Using nano -t, user can not exit until a filename is given via ^O. (30)
|
- Using nano -t, user can not exit until a filename is given via ^O. (30)
|
||||||
[FIXED]
|
[FIXED]
|
||||||
|
- totsize problems still abound in do_justify (33) [FIXED]
|
||||||
- Using -k cut text is not pasted properly. (34) [FIXED].
|
- Using -k cut text is not pasted properly. (34) [FIXED].
|
||||||
- Using -k pasted text is not updated properly if it goes beyond editbot. (35)
|
- Using -k pasted text is not updated properly if it goes beyond editbot. (35)
|
||||||
[FIXED]
|
[FIXED]
|
||||||
|
@ -85,17 +89,12 @@
|
||||||
current line to the top of the screen, which it shouldn't do. (50)
|
current line to the top of the screen, which it shouldn't do. (50)
|
||||||
[FIXED]
|
[FIXED]
|
||||||
- with PDCURSES, running meta-X turns off the keypad. (51) [FIXED]
|
- with PDCURSES, running meta-X turns off the keypad. (51) [FIXED]
|
||||||
|
- Resizing the window completely screws up the display if in any other
|
||||||
|
mode than normal editing (help screen, search and replace, file
|
||||||
|
browser..) (52) [FIXED]
|
||||||
- Alt speller argument (-s, --speller) does not take a string argument of
|
- Alt speller argument (-s, --speller) does not take a string argument of
|
||||||
more than one word. (53) [FIXED].
|
more than one word. (53) [FIXED].
|
||||||
- totsize problems still abound in do_justify (33) [FIXED]
|
|
||||||
- Marked cutting sometimes leaves a newline in the file unintelligently,
|
|
||||||
such as when all of a line is selected but the mark doesn't proceed to
|
|
||||||
the new line. (8) [FIXED/IRRELEVANT]
|
|
||||||
|
|
||||||
** Open BUGS **
|
** Open BUGS **
|
||||||
|
|
||||||
- Resizing the window completely screws up the display if in any other
|
|
||||||
mode than normal editing (help screen, search and replace, file
|
|
||||||
browser..) (52)
|
|
||||||
|
|
||||||
$Id$
|
$Id$
|
||||||
|
|
|
@ -5,6 +5,8 @@ General
|
||||||
easily replaced with COLS / 2 (oops, not current_x & y (Rob)).
|
easily replaced with COLS / 2 (oops, not current_x & y (Rob)).
|
||||||
- Deleted free_node, duplicate of delete_node, and changed all
|
- Deleted free_node, duplicate of delete_node, and changed all
|
||||||
free_node calls to delete_node.
|
free_node calls to delete_node.
|
||||||
|
- Fix for resizing the window in modes other than normal edit mode
|
||||||
|
Changes to handle_sigwinch(), main(). Fixes bug #52 (Rocco).
|
||||||
- files.c:
|
- files.c:
|
||||||
write_file()
|
write_file()
|
||||||
- Don't free() realname on error, if it needs to be free()d later
|
- Don't free() realname on error, if it needs to be free()d later
|
||||||
|
|
20
nano.c
20
nano.c
|
@ -23,6 +23,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
#include <setjmp.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
@ -78,6 +79,8 @@ char *last_search = NULL; /* Last string we searched for */
|
||||||
char *last_replace = NULL; /* Last replacement string */
|
char *last_replace = NULL; /* Last replacement string */
|
||||||
int search_last_line; /* Is this the last search line? */
|
int search_last_line; /* Is this the last search line? */
|
||||||
|
|
||||||
|
static sigjmp_buf jmpbuf; /* Used to return to mainloop after SIGWINCH */
|
||||||
|
|
||||||
/* What we do when we're all set to exit */
|
/* What we do when we're all set to exit */
|
||||||
RETSIGTYPE finish(int sigage)
|
RETSIGTYPE finish(int sigage)
|
||||||
{
|
{
|
||||||
|
@ -1610,7 +1613,12 @@ void handle_sigwinch(int s)
|
||||||
titlebar(NULL);
|
titlebar(NULL);
|
||||||
edit_refresh();
|
edit_refresh();
|
||||||
display_main_list();
|
display_main_list();
|
||||||
|
blank_statusbar();
|
||||||
total_refresh();
|
total_refresh();
|
||||||
|
|
||||||
|
/* Jump back to mainloop */
|
||||||
|
siglongjmp(jmpbuf, 1);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2089,8 +2097,8 @@ int main(int argc, char *argv[])
|
||||||
int optchr;
|
int optchr;
|
||||||
int kbinput; /* Input from keyboard */
|
int kbinput; /* Input from keyboard */
|
||||||
long startline = 0; /* Line to try and start at */
|
long startline = 0; /* Line to try and start at */
|
||||||
int keyhandled = 0; /* Have we handled the keystroke yet? */
|
int keyhandled; /* Have we handled the keystroke yet? */
|
||||||
int i, modify_control_seq = 0;
|
int i, modify_control_seq;
|
||||||
char *argv0;
|
char *argv0;
|
||||||
#ifdef _POSIX_VDISABLE
|
#ifdef _POSIX_VDISABLE
|
||||||
struct termios term;
|
struct termios term;
|
||||||
|
@ -2304,6 +2312,14 @@ int main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
edit_update(fileage, CENTER);
|
edit_update(fileage, CENTER);
|
||||||
|
|
||||||
|
/* return here after a sigwinch */
|
||||||
|
sigsetjmp(jmpbuf,1);
|
||||||
|
|
||||||
|
/* Fix clobber-age */
|
||||||
|
kbinput = 0;
|
||||||
|
keyhandled = 0;
|
||||||
|
modify_control_seq = 0;
|
||||||
|
|
||||||
edit_refresh();
|
edit_refresh();
|
||||||
reset_cursor();
|
reset_cursor();
|
||||||
|
|
||||||
|
|
3
proto.h
3
proto.h
|
@ -141,7 +141,7 @@ void do_replace_highlight(int highlight_flag, char *word);
|
||||||
void nano_disabled_msg(void);
|
void nano_disabled_msg(void);
|
||||||
void window_init(void);
|
void window_init(void);
|
||||||
#ifdef NANO_EXTRA
|
#ifdef NANO_EXTRA
|
||||||
void do_credits(void);
|
void do_credits(int junk);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int do_writeout_void(void), do_exit(void), do_gotoline_void(void);
|
int do_writeout_void(void), do_exit(void), do_gotoline_void(void);
|
||||||
|
@ -160,6 +160,7 @@ struct stat filestat(const char *path);
|
||||||
char *do_browse_from(char *inpath);
|
char *do_browse_from(char *inpath);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
RETSIGTYPE main_loop (int junk);
|
||||||
|
|
||||||
filestruct *copy_node(filestruct * src);
|
filestruct *copy_node(filestruct * src);
|
||||||
filestruct *copy_filestruct(filestruct * src);
|
filestruct *copy_filestruct(filestruct * src);
|
||||||
|
|
Loading…
Reference in New Issue