Patch 7.4.1005
Problem:    Vim users are not always happy.
Solution:   Make them happy.
Files:      src/ex_cmds.h, src/ex_cmds.c, src/proto/ex_cmds.pro


*** ../vim-7.4.1004/src/ex_cmds.h       2015-09-08 18:46:04.341233631 +0200
--- src/ex_cmds.h       2015-12-31 15:25:24.767529154 +0100
***************
*** 1378,1383 ****
--- 1378,1386 ----
  EX(CMD_syncbind,      "syncbind",     ex_syncbind,
                        TRLBAR,
                        ADDR_LINES),
+ EX(CMD_smile,         "smile",        ex_smile,
+                       TRLBAR|CMDWIN|SBOXOK,
+                       ADDR_LINES),
  EX(CMD_t,             "t",            ex_copymove,
                        RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
                        ADDR_LINES),
*** ../vim-7.4.1004/src/ex_cmds.c       2015-12-17 15:07:28.829556034 +0100
--- src/ex_cmds.c       2015-12-31 15:58:12.406404176 +0100
***************
*** 6938,6946 ****
      int               sn_typenr;      /* type number of sign */
      char_u    *sn_name;       /* name of sign */
      char_u    *sn_icon;       /* name of pixmap */
! #ifdef FEAT_SIGN_ICONS
      void      *sn_image;      /* icon image */
! #endif
      char_u    *sn_text;       /* text used instead of pixmap */
      int               sn_line_hl;     /* highlight ID for line */
      int               sn_text_hl;     /* highlight ID for text */
--- 6938,6946 ----
      int               sn_typenr;      /* type number of sign */
      char_u    *sn_name;       /* name of sign */
      char_u    *sn_icon;       /* name of pixmap */
! # ifdef FEAT_SIGN_ICONS
      void      *sn_image;      /* icon image */
! # endif
      char_u    *sn_text;       /* text used instead of pixmap */
      int               sn_line_hl;     /* highlight ID for line */
      int               sn_text_hl;     /* highlight ID for text */
***************
*** 6955,6973 ****
  
  static char *cmds[] = {
                        "define",
! #define SIGNCMD_DEFINE        0
                        "undefine",
! #define SIGNCMD_UNDEFINE 1
                        "list",
! #define SIGNCMD_LIST  2
                        "place",
! #define SIGNCMD_PLACE 3
                        "unplace",
! #define SIGNCMD_UNPLACE       4
                        "jump",
! #define SIGNCMD_JUMP  5
                        NULL
! #define SIGNCMD_LAST  6
  };
  
  /*
--- 6955,6973 ----
  
  static char *cmds[] = {
                        "define",
! # define SIGNCMD_DEFINE       0
                        "undefine",
! # define SIGNCMD_UNDEFINE 1
                        "list",
! # define SIGNCMD_LIST 2
                        "place",
! # define SIGNCMD_PLACE        3
                        "unplace",
! # define SIGNCMD_UNPLACE 4
                        "jump",
! # define SIGNCMD_JUMP 5
                        NULL
! # define SIGNCMD_LAST 6
  };
  
  /*
***************
*** 7110,7116 ****
                        vim_free(sp->sn_icon);
                        sp->sn_icon = vim_strnsave(arg, (int)(p - arg));
                        backslash_halve(sp->sn_icon);
! #ifdef FEAT_SIGN_ICONS
                        if (gui.in_use)
                        {
                            out_flush();
--- 7110,7116 ----
                        vim_free(sp->sn_icon);
                        sp->sn_icon = vim_strnsave(arg, (int)(p - arg));
                        backslash_halve(sp->sn_icon);
! # ifdef FEAT_SIGN_ICONS
                        if (gui.in_use)
                        {
                            out_flush();
***************
*** 7118,7124 ****
                                gui_mch_destroy_sign(sp->sn_image);
                            sp->sn_image = gui_mch_register_sign(sp->sn_icon);
                        }
! #endif
                    }
                    else if (STRNCMP(arg, "text=", 5) == 0)
                    {
--- 7118,7124 ----
                                gui_mch_destroy_sign(sp->sn_image);
                            sp->sn_image = gui_mch_register_sign(sp->sn_icon);
                        }
! # endif
                    }
                    else if (STRNCMP(arg, "text=", 5) == 0)
                    {
***************
*** 7127,7133 ****
                        int     len;
  
                        arg += 5;
! #ifdef FEAT_MBYTE
                        /* Count cells and check for non-printable chars */
                        if (has_mbyte)
                        {
--- 7127,7133 ----
                        int     len;
  
                        arg += 5;
! # ifdef FEAT_MBYTE
                        /* Count cells and check for non-printable chars */
                        if (has_mbyte)
                        {
***************
*** 7140,7146 ****
                            }
                        }
                        else
