diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-10-21 00:45:18 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-10-21 00:45:18 +0200 |
commit | 2d17fa3ebd378097e3c0feab813a2c60fc9bf474 (patch) | |
tree | 1ad99d79e68cbbd6bebdde9a83df835ac9917993 | |
parent | 9f340fa57b91db9c04307c99cd4475f197d7a5c8 (diff) | |
download | vim-git-2d17fa3ebd378097e3c0feab813a2c60fc9bf474.tar.gz |
updated for version 7.3.694v7.3.694
Problem: Now that 'shiftwidth' may use the value of 'tabstop' it is not so
easy to use in indent files.
Solution: Add the shiftwidth() function. (so8res)
-rw-r--r-- | runtime/doc/eval.txt | 26 | ||||
-rw-r--r-- | src/eval.c | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 37 insertions, 4 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 12ea9c897..8934215eb 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1932,6 +1932,7 @@ setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val} shellescape( {string} [, {special}]) String escape {string} for use as shell command argument +shiftwidth() Number effective value of 'shiftwidth' simplify( {filename}) String simplify filename as much as possible sin( {expr}) Float sine of {expr} sinh( {expr}) Float hyperbolic sine of {expr} @@ -3754,10 +3755,10 @@ inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()* Like |input()|, but when the GUI is running and text dialogs are supported, a dialog window pops up to input the text. Example: > - :let n = inputdialog("value for shiftwidth", &sw) - :if n != "" - : let &sw = n - :endif + :let n = inputdialog("value for shiftwidth", shiftwidth()) + :if n != "" + : let &sw = n + :endif < When the dialog is cancelled {cancelreturn} is returned. When omitted an empty string is returned. Hitting <Enter> works like pressing the OK button. Hitting @@ -5331,6 +5332,23 @@ shellescape({string} [, {special}]) *shellescape()* :call system("chmod +w -- " . shellescape(expand("%"))) +shiftwidth() *shiftwidth()* + Returns the effective value of 'shiftwidth'. This is the + 'shiftwidth' value unless it is zero, in which case it is the + 'tabstop' value. To be backwards compatible in indent + plugins, use this: > + if exists('*shiftwidth') + func s:sw() + return shiftwidth() + endfunc + else + func s:sw() + return &sw + endfunc + endif +< And then use s:sw() instead of &sw. + + simplify({filename}) *simplify()* Simplify the file name as much as possible without changing the meaning. Shortcuts (on MS-Windows) or symbolic links (on diff --git a/src/eval.c b/src/eval.c index 98b2a3367..66b8606e0 100644 --- a/src/eval.c +++ b/src/eval.c @@ -687,6 +687,7 @@ static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); +static void f_shiftwidth __ARGS((typval_T *argvars, typval_T *rettv)); static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv)); #ifdef FEAT_FLOAT static void f_sin __ARGS((typval_T *argvars, typval_T *rettv)); @@ -8051,6 +8052,7 @@ static struct fst {"settabwinvar", 4, 4, f_settabwinvar}, {"setwinvar", 3, 3, f_setwinvar}, {"shellescape", 1, 2, f_shellescape}, + {"shiftwidth", 0, 0, f_shiftwidth}, {"simplify", 1, 1, f_simplify}, #ifdef FEAT_FLOAT {"sin", 1, 1, f_sin}, @@ -16652,6 +16654,17 @@ f_shellescape(argvars, rettv) } /* + * shiftwidth() function + */ + static void +f_shiftwidth(argvars, rettv) + typval_T *argvars; + typval_T *rettv; +{ + rettv->vval.v_number = get_sw_value(); +} + +/* * "simplify()" function */ static void diff --git a/src/version.c b/src/version.c index 0a39edeeb..f28590b9d 100644 --- a/src/version.c +++ b/src/version.c @@ -720,6 +720,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 694, +/**/ 693, /**/ 692, |