mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 7.4.1005
Problem: Vim users are not always happy. Solution: Make them happy.
This commit is contained in:
@@ -6938,9 +6938,9 @@ struct sign
|
|||||||
int sn_typenr; /* type number of sign */
|
int sn_typenr; /* type number of sign */
|
||||||
char_u *sn_name; /* name of sign */
|
char_u *sn_name; /* name of sign */
|
||||||
char_u *sn_icon; /* name of pixmap */
|
char_u *sn_icon; /* name of pixmap */
|
||||||
#ifdef FEAT_SIGN_ICONS
|
# ifdef FEAT_SIGN_ICONS
|
||||||
void *sn_image; /* icon image */
|
void *sn_image; /* icon image */
|
||||||
#endif
|
# endif
|
||||||
char_u *sn_text; /* text used instead of pixmap */
|
char_u *sn_text; /* text used instead of pixmap */
|
||||||
int sn_line_hl; /* highlight ID for line */
|
int sn_line_hl; /* highlight ID for line */
|
||||||
int sn_text_hl; /* highlight ID for text */
|
int sn_text_hl; /* highlight ID for text */
|
||||||
@@ -6955,19 +6955,19 @@ static void sign_undefine __ARGS((sign_T *sp, sign_T *sp_prev));
|
|||||||
|
|
||||||
static char *cmds[] = {
|
static char *cmds[] = {
|
||||||
"define",
|
"define",
|
||||||
#define SIGNCMD_DEFINE 0
|
# define SIGNCMD_DEFINE 0
|
||||||
"undefine",
|
"undefine",
|
||||||
#define SIGNCMD_UNDEFINE 1
|
# define SIGNCMD_UNDEFINE 1
|
||||||
"list",
|
"list",
|
||||||
#define SIGNCMD_LIST 2
|
# define SIGNCMD_LIST 2
|
||||||
"place",
|
"place",
|
||||||
#define SIGNCMD_PLACE 3
|
# define SIGNCMD_PLACE 3
|
||||||
"unplace",
|
"unplace",
|
||||||
#define SIGNCMD_UNPLACE 4
|
# define SIGNCMD_UNPLACE 4
|
||||||
"jump",
|
"jump",
|
||||||
#define SIGNCMD_JUMP 5
|
# define SIGNCMD_JUMP 5
|
||||||
NULL
|
NULL
|
||||||
#define SIGNCMD_LAST 6
|
# define SIGNCMD_LAST 6
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -7110,7 +7110,7 @@ ex_sign(eap)
|
|||||||
vim_free(sp->sn_icon);
|
vim_free(sp->sn_icon);
|
||||||
sp->sn_icon = vim_strnsave(arg, (int)(p - arg));
|
sp->sn_icon = vim_strnsave(arg, (int)(p - arg));
|
||||||
backslash_halve(sp->sn_icon);
|
backslash_halve(sp->sn_icon);
|
||||||
#ifdef FEAT_SIGN_ICONS
|
# ifdef FEAT_SIGN_ICONS
|
||||||
if (gui.in_use)
|
if (gui.in_use)
|
||||||
{
|
{
|
||||||
out_flush();
|
out_flush();
|
||||||
@@ -7118,7 +7118,7 @@ ex_sign(eap)
|
|||||||
gui_mch_destroy_sign(sp->sn_image);
|
gui_mch_destroy_sign(sp->sn_image);
|
||||||
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
|
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
else if (STRNCMP(arg, "text=", 5) == 0)
|
else if (STRNCMP(arg, "text=", 5) == 0)
|
||||||
{
|
{
|
||||||
@@ -7127,7 +7127,7 @@ ex_sign(eap)
|
|||||||
int len;
|
int len;
|
||||||
|
|
||||||
arg += 5;
|
arg += 5;
|
||||||
#ifdef FEAT_MBYTE
|
# ifdef FEAT_MBYTE
|
||||||
/* Count cells and check for non-printable chars */
|
/* Count cells and check for non-printable chars */
|
||||||
if (has_mbyte)
|
if (has_mbyte)
|
||||||
{
|
{
|
||||||
@@ -7140,7 +7140,7 @@ ex_sign(eap)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
# endif
|
||||||
{
|
{
|
||||||
for (s = arg; s < p; ++s)
|
for (s = arg; s < p; ++s)
|
||||||
if (!vim_isprintc(*s))
|
if (!vim_isprintc(*s))
|
||||||
@@ -7343,9 +7343,9 @@ ex_sign(eap)
|
|||||||
do_cmdline_cmd(cmd);
|
do_cmdline_cmd(cmd);
|
||||||
vim_free(cmd);
|
vim_free(cmd);
|
||||||
}
|
}
|
||||||
#ifdef FEAT_FOLDING
|
# ifdef FEAT_FOLDING
|
||||||
foldOpenCursor();
|
foldOpenCursor();
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
EMSGN(_("E157: Invalid sign ID: %ld"), id);
|
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
|
* Allocate the icons. Called when the GUI has started. Allows defining
|
||||||
* signs before it starts.
|
* signs before it starts.
|
||||||
@@ -7409,7 +7409,7 @@ sign_gui_started()
|
|||||||
if (sp->sn_icon != NULL)
|
if (sp->sn_icon != NULL)
|
||||||
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
|
sp->sn_image = gui_mch_register_sign(sp->sn_icon);
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* List one sign.
|
* List one sign.
|
||||||
@@ -7425,12 +7425,12 @@ sign_list_defined(sp)
|
|||||||
{
|
{
|
||||||
MSG_PUTS(" icon=");
|
MSG_PUTS(" icon=");
|
||||||
msg_outtrans(sp->sn_icon);
|
msg_outtrans(sp->sn_icon);
|
||||||
#ifdef FEAT_SIGN_ICONS
|
# ifdef FEAT_SIGN_ICONS
|
||||||
if (sp->sn_image == NULL)
|
if (sp->sn_image == NULL)
|
||||||
MSG_PUTS(_(" (NOT FOUND)"));
|
MSG_PUTS(_(" (NOT FOUND)"));
|
||||||
#else
|
# else
|
||||||
MSG_PUTS(_(" (not supported)"));
|
MSG_PUTS(_(" (not supported)"));
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
if (sp->sn_text != NULL)
|
if (sp->sn_text != NULL)
|
||||||
{
|
{
|
||||||
@@ -7467,13 +7467,13 @@ sign_undefine(sp, sp_prev)
|
|||||||
{
|
{
|
||||||
vim_free(sp->sn_name);
|
vim_free(sp->sn_name);
|
||||||
vim_free(sp->sn_icon);
|
vim_free(sp->sn_icon);
|
||||||
#ifdef FEAT_SIGN_ICONS
|
# ifdef FEAT_SIGN_ICONS
|
||||||
if (sp->sn_image != NULL)
|
if (sp->sn_image != NULL)
|
||||||
{
|
{
|
||||||
out_flush();
|
out_flush();
|
||||||
gui_mch_destroy_sign(sp->sn_image);
|
gui_mch_destroy_sign(sp->sn_image);
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
vim_free(sp->sn_text);
|
vim_free(sp->sn_text);
|
||||||
if (sp_prev == NULL)
|
if (sp_prev == NULL)
|
||||||
first_sign = sp->sn_next;
|
first_sign = sp->sn_next;
|
||||||
@@ -7527,7 +7527,7 @@ sign_get_text(typenr)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_SIGN_ICONS) || defined(PROTO)
|
# if defined(FEAT_SIGN_ICONS) || defined(PROTO)
|
||||||
void *
|
void *
|
||||||
sign_get_image(typenr)
|
sign_get_image(typenr)
|
||||||
int typenr; /* the attribute which may have a sign */
|
int typenr; /* the attribute which may have a sign */
|
||||||
@@ -7539,7 +7539,7 @@ sign_get_image(typenr)
|
|||||||
return sp->sn_image;
|
return sp->sn_image;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the name of a sign by its typenr.
|
* Get the name of a sign by its typenr.
|
||||||
@@ -7556,7 +7556,7 @@ sign_typenr2name(typenr)
|
|||||||
return (char_u *)_("[Deleted]");
|
return (char_u *)_("[Deleted]");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(EXITFREE) || defined(PROTO)
|
# if defined(EXITFREE) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
* Undefine/free all signs.
|
* Undefine/free all signs.
|
||||||
*/
|
*/
|
||||||
@@ -7566,9 +7566,9 @@ free_signs()
|
|||||||
while (first_sign != NULL)
|
while (first_sign != NULL)
|
||||||
sign_undefine(first_sign, NULL);
|
sign_undefine(first_sign, NULL);
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#if defined(FEAT_CMDL_COMPL) || defined(PROTO)
|
# if defined(FEAT_CMDL_COMPL) || defined(PROTO)
|
||||||
static enum
|
static enum
|
||||||
{
|
{
|
||||||
EXP_SUBCMD, /* expand :sign sub-commands */
|
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)
|
#if defined(FEAT_GUI) || defined(FEAT_CLIENTSERVER) || defined(PROTO)
|
||||||
/*
|
/*
|
||||||
|
@@ -1378,6 +1378,9 @@ EX(CMD_syntime, "syntime", ex_syntime,
|
|||||||
EX(CMD_syncbind, "syncbind", ex_syncbind,
|
EX(CMD_syncbind, "syncbind", ex_syncbind,
|
||||||
TRLBAR,
|
TRLBAR,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
|
EX(CMD_smile, "smile", ex_smile,
|
||||||
|
TRLBAR|CMDWIN|SBOXOK,
|
||||||
|
ADDR_LINES),
|
||||||
EX(CMD_t, "t", ex_copymove,
|
EX(CMD_t, "t", ex_copymove,
|
||||||
RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
|
RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY,
|
||||||
ADDR_LINES),
|
ADDR_LINES),
|
||||||
|
@@ -61,5 +61,6 @@ char_u *sign_typenr2name __ARGS((int typenr));
|
|||||||
void free_signs __ARGS((void));
|
void free_signs __ARGS((void));
|
||||||
char_u *get_sign_name __ARGS((expand_T *xp, int idx));
|
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 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));
|
void ex_drop __ARGS((exarg_T *eap));
|
||||||
/* vim: set ft=c : */
|
/* vim: set ft=c : */
|
||||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1005,
|
||||||
/**/
|
/**/
|
||||||
1004,
|
1004,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user