#, fuzzy msgid "" msgstr "" "Project-Id-Version: lynx 2.8.6dev.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-06-28 20:11-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. ****************************************************************** #. * The following definitions are for status line prompts, messages, or #. * warnings issued by Lynx during program execution. You can modify #. * them to make them more appropriate for your site. We recommend that #. * you extend these definitions to other languages using the gettext #. * library. There are also scattered uses of 'gettext()' throughout the #. * Lynx source, covering all but those messages which (a) are used for #. * debugging (CTRACE) or (b) are constants used in interaction with #. * other programs. #. * #. * Links to collections of alternate definitions, developed by the Lynx #. * User Community, are maintained in Lynx links: #. * #. * http://www.subir.com/lynx.html #. * #. * See ABOUT-NLS and po/readme for details and location of contributed #. * translations. When no translation is available, the English default is #. * used. #. #: LYMessages.c:30 #, c-format msgid "Alert!: %s" msgstr "" #: LYMessages.c:31 msgid "Welcome" msgstr "" #: LYMessages.c:32 msgid "Are you sure you want to quit?" msgstr "" #: LYMessages.c:34 msgid "Really exit from Lynx?" msgstr "" #: LYMessages.c:36 msgid "Connection interrupted." msgstr "" #: LYMessages.c:37 msgid "Data transfer interrupted." msgstr "" #: LYMessages.c:38 msgid "Cancelled!!!" msgstr "" #: LYMessages.c:39 msgid "Cancelling!" msgstr "" #: LYMessages.c:40 msgid "Excellent!!!" msgstr "" #: LYMessages.c:41 msgid "OK" msgstr "" #: LYMessages.c:42 msgid "Done!" msgstr "" #: LYMessages.c:43 msgid "Bad request!" msgstr "" #: LYMessages.c:44 msgid "previous" msgstr "" #: LYMessages.c:45 msgid "next screen" msgstr "" #: LYMessages.c:46 msgid "HELP!" msgstr "" #: LYMessages.c:47 msgid ", help on " msgstr "" #. #define HELP #: LYMessages.c:49 msgid "" "Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back." msgstr "" #. #define MOREHELP #: LYMessages.c:51 msgid "" "-- press space for more, use arrow keys to move, '?' for help, 'q' to quit." msgstr "" #: LYMessages.c:52 msgid "-- press space for next page --" msgstr "" #: LYMessages.c:53 msgid "URL too long" msgstr "" #. Inactive input fields, messages used with -tna option - kw #. #define FORM_LINK_TEXT_MESSAGE_INA #: LYMessages.c:59 msgid "(Text entry field) Inactive. Press to activate." msgstr "" #. #define FORM_LINK_TEXTAREA_MESSAGE_INA #: LYMessages.c:61 msgid "(Textarea) Inactive. Press to activate." msgstr "" #. #define FORM_LINK_TEXTAREA_MESSAGE_INA_E #: LYMessages.c:63 #, c-format msgid "(Textarea) Inactive. Press to activate (%s for editor)." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE_INA #: LYMessages.c:65 msgid "(Form field) Inactive. Use to edit." msgstr "" #. #define FORM_TEXT_SUBMIT_MESSAGE_INA_X #: LYMessages.c:67 #, c-format msgid "" "(Form field) Inactive. Use to edit (%s to submit with no cache)." msgstr "" #. #define FORM_TEXT_RESUBMIT_MESSAGE_INA #: LYMessages.c:69 msgid "" "(Form field) Inactive. Press to edit, press twice to " "submit." msgstr "" #. #define FORM_TEXT_SUBMIT_MAILTO_MSG_INA #: LYMessages.c:71 msgid "(mailto form field) Inactive. Press to change." msgstr "" #. #define FORM_LINK_PASSWORD_MESSAGE_INA #: LYMessages.c:73 msgid "(Password entry field) Inactive. Press to activate." msgstr "" #. #define FORM_LINK_FILE_UNM_MSG #: LYMessages.c:76 msgid "" "UNMODIFIABLE file entry field. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_FILE_MESSAGE #: LYMessages.c:78 msgid "" "(File entry field) Enter filename. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_TEXT_MESSAGE #: LYMessages.c:80 msgid "" "(Text entry field) Enter text. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_TEXTAREA_MESSAGE #: LYMessages.c:82 msgid "(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off." msgstr "" #. #define FORM_LINK_TEXTAREA_MESSAGE_E #: LYMessages.c:84 #, c-format msgid "" "(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (%s for editor)." msgstr "" #. #define FORM_LINK_TEXT_UNM_MSG #: LYMessages.c:86 msgid "" "UNMODIFIABLE form text field. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE #: LYMessages.c:88 msgid "(Form field) Enter text. Use to submit." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_MESSAGE_X #: LYMessages.c:90 #, c-format msgid "(Form field) Enter text. Use to submit (%s for no cache)." msgstr "" #. #define FORM_LINK_TEXT_RESUBMIT_MESSAGE #: LYMessages.c:92 msgid "" "(Form field) Enter text. Use to submit, arrows or tab to move off." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_UNM_MSG #: LYMessages.c:94 msgid "UNMODIFIABLE form field. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_MAILTO_MSG #: LYMessages.c:96 msgid "" "(mailto form field) Enter text. Use to submit, arrows to move off." msgstr "" #. #define FORM_LINK_TEXT_SUBMIT_MAILTO_DIS_MSG #: LYMessages.c:98 msgid "(mailto form field) Mail is disallowed so you cannot submit." msgstr "" #. #define FORM_LINK_PASSWORD_MESSAGE #: LYMessages.c:100 msgid "" "(Password entry field) Enter text. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_PASSWORD_UNM_MSG #: LYMessages.c:102 msgid "UNMODIFIABLE form password. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_CHECKBOX_MESSAGE #: LYMessages.c:104 msgid "(Checkbox Field) Use right-arrow or to toggle." msgstr "" #. #define FORM_LINK_CHECKBOX_UNM_MSG #: LYMessages.c:106 msgid "UNMODIFIABLE form checkbox. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_RADIO_MESSAGE #: LYMessages.c:108 msgid "(Radio Button) Use right-arrow or to toggle." msgstr "" #. #define FORM_LINK_RADIO_UNM_MSG #: LYMessages.c:110 msgid "" "UNMODIFIABLE form radio button. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_SUBMIT_PREFIX #: LYMessages.c:112 msgid "Submit ('x' for no cache) to " msgstr "" #. #define FORM_LINK_RESUBMIT_PREFIX #: LYMessages.c:114 msgid "Submit to " msgstr "" #. #define FORM_LINK_SUBMIT_MESSAGE #: LYMessages.c:116 msgid "" "(Form submit button) Use right-arrow or to submit ('x' for no " "cache)." msgstr "" #. #define FORM_LINK_RESUBMIT_MESSAGE #: LYMessages.c:118 msgid "(Form submit button) Use right-arrow or to submit." msgstr "" #. #define FORM_LINK_SUBMIT_DIS_MSG #: LYMessages.c:120 msgid "DISABLED form submit button. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_SUBMIT_MAILTO_PREFIX #: LYMessages.c:122 msgid "Submit mailto form to " msgstr "" #. #define FORM_LINK_SUBMIT_MAILTO_MSG #: LYMessages.c:124 msgid "(mailto form submit button) Use right-arrow or to submit." msgstr "" #. #define FORM_LINK_SUBMIT_MAILTO_DIS_MSG #: LYMessages.c:126 msgid "(mailto form submit button) Mail is disallowed so you cannot submit." msgstr "" #. #define FORM_LINK_RESET_MESSAGE #: LYMessages.c:128 msgid "" "(Form reset button) Use right-arrow or to reset form to defaults." msgstr "" #. #define FORM_LINK_RESET_DIS_MSG #: LYMessages.c:130 msgid "DISABLED form reset button. Use UP or DOWN arrows or tab to move off." msgstr "" #. #define FORM_LINK_OPTION_LIST_MESSAGE #: LYMessages.c:132 msgid "" "(Option list) Hit return and use arrow keys and return to select option." msgstr "" #. #define CHOICE_LIST_MESSAGE #: LYMessages.c:134 msgid "" "(Choice list) Hit return and use arrow keys and return to select option." msgstr "" #. #define FORM_LINK_OPTION_LIST_UNM_MSG #: LYMessages.c:136 msgid "UNMODIFIABLE option list. Use return or arrow keys to review or leave." msgstr "" #. #define CHOICE_LIST_UNM_MSG #: LYMessages.c:138 msgid "UNMODIFIABLE choice list. Use return or arrow keys to review or leave." msgstr "" #: LYMessages.c:139 msgid "Submitting form..." msgstr "" #: LYMessages.c:140 msgid "Resetting form..." msgstr "" #. #define RELOADING_FORM #: LYMessages.c:142 msgid "Reloading document. Any form entries will be lost!" msgstr "" #: LYMessages.c:143 #, c-format msgid "Warning: Cannot transcode form data to charset %s!" msgstr "" #. #define NORMAL_LINK_MESSAGE #: LYMessages.c:146 msgid "(NORMAL LINK) Use right-arrow or to activate." msgstr "" #: LYMessages.c:147 msgid "The resource requested is not available at this time." msgstr "" #: LYMessages.c:148 msgid "Enter Lynx keystroke command: " msgstr "" #: LYMessages.c:149 msgid "Looking up " msgstr "" #: LYMessages.c:150 #, c-format msgid "Getting %s" msgstr "" #: LYMessages.c:151 #, c-format msgid "Skipping %s" msgstr "" #: LYMessages.c:152 #, c-format msgid "Using %s" msgstr "" #: LYMessages.c:153 #, c-format msgid "Illegal URL: %s" msgstr "" #: LYMessages.c:154 #, c-format msgid "Badly formed address %s" msgstr "" #: LYMessages.c:155 #, c-format msgid "URL: %s" msgstr "" #: LYMessages.c:156 msgid "Unable to access WWW file!!!" msgstr "" #: LYMessages.c:157 #, c-format msgid "This is a searchable index. Use %s to search." msgstr "" #. #define WWW_INDEX_MORE_MESSAGE #: LYMessages.c:159 #, c-format msgid "--More-- This is a searchable index. Use %s to search." msgstr "" #: LYMessages.c:160 msgid "You have entered an invalid link number." msgstr "" #. #define SOURCE_HELP #: LYMessages.c:162 msgid "" "Currently viewing document source. Press '\\' to return to rendered version." msgstr "" #. #define NOVICE_LINE_ONE #: LYMessages.c:164 msgid "" " Arrow keys: Up and Down to move. Right to follow a link; Left to go " "back. \n" msgstr "" #. #define NOVICE_LINE_TWO #: LYMessages.c:166 msgid "" " H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history " "list \n" msgstr "" #. #define NOVICE_LINE_TWO_A #: LYMessages.c:168 msgid "" " O)ther cmds H)elp K)eymap G)oto P)rint M)ain screen o)ptions Q)" "uit \n" msgstr "" #. #define NOVICE_LINE_TWO_B #: LYMessages.c:170 msgid "" " O)ther cmds B)ack E)dit D)ownload ^R)eload ^W)ipe screen search " "doc: / \n" msgstr "" #. #define NOVICE_LINE_TWO_C #: LYMessages.c:172 msgid "" "O)ther cmds C)omment History: Bookmarks: V)iew, A)dd, R)" "emove \n" msgstr "" #. #define FORM_NOVICELINE_ONE #: LYMessages.c:174 msgid "" " Enter text into the field by typing on the keyboard " msgstr "" #. #define FORM_NOVICELINE_TWO #: LYMessages.c:176 msgid "" " Ctrl-U to delete all text in field, [Backspace] to delete a character " msgstr "" #. #define FORM_NOVICELINE_TWO_DELBL #: LYMessages.c:178 msgid "" " Ctrl-U to delete text in field, [Backspace] to delete a character " msgstr "" #. #define FORM_NOVICELINE_TWO_VAR #: LYMessages.c:180 #, c-format msgid "" " %s to delete all text in field, [Backspace] to delete a character " msgstr "" #. #define FORM_NOVICELINE_TWO_DELBL_VAR #: LYMessages.c:182 #, c-format msgid " %s to delete text in field, [Backspace] to delete a character " msgstr "" #. mailto #: LYMessages.c:185 msgid "Malformed mailto form submission! Cancelled!" msgstr "" #: LYMessages.c:186 msgid "Warning! Control codes in mail address replaced by ?" msgstr "" #: LYMessages.c:187 msgid "Mail disallowed! Cannot submit." msgstr "" #: LYMessages.c:188 msgid "Mailto form submission failed!" msgstr "" #: LYMessages.c:189 msgid "Mailto form submission Cancelled!!!" msgstr "" #: LYMessages.c:190 msgid "Sending form content..." msgstr "" #: LYMessages.c:191 msgid "No email address is present in mailto URL!" msgstr "" #. #define MAILTO_URL_TEMPOPEN_FAILED #: LYMessages.c:193 msgid "Unable to open temporary file for mailto URL!" msgstr "" #. #define INC_ORIG_MSG_PROMPT #: LYMessages.c:195 msgid "Do you wish to include the original message?" msgstr "" #. #define INC_PREPARSED_MSG_PROMPT #: LYMessages.c:197 msgid "Do you wish to include the preparsed source?" msgstr "" #. #define SPAWNING_EDITOR_FOR_MAIL #: LYMessages.c:199 msgid "Spawning your selected editor to edit mail message" msgstr "" #. #define ERROR_SPAWNING_EDITOR #: LYMessages.c:201 msgid "Error spawning editor, check your editor definition in the options menu" msgstr "" #: LYMessages.c:202 msgid "Send this comment?" msgstr "" #: LYMessages.c:203 msgid "Send this message?" msgstr "" #: LYMessages.c:204 msgid "Sending your message..." msgstr "" #: LYMessages.c:205 msgid "Sending your comment:" msgstr "" #. textarea #: LYMessages.c:208 msgid "Not in a TEXTAREA; cannot use external editor." msgstr "" #: LYMessages.c:209 msgid "Not in a TEXTAREA; cannot use command." msgstr "" #: LYMessages.c:211 msgid "file: ACTIONs are disallowed!" msgstr "" #. #define FILE_SERVED_LINKS_DISALLOWED #: LYMessages.c:213 msgid "file: URLs via served links are disallowed!" msgstr "" #: LYMessages.c:214 msgid "Access to local files denied." msgstr "" #: LYMessages.c:215 msgid "file: URLs via bookmarks are disallowed!" msgstr "" #. #define SPECIAL_VIA_EXTERNAL_DISALLOWED #: LYMessages.c:217 msgid "This special URL is not allowed in external documents!" msgstr "" #: LYMessages.c:218 msgid "Press to return to Lynx." msgstr "" #. #define SPAWNING_MSG #: LYMessages.c:221 msgid "Spawning DCL subprocess. Use 'logout' to return to Lynx.\n" msgstr "" #. #define SPAWNING_MSG #: LYMessages.c:225 msgid "Type EXIT to return to Lynx.\n" msgstr "" #. #define SPAWNING_MSG #: LYMessages.c:228 msgid "Spawning your default shell. Use 'exit' to return to Lynx.\n" msgstr "" #: LYMessages.c:231 msgid "Spawning is currently disabled." msgstr "" #: LYMessages.c:232 msgid "The 'd'ownload command is currently disabled." msgstr "" #: LYMessages.c:233 msgid "You cannot download an input field." msgstr "" #: LYMessages.c:234 msgid "Form has a mailto action! Cannot download." msgstr "" #: LYMessages.c:235 msgid "You cannot download a mailto: link." msgstr "" #: LYMessages.c:236 msgid "You cannot download cookies." msgstr "" #: LYMessages.c:237 msgid "You cannot download a printing option." msgstr "" #: LYMessages.c:238 msgid "You cannot download an upload option." msgstr "" #: LYMessages.c:239 msgid "You cannot download an permit option." msgstr "" #: LYMessages.c:240 msgid "This special URL cannot be downloaded!" msgstr "" #: LYMessages.c:241 msgid "Nothing to download." msgstr "" #: LYMessages.c:242 msgid "Trace ON!" msgstr "" #: LYMessages.c:243 msgid "Trace OFF!" msgstr "" #. #define CLICKABLE_IMAGES_ON #: LYMessages.c:245 msgid "Links will be included for all images! Reloading..." msgstr "" #. #define CLICKABLE_IMAGES_OFF #: LYMessages.c:247 msgid "Standard image handling restored! Reloading..." msgstr "" #. #define PSEUDO_INLINE_ALTS_ON #: LYMessages.c:249 msgid "" "Pseudo_ALTs will be i
/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */
#include "dwm.h"
#include <stdlib.h>
#include <X11/keysym.h>
#include <X11/Xatom.h>

