diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/GridText.c | 35 | ||||
-rw-r--r-- | src/HTML.c | 8 | ||||
-rw-r--r-- | src/LYCharUtils.c | 9 | ||||
-rw-r--r-- | src/LYStrings.c | 14 | ||||
-rw-r--r-- | src/LYUtils.c | 4 | ||||
-rw-r--r-- | src/TRSTable.c | 10 |
6 files changed, 49 insertions, 31 deletions
diff --git a/src/GridText.c b/src/GridText.c index 7d15191c..7a36b47c 100644 --- a/src/GridText.c +++ b/src/GridText.c @@ -1,5 +1,5 @@ /* - * $LynxId: GridText.c,v 1.329 2021/06/29 22:01:12 tom Exp $ + * $LynxId: GridText.c,v 1.334 2021/10/24 16:13:59 tom Exp $ * * Character grid hypertext object * =============================== @@ -784,8 +784,7 @@ static int StyleToCols(HText *text, HTLine *line, int nstyle) */ static void LYClearHiText(TextAnchor *a) { - FREE(a->lites.hl_info); - + a->lites.hl_info = NULL; a->lites.hl_base.hl_text = NULL; a->lites.hl_len = 0; } @@ -849,7 +848,7 @@ static int LYAdjHiTextPos(TextAnchor *a, int count) else result = a->lites.hl_base.hl_text; - return (result != 0) ? (int) (LYSkipBlanks(result) - result) : 0; + return (result != NULL) ? (int) (LYSkipBlanks(result) - result) : 0; } #else @@ -3006,7 +3005,7 @@ static void split_line(HText *text, unsigned split) ctrl_chars_on_this_line += utfxtra_on_this_line; /* Add the data to the new line. -FM */ - strcat(linedata, p); + for (i = 0; (linedata[i] = p[i]) != '\0'; ++i) ; line->size = (unsigned short) (line->size + plen); } } @@ -4109,8 +4108,10 @@ void HText_appendCharacter(HText *text, int ch) return; #endif } else if (ch == LY_SOFT_NEWLINE) { - line->data[line->size++] = LY_SOFT_NEWLINE; - line->data[line->size] = '\0'; + if (line->size < MAX_LINE) { + line->data[line->size++] = LY_SOFT_NEWLINE; + line->data[line->size] = '\0'; + } return; } @@ -4147,10 +4148,12 @@ void HText_appendCharacter(HText *text, int ch) + UTFXTRA_ON_THIS_LINE == 0) HText_appendCharacter(text, LY_SOFT_NEWLINE); } - line->data[line->size++] = (char) ch; - line->data[line->size] = '\0'; - utfxtra_on_this_line++; - ctrl_chars_on_this_line++; + if (line->size < MAX_LINE) { + line->data[line->size++] = (char) ch; + line->data[line->size] = '\0'; + utfxtra_on_this_line++; + ctrl_chars_on_this_line++; + } #ifdef EXP_WCWIDTH_SUPPORT /* update utfxtracells_on_this_line on last byte of UTF-8 sequence */ { @@ -4302,6 +4305,8 @@ void HText_appendCharacter(HText *text, int ch) } else { for (; here < target; here++) { /* Put character into line */ + if (line->size >= MAX_LINE) + break; line->data[line->size++] = ' '; line->data[line->size] = '\0'; } @@ -4465,7 +4470,9 @@ void HText_appendCharacter(HText *text, int ch) line = text->last_line; /* May have changed */ - if (IS_CJK_TTY && text->kanji_buf) { + if (line->size >= MAX_LINE) { + ; + } else if (IS_CJK_TTY && text->kanji_buf) { hi = UCH(text->kanji_buf); lo = UCH(ch); @@ -8091,7 +8098,7 @@ static AnchorIndex **allocAnchorIndex(unsigned *size) p->filler = ' '; break; } - p->length = (int) strlen(p->value); + p->length = p->value ? (int) strlen(p->value) : 0; if ((q = result[anchor->line_num]) != NULL) { /* insert, ordering by offset */ @@ -8197,7 +8204,7 @@ void print_wwwfile_to_fd(FILE *fp, inx = allocAnchorIndex(&inx_size); line = FirstHTLine(HTMainText); - for (line_num = 0;; ++line_num, line = line->next) { + for (line_num = 0; line != NULL; ++line_num, line = line->next) { if (in_field >= 0) { this_wrap = next_wrap; next_wrap = 0; /* FIXME - allow for multiple continuations */ diff --git a/src/HTML.c b/src/HTML.c index 083b4cc0..a0124668 100644 --- a/src/HTML.c +++ b/src/HTML.c @@ -1,5 +1,5 @@ /* - * $LynxId: HTML.c,v 1.195 2021/07/23 20:23:54 tom Exp $ + * $LynxId: HTML.c,v 1.196 2021/10/24 19:10:57 tom Exp $ * * Structured stream to Rich hypertext converter * ============================================ @@ -6753,7 +6753,8 @@ static int HTML_end_element(HTStructured * me, int element_number, *cp = '\0'; StrAllocCopy(temp, data); *cp = '\n'; - data = (cp + 1); + data = NULL; /* HTML_put_characters may overwrite this */ + StrAllocCopy(data, cp + 1); } else { if (*data != '\0') { StrAllocCopy(temp, data); @@ -6827,6 +6828,9 @@ static int HTML_end_element(HTStructured * me, int element_number, FREE(temp); } } + if (data != empty) { + FREE(data); + } FREE(temp); cp = NULL; me->UsePlainSpace = FALSE; diff --git a/src/LYCharUtils.c b/src/LYCharUtils.c index 288e5108..00139893 100644 --- a/src/LYCharUtils.c +++ b/src/LYCharUtils.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYCharUtils.c,v 1.136 2021/06/29 22:01:12 tom Exp $ + * $LynxId: LYCharUtils.c,v 1.137 2021/10/24 00:47:08 tom Exp $ * * Functions associated with LYCharSets.c and the Lynx version of HTML.c - FM * ========================================================================== @@ -2912,8 +2912,11 @@ int LYLegitimizeHREF(HTStructured * me, char **href, p = StrChr(p, '\0'); *pound = '#'; /* restore */ convert_to_spaces(pound, FALSE); - if (p < pound) - strcpy(p, pound); + if (p < pound) { + int n; + + for (n = 0; (p[n] = pound[n]) != '\0'; ++n) ; + } } } } diff --git a/src/LYStrings.c b/src/LYStrings.c index 8cb33394..67c0b2b0 100644 --- a/src/LYStrings.c +++ b/src/LYStrings.c @@ -1,4 +1,4 @@ -/* $LynxId: LYStrings.c,v 1.278 2021/06/09 22:29:17 tom Exp $ */ +/* $LynxId: LYStrings.c,v 1.279 2021/10/24 09:05:19 tom Exp $ */ #include <HTUtils.h> #include <HTCJK.h> #include <UCAux.h> @@ -2755,8 +2755,10 @@ char *LYRemoveBlanks(char *buffer) */ char *LYSkipBlanks(char *buffer) { - while (isspace(UCH((*buffer)))) - buffer++; + if (buffer != NULL) { + while (isspace(UCH((*buffer)))) + buffer++; + } return buffer; } @@ -2765,8 +2767,10 @@ char *LYSkipBlanks(char *buffer) */ char *LYSkipNonBlanks(char *buffer) { - while (*buffer != 0 && !isspace(UCH((*buffer)))) - buffer++; + if (buffer != NULL) { + while (*buffer != 0 && !isspace(UCH((*buffer)))) + buffer++; + } return buffer; } diff --git a/src/LYUtils.c b/src/LYUtils.c index 1378287d..0838c78c 100644 --- a/src/LYUtils.c +++ b/src/LYUtils.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYUtils.c,v 1.299 2021/06/09 21:46:53 tom Exp $ + * $LynxId: LYUtils.c,v 1.300 2021/10/24 16:25:12 tom Exp $ */ #include <HTUtils.h> #include <HTTCP.h> @@ -2969,7 +2969,7 @@ BOOLEAN inlocaldomain(void) if (ulen > strlen(LYLocalDomain) && !memcmp(LYLocalDomain, me.ut_host + ulen - strlen(LYLocalDomain), - ulen)) { + strlen(LYLocalDomain))) { result = TRUE; } #ifdef LINUX diff --git a/src/TRSTable.c b/src/TRSTable.c index bc7e2e50..2a9461c8 100644 --- a/src/TRSTable.c +++ b/src/TRSTable.c @@ -1,5 +1,5 @@ /* - * $LynxId: TRSTable.c,v 1.38 2020/01/21 22:19:58 tom Exp $ + * $LynxId: TRSTable.c,v 1.39 2021/10/24 18:05:05 tom Exp $ * Simple table object * =================== * Authors @@ -444,7 +444,7 @@ static int Stbl_addCellToRow(STable_rowinfo *me, STable_cellinfo *colinfo, int n { int growby = 0; - while (me->ncells + colspan + 1 > me->allocated + growby) + while (me->ncells + colspan + 1 >= me->allocated + growby) growby += CELLS_GROWBY; if (growby) { if (me->allocated == 0 && !me->cells) { @@ -1064,7 +1064,7 @@ int Stbl_addRowToTable(STable_info *me, int alignment, int i; int growby = 0; - while (me->nrows + 2 > me->allocated_rows + growby) + while (me->nrows + 2 >= me->allocated_rows + growby) growby += ROWS_GROWBY; if (growby) { if (me->allocated_rows == 0 && !me->rows) { @@ -1473,7 +1473,7 @@ int Stbl_addCellToTable(STable_info *me, int colspan, { int growby = 0; - while (icell + colspan + 1 > me->allocated_sumcols + growby) + while (icell + colspan + 1 >= me->allocated_sumcols + growby) growby += CELLS_GROWBY; if (growby) { if (me->allocated_sumcols == 0 && !me->sumcols) { @@ -1669,7 +1669,7 @@ int Stbl_addColInfo(STable_info *me, { int growby = 0; - while (icolinfo + colspan + 1 > me->allocated_sumcols + growby) + while (icolinfo + colspan + 1 >= me->allocated_sumcols + growby) growby += CELLS_GROWBY; if (growby) { if (me->allocated_sumcols == 0) { |