mirror of
git://git.sv.gnu.org/nano.git
synced 2024-12-14 14:57:09 +03:00
partition the filestruct properly when executing a command
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2082 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
7105cf4f8e
commit
c15802f8c3
73
src/files.c
73
src/files.c
@ -577,53 +577,54 @@ void do_insertfile(
|
||||
execute = !execute;
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
if (!ISSET(MULTIBUFFER)) {
|
||||
#endif
|
||||
/* If we're not inserting into a new buffer, partition
|
||||
* the filestruct so that it contains no text and hence
|
||||
* looks like a new buffer, and set edittop to the top
|
||||
* of the partition. */
|
||||
filepart = partition_filestruct(current, current_x,
|
||||
current, current_x);
|
||||
edittop = fileage;
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef NANO_SMALL
|
||||
if (execute)
|
||||
execute_command(answer);
|
||||
else {
|
||||
#endif
|
||||
answer = mallocstrassn(answer, real_dir_from_tilde(answer));
|
||||
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
if (!ISSET(MULTIBUFFER)) {
|
||||
#endif
|
||||
/* If we're not inserting into a new buffer,
|
||||
* partition the filestruct so that it contains no
|
||||
* text and hence looks like a new buffer, and set
|
||||
* edittop to the top of the partition. */
|
||||
filepart = partition_filestruct(current, current_x,
|
||||
current, current_x);
|
||||
edittop = fileage;
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
}
|
||||
#endif
|
||||
|
||||
load_buffer(answer);
|
||||
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
if (!ISSET(MULTIBUFFER))
|
||||
#endif
|
||||
{
|
||||
filestruct *top_save = fileage;
|
||||
|
||||
/* If we're not inserting into a new buffer,
|
||||
* unpartition the filestruct so that it contains
|
||||
* all the text again. Note that we've replaced the
|
||||
* non-text originally in the partition with the
|
||||
* text in the inserted file. */
|
||||
unpartition_filestruct(filepart);
|
||||
|
||||
/* Renumber starting with the beginning line of the
|
||||
* old partition. */
|
||||
renumber(top_save);
|
||||
|
||||
/* Set edittop back to what it was before. */
|
||||
edittop = edittop_save;
|
||||
}
|
||||
#ifndef NANO_SMALL
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
if (!ISSET(MULTIBUFFER))
|
||||
#endif
|
||||
{
|
||||
filestruct *top_save = fileage;
|
||||
|
||||
/* If we're not inserting into a new buffer, unpartition
|
||||
* the filestruct so that it contains all the text
|
||||
* again. Note that we've replaced the non-text
|
||||
* originally in the partition with the text in the
|
||||
* inserted file/executed command output. */
|
||||
unpartition_filestruct(filepart);
|
||||
|
||||
/* Renumber starting with the beginning line of the old
|
||||
* partition. */
|
||||
renumber(top_save);
|
||||
|
||||
/* Set edittop back to what it was before. */
|
||||
edittop = edittop_save;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MULTIBUFFER
|
||||
if (ISSET(MULTIBUFFER)) {
|
||||
/* Update the titlebar. */
|
||||
|
Loading…
Reference in New Issue
Block a user