comparison src/ex_eval.c @ 359:6c62b9b939bd v7.0093

updated for version 7.0093
author vimboss
date Sat, 25 Jun 2005 23:04:51 +0000
parents f811be6fa9b5
children 8bebcabccc2c
comparison
equal deleted inserted replaced
358:e111db373ca4 359:6c62b9b939bd
915 * Handle a ">quit" debug command as if an interrupt had occurred before 915 * Handle a ">quit" debug command as if an interrupt had occurred before
916 * the ":endif". That is, throw an interrupt exception if appropriate. 916 * the ":endif". That is, throw an interrupt exception if appropriate.
917 * Doing this here prevents an exception for a parsing error being 917 * Doing this here prevents an exception for a parsing error being
918 * discarded by throwing the interrupt exception later on. 918 * discarded by throwing the interrupt exception later on.
919 */ 919 */
920 if (!(eap->cstack->cs_flags[eap->cstack->cs_idx] & CSF_TRUE) && 920 if (!(eap->cstack->cs_flags[eap->cstack->cs_idx] & CSF_TRUE)
921 dbg_check_skipped(eap)) 921 && dbg_check_skipped(eap))
922 (void)do_intthrow(eap->cstack); 922 (void)do_intthrow(eap->cstack);
923 923
924 --eap->cstack->cs_idx; 924 --eap->cstack->cs_idx;
925 } 925 }
926 } 926 }
2106 * Discard anything pending in a finally clause and continue the 2106 * Discard anything pending in a finally clause and continue the
2107 * search. There may also be a pending ":continue", ":break", 2107 * search. There may also be a pending ":continue", ":break",
2108 * ":return", or ":finish" before the finally clause. We must not 2108 * ":return", or ":finish" before the finally clause. We must not
2109 * discard it, unless an error or interrupt occurred afterwards. 2109 * discard it, unless an error or interrupt occurred afterwards.
2110 */ 2110 */
2111 if (did_emsg || got_int || 2111 if (did_emsg || got_int || (cstack->cs_flags[idx] & CSF_FINALLY))
2112 (cstack->cs_flags[idx] & CSF_FINALLY))
2113 { 2112 {
2114 switch (cstack->cs_pending[idx]) 2113 switch (cstack->cs_pending[idx])
2115 { 2114 {
2116 case CSTP_NONE: 2115 case CSTP_NONE:
2117 break; 2116 break;
2192 * When leaving a try conditinal that reset "emsg_silent" on its entry 2191 * When leaving a try conditinal that reset "emsg_silent" on its entry
2193 * after saving the original value, restore that value here and free the 2192 * after saving the original value, restore that value here and free the
2194 * memory used to store it. 2193 * memory used to store it.
2195 */ 2194 */
2196 if ((cstack->cs_flags[idx] & CSF_TRY) 2195 if ((cstack->cs_flags[idx] & CSF_TRY)
2197 && (cstack->cs_flags[idx] & CSF_SILENT)) 2196 && (cstack->cs_flags[idx] & CSF_SILENT))
2198 { 2197 {
2199 eslist_T *elem; 2198 eslist_T *elem;
2200 2199
2201 elem = cstack->cs_emsg_silent_list; 2200 elem = cstack->cs_emsg_silent_list;
2202 cstack->cs_emsg_silent_list = elem->next; 2201 cstack->cs_emsg_silent_list = elem->next;