[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lynx-dev fix to verbose images
From: |
Laura Eaves |
Subject: |
lynx-dev fix to verbose images |
Date: |
Tue, 18 Aug 1998 00:36:39 -0400 (EDT) |
Hm -- a little messy to fix, but all confined to HTML.c
This patch is against dev17. I don't know if HTML.c has changed since then.
Fixed: Verbose images now work with [IMAGE]-Submit
Also, I fixed the core dump when clickable_images is on.
The problem was an oversight in MakeNewTitle() (see patch).
Try running it on the website(s) that caused the core dump.
--le
--- old/HTML.c Thu Jun 4 10:19:50 1998
+++ src/HTML.c Tue Aug 18 00:25:14 1998
@@ -113,10 +113,11 @@
/*
* If we have verbose_img set, display labels for images.
*/
-#define VERBOSE_IMG(value,string) \
- ((verbose_img) ? (newtitle = MakeNewTitle(value)): string)
+#define VERBOSE_IMG(value,src_type,string) \
+ ((verbose_img) ? (newtitle = MakeNewTitle(value,src_type)): string)
-PRIVATE char * MakeNewTitle PARAMS((CONST char ** value));
+PRIVATE char * MakeNewTitle PARAMS((CONST char ** value, int src_type));
+PRIVATE char * MakeNewImageValue PARAMS((CONST char ** value));
/* Set an internal flag that the next call to a stack-affecting method
** is only internal and the stack manipulation should be skipped. - kw
@@ -2721,7 +2722,7 @@
} else if (me->inA == TRUE && dest) {
StrAllocCopy(alt_string, (title ?
title :
- VERBOSE_IMG(value,
"[LINK]")));
+ VERBOSE_IMG(value,
HTML_IMG_SRC, "[LINK]")));
} else {
StrAllocCopy(alt_string,
@@ -2729,7 +2730,7 @@
((present &&
present[HTML_IMG_ISOBJECT])
?
"(OBJECT)" :
- VERBOSE_IMG(value,
"[INLINE]"))));
+ VERBOSE_IMG(value,
HTML_IMG_SRC, "[INLINE]"))));
}
}
}
@@ -2746,7 +2747,7 @@
} else if (me->inA == TRUE && dest) {
StrAllocCopy(alt_string, (title ?
title :
- VERBOSE_IMG(value, "[LINK]")));
+ VERBOSE_IMG(value, HTML_IMG_SRC,
"[LINK]")));
} else {
if (pseudo_inline_alts || clickable_images)
@@ -2754,7 +2755,7 @@
((present &&
present[HTML_IMG_ISOBJECT]) ?
"(OBJECT)" :
- VERBOSE_IMG(value, "[INLINE]"))));
+ VERBOSE_IMG(value, HTML_IMG_SRC,
"[INLINE]"))));
else
StrAllocCopy(alt_string, (title ?
title : ""));
@@ -2883,7 +2884,7 @@
present[HTML_IMG_ISOBJECT]) ?
((map_href || dest_ismap) ?
"(IMAGE)" : "(OBJECT)") :
- VERBOSE_IMG(value, "[IMAGE]")));
+ VERBOSE_IMG(value, HTML_IMG_SRC,
"[IMAGE]")));
if (id_string && !map_href) {
if ((ID_A = HTAnchor_findChildAndLink(
me->node_anchor, /* Parent */
@@ -2938,7 +2939,7 @@
((present &&
present[HTML_IMG_ISOBJECT]) ?
"(IMAGE)" :
- VERBOSE_IMG(value,
"[IMAGE]")));
+ VERBOSE_IMG(value,
HTML_IMG_SRC, "[IMAGE]")));
} else {
HTML_put_character(me, ' '); /* space char may be ignored */
me->in_word = NO;
@@ -4207,6 +4208,7 @@
int chars;
BOOL UseALTasVALUE = FALSE;
BOOL HaveSRClink = FALSE;
+ char* ImageSrc = NULL;
BOOL IsSubmitOrReset = FALSE;
/* init */
@@ -4365,7 +4367,12 @@
*/
UseALTasVALUE = TRUE;
}
- if (clickable_images == TRUE &&
+ if (verbose_img && !clickable_images &&
+ present && present[HTML_INPUT_SRC] &&
+ value[HTML_INPUT_SRC] && *value[HTML_INPUT_SRC] &&
+ I.type && !strcasecomp(I.type, "image")) {
+ ImageSrc = MakeNewImageValue(value);
+ } else if (clickable_images == TRUE &&
present && present[HTML_INPUT_SRC] &&
value[HTML_INPUT_SRC] && *value[HTML_INPUT_SRC] &&
I.type && !strcasecomp(I.type, "image")) {
@@ -4411,7 +4418,7 @@
HText_beginAnchor(me->text, me->inUnderline, me->CurrentA);
if (me->inBoldH == FALSE)
HText_appendCharacter(me->text, LY_BOLD_START_CHAR);
- HTML_put_string(me, VERBOSE_IMG(value, "[IMAGE]"));
+ HTML_put_string(me,
VERBOSE_IMG(value,HTML_INPUT_SRC,"[IMAGE]"));
if (me->inBoldH == FALSE)
HText_appendCharacter(me->text, LY_BOLD_END_CHAR);
HText_endAnchor(me->text, 0);
@@ -4492,6 +4499,11 @@
*/
StrAllocCopy(I_value, "Submit");
I.value = I_value;
+ } else if ( ImageSrc ) {
+ /* [IMAGE]-Submit with verbose images and not clickable images.
+ * Use ImageSrc if no other alt or value is supplied. --LE
+ */
+ I.value = ImageSrc;
}
if (present && present[HTML_INPUT_CHECKED])
I.checked = YES;
@@ -7438,18 +7450,33 @@
}
-PRIVATE char * MakeNewTitle ARGS1(CONST char **, value)
+PRIVATE char * MakeNewTitle ARGS2(CONST char **, value, int, src_type)
{
char *ptr;
char *newtitle = NULL;
StrAllocCopy(newtitle, "[");
- ptr = strrchr(value[HTML_IMG_SRC], '/');
+ ptr = strrchr(value[src_type], '/');
if (!ptr) {
- StrAllocCat(newtitle, value[HTML_IMG_SRC]);
+ StrAllocCat(newtitle, value[src_type]);
} else {
StrAllocCat(newtitle, ptr + 1);
}
StrAllocCat(newtitle, "]");
+ return newtitle;
+}
+PRIVATE char * MakeNewImageValue ARGS1(CONST char **, value)
+{
+ char *ptr;
+ char *newtitle = NULL;
+
+ StrAllocCopy(newtitle, "[");
+ ptr = strrchr(value[HTML_INPUT_SRC], '/');
+ if (!ptr) {
+ StrAllocCat(newtitle, value[HTML_INPUT_SRC]);
+ } else {
+ StrAllocCat(newtitle, ptr + 1);
+ }
+ StrAllocCat(newtitle, "]-Submit");
return newtitle;
}
- lynx-dev fix to verbose images,
Laura Eaves <=