! #endif
                        {
                            for (s = arg; s < p; ++s)
                                if (!vim_isprintc(*s))
--- 7140,7146 ----
                            }
                        }
                        else
! # endif
                        {
                            for (s = arg; s < p; ++s)
                                if (!vim_isprintc(*s))
***************
*** 7343,7351 ****
                    do_cmdline_cmd(cmd);
                    vim_free(cmd);
                }
! #ifdef FEAT_FOLDING
                foldOpenCursor();
! #endif
            }
            else
                EMSGN(_("E157: Invalid sign ID: %ld"), id);
--- 7343,7351 ----
                    do_cmdline_cmd(cmd);
                    vim_free(cmd);
                }
! # ifdef FEAT_FOLDING
                foldOpenCursor();
! # endif
            }
            else
                EMSGN(_("E157: Invalid sign ID: %ld"), id);
***************
*** 7395,7401 ****
      }
  }
  
! #if defined(FEAT_SIGN_ICONS) || defined(PROTO)
  /*
   * Allocate the icons.  Called when the GUI has started.  Allows defining
   * signs before it starts.
--- 7395,7401 ----
      }
  }
  
! # if defined(FEAT_SIGN_ICONS) || defined(PROTO)
  /*
   * Allocate the icons.  Called when the GUI has started.  Allows defining
   * signs before it starts.
***************
*** 7409,7415 ****
        if (sp->sn_icon != NULL)
            sp->sn_image = gui_mch_register_sign(sp->sn_icon);
  }
! #endif
  
  /*
   * List one sign.
--- 7409,7415 ----
        if (sp->sn_icon != NULL)
            sp->sn_image = gui_mch_register_sign(sp->sn_icon);
  }
! # endif
  
  /*
   * List one sign.
***************
*** 7425,7436 ****
      {
        MSG_PUTS(" icon=");
        msg_outtrans(sp->sn_icon);
! #ifdef FEAT_SIGN_ICONS
        if (sp->sn_image == NULL)
            MSG_PUTS(_(" (NOT FOUND)"));
! #else
        MSG_PUTS(_(" (not supported)"));
! #endif
      }
      if (sp->sn_text != NULL)
      {
--- 7425,7436 ----
      {
        MSG_PUTS(" icon=");
        msg_outtrans(sp->sn_icon);
! # ifdef FEAT_SIGN_ICONS
        if (sp->sn_image == NULL)
            MSG_PUTS(_(" (NOT FOUND)"));
! # else
        MSG_PUTS(_(" (not supported)"));
! # endif
      }
      if (sp->sn_text != NULL)
      {
***************
*** 7467,7479 ****
  {
      vim_free(sp->sn_name);
      vim_free(sp->sn_icon);
! #ifdef FEAT_SIGN_ICONS
      if (sp->sn_image != NULL)
      {
        out_flush();
        gui_mch_destroy_sign(sp->sn_image);
      }
! #endif
      vim_free(sp->sn_text);
      if (sp_prev == NULL)
        first_sign = sp->sn_next;
--- 7467,7479 ----
  {
      vim_free(sp->sn_name);
      vim_free(sp->sn_icon);
! # ifdef FEAT_SIGN_ICONS
      if (sp->sn_image != NULL)
      {
        out_flush();
        gui_mch_destroy_sign(sp->sn_image);
      }
! # endif
      vim_free(sp->sn_text);
      if (sp_prev == NULL)
        first_sign = sp->sn_next;
***************
*** 7527,7533 ****
      return NULL;
  }
  
! #if defined(FEAT_SIGN_ICONS) || defined(PROTO)
      void *
  sign_get_image(typenr)
      int               typenr;         /* the attribute which may have a sign 
*/
--- 7527,7533 ----
      return NULL;
  }
  
! # if defined(FEAT_SIGN_ICONS) || defined(PROTO)
      void *
  sign_get_image(typenr)
      int               typenr;         /* the attribute which may have a sign 
*/
***************
*** 7539,7545 ****
            return sp->sn_image;
      return NULL;
  }
! #endif
  
  /*
   * Get the name of a sign by its typenr.
--- 7539,7545 ----
            return sp->sn_image;
      return NULL;
  }
! # endif
  
  /*
   * Get the name of a sign by its typenr.
***************
*** 7556,7562 ****
      return (char_u *)_("[Deleted]");
  }
  
! #if defined(EXITFREE) || defined(PROTO)
  /*
   * Undefine/free all signs.
   */
