ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvt.h
(Generate patch)

Comparing rxvt-unicode/src/rxvt.h (file contents):
Revision 1.518 by sf-exg, Sun Jan 13 22:30:47 2013 UTC vs.
Revision 1.545 by sf-exg, Tue Jun 16 12:00:07 2015 UTC

45 45
46#include "feature.h" 46#include "feature.h"
47 47
48#if defined (ISO_14755) || defined (ENABLE_PERL) 48#if defined (ISO_14755) || defined (ENABLE_PERL)
49# define ENABLE_OVERLAY 1 49# define ENABLE_OVERLAY 1
50# undef NO_RESOURCES
51#endif 50#endif
52 51
53#if ENABLE_PERL 52#if ENABLE_PERL
54# define ENABLE_FRILLS 1 53# define ENABLE_FRILLS 1
55# define ENABLE_COMBINING 1 54# define ENABLE_COMBINING 1
77# include <gdk-pixbuf/gdk-pixbuf.h> 76# include <gdk-pixbuf/gdk-pixbuf.h>
78#endif 77#endif
79 78
80#if XRENDER && (HAVE_PIXBUF || ENABLE_TRANSPARENCY) 79#if XRENDER && (HAVE_PIXBUF || ENABLE_TRANSPARENCY)
81# define HAVE_BG_PIXMAP 1 80# define HAVE_BG_PIXMAP 1
81# define HAVE_IMG 1
82#endif 82#endif
83 83
84#if HAVE_BG_PIXMAP 84#if HAVE_BG_PIXMAP
85# if HAVE_PIXBUF 85# if HAVE_PIXBUF
86# define BG_IMAGE_FROM_FILE 1 86# define BG_IMAGE_FROM_FILE 1
158 158
159const char * rxvt_basename (const char *str) NOTHROW; 159const char * rxvt_basename (const char *str) NOTHROW;
160void rxvt_vlog (const char *fmt, va_list arg_ptr) NOTHROW; 160void rxvt_vlog (const char *fmt, va_list arg_ptr) NOTHROW;
161void rxvt_log (const char *fmt,...) NOTHROW; 161void rxvt_log (const char *fmt,...) NOTHROW;
162void rxvt_warn (const char *fmt,...) NOTHROW; 162void rxvt_warn (const char *fmt,...) NOTHROW;
163ecb_noreturn ecb_cold
163void rxvt_fatal (const char *fmt, ...) THROW ((class rxvt_failure_exception)) ecb_noreturn ecb_cold; 164void rxvt_fatal (const char *fmt, ...) THROW ((class rxvt_failure_exception));
165ecb_noreturn ecb_cold
164void rxvt_exit_failure () THROW ((class rxvt_failure_exception)) ecb_noreturn ecb_cold; 166void rxvt_exit_failure () THROW ((class rxvt_failure_exception));
165 167
168void * rxvt_malloc (size_t size);
169void * rxvt_calloc (size_t number, size_t size);
170void * rxvt_realloc (void *ptr, size_t size);
171
166char * rxvt_strtrim (char *str) NOTHROW; 172char * rxvt_strtrim (char *str) NOTHROW;
167char ** rxvt_strsplit (char delim, const char *str) NOTHROW; 173char ** rxvt_strsplit (char delim, const char *str) NOTHROW;
168 174
169static inline void 175static inline void
170rxvt_free_strsplit (char **ptr) NOTHROW 176rxvt_free_strsplit (char **ptr) NOTHROW
171{ 177{
172 free (ptr[0]); 178 free (ptr[0]);
173 free (ptr); 179 free (ptr);
174} 180}
175 181
176void * rxvt_malloc (size_t size); 182KeySym rxvt_XKeycodeToKeysym (Display *dpy, KeyCode keycode, int index);
177void * rxvt_calloc (size_t number, size_t size);
178void * rxvt_realloc (void *ptr, size_t size);
179 183
180///////////////////////////////////////////////////////////////////////////// 184/////////////////////////////////////////////////////////////////////////////
181 185
182// temporarily replace the process environment 186// temporarily replace the process environment
183extern char **environ; 187extern char **environ;
184extern char **rxvt_environ; // the original environ pointer 188extern char **rxvt_environ; // the original environ pointer
185
186static inline void
187set_environ (stringvec *envv)
188{
189#if ENABLE_PERL
190 assert (envv);
191#else
192 if (envv)
193#endif
194 environ = (char **)envv->begin ();
195}
196 189
197static inline void 190static inline void
198set_environ (char **envv) 191set_environ (char **envv)
199{ 192{
200#if ENABLE_PERL 193#if ENABLE_PERL
400 ERASE = +2, 393 ERASE = +2,
401}; 394};
402 395
403/* modes for rxvt_term::scr_page () - scroll page. used by scrollbar window */ 396/* modes for rxvt_term::scr_page () - scroll page. used by scrollbar window */
404enum page_dirn { 397enum page_dirn {
405 UP, 398 DN = -1,
406 DN,
407 NO_DIR, 399 NO_DIR = 0,
400 UP = 1,
408}; 401};
409 402
410/* arguments for rxvt_term::scr_change_screen () */ 403/* arguments for rxvt_term::scr_change_screen () */
411enum { 404enum {
412 PRIMARY = 0, 405 PRIMARY = 0,
649#define PrivMode_MouseBtnEvent (1UL<<20) 642#define PrivMode_MouseBtnEvent (1UL<<20)
650#define PrivMode_MouseAnyEvent (1UL<<21) 643#define PrivMode_MouseAnyEvent (1UL<<21)
651#define PrivMode_BracketPaste (1UL<<22) 644#define PrivMode_BracketPaste (1UL<<22)
652#define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack 645#define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack
653#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales 646#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales
647#define PrivMode_BlinkingCursor (1UL<<25)
654 648
655#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) 649#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent)
656 650
657#ifdef ALLOW_132_MODE 651#ifdef ALLOW_132_MODE
658# define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK) 652# define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK)
661#endif 655#endif
662 656
663// do not change these constants lightly, there are many interdependencies 657// do not change these constants lightly, there are many interdependencies
664#define IMBUFSIZ 128 // input modifier buffer sizes 658#define IMBUFSIZ 128 // input modifier buffer sizes
665#define KBUFSZ 512 // size of keyboard mapping buffer 659#define KBUFSZ 512 // size of keyboard mapping buffer
666#define CBUFSIZ 2048 // size of command buffer 660#define CBUFSIZ 32768 // size of command buffer (longest command sequence possible)
667#define CBUFCNT 8 // never call pty_fill/cmd_parse more than this often in a row 661#define CBUFCNT 8 // never call pty_fill/cmd_parse more than this often in a row
668#define UBUFSIZ 2048 // character buffer 662#define UBUFSIZ 2048 // character buffer
669 663
670#if ENABLE_FRILLS 664#if ENABLE_FRILLS
671# include <X11/Xmd.h> 665# include <X11/Xmd.h>
744 738
745#define GET_STYLE(x) (((x) & RS_styleMask) >> RS_styleShift) 739#define GET_STYLE(x) (((x) & RS_styleMask) >> RS_styleShift)
746#define SET_STYLE(x,style) (((x) & ~RS_styleMask) | ((style) << RS_styleShift)) 740#define SET_STYLE(x,style) (((x) & ~RS_styleMask) | ((style) << RS_styleShift))
747 741
748#define GET_ATTR(x) (((x) & RS_attrMask)) 742#define GET_ATTR(x) (((x) & RS_attrMask))
749// return attributes defining the background, encoding doesn't matter
750// depends on RS_fgShift > RS_bgShift
751#define GET_BGATTR(x) \
752 (ecb_unlikely ((x) & RS_RVid) \
753 ? (((x) & (RS_attrMask & ~RS_RVid)) \
754 | (((x) & RS_fgMask) >> (RS_fgShift - RS_bgShift))) \
755 : ((x) & (RS_attrMask | RS_bgMask)))
756#define SET_FGCOLOR(x,fg) (((x) & ~RS_fgMask) | ((fg) << RS_fgShift)) 743#define SET_FGCOLOR(x,fg) (((x) & ~RS_fgMask) | ((fg) << RS_fgShift))
757#define SET_BGCOLOR(x,bg) (((x) & ~RS_bgMask) | ((bg) << RS_bgShift)) 744#define SET_BGCOLOR(x,bg) (((x) & ~RS_bgMask) | ((bg) << RS_bgShift))
758#define SET_ATTR(x,a) (((x) & ~RS_attrMask) | (a)) 745#define SET_ATTR(x,a) (((x) & ~RS_attrMask) | (a))
759 746
760#define RS_SAME(a,b) (!(((a) ^ (b)) & ~RS_Careful)) 747#define RS_SAME(a,b) (!(((a) ^ (b)) & ~RS_Careful))
869// that are not representable in unicode, as well as characters 856// that are not representable in unicode, as well as characters
870// not fitting in the BMP. 857// not fitting in the BMP.
871struct compose_char 858struct compose_char
872{ 859{
873 unicode_t c1, c2; // any chars != NOCHAR are valid 860 unicode_t c1, c2; // any chars != NOCHAR are valid
874 #if __cplusplus >= 201103L || ECB_GCC_VERSION(4,4) 861
875 compose_char () = default;
876 #endif
877 compose_char (unicode_t c1, unicode_t c2) 862 compose_char (unicode_t c1, unicode_t c2)
878 : c1(c1), c2(c2) 863 : c1(c1), c2(c2)
879 { } 864 { }
880}; 865};
881 866
1143/* ---------- */ 1128/* ---------- */
1144 rend_t rstyle; 1129 rend_t rstyle;
1145/* ---------- */ 1130/* ---------- */
1146#ifdef SELECTION_SCROLLING 1131#ifdef SELECTION_SCROLLING
1147 int scroll_selection_lines; 1132 int scroll_selection_lines;
1148 enum page_dirn scroll_selection_dir;
1149 int selection_save_x, 1133 int selection_save_x,
1150 selection_save_y, 1134 selection_save_y,
1151 selection_save_state; 1135 selection_save_state;
1152#endif 1136#endif
1153/* ---------- */ 1137/* ---------- */
1162 mouse_row, 1146 mouse_row,
1163 mouse_col, 1147 mouse_col,
1164# ifdef POINTER_BLANK 1148# ifdef POINTER_BLANK
1165 pointerBlankDelay, 1149 pointerBlankDelay,
1166# endif 1150# endif
1151 multiClickTime,
1152 cursor_type,
1167 allowedxerror; 1153 allowedxerror;
1168/* ---------- */ 1154/* ---------- */
1169 unsigned int ModLevel3Mask, 1155 unsigned int ModLevel3Mask,
1170 ModMetaMask, 1156 ModMetaMask,
1171 ModNumLockMask; 1157 ModNumLockMask;
1198 image_effects root_effects; 1184 image_effects root_effects;
1199 1185
1200 void render_root_image (); 1186 void render_root_image ();
1201# endif 1187# endif
1202 1188
1203 void tint_image (rxvt_img *img, rxvt_color &tint, bool tint_set, int shade);
1204
1205 ev_tstamp bg_valid_since; 1189 ev_tstamp bg_valid_since;
1206 1190
1207 bool bg_window_size_sensitive (); 1191 bool bg_window_size_sensitive ();
1208 bool bg_window_position_sensitive (); 1192 bool bg_window_position_sensitive ();
1209 1193
1242 char *locale; 1226 char *locale;
1243 char charsets[4]; 1227 char charsets[4];
1244 char *v_buffer; /* pointer to physical buffer */ 1228 char *v_buffer; /* pointer to physical buffer */
1245 unsigned int v_buflen; /* size of area to write */ 1229 unsigned int v_buflen; /* size of area to write */
1246 stringvec *argv, *envv; /* if != 0, will be freed at destroy time */ 1230 stringvec *argv, *envv; /* if != 0, will be freed at destroy time */
1231 char **env;
1247 1232
1248#ifdef KEYSYM_RESOURCE 1233#ifdef KEYSYM_RESOURCE
1249 keyboard_manager *keyboard; 1234 keyboard_manager *keyboard;
1250#endif 1235#endif
1251#ifndef NO_RESOURCES 1236#ifndef NO_RESOURCES
1334 void pointer_blank (); 1319 void pointer_blank ();
1335#endif 1320#endif
1336 void pointer_unblank (); 1321 void pointer_unblank ();
1337 1322
1338 void tt_printf (const char *fmt,...); 1323 void tt_printf (const char *fmt,...);
1324 void tt_write_ (const char *data, unsigned int len);
1339 void tt_write (const char *data, unsigned int len); 1325 void tt_write (const char *data, unsigned int len);
1326 void tt_write_user_input (const char *data, unsigned int len);
1340 void pty_write (); 1327 void pty_write ();
1341 1328
1342 void make_current () const // make this the "currently active" urxvt instance 1329 void make_current () const // make this the "currently active" urxvt instance
1343 { 1330 {
1344 SET_R (this); 1331 SET_R (this);
1345 set_environ (envv); 1332 set_environ (env);
1346 rxvt_set_locale (locale); 1333 rxvt_set_locale (locale);
1347 } 1334 }
1348 1335
1349#if USE_XIM 1336#if USE_XIM
1350 rxvt_xim *input_method; 1337 rxvt_xim *input_method;
1383#if ENABLE_FRILLS 1370#if ENABLE_FRILLS
1384 void set_urgency (bool enable); 1371 void set_urgency (bool enable);
1385#else 1372#else
1386 void set_urgency (bool enable) { } 1373 void set_urgency (bool enable) { }
1387#endif 1374#endif
1388 void update_fade_color (unsigned int idx); 1375 void update_fade_color (unsigned int idx, bool first_time = false);
1389#ifdef PRINTPIPE 1376#ifdef PRINTPIPE
1390 FILE *popen_printer (); 1377 FILE *popen_printer ();
1391 int pclose_printer (FILE *stream); 1378 int pclose_printer (FILE *stream);
1392#endif 1379#endif
1393 void process_print_pipe (); 1380 void process_print_pipe ();
1402 void process_color_seq (int report, int color, const char *str, char resp); 1389 void process_color_seq (int report, int color, const char *str, char resp);
1403 void process_xterm_seq (int op, char *str, char resp); 1390 void process_xterm_seq (int op, char *str, char resp);
1404 int privcases (int mode, unsigned long bit); 1391 int privcases (int mode, unsigned long bit);
1405 void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg); 1392 void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg);
1406 void process_sgr_mode (unsigned int nargs, const int *arg); 1393 void process_sgr_mode (unsigned int nargs, const int *arg);
1394 void set_cursor_style (int style);
1407 // init.C 1395 // init.C
1408 void init (stringvec *argv, stringvec *envv); 1396 void init (stringvec *argv, stringvec *envv);
1409 void init (int argc, const char *const *argv, const char *const *envv); 1397 void init (int argc, const char *const *argv, const char *const *envv);
1410 void init2 (int argc, const char *const *argv); 1398 void init2 (int argc, const char *const *argv);
1411 void init_vars (); 1399 void init_vars ();
1416 void init_command (const char *const *argv); 1404 void init_command (const char *const *argv);
1417 void run_command (const char *const *argv); 1405 void run_command (const char *const *argv);
1418 int run_child (const char *const *argv); 1406 int run_child (const char *const *argv);
1419 void color_aliases (int idx); 1407 void color_aliases (int idx);
1420 void create_windows (int argc, const char *const *argv); 1408 void create_windows (int argc, const char *const *argv);
1421 void get_colours (); 1409 void get_colors ();
1422 void get_ourmods (); 1410 void get_ourmods ();
1423 void set_icon (const char *file); 1411 void set_icon (const char *file);
1424 // main.C 1412 // main.C
1425 void tt_winch (); 1413 void tt_winch ();
1426 rxvt_term (); 1414 rxvt_term ();
1427 ~rxvt_term (); 1415 ~rxvt_term ();
1428 void destroy (); 1416 void destroy ();
1429 void emergency_cleanup (); 1417 void emergency_cleanup ();
1430 void recolour_cursor (); 1418 void recolor_cursor ();
1431 void resize_all_windows (unsigned int newwidth, unsigned int newheight, int ignoreparent); 1419 void resize_all_windows (unsigned int newwidth, unsigned int newheight, int ignoreparent);
1432 void window_calc (unsigned int newwidth, unsigned int newheight); 1420 void window_calc (unsigned int newwidth, unsigned int newheight);
1433 bool set_fonts (); 1421 bool set_fonts ();
1434 void set_string_property (Atom prop, const char *str, int len = -1); 1422 void set_string_property (Atom prop, const char *str, int len = -1);
1435 void set_mbstring_property (Atom prop, const char *str, int len = -1); 1423 void set_mbstring_property (Atom prop, const char *str, int len = -1);
1485 void paste (char *data, unsigned int len) NOTHROW; 1473 void paste (char *data, unsigned int len) NOTHROW;
1486 void scr_alloc () NOTHROW; 1474 void scr_alloc () NOTHROW;
1487 void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW; 1475 void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW;
1488 void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW; 1476 void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW;
1489 void scr_kill_char (line_t &l, int col) const NOTHROW; 1477 void scr_kill_char (line_t &l, int col) const NOTHROW;
1478 void scr_set_char_rend (line_t &l, int col, rend_t rend);
1490 int scr_scroll_text (int row1, int row2, int count) NOTHROW; 1479 int scr_scroll_text (int row1, int row2, int count) NOTHROW;
1491 void copy_line (line_t &dst, line_t &src); 1480 void copy_line (line_t &dst, line_t &src);
1492 void scr_reset (); 1481 void scr_reset ();
1493 void scr_release () NOTHROW; 1482 void scr_release () NOTHROW;
1494 void scr_clear (bool really = false) NOTHROW; 1483 void scr_clear (bool really = false) NOTHROW;
1500 void scr_backindex () NOTHROW; 1489 void scr_backindex () NOTHROW;
1501 void scr_forwardindex () NOTHROW; 1490 void scr_forwardindex () NOTHROW;
1502#endif 1491#endif
1503 void scr_touch (bool refresh) NOTHROW; 1492 void scr_touch (bool refresh) NOTHROW;
1504 void scr_expose (int x, int y, int width, int height, bool refresh) NOTHROW; 1493 void scr_expose (int x, int y, int width, int height, bool refresh) NOTHROW;
1505 void scr_recolour (bool refresh = true) NOTHROW; 1494 void scr_recolor (bool refresh = true) NOTHROW;
1506 void scr_remap_chars () NOTHROW; 1495 void scr_remap_chars () NOTHROW;
1507 void scr_remap_chars (line_t &l) NOTHROW; 1496 void scr_remap_chars (line_t &l) NOTHROW;
1508 1497
1509 enum cursor_mode { SAVE, RESTORE }; 1498 enum cursor_mode { SAVE, RESTORE };
1510 1499
1535 void scr_report_position () NOTHROW; 1524 void scr_report_position () NOTHROW;
1536 void set_font_style () NOTHROW; 1525 void set_font_style () NOTHROW;
1537 void scr_charset_choose (int set) NOTHROW; 1526 void scr_charset_choose (int set) NOTHROW;
1538 void scr_charset_set (int set, unsigned int ch) NOTHROW; 1527 void scr_charset_set (int set, unsigned int ch) NOTHROW;
1539 void scr_move_to (int y, int len) NOTHROW; 1528 void scr_move_to (int y, int len) NOTHROW;
1529 bool scr_page (int nlines) NOTHROW;
1540 bool scr_page (enum page_dirn direction, int nlines) NOTHROW; 1530 bool scr_page (enum page_dirn direction, int nlines) NOTHROW
1531 {
1532 return scr_page (direction * nlines);
1533 }
1541 bool scr_changeview (int new_view_start) NOTHROW; 1534 bool scr_changeview (int new_view_start) NOTHROW;
1542 void scr_bell () NOTHROW; 1535 void scr_bell () NOTHROW;
1543 void scr_printscreen (int fullhist) NOTHROW; 1536 void scr_printscreen (int fullhist) NOTHROW;
1544 void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW; 1537 void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW;
1545 void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW; 1538 void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW;
1546 void scr_reverse_selection () NOTHROW; 1539 void scr_reverse_selection () NOTHROW;
1547 void scr_dump (int fd) NOTHROW; 1540 void scr_dump (int fd) NOTHROW;
1548 1541
1549 void selection_check (int check_more) NOTHROW; 1542 void selection_check (int check_more) NOTHROW;
1543 void selection_changed () NOTHROW; /* sets want_refresh, corrects coordinates */
1550 void selection_request (Time tm, int selnum = Sel_Primary) NOTHROW; 1544 void selection_request (Time tm, int selnum = Sel_Primary) NOTHROW;
1551 void selection_clear (bool clipboard = false) NOTHROW; 1545 void selection_clear (bool clipboard = false) NOTHROW;
1552 void selection_make (Time tm); 1546 void selection_make (Time tm);
1553 bool selection_grab (Time tm, bool clipboard = false) NOTHROW; 1547 bool selection_grab (Time tm, bool clipboard = false) NOTHROW;
1554 void selection_start_colrow (int col, int row) NOTHROW; 1548 void selection_start_colrow (int col, int row) NOTHROW;
1561 void selection_rotate (int x, int y) NOTHROW; 1555 void selection_rotate (int x, int y) NOTHROW;
1562 1556
1563 // xdefaults.C 1557 // xdefaults.C
1564 void rxvt_usage (int type); 1558 void rxvt_usage (int type);
1565 const char **get_options (int argc, const char *const *argv); 1559 const char **get_options (int argc, const char *const *argv);
1560 int parse_keysym (const char *str, unsigned int &state);
1566 int parse_keysym (const char *str, const char *arg); 1561 int bind_action (const char *str, const char *arg);
1567 const char *x_resource (const char *name); 1562 const char *x_resource (const char *name);
1568 void extract_resources (); 1563 void extract_resources ();
1564 void enumerate_keysym_resources (void (*cb)(rxvt_term *, const char *, const char *));
1569 void extract_keysym_resources (); 1565 void extract_keysym_resources ();
1570}; 1566};
1571 1567
1572#endif /* _RXVT_H_ */ 1568#endif /* _RXVT_H_ */
1573 1569

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines