sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

st-osc10-20210106-4ef0cbd.diff (2182B)


      1 From 9c4b3f40e07dd1d6dd94fa733b7853aff7f4b8fc Mon Sep 17 00:00:00 2001
      2 From: Raheman Vaiya <r.vaiya@gmail.com>
      3 Date: Sat, 16 Jan 2021 18:18:07 -0500
      4 Subject: [PATCH] Add proper OSC 10/11 support.
      5 
      6 ---
      7  config.def.h |  9 ++++++---
      8  st.c         | 30 ++++++++++++++++++++++++++++++
      9  st.h         |  1 +
     10  3 files changed, 37 insertions(+), 3 deletions(-)
     11 
     12 diff --git a/config.def.h b/config.def.h
     13 index 6f05dce..9bb22a5 100644
     14 --- a/config.def.h
     15 +++ b/config.def.h
     16 @@ -120,6 +120,8 @@ static const char *colorname[] = {
     17  	/* more colors can be added after 255 to use with DefaultXX */
     18  	"#cccccc",
     19  	"#555555",
     20 +	"black",
     21 +	"gray90",
     22  };
     23  
     24  
     25 @@ -127,9 +129,10 @@ static const char *colorname[] = {
     26   * Default colors (colorname index)
     27   * foreground, background, cursor, reverse cursor
     28   */
     29 -unsigned int defaultfg = 7;
     30 -unsigned int defaultbg = 0;
     31 -static unsigned int defaultcs = 256;
     32 +
     33 +unsigned int defaultbg = 258;
     34 +unsigned int defaultfg = 259;
     35 +unsigned int defaultcs = 256;
     36  static unsigned int defaultrcs = 257;
     37  
     38  /*
     39 diff --git a/st.c b/st.c
     40 index abbbe4b..6a57d89 100644
     41 --- a/st.c
     42 +++ b/st.c
     43 @@ -1877,6 +1877,36 @@ strhandle(void)
     44  				}
     45  			}
     46  			return;
     47 +		case 10: /* set foreground color */
     48 +			if (narg < 2)
     49 +				break;
     50 +
     51 +			p = strescseq.args[1];
     52 +			if (xsetcolorname(defaultfg, p))
     53 +				fprintf(stderr, "erresc: invalid foreground color %d\n", p);
     54 +			else
     55 +				redraw();
     56 +			break;
     57 +		case 11: /* set background color */
     58 +			if (narg < 2)
     59 +				break;
     60 +
     61 +			p = strescseq.args[1];
     62 +			if (xsetcolorname(defaultbg, p))
     63 +				fprintf(stderr, "erresc: invalid background color %d\n", p);
     64 +			else
     65 +				redraw();
     66 +			break;
     67 +		case 12: /* set cursor color */
     68 +			if (narg < 2)
     69 +				break;
     70 +
     71 +			p = strescseq.args[1];
     72 +			if (xsetcolorname(defaultcs, p))
     73 +				fprintf(stderr, "erresc: invalid cursor color %d\n", p);
     74 +			else
     75 +				redraw();
     76 +			break;
     77  		case 4: /* color set */
     78  			if (narg < 3)
     79  				break;
     80 diff --git a/st.h b/st.h
     81 index 3d351b6..054366d 100644
     82 --- a/st.h
     83 +++ b/st.h
     84 @@ -123,3 +123,4 @@ extern char *termname;
     85  extern unsigned int tabspaces;
     86  extern unsigned int defaultfg;
     87  extern unsigned int defaultbg;
     88 +extern unsigned int defaultcs;
     89 -- 
     90 2.20.1
     91