[BACK]Return to tty-features.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/tty-features.c between version 1.25 and 1.26

version 1.25, 2022/06/30 09:55:53 version 1.26, 2022/08/15 08:41:13
Line 36 
Line 36 
   
 /* A named terminal feature. */  /* A named terminal feature. */
 struct tty_feature {  struct tty_feature {
         const char       *name;          const char              *name;
         const char      **capabilities;          const char *const       *capabilities;
         int               flags;          int                      flags;
 };  };
   
 /* Terminal has xterm(1) title setting. */  /* Terminal has xterm(1) title setting. */
 static const char *tty_feature_title_capabilities[] = {  static const char *const tty_feature_title_capabilities[] = {
         "tsl=\\E]0;", /* should be using TS really */          "tsl=\\E]0;", /* should be using TS really */
         "fsl=\\a",          "fsl=\\a",
         NULL          NULL
Line 54 
Line 54 
 };  };
   
 /* Terminal has OSC 7 working directory. */  /* Terminal has OSC 7 working directory. */
 static const char *tty_feature_osc7_capabilities[] = {  static const char *const tty_feature_osc7_capabilities[] = {
         "Swd=\\E]7;",          "Swd=\\E]7;",
         "fsl=\\a",          "fsl=\\a",
         NULL          NULL
Line 66 
Line 66 
 };  };
   
 /* Terminal has mouse support. */  /* Terminal has mouse support. */
 static const char *tty_feature_mouse_capabilities[] = {  static const char *const tty_feature_mouse_capabilities[] = {
         "kmous=\\E[M",          "kmous=\\E[M",
         NULL          NULL
 };  };
Line 77 
Line 77 
 };  };
   
 /* Terminal can set the clipboard with OSC 52. */  /* Terminal can set the clipboard with OSC 52. */
 static const char *tty_feature_clipboard_capabilities[] = {  static const char *const tty_feature_clipboard_capabilities[] = {
         "Ms=\\E]52;%p1%s;%p2%s\\a",          "Ms=\\E]52;%p1%s;%p2%s\\a",
         NULL          NULL
 };  };
Line 88 
Line 88 
 };  };
   
 /* Terminal supports OSC 8 hyperlinks. */  /* Terminal supports OSC 8 hyperlinks. */
 static const char *tty_feature_hyperlinks_capabilities[] = {  static const char *const tty_feature_hyperlinks_capabilities[] = {
         "*:Hls=\\E]8;%?%p1%l%tid=%p1%s%;;%p2%s\\E\\\\",          "*:Hls=\\E]8;%?%p1%l%tid=%p1%s%;;%p2%s\\E\\\\",
         NULL          NULL
 };  };
Line 103 
Line 103 
  * terminals with RGB have versions that do not allow setting colours from the   * terminals with RGB have versions that do not allow setting colours from the
  * 256 palette.   * 256 palette.
  */   */
 static const char *tty_feature_rgb_capabilities[] = {  static const char *const tty_feature_rgb_capabilities[] = {
         "AX",          "AX",
         "setrgbf=\\E[38;2;%p1%d;%p2%d;%p3%dm",          "setrgbf=\\E[38;2;%p1%d;%p2%d;%p3%dm",
         "setrgbb=\\E[48;2;%p1%d;%p2%d;%p3%dm",          "setrgbb=\\E[48;2;%p1%d;%p2%d;%p3%dm",
Line 118 
Line 118 
 };  };
   
 /* Terminal supports 256 colours. */  /* Terminal supports 256 colours. */
 static const char *tty_feature_256_capabilities[] = {  static const char *const tty_feature_256_capabilities[] = {
         "AX",          "AX",
         "setab=\\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",          "setab=\\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m",
         "setaf=\\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",          "setaf=\\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m",
Line 131 
Line 131 
 };  };
   
 /* Terminal supports overline. */  /* Terminal supports overline. */
 static const char *tty_feature_overline_capabilities[] = {  static const char *const tty_feature_overline_capabilities[] = {
         "Smol=\\E[53m",          "Smol=\\E[53m",
         NULL          NULL
 };  };
