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

Diff for /src/usr.bin/tmux/input.c between version 1.182 and 1.183

version 1.182, 2020/07/24 07:05:37 version 1.183, 2020/08/19 06:37:23
Line 65 
Line 65 
                 INPUT_MISSING,                  INPUT_MISSING,
                 INPUT_NUMBER,                  INPUT_NUMBER,
                 INPUT_STRING                  INPUT_STRING
         }                       type;          }                       type;
         union {          union {
                 int             num;                  int             num;
                 char           *str;                  char           *str;
Line 81 
Line 81 
         struct input_cell       cell;          struct input_cell       cell;
   
         struct input_cell       old_cell;          struct input_cell       old_cell;
         u_int                   old_cx;          u_int                   old_cx;
         u_int                   old_cy;          u_int                   old_cy;
         int                     old_mode;          int                     old_mode;
   
Line 121 
Line 121 
          * All input received since we were last in the ground state. Sent to           * All input received since we were last in the ground state. Sent to
          * control clients on connection.           * control clients on connection.
          */           */
         struct evbuffer         *since_ground;          struct evbuffer         *since_ground;
 };  };
   
 /* Helper functions. */  /* Helper functions. */
Line 2459 
Line 2459 
         return (1);          return (1);
 }  }
   
   /* Reply to a colour request. */
   static void
   input_osc_colour_reply(struct input_ctx *ictx, u_int n, int c)
   {
       u_char       r, g, b;
       const char  *end;
   
       if (c == 8 || (~c & COLOUR_FLAG_RGB))
               return;
       colour_split_rgb(c, &r, &g, &b);
   
       if (ictx->input_end == INPUT_END_BEL)
               end = "\007";
       else
               end = "\033\\";
       input_reply(ictx, "\033]%u;rgb:%02hhx/%02hhx/%02hhx%s", n, r, g, b, end);
   }
   
 /* Handle the OSC 4 sequence for setting (multiple) palette entries. */  /* Handle the OSC 4 sequence for setting (multiple) palette entries. */
 static void  static void
 input_osc_4(struct input_ctx *ictx, const char *p)  input_osc_4(struct input_ctx *ictx, const char *p)
 {  {
         struct window_pane      *wp = ictx->wp;          struct window_pane      *wp = ictx->wp;
         char                    *copy, *s, *next = NULL;          char                    *copy, *s, *next = NULL;
         long                     idx;          long                     idx;
         u_int                    r, g, b;          u_int                    r, g, b;
   
         if (wp == NULL)          if (wp == NULL)
Line 2497 
Line 2515 
         free(copy);          free(copy);
 }  }
   
 /* Handle the OSC 10 sequence for setting foreground colour. */  /* Handle the OSC 10 sequence for setting and querying foreground colour. */
 static void  static void
 input_osc_10(struct input_ctx *ictx, const char *p)  input_osc_10(struct input_ctx *ictx, const char *p)
 {  {
         struct window_pane      *wp = ictx->wp;          struct window_pane      *wp = ictx->wp;
           struct grid_cell         defaults;
         u_int                    r, g, b;          u_int                    r, g, b;
   
         if (wp == NULL)          if (wp == NULL)
                 return;                  return;
         if (strcmp(p, "?") == 0)  
           if (strcmp(p, "?") == 0) {
                   tty_default_colours(&defaults, wp);
                   input_osc_colour_reply(ictx, 10, defaults.fg);
                 return;                  return;
           }
   
         if (!input_osc_parse_colour(p, &r, &g, &b))          if (!input_osc_parse_colour(p, &r, &g, &b))
                 goto bad;                  goto bad;
Line 2520 
Line 2543 
         log_debug("bad OSC 10: %s", p);          log_debug("bad OSC 10: %s", p);
 }  }
   
 /* Handle the OSC 11 sequence for setting background colour. */  /* Handle the OSC 11 sequence for setting and querying background colour. */
 static void  static void
 input_osc_11(struct input_ctx *ictx, const char *p)  input_osc_11(struct input_ctx *ictx, const char *p)
 {  {
         struct window_pane      *wp = ictx->wp;          struct window_pane      *wp = ictx->wp;
           struct grid_cell         defaults;
         u_int                    r, g, b;          u_int                    r, g, b;
   
         if (wp == NULL)          if (wp == NULL)
                 return;                  return;
         if (strcmp(p, "?") == 0)  
           if (strcmp(p, "?") == 0) {
                   tty_default_colours(&defaults, wp);
                   input_osc_colour_reply(ictx, 11, defaults.bg);
                 return;                  return;
           }
   
         if (!input_osc_parse_colour(p, &r, &g, &b))          if (!input_osc_parse_colour(p, &r, &g, &b))
             goto bad;              goto bad;

Legend:
Removed from v.1.182  
changed lines
  Added in v.1.183