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

Patch 7.3.1260

Expand Messages
  • Bram Moolenaar
    Patch 7.3.1260 Problem: User completion does not get the whole command line in the command line window. Solution: Pass on the whole command line. (Daniel
    Message 1 of 1 , Jun 29, 2013
    • 0 Attachment
      Patch 7.3.1260
      Problem: User completion does not get the whole command line in the command
      line window.
      Solution: Pass on the whole command line. (Daniel Thau)
      Files: src/ex_getln.c, src/structs.h


      *** ../vim-7.3.1259/src/ex_getln.c 2013-06-23 16:16:13.000000000 +0200
      --- src/ex_getln.c 2013-06-29 12:53:30.000000000 +0200
      ***************
      *** 3729,3734 ****
      --- 3729,3735 ----
      #if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
      xp->xp_arg = NULL;
      #endif
      + xp->xp_line = NULL;
      }

      /*
      ***************
      *** 4378,4383 ****
      --- 4379,4389 ----
      int old_char = NUL;
      char_u *nextcomm;

      + /* Store the string here so that call_user_expand_func() can get to them
      + * easily. */
      + xp->xp_line = str;
      + xp->xp_col = col;
      +
      /*
      * Avoid a UMR warning from Purify, only save the character if it has been
      * written before.
      ***************
      *** 4952,4978 ****
      void *ret;
      struct cmdline_info save_ccline;

      ! if (xp->xp_arg == NULL || xp->xp_arg[0] == '\0')
      return NULL;
      *num_file = 0;
      *file = NULL;

      ! if (ccline.cmdbuff == NULL)
      {
      - /* Completion from Insert mode, pass fake arguments. */
      - keep = 0;
      - sprintf((char *)num, "%d", (int)STRLEN(xp->xp_pattern));
      - args[1] = xp->xp_pattern;
      - }
      - else
      - {
      - /* Completion on the command line, pass real arguments. */
      keep = ccline.cmdbuff[ccline.cmdlen];
      ccline.cmdbuff[ccline.cmdlen] = 0;
      - sprintf((char *)num, "%d", ccline.cmdpos);
      - args[1] = ccline.cmdbuff;
      }
      args[0] = vim_strnsave(xp->xp_pattern, xp->xp_pattern_len);
      args[2] = num;

      /* Save the cmdline, we don't know what the function may do. */
      --- 4958,4977 ----
      void *ret;
      struct cmdline_info save_ccline;

      ! if (xp->xp_arg == NULL || xp->xp_arg[0] == '\0' || xp->xp_line == NULL)
      return NULL;
      *num_file = 0;
      *file = NULL;

      ! if (ccline.cmdbuff != NULL)
      {
      keep = ccline.cmdbuff[ccline.cmdlen];
      ccline.cmdbuff[ccline.cmdlen] = 0;
      }
      +
      args[0] = vim_strnsave(xp->xp_pattern, xp->xp_pattern_len);
      + args[1] = xp->xp_line;
      + sprintf((char *)num, "%d", xp->xp_col);
      args[2] = num;

      /* Save the cmdline, we don't know what the function may do. */
      *** ../vim-7.3.1259/src/structs.h 2013-06-12 19:52:11.000000000 +0200
      --- src/structs.h 2013-06-29 12:47:03.000000000 +0200
      ***************
      *** 493,498 ****
      --- 493,500 ----
      int xp_numfiles; /* number of files found by
      file name completion */
      char_u **xp_files; /* list of files */
      + char_u *xp_line; /* text being completed */
      + int xp_col; /* cursor position in line */
      } expand_T;

      /* values for xp_backslash */
      *** ../vim-7.3.1259/src/version.c 2013-06-29 12:10:22.000000000 +0200
      --- src/version.c 2013-06-29 12:41:08.000000000 +0200
      ***************
      *** 730,731 ****
      --- 730,733 ----
      { /* Add new patch number below this line */
      + /**/
      + 1260,
      /**/

      --
      This is the polymorph virus! Follow these instructions carefully:
      1. Send this message to everybody you know.
      2. Format your harddisk.
      Thank you for your cooperation in spreading the most powerful virus ever!

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

      ---
      You received this message because you are subscribed to the Google Groups "vim_dev" group.
      To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    Your message has been successfully submitted and would be delivered to recipients shortly.