/* static */

typedef struct {
	unsigned long mod;
	KeySym keysym;
	void (*func)(Arg *arg);
	Arg arg;
} Key;

KEYS

#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
#define MOUSEMASK		(BUTTONMASK | PointerMotionMask)

static Client *
getclient(Window w) {
	Client *c;

	for(c = clients; c && c->win != w; c = c->next);
	return c;
}

static void
movemouse(Client *c) {
	int x1, y1, ocx, ocy, di, nx, ny;
	unsigned int dui;
	Window dummy;
	XEvent ev;

	ocx = nx = c->x;
	ocy = ny = c->y;
	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
			None, cursor[CurMove], CurrentTime) != GrabSuccess)
		return;
	c->ismax = False;
	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
	for(;;) {
		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask, &ev);
		switch (ev.type) {
		case ButtonRelease:
			XUngrabPointer(dpy, CurrentTime);
			return;
		case ConfigureRequest:
		case Expose:
		case MapRequest:
			handler[ev.type](&ev);
			break;
		case MotionNotify:
			XSync(dpy, False);
			nx = ocx + (ev.xmotion.x - x1);
			ny = ocy + (ev.xmotion.y - y1);
			if(abs(wax + nx) < SNAP)
				nx = wax;
			else if(abs((wax + waw) - (nx + c->w + 2 * c->border)) < SNAP)
				nx = wax + waw - c->w - 2 * c->border;
			if(abs(way - ny) < SNAP)
				ny = way;
			else if(abs((way + wah) - (ny + c->h + 2 * c->border)) < SNAP)
				ny = way + wah - c->h - 2 * c->border;
			resize(c, nx, ny, c->w, c->h, False);
			break;
		}
	}
}

