Created
January 2, 2016 14:30
-
-
Save mattn/b990965e20b317e2d5d2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/ex_cmds.c b/src/ex_cmds.c | |
index 9da5c09..c313583 100644 | |
--- a/src/ex_cmds.c | |
+++ b/src/ex_cmds.c | |
@@ -7757,20 +7757,37 @@ 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; | |
+ char *p, buf[2]; | |
+ int c1, c2, c3; | |
int n; | |
+ do_highlight((char_u *)("Smile1 ctermfg=Red guifg=Red"), FALSE, TRUE); | |
+ do_highlight((char_u *)("Smile2 ctermfg=Yellow guifg=Yellow"), FALSE, TRUE); | |
+ do_highlight((char_u *)("Smile3 ctermfg=Magenta guifg=Magenta"), FALSE, TRUE); | |
+ c1 = syn_id2attr(syn_name2id("Smile1")); | |
+ c2 = syn_id2attr(syn_name2id("Smile2")); | |
+ c3 = syn_id2attr(syn_name2id("Smile3")); | |
+ | |
+ buf[1] = '\0'; | |
msg_start(); | |
msg_putchar('\n'); | |
for (p = code; *p != NUL; ++p) | |
+ { | |
if (*p == 'x') | |
msg_putchar('\n'); | |
- else | |
- for (n = *p++; n > 0; --n) | |
- if (*p == 'o' || *p == '$') | |
- msg_putchar_attr(*p, hl_attr(HLF_L)); | |
- else | |
- msg_putchar(*p); | |
+ else { | |
+ for (n = *p++; n > 0; --n) { | |
+ buf[0] = *p; | |
+ switch (*p) | |
+ { | |
+ case 'o': msg_puts_attr(buf, c1); break; | |
+ case '$': msg_puts_attr(buf, c2); break; | |
+ case '"': msg_puts_attr(buf, c3); break; | |
+ default: msg_putchar(buf[0]); break; | |
+ } | |
+ } | |
+ } | |
+ } | |
msg_clr_eos(); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment