summaryrefslogtreecommitdiff
path: root/pico/pico.c
diff options
context:
space:
mode:
Diffstat (limited to 'pico/pico.c')
-rw-r--r--pico/pico.c37
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)