static void
resizemouse(Client *c) {
	int ocx, ocy;
	int nw, nh;
	XEvent ev;

	ocx = c->x;
	ocy = c->y;
	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
			None, cursor[CurResize], CurrentTime) != GrabSuccess)
		return;
	c->ismax = False;
	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->border - 1, c->h + c->border - 1);
	for(;;) {
		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask , &ev);
		switch(ev.type) {
		case ButtonRelease:
			XWarpPointer(dpy, None, c->win, 0, 0, 0, 0,
					c->w + c->border - 1, c->h + c->border - 1);
			XUngrabPointer(dpy, CurrentTime);
			while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
			return;
		case ConfigureRequest:
		case Expose:
		case MapRequest:
			handler[ev.type](&ev);
			break;
		case MotionNotify:
			XSync(dpy, False);
			if((nw = ev.xmotion.x - ocx - 2 * c->border + 1) <= 0)
				nw = 1;
			if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0)
				nh = 1;
			resize(c, c->x, c->y, nw, nh, True);
			break;
		}
	}
}

static void
buttonpress(XEvent *e) {
	int x;
	Arg a;
	Client *c;
	XButtonPressedEvent *ev = &e->xbutton;

	if(barwin == ev->window) {
		x = 0;
		for(a.i = 0; a.i < ntags; a.i++) {
			x += textw(tags[a.i]);
			if(ev->x < x) {
				if(ev->button == Button1) {
					if(ev->state & MODKEY)
						tag(&a);
					else
						view(&a);
				}
				else if(ev->button == Button3) {
					if(ev->state & MODKEY)
						toggletag(&a);
					else
						toggleview(&a);
				}
				return;
			}
		}
		if(ev->x < x + bmw)
			switch(ev->button) {
			case Button1:
				togglemode(NULL);
				break;
			case Button4:
				a.i = 1;
				incnmaster(&a);
				break;
			case Button5:
				a.i = -1;
				incnmaster(&a);
				break;
			}
	}
	else if((c = getclient(ev->window))) {
		focus(c);
		if(CLEANMASK(ev->state) != MODKEY)
			return;
		if(ev->button == Button1 && (arrange == dofloat || c->isfloat)) {
			restack();
			movemouse(c);
		}
		else if(ev->button == Button2)
			zoom(NULL);
		else if(ev->button == Button3
		&& (arrange == dofloat || c->isfloat) && !c->isfixed)
		{
			restack();
			resizemouse(c);
		}
	}
}

