diff --git a/src/files.c b/src/files.c index e244252d44fa3361393b7d4ddcc4354f0fa9390d..1d0b11e8229807c782e3e2d0e34cd638fee96cec 100644 --- 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)) {