To: vim-dev@vim.org Subject: Patch 6.1.194 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 6.1.194 Problem: When "t_ti" is set but it doesn't cause swapping terminal pages, "ZZ" may cause the shell prompt to appear on top of the file-write message. Solution: Scroll the text up in the Vim page before swapping to the terminal page. (Michael Schroeder) Files: src/os_unix.c *** ../vim61.193/src/os_unix.c Sat Sep 14 17:00:01 2002 --- src/os_unix.c Thu Sep 19 21:22:50 2002 *************** *** 2425,2430 **** --- 2425,2450 ---- #endif } + static void exit_scroll __ARGS((void)); + + /* + * Output a newline when exiting. + * Make sure the newline goes to the same stream as the text. + */ + static void + exit_scroll() + { + if (msg_use_printf()) + { + if (info_message) + mch_msg("\r\n"); + else + mch_errmsg("\r\n"); + } + else + out_char('\n'); + } + void mch_exit(r) int r; *************** *** 2443,2449 **** #ifdef FEAT_TITLE mch_restore_title(3); /* restore xterm title and icon name */ #endif ! /* Stop termcap first: May need to check for T_CRV response, which * requires RAW mode. */ stoptermcap(); --- 2463,2478 ---- #ifdef FEAT_TITLE mch_restore_title(3); /* restore xterm title and icon name */ #endif ! /* ! * When t_ti is not empty but it doesn't cause swapping terminal ! * pages, need to output a newline when msg_didout is set. But when ! * t_ti does swap pages it should not go to the shell page. Do this ! * before stoptermcap(). ! */ ! if (swapping_screen() && !newline_on_exit && msg_didout) ! exit_scroll(); ! ! /* Stop termcap: May need to check for T_CRV response, which * requires RAW mode. */ stoptermcap(); *************** *** 2454,2471 **** if (!swapping_screen() || newline_on_exit) { if (newline_on_exit || msg_didout) ! { ! /* Make sure the newline goes to the same stream as the text */ ! if (msg_use_printf()) ! { ! if (info_message) ! mch_msg("\r\n"); ! else ! mch_errmsg("\r\n"); ! } ! else ! out_char('\n'); ! } else { restore_cterm_colors(); /* get original colors back */ --- 2483,2489 ---- if (!swapping_screen() || newline_on_exit) { if (newline_on_exit || msg_didout) ! exit_scroll(); else { restore_cterm_colors(); /* get original colors back */ *** ../vim61.193/src/version.c Mon Sep 23 21:15:51 2002 --- src/version.c Mon Sep 23 21:18:23 2002 *************** *** 608,609 **** --- 608,611 ---- { /* Add new patch number below this line */ + /**/ + 194, /**/ -- Time is an illusion. Lunchtime doubly so. -- Ford Prefect, in Douglas Adams' "The Hitchhiker's Guide to the Galaxy" /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\ /// Creator of Vim - Vi IMproved -- http://www.vim.org \\\ \\\ Project leader for A-A-P -- http://www.a-a-p.org /// \\\ Lord Of The Rings helps Uganda - http://iccf-holland.org/lotr.html ///