mirror of
https://github.com/rkd77/elinks.git
synced 2024-06-15 23:35:34 +00:00
Merge with /srv/git/elinks.git
This commit is contained in:
commit
92c5be8e95
|
@ -32,7 +32,7 @@ if test "$CONFIG_SCRIPTING_RUBY" = "yes"; then
|
||||||
if test "$CONFIG_SCRIPTING_RUBY" != "no"; then
|
if test "$CONFIG_SCRIPTING_RUBY" != "no"; then
|
||||||
|
|
||||||
AC_MSG_CHECKING(Ruby version)
|
AC_MSG_CHECKING(Ruby version)
|
||||||
if $CONFIG_SCRIPTING_RUBY -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
|
if $CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}" >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
|
||||||
ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'`
|
ruby_version=`$CONFIG_SCRIPTING_RUBY -e 'puts "#{VERSION rescue RUBY_VERSION}"'`
|
||||||
AC_MSG_RESULT($ruby_version)
|
AC_MSG_RESULT($ruby_version)
|
||||||
|
|
||||||
|
|
|
@ -917,7 +917,7 @@ static struct option_info config_options_info[] = {
|
||||||
"environment) with a background image or a transparent background -\n"
|
"environment) with a background image or a transparent background -\n"
|
||||||
"it will be visible in ELinks as well (but ELinks document color handling\n"
|
"it will be visible in ELinks as well (but ELinks document color handling\n"
|
||||||
"will still assume the background is black so if you have a bright background\n"
|
"will still assume the background is black so if you have a bright background\n"
|
||||||
"you might experience contrast problems. Note that this option makes\n"
|
"you might experience contrast problems). Note that this option makes\n"
|
||||||
"sense only when colors are enabled.")),
|
"sense only when colors are enabled.")),
|
||||||
|
|
||||||
INIT_OPT_BOOL("terminal._template_", N_("Underline"),
|
INIT_OPT_BOOL("terminal._template_", N_("Underline"),
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
/* Functionality for handling mime types */
|
/* Functionality for handling mime types */
|
||||||
|
|
||||||
|
#ifndef _GNU_SOURCE
|
||||||
|
#define _GNU_SOURCE /* XXX: we _WANT_ strcasestr() ! */
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -224,6 +228,34 @@ get_cache_header_content_type(struct cache_entry *cached)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned char *
|
||||||
|
get_fragment_content_type(struct cache_entry *cached)
|
||||||
|
{
|
||||||
|
struct fragment *fragment;
|
||||||
|
size_t length;
|
||||||
|
unsigned char *sample;
|
||||||
|
unsigned char *ctype = NULL;
|
||||||
|
|
||||||
|
if (list_empty(cached->frag))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
fragment = cached->frag.next;
|
||||||
|
if (fragment->offset)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
length = fragment->length > 1024 ? 1024 : fragment->length;
|
||||||
|
sample = memacpy(fragment->data, length);
|
||||||
|
if (!sample)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
if (strcasestr(sample, "<html>"))
|
||||||
|
ctype = stracpy("text/html");
|
||||||
|
|
||||||
|
mem_free(sample);
|
||||||
|
|
||||||
|
return ctype;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned char *
|
unsigned char *
|
||||||
get_content_type(struct cache_entry *cached)
|
get_content_type(struct cache_entry *cached)
|
||||||
{
|
{
|
||||||
|
@ -269,6 +301,12 @@ get_content_type(struct cache_entry *cached)
|
||||||
mem_free_if(ctype);
|
mem_free_if(ctype);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ctype = get_fragment_content_type(cached);
|
||||||
|
if (ctype && *ctype) {
|
||||||
|
cached->content_type = ctype;
|
||||||
|
return ctype;
|
||||||
|
}
|
||||||
|
|
||||||
debug_ctype(get_default_mime_type());
|
debug_ctype(get_default_mime_type());
|
||||||
|
|
||||||
/* Fallback.. use some hardwired default */
|
/* Fallback.. use some hardwired default */
|
||||||
|
|
|
@ -122,6 +122,7 @@ struct s_msg_dsc {
|
||||||
{S_BITTORRENT_ERROR, N_("BitTorrent error")},
|
{S_BITTORRENT_ERROR, N_("BitTorrent error")},
|
||||||
{S_BITTORRENT_METAINFO, N_("The BitTorrent metainfo file contained errors")},
|
{S_BITTORRENT_METAINFO, N_("The BitTorrent metainfo file contained errors")},
|
||||||
{S_BITTORRENT_TRACKER, N_("The tracker requesting failed")},
|
{S_BITTORRENT_TRACKER, N_("The tracker requesting failed")},
|
||||||
|
{S_BITTORRENT_BAD_URL, N_("The BitTorrent URL does not point to a valid URL")},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
|
|
|
@ -104,6 +104,7 @@ enum connection_state {
|
||||||
S_BITTORRENT_ERROR = -100800,
|
S_BITTORRENT_ERROR = -100800,
|
||||||
S_BITTORRENT_METAINFO = -100801,
|
S_BITTORRENT_METAINFO = -100801,
|
||||||
S_BITTORRENT_TRACKER = -100802,
|
S_BITTORRENT_TRACKER = -100802,
|
||||||
|
S_BITTORRENT_BAD_URL = -100803,
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned char *get_state_message(enum connection_state state, struct terminal *term);
|
unsigned char *get_state_message(enum connection_state state, struct terminal *term);
|
||||||
|
|
|
@ -284,6 +284,10 @@ init_bittorrent_connection(struct connection *conn)
|
||||||
bittorrent->conn = conn;
|
bittorrent->conn = conn;
|
||||||
bittorrent->tracker.timer = TIMER_ID_UNDEF;
|
bittorrent->tracker.timer = TIMER_ID_UNDEF;
|
||||||
|
|
||||||
|
/* Initialize here so that error handling can safely call
|
||||||
|
* free_list on it. */
|
||||||
|
init_list(bittorrent->meta.files);
|
||||||
|
|
||||||
return bittorrent;
|
return bittorrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -377,7 +381,7 @@ bittorrent_metainfo_callback(void *data, enum connection_state state,
|
||||||
void
|
void
|
||||||
bittorrent_protocol_handler(struct connection *conn)
|
bittorrent_protocol_handler(struct connection *conn)
|
||||||
{
|
{
|
||||||
struct uri *uri;
|
struct uri *uri = NULL;
|
||||||
struct bittorrent_connection *bittorrent;
|
struct bittorrent_connection *bittorrent;
|
||||||
|
|
||||||
bittorrent = init_bittorrent_connection(conn);
|
bittorrent = init_bittorrent_connection(conn);
|
||||||
|
@ -386,11 +390,11 @@ bittorrent_protocol_handler(struct connection *conn)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(conn->uri->datalen);
|
if (conn->uri->datalen)
|
||||||
|
uri = get_uri(conn->uri->data, 0);
|
||||||
|
|
||||||
uri = get_uri(conn->uri->data, 0);
|
|
||||||
if (!uri) {
|
if (!uri) {
|
||||||
abort_connection(conn, S_OUT_OF_MEM);
|
abort_connection(conn, S_BITTORRENT_BAD_URL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,13 @@ parse_uri(struct uri *uri, unsigned char *uristring)
|
||||||
datalen = strlen(prefix_end);
|
datalen = strlen(prefix_end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* A bit of a special case, but using the "normal" host
|
||||||
|
* parsing seems a bit scary at this point. (see bug 107). */
|
||||||
|
if (datalen > 9 && !strncasecmp(prefix_end, "localhost/", 10)) {
|
||||||
|
prefix_end += 9;
|
||||||
|
datalen -= 9;
|
||||||
|
}
|
||||||
|
|
||||||
uri->data = prefix_end;
|
uri->data = prefix_end;
|
||||||
uri->datalen = datalen;
|
uri->datalen = datalen;
|
||||||
|
|
||||||
|
|
|
@ -1143,8 +1143,15 @@ do_type_query(struct type_query *type_query, unsigned char *ct, struct mime_hand
|
||||||
}
|
}
|
||||||
|
|
||||||
text = get_dialog_offset(dlg, TYPE_QUERY_WIDGETS_COUNT);
|
text = get_dialog_offset(dlg, TYPE_QUERY_WIDGETS_COUNT);
|
||||||
format = _("What would you like to do with the file '%s' (type: %s%s%s)?", term);
|
/* For "default directory index pages" with wrong content-type
|
||||||
snprintf(text, MAX_STR_LEN, format, filename.source, ct, desc_sep, description);
|
* the filename can be NULL, e.g. http://www.spamhaus.org in bug 396. */
|
||||||
|
if (filename.length) {
|
||||||
|
format = _("What would you like to do with the file '%s' (type: %s%s%s)?", term);
|
||||||
|
snprintf(text, MAX_STR_LEN, format, filename.source, ct, desc_sep, description);
|
||||||
|
} else {
|
||||||
|
format = _("What would you like to do with the file (type: %s%s%s)?", term);
|
||||||
|
snprintf(text, MAX_STR_LEN, format, ct, desc_sep, description);
|
||||||
|
}
|
||||||
|
|
||||||
done_string(&filename);
|
done_string(&filename);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user