fix broken upstream patch

This commit is contained in:
Karsten Hopp 2013-01-28 14:02:43 +01:00
parent a373b6ca89
commit be6f54b13e

212
7.3.780
View File

@ -1,193 +1,111 @@
To: vim_dev@googlegroups.com diff -up vim73/runtime/doc/eval.txt.780 vim73/runtime/doc/eval.txt
Subject: Patch 7.3.780 --- vim73/runtime/doc/eval.txt.780 2013-01-28 13:41:04.000000000 +0100
Fcc: outbox +++ runtime/doc/eval.txt 2013-01-28 13:44:58.000000000 +0100
From: Bram Moolenaar <Bram@moolenaar.net> @@ -1705,7 +1705,7 @@ call( {func}, {arglist} [, {dict}])
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.780
Problem: char2nr() and nr2char() always use 'encoding'.
Solution: Add argument to use utf-8 characters. (Yasuhiro Matsumoto)
Files: runtime/doc/eval.txt, src/eval.c
*** ../vim-7.3.779/runtime/doc/eval.txt 2012-12-05 16:10:21.000000000 +0100
--- runtime/doc/eval.txt 2013-01-23 17:00:52.000000000 +0100
***************
*** 1705,1711 ****
any call {func} with arguments {arglist} any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up ceil( {expr}) Float round {expr} up
changenr() Number current change number changenr() Number current change number
! char2nr( {expr}) Number ASCII value of first char in {expr} -char2nr( {expr}) Number ASCII value of first char in {expr}
+char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum} cindent( {lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark col( {expr}) Number column nr of cursor or mark
--- 1716,1722 ---- @@ -1862,7 +1862,7 @@ mkdir( {name} [, {path} [, {prot}]])
any call {func} with arguments {arglist}
ceil( {expr}) Float round {expr} up
changenr() Number current change number
! char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
clearmatches() none clear all matches
col( {expr}) Number column nr of cursor or mark
***************
*** 1862,1868 ****
mode( [expr]) String current editing mode mode( [expr]) String current editing mode
mzeval( {expr}) any evaluate |MzScheme| expression mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
! nr2char( {expr}) String single char with ASCII value {expr} -nr2char( {expr}) String single char with ASCII value {expr}
+nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
or( {expr}, {expr}) Number bitwise OR or( {expr}, {expr}) Number bitwise OR
pathshorten( {expr}) String shorten directory names in a path pathshorten( {expr}) String shorten directory names in a path
pow( {x}, {y}) Float {x} to the power of {y} pow( {x}, {y}) Float {x} to the power of {y}
--- 1873,1879 ---- @@ -2282,13 +2282,17 @@ changenr() *changenr()*
mode( [expr]) String current editing mode
mzeval( {expr}) any evaluate |MzScheme| expression
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
! nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr}
or( {expr}, {expr}) Number bitwise OR
pathshorten( {expr}) String shorten directory names in a path
pow( {x}, {y}) Float {x} to the power of {y}
***************
*** 2282,2295 ****
redo it is the number of the redone change. After undo it is redo it is the number of the redone change. After undo it is
one less than the number of the undone change. one less than the number of the undone change.
! char2nr({expr}) *char2nr()* -char2nr({expr}) *char2nr()*
+char2nr({expr}[, {utf8}]) **char2nr()*
Return number value of the first char in {expr}. Examples: > Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32 char2nr(" ") returns 32
char2nr("ABC") returns 65 char2nr("ABC") returns 65
! < The current 'encoding' is used. Example for "utf-8": > -< The current 'encoding' is used. Example for "utf-8": >
char2nr("á") returns 225 +< When {utf8} is omitted or zero, the current 'encoding' is
char2nr("á"[0]) returns 195 +used.
! < |nr2char()| does the opposite. + Example for "utf-8": >
char2nr("á") returns 225
char2nr("á"[0]) returns 195
+ With {utf8} set to 1, always treat as utf-8 characters.
+ A combining character is a separate character.
< |nr2char()| does the opposite.
cindent({lnum}) *cindent()* cindent({lnum}) *cindent()*
Get the amount of indent for line {lnum} according the C diff -up vim73/src/eval.c.780 vim73/src/eval.c
--- 2294,2310 ---- --- vim73/src/eval.c.780 2013-01-28 13:41:04.000000000 +0100
redo it is the number of the redone change. After undo it is +++ src/eval.c 2013-01-28 13:41:04.000000000 +0100
one less than the number of the undone change. @@ -7854,7 +7854,7 @@ static struct fst
! char2nr({expr}[, {utf8}]) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
char2nr("ABC") returns 65
! < When {utf8} is omitted or zero, the current 'encoding' is used.
! Example for "utf-8": >
char2nr("á") returns 225
char2nr("á"[0]) returns 195
! < With {utf8} set to 1, always treat as utf-8 characters.
! A combining character is a separate character.
! |nr2char()| does the opposite.
cindent({lnum}) *cindent()*
Get the amount of indent for line {lnum} according the C
*** ../vim-7.3.779/src/eval.c 2013-01-23 15:53:08.000000000 +0100
--- src/eval.c 2013-01-23 16:57:48.000000000 +0100
***************
*** 7854,7860 ****
{"ceil", 1, 1, f_ceil}, {"ceil", 1, 1, f_ceil},
#endif #endif
{"changenr", 0, 0, f_changenr}, {"changenr", 0, 0, f_changenr},
! {"char2nr", 1, 1, f_char2nr}, - {"char2nr", 1, 1, f_char2nr},
+ {"char2nr", 1, 2, f_char2nr},
{"cindent", 1, 1, f_cindent}, {"cindent", 1, 1, f_cindent},
{"clearmatches", 0, 0, f_clearmatches}, {"clearmatches", 0, 0, f_clearmatches},
{"col", 1, 1, f_col}, {"col", 1, 1, f_col},
--- 7854,7860 ---- @@ -8003,7 +8003,7 @@ static struct fst
{"ceil", 1, 1, f_ceil},
#endif
{"changenr", 0, 0, f_changenr},
! {"char2nr", 1, 2, f_char2nr},
{"cindent", 1, 1, f_cindent},
{"clearmatches", 0, 0, f_clearmatches},
{"col", 1, 1, f_col},
***************
*** 8003,8009 ****
{"mzeval", 1, 1, f_mzeval}, {"mzeval", 1, 1, f_mzeval},
#endif #endif
{"nextnonblank", 1, 1, f_nextnonblank}, {"nextnonblank", 1, 1, f_nextnonblank},
! {"nr2char", 1, 1, f_nr2char}, - {"nr2char", 1, 1, f_nr2char},
+ {"nr2char", 1, 2, f_nr2char},
{"or", 2, 2, f_or}, {"or", 2, 2, f_or},
{"pathshorten", 1, 1, f_pathshorten}, {"pathshorten", 1, 1, f_pathshorten},
#ifdef FEAT_FLOAT #ifdef FEAT_FLOAT
--- 8003,8009 ---- @@ -9303,7 +9303,17 @@ f_char2nr(argvars, rettv)
{"mzeval", 1, 1, f_mzeval},
#endif
{"nextnonblank", 1, 1, f_nextnonblank},
! {"nr2char", 1, 2, f_nr2char},
{"or", 2, 2, f_or},
{"pathshorten", 1, 1, f_pathshorten},
#ifdef FEAT_FLOAT
***************
*** 9303,9309 ****
{ {
#ifdef FEAT_MBYTE #ifdef FEAT_MBYTE
if (has_mbyte) if (has_mbyte)
! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0])); - rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
+ {
+ int utf8 = 0;
+
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ utf8 = get_tv_number_chk(&argvars[1], NULL);
+
+ if (utf8)
+ rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
+ else
+ rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
+ }
else else
#endif #endif
rettv->vval.v_number = get_tv_string(&argvars[0])[0]; rettv->vval.v_number = get_tv_string(&argvars[0])[0];
--- 9303,9319 ---- @@ -14360,7 +14370,16 @@ f_nr2char(argvars, rettv)
{
#ifdef FEAT_MBYTE
if (has_mbyte)
! {
! int utf8 = 0;
!
! if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = get_tv_number_chk(&argvars[1], NULL);
!
! if (utf8)
! rettv->vval.v_number = (*utf_ptr2char)(get_tv_string(&argvars[0]));
! else
! rettv->vval.v_number = (*mb_ptr2char)(get_tv_string(&argvars[0]));
! }
else
#endif
rettv->vval.v_number = get_tv_string(&argvars[0])[0];
***************
*** 14360,14366 ****
#ifdef FEAT_MBYTE #ifdef FEAT_MBYTE
if (has_mbyte) if (has_mbyte)
! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL; - buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
+ {
+ int utf8 = 0;
+
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ utf8 = get_tv_number_chk(&argvars[1], NULL);
+ if (utf8)
+ buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
+ else
+ buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
+ }
else else
#endif #endif
{ {
--- 14370,14385 ---- diff -up vim73/src/version.c.780 vim73/src/version.c
--- vim73/src/version.c.780 2013-01-28 13:41:04.000000000 +0100
#ifdef FEAT_MBYTE +++ src/version.c 2013-01-28 13:41:04.000000000 +0100
if (has_mbyte) @@ -726,6 +726,8 @@ static char *(features[]) =
! { static int included_patches[] =
! int utf8 = 0;
!
! if (argvars[1].v_type != VAR_UNKNOWN)
! utf8 = get_tv_number_chk(&argvars[1], NULL);
! if (utf8)
! buf[(*utf_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
! else
! buf[(*mb_char2bytes)((int)get_tv_number(&argvars[0]), buf)] = NUL;
! }
else
#endif
{
*** ../vim-7.3.779/src/version.c 2013-01-23 16:43:07.000000000 +0100
--- src/version.c 2013-01-23 17:06:36.000000000 +0100
***************
*** 727,728 ****
--- 727,730 ----
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
+ /**/
+ 780,
/**/ /**/
+ 780,
-- +/**/
A real patriot is the fellow who gets a parking ticket and rejoices 779,
that the system works. /**/
778,
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///