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

Patch 7.3.596

Expand Messages
  • Bram Moolenaar
    Patch 7.3.596 Problem: Can t remove all signs for a file or buffer. Solution: Support * for the sign id. (Christian Brabandt) Files:
    Message 1 of 1 , Jul 10 6:18 AM
    • 0 Attachment
      Patch 7.3.596
      Problem: Can't remove all signs for a file or buffer.
      Solution: Support "*" for the sign id. (Christian Brabandt)
      Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
      src/proto/buffer.pro


      *** ../vim-7.3.595/runtime/doc/sign.txt 2010-08-15 21:57:17.000000000 +0200
      --- runtime/doc/sign.txt 2012-07-10 15:05:19.000000000 +0200
      ***************
      *** 150,157 ****
      Remove the previously placed sign {id} from file {fname}.
      See remark above about {fname} |:sign-fname|.

      :sign unplace {id} buffer={nr}
      ! Same, but use buffer {nr}.

      :sign unplace {id}
      Remove the previously placed sign {id} from all files it
      --- 153,166 ----
      Remove the previously placed sign {id} from file {fname}.
      See remark above about {fname} |:sign-fname|.

      + :sign unplace * file={fname}
      + Remove all placed signs in file {fname}.
      +
      :sign unplace {id} buffer={nr}
      ! Remove the previously placed sign {id} from buffer {nr}.
      !
      ! :sign unplace * buffer={nr}
      ! Remove all placed signs in buffer {nr}.

      :sign unplace {id}
      Remove the previously placed sign {id} from all files it
      *** ../vim-7.3.595/src/buffer.c 2012-07-06 16:21:58.000000000 +0200
      --- src/buffer.c 2012-07-10 15:06:05.000000000 +0200
      ***************
      *** 57,63 ****

      #if defined(FEAT_SIGNS)
      static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
      - static void buf_delete_signs __ARGS((buf_T *buf));
      #endif

      #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
      --- 57,62 ----
      ***************
      *** 5537,5543 ****
      /*
      * Delete signs in buffer "buf".
      */
      ! static void
      buf_delete_signs(buf)
      buf_T *buf;
      {
      --- 5536,5542 ----
      /*
      * Delete signs in buffer "buf".
      */
      ! void
      buf_delete_signs(buf)
      buf_T *buf;
      {
      *** ../vim-7.3.595/src/ex_cmds.c 2012-05-18 16:24:06.000000000 +0200
      --- src/ex_cmds.c 2012-07-10 15:14:22.000000000 +0200
      ***************
      *** 6997,7002 ****
      --- 6997,7012 ----
      lnum = atoi((char *)arg);
      arg = skiptowhite(arg);
      }
      + else if (STRNCMP(arg, "*", 1) == 0 && idx == SIGNCMD_UNPLACE)
      + {
      + if (id != -1)
      + {
      + EMSG(_(e_invarg));
      + return;
      + }
      + id = -2;
      + arg = skiptowhite(arg + 1);
      + }
      else if (STRNCMP(arg, "name=", 5) == 0)
      {
      arg += 5;
      ***************
      *** 7033,7039 ****
      {
      EMSG2(_("E158: Invalid buffer name: %s"), arg);
      }
      ! else if (id <= 0)
      {
      if (lnum >= 0 || sign_name != NULL)
      EMSG(_(e_invarg));
      --- 7043,7049 ----
      {
      EMSG2(_("E158: Invalid buffer name: %s"), arg);
      }
      ! else if (id <= 0 && !(idx == SIGNCMD_UNPLACE && id == -2))
      {
      if (lnum >= 0 || sign_name != NULL)
      EMSG(_(e_invarg));
      ***************
      *** 7074,7084 ****
      }
      else if (idx == SIGNCMD_UNPLACE)
      {
      - /* ":sign unplace {id} file={fname}" */
      if (lnum >= 0 || sign_name != NULL)
      EMSG(_(e_invarg));
      else
      {
      lnum = buf_delsign(buf, id);
      update_debug_sign(buf, lnum);
      }
      --- 7084,7100 ----
      }
      else if (idx == SIGNCMD_UNPLACE)
      {
      if (lnum >= 0 || sign_name != NULL)
      EMSG(_(e_invarg));
      + else if (id == -2)
      + {
      + /* ":sign unplace * file={fname}" */
      + redraw_buf_later(buf, NOT_VALID);
      + buf_delete_signs(buf);
      + }
      else
      {
      + /* ":sign unplace {id} file={fname}" */
      lnum = buf_delsign(buf, id);
      update_debug_sign(buf, lnum);
      }
      *** ../vim-7.3.595/src/proto/buffer.pro 2012-02-22 14:58:24.000000000 +0100
      --- src/proto/buffer.pro 2012-07-10 15:06:10.000000000 +0200
      ***************
      *** 60,65 ****
      --- 60,66 ----
      int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
      int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
      int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
      + void buf_delete_signs __ARGS((buf_T *buf));
      void buf_delete_all_signs __ARGS((void));
      void sign_list_placed __ARGS((buf_T *rbuf));
      void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
      *** ../vim-7.3.595/src/version.c 2012-07-10 14:56:42.000000000 +0200
      --- src/version.c 2012-07-10 15:16:40.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 596,
      /**/

      --
      hundred-and-one symptoms of being an internet addict:
      105. When someone asks you for your address, you tell them your URL.

      /// 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.