static void
configurerequest(XEvent *e) {
	Client *c;
	XConfigureRequestEvent *ev = &e->xconfigurerequest;
	XWindowChanges wc;

	if((c = getclient(ev->window))) {
		c->ismax = False;
		if(ev->value_mask & CWBorderWidth)
			c->border = ev->border_width;
		if(c->isfixed || c->isfloat || (arrange == dofloat)) {
			if(ev->value_mask & CWX)
				c->x = ev->x;
			if(ev->value_mask & CWY)
				c->y = ev->y;
			if(ev->value_mask & CWWidth)
				c->w = ev->width;
			if(ev->value_mask & CWHeight)
				c->h = ev->height;
			if((ev->value_mask & (CWX | CWY))
			&& !(ev->value_mask & (CWWidth | CWHeight)))
				configure(c);
			if(isvisible(c))
				XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
		}
		else
			configure(c);
	}
	else {
		wc.x = ev->x;
		wc.y = ev->y;
		wc.width = ev->width;
		wc.height = ev->height;
		wc.border_width = ev->border_width;
		wc.sibling = ev->above;
		wc.stack_mode = ev->detail;
		XConfigureWindow(dpy, ev->window, ev->value_mask, &wc);
	}
	XSync(dpy, False);
}

static void
destroynotify(XEvent *e) {
	Client *c;
	XDestroyWindowEvent *ev = &e->xdestroywindow;

	if((c = getclient(ev->window)))
		unmanage(c);
}

