To: vim-dev@vim.org Subject: Patch 6.2.412 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 6.2.412 Problem: Ruby: "ruby << EOF" inside a function doesn't always work. Also for ":python", ":tcl" and ":perl". Solution: Check for "<< marker" and skip until "marker" before checking for "endfunction". Files: src/eval.c *** ../vim-6.2.411/src/eval.c Mon Mar 29 14:32:19 2004 --- src/eval.c Mon Mar 29 15:25:42 2004 *************** *** 8696,8702 **** ufunc_T *fp; int indent; int nesting; ! int in_append = FALSE; static char_u e_funcexts[] = N_("E122: Function %s already exists, add ! to replace it"); /* --- 8698,8704 ---- ufunc_T *fp; int indent; int nesting; ! char_u *skip_until = NULL; static char_u e_funcexts[] = N_("E122: Function %s already exists, add ! to replace it"); /* *************** *** 8899,8909 **** goto erret; } ! if (in_append) { ! /* between ":append" and "." there is no check for ":endfunc". */ ! if (theline[0] == '.' && theline[1] == NUL) ! in_append = FALSE; } else { --- 8901,8915 ---- goto erret; } ! if (skip_until != NULL) { ! /* between ":append" and "." and between ":python <