home *** CD-ROM | disk | FTP | other *** search
- To: vim-dev@vim.org
- Subject: Patch 6.0.124
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- MIME-Version: 1.0
- Content-Type: text/plain; charset=ISO-8859-1
- Content-Transfer-Encoding: 8bit
- ------------
-
- Patch 6.0.124
- Problem: When using a ":substitute" command that starts with "\="
- (evaluated as an expression), "~" was still replaced with the
- previous substitute string.
- Solution: Skip the replacement when the substitute string starts with "\=".
- Also adjust the documentation about doubling backslashes.
- Files: src/ex_cmds.c, runtime/doc/change.txt
-
-
- *** ../vim60.123/src/ex_cmds.c Wed Dec 12 21:42:23 2001
- --- src/ex_cmds.c Thu Jan 10 19:27:31 2002
- ***************
- *** 3548,3555 ****
- /*
- * ~ in the substitute pattern is replaced with the old pattern.
- * We do it here once to avoid it to be replaced over and over again.
- */
- ! sub = regtilde(sub, p_magic);
-
- /*
- * Check for a match on each line.
- --- 3548,3557 ----
- /*
- * ~ in the substitute pattern is replaced with the old pattern.
- * We do it here once to avoid it to be replaced over and over again.
- + * But don't do it when it starts with "\=", then it's an expression.
- */
- ! if (!(sub[0] == '\\' && sub[1] == '='))
- ! sub = regtilde(sub, p_magic);
-
- /*
- * Check for a match on each line.
- *** ../vim60.123/runtime/doc/change.txt Tue Sep 25 21:40:33 2001
- --- runtime/doc/change.txt Thu Jan 10 19:37:10 2002
- ***************
- *** 1,4 ****
- ! *change.txt* For Vim version 6.0. Last change: 2001 Sep 11
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
- --- 1,4 ----
- ! *change.txt* For Vim version 6.0. Last change: 2002 Jan 10
-
-
- VIM REFERENCE MANUAL by Bram Moolenaar
- ***************
- *** 640,651 ****
-
- *sub-replace-special*
- When the {string} starts with "\=" it is evaluated as an expression. The
- ! special meaning for characters as mentioned below does not apply then.
- ! The whole matched text can be accessed with "submatch(0)". The text matched
- ! with the first pair of () with "submatch(1)". Likewise for further
- sub-matches in ().
- ! Be careful: The separation character must not appear in the expression!
- ! Consider using a character like "@" or "|".
- Example: >
- :s@\n@\="\r" . expand("$HOME") . "\r"@
- This replaces an end-of-line with a new line containing the value of $HOME.
- --- 640,655 ----
-
- *sub-replace-special*
- When the {string} starts with "\=" it is evaluated as an expression. The
- ! special meaning for characters as mentioned below does not apply then, except
- ! "<CR>", "\<CR>" and "\\". Thus in the result of the expression you need to
- ! use two backslashes get one, put a backslash before a <CR> you want to insert
- ! and use a <CR> without a backslash where you want to break the line.
- ! The whole matched text can be accessed with "submatch(0)". The text
- ! matched with the first pair of () with "submatch(1)". Likewise for further
- sub-matches in ().
- ! Be careful: The separation character must not appear in the expression!
- ! Consider using a character like "@" or "|". There is no problem if the result
- ! of the expression contains the separation character.
- Example: >
- :s@\n@\="\r" . expand("$HOME") . "\r"@
- This replaces an end-of-line with a new line containing the value of $HOME.
- ***************
- *** 663,671 ****
- ~ \~ replaced with the {string} of the previous substitute
- \~ ~ replaced with ~
- \u next character made uppercase
- ! \U following characters made uppercase
- \l next character made lowercase
- ! \L following characters made lowercase
- \e end of \u, \U, \l and \L (NOTE: not <Esc>!)
- \E end of \u, \U, \l and \L
- <CR> split line in two at this point (Type the <CR> as CTRL-V
- --- 667,675 ----
- ~ \~ replaced with the {string} of the previous substitute
- \~ ~ replaced with ~
- \u next character made uppercase
- ! \U following characters made uppercase, until \E
- \l next character made lowercase
- ! \L following characters made lowercase, until \E
- \e end of \u, \U, \l and \L (NOTE: not <Esc>!)
- \E end of \u, \U, \l and \L
- <CR> split line in two at this point (Type the <CR> as CTRL-V
- *** ../vim60.123/src/version.c Wed Jan 9 16:29:27 2002
- --- src/version.c Thu Jan 10 19:38:14 2002
- ***************
- *** 608,609 ****
- --- 608,611 ----
- { /* Add new patch number below this line */
- + /**/
- + 124,
- /**/
-
- --
- A M00se once bit my sister ...
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\
- ((( Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim )))
- \\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///
-