static void
enternotify(XEvent *e) {
	Client *c;
	XCrossingEvent *ev = &e->xcrossing;

	if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
		return;
	if((c = getclient(ev->window)) && isvisible(c))
		focus(c);
	else if(ev->window == root) {
		selscreen = True;
		for(c = stack; c && !isvisible(c); c = c->snext);
		focus(c);
	}
}

static void
expose(XEvent *e) {
	XExposeEvent *ev = &e->xexpose;

	if(ev->count == 0) {
		if(barwin == ev->window)
			drawstatus();
	}
}

static void
keypress(XEvent *e) {
	static unsigned int len = sizeof key / sizeof key[0];
	unsigned int i;
	KeySym keysym;
	XKeyEvent *ev = &e->xkey;

	keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
	for(i = 0; i < len; i++)
		if(keysym == key[i].keysym
		&& CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
		{
			if(key[i].func)
				key[i].func(&key[i].arg);
		}
}

static void
leavenotify(XEvent *e) {
	XCrossingEvent *ev = &e->xcrossing;

	if((ev->window == root) && !ev->same_screen) {
		selscreen = False;
		focus(NULL);
	}
}

static void
mappingnotify(XEvent *e) {
	XMappingEvent *ev = &e->xmapping;

	XRefreshKeyboardMapping(ev);
	if(ev->request == MappingKeyboard)
		grabkeys();
}

static void
maprequest(XEvent *e) {
	static XWindowAttributes wa;
	XMapRequestEvent *ev = &e->xmaprequest;

	if(!XGetWindowAttributes(dpy, ev->window, &wa))
		return;
	if(wa.override_redirect)
		return;
	if(!getclient(ev->window))
		manage(ev->window, &wa);
}

static void
propertynotify(XEvent *e) {
	Client *c;
	Window trans;
	XPropertyEvent *ev = &e->xproperty;

	if(ev->state == PropertyDelete)
		return; /* ignore */
	if((c = getclient(ev->window))) {
		switch (ev->atom) {
			default: break;
			case XA_WM_TRANSIENT_FOR:
				XGetTransientForHint(dpy, c->win, &trans);
				if(!c->isfloat && (c->isfloat = (trans != 0)))
					arrange();
				break;
			case XA_WM_NORMAL_HINTS:
				updatesizehints(c);
				break;
		}
		if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
			updatetitle(c);
			if(c == sel)
				drawstatus();
		}
	}
}

static void
unmapnotify(XEvent *e) {
	Client *c;
	XUnmapEvent *ev = &e->xunmap;

	if((c = getclient(ev->window)))
		unmanage(c);
}

/* extern */

void (*handler[LASTEvent]) (XEvent *) = {
	[ButtonPress] = buttonpress,
	[ConfigureRequest] = configurerequest,
	[DestroyNotify] = destroynotify,
	[EnterNotify] = enternotify,
	[LeaveNotify] = leavenotify,
	[Expose] = expose,
	[KeyPress] = keypress,
	[MappingNotify] = mappingnotify,
	[MapRequest] = maprequest,
	[PropertyNotify] = propertynotify,
	[UnmapNotify] = unmapnotify
};