--- 7556,7562 ----
      return (char_u *)_("[Deleted]");
  }
  
! # if defined(EXITFREE) || defined(PROTO)
  /*
   * Undefine/free all signs.
   */
***************
*** 7566,7574 ****
      while (first_sign != NULL)
        sign_undefine(first_sign, NULL);
  }
! #endif
  
! #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
  static enum
  {
      EXP_SUBCMD,               /* expand :sign sub-commands */
--- 7566,7574 ----
      while (first_sign != NULL)
        sign_undefine(first_sign, NULL);
  }
! # endif
  
! # if defined(FEAT_CMDL_COMPL) || defined(PROTO)
  static enum
  {
      EXP_SUBCMD,               /* expand :sign sub-commands */
***************
*** 7746,7753 ****
        }
      }
  }
  #endif
! #endif
  
  #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
  /*
--- 7746,7775 ----
        }
      }
  }
+ # endif
  #endif
! 
! /*
!  * Make the user happy.
!  */
!     void
! ex_smile(eap)
!     exarg_T   *eap UNUSED;
! {
!     static char *code = "\34 \4o\14$\4ox\30 \2o\30$\1ox\25 \2o\36$\1o\11 
\1o\1$\3 \2$\1 \1o\1$x\5 \1o\1 \1$\1 \2o\10 \1o\44$\1o\7 \2$\1 \2$\1 
\2$\1o\1$x\2 \2o\1 \1$\1 \1$\1 \1\"\1$\6 \1o\11$\4 \15$\4 \11$\1o\7 
\3$\1o\2$\1o\1$x\2 \1\"\6$\1o\1$\5 \1o\11$\6 \13$\6 \12$\1o\4 \10$x\4 \7$\4 
\13$\6 \13$\6 \27$x\4 \27$\4 \15$\4 \16$\2 \3\"\3$x\5 \1\"\3$\4\"\61$\5 
\1\"\3$x\6 \3$\3 \1o\62$\5 \1\"\3$\1ox\5 \1o\2$\1\"\3 \63$\7 \3$\1ox\5 \3$\4 
\55$\1\"\1 \1\"\6$\5o\4$\1ox\4 \1o\3$\4o\5$\2 \45$\3 \1o\21$x\4 \10$\1\"\4$\3 
\42$\5 \4$\10\"x\3 \4\"\7 \4$\4 \1\"\34$\1\"\6 \1o\3$x\16 \1\"\3$\1o\5 
\3\"\22$\1\"\2$\1\"\11 \3$x\20 \3$\1o\12 \1\"\2$\2\"\6$\4\"\13 \1o\3$x\21 
\4$\1o\40 \1o\3$\1\"x\22 \1\"\4$\1o\6 \1o\6$\1o\1\"\4$\1o\10 \1o\4$x\24 
\1\"\5$\2o\5 \2\"\4$\1o\5$\1o\3 \1o\4$\2\"x\27 \2\"\5$\4o\2 
\1\"\3$\1o\11$\3\"x\32 \2\"\7$\2o\1 \12$x\42 \4\"\13$x\46 \14$x\47 \12$\1\"x\50 
\1\"\3$\4\"x";
!     char *p;
!     int n;
! 
!     msg_start();
!     msg_putchar('\n');
!     for (p = code; *p != NUL; ++p)
!       if (*p == 'x')
!           msg_putchar('\n');
!       else
!           for (n = *p++; n > 0; --n)
!               msg_putchar(*p);
!     msg_clr_eos();
! }
  
  #if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
  /*
*** ../vim-7.4.1004/src/proto/ex_cmds.pro       2014-09-19 19:39:30.766446025 
+0200
--- src/proto/ex_cmds.pro       2015-12-31 15:29:49.360689705 +0100
***************
*** 61,65 ****
--- 61,66 ----
  void free_signs __ARGS((void));
  char_u *get_sign_name __ARGS((expand_T *xp, int idx));
  void set_context_in_sign_cmd __ARGS((expand_T *xp, char_u *arg));
+ void ex_smile __ARGS((exarg_T *eap));
  void ex_drop __ARGS((exarg_T *eap));
  /* vim: set ft=c : */
*** ../vim-7.4.1004/src/version.c       2015-12-30 17:56:01.815380914 +0100
--- src/version.c       2015-12-31 15:25:56.747186006 +0100
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     1005,
  /**/


-- 
    f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng

 /// Bram Moolenaar -- [email protected] -- 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui