Mercurial > vim
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; |