void
grabkeys(void) {
	static unsigned int len = sizeof key / sizeof key[0];
	unsigned int i;
	KeyCode code;

	XUngrabKey(dpy, AnyKey, AnyModifier, root);
	for(i = 0; i < len; i++) {
		code = XKeysymToKeycode(dpy, key[i].keysym);
		XGrabKey(dpy, code, key[i].mod, root, True,
				GrabModeAsync, GrabModeAsync);
		XGrabKey(dpy, code, key[i].mod | LockMask, root, True,
				GrabModeAsync, GrabModeAsync);
		XGrabKey(dpy, code, key[i].mod | numlockmask, root, True,
				GrabModeAsync, GrabModeAsync);
		XGrabKey(dpy, code, key[i].mod | numlockmask | LockMask, root, True,
				GrabModeAsync, GrabModeAsync);
	}
}
" msgstr "" #: src/LYShowInfo.c:199 msgid "Access Permissions" msgstr "" #: src/LYShowInfo.c:265 msgid "File that you are currently viewing" msgstr "" #: src/LYShowInfo.c:270 src/LYShowInfo.c:385 msgid "Linkname:" msgstr "" #: src/LYShowInfo.c:283 src/LYShowInfo.c:296 msgid "Charset:" msgstr "" #: src/LYShowInfo.c:303 msgid "Server:" msgstr "" #: src/LYShowInfo.c:307 msgid "Date:" msgstr "" #: src/LYShowInfo.c:310 msgid "Last Mod:" msgstr "" #: src/LYShowInfo.c:316 msgid " Expires:" msgstr "" #: src/LYShowInfo.c:320 msgid "Cache-Control:" msgstr "" #: src/LYShowInfo.c:324 msgid "Content-Length:" msgstr "" #: src/LYShowInfo.c:329 msgid "Language:" msgstr "" #: src/LYShowInfo.c:336 msgid "Post Data:" msgstr "" #: src/LYShowInfo.c:340 msgid "Post Content Type:" msgstr "" #: src/LYShowInfo.c:349 msgid "Owner(s):" msgstr "" #: src/LYShowInfo.c:352 msgid "size:" msgstr "" #: src/LYShowInfo.c:352 msgid "lines" msgstr "" #: src/LYShowInfo.c:355 msgid "mode:" msgstr "" #: src/LYShowInfo.c:357 msgid "forms mode" msgstr "" #: src/LYShowInfo.c:359 msgid "source" msgstr "" #: src/LYShowInfo.c:360 msgid "normal" msgstr "" #: src/LYShowInfo.c:361 msgid ", safe" msgstr "" #: src/LYShowInfo.c:362 msgid ", via internal link" msgstr "" #: src/LYShowInfo.c:368 msgid ", no-cache" msgstr "" #: src/LYShowInfo.c:370 msgid ", ISMAP script" msgstr "" #: src/LYShowInfo.c:372 msgid ", bookmark file" msgstr "" #: src/LYShowInfo.c:381 msgid "Link that you currently have selected" msgstr "" #: src/LYShowInfo.c:394 msgid "Method:" msgstr "" #: src/LYShowInfo.c:399 msgid "Enctype:" msgstr "" #: src/LYShowInfo.c:411 msgid "(Form field)" msgstr "" #: src/LYShowInfo.c:426 msgid "No Links on the current page" msgstr "" #: src/LYShowInfo.c:430 msgid "Server Headers:" msgstr "" #: src/LYStyle.c:286 #, c-format msgid "" "Syntax Error parsing style in lss file:\n" "[%s]\n" "The line must be of the form:\n" "OBJECT:MONO:COLOR (ie em:bold:brightblue:white)\n" "where OBJECT is one of EM,STRONG,B,I,U,BLINK etc.\n" "\n" msgstr "" #: src/LYTraversal.c:108 msgid "here is a list of the history stack so that you may rebuild" msgstr "" #: src/LYUpload.c:75 msgid "ERROR! - upload command is misconfigured" msgstr "" #: src/LYUpload.c:96 msgid "Illegal redirection \"../\" found! Request ignored." msgstr "" #: src/LYUpload.c:99 msgid "Illegal character \"/\" found! Request ignored." msgstr "" #: src/LYUpload.c:102 msgid "Illegal redirection using \"~\" found! Request ignored." msgstr "" #: src/LYUpload.c:159 msgid "Unable to upload file." msgstr "" #: src/LYUpload.c:201 msgid "Upload To:" msgstr "" #: src/LYUpload.c:202 msgid "Upload options:" msgstr "" #: src/LYUtils.c:1695 msgid "Download document URL put to clipboard." msgstr "" #: src/LYUtils.c:2463 msgid "Unexpected access protocol for this URL scheme." msgstr "" #: src/LYUtils.c:3281 msgid "Too many tempfiles" msgstr "" #: src/LYUtils.c:3585 msgid "unknown restriction" msgstr "" #: src/LYUtils.c:3615 #, c-format msgid "No restrictions set.\n" msgstr "" #: src/LYUtils.c:3618 #, c-format msgid "Restrictions set:\n" msgstr "" #: src/LYUtils.c:4998 msgid "Cannot find HOME directory" msgstr "" #: src/LYrcFile.c:21 msgid "Normally disabled. See ENABLE_LYNXRC in lynx.cfg\n" msgstr "" #: src/LYrcFile.c:317 msgid "" "accept_all_cookies allows the user to tell Lynx to automatically\n" "accept all cookies if desired. The default is \"FALSE\" which will\n" "prompt for each cookie. Set accept_all_cookies to \"TRUE\" to accept\n" "all cookies.\n" msgstr "" #: src/LYrcFile.c:324 msgid "" "bookmark_file specifies the name and location of the default bookmark\n" "file into which the user can paste links for easy access at a later\n" "date.\n" msgstr "" #: src/LYrcFile.c:329 msgid "" "If case_sensitive_searching is \"on\" then when the user invokes a search\n" "using the 's' or '/' keys, the search performed will be case sensitive\n" "instead of case INsensitive. The default is usually \"off\".\n" msgstr "" #: src/LYrcFile.c:334 msgid "" "The character_set definition controls the representation of 8 bit\n" "characters for your terminal. If 8 bit characters do not show up\n" "correctly on your screen you may try changing to a different 8 bit\n" "set or using the 7 bit character approximations.\n" "Current valid characters sets are:\n" msgstr "" #: src/LYrcFile.c:341 msgid "" "cookie_accept_domains and cookie_reject_domains are comma-delimited\n" "lists of domains from which Lynx should automatically accept or reject\n" "all cookies. If a domain is specified in both options, rejection will\n" "take precedence. The accept_all_cookies parameter will override any\n" "settings made here.\n" msgstr "" #: src/LYrcFile.c:349 msgid "" "cookie_file specifies the file from which to read persistent cookies.\n" "The default is ~/.lynx_cookies.\n" msgstr "" #: src/LYrcFile.c:354 msgid "" "cookie_loose_invalid_domains, cookie_strict_invalid_domains, and\n" "cookie_query_invalid_domains are comma-delimited lists of which domains\n" "should be subjected to varying degrees of validity checking. If a\n" "domain is set to strict checking, strict conformance to RFC2109 will\n" "be applied. A domain with loose checking will be allowed to set cookies\n" "with an invalid path or domain attribute. All domains will default to\n" "querying the user for an invalid path or domain.\n" msgstr "" #: src/LYrcFile.c:368 msgid "" "dir_list_order specifies the directory list order under DIRED_SUPPORT\n" "(if implemented). The default is \"ORDER_BY_NAME\"\n" msgstr "" #: src/LYrcFile.c:373 msgid "" "dir_list_styles specifies the directory list style under DIRED_SUPPORT\n" "(if implemented). The default is \"MIXED_STYLE\", which sorts both\n" "files and directories together. \"FILES_FIRST\" lists files first and\n" "\"DIRECTORIES_FIRST\" lists directories first.\n" msgstr "" #: src/LYrcFile.c:381 msgid "" "If emacs_keys is to \"on\" then the normal EMACS movement keys:\n" " ^N = down ^P = up\n" " ^B = left ^F = right\n" "will be enabled.\n" msgstr "" #: src/LYrcFile.c:387 msgid "" "file_editor specifies the editor to be invoked when editing local files\n" "or sending mail. If no editor is specified, then file editing is disabled\n" "unless it is activated from the command line, and the built-in line editor\n" "will be used for sending mail.\n" msgstr "" #: src/LYrcFile.c:393 msgid "" "The file_sorting_method specifies which value to sort on when viewing\n" "file lists such as FTP directories. The options are:\n" " BY_FILENAME -- sorts on the name of the file\n" " BY_TYPE -- sorts on the type of the file\n" " BY_SIZE -- sorts on the size of the file\n" " BY_DATE -- sorts on the date of the file\n" msgstr "" #: src/LYrcFile.c:411 msgid "" "lineedit_mode specifies the key binding used for inputting strings in\n" "prompts and forms. If lineedit_mode is set to \"Default Binding\" then\n" "the following control characters are used for moving and deleting:\n" "\n" " Prev Next Enter = Accept input\n" " Move char: <- -> ^G = Cancel input\n" " Move word: ^P ^N ^U = Erase line\n" " Delete char: ^H ^R ^A = Beginning of line\n" " Delete word: ^B ^F ^E = End of line\n" "\n" "Current lineedit modes are:\n" msgstr "" #: src/LYrcFile.c:429 msgid "" "The following allow you to define sub-bookmark files and descriptions.\n" "The format is multi_bookmark=,\n" "Up to 26 bookmark files (for the English capital letters) are allowed.\n" "We start with \"multi_bookmarkB\" since 'A' is the default (see above).\n" msgstr "" #: src/LYrcFile.c:435 msgid "" "personal_mail_address specifies your personal mail address. The\n" "address will be sent during HTTP file transfers for authorization and\n" "logging purposes, and for mailed comments.\n" "If you do not want this information given out, set the NO_FROM_HEADER\n" "to TRUE in lynx.cfg, or use the -nofrom command line switch. You also\n" "could leave this field blank, but then you won't have it included in\n" "your mailed comments.\n" msgstr "" #: src/LYrcFile.c:444 msgid "" "preferred_charset specifies the character set in MIME notation (e.g.,\n" "ISO-8859-2, ISO-8859-5) which Lynx will indicate you prefer in requests\n" "to http servers using an Accept-Charset header. The value should NOT\n" "include ISO-8859-1 or US-ASCII, since those values are always assumed\n" "by default. May be a comma-separated list.\n" "If a file in that character set is available, the server will send it.\n" "If no Accept-Charset header is present, the default is that any\n" "character set is acceptable. If an Accept-Charset header is present,\n" "and if the server cannot send a response which is acceptable\n" "according to the Accept-Charset header, then the server SHOULD send\n" "an error response, though the sending of an unacceptable response\n" "is also allowed.\n" msgstr "" #: src/LYrcFile.c:460 msgid "" "preferred_language specifies the language in MIME notation (e.g., en,\n" "fr, may be a comma-separated list in decreasing preference)\n" "which Lynx will indicate you prefer in requests to http servers.\n" "If a file in that language is available, the server will send it.\n" "Otherwise, the server will send the file in its default language.\n" msgstr "" #: src/LYrcFile.c:471 msgid "" "If run_all_execution_links is set \"on\" then all local execution links\n" "will be executed when they are selected.\n" "\n" "WARNING - This is potentially VERY dangerous. Since you may view\n" " information that is written by unknown and untrusted sources\n" " there exists the possibility that Trojan horse links could be\n" " written. Trojan horse links could be written to erase files\n" " or compromise security. This should only be set to \"on\" if\n" " you are viewing trusted source information.\n" msgstr "" #: src/LYrcFile.c:482 msgid "" "If run_execution_links_on_local_files is set \"on\" then all local\n" "execution links that are found in LOCAL files will be executed when they\n" "are selected. This is different from run_all_execution_links in that\n" "only files that reside on the local system will have execution link\n" "permissions.\n" "\n" "WARNING - This is potentially dangerous. Since you may view\n" " information that is written by unknown and untrusted sources\n" " there exists the possibility that Trojan horse links could be\n" " written. Trojan horse links could be written to erase files\n" " or compromise security. This should only be set to \"on\" if\n" " you are viewing trusted source information.\n" msgstr "" #: src/LYrcFile.c:500 msgid "" "select_popups specifies whether the OPTIONs in a SELECT block which\n" "lacks a MULTIPLE attribute are presented as a vertical list of radio\n" "buttons or via a popup menu. Note that if the MULTIPLE attribute is\n" "present in the SELECT start tag, Lynx always will create a vertical list\n" "of checkboxes for the OPTIONs. A value of \"on\" will set popup menus\n" "as the default while a value of \"off\" will set use of radio boxes.\n" "The default can be overridden via the -popup command line toggle.\n" msgstr "" #: src/LYrcFile.c:510 msgid "" "show_color specifies how to set the color mode at startup. A value of\n" "\"never\" will force color mode off (treat the terminal as monochrome)\n" "at startup even if the terminal appears to be color capable. A value of\n" "\"always\" will force color mode on even if the terminal appears to be\n" "monochrome, if this is supported by the library used to build lynx.\n" "A value of \"default\" will yield the behavior of assuming\n" "a monochrome terminal unless color capability is inferred at startup\n" "based on the terminal type, or the -color command line switch is used, or\n" "the COLORTERM environment variable is set. The default behavior always is\n" "used in anonymous accounts or if the \"option_save\" restriction is set.\n" "The effect of the saved value can be overridden via\n" "the -color and -nocolor command line switches.\n" "The mode set at startup can be changed via the \"show color\" option in\n" "the 'o'ptions menu. If the option settings are saved, the \"on\" and\n" "\"off\" \"show color\" settings will be treated as \"default\".\n" msgstr "" #: src/LYrcFile.c:527 msgid "" "show_cursor specifies whether to 'hide' the cursor to the right (and\n" "bottom, if possible) of the screen, or to place it to the left of the\n" "current link in documents, or current option in select popup windows.\n" "Positioning the cursor to the left of the current link or option is\n" "helpful for speech or braille interfaces, and when the terminal is\n" "one which does not distinguish the current link based on highlighting\n" "or color. A value of \"on\" will set positioning to the left as the\n" "default while a value of \"off\" will set 'hiding' of the cursor.\n" "The default can be overridden via the -show_cursor command line toggle.\n" msgstr "" #: src/LYrcFile.c:538 msgid "" "show_dotfiles specifies that the directory listing should include\n" "\"hidden\" (dot) files/directories. If set \"on\", this will be\n" "honored only if enabled via userdefs.h and/or lynx.cfg, and not\n" "restricted via a command line switch. If display of hidden files\n" "is disabled, creation of such files via Lynx also is disabled.\n" msgstr "" #: src/LYrcFile.c:549 msgid "" "If sub_bookmarks is not turned \"off\", and multiple bookmarks have\n" "been defined (see below), then all bookmark operations will first\n" "prompt the user to select an active sub-bookmark file. If the default\n" "Lynx bookmark_file is defined (see above), it will be used as the\n" "default selection. When this option is set to \"advanced\", and the\n" "user mode is advanced, the 'v'iew bookmark command will invoke a\n" "statusline prompt instead of the menu seen in novice and intermediate\n" "user modes. When this option is set to \"standard\", the menu will be\n" "presented regardless of user mode.\n" msgstr "" #: src/LYrcFile.c:563 msgid "" "user_mode specifies the users level of knowledge with Lynx. The\n" "default is \"NOVICE\" which displays two extra lines of help at the\n" "bottom of the screen to aid the user in learning the basic Lynx\n" "commands. Set user_mode to \"INTERMEDIATE\" to turn off the extra info.\n" "Use \"ADVANCED\" to see the URL of the currently selected link at the\n" "bottom of the screen.\n" msgstr "" #: src/LYrcFile.c:572 msgid "" "If verbose_images is \"on\", lynx will print the name of the image\n" "source file in place of [INLINE], [LINK] or [IMAGE]\n" "See also VERBOSE_IMAGES in lynx.cfg\n" msgstr "" #: src/LYrcFile.c:577 msgid "" "If vi_keys is set to \"on\", then the normal VI movement keys:\n" " j = down k = up\n" " h = left l = right\n" "will be enabled. These keys are only lower case.\n" "Capital 'H', 'J' and 'K will still activate help, jump shortcuts,\n" "and the keymap display, respectively.\n" msgstr "" #: src/LYrcFile.c:585 msgid "" "The visited_links setting controls how Lynx organizes the information\n" "in the Visited Links Page.\n" msgstr "" #: src/LYrcFile.c:803 msgid "" "If keypad_mode is set to \"NUMBERS_AS_ARROWS\", then the numbers on\n" "your keypad when the numlock is on will act as arrow keys:\n" " 8 = Up Arrow\n" " 4 = Left Arrow 6 = Right Arrow\n" " 2 = Down Arrow\n" "and the corresponding keyboard numbers will act as arrow keys,\n" "regardless of whether numlock is on.\n" msgstr "" #: src/LYrcFile.c:812 msgid "" "If keypad_mode is set to \"LINKS_ARE_NUMBERED\", then numbers will\n" "appear next to each link and numbers are used to select links.\n" msgstr "" #: src/LYrcFile.c:816 msgid "" "If keypad_mode is set to \"LINKS_AND_FORM_FIELDS_ARE_NUMBERED\", then\n" "numbers will appear next to each link and visible form input field.\n" "Numbers are used to select links, or to move the \"current link\" to a\n" "form input field or button. In addition, options in popup menus are\n" "indexed so that the user may type an option number to select an option in\n" "a popup menu, even if the option isn't visible on the screen. Reference\n" "lists and output from the list command also enumerate form inputs.\n" msgstr "" #: src/LYrcFile.c:825 msgid "" "NOTE: Some fixed format documents may look disfigured when\n" "\"LINKS_ARE_NUMBERED\" or \"LINKS_AND_FORM_FIELDS_ARE_NUMBERED\" are\n" "enabled.\n" msgstr "" #: src/LYrcFile.c:857 msgid "" "Lynx User Defaults File\n" "\n" "This file contains options saved from the Lynx Options Screen (normally\n" "with the '>' key). There is normally no need to edit this file manually,\n" "since the defaults here can be controlled from the Options Screen, and the\n" "next time options are saved from the Options Screen this file will be\n" "completely rewritten. You have been warned...\n" "If you are looking for the general configuration file - it is normally\n" "called lynx.cfg, and it has different content and a different format.\n" "It is not this file.\n" msgstr ""