# HG changeset patch # User Christian Brabandt # Date 1451574907 -3600 # Node ID 2c63e9ecf29d76f613bd426156e6550729d432fc # Parent 254d2d36b143ec05d9ee94ddd4bf2057990f8384 commit https://github.com/vim/vim/commit/86e179dbe75010e9545e1a2fcc92a15d57bf27fd Author: Bram Moolenaar Date: Thu Dec 31 16:10:23 2015 +0100 patch 7.4.1005 Problem: Vim users are not always happy. Solution: Make them happy. diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -6938,9 +6938,9 @@ struct sign 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 +# ifdef FEAT_SIGN_ICONS void *sn_image; /* icon image */ -#endif +# 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,19 +6955,19 @@ static void sign_undefine __ARGS((sign_T static char *cmds[] = { "define", -#define SIGNCMD_DEFINE 0 +# define SIGNCMD_DEFINE 0 "undefine", -#define SIGNCMD_UNDEFINE 1 +# define SIGNCMD_UNDEFINE 1 "list", -#define SIGNCMD_LIST 2 +# define SIGNCMD_LIST 2 "place", -#define SIGNCMD_PLACE 3 +# define SIGNCMD_PLACE 3 "unplace", -#define SIGNCMD_UNPLACE 4 +# define SIGNCMD_UNPLACE 4 "jump", -#define SIGNCMD_JUMP 5 +# define SIGNCMD_JUMP 5 NULL -#define SIGNCMD_LAST 6 +# define SIGNCMD_LAST 6 }; /* @@ -7110,7 +7110,7 @@ ex_sign(eap) vim_free(sp->sn_icon); sp->sn_icon = vim_strnsave(arg, (int)(p - arg)); backslash_halve(sp->sn_icon); -#ifdef FEAT_SIGN_ICONS +# ifdef FEAT_SIGN_ICONS if (gui.in_use) { out_flush(); @@ -7118,7 +7118,7 @@ ex_sign(eap) gui_mch_destroy_sign(sp->sn_image); sp->sn_image = gui_mch_register_sign(sp->sn_icon); } -#endif +# endif } else if (STRNCMP(arg, "text=", 5) == 0) { @@ -7127,7 +7127,7 @@ ex_sign(eap) int len; arg += 5; -#ifdef FEAT_MBYTE +# ifdef FEAT_MBYTE /* Count cells and check for non-printable chars */ if (has_mbyte) { @@ -7140,7 +7140,7 @@ ex_sign(eap) } } else -#endif +# endif { for (s = arg; s < p; ++s) if (!vim_isprintc(*s)) @@ -7343,9 +7343,9 @@ ex_sign(eap) do_cmdline_cmd(cmd); vim_free(cmd); } -#ifdef FEAT_FOLDING +# ifdef FEAT_FOLDING foldOpenCursor(); -#endif +# endif } else EMSGN(_("E157: Invalid sign ID: %ld"), id); @@ -7395,7 +7395,7 @@ ex_sign(eap) } } -#if defined(FEAT_SIGN_ICONS) || defined(PROTO) +# if defined(FEAT_SIGN_ICONS) || defined(PROTO) /* * Allocate the icons. Called when the GUI has started. Allows defining * signs before it starts. @@ -7409,7 +7409,7 @@ sign_gui_started() if (sp->sn_icon != NULL) sp->sn_image = gui_mch_register_sign(sp->sn_icon); } -#endif +# endif /* * List one sign. @@ -7425,12 +7425,12 @@ sign_list_defined(sp) { MSG_PUTS(" icon="); msg_outtrans(sp->sn_icon); -#ifdef FEAT_SIGN_ICONS +# ifdef FEAT_SIGN_ICONS if (sp->sn_image == NULL) MSG_PUTS(_(" (NOT FOUND)")); -#else +# else MSG_PUTS(_(" (not supported)")); -#endif +# endif } if (sp->sn_text != NULL) { @@ -7467,13 +7467,13 @@ sign_undefine(sp, sp_prev) { vim_free(sp->sn_name); vim_free(sp->sn_icon); -#ifdef FEAT_SIGN_ICONS +# ifdef FEAT_SIGN_ICONS if (sp->sn_image != NULL) { out_flush(); gui_mch_destroy_sign(sp->sn_image); } -#endif +# endif vim_free(sp->sn_text); if (sp_prev == NULL) first_sign = sp->sn_next; @@ -7527,7 +7527,7 @@ sign_get_text(typenr) return NULL; } -#if defined(FEAT_SIGN_ICONS) || defined(PROTO) +# if defined(FEAT_SIGN_ICONS) || defined(PROTO) void * sign_get_image(typenr) int typenr; /* the attribute which may have a sign */ @@ -7539,7 +7539,7 @@ sign_get_image(typenr) return sp->sn_image; return NULL; } -#endif +# endif /* * Get the name of a sign by its typenr. @@ -7556,7 +7556,7 @@ sign_typenr2name(typenr) return (char_u *)_("[Deleted]"); } -#if defined(EXITFREE) || defined(PROTO) +# if defined(EXITFREE) || defined(PROTO) /* * Undefine/free all signs. */ @@ -7566,9 +7566,9 @@ free_signs() while (first_sign != NULL) sign_undefine(first_sign, NULL); } -#endif - -#if defined(FEAT_CMDL_COMPL) || defined(PROTO) +# endif + +# if defined(FEAT_CMDL_COMPL) || defined(PROTO) static enum { EXP_SUBCMD, /* expand :sign sub-commands */ @@ -7746,8 +7746,30 @@ set_context_in_sign_cmd(xp, arg) } } } -#endif -#endif +# 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) /* diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -1378,6 +1378,9 @@ EX(CMD_syntime, "syntime", ex_syntime, 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), diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro --- a/src/proto/ex_cmds.pro +++ b/src/proto/ex_cmds.pro @@ -61,5 +61,6 @@ char_u *sign_typenr2name __ARGS((int typ 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 : */ diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1005, +/**/ 1004, /**/ 1003,