Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.629

Expand Messages
  • Bram Moolenaar
    Patch 7.3.629 Problem: There is no way to make shiftwidth follow tabstop . Solution: When shiftwidth is zero use the value of tabstop . (Christian
    Message 1 of 1 , Aug 8, 2012
    • 0 Attachment
      Patch 7.3.629
      Problem: There is no way to make 'shiftwidth' follow 'tabstop'.
      Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
      Brabandt)
      Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
      src/option.c, src/proto/option.pro


      *** ../vim-7.3.628/src/edit.c 2012-07-25 16:46:59.000000000 +0200
      --- src/edit.c 2012-08-08 17:55:37.000000000 +0200
      ***************
      *** 8899,8907 ****

      *inserted_space_p = FALSE;
      if (p_sta && in_indent)
      ! ts = curbuf->b_p_sw;
      else
      ! ts = curbuf->b_p_sts;
      /* Compute the virtual column where we want to be. Since
      * 'showbreak' may get in the way, need to get the last column of
      * the previous character. */
      --- 8899,8907 ----

      *inserted_space_p = FALSE;
      if (p_sta && in_indent)
      ! ts = (int)get_sw_value();
      else
      ! ts = (int)curbuf->b_p_sts;
      /* Compute the virtual column where we want to be. Since
      * 'showbreak' may get in the way, need to get the last column of
      * the previous character. */
      ***************
      *** 9589,9595 ****
      * When nothing special, insert TAB like a normal character
      */
      if (!curbuf->b_p_et
      ! && !(p_sta && ind && curbuf->b_p_ts != curbuf->b_p_sw)
      && curbuf->b_p_sts == 0)
      return TRUE;

      --- 9589,9595 ----
      * When nothing special, insert TAB like a normal character
      */
      if (!curbuf->b_p_et
      ! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
      && curbuf->b_p_sts == 0)
      return TRUE;

      ***************
      *** 9605,9611 ****
      AppendToRedobuff((char_u *)"\t");

      if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
      ! temp = (int)curbuf->b_p_sw;
      else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
      temp = (int)curbuf->b_p_sts;
      else /* otherwise use 'tabstop' */
      --- 9605,9611 ----
      AppendToRedobuff((char_u *)"\t");

      if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
      ! temp = (int)get_sw_value();
      else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
      temp = (int)curbuf->b_p_sts;
      else /* otherwise use 'tabstop' */
      *** ../vim-7.3.628/src/ex_getln.c 2012-06-29 13:44:37.000000000 +0200
      --- src/ex_getln.c 2012-08-08 17:39:40.000000000 +0200
      ***************
      *** 2268,2277 ****

      if (c1 == Ctrl_T)
      {
      p = (char_u *)line_ga.ga_data;
      p[line_ga.ga_len] = NUL;
      indent = get_indent_str(p, 8);
      ! indent += curbuf->b_p_sw - indent % curbuf->b_p_sw;
      add_indent:
      while (get_indent_str(p, 8) < indent)
      {
      --- 2268,2279 ----

      if (c1 == Ctrl_T)
      {
      + long sw = get_sw_value();
      +
      p = (char_u *)line_ga.ga_data;
      p[line_ga.ga_len] = NUL;
      indent = get_indent_str(p, 8);
      ! indent += sw - indent % sw;
      add_indent:
      while (get_indent_str(p, 8) < indent)
      {
      ***************
      *** 2323,2329 ****
      p[line_ga.ga_len] = NUL;
      indent = get_indent_str(p, 8);
      --indent;
      ! indent -= indent % curbuf->b_p_sw;
      }
      while (get_indent_str(p, 8) > indent)
      {
      --- 2325,2331 ----
      p[line_ga.ga_len] = NUL;
      indent = get_indent_str(p, 8);
      --indent;
      ! indent -= indent % get_sw_value();
      }
      while (get_indent_str(p, 8) > indent)
      {
      *** ../vim-7.3.628/src/fold.c 2012-02-29 19:19:57.000000000 +0100
      --- src/fold.c 2012-08-08 17:40:11.000000000 +0200
      ***************
      *** 3025,3031 ****
      flp->lvl = -1;
      }
      else
      ! flp->lvl = get_indent_buf(buf, lnum) / buf->b_p_sw;
      if (flp->lvl > flp->wp->w_p_fdn)
      {
      flp->lvl = flp->wp->w_p_fdn;
      --- 3025,3031 ----
      flp->lvl = -1;
      }
      else
      ! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value();
      if (flp->lvl > flp->wp->w_p_fdn)
      {
      flp->lvl = flp->wp->w_p_fdn;
      *** ../vim-7.3.628/src/misc1.c 2012-07-25 16:09:59.000000000 +0200
      --- src/misc1.c 2012-08-08 17:43:07.000000000 +0200
      ***************
      *** 1389,1397 ****
      #ifdef FEAT_SMARTINDENT
      if (did_si)
      {
      if (p_sr)
      ! newindent -= newindent % (int)curbuf->b_p_sw;
      ! newindent += (int)curbuf->b_p_sw;
      }
      #endif
      /* Copy the indent */
      --- 1389,1399 ----
      #ifdef FEAT_SMARTINDENT
      if (did_si)
      {
      + int sw = (int)get_sw_value();
      +
      if (p_sr)
      ! newindent -= newindent % sw;
      ! newindent += sw;
      }
      #endif
      /* Copy the indent */
      ***************
      *** 6461,6471 ****
      int
      get_c_indent()
      {
      /*
      * spaces from a block's opening brace the prevailing indent for that
      * block should be
      */
      ! int ind_level = curbuf->b_p_sw;

      /*
      * spaces from the edge of the line an open brace that's at the end of a
      --- 6463,6476 ----
      int
      get_c_indent()
      {
      + int sw = (int)get_sw_value();
      +
      /*
      * spaces from a block's opening brace the prevailing indent for that
      * block should be
      */
      !
      ! int ind_level = sw;

      /*
      * spaces from the edge of the line an open brace that's at the end of a
      ***************
      *** 6512,6523 ****
      /*
      * spaces from the switch() indent a "case xx" label should be located
      */
      ! int ind_case = curbuf->b_p_sw;

      /*
      * spaces from the "case xx:" code after a switch() should be located
      */
      ! int ind_case_code = curbuf->b_p_sw;

      /*
      * lineup break at end of case in switch() with case label
      --- 6517,6528 ----
      /*
      * spaces from the switch() indent a "case xx" label should be located
      */
      ! int ind_case = sw;

      /*
      * spaces from the "case xx:" code after a switch() should be located
      */
      ! int ind_case_code = sw;

      /*
      * lineup break at end of case in switch() with case label
      ***************
      *** 6528,6572 ****
      * spaces from the class declaration indent a scope declaration label
      * should be located
      */
      ! int ind_scopedecl = curbuf->b_p_sw;

      /*
      * spaces from the scope declaration label code should be located
      */
      ! int ind_scopedecl_code = curbuf->b_p_sw;

      /*
      * amount K&R-style parameters should be indented
      */
      ! int ind_param = curbuf->b_p_sw;

      /*
      * amount a function type spec should be indented
      */
      ! int ind_func_type = curbuf->b_p_sw;

      /*
      * amount a cpp base class declaration or constructor initialization
      * should be indented
      */
      ! int ind_cpp_baseclass = curbuf->b_p_sw;

      /*
      * additional spaces beyond the prevailing indent a continuation line
      * should be located
      */
      ! int ind_continuation = curbuf->b_p_sw;

      /*
      * spaces from the indent of the line with an unclosed parentheses
      */
      ! int ind_unclosed = curbuf->b_p_sw * 2;

      /*
      * spaces from the indent of the line with an unclosed parentheses, which
      * itself is also unclosed
      */
      ! int ind_unclosed2 = curbuf->b_p_sw;

      /*
      * suppress ignoring spaces from the indent of a line starting with an
      --- 6533,6577 ----
      * spaces from the class declaration indent a scope declaration label
      * should be located
      */
      ! int ind_scopedecl = sw;

      /*
      * spaces from the scope declaration label code should be located
      */
      ! int ind_scopedecl_code = sw;

      /*
      * amount K&R-style parameters should be indented
      */
      ! int ind_param = sw;

      /*
      * amount a function type spec should be indented
      */
      ! int ind_func_type = sw;

      /*
      * amount a cpp base class declaration or constructor initialization
      * should be indented
      */
      ! int ind_cpp_baseclass = sw;

      /*
      * additional spaces beyond the prevailing indent a continuation line
      * should be located
      */
      ! int ind_continuation = sw;

      /*
      * spaces from the indent of the line with an unclosed parentheses
      */
      ! int ind_unclosed = sw * 2;

      /*
      * spaces from the indent of the line with an unclosed parentheses, which
      * itself is also unclosed
      */
      ! int ind_unclosed2 = sw;

      /*
      * suppress ignoring spaces from the indent of a line starting with an
      ***************
      *** 6719,6730 ****
      if (*options == 's') /* "2s" means two times 'shiftwidth' */
      {
      if (options == digits)
      ! n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
      else
      {
      ! n *= curbuf->b_p_sw;
      if (divider)
      ! n += (curbuf->b_p_sw * fraction + divider / 2) / divider;
      }
      ++options;
      }
      --- 6724,6735 ----
      if (*options == 's') /* "2s" means two times 'shiftwidth' */
      {
      if (options == digits)
      ! n = sw; /* just "s" is one 'shiftwidth' */
      else
      {
      ! n *= sw;
      if (divider)
      ! n += (sw * fraction + divider / 2) / divider;
      }
      ++options;
      }
      *** ../vim-7.3.628/src/ops.c 2012-07-10 16:49:08.000000000 +0200
      --- src/ops.c 2012-08-08 17:34:28.000000000 +0200
      ***************
      *** 332,338 ****
      {
      int count;
      int i, j;
      ! int p_sw = (int)curbuf->b_p_sw;

      count = get_indent(); /* get current indent */

      --- 332,338 ----
      {
      int count;
      int i, j;
      ! int p_sw = (int)get_sw_value();

      count = get_indent(); /* get current indent */

      ***************
      *** 388,394 ****
      int total;
      char_u *newp, *oldp;
      int oldcol = curwin->w_cursor.col;
      ! int p_sw = (int)curbuf->b_p_sw;
      int p_ts = (int)curbuf->b_p_ts;
      struct block_def bd;
      int incr;
      --- 388,394 ----
      int total;
      char_u *newp, *oldp;
      int oldcol = curwin->w_cursor.col;
      ! int p_sw = (int)get_sw_value();
      int p_ts = (int)curbuf->b_p_ts;
      struct block_def bd;
      int incr;
      *** ../vim-7.3.628/src/option.c 2012-07-10 18:31:49.000000000 +0200
      --- src/option.c 2012-08-08 17:45:01.000000000 +0200
      ***************
      *** 8125,8131 ****
      need_mouse_correct = TRUE;
      #endif

      ! if (curbuf->b_p_sw <= 0)
      {
      errmsg = e_positive;
      curbuf->b_p_sw = curbuf->b_p_ts;
      --- 8125,8131 ----
      need_mouse_correct = TRUE;
      #endif

      ! if (curbuf->b_p_sw < 0)
      {
      errmsg = e_positive;
      curbuf->b_p_sw = curbuf->b_p_ts;
      ***************
      *** 11419,11421 ****
      --- 11419,11431 ----
      {
      return check_opt_strings(p, p_ff_values, FALSE);
      }
      +
      + /*
      + * Return the effective shiftwidth value for current buffer, using the
      + * 'tabstop' value when 'shiftwidth' is zero.
      + */
      + long
      + get_sw_value()
      + {
      + return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
      + }
      *** ../vim-7.3.628/src/proto/option.pro 2011-01-22 00:11:42.000000000 +0100
      --- src/proto/option.pro 2012-08-08 17:34:33.000000000 +0200
      ***************
      *** 56,59 ****
      --- 56,60 ----
      void save_file_ff __ARGS((buf_T *buf));
      int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
      int check_ff_value __ARGS((char_u *p));
      + long get_sw_value __ARGS((void));
      /* vim: set ft=c : */
      *** ../vim-7.3.628/src/version.c 2012-08-08 17:31:36.000000000 +0200
      --- src/version.c 2012-08-08 17:57:48.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 629,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      228. You spend Saturday night making the counter on your home page
      pass that 2000 mark.

      /// Bram Moolenaar -- Bram@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.