[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lynx-dev patch - Referer with query, un-hardwire ^Ve, PERSISTENT_COOKIES
From: |
Klaus Weide |
Subject: |
lynx-dev patch - Referer with query, un-hardwire ^Ve, PERSISTENT_COOKIES default |
Date: |
Wed, 3 Nov 1999 10:27:04 -0600 (CST) |
Is anyone besides Tom still keeping track of patches? :)
* New lynx.cfg option REFERER_WITH_QUERY:[SEND|PARTIAL|DROP].
* Don't send Referer if we have to load a document again that we got
from the history stack. Lynx would send the URL of the current
document (the one "later" in history) which could only accidentally
be right.
* Changed default for PERSISTENT_COOKIES from TRUE to FALSE, since
persistent cookie support is now configured in by default.
* New functions (key_for_func_ext) to return a "best" key (or key pair) to
invoke a given lynx action, either in the Line Editor or in normal mode.
Currently only used for a couple of statusline messages (those that had ^V
hardcoded). The statusline info while in a textarea now gives the right
key(s) for invoking external editing, or omits the info if appropriate
(no key bound, or no editor defined or allowed).
[ There are still glitches with unusual situations in connection with some
mouse and sticky stuff. They are not limited to the new code. Will look
into that. ]
[ I tried to do this right so that the key stuff works for the EBCDIC port,
no testing of course. ]
* Doc updates for TEXTAREA special functions.
* Moved #defines for TEXTAREA_EXPAND_SIZE, AUTOGROW, AUTOEXTEDIT from
LYMainLoop.h to userdefs.h, the latter two renamed to TEXTAREA_AUTOGROW
and TEXTAREA_AUTOEXTEDIT, added description.
* Minor tweaks: -accept_all_cookies help string, some formatting changes,
minor text additions and corrections.
Index: 2.17/WWW/Library/Implementation/HTTP.c
--- 2.17/WWW/Library/Implementation/HTTP.c Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/WWW/Library/Implementation/HTTP.c Mon, 01 Nov 1999 13:51:07 -0600
@@ -558,7 +558,8 @@
if (!(LYUserSpecifiedURL ||
LYNoRefererHeader || LYNoRefererForThis) &&
strcmp(HTLoadedDocumentURL(), "")) {
- char *cp = HTLoadedDocumentURL();
+ char *cp = LYRequestReferer;
+ if (!cp) cp = HTLoadedDocumentURL(); /* @@@ Try both? - kw */
StrAllocCat(command, "Referer: ");
if (!strncasecomp(cp, "LYNXIMGMAP:", 11)) {
char *cp1 = strchr(cp, '#');
Index: 2.17/src/LYForms.c
--- 2.17/src/LYForms.c Mon, 01 Nov 1999 12:41:48 -0600
+++ 2.17(w)/src/LYForms.c Tue, 02 Nov 1999 17:43:53 -0600
@@ -394,7 +394,7 @@
* If we can edit it, report that we are using the tail. - FM
*/
HTUserMsg(FORM_VALUE_TOO_LONG);
- show_formlink_statusline(form);
+ show_formlink_statusline(form, FOR_INPUT);
move(startline, startcol);
}
}
@@ -1825,8 +1825,9 @@
/*
* Display statusline info tailored for the current form field.
*/
-PUBLIC void show_formlink_statusline ARGS1(
- CONST FormInfo *, form)
+PUBLIC void show_formlink_statusline ARGS2(
+ CONST FormInfo *, form,
+ int, for_what)
{
switch(form->type) {
case F_PASSWORD_TYPE:
@@ -1865,7 +1866,17 @@
} else if (form->no_cache) {
statusline(FORM_LINK_TEXT_RESUBMIT_MESSAGE);
} else {
- statusline(FORM_LINK_TEXT_SUBMIT_MESSAGE);
+ char *submit_str = NULL;
+ char *xkey_info = key_for_func_ext(LYK_NOCACHE, for_what);
+ if (xkey_info && *xkey_info) {
+ HTSprintf0(&submit_str, FORM_LINK_TEXT_SUBMIT_MESSAGE_X,
+ xkey_info);
+ statusline(submit_str);
+ FREE(submit_str);
+ } else {
+ statusline(FORM_LINK_TEXT_SUBMIT_MESSAGE);
+ }
+ FREE(xkey_info);
}
break;
case F_SUBMIT_TYPE:
@@ -1933,8 +1944,25 @@
case F_TEXTAREA_TYPE:
if (form->disabled == YES)
statusline(FORM_LINK_TEXT_UNM_MSG);
- else
+ else if (no_editor || !editor || !*editor) {
statusline(FORM_LINK_TEXTAREA_MESSAGE);
+ } else {
+ char *submit_str = NULL;
+ char *xkey_info = key_for_func_ext(LYK_EDIT_TEXTAREA, for_what);
+#ifdef TEXTAREA_AUTOEXTEDIT
+ if (!xkey_info)
+ xkey_info = key_for_func_ext(LYK_DWIMEDIT, for_what);
+#endif
+ if (xkey_info && *xkey_info) {
+ HTSprintf0(&submit_str, FORM_LINK_TEXTAREA_MESSAGE_E,
+ xkey_info);
+ statusline(submit_str);
+ FREE(submit_str);
+ } else {
+ statusline(FORM_LINK_TEXTAREA_MESSAGE);
+ }
+ FREE(xkey_info);
+ }
break;
}
}
Index: 2.17/src/LYGetFile.c
--- 2.17/src/LYGetFile.c Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/src/LYGetFile.c Wed, 03 Nov 1999 05:37:35 -0600
@@ -385,25 +385,44 @@
#endif /* DIRED_SUPPORT */
}
+
if (LYNoRefererHeader == FALSE &&
LYNoRefererForThis == FALSE) {
+ char *ref_url = HTLoadedDocumentURL();
+ if (!strncmp(ref_url, "LYNXIMGMAP:", 11))
+ ref_url += 11;
if (no_filereferer == TRUE &&
- !strncmp(HTLoadedDocumentURL(), "file:", 5)) {
+ !strncmp(ref_url, "file:", 5)) {
LYNoRefererForThis = TRUE;
}
if (LYNoRefererForThis == FALSE &&
- (cp = strchr(HTLoadedDocumentURL(), '?')) != NULL &&
- strchr(cp, '=') != NULL) {
+ (cp = strchr(ref_url, '?')) != NULL &&
+ strchr(cp, '=') != NULL) {
/*
* Don't send a Referer header if the URL is
* the reply from a form with method GET, in
* case the content has personal data (e.g.,
* a password or credit card number) which
* would become visible in logs. - FM
+ *
+ * Changed 1999-11-01 to be controlled by
+ * REFERER_WITH_QUERY option. - kw
*/
- LYNoRefererForThis = TRUE;
+ if (LYRefererWithQuery == 'S') { /* SEND */
+ StrAllocCopy(LYRequestReferer, ref_url);
+ } else if (LYRefererWithQuery == 'P') { /* PARTIAL */
+ FREE(LYRequestReferer); /* just to be sure */
+ LYRequestReferer = HTParse(ref_url, "",
+ PARSE_ACCESS|PARSE_HOST|PARSE_STRICTPATH|PARSE_PUNCTUATION);
+ } else { /* Everyhting else - don't send Referer */
+ LYNoRefererForThis = TRUE;
+ }
cp = NULL;
+ } else if (LYNoRefererForThis == FALSE) {
+ StrAllocCopy(LYRequestReferer, ref_url);
}
+ } else {
+ StrAllocCopy(LYRequestReferer, HTLoadedDocumentURL());
}
if (url_type == LYNXHIST_URL_TYPE) {
/*
Index: 2.17/src/LYMainLoop.c
--- 2.17/src/LYMainLoop.c Mon, 25 Oct 1999 16:08:27 -0500
+++ 2.17(w)/src/LYMainLoop.c Wed, 03 Nov 1999 05:34:56 -0600
@@ -169,7 +169,7 @@
PRIVATE void exit_immediately_with_error_message PARAMS((int state, BOOLEAN
first_file));
PRIVATE void status_link PARAMS((char *curlink_name, BOOLEAN show_more,
BOOLEAN show_indx));
-PRIVATE void show_main_statusline PARAMS((CONST linkstruct curlink));
+PRIVATE void show_main_statusline PARAMS((CONST linkstruct curlink, int
for_what));
PRIVATE BOOL confirm_post_resub PARAMS((
CONST char* address,
CONST char* title,
@@ -195,6 +195,7 @@
PUBLIC HTList * Goto_URLs = NULL; /* List of Goto URLs */
PUBLIC char * LYRequestTitle = NULL; /* newdoc.title in calls to getfile() */
+PUBLIC char * LYRequestReferer = NULL; /* Referer, may be set in getfile() */
#ifdef DISP_PARTIAL
PUBLIC int Newline_partial = 0; /* required for display_partial mode */
@@ -246,6 +247,7 @@
clear_tags();
#endif /* DIRED_SUPPORT */
FREE(WWW_Download_File); /* LYGetFile.c/HTFWriter.c */
+ FREE(LYRequestReferer);
return;
}
@@ -833,7 +835,7 @@
textinput_activated = TRUE;
textinput_drawn = FALSE;
if (!sticky_inputs)
- show_main_statusline(links[curdoc.link]);
+ show_main_statusline(links[curdoc.link], FOR_INPUT);
return 0;
}
#endif
@@ -994,7 +996,12 @@
links[curdoc.link].form->type == F_TEXT_SUBMIT_TYPE ||
links[curdoc.link].form->type == F_PASSWORD_TYPE ||
links[curdoc.link].form->type == F_TEXTAREA_TYPE) {
- show_formlink_statusline(links[curdoc.link].form);
+ show_formlink_statusline(links[curdoc.link].form,
+ (real_cmd==LYK_SUBMIT ||
+ real_cmd==LYK_NOCACHE ||
+ real_cmd==LYK_DOWNLOAD ||
+ real_cmd==LYK_HEAD) ?
+ FOR_PANEL : FOR_INPUT);
}
*c = change_form_link(&links[curdoc.link],
@@ -2157,7 +2164,7 @@
int *, old_c,
int, real_c)
{
-#ifdef AUTOEXTEDIT
+#ifdef TEXTAREA_AUTOEXTEDIT
/*
* If we're in a forms TEXTAREA, invoke the editor on *its*
* contents, rather than attempting to edit the html source
@@ -2193,7 +2200,7 @@
}
return 1;
}
-#endif /* AUTOEXTEDIT */
+#endif /* TEXTAREA_AUTOEXTEDIT */
return 0;
}
@@ -3129,6 +3136,7 @@
*/
StrAllocCopy(curdoc.address, newdoc.address);
StrAllocCopy(newdoc.post_data, curdoc.post_data);
+ StrAllocCopy(newdoc.post_content_type, curdoc.post_content_type);
newdoc.internal_link = FALSE;
curdoc.line = -1;
Newline = 0;
@@ -5276,6 +5284,17 @@
#ifdef USE_PSRC
psrc_first_tag = TRUE;
#endif
+ FREE(LYRequestReferer);
+ /*
+ * Don't send Referer if we have to load a document again
+ * that we got from the history stack. We don't know
+ * any more how we originally got to that page. Using
+ * a Referer based on the current HTMainText could only
+ * be right by coincidence. - kw 1999-11-01
+ */
+ if (popped_doc)
+ LYNoRefererForThis = TRUE;
+
#ifndef DONT_TRACK_INTERNAL_LINKS
if (try_internal) {
if (newdoc.address &&
@@ -6221,7 +6240,13 @@
* to tell the user other misc info.
*/
if (!show_help) {
- show_main_statusline(links[curdoc.link]);
+#ifndef NO_NONSTICKY_INPUTS
+ show_main_statusline(links[curdoc.link],
+ (!sticky_inputs && !textinput_activated) ?
+ FOR_PANEL : FOR_INPUT);
+#else
+ show_main_statusline(links[curdoc.link], FOR_INPUT);
+#endif
} else {
show_help = FALSE;
}
@@ -6339,7 +6364,7 @@
switch (c) {
case '\n':
case '\r':
-#ifdef AUTOGROW
+#ifdef TEXTAREA_AUTOGROW
/*
* If on the bottom line of a TEXTAREA, and the user hit
* the ENTER key, we add a new line/anchor automatically,
@@ -6398,7 +6423,7 @@
#endif
}
-#endif /* AUTOGROW */
+#endif /* TEXTAREA_AUTOGROW */
/*
* Make return in input field (if it was returned
@@ -6510,7 +6535,7 @@
links[curdoc.link].form->type == F_PASSWORD_TYPE ||
links[curdoc.link].form->type == F_TEXTAREA_TYPE))
- show_main_statusline(links[curdoc.link]);
+ show_main_statusline(links[curdoc.link], FOR_PANEL);
else if (more)
HTInfoMsg(MOREHELP);
else
@@ -7274,8 +7299,9 @@
* put a message on the screen
* to tell the user other misc info.
*/
-PRIVATE void show_main_statusline ARGS1(
- CONST linkstruct, curlink)
+PRIVATE void show_main_statusline ARGS2(
+ CONST linkstruct, curlink,
+ int, for_what)
{
/*
* Make sure form novice lines are replaced.
@@ -7307,7 +7333,7 @@
#endif /* NORMAL_NON_FORM_LINK_STATUSLINES_FOR_ALL_USER_MODES */
#endif /* INDICATE_FORMS_MODE_FOR_ALL_LINKS_ON_PAGE */
if (curlink.type == WWW_FORM_LINK_TYPE) {
- show_formlink_statusline(curlink.form);
+ show_formlink_statusline(curlink.form, for_what);
} else {
statusline(NORMAL_LINK_MESSAGE);
}
@@ -7369,10 +7395,11 @@
* selected link. It should only be called at times when curdoc.link,
* nlinks, and the links[] array are valid. - kw
*/
-PUBLIC void repaint_main_statusline NOARGS
+PUBLIC void repaint_main_statusline ARGS1(
+ int, for_what)
{
if (curdoc.link >= 0 && curdoc.link < nlinks)
- show_main_statusline(links[curdoc.link]);
+ show_main_statusline(links[curdoc.link], for_what);
}
Index: 2.17/src/LYStrings.c
--- 2.17/src/LYStrings.c Mon, 01 Nov 1999 12:41:48 -0600
+++ 2.17(w)/src/LYStrings.c Tue, 02 Nov 1999 17:35:42 -0600
@@ -1369,7 +1369,7 @@
mouse_link = -1; /* mainloop should not change cur link - kw */
}
if (code == FOR_INPUT && retlac == LYK_DO_NOTHING) {
- repaint_main_statusline();
+ repaint_main_statusline(FOR_INPUT);
}
return retlac;
}
Index: 2.17/src/LYKeymap.c
--- 2.17/src/LYKeymap.c Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/src/LYKeymap.c Tue, 02 Nov 1999 18:26:16 -0600
@@ -782,6 +782,39 @@
static char buf[30];
if (c == '\t')
+ sprintf(buf, "<tab>");
+ else if (c == '\r')
+ sprintf(buf, "<return>");
+ else if (c == CH_ESC)
+ sprintf(buf, "ESC");
+ else if (c == ' ')
+ sprintf(buf, "<space>");
+ else if (c == '<')
+ sprintf(buf, "<");
+ else if (c == '>')
+ sprintf(buf, ">");
+ else if (c == 0177)
+ sprintf(buf, "<delete>");
+ else if (c > ' ' && c <= 0377)
+ sprintf(buf, "%c", c);
+ else if (c < ' ')
+ sprintf(buf, "^%c", c|0100);
+ else if (c >= 0400 && (c - 0400) < (int) TABLESIZE(funckey)
+ && funckey[c-0400])
+ sprintf(buf, "%s", funckey[c-0400]);
+ else if (c >= 0400)
+ sprintf(buf, "key-%#x", c);
+ else
+ return 0;
+
+ return buf;
+}
+
+PRIVATE char *pretty_html ARGS1 (int, c)
+{
+ static char buf[30];
+
+ if (c == '\t')
sprintf(buf, "<tab> ");
else if (c == '\r')
sprintf(buf, "<return> ");
@@ -820,7 +853,7 @@
&& the_key < TABLESIZE(revmap)
&& revmap[the_key].name != 0
&& revmap[the_key].doc != 0
- && (formatted = pretty(i-1)) != 0) {
+ && (formatted = pretty_html(i-1)) != 0) {
HTSprintf0(&buf, "%-11s %-13s %s\n", formatted,
revmap[the_key].name,
revmap[the_key].doc);
@@ -996,7 +1029,7 @@
else if (c >= 0) {
/* Remapping of key actions is supported only for basic
* lynxkeycodes, without modifiers etc.! If we get somehow
- * called for an invalid lynxkeycode, fail or silently
+ * called for an invalid lynxkeycode, fail or silently ignore
* modifiers. - kw
*/
if (c & LKC_ISLAC)
@@ -1163,6 +1196,122 @@
StrAllocCopy(buf, "");
}
return buf;
+}
+
+/*
+ * Given one or two keys as lynxkeycodes, returns an allocated string
+ * representing the key(s) suitable for statusline messages.
+ * The caller must free the string. - kw
+ */
+PRIVATE char *fmt_keys ARGS2(
+ int, lkc_first,
+ int, lkc_second)
+{
+ char *buf = NULL;
+ BOOLEAN quotes = FALSE;
+ char *fmt_first = pretty(lkc_first);
+ char *fmt_second;
+ if (fmt_first && strlen(fmt_first) == 1 && *fmt_first != '\'') {
+ quotes = TRUE;
+ }
+ if (quotes) {
+ if (lkc_second < 0) {
+ HTSprintf0(&buf, "'%s'", fmt_first);
+ return buf;
+ } else {
+ HTSprintf0(&buf, "'%s", fmt_first);
+ }
+ } else {
+ StrAllocCopy(buf, fmt_first);
+ }
+ if (lkc_second >= 0) {
+ fmt_second = pretty(lkc_second);
+ if (!fmt_second) {
+ FREE(buf);
+ return NULL;
+ }
+ HTSprintf(&buf, "%s%s%s",
+ ((strlen(fmt_second) > 2 && *fmt_second != '<') ||
+ (strlen(buf) > 2 && buf[strlen(buf)-1] != '>')) ? " " : "",
+ fmt_second, quotes ? "'" : "");
+ }
+ return buf;
+}
+
+/*
+ * This function returns the (int)ch mapped to the
+ * LYK_foo value passed to it as an argument. It is like
+ * LYReverseKeymap, only the order of search is different;
+ * e.g., small ASCII letters will be returned in preference to
+ * capital ones. Cf. LYKeyForEditAction, LYEditKeyForAction in
+ * LYEditmap.c which use the same order to find a best key.
+ * In addition, this function takes the dired override map into
+ * account while LYReverseKeymap doesn't.
+ * The caller must free the returned string. - kw
+ */
+#define FIRST_I 97
+#define NEXT_I(i,imax) ((i==122) ? 32 : (i==96) ? 123 : (i==126) ? 0 :\
+ (i==31) ? 256 : (i==imax) ? 127 :\
+ (i==255) ? (-1) :i+1)
+PRIVATE int best_reverse_keymap ARGS1(
+ int, lac)
+{
+ int i, c;
+
+ for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+#ifdef NOT_ASCII
+ if (i < 256) {
+ c = FROMASCII(i);
+ } else
+#endif
+ c = i;
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,c) == lac)
+ return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,c) == lac) {
+ return c;
+ }
+ }
+
+ return(-1);
+}
+
+/*
+ * This function returns a string representing a key mapped
+ * to a LYK_foo function, or NULL if not found. The string
+ * may represent a pair of keys. if context_code is FOR_INPUT,
+ * an appropriate binding for use while in the (forms) line editor
+ * is sought. - kw
+ */
+PUBLIC char* key_for_func_ext ARGS2(
+ int, lac,
+ int, context_code)
+{
+ int lkc, modkey = -1;
+
+ if (context_code == FOR_INPUT) {
+ lkc = LYEditKeyForAction(lac, &modkey);
+ if (lkc >= 0) {
+ if (lkc & (LKC_MOD1|LKC_MOD2|LKC_MOD3)) {
+ return fmt_keys(modkey, lkc & ~(LKC_MOD1|LKC_MOD2|LKC_MOD3));
+ } else {
+ return fmt_keys(lkc, -1);
+ }
+ }
+ }
+ lkc = best_reverse_keymap(lac);
+ if (lkc < 0)
+ return NULL;
+ if (context_code == FOR_INPUT) {
+ modkey = LYKeyForEditAction(LYE_LKCMD);
+ if (modkey < 0)
+ return NULL;
+ return fmt_keys(modkey, lkc);
+ } else {
+ return fmt_keys(lkc, -1);
+ }
}
/*
Index: 2.17/src/LYEditmap.c
--- 2.17/src/LYEditmap.c Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/src/LYEditmap.c Wed, 03 Nov 1999 09:22:58 -0600
@@ -1051,11 +1051,218 @@
}
/*
+ * Macro to walk through lkc-indexed tables up to imax, in the (ASCII) order
+ * 97 - 122 ('a' - 'z'),
+ * 32 - 96 (' ' - '`', includes 'A' - 'Z'),
+ * 123 - 126 ('{' - '~'),
+ * 0 - 31 (^@ - ^_),
+ * 256 - imax,
+ * 127 - 255
+ */
+#define NEXT_I(i,imax) ((i==122) ? 32 : (i==96) ? 123 : (i==126) ? 0 :\
+ (i==31) ? 256 : (i==imax) ? 127 :\
+ (i==255) ? (-1) :i+1)
+#define FIRST_I 97
+
+PUBLIC int LYKeyForEditAction ARGS1(
+ int, lec)
+{
+ int editaction, i;
+ for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+ editaction = LYLineEditors[current_lineedit][i];
+ if (editaction == lec) {
+#ifdef NOT_ASCII
+ if (i < 256) {
+ return FROMASCII(i);
+ } else
+#endif
+ return i;
+ }
+ }
+ return (-1);
+}
+
+/*
+ * Given a lynxactioncode, return a key (lynxkeycode) or sequence
+ * of two keys that results in the given action while forms-editing.
+ * The main keycode is returned as function value, possibly with modifier
+ * bits set; in addition, if applicable, a key that sets the required
+ * modifier flag is returned in *pmodkey if (pmodkey!=NULL).
+ * Non-lineediting bindings that would require typing LYE_LKCMD (default ^V)
+ * to activate are not checked here, the caller should do that separately if
+ * required. If no key is bound by current line-editor bindings to the
+ * action, -1 is returned.
+ * This is all a bit long - it is general enough to continue to work
+ * should the three Mod<N>Binding[] become different tables. - kw
+ */
+PUBLIC int LYEditKeyForAction ARGS2(
+ int, lac,
+ int *, pmodkey)
+{
+ int editaction, i, c;
+ int mod1found = -1, mod2found = -1, mod3found = -1;
+ if (pmodkey)
+ *pmodkey = -1;
+ for (i = FIRST_I; i >= 0; i = NEXT_I(i,KEYMAP_SIZE-2)) {
+ editaction = LYLineEditors[current_lineedit][i];
+#ifdef NOT_ASCII
+ if (i < 256) {
+ c = FROMASCII(i);
+ } else
+#endif
+ c = i;
+ if (editaction == (lac | LYE_FORM_LAC))
+ return c;
+ if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,c) == lac)
+ return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,c) == lac)
+ return c;
+ }
+ if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,'\t') == lac)
+ return c;
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,'\t') == lac)
+ return c;
+ }
+ if (editaction == LYE_SETM1 && mod1found < 0)
+ mod1found = i;
+ if (editaction == LYE_SETM2 && mod2found < 0)
+ mod2found = i;
+ if ((editaction & LYE_DF) && mod3found < 0)
+ mod3found = i;
+ }
+ if (mod3found >= 0) {
+ for (i = mod3found; i >= 0; i = NEXT_I(i,LAST_MOD3_LKC)) {
+ editaction = LYLineEditors[current_lineedit][i];
+ if (!(editaction & LYE_DF))
+ continue;
+ editaction = Mod3Binding[i];
+#ifdef NOT_ASCII
+ if (i < 256) {
+ c = FROMASCII(i);
+ } else
+#endif
+ c = i;
+ if (pmodkey)
+ *pmodkey = c;
+ if (editaction == (lac | LYE_FORM_LAC))
+ return (c|LKC_MOD3);
+ if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,c) == lac)
+ return (c|LKC_MOD3);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,c) == lac)
+ return (c|LKC_MOD3);
+ }
+ if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,'\t') == lac)
+ return (c|LKC_MOD3);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,'\t') == lac)
+ return (c|LKC_MOD3);
+ }
+ }
+ }
+ if (mod1found >= 0) {
+ if (pmodkey) {
+#ifdef NOT_ASCII
+ if (mod1found < 256) {
+ pmodkey = FROMASCII(mod1found);
+ } else
+#endif
+ *pmodkey = mod1found;
+ }
+ for (i = FIRST_I; i >= 0; i = NEXT_I(i,LAST_MOD1_LKC)) {
+ editaction = Mod1Binding[i];
+#ifdef NOT_ASCII
+ if (i < 256) {
+ c = FROMASCII(i);
+ } else
+#endif
+ c = i;
+ if (editaction == (lac | LYE_FORM_LAC))
+ return (c|LKC_MOD1);
+ if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,c) == lac)
+ return (c|LKC_MOD1);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,c) == lac)
+ return (c|LKC_MOD1);
+ }
+ if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,'\t') == lac)
+ return (c|LKC_MOD1);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,'\t') == lac)
+ return (c|LKC_MOD1);
+ }
+ }
+ }
+ if (mod2found >= 0) {
+ if (pmodkey) {
+#ifdef NOT_ASCII
+ if (mod1found < 256) {
+ pmodkey = FROMASCII(mod1found);
+ } else
+#endif
+ *pmodkey = mod1found;
+ }
+ for (i = FIRST_I; i >= 0; i = NEXT_I(i,LAST_MOD2_LKC)) {
+ editaction = Mod2Binding[i];
+#ifdef NOT_ASCII
+ if (i < 256) {
+ c = FROMASCII(i);
+ } else
+#endif
+ c = i;
+ if (editaction == (lac | LYE_FORM_LAC))
+ return (c|LKC_MOD2);
+ if (editaction == LYE_FORM_PASS) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,c) == lac)
+ return (c|LKC_MOD2);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,c) == lac)
+ return (c|LKC_MOD2);
+ }
+ if (editaction == LYE_TAB) {
+#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE)
+ if (lynx_edit_mode && !no_dired_support && lac &&
+ LKC_TO_LAC(key_override,'\t') == lac)
+ return (c|LKC_MOD2);
+#endif /* DIRED_SUPPORT && OK_OVERRIDE */
+ if (LKC_TO_LAC(keymap,'\t') == lac)
+ return (c|LKC_MOD2);
+ }
+ }
+ }
+ if (pmodkey)
+ *pmodkey = -1;
+ return (-1);
+}
+
+/*
* Dummy initializer to ensure this module is linked
* if the external model is common block, and the
* module is ever placed in a library. - FM
*/
-PUBLIC int LYEditmapDeclared NOPARAMS
+PUBLIC int LYEditmapDeclared NOARGS
{
int status = 1;
Index: 2.17/src/HTForms.h
--- 2.17/src/HTForms.h Wed, 06 Oct 1999 14:21:53 -0500
+++ 2.17(w)/src/HTForms.h Tue, 02 Nov 1999 16:54:10 -0600
@@ -147,6 +147,7 @@
#define LAST_ORDER 3
/* in LYForms.c */
-extern void show_formlink_statusline PARAMS((CONST FormInfo * form));
+extern void show_formlink_statusline PARAMS((CONST FormInfo * form,
+ int for_what));
#endif /* HTFORMS_H */
Index: 2.17/src/LYKeymap.h
--- 2.17/src/LYKeymap.h Wed, 06 Oct 1999 13:57:53 -0500
+++ 2.17(w)/src/LYKeymap.h Tue, 02 Nov 1999 17:16:03 -0600
@@ -7,6 +7,7 @@
extern BOOLEAN LYisNonAlnumKeyname PARAMS((int ch, int key_name));
extern char *key_for_func PARAMS((int func));
+extern char *key_for_func_ext PARAMS((int lac, int context_code));
extern int LYReverseKeymap PARAMS((int key_name));
extern int lookup_keymap PARAMS((int code));
extern int lacname_to_lac PARAMS((CONST char *func));
Index: 2.17/src/LYGlobalDefs.h
--- 2.17/src/LYGlobalDefs.h Mon, 01 Nov 1999 12:41:48 -0600
+++ 2.17(w)/src/LYGlobalDefs.h Mon, 01 Nov 1999 19:52:31 -0600
@@ -154,6 +154,7 @@
extern BOOLEAN verbose_img; /* display filenames of images? */
extern BOOLEAN vi_keys; /* TRUE to turn on vi-like key movement
*/
extern char *LYRequestTitle; /* newdoc.title in calls to getfile() */
+extern char *LYRequestReferer; /* Referer, may be set in getfile() */
extern char *LynxHome;
extern char *LynxSigFile; /* Signature file, in or off home */
extern char *checked_box; /* form boxes */
@@ -244,6 +245,7 @@
extern BOOLEAN no_statusline;
extern BOOLEAN no_filereferer;
+extern char LYRefererWithQuery; /* 'S', 'P', or 'D' */
extern BOOLEAN local_host_only;
extern BOOLEAN override_no_download;
extern BOOLEAN show_dotfiles; /* From rcfile if no_dotfiles is false */
Index: 2.17/src/LYStrings.h
--- 2.17/src/LYStrings.h Mon, 25 Oct 1999 07:13:32 -0500
+++ 2.17(w)/src/LYStrings.h Tue, 02 Nov 1999 17:16:02 -0600
@@ -278,6 +278,8 @@
EditFieldData * edit));
extern int EditBinding PARAMS((int ch)); /* in LYEditmap.c */
extern int LYRemapEditBinding PARAMS((int xlkc, int lec)); /* in LYEditmap.c */
+extern int LYKeyForEditAction PARAMS((int lec)); /* in LYEditmap.c */
+extern int LYEditKeyForAction PARAMS((int lac, int *pmodkey));/* LYEditmap.c */
extern int LYEdit1 PARAMS((
EditFieldData * edit,
int ch,
Index: 2.17/src/LYMainLoop.h
--- 2.17/src/LYMainLoop.h Sat, 12 Jun 1999 17:10:16 -0500
+++ 2.17(w)/src/LYMainLoop.h Tue, 02 Nov 1999 17:35:40 -0600
@@ -5,14 +5,10 @@
#include <HTUtils.h>
#endif
-#define TEXTAREA_EXPAND_SIZE 5
-#define AUTOGROW
-#define AUTOEXTEDIT
-
extern BOOLEAN LYOpenTraceLog NOPARAMS;
extern int mainloop NOPARAMS;
extern void HTAddGotoURL PARAMS((char *url));
extern void LYCloseTracelog NOPARAMS;
-extern void repaint_main_statusline NOPARAMS;
+extern void repaint_main_statusline PARAMS((int for_what));
#endif /* LYMAINLOOP_H */
Index: 2.17/src/LYMain.c
--- 2.17/src/LYMain.c Mon, 01 Nov 1999 12:41:48 -0600
+++ 2.17(w)/src/LYMain.c Mon, 01 Nov 1999 22:51:58 -0600
@@ -271,6 +271,7 @@
PUBLIC BOOLEAN no_statusline = FALSE;
PUBLIC BOOLEAN no_filereferer = FALSE;
+PUBLIC char LYRefererWithQuery = 'D'; /* 'D' for drop */
PUBLIC BOOLEAN local_host_only = FALSE;
PUBLIC BOOLEAN override_no_download = FALSE;
PUBLIC BOOLEAN show_dotfiles = FALSE; /* From rcfile if no_dotfiles is false */
@@ -413,7 +414,7 @@
PUBLIC char *LYCookieSLooseCheckDomains = NULL; /* check loosely */
PUBLIC char *LYCookieSQueryCheckDomains = NULL; /* check w/a query */
#ifdef EXP_PERSISTENT_COOKIES
-BOOLEAN persistent_cookies = TRUE;
+BOOLEAN persistent_cookies = FALSE; /* disabled by default! */
PUBLIC char *LYCookieFile = NULL; /* default cookie file */
#endif /* EXP_PERSISTENT_COOKIES */
PUBLIC char *XLoadImageCommand = NULL; /* Default image viewer for X */
@@ -2997,7 +2998,7 @@
{
PARSE_SET(
"accept_all_cookies", SET_ARG, &LYAcceptAllCookies,
- "\naccepts all cookies"
+ "\naccept cookies without prompting if Set-Cookie handling is on"
),
PARSE_FUN(
"anonymous", FUNCTION_ARG, anonymous_fun,
Index: 2.17/src/LYReadCFG.c
--- 2.17/src/LYReadCFG.c Mon, 25 Oct 1999 08:46:34 -0500
+++ 2.17(w)/src/LYReadCFG.c Mon, 01 Nov 1999 13:51:05 -0600
@@ -819,6 +819,18 @@
return 0;
}
+static int referer_with_query_fun ARGS1(
+ char *, value)
+{
+ if (!strncasecomp(value, "SEND", 4))
+ LYRefererWithQuery = 'S';
+ else if (!strncasecomp(value, "PARTIAL", 7))
+ LYRefererWithQuery = 'P';
+ else
+ LYRefererWithQuery = 'D';
+ return 0;
+}
+
#ifdef SOURCE_CACHE
static int source_cache_fun ARGS1(
char *, value)
@@ -1393,6 +1405,7 @@
PARSE_SET("psrcview_no_anchor_numbering", CONF_BOOL,
&psrcview_no_anchor_numbering),
#endif
PARSE_SET("quit_default_yes", CONF_BOOL, &LYQuitDefaultYes),
+ PARSE_SET("referer_with_query", CONF_FUN, referer_with_query_fun),
PARSE_SET("reuse_tempfiles", CONF_BOOL, &LYReuseTempfiles),
#ifndef NO_RULES
PARSE_FUN("rule", CONF_FUN, HTSetConfiguration),
Index: 2.17/userdefs.h
--- 2.17/userdefs.h Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/userdefs.h Tue, 02 Nov 1999 17:30:22 -0600
@@ -1235,8 +1235,24 @@
* case, but some users may find this surprising and expect <return> to just
* move to the next link as for other text entry fields.
*/
-
/* #define TEXT_SUBMIT_CONFIRM_WANTED */
+
+/********************************
+ * The following three definitions control some apsects of extended
+ * textarea handling. TEXTAREA_EXPAND_SIZE is the number of new empty
+ * lines that get appended at the end of a textarea by a GROWTEXTAREA
+ * key. If TEXTAREA_AUTOGROW is defined (to anything), <return> or
+ * <enter> in the last line of a textarea automatically extends the
+ * area by adding a new line. If TEXTAREA_AUTOEXTEDIT is defined (to
+ * anything), a key mapped to DWIMEDIT will invoke the external editor
+ * like EDITTEXTAREA when used in a text input field. Comment those
+ * last two definitions out to disable the corresponding behavior.
+ * See under KEYMAP in lynx.cfg for mapping keys to GROWTEXTAREA or
+ * DWIMEDIT actions.
+ */
+#define TEXTAREA_EXPAND_SIZE 5
+#define TEXTAREA_AUTOGROW
+#define TEXTAREA_AUTOEXTEDIT
/********************************
* If BUILTIN_SUFFIX_MAPS is defined (to anything), default mappings
Index: 2.17/lynx.cfg
--- 2.17/lynx.cfg Mon, 25 Oct 1999 16:08:27 -0500
+++ 2.17(w)/lynx.cfg Tue, 02 Nov 1999 16:54:12 -0600
@@ -998,14 +998,19 @@
# COOKIE_FILE is the default file from which persistent cookies are read
# at startup (if the file exists), and into which persistent cookies are
-# stored before exiting, if Lynx was compiled with EXP_PERSISTENT_COOKIES.
+# stored before exiting, if Lynx was compiled with EXP_PERSISTENT_COOKIES
+# and the PERSISTENT_COOKIES option is enabled.
# The cookie file can also be specified in .lynxrc or on the command line.
+#
#COOKIE_FILE:~/.lynx_cookies
-# PERSISTENT_COOKIES indicates that cookies should be stored for use between
-# Lynx sessions. It is only used if Lynx was compiled with
-# EXP_PERSISTENT_COOKIES. Use this flag to disable the feature.
-#PERSISTENT_COOKIES:TRUE
+# PERSISTENT_COOKIES indicates that cookies should be read at startup from
+# the COOKIE_FILE, and saved at exit for storage between Lynx sessions.
+# It is not used if Lynx was compiled without EXP_PERSISTENT_COOKIES.
+# The default is FALSE, so that the feature needs to be enabled here
+# explicitly if you want it.
+#
+#PERSISTENT_COOKIES:FALSE
# VMS:
#=====
@@ -1356,6 +1361,28 @@
#
#NO_FILE_REFERER:FALSE
+# REFERER_WITH_QUERY controls what happens when the URL in a Referer
+# header to be sent would contain a query part in the form of a '?'
+# character followed by one or more attribute=value pairs. Query parts
+# often contain sensitive or personal information resulting from filling
+# out forms, or other info that allows tracking of a user's browsing path
+# through a site, an thus should not be put in a Referer header (which may
+# get sent to an unrelated third-party site). On the other hand, some
+# sites (improperly) rely on browsers sending Referer headers, even when
+# the user is coming from a page whose URL has a query part.
+#
+# If REFERER_WITH_QUERY is SEND, full Referer headers will be sent
+# including the query part (unless sending of Referer is disabled in
+# general, see NO_REFERER_HEADER above). If REFERER_WITH_QUERY is
+# PARTIAL, the Referer header will contain a partial URL, with the query
+# part stripped off. This is not strictly correct, but should satisfy
+# those sites that check only whether the user arrived at a page from an
+# "outside" link. If REFERER_WITH_QUERY is set to DROP (or anything else
+# unrecognized), the default, no Referer header is sent at all in this
+# situation.
+#
+#REFERER_WITH_QUERY:DROP
+
# VERBOSE_IMAGES controls whether Lynx replaces [LINK], [INLINE] and [IMAGE]
# (for images without ALT) with filenames of these images.
# This can be useful in determining what images are important
@@ -1363,6 +1390,7 @@
# provided the author uses meaningful names.
#
# The definition here will override the setting in userdefs.h.
+#
#VERBOSE_IMAGES:TRUE
# If MAKE_LINKS_FOR_ALL_IMAGES is TRUE, all images will be given links
@@ -1376,6 +1404,7 @@
# and can be toggled via an "-image_links" command-line switch.
# The user can also use the LYK_IMAGE_TOGGLE key (default `*')
# or the `Show Images' option in the (new) Options Form.
+#
#MAKE_LINKS_FOR_ALL_IMAGES:FALSE
# If MAKE_PSEUDO_ALTS_FOR_INLINES is FALSE, inline images which don't specify
@@ -1389,6 +1418,7 @@
# and can be toggled via a "-pseudo_inlines" command-line switch.
# The user can also use the LYK_INLINE_TOGGLE key (default `[')
# or the `Show Images' option in the (new) Options Form.
+#
#MAKE_PSEUDO_ALTS_FOR_INLINES:TRUE
# If SUBSTITUTE_UNDERSCORES is TRUE, the _underline_ format will be used
@@ -1816,8 +1846,11 @@
# level of key mapping is supported via an external ".lynx-keymaps" file.
# This file, if found in the home directory at startup, will always be
# used under those conditions; see lynx-keymaps distributed in the samples
-# subdirectory for furhter explanation. Note that mapping via
-# .lynx-keymaps, if applicable, is a step that precedes KEYMAP.
+# subdirectory for further explanation. Note that mapping via
+# .lynx-keymaps, if applicable, is a step that logically comes before the
+# mappings done here: KEYMAP maps the result of that step (which still
+# represents a key) to a function (which represents an action that Lynx
+# should perform).
#KEYMAP:0x5C:SOURCE # Toggle source viewing mode (show HTML source)
#KEYMAP:^R:RELOAD # Reload the current document and redisplay
@@ -1854,7 +1887,7 @@
#KEYMAP:H:HELP # Show default help screen
#KEYMAP:0x108:HELP # Function key Help - Show default help screen
#KEYMAP:i:INDEX # Show default index
-#*** Edit FORM_LINK_SUBMIT_MESSAGE in userdefs.h if you change NOCACHE ***
+#*** Edit FORM_LINK_* messages in LYMessages_en.h if you change NOCACHE ***
#KEYMAP:x:NOCACHE # Force submission of form or link with no-cache
#*** Do not change INTERRUPT from 'z' & 'Z' ***
#KEYMAP:z:INTERRUPT # Interrupt network transmission
Index: 2.17/LYMessages_en.h
--- 2.17/LYMessages_en.h Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/LYMessages_en.h Tue, 02 Nov 1999 17:03:28 -0600
@@ -60,11 +60,15 @@
#define FORM_LINK_TEXT_MESSAGE \
gettext("(Text entry field) Enter text. Use UP or DOWN arrows or tab to move
off.")
#define FORM_LINK_TEXTAREA_MESSAGE \
- gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (^Ve
for editor).")
+ gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off.")
+#define FORM_LINK_TEXTAREA_MESSAGE_E \
+ gettext("(Textarea) Enter text. Use UP/DOWN arrows or TAB to move off (%s for
editor).")
#define FORM_LINK_TEXT_UNM_MSG \
gettext("UNMODIFIABLE form text field. Use UP or DOWN arrows or tab to move
off.")
#define FORM_LINK_TEXT_SUBMIT_MESSAGE \
- gettext("(Form field) Enter text. Use <return> to submit (^Vx for no
cache).")
+ gettext("(Form field) Enter text. Use <return> to submit.")
+#define FORM_LINK_TEXT_SUBMIT_MESSAGE_X \
+ gettext("(Form field) Enter text. Use <return> to submit (%s for no cache).")
#define FORM_LINK_TEXT_RESUBMIT_MESSAGE \
gettext("(Form field) Enter text. Use <return> to submit, arrows or tab to
move off.")
#define FORM_LINK_TEXT_SUBMIT_UNM_MSG \
Index: 2.17/lynx_help/Lynx_users_guide.html
--- 2.17/lynx_help/Lynx_users_guide.html Mon, 25 Oct 1999 09:01:18 -0500
+++ 2.17(w)/lynx_help/Lynx_users_guide.html Tue, 02 Nov 1999 22:02:36 -0600
@@ -355,8 +355,8 @@
document with a <em>.html</em> or <em>.htm</em> extension, if you
want to read it with Lynx again later.
-<p>Lynx can allow users to edit documents that reside on the local
-system. To enable editing, documents must be referenced using a
+<p ID="FileEdit">Lynx can allow users to edit documents that reside on the
+local system. To enable editing, documents must be referenced using a
"file:" URL or by specifying a plain filename on the command line as
in the following two examples:
@@ -594,9 +594,10 @@
<dl>
<dt>Editor
- <dd>The editor to be invoked when editing browsable files, and
- sending mail or comments. The full pathname of the editor
- command should be specified when possible.
+ <dd>The editor to be invoked when editing browsable files, when
+ sending mail or comments, when preparing a news article for
+ posting, and for external TEXTAREA editing. The full pathname
+ of the editor command should be specified when possible.
<dt>DISPLAY variable
<dd>This option is only relevant to X Window users. The DISPLAY
@@ -1374,11 +1375,33 @@
<em>TAB</em> key will move you down beyond the bottom of the TEXTAREA
field.
-<dt>Editing TEXTAREA Fields
-<dd>TEXTAREA fields can be edited using an external editor
- by entering <em>^Ve</em> when in the TEXTAREA.<p>
-
- You can also use two other special TEXTAREA functions
+<dt>Editing TEXTAREA Fields and Special TEXTAREA Functions
+<dd>TEXTAREA fields can be edited using an external editor.
+ The statusline should tell you when this is possible and what
+ key to use, it might for example say
+
+<PRE> <B>(Textarea) Enter text. </B>[...] <B>(^Ve for
editor).</B></PRE>
+
+ An external editor has to be defined, for example in the <a
+ href="#InteractiveOptions">Options Menu</a>, before you can start
+ using this function.
+
+ <p>To map a key so that it will invoke external TEXTAREA editing, you
+ can either configure Lynx to use the <a
+ href="keystrokes/bashlike_edit_help.html">Bash-like Line-Editor
+ Bindings</a>, or add KEYMAP bindings to your <em>lynx.cfg</em> file,
+ e.g.<br>
+ KEYMAP:e:EDITTEXTAREA<br>
+ or<br>
+ KEYMAP:e:DWIMEDIT<br>
+ (the first is only functional for TEXTAREA editing, while the second
+ allows to use the same key for normal <a href="#FileEdit">file
+ editing</A>).</p>
+
+ You can also use two other special TEXTAREA functions. Again, these
+ are already bound to key sequences in the <a
+ href="keystrokes/bashlike_edit_help.html#TASpecial">Bash-like Bindings</a>.
+ You can invoke them independently of the line edit style
by adding KEYMAP bindings to your <em>lynx.cfg</em> file, e.g.<p>
KEYMAP:$:GROWTEXTAREA<br>
@@ -1386,7 +1409,7 @@
With these bindings -- you can choose other keys -- ,<br>
(in a TEXTAREA only) <em>^V$</em> adds 5 lines to the TEXTAREA
- and <em>^V#</em> brings up the name of an existing file
+ and <em>^V#</em> prompts for the name of an existing file
to be inserted into the TEXTAREA (above the cursorline).
An automatic variation is normally compiled in,
so that hitting <em>Enter</em> with the cursor on the last line
@@ -1407,7 +1430,7 @@
stty lnext ^V<br>
exit</code><p>
- NB when NOT in a TEXTAREA, <em>^V</em> is by default bound
+ NB when NOT in the Line Editor, <em>^V</em> is by default bound
to the command
to switch between SortaSGML and TagSoup HTML parsing
(i.e., SWITCH_DTD ).
Index: 2.17/docs/README.defines
--- 2.17/docs/README.defines Mon, 01 Nov 1999 12:41:48 -0600
+++ 2.17(w)/docs/README.defines Mon, 01 Nov 1999 22:51:57 -0600
@@ -142,7 +142,8 @@
they are set. Normally installers shouldn't have to care about these
symbols.
-SAVE_TIME_NOT_SPACE HTString.c minmize number of some malloc calls
+COOKIE_FILE LYMain.c default cookie file in HOME dir
+SAVE_TIME_NOT_SPACE HTString.c minimize number of some malloc calls
SHOW_WHEREIS_TARGETS LYCurses.h whereis search highlighting
USE_KEYMAPS LYCurses.h use of .lynx-keymaps files
Index: 2.17/lynx_help/keystrokes/bashlike_edit_help.html
--- 2.17/lynx_help/keystrokes/bashlike_edit_help.html Wed, 06 Oct 1999 14:48:20
-0500
+++ 2.17(w)/lynx_help/keystrokes/bashlike_edit_help.html Tue, 02 Nov 1999
22:02:17 -0600
@@ -44,12 +44,14 @@
UPPER Upper case the line - M-u
LOWER Lower case the line - M-l
-<!-- PASS! Textarea external edit - C-e C-e - mentioned in note [3] below
- statusline shows binding where relevant
+ LKCMD Invoke cmd prompt - C-v [FORM]
+ SWMAP Switch input keymap - C-^ (if compiled in)
+
+<A NAME="TASpecial">Special commands for use in textarea fields</A> [FORM]:
+
+ PASS! Textarea external edit - C-e C-e [4], C-x e
PASS! Insert file in textarea - C-x i
PASS! Grow textarea - C-x g
---> LKCMD Invoke cmd prompt - C-v [FORM]
- SWMAP Switch input keymap - C-^ (if compiled in)
</pre>
Here is a little textarea for practice:<BR>
- lynx-dev patch - Referer with query, un-hardwire ^Ve, PERSISTENT_COOKIES default,
Klaus Weide <=