Line 142 
Line 142 
 };  };
   
 /* Terminal supports underscore styles. */  /* Terminal supports underscore styles. */
 static const char *tty_feature_usstyle_capabilities[] = {  static const char *const tty_feature_usstyle_capabilities[] = {
         "Smulx=\\E[4::%p1%dm",          "Smulx=\\E[4::%p1%dm",
         "Setulc=\\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m",          "Setulc=\\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m",
         "ol=\\E[59m",          "ol=\\E[59m",
Line 155 
Line 155 
 };  };
   
 /* Terminal supports bracketed paste. */  /* Terminal supports bracketed paste. */
 static const char *tty_feature_bpaste_capabilities[] = {  static const char *const tty_feature_bpaste_capabilities[] = {
         "Enbp=\\E[?2004h",          "Enbp=\\E[?2004h",
         "Dsbp=\\E[?2004l",          "Dsbp=\\E[?2004l",
         NULL          NULL
Line 167 
Line 167 
 };  };
   
 /* Terminal supports focus reporting. */  /* Terminal supports focus reporting. */
 static const char *tty_feature_focus_capabilities[] = {  static const char *const tty_feature_focus_capabilities[] = {
         "Enfcs=\\E[?1004h",          "Enfcs=\\E[?1004h",
         "Dsfcs=\\E[?1004l",          "Dsfcs=\\E[?1004l",
         NULL          NULL
Line 179 
Line 179 
 };  };
   
 /* Terminal supports cursor styles. */  /* Terminal supports cursor styles. */
 static const char *tty_feature_cstyle_capabilities[] = {  static const char *const tty_feature_cstyle_capabilities[] = {
         "Ss=\\E[%p1%d q",          "Ss=\\E[%p1%d q",
         "Se=\\E[2 q",          "Se=\\E[2 q",
         NULL          NULL
Line 191 
Line 191 
 };  };
   
 /* Terminal supports cursor colours. */  /* Terminal supports cursor colours. */
 static const char *tty_feature_ccolour_capabilities[] = {  static const char *const tty_feature_ccolour_capabilities[] = {
         "Cs=\\E]12;%p1%s\\a",          "Cs=\\E]12;%p1%s\\a",
         "Cr=\\E]112\\a",          "Cr=\\E]112\\a",
         NULL          NULL
Line 203 
Line 203 
 };  };
   
 /* Terminal supports strikethrough. */  /* Terminal supports strikethrough. */
 static const char *tty_feature_strikethrough_capabilities[] = {  static const char *const tty_feature_strikethrough_capabilities[] = {
         "smxx=\\E[9m",          "smxx=\\E[9m",
         NULL          NULL
 };  };
Line 214 
Line 214 
 };  };
   
 /* Terminal supports synchronized updates. */  /* Terminal supports synchronized updates. */
 static const char *tty_feature_sync_capabilities[] = {  static const char *const tty_feature_sync_capabilities[] = {
         "Sync=\\EP=%p1%ds\\E\\\\",          "Sync=\\EP=%p1%ds\\E\\\\",
         NULL          NULL
 };  };
Line 225 
Line 225 
 };  };
   
 /* Terminal supports extended keys. */  /* Terminal supports extended keys. */
 static const char *tty_feature_extkeys_capabilities[] = {  static const char *const tty_feature_extkeys_capabilities[] = {
         "Eneks=\\E[>4;1m",          "Eneks=\\E[>4;1m",
         "Dseks=\\E[>4m",          "Dseks=\\E[>4m",
         NULL          NULL
Line 237 
Line 237 
 };  };
   
 /* Terminal supports DECSLRM margins. */  /* Terminal supports DECSLRM margins. */
 static const char *tty_feature_margins_capabilities[] = {  static const char *const tty_feature_margins_capabilities[] = {
         "Enmg=\\E[?69h",          "Enmg=\\E[?69h",
         "Dsmg=\\E[?69l",          "Dsmg=\\E[?69l",
         "Clmg=\\E[s",          "Clmg=\\E[s",
Line 251 
Line 251 
 };  };
   
 /* Terminal supports DECFRA rectangle fill. */  /* Terminal supports DECFRA rectangle fill. */
 static const char *tty_feature_rectfill_capabilities[] = {  static const char *const tty_feature_rectfill_capabilities[] = {
         "Rect",          "Rect",
         NULL          NULL
 };  };
Line 262 
Line 262 
 };  };
   
 /* Use builtin function keys only. */  /* Use builtin function keys only. */
 static const char *tty_feature_ignorefkeys_capabilities[] = {  static const char *const tty_feature_ignorefkeys_capabilities[] = {
         "kf0@",          "kf0@",
         "kf1@",          "kf1@",
         "kf2@",          "kf2@",
Line 336 
Line 336 
 };  };
   
 /* Available terminal features. */  /* Available terminal features. */
 static const struct tty_feature *tty_features[] = {  static const struct tty_feature *const tty_features[] = {
         &tty_feature_256,          &tty_feature_256,
         &tty_feature_bpaste,          &tty_feature_bpaste,
         &tty_feature_ccolour,          &tty_feature_ccolour,
Line 410 
Line 410 
 int  int
 tty_apply_features(struct tty_term *term, int feat)  tty_apply_features(struct tty_term *term, int feat)
 {  {
         const struct tty_feature         *tf;          const struct tty_feature        *tf;
         const char                      **capability;          const char *const               *capability;
         u_int                             i;          u_int                            i;
   
         if (feat == 0)          if (feat == 0)
                 return (0);                  return (0);
Line 443 
Line 443 
 void  void
 tty_default_features(int *feat, const char *name, u_int version)  tty_default_features(int *feat, const char *name, u_int version)
 {  {
         static struct {          static const struct {
                 const char      *name;                  const char      *name;
                 u_int            version;                  u_int            version;
                 const char      *features;                  const char      *features;

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26