diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-03-19 17:42:15 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-03-19 17:42:15 +0100 |
commit | c2c355df6f094cdb9e599fd395a78c14486ec697 (patch) | |
tree | 941a535736b145633d565dea15a30cccf3350dfe | |
parent | 71afbfe6cd697de30a9e0d57e5a6434cf4bb0f13 (diff) | |
download | vim-git-c2c355df6f094cdb9e599fd395a78c14486ec697.tar.gz |
updated for version 7.3.873v7.3.873
Problem: Cannot easily use :s to make title case.
Solution: Have "\L\u" result in title case. (James McCoy)
-rw-r--r-- | src/regexp.c | 35 | ||||
-rw-r--r-- | src/testdir/test79.in | bin | 2575 -> 2663 bytes | |||
-rw-r--r-- | src/testdir/test79.ok | bin | 401 -> 421 bytes | |||
-rw-r--r-- | src/testdir/test80.in | 4 | ||||
-rw-r--r-- | src/testdir/test80.ok | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 31 insertions, 14 deletions
diff --git a/src/regexp.c b/src/regexp.c index 6ecb6dd7a..e456b5d5f 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -7185,7 +7185,8 @@ vim_regsub_both(source, dest, copy, magic, backslash) int c; int cc; int no = -1; - fptr_T func = (fptr_T)NULL; + fptr_T func_all = (fptr_T)NULL; + fptr_T func_one = (fptr_T)NULL; linenr_T clnum = 0; /* init for GCC */ int len = 0; /* init for GCC */ #ifdef FEAT_EVAL @@ -7318,16 +7319,16 @@ vim_regsub_both(source, dest, copy, magic, backslash) { switch (*src++) { - case 'u': func = (fptr_T)do_upper; + case 'u': func_one = (fptr_T)do_upper; continue; - case 'U': func = (fptr_T)do_Upper; + case 'U': func_all = (fptr_T)do_Upper; continue; - case 'l': func = (fptr_T)do_lower; + case 'l': func_one = (fptr_T)do_lower; continue; - case 'L': func = (fptr_T)do_Lower; + case 'L': func_all = (fptr_T)do_Lower; continue; case 'e': - case 'E': func = (fptr_T)NULL; + case 'E': func_one = func_all = (fptr_T)NULL; continue; } } @@ -7380,11 +7381,14 @@ vim_regsub_both(source, dest, copy, magic, backslash) #endif /* Write to buffer, if copy is set. */ - if (func == (fptr_T)NULL) /* just copy */ - cc = c; - else + if (func_one != (fptr_T)NULL) /* Turbo C complains without the typecast */ - func = (fptr_T)(func(&cc, c)); + func_one = (fptr_T)(func_one(&cc, c)); + else if (func_all != (fptr_T)NULL) + /* Turbo C complains without the typecast */ + func_all = (fptr_T)(func_all(&cc, c)); + else /* just copy */ + cc = c; #ifdef FEAT_MBYTE if (has_mbyte) @@ -7495,11 +7499,14 @@ vim_regsub_both(source, dest, copy, magic, backslash) #endif c = *s; - if (func == (fptr_T)NULL) /* just copy */ - cc = c; - else + if (func_one != (fptr_T)NULL) /* Turbo C complains without the typecast */ - func = (fptr_T)(func(&cc, c)); + func_one = (fptr_T)(func_one(&cc, c)); + else if (func_all != (fptr_T)NULL) + /* Turbo C complains without the typecast */ + func_all = (fptr_T)(func_all(&cc, c)); + else /* just copy */ + cc = c; #ifdef FEAT_MBYTE if (has_mbyte) diff --git a/src/testdir/test79.in b/src/testdir/test79.in Binary files differindex f83b6b6e2..c50b92fa4 100644 --- a/src/testdir/test79.in +++ b/src/testdir/test79.in diff --git a/src/testdir/test79.ok b/src/testdir/test79.ok Binary files differindex 31ad3a41e..bb30d1405 100644 --- a/src/testdir/test79.ok +++ b/src/testdir/test79.ok diff --git a/src/testdir/test80.in b/src/testdir/test80.in index df4afbb1d..7f6ecfccb 100644 --- a/src/testdir/test80.in +++ b/src/testdir/test80.in @@ -35,6 +35,8 @@ STARTTEST :$put =substitute('vVv', 'V', \"\b\", '') :$put =substitute('wWw', 'W', \"\\\", '') :$put =substitute('xXx', 'X', \"\r\", '') +:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '') +:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '') /^TEST_2 ENDTEST @@ -67,6 +69,8 @@ STARTTEST :$put =substitute('uUu', 'U', \"\n\", '') :$put =substitute('vVv', 'V', \"\b\", '') :$put =substitute('wWw', 'W', \"\\\", '') +:$put =substitute('X', 'X', '\L\uxXx\l\EX', '') +:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '') /^TEST_3 ENDTEST diff --git a/src/testdir/test80.ok b/src/testdir/test80.ok index b08d3036f..45b1d1d0f 100644 --- a/src/testdir/test80.ok +++ b/src/testdir/test80.ok @@ -27,6 +27,8 @@ u vv w\w x
x +YyyY +zZZz TEST_2: @@ -55,6 +57,8 @@ u u vv w\w +XxxX +yYYy TEST_3: diff --git a/src/version.c b/src/version.c index 072005f97..82eca7282 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 873, +/**/ 872, /**/ 871, |