Mercurial > vim
view src/proto/map.pro @ 33083:79b2eb83f2df v9.0.1827
patch 9.0.1827: xxd: no color support
Commit: https://github.com/vim/vim/commit/e2528ae11134cdf35c312754b124aba4963d8054
Author: Aapo Rantalainen <aapo.rantalainen@gmail.com>
Date: Thu Aug 31 17:58:13 2023 +0200
patch 9.0.1827: xxd: no color support
Problem: xxd: no color support
Solution: Add color support using xxd -R
Add some basic color support for xxd
The hex-value and value are both colored with the same color depending
on the hex-value, e.g.:
0x00 = white
0xff = blue
printable = green
non-printable = red
tabs and linebreaks = yellow
Each character needs 11 more bytes to contain color. (Same color in a
row could contain only one overhead but the logic how xxd creates colums
must be then changed.) Size of colored output is increased by factor of
~6. Also grepping the output will break when colors is used.
Flag for color is "-R", because less uses "-R".
Color uses parameters auto,always,never same as less and grep (among
others).
E.g.
xxd -R always $FILE | less -R
Add some screen-tests (that currently on work on linux) to verify the
feature works as expected.
closes: #12131
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Aapo Rantalainen <aapo.rantalainen@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 31 Aug 2023 18:15:03 +0200 |
parents | ca6bc7c04163 |
children |
line wrap: on
line source
/* map.c */ mapblock_T *get_maphash_list(int state, int c); mapblock_T *get_buf_maphash_list(int state, int c); int is_maphash_valid(void); int do_map(int maptype, char_u *arg, int mode, int abbrev); void map_clear_mode(buf_T *buf, int mode, int local, int abbr); int mode_str2flags(char_u *modechars); int map_to_exists(char_u *str, char_u *modechars, int abbr); int map_to_exists_mode(char_u *rhs, int mode, int abbr); char_u *set_context_in_map_cmd(expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx); int ExpandMappings(char_u *pat, regmatch_T *regmatch, int *numMatches, char_u ***matches); int check_abbr(int c, char_u *ptr, int col, int mincol); char_u *eval_map_expr(mapblock_T *mp, int c); char_u *vim_strsave_escape_csi(char_u *p); void vim_unescape_csi(char_u *p); int makemap(FILE *fd, buf_T *buf); int put_escstr(FILE *fd, char_u *strstart, int what); void check_map_keycodes(void); char_u *check_map(char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr); void f_hasmapto(typval_T *argvars, typval_T *rettv); void f_maplist(typval_T *argvars, typval_T *rettv); void f_maparg(typval_T *argvars, typval_T *rettv); void f_mapcheck(typval_T *argvars, typval_T *rettv); void f_mapset(typval_T *argvars, typval_T *rettv); void init_mappings(void); void add_map(char_u *map, int mode, int nore); int langmap_adjust_mb(int c); void langmap_init(void); char *did_set_langmap(optset_T *args); void ex_abbreviate(exarg_T *eap); void ex_map(exarg_T *eap); void ex_unmap(exarg_T *eap); void ex_mapclear(exarg_T *eap); void ex_abclear(exarg_T *eap); /* vim: set ft=c : */