diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.377')
-rw-r--r-- | source/ap/vim/patches/7.3.377 | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/source/ap/vim/patches/7.3.377 b/source/ap/vim/patches/7.3.377 deleted file mode 100644 index 1a2df1d5..00000000 --- a/source/ap/vim/patches/7.3.377 +++ /dev/null @@ -1,406 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.377 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.3.377 -Problem: No support for bitwise AND, OR, XOR and invert. -Solution: Add and(), or(), invert() and xor() functions. -Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in, - src/testdir/test65.ok, runtime/doc/eval.txt - - -*** ../vim-7.3.376/src/eval.c 2011-11-30 15:19:25.000000000 +0100 ---- src/eval.c 2011-12-11 13:49:31.000000000 +0100 -*************** -*** 474,479 **** ---- 474,480 ---- - static void f_acos __ARGS((typval_T *argvars, typval_T *rettv)); - #endif - static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_and __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_argc __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 602,607 **** ---- 603,609 ---- - static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_insert __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_items __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 640,645 **** ---- 642,648 ---- - #endif - static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_or __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv)); - #ifdef FEAT_FLOAT - static void f_pow __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 751,756 **** ---- 754,760 ---- - static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv)); - - static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump)); - static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum)); -*************** -*** 7715,7720 **** ---- 7719,7725 ---- - {"acos", 1, 1, f_acos}, /* WJMc */ - #endif - {"add", 2, 2, f_add}, -+ {"and", 2, 2, f_and}, - {"append", 2, 2, f_append}, - {"argc", 0, 0, f_argc}, - {"argidx", 0, 0, f_argidx}, -*************** -*** 7850,7855 **** ---- 7855,7861 ---- - {"inputsave", 0, 0, f_inputsave}, - {"inputsecret", 1, 2, f_inputsecret}, - {"insert", 2, 3, f_insert}, -+ {"invert", 1, 1, f_invert}, - {"isdirectory", 1, 1, f_isdirectory}, - {"islocked", 1, 1, f_islocked}, - {"items", 1, 1, f_items}, -*************** -*** 7888,7893 **** ---- 7894,7900 ---- - #endif - {"nextnonblank", 1, 1, f_nextnonblank}, - {"nr2char", 1, 1, f_nr2char}, -+ {"or", 2, 2, f_or}, - {"pathshorten", 1, 1, f_pathshorten}, - #ifdef FEAT_FLOAT - {"pow", 2, 2, f_pow}, -*************** -*** 7999,8004 **** ---- 8006,8012 ---- - {"winsaveview", 0, 0, f_winsaveview}, - {"winwidth", 1, 1, f_winwidth}, - {"writefile", 2, 3, f_writefile}, -+ {"xor", 2, 2, f_xor}, - }; - - #if defined(FEAT_CMDL_COMPL) || defined(PROTO) -*************** -*** 8572,8577 **** ---- 8580,8597 ---- - } - - /* -+ * "and(expr, expr)" function -+ */ -+ static void -+ f_and(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) -+ & get_tv_number_chk(&argvars[1], NULL); -+ } -+ -+ /* - * "append(lnum, string/list)" function - */ - static void -*************** -*** 12958,12963 **** ---- 12978,12994 ---- - } - - /* -+ * "invert(expr)" function -+ */ -+ static void -+ f_invert(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL); -+ } -+ -+ /* - * "isdirectory()" function - */ - static void -*************** -*** 14108,14113 **** ---- 14139,14156 ---- - } - - /* -+ * "or(expr, expr)" function -+ */ -+ static void -+ f_or(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) -+ | get_tv_number_chk(&argvars[1], NULL); -+ } -+ -+ /* - * "pathshorten()" function - */ - static void -*************** -*** 18394,18399 **** ---- 18437,18455 ---- - } - - /* -+ * "xor(expr, expr)" function -+ */ -+ static void -+ f_xor(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) -+ ^ get_tv_number_chk(&argvars[1], NULL); -+ } -+ -+ -+ /* - * Translate a String variable into a position. - * Returns NULL when there is an error. - */ -*** ../vim-7.3.376/src/testdir/test65.in 2010-08-15 21:57:29.000000000 +0200 ---- src/testdir/test65.in 2011-12-11 13:55:06.000000000 +0100 -*************** -*** 1,4 **** -! Test for floating point. - - STARTTEST - :so small.vim ---- 1,4 ---- -! Test for floating point and logical operators. - - STARTTEST - :so small.vim -*************** -*** 72,77 **** ---- 72,94 ---- - :$put ='float2nr' - :$put =float2nr(123.456) - :$put =float2nr(-123.456) -+ :$put ='AND' -+ :$put =and(127, 127) -+ :$put =and(127, 16) -+ :$put =and(127, 128) -+ :$put ='OR' -+ :$put =or(16, 7) -+ :$put =or(8, 7) -+ :$put =or(0, 123) -+ :$put ='XOR' -+ :$put =xor(127, 127) -+ :$put =xor(127, 16) -+ :$put =xor(127, 128) -+ :$put ='invert' -+ :$put =and(invert(127), 65535) -+ :$put =and(invert(16), 65535) -+ :$put =and(invert(128), 65535) -+ :$put =invert(1.0) - :/^Results/,$wq! test.out - ENDTEST - -*** ../vim-7.3.376/src/testdir/test65.ok 2010-08-15 21:57:29.000000000 +0200 ---- src/testdir/test65.ok 2011-12-11 13:55:30.000000000 +0100 -*************** -*** 54,56 **** ---- 54,73 ---- - float2nr - 123 - -123 -+ AND -+ 127 -+ 16 -+ 0 -+ OR -+ 23 -+ 15 -+ 123 -+ XOR -+ 0 -+ 111 -+ 255 -+ invert -+ 65408 -+ 65519 -+ 65407 -+ 0 -*** ../vim-7.3.376/runtime/doc/eval.txt 2011-06-19 02:55:32.000000000 +0200 ---- runtime/doc/eval.txt 2011-12-14 15:28:23.000000000 +0100 -*************** -*** 798,808 **** - For |Lists| only "+" is possible and then both expr6 must be a list. The - result is a new list with the two lists Concatenated. - -! expr7 * expr7 .. number multiplication *expr-star* -! expr7 / expr7 .. number division *expr-/* -! expr7 % expr7 .. number modulo *expr-%* - - For all, except ".", Strings are converted to Numbers. - - Note the difference between "+" and ".": - "123" + "456" = 579 ---- 800,811 ---- - For |Lists| only "+" is possible and then both expr6 must be a list. The - result is a new list with the two lists Concatenated. - -! expr7 * expr7 .. Number multiplication *expr-star* -! expr7 / expr7 .. Number division *expr-/* -! expr7 % expr7 .. Number modulo *expr-%* - - For all, except ".", Strings are converted to Numbers. -+ For bitwise operators see |and()|, |or()| and |xor()|. - - Note the difference between "+" and ".": - "123" + "456" = 579 -*************** -*** 1679,1684 **** ---- 1688,1694 ---- - abs( {expr}) Float or Number absolute value of {expr} - acos( {expr}) Float arc cosine of {expr} - add( {list}, {item}) List append {item} to |List| {list} -+ and( {expr}, {expr}) Number bitwise AND - append( {lnum}, {string}) Number append {string} below line {lnum} - append( {lnum}, {list}) Number append lines {list} below line {lnum} - argc() Number number of files in the argument list -*************** -*** 1817,1822 **** ---- 1827,1833 ---- - inputsave() Number save and clear typeahead - inputsecret( {prompt} [, {text}]) String like input() but hiding the text - insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}] -+ invert( {expr}) Number bitwise invert - isdirectory( {directory}) Number TRUE if {directory} is a directory - islocked( {expr}) Number TRUE if {expr} is locked - items( {dict}) List key-value pairs in {dict} -*************** -*** 1856,1861 **** ---- 1868,1874 ---- - mzeval( {expr}) any evaluate |MzScheme| expression - nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} - nr2char( {expr}) String single char with ASCII 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} - prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum} -*************** -*** 1978,1983 **** ---- 1992,1998 ---- - winwidth( {nr}) Number width of window {nr} - writefile( {list}, {fname} [, {binary}]) - Number write list of lines to file {fname} -+ xor( {expr}, {expr}) Number bitwise XOR - - abs({expr}) *abs()* - Return the absolute value of {expr}. When {expr} evaluates to -*************** -*** 2017,2022 **** ---- 2032,2044 ---- - Use |insert()| to add an item at another position. - - -+ and({expr}, {expr}) *and()* -+ Bitwise AND on the two arguments. The arguments are converted -+ to a number. A List, Dict or Float argument causes an error. -+ Example: > -+ :let flag = and(bits, 0x80) -+ -+ - append({lnum}, {expr}) *append()* - When {expr} is a |List|: Append each item of the |List| as a - text line below line {lnum} in the current buffer. -*************** -*** 3770,3775 **** ---- 3798,3808 ---- - Note that when {item} is a |List| it is inserted as a single - item. Use |extend()| to concatenate |Lists|. - -+ invert({expr}) *invert()* -+ Bitwise invert. The argument is converted to a number. A -+ List, Dict or Float argument causes an error. Example: > -+ :let bits = invert(bits) -+ - isdirectory({directory}) *isdirectory()* - The result is a Number, which is non-zero when a directory - with the name {directory} exists. If {directory} doesn't -*************** -*** 4334,4339 **** ---- 4368,4380 ---- - call setpos('.', save_cursor) - < Also see |setpos()|. - -+ or({expr}, {expr}) *or()* -+ Bitwise OR on the two arguments. The arguments are converted -+ to a number. A List, Dict or Float argument causes an error. -+ Example: > -+ :let bits = or(bits, 0x80) -+ -+ - pathshorten({expr}) *pathshorten()* - Shorten directory names in the path {expr} and return the - result. The tail, the file name, is kept as-is. The other -*************** -*** 6097,6103 **** - To copy a file byte for byte: > - :let fl = readfile("foo", "b") - :call writefile(fl, "foocopy", "b") -! < - - *feature-list* - There are three types of features: ---- 6149,6163 ---- - To copy a file byte for byte: > - :let fl = readfile("foo", "b") - :call writefile(fl, "foocopy", "b") -! -! -! xor({expr}, {expr}) *xor()* -! Bitwise XOR on the two arguments. The arguments are converted -! to a number. A List, Dict or Float argument causes an error. -! Example: > -! :let bits = xor(bits, 0x80) -! -! - - *feature-list* - There are three types of features: -*** ../vim-7.3.376/src/version.c 2011-12-14 15:23:53.000000000 +0100 ---- src/version.c 2011-12-14 15:28:39.000000000 +0100 -*************** -*** 716,717 **** ---- 716,719 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 377, - /**/ - --- -DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the - penalty. And here in Castle Anthrax, we have but one punishment - ... you must tie her down on a bed ... and spank her. Come! -GIRLS: A spanking! A spanking! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// |