1 diff -urN aaa/links-2.0pre6/html.c links-2.0pre6/html.c
2 --- aaa/links-2.0pre6/html.c Mon May 20 00:32:57 2002
3 +++ links-2.0pre6/html.c Sun Jun 16 12:02:57 2002
5 if (!d_opt->images && !format.link) goto ret;
6 if (usemap) al = stracpy("[USEMAP]");
7 else if (ismap) al = stracpy("[ISMAP]");
8 - else al = stracpy("[IMG]");
10 + unsigned char *str = get_attr_val(a, "src");
13 + /* How images will be displayed:
14 + * fake_alt = 0 -- do not truncate long names,
15 + * fake_alt = 30 -- truncate long names to 30% of term width,
16 + * fake_alt = 100 -- truncate long names to 100% of term width.
21 + /* substitute string for hidden characters */
22 + unsigned char *fake_str = stracpy("*");
23 + if(str && fake_alt){
24 + /* FIXME: replace following '80' with screen width */
25 + max_len = (int)80*((float)fake_alt/100);
26 + r = strcspn(str, "?");
27 + if (!(s = mem_alloc((r + 1) * sizeof(char)))) return;
30 + for(r = strlen(s) - 1; r >= 0; --r)
31 + if(dir_sep(s[r])) break;
33 + if(strlen(s + r) > max_len){
34 + for(i = strlen(s) -1; i>=0; --i)
35 + if(s[i] == '.') break;
36 + if(max_len < strlen(s + i)) al = stracpy("[IMG]");
38 + if(!(al = mem_alloc((max_len + strlen(fake_str) + 3) * sizeof(char)))) return;
39 + name_len = max_len - strlen(s + i);
41 + strncat(al, s + r, name_len/2);
42 + strcat(al, fake_str);
43 + strcat(al, s + r + (strlen(s + r) - max_len + name_len/2));
48 + if(!(al = mem_alloc((strlen(s + r) + 3) * sizeof(char)))) return;
49 + sprintf(al, "[%s]", s + r);
55 + else al = stracpy("[IMG]");