diff options
-rw-r--r-- | CHANGES | 9 | ||||
-rw-r--r-- | WWW/Library/Implementation/HTGopher.c | 35 | ||||
-rw-r--r-- | src/LYMain.c | 10 | ||||
-rw-r--r-- | src/parsdate.c | 14 | ||||
-rw-r--r-- | src/parsdate.y | 10 |
5 files changed, 54 insertions, 24 deletions
diff --git a/CHANGES b/CHANGES index 2de1caa9..554d944e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,14 @@ --- $LynxId: CHANGES,v 1.996 2018/12/27 23:59:59 tom Exp $ +-- $LynxId: CHANGES,v 1.998 2018/12/28 16:53:36 tom Exp $ =============================================================================== Changes since Lynx 2.8 release =============================================================================== -2018-12-27 (2.9.0dev.1) +2018-12-28 (2.9.0dev.1) +* modify generated HTML when processing -source option for a Gopher menu to + convert literal "<", "&", and ">" to HTML named entities (report/testcase by + Zachary Lee Andrews) -TD +* build-fix when persistent cookies are disabled (report by Juan Manuel + Guerrero) -TD * memory-leak and dead-code fixes from static analysis (patch by Kamil Dudka). * restore whitespace in info-page omitted in 2.8.9dev.17, useful for screen readers (report by Dan Dunfee) -Chuck Martin diff --git a/WWW/Library/Implementation/HTGopher.c b/WWW/Library/Implementation/HTGopher.c index 854694e5..865985c2 100644 --- a/WWW/Library/Implementation/HTGopher.c +++ b/WWW/Library/Implementation/HTGopher.c @@ -1,5 +1,5 @@ /* - * $LynxId: HTGopher.c,v 1.69 2018/12/27 23:48:37 Kamil.Dudka Exp $ + * $LynxId: HTGopher.c,v 1.71 2018/12/28 16:58:59 tom Exp $ * * GOPHER ACCESS HTGopher.c * ============= @@ -28,6 +28,7 @@ #include <HTParse.h> #include <HTTCP.h> #include <HTFinger.h> +#include <LYGlobalDefs.h> /* * Implements. @@ -262,9 +263,33 @@ static void parse_menu(const char *arg GCC_UNUSED, } if ((char) ich != LF) { - *p = (char) ich; /* Put character in line */ - if (p < &line[BIG - 1]) - p++; + const char *ss = NULL; + + /* + * Help the -source output to look like the HTML equivalent of the + * Gopher menu. + */ + if (dump_output_immediately + && HTOutputFormat == HTAtom_for("www/dump")) { + if (ich == '<') { + ss = "<"; + } else if (ich == '>') { + ss = ">"; + } else if (ich == '&') { + ss = "&"; + } + } + if (ss != NULL) { + if ((p + 5) < &line[BIG - 1]) { + while (*ss != '\0') { + *p++ = *ss++; + } + } + } else { + *p = (char) ich; /* Put character in line */ + if (p < &line[BIG - 1]) + p++; + } } else { *p++ = '\0'; /* Terminate line */ @@ -1172,7 +1197,7 @@ static int generate_cso_form(char *host, if (ctx.seek) { /* - * Command wants us to skip (forward) to indicated token. + * Command wants us to skip (forward) to indicated token. * Start at current position. */ size_t slen = strlen(ctx.seek); diff --git a/src/LYMain.c b/src/LYMain.c index 36c22ed5..7c8eca0e 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYMain.c,v 1.282 2018/07/08 15:22:44 tom Exp $ + * $LynxId: LYMain.c,v 1.283 2018/12/28 14:21:31 tom Exp $ */ #include <HTUtils.h> #include <HTTP.h> @@ -2361,9 +2361,9 @@ void reload_read_cfg(void) FREE(tempfile); return; /* can not write the very own file :( */ } +#ifdef USE_PERSISTENT_COOKIES if (LYCookieFile != 0 && LYCookieSaveFile != 0) { /* set few safe flags: */ -#ifdef USE_PERSISTENT_COOKIES BOOLEAN persistent_cookies_flag = persistent_cookies; char *LYCookieFile_flag = NULL; char *LYCookieSaveFile_flag = NULL; @@ -2372,8 +2372,6 @@ void reload_read_cfg(void) StrAllocCopy(LYCookieFile_flag, LYCookieFile); StrAllocCopy(LYCookieSaveFile_flag, LYCookieSaveFile); } -#endif - #ifdef USE_CHARSET_CHOICE custom_assumed_doc_charset = FALSE; custom_display_charset = FALSE; @@ -2414,7 +2412,6 @@ void reload_read_cfg(void) * a major problem: file paths * like lynx_save_space, LYCookieFile etc. */ -#ifdef USE_PERSISTENT_COOKIES /* restore old settings */ if (persistent_cookies != persistent_cookies_flag) { persistent_cookies = persistent_cookies_flag; @@ -2434,9 +2431,8 @@ void reload_read_cfg(void) FREE(LYCookieFile_flag); FREE(LYCookieSaveFile_flag); } -#endif - } +#endif /* USE_PERSISTENT_COOKIES */ } #endif /* !NO_CONFIG_INFO */ diff --git a/src/parsdate.c b/src/parsdate.c index d4a71afd..d0e772f1 100644 --- a/src/parsdate.c +++ b/src/parsdate.c @@ -22,7 +22,7 @@ #include <LYLeaks.h> /* - * $LynxId: parsdate.c,v 1.26 2018/12/27 22:31:48 tom Exp $ + * $LynxId: parsdate.c,v 1.27 2018/12/28 01:54:18 tom Exp $ * * This module is adapted and extended from tin, to use for LYmktime(). * @@ -672,10 +672,12 @@ static time_t Convert(time_t Month, time_t Day, time_t Year, time_t Hours, } else if (dst == DSTmaybe) { struct tm *tm = localtime(&tod); - if (tm != NULL && tm->tm_isdst) - Julian -= DST_OFFSET * 60 * 60; - else + if (tm != NULL) { + if (tm->tm_isdst) + Julian -= DST_OFFSET * 60 * 60; + } else { Julian = BAD_TIME; + } } return Julian; } @@ -1039,7 +1041,7 @@ time_t parsedate(char *p, * from the error return value. (Alternately could set errno on error.) */ return (Start == BAD_TIME) ? 0 : Start; } -#line 1043 "y.tab.c" +#line 1045 "y.tab.c" #if YYDEBUG #include <stdio.h> /* needed for printf */ @@ -1524,7 +1526,7 @@ case 35: yyval.Meridian = yystack.l_mark[0].Meridian; } break; -#line 1528 "y.tab.c" +#line 1530 "y.tab.c" } yystack.s_mark -= yym; yystate = *yystack.s_mark; diff --git a/src/parsdate.y b/src/parsdate.y index 182e6a0d..374a87c1 100644 --- a/src/parsdate.y +++ b/src/parsdate.y @@ -3,7 +3,7 @@ #include <LYLeaks.h> /* - * $LynxId: parsdate.y,v 1.28 2018/12/27 21:56:01 tom Exp $ + * $LynxId: parsdate.y,v 1.29 2018/12/28 01:53:17 tom Exp $ * * This module is adapted and extended from tin, to use for LYmktime(). * @@ -612,10 +612,12 @@ static time_t Convert(time_t Month, time_t Day, time_t Year, time_t Hours, } else if (dst == DSTmaybe) { struct tm *tm = localtime(&tod); - if (tm != NULL && tm->tm_isdst) - Julian -= DST_OFFSET * 60 * 60; - else + if (tm != NULL) { + if (tm->tm_isdst) + Julian -= DST_OFFSET * 60 * 60; + } else { Julian = BAD_TIME; + } } return Julian; } |