[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: lynx-dev change to status line
From: |
Eduardo Chappa L. |
Subject: |
Re: lynx-dev change to status line |
Date: |
Thu, 15 Jul 1999 13:16:29 -0700 (PDT) |
Hello
Here is a new patch, explanation follows:
* New starting option "-short_url", that shortens urls to see their
beginning and end when in advance mode. The default is the normal behavior
in Lynx.
Some explanation about what it does, was given before. In essence it
shows relevant information about what the link is, to where and what kind
of file is being accessed. There was/is a bug with "javascript" urls. The
solution was to assume that the ending of a link can not contain less than
3 characters, so it should always show at least 4 characters and less than
half of LYcols in the end of the link. The separation between beginning and
end is done by the "___" string. Other suggestions welcome :) (BTW, there
is a snip.com page :P)
The patch is against lynx2.8.2rel1
diff -rc lynx2-8-2.real/src/LYMain.c lynx2-8-2/src/LYMain.c ***
lynx2-8-2.real/src/LYMain.c Tue Jun 1 06:22:18 1999 ---
lynx2-8-2/src/LYMain.c Thu Jul 15 12:44:34 1999 *************** *** 195,200
**** --- 195,201 ---- PUBLIC BOOLEAN news_ok = TRUE; #endif PUBLIC BOOLEAN
rlogin_ok = TRUE; + PUBLIC BOOLEAN long_url_ok = TRUE; PUBLIC BOOLEAN
ftp_ok = TRUE; PUBLIC BOOLEAN system_editor = FALSE; #ifdef USE_EXTERNALS
*************** *** 2963,2968 **** --- 2964,2973 ---- PARSE_FUN(
"selective", FUNCTION_ARG, selective_fun, "require .www_browsable
files to
browse directories" + ), + PARSE_SET( +
"short_url", UNSET_ARG, &long_url_ok, + "enables
examination of beginnig
and end of long URL in status line" ), PARSE_SET(
"show_cursor", TOGGLE_ARG, &LYUseDefShoCur,
diff -rc lynx2-8-2.real/src/LYMainLoop.c lynx2-8-2/src/LYMainLoop.c ***
lynx2-8-2.real/src/LYMainLoop.c Fri May 28 07:04:01 1999 ---
lynx2-8-2/src/LYMainLoop.c Thu Jul 15 12:56:47 1999 *************** ***
57,62 **** --- 57,63 ----
PRIVATE void exit_immediately_with_error_message PARAMS((int state,
BOOLEAN first_file)); PRIVATE void print_status_message PARAMS((CONST
linkstruct curlink, char **cp)); + PRIVATE char * status_link PARAMS((char
*curlink_name,char *more,char *index)); PRIVATE BOOL confirm_post_resub
PARAMS(( CONST char* address, CONST char* title,
*************** ***
6151,6156 **** --- 6152,6161 ---- /* * Show the URL or, for some
internal links, the fragment */ + char *more = "-more-"; + char *index =
"-index-"; + extern BOOLEAN long_url_ok; + *cp = NULL; if (curlink.type
== WWW_INTERN_LINK_TYPE && strncmp(curlink.lname, "LYNXIMGMAP:", 11)) {
*************** *** 6159,6174 **** if (!(*cp)) *cp = curlink.lname;
if
(more) { ! if (is_www_index) ! _user_message("-more- -index-
%s", !
*cp); ! else !
_user_message("-more- %s",*cp); } else { ! if
(is_www_index) ! _user_message("-index- %s",*cp); ! else !
statusline(*cp); } } else if (is_www_index && more) {
char buf[128];
--- 6164,6190 ---- if (!(*cp)) *cp = curlink.lname; if (more) { !
if
(is_www_index) { ! if (long_url_ok) { ! _user_message("-more-
-index-
%s", *cp); } ! else { ! statusline(status_link(*cp,
more, index)); } }
! else { ! if (long_url_ok) { ! _user_message("-more-
%s",*cp); } !
else { ! statusline(status_link(*cp, more,
NULL)); } } } else { !
if (is_www_index) { ! if (long_url_ok) { ! _user_message("-index-
%s",*cp);} ! else { ! statusline(status_link(*cp,
NULL, index)); } } !
else { ! if (long_url_ok) { ! statusline(*cp);} !
else { !
statusline(status_link(*cp, NULL, NULL));} } } } else if (is_www_index &&
more) { char buf[128]; *************** *** 6247,6250 **** --- 6263,6348
---- exit_immediately(-1); } /* else: return(-1) in mainloop */ + } + + +
PRIVATE char * status_link ARGS3(char *, curlink_name, char *, more, char
*, index) + { + #define MINDISPLAY (LYcols-2)/2 + char result[LYcols]; +
char *test; + int length_more = 0; + int length_index = 0;
+ if
(more != NULL) { + length_more = strlen(more) + 1;} + if
(index !=
NULL) { + length_index = strlen(index) + 1;} + if
(strlen(curlink_name)
+ length_more + length_index > LYcols - 2) { + char buf[1024]; /* 1024 is
he length of a very long URL */ + int count; + int newcount; +
int
total_length; + int cut_position; + int link_position; + +
if (more
== NULL) { + if (index == NULL) { +
sprintf(buf,"%s",curlink_name);}
+ else { + sprintf(buf,"%s
%s", index, curlink_name); + } + }
else { + if (index == NULL) { +
sprintf(buf,"%s
%s",more,curlink_name);} + else { +
sprintf(buf,"%s %s %s",more,
index, curlink_name); + } + } +
total_length = strlen(curlink_name)
+ length_more + length_index; + for (count = total_length;
(count >
length_more + length_index) && buf[count] != '/'; --count); +
newcount =
count; + + /* Now we deal with links that are not URLs or that
end with
+ a '/' character */ + + if (count >=
(total_length - 3)) { + for
(newcount = count - 1; (newcount > length_more + length_index) &&
buf[newcount] != '/'; --newcount); + } + + /* We make the
assumption
that one can recognize the kind of + link from at least MINDISPLAY
characters */ + + cut_position = LYcols - 2 - (total_length -
newcount);
+ if (cut_position < MINDISPLAY){ +
cut_position = MINDISPLAY; +
link_position = total_length - MINDISPLAY; +
} else { +
link_position = newcount; + } +
for (count = 0; count <=
cut_position; ++count) + result[count] = buf[count]; +
result[cut_position - 1] = '_'; + result[cut_position - 2] = '_'; +
result[cut_position - 3] = '_'; + for (count = cut_position;
(count <
LYcols - 2) && (link_position + count - cut_position <= total_length);
++count) + result[count] = buf[link_position + count -
cut_position]; +
result[count] = '0'; + } + else { + if (more ==
NULL) { + if (index
== NULL) { + sprintf(result,"%sn",curlink_name);} +
else { +
sprintf(result,"%s %sn", index, curlink_name);
+ } + } else { +
if (index == NULL) { +
sprintf(result,"%s %sn",more,curlink_name);} +
else { +
sprintf(result,"%s %s %sn",more, index, curlink_name); +
} + } + } + test = result; +
return test; }
Eduardo http://www.math.washington.edu/~chappa/personal.html
- Re: lynx-dev patch - "JUSTIFY", (continued)
- Re: lynx-dev patch - "JUSTIFY", Peter Wright, 1999/07/15
- lynx-dev code indentation style (was "JUSTIFY") - warning, "religious" topic..., Klaus Weide, 1999/07/14
- lynx-dev change to status line, Eduardo Chappa L., 1999/07/14
- Re: lynx-dev change to status line, Klaus Weide, 1999/07/14
- Re: lynx-dev change to status line, Eduardo Chappa L., 1999/07/15
- Re: lynx-dev change to status line, Klaus Weide, 1999/07/15
- Re: lynx-dev change to status line, Eduardo Chappa L., 1999/07/15
- lynx-dev javascript jump (was: change to status line), Heather Stern, 1999/07/15
- Re: lynx-dev javascript jump (was: change to status line), David Woolley, 1999/07/17
- Re: lynx-dev javascript jump (was: change to status line), Heather Stern, 1999/07/17
- Re: lynx-dev change to status line,
Eduardo Chappa L. <=
- Re: lynx-dev change to status line, David Combs, 1999/07/15
- Re: lynx-dev patch, David Woolley, 1999/07/18
Re: lynx-dev patch, David Woolley, 1999/07/13
Re: lynx-dev patch, T.E.Dickey, 1999/07/12
Re: lynx-dev patch, T.E.Dickey, 1999/07/12
Re: lynx-dev patch, T.E.Dickey, 1999/07/12