WISH: OnTheSpot editing, or maybe switch to miiiiiiif
WISH: just for fun, do shade and tint with XRender.
WISH: make builtin character glyphs optional
-WISH: better support for mixing xft font sizes rxvt -fn "xft:Andale Mono:size=15" -fb "xft:Andale Mono:size=8:bold"
+SECURITY FIX: systems using openpty (most BSDs) had wrong permissions
+on the tty. Systems using unix pty's (such as GNU/Linux) were not
+affected. Apart from this, the meta8 option is no longer forcefully
+enabled. New features: urxvt now supports embedded perl, which can already
+do useful things and will certainly be extended in the future.
+
+6.3
- SECURITY FIX: on systems using openpty, permissions were
not correctly updated on the tty device and were left as
world-readable and world-writable (likely in original rxvt,
- too), and were not restored properly (same as xterm here).
- Affected are only systems using non-unix ptys (such as most
- BSDs, not GNU/Linux).
+ too), and were not restored properly. Affected are only systems
+ using non-unix ptys (such as most BSDs, not GNU/Linux).
- meta8 support was forcefully enabled in most configurations.
restored configurability of this (useless) feature (reported
- by Mikachu)
+ by Mikachu).
- optionally embed a perl interpreter, which can be used for more
intelligent/customized selection support, visual feedback,
menus, tabs etc. See the the urxvtperl manpage, the -pe option,
perl*-resources and keysym resources. Not everything is there yet.
- try to be more clever about differing font sizes and their ascent.
+ Not guarenteed to work, but works better in most cases now.
- fix directory permissions on install.
+TODO - implemented option to disable built-in line drawing characters
+ and fall back to the font ones (patch by Martin Pohlack).
- disabled sched_yield support: the linux version is just too useless
(it schedules nice'd processes before the own one for extended
periods). Too bad, it could reduce system time by a factor of 5 here.
src/fdpass.h
src/fdpass.C
src/feature.h
+src/hookinc.h
src/init.C
src/init.h
src/iom.C
--- /dev/null
+// all supported hooks
+
+ def (INIT)
+ def (DESTROY)
+ def (RESET)
+ def (START)
+
+ def (SEL_BEGIN)
+ def (SEL_EXTEND)
+ def (SEL_MAKE)
+ def (SEL_GRAB)
+
+ def (SEL_CLICK)
+
+ def (FOCUS_IN)
+ def (FOCUS_OUT)
+
+ def (VIEW_CHANGE)
+ def (SCROLL_BACK)
+ def (TTY_ACTIVITY)
+ def (OSC_SEQ)
+
+ def (REFRESH_BEGIN)
+ def (REFRESH_END)
+
+ def (KEYBOARD_COMMAND)
+
+ def (MOUSE_CLICK)
+ def (MOUSE_MOVE)
// all resource indices, used by rxvt.h anf rxvtperl.xs
- Rs_def(display_name)
- Rs_def(term_name)
- Rs_def(iconName)
- Rs_def(geometry)
- Rs_def(reverseVideo)
- Rs_def(color)
- Rs_reserve(color, NRS_COLORS)
- Rs_def(font)
+ def (display_name)
+ def (term_name)
+ def (iconName)
+ def (geometry)
+ def (reverseVideo)
+ def (color)
+ reserve (color, NRS_COLORS)
+ def (font)
#if ENABLE_STYLES
- Rs_def(boldFont)
- Rs_def(italicFont)
- Rs_def(boldItalicFont)
- Rs_def(intensityStyles)
+ def (boldFont)
+ def (italicFont)
+ def (boldItalicFont)
+ def (intensityStyles)
#endif
- Rs_def(name)
- Rs_def(title)
+ def (name)
+ def (title)
#if defined (XPM_BACKGROUND) || (MENUBAR_MAX)
- Rs_def(path)
+ def (path)
#endif
#ifdef XPM_BACKGROUND
- Rs_def(backgroundPixmap)
+ def (backgroundPixmap)
#endif
#if (MENUBAR_MAX)
- Rs_def(menu)
+ def (menu)
#endif
- Rs_def(loginShell)
- Rs_def(jumpScroll)
+ def (loginShell)
+ def (jumpScroll)
#ifdef HAVE_SCROLLBARS
- Rs_def(scrollBar)
- Rs_def(scrollBar_right)
- Rs_def(scrollBar_floating)
- Rs_def(scrollBar_align)
- Rs_def(scrollstyle)
- Rs_def(scrollBar_thickness)
-#endif
- Rs_def(scrollTtyOutput)
- Rs_def(scrollTtyKeypress)
- Rs_def(scrollWithBuffer)
- Rs_def(saveLines)
- Rs_def(utmpInhibit)
- Rs_def(visualBell)
+ def (scrollBar)
+ def (scrollBar_right)
+ def (scrollBar_floating)
+ def (scrollBar_align)
+ def (scrollstyle)
+ def (scrollBar_thickness)
+#endif
+ def (scrollTtyOutput)
+ def (scrollTtyKeypress)
+ def (scrollWithBuffer)
+ def (saveLines)
+ def (utmpInhibit)
+ def (visualBell)
#if ! defined(NO_MAPALERT) && defined(MAPALERT_OPTION)
- Rs_def(mapAlert)
+ def (mapAlert)
#endif
#ifdef META8_OPTION
- Rs_def(meta8)
+ def (meta8)
#endif
#ifdef MOUSE_WHEEL
- Rs_def(mouseWheelScrollPage)
+ def (mouseWheelScrollPage)
#endif
#ifndef NO_BACKSPACE_KEY
- Rs_def(backspace_key)
+ def (backspace_key)
#endif
#ifndef NO_DELETE_KEY
- Rs_def(delete_key)
+ def (delete_key)
#endif
- Rs_def(selectstyle)
+ def (selectstyle)
#ifdef PRINTPIPE
- Rs_def(print_pipe)
+ def (print_pipe)
#endif
#ifdef USE_XIM
- Rs_def(preeditType)
- Rs_def(inputMethod)
+ def (preeditType)
+ def (inputMethod)
#endif
#ifdef TRANSPARENT
- Rs_def(transparent)
- Rs_def(transparent_all)
+ def (transparent)
+ def (transparent_all)
#endif
#if ENABLE_FRILLS
- Rs_def(pty_fd)
- Rs_def(hold)
- Rs_def(ext_bwidth)
- Rs_def(int_bwidth)
- Rs_def(borderLess)
- Rs_def(lineSpace)
- Rs_def(cursorUnderline)
+ def (pty_fd)
+ def (hold)
+ def (ext_bwidth)
+ def (int_bwidth)
+ def (borderLess)
+ def (lineSpace)
+ def (cursorUnderline)
#endif
#if CURSOR_BLINK
- Rs_def(cursorBlink)
+ def (cursorBlink)
#endif
#if ENABLE_XEMBED
- Rs_def(embed)
-#endif
- Rs_def(cutchars)
- Rs_def(modifier)
- Rs_def(answerbackstring)
- Rs_def(tripleclickwords)
- Rs_def(insecure)
- Rs_def(pointerBlank)
- Rs_def(pointerBlankDelay)
- Rs_def(imLocale)
- Rs_def(imFont)
- Rs_def(pastableTabs)
+ def (embed)
+#endif
+ def (cutchars)
+ def (modifier)
+ def (answerbackstring)
+ def (tripleclickwords)
+ def (insecure)
+ def (pointerBlank)
+ def (pointerBlankDelay)
+ def (imLocale)
+ def (imFont)
+ def (pastableTabs)
#ifndef NO_SECONDARY_SCREEN
- Rs_def(secondaryScreen)
- Rs_def(secondaryScroll)
+ def (secondaryScreen)
+ def (secondaryScroll)
#endif
#ifdef OFF_FOCUS_FADING
- Rs_def(fade)
+ def (fade)
#endif
#ifdef TINTING
- Rs_def(shade)
+ def (shade)
#endif
#if ENABLE_PERL
- Rs_def(perl_eval)
- Rs_def(perl_ext)
- Rs_def(perl_lib)
+ def (perl_eval)
+ def (perl_ext)
+ def (perl_lib)
#endif
* Resource list
*/
enum {
-#define Rs_def(name) Rs_ ## name,
-#define Rs_reserve(name,count) Rs_ ## name ## _ = Rs_ ## name + (count) - 1,
-#include "rsinc.h"
-#undef Rs_def
-#undef Rs_reserve
+# define def(name) Rs_ ## name,
+# define reserve(name,count) Rs_ ## name ## _ = Rs_ ## name + (count) - 1,
+# include "rsinc.h"
+# undef def
+# undef reserve
NUM_RESOURCES
};
};
enum hook_type {
- HOOK_INIT = 0, // special, hardcoded
- HOOK_DESTROY = 1, // values in urxvt.pm
- HOOK_RESET,
- HOOK_START,
-
- HOOK_SEL_BEGIN,
- HOOK_SEL_EXTEND,
- HOOK_SEL_MAKE,
- HOOK_SEL_GRAB,
-
- HOOK_SEL_CLICK,
-
- HOOK_FOCUS_IN,
- HOOK_FOCUS_OUT,
-
- HOOK_VIEW_CHANGE,
- HOOK_SCROLL_BACK,
- HOOK_TTY_ACTIVITY,
- HOOK_OSC_SEQ,
-
- HOOK_REFRESH_BEGIN,
- HOOK_REFRESH_END,
-
- HOOK_KEYBOARD_COMMAND,
-
- HOOK_MOUSE_CLICK,
- HOOK_MOUSE_MOVE,
-
+# define def(sym) HOOK_ ## sym,
+# include "hookinc.h"
+# undef def
HOOK_NUM,
};
BOOT:
{
-# define set_hookname(sym) av_store (hookname, PP_CONCAT(HOOK_, sym), newSVpv (PP_STRINGIFY(sym), 0))
# define export_const(name) newCONSTSUB (gv_stashpv ("urxvt", 1), #name, newSViv (name));
AV *hookname = get_av ("urxvt::HOOKNAME", 1);
- set_hookname (INIT);
- set_hookname (RESET);
- set_hookname (START);
- set_hookname (DESTROY);
- set_hookname (SEL_BEGIN);
- set_hookname (SEL_EXTEND);
- set_hookname (SEL_MAKE);
- set_hookname (SEL_GRAB);
- set_hookname (FOCUS_IN);
- set_hookname (FOCUS_OUT);
- set_hookname (VIEW_CHANGE);
- set_hookname (SCROLL_BACK);
- set_hookname (TTY_ACTIVITY);
- set_hookname (OSC_SEQ);
- set_hookname (REFRESH_BEGIN);
- set_hookname (REFRESH_END);
- set_hookname (KEYBOARD_COMMAND);
+# define def(sym) av_store (hookname, HOOK_ ## sym, newSVpv (# sym, 0));
+# include "hookinc.h"
+# undef def
export_const (DEFAULT_RSTYLE);
export_const (OVERLAY_RSTYLE);
PPCODE:
{
struct resval { const char *name; int value; } rslist [] = {
-# define Rs_def(name) { # name, Rs_ ## name },
-# define Rs_reserve(name,count)
+# define def(name) { # name, Rs_ ## name },
+# define reserve(name,count)
# include "rsinc.h"
-# undef Rs_def
-# undef Rs_reserve
+# undef def
+# undef reserve
};
struct resval *rs = rslist + sizeof (rslist) / sizeof (rslist [0]);