commit c15802f8c35f77a413693448eb337f7c8486974d
parent 7105cf4f8ef51fe8bc9edc66c249fafa744b1298
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Sun, 7 Nov 2004 18:09:41 +0000
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
Diffstat:
M | src/files.c | | | 61 | +++++++++++++++++++++++++++++++------------------------------ |
1 file changed, 31 insertions(+), 30 deletions(-)
diff --git a/src/files.c b/src/files.c
@@ -577,52 +577,53 @@ void do_insertfile(
execute = !execute;
continue;
}
-
- if (execute)
- execute_command(answer);
- else {
#endif
- answer = mallocstrassn(answer, real_dir_from_tilde(answer));
#ifdef ENABLE_MULTIBUFFER
- if (!ISSET(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,
+ /* 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;
+ edittop = fileage;
#ifdef ENABLE_MULTIBUFFER
- }
+ }
#endif
+#ifndef NANO_SMALL
+ if (execute)
+ execute_command(answer);
+ else {
+#endif
+ answer = mallocstrassn(answer, real_dir_from_tilde(answer));
load_buffer(answer);
+#ifndef NANO_SMALL
+ }
+#endif
#ifdef ENABLE_MULTIBUFFER
- if (!ISSET(MULTIBUFFER))
+ if (!ISSET(MULTIBUFFER))
#endif
- {
- filestruct *top_save = fileage;
+ {
+ 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);
+ /* 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);
+ /* 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
+ /* Set edittop back to what it was before. */
+ edittop = edittop_save;
}
-#endif
#ifdef ENABLE_MULTIBUFFER
if (ISSET(MULTIBUFFER)) {