diff options
Diffstat (limited to 'pico/pico.c')
-rw-r--r-- | pico/pico.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/pico/pico.c b/pico/pico.c index 166a3d3d..0a47d7f9 100644 --- a/pico/pico.c +++ b/pico/pico.c @@ -138,6 +138,15 @@ pico(PICO *pm) pico_all_done = 0; km_popped = 0; + if (pm->auto_cmds){ + int i; +#define CTRL_X 24 + for (i = 0; pm->auto_cmds[i]; i++); + if ((i > 1) && (pm->auto_cmds[i - 2] == CTRL_X) && + ((pm->auto_cmds[i - 1] == 'y') || (pm->auto_cmds[i-1] == 'Y'))) + sendnow++; + } + if(!vtinit()) /* Init Displays. */ return(COMP_CANCEL); @@ -638,12 +647,19 @@ abort_composer(int f, int n) result = ""; Pmaster->arm_winch_cleanup++; + Pmaster->onctrlc++; if(Pmaster->canceltest){ if(((Pmaster->pine_flags & MDHDRONLY) && !any_header_changes()) || (result = (*Pmaster->canceltest)(redraw_pico_for_callback))){ - pico_all_done = COMP_CANCEL; emlwrite(result, NULL); Pmaster->arm_winch_cleanup--; + if(Pmaster->curpos[0]){ + curwp->w_flag |= WFMODE; /* and modeline so we */ + sgarbk = TRUE; /* redraw the keymenu */ + pclear(term.t_nrow - 1, term.t_nrow + 1); + return(FALSE); + } + pico_all_done = COMP_CANCEL; return(TRUE); } else{ @@ -672,6 +688,12 @@ abort_composer(int f, int n) emlwrite(_("\007Cancel Cancelled"), NULL); break; + case COUNT: + showcpos(1,0); + emlwrite(Pmaster->curpos, NULL); + Pmaster->onctrlc--; + break; + default: mlerase(); } @@ -714,6 +736,19 @@ wquit(int f, int n) return(FALSE); } + /* When we send a message using the command line we are going to + ignore if the user wants to spell check, we assume he already + did */ + if (sendnow){ + ret = (*Pmaster->exittest)(Pmaster->headents, + redraw_pico_for_callback, + Pmaster->allow_flowed_text, + &result); + if (!ret) + pico_all_done = COMP_EXIT; + return(result ? FALSE : TRUE); + } + #ifdef SPELLER if(Pmaster->always_spell_check) if(spell(0, 0) == -1) |