comparison src/libvterm/include/vterm.h @ 20496:747a270eb1db v8.2.0802

patch 8.2.0802: libvterm code lags behind the upstream version Commit: https://github.com/vim/vim/commit/d863728913801c8fa6d633f6580edfcada533fd0 Author: Bram Moolenaar <Bram@vim.org> Date: Wed May 20 18:41:41 2020 +0200 patch 8.2.0802: libvterm code lags behind the upstream version Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 759 - 762.
author Bram Moolenaar <Bram@vim.org>
date Wed, 20 May 2020 18:45:04 +0200
parents 1d595fada804
children 03826c672315
comparison
equal deleted inserted replaced
20495:0736d3dc23ba 20496:747a270eb1db
126 VTERM_ATTR_BOLD = 1, // bool: 1, 22 126 VTERM_ATTR_BOLD = 1, // bool: 1, 22
127 VTERM_ATTR_UNDERLINE, // number: 4, 21, 24 127 VTERM_ATTR_UNDERLINE, // number: 4, 21, 24
128 VTERM_ATTR_ITALIC, // bool: 3, 23 128 VTERM_ATTR_ITALIC, // bool: 3, 23
129 VTERM_ATTR_BLINK, // bool: 5, 25 129 VTERM_ATTR_BLINK, // bool: 5, 25
130 VTERM_ATTR_REVERSE, // bool: 7, 27 130 VTERM_ATTR_REVERSE, // bool: 7, 27
131 VTERM_ATTR_CONCEAL, // bool: 8, 28
131 VTERM_ATTR_STRIKE, // bool: 9, 29 132 VTERM_ATTR_STRIKE, // bool: 9, 29
132 VTERM_ATTR_FONT, // number: 10-19 133 VTERM_ATTR_FONT, // number: 10-19
133 VTERM_ATTR_FOREGROUND, // color: 30-39 90-97 134 VTERM_ATTR_FOREGROUND, // color: 30-39 90-97
134 VTERM_ATTR_BACKGROUND, // color: 40-49 100-107 135 VTERM_ATTR_BACKGROUND, // color: 40-49 100-107
135 136
312 #define MOUSE_WANT_DRAG 0x02 313 #define MOUSE_WANT_DRAG 0x02
313 #define MOUSE_WANT_MOVE 0x04 314 #define MOUSE_WANT_MOVE 0x04
314 // useful to add protocol? 315 // useful to add protocol?
315 } VTermMouseState; 316 } VTermMouseState;
316 317
318 typedef struct {
319 int (*control)(unsigned char control, void *user);
320 int (*csi)(const char *leader, const long args[], int argcount, const char *intermed, char command, void *user);
321 int (*osc)(int command, VTermStringFragment frag, void *user);
322 int (*dcs)(const char *command, size_t commandlen, VTermStringFragment frag, void *user);
323 } VTermStateFallbacks;
324
317 VTermState *vterm_obtain_state(VTerm *vt); 325 VTermState *vterm_obtain_state(VTerm *vt);
318 326
319 void vterm_state_set_callbacks(VTermState *state, const VTermStateCallbacks *callbacks, void *user); 327 void vterm_state_set_callbacks(VTermState *state, const VTermStateCallbacks *callbacks, void *user);
320 void *vterm_state_get_cbdata(VTermState *state); 328 void *vterm_state_get_cbdata(VTermState *state);
321 329
322 // Only invokes control, csi, osc, dcs 330 void vterm_state_set_unrecognised_fallbacks(VTermState *state, const VTermStateFallbacks *fallbacks, void *user);
323 void vterm_state_set_unrecognised_fallbacks(VTermState *state, const VTermParserCallbacks *fallbacks, void *user);
324 void *vterm_state_get_unrecognised_fbdata(VTermState *state); 331 void *vterm_state_get_unrecognised_fbdata(VTermState *state);
325 332
326 // Initialize the state. 333 // Initialize the state.
327 void vterm_state_reset(VTermState *state, int hard); 334 void vterm_state_reset(VTermState *state, int hard);
328 335
347 unsigned int bold : 1; 354 unsigned int bold : 1;
348 unsigned int underline : 2; 355 unsigned int underline : 2;
349 unsigned int italic : 1; 356 unsigned int italic : 1;
350 unsigned int blink : 1; 357 unsigned int blink : 1;
351 unsigned int reverse : 1; 358 unsigned int reverse : 1;
359 unsigned int conceal : 1;
352 unsigned int strike : 1; 360 unsigned int strike : 1;
353 unsigned int font : 4; // 0 to 9 361 unsigned int font : 4; // 0 to 9
354 unsigned int dwl : 1; // On a DECDWL or DECDHL line 362 unsigned int dwl : 1; // On a DECDWL or DECDHL line
355 unsigned int dhl : 2; // On a DECDHL line (1=top 2=bottom) 363 unsigned int dhl : 2; // On a DECDHL line (1=top 2=bottom)
356 } VTermScreenCellAttrs; 364 } VTermScreenCellAttrs;
393 * changed. "user" is passed into to the callback. 401 * changed. "user" is passed into to the callback.
394 */ 402 */
395 void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks *callbacks, void *user); 403 void vterm_screen_set_callbacks(VTermScreen *screen, const VTermScreenCallbacks *callbacks, void *user);
396 void *vterm_screen_get_cbdata(VTermScreen *screen); 404 void *vterm_screen_get_cbdata(VTermScreen *screen);
397 405
398 // Only invokes control, csi, osc, dcs 406 void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermStateFallbacks *fallbacks, void *user);
399 void vterm_screen_set_unrecognised_fallbacks(VTermScreen *screen, const VTermParserCallbacks *fallbacks, void *user);
400 void *vterm_screen_get_unrecognised_fbdata(VTermScreen *screen); 407 void *vterm_screen_get_unrecognised_fbdata(VTermScreen *screen);
401 408
402 // Enable support for using the alternate screen if "altscreen" is non-zero. 409 // Enable support for using the alternate screen if "altscreen" is non-zero.
403 // Before that switching to the alternate screen won't work. 410 // Before that switching to the alternate screen won't work.
404 // Calling with "altscreen" zero has no effect. 411 // Calling with "altscreen" zero has no effect.
436 VTERM_ATTR_REVERSE_MASK = 1 << 4, 443 VTERM_ATTR_REVERSE_MASK = 1 << 4,
437 VTERM_ATTR_STRIKE_MASK = 1 << 5, 444 VTERM_ATTR_STRIKE_MASK = 1 << 5,
438 VTERM_ATTR_FONT_MASK = 1 << 6, 445 VTERM_ATTR_FONT_MASK = 1 << 6,
439 VTERM_ATTR_FOREGROUND_MASK = 1 << 7, 446 VTERM_ATTR_FOREGROUND_MASK = 1 << 7,
440 VTERM_ATTR_BACKGROUND_MASK = 1 << 8, 447 VTERM_ATTR_BACKGROUND_MASK = 1 << 8,
441 448 VTERM_ATTR_CONCEAL_MASK = 1 << 9,
442 VTERM_ALL_ATTRS_MASK = (1 << 9) - 1 449
450 VTERM_ALL_ATTRS_MASK = (1 << 10) - 1
443 } VTermAttrMask; 451 } VTermAttrMask;
444 452
445 int vterm_screen_get_attrs_extent(const VTermScreen *screen, VTermRect *extent, VTermPos pos, VTermAttrMask attrs); 453 int vterm_screen_get_attrs_extent(const VTermScreen *screen, VTermRect *extent, VTermPos pos, VTermAttrMask attrs);
446 454
447 int vterm_screen_get_cell(const VTermScreen *screen, VTermPos pos, VTermScreenCell *cell); 455 int vterm_screen_get_cell(const VTermScreen *screen, VTermPos pos, VTermScreenCell *cell);