diff -uE -x '*.o' w3m-0.5.1/acinclude.m4 les_w3m-0.5.1/acinclude.m4 --- w3m-0.5.1/acinclude.m4 2004-03-12 12:52:59.000000000 -0500 +++ les_w3m-0.5.1/acinclude.m4 2004-08-23 00:18:53.000000000 -0400 @@ -124,8 +124,8 @@ [AC_SUBST(USE_GOPHER) AC_MSG_CHECKING(if gopher is enabled) AC_ARG_ENABLE(gopher, - [ --enable-gopher enable GOPHER],, - [enable_gopher="no"]) + [ --disable-gopher disable GOPHER],, + [enable_gopher="yes"]) test x"$enable_gopher" = xyes && AC_DEFINE(USE_GOPHER) AC_MSG_RESULT($enable_gopher)]) # @@ -338,6 +338,19 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")]) # # ---------------------------------------------------------------- +# AC_W3M_TELNET +# ---------------------------------------------------------------- +AC_DEFUN([AC_W3M_TELNET], +[AC_SUBST(DEF_TELNET) +w3m_telnet="/usr/bin/telnet" +AC_MSG_CHECKING(which telnet client is used by default) +AC_ARG_WITH(telnet, + [ --with-telnet=TELNET default telnet client (/usr/bin/telnet)], + [w3m_telnet="$with_telnet"]) +AC_MSG_RESULT($w3m_telnet) +AC_DEFINE_UNQUOTED(DEF_TELNET, "$w3m_telnet")]) +# +# ---------------------------------------------------------------- # AC_W3M_EXT_BROWSER # ---------------------------------------------------------------- AC_DEFUN([AC_W3M_EXT_BROWSER], diff -uE -x '*.o' w3m-0.5.1/aclocal.m4 les_w3m-0.5.1/aclocal.m4 --- w3m-0.5.1/aclocal.m4 2004-03-12 12:52:59.000000000 -0500 +++ les_w3m-0.5.1/aclocal.m4 2004-08-23 00:18:17.000000000 -0400 @@ -136,8 +136,8 @@ [AC_SUBST(USE_GOPHER) AC_MSG_CHECKING(if gopher is enabled) AC_ARG_ENABLE(gopher, - [ --enable-gopher enable GOPHER],, - [enable_gopher="no"]) + [ --disable-gopher disable GOPHER],, + [enable_gopher="yes"]) test x"$enable_gopher" = xyes && AC_DEFINE(USE_GOPHER) AC_MSG_RESULT($enable_gopher)]) # @@ -350,6 +350,19 @@ AC_DEFINE_UNQUOTED(DEF_MAILER, "$w3m_mailer")]) # # ---------------------------------------------------------------- +# AC_W3M_TELNET +# ---------------------------------------------------------------- +AC_DEFUN([AC_W3M_TELNET], +[AC_SUBST(DEF_TELNET) +w3m_telnet="/usr/bin/telnet" +AC_MSG_CHECKING(which telnet client is used by default) +AC_ARG_WITH(telnet, + [ --with-telnet=TELNET default telnet client (/usr/bin/telnet)], + [w3m_telnet="$with_telnet"]) +AC_MSG_RESULT($w3m_telnet) +AC_DEFINE_UNQUOTED(DEF_TELNET, "$w3m_telnet")]) +# +# ---------------------------------------------------------------- # AC_W3M_EXT_BROWSER # ---------------------------------------------------------------- AC_DEFUN([AC_W3M_EXT_BROWSER], diff -uE -x '*.o' w3m-0.5.1/config.h.dist les_w3m-0.5.1/config.h.dist --- w3m-0.5.1/config.h.dist 2004-04-09 13:18:49.000000000 -0400 +++ les_w3m-0.5.1/config.h.dist 2004-08-23 00:23:40.000000000 -0400 @@ -130,7 +130,7 @@ #define USE_SSL #undef USE_SSL_VERIFY #undef USE_NNTP -#undef USE_GOPHER +#define USE_GOPHER #define USE_EXTERNAL_URI_LOADER #undef USE_ALARM #undef USE_IMAGE @@ -144,6 +144,7 @@ #define DEF_EDITOR "/bin/vi" #define DEF_MAILER "/bin/mail" +#define DEF_TELNET "/usr/bin/telnet" #define DEF_EXT_BROWSER "/usr/bin/netscape" /* fallback viewer. mailcap override these configuration */ diff -uE -x '*.o' w3m-0.5.1/config.h.in les_w3m-0.5.1/config.h.in --- w3m-0.5.1/config.h.in 2004-04-04 12:47:20.000000000 -0400 +++ les_w3m-0.5.1/config.h.in 2004-08-23 00:21:47.000000000 -0400 @@ -92,6 +92,7 @@ #define DEF_EDITOR "@DEF_EDITOR@" #define DEF_MAILER "@DEF_MAILER@ +#define DEF_TELNET "@DEF_TELNET@" #define DEF_EXT_BROWSER "@DEF_EXT_BROWSER@" /* fallback viewer. mailcap override these configuration */ diff -uE -x '*.o' w3m-0.5.1/configure les_w3m-0.5.1/configure --- w3m-0.5.1/configure 2004-04-28 14:19:24.000000000 -0400 +++ les_w3m-0.5.1/configure 2004-08-23 00:20:55.000000000 -0400 @@ -310,7 +310,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION W3M W3M_LANG AWK CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SET_MAKE RANLIB ac_ct_RANLIB PERL NKF MAN build build_cpu build_vendor build_os host host_cpu host_vendor host_os W3M_TARGET W3M_LIBS USE_M17N USE_UNICODE WCTARGET WCCFLAGS DISPLAY_CHARSET SYSTEM_CHARSET DOCUMENT_CHARSET POSUBST POLANG MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB INTLTARGET NLSTARGET USE_COLOR USE_ANSI_COLOR USE_BG_COLOR USE_IMAGE USE_W3MIMG_X11 USE_W3MIMG_FB W3MIMGDISPLAY_SETUID INSTALL_W3MIMGDISPLAY USE_GDKPIXBUF USE_IMLIB USE_IMLIB2 IMGTARGETS IMGOBJS IMGX11CFLAGS IMGX11LDFLAGS IMGFBCFLAGS IMGFBLDFLAGS USE_XFACE uncompface KEYMAP_FILE HELP_FILE KEYBIND USE_MENU USE_MOUSE USE_HISTORY USE_ALARM USE_COOKIE USE_DIGEST_AUTH USE_NNTP USE_GOPHER USE_DICT USE_HELP_CGI USE_EXTERNAL_URI_LOADER USE_W3MMAILER USE_MIGEMO DEF_MIGEMO_COMMAND DEF_EDITOR DEF_MAILER DEF_EXT_BROWSER INET6 HAVE_OLD_SS_FAMILY USE_SSL USE_SSL_VERIFY PKG_CONFIG SSL_CFLAGS SSL_LIBS USE_W3M USE_SYSMOUSE AUXBIN_TARGETS EGREP USE_BINMODE_STREAM HAVE_SYS_ERRLIST HAVE_SIGSETJMP RETSIGTYPE SIGNAL_RETURN HELP_DIR RC_DIR DOCDIRS CURRENT_VERSION LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION W3M W3M_LANG AWK CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SET_MAKE RANLIB ac_ct_RANLIB PERL NKF MAN build build_cpu build_vendor build_os host host_cpu host_vendor host_os W3M_TARGET W3M_LIBS USE_M17N USE_UNICODE WCTARGET WCCFLAGS DISPLAY_CHARSET SYSTEM_CHARSET DOCUMENT_CHARSET POSUBST POLANG MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB INTLTARGET NLSTARGET USE_COLOR USE_ANSI_COLOR USE_BG_COLOR USE_IMAGE USE_W3MIMG_X11 USE_W3MIMG_FB W3MIMGDISPLAY_SETUID INSTALL_W3MIMGDISPLAY USE_GDKPIXBUF USE_IMLIB USE_IMLIB2 IMGTARGETS IMGOBJS IMGX11CFLAGS IMGX11LDFLAGS IMGFBCFLAGS IMGFBLDFLAGS USE_XFACE uncompface KEYMAP_FILE HELP_FILE KEYBIND USE_MENU USE_MOUSE USE_HISTORY USE_ALARM USE_COOKIE USE_DIGEST_AUTH USE_NNTP USE_GOPHER USE_DICT USE_HELP_CGI USE_EXTERNAL_URI_LOADER USE_W3MMAILER USE_MIGEMO DEF_MIGEMO_COMMAND DEF_EDITOR DEF_MAILER DEF_TELNET DEF_EXT_BROWSER INET6 HAVE_OLD_SS_FAMILY USE_SSL USE_SSL_VERIFY PKG_CONFIG SSL_CFLAGS SSL_LIBS USE_W3M USE_SYSMOUSE AUXBIN_TARGETS EGREP USE_BINMODE_STREAM HAVE_SYS_ERRLIST HAVE_SIGSETJMP RETSIGTYPE SIGNAL_RETURN HELP_DIR RC_DIR DOCDIRS CURRENT_VERSION LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -869,7 +869,7 @@ --disable-cookie disable cookie --disable-digest-auth disable digest auth --disable-nntp disable NNTP - --enable-gopher enable GOPHER + --disable-gopher disable GOPHER --disable-dict disable dictionary lookup (see README.dict) --disable-help-cgi disable help cgi --disable-external-uri-loader disable external URI loader @@ -892,6 +892,7 @@ --with-migemo=MIGEMO_COMMAND migemo command --with-editor=EDITOR default editor (/usr/bin/vi) --with-mailer=MAILER default mailer (/usr/bin/mail) + --with-telnet=TELNET default telnet client (/usr/bin/telnet) --with-browser=BROWSER default browser (/usr/bin/mozilla) --with-ssl=PREFIX support https protocol --with-termlib=LIBS terminal library @@ -5490,7 +5491,7 @@ enableval="$enable_gopher" else - enable_gopher="no" + enable_gopher="yes" fi; test x"$enable_gopher" = xyes && cat >>confdefs.h <<\_ACEOF #define USE_GOPHER 1 @@ -5620,6 +5621,22 @@ _ACEOF +w3m_telnet="/usr/bin/telnet" +echo "$as_me:$LINENO: checking which telnet client is used by default" >&5 +echo $ECHO_N "checking which telnet client is used by default... $ECHO_C" >&6 + +# Check whether --with-telnet or --without-telnet was given. +if test "${with_telnet+set}" = set; then + withval="$with_telnet" + w3m_telnet="$with_telnet" +fi; +echo "$as_me:$LINENO: result: $w3m_telnet" >&5 +echo "${ECHO_T}$w3m_telnet" >&6 +cat >>confdefs.h <<_ACEOF +#define DEF_TELNET "$w3m_telnet" +_ACEOF + + w3m_browser="/usr/bin/mozilla" echo "$as_me:$LINENO: checking which external browser is used by default" >&5 echo $ECHO_N "checking which external browser is used by default... $ECHO_C" >&6 diff -uE -x '*.o' w3m-0.5.1/configure.in les_w3m-0.5.1/configure.in --- w3m-0.5.1/configure.in 2004-04-28 14:19:25.000000000 -0400 +++ les_w3m-0.5.1/configure.in 2004-08-23 00:20:08.000000000 -0400 @@ -80,6 +80,7 @@ AC_W3M_MIGEMO AC_W3M_EDITOR AC_W3M_MAILER +AC_W3M_TELNET AC_W3M_EXT_BROWSER dnl Checks for ext libs diff -uE -x '*.o' w3m-0.5.1/display.c les_w3m-0.5.1/display.c --- w3m-0.5.1/display.c 2003-09-26 13:59:51.000000000 -0400 +++ les_w3m-0.5.1/display.c 2004-08-21 21:38:33.000000000 -0400 @@ -18,6 +18,8 @@ #define EFFECT_ACTIVE_END effect_active_end() #define EFFECT_VISITED_START effect_visited_start() #define EFFECT_VISITED_END effect_visited_end() +#define EFFECT_ITALIC_START effect_italic_start() +#define EFFECT_ITALIC_END effect_italic_end() #define EFFECT_MARK_START effect_mark_start() #define EFFECT_MARK_END effect_mark_end() @@ -38,6 +40,7 @@ #define EFFECT_FORM_START_C setfcolor(form_color) #define EFFECT_ACTIVE_START_C (setfcolor(active_color), underline()) #define EFFECT_VISITED_START_C setfcolor(visited_color) +#define EFFECT_ITALIC_START_C setfcolor(italic_color) #ifdef USE_BG_COLOR #define EFFECT_MARK_START_C setbcolor(mark_color) #else @@ -49,6 +52,7 @@ #define EFFECT_FORM_END_C setfcolor(basic_color) #define EFFECT_ACTIVE_END_C (setfcolor(basic_color), underlineend()) #define EFFECT_VISITED_END_C setfcolor(basic_color) +#define EFFECT_ITALIC_END_C setfcolor(basic_color) #ifdef USE_BG_COLOR #define EFFECT_MARK_END_C setbcolor(bg_color) #else @@ -67,6 +71,8 @@ #define EFFECT_ACTIVE_END_M boldend() #define EFFECT_VISITED_START_M /**/ #define EFFECT_VISITED_END_M /**/ +#define EFFECT_ITALIC_START_M /**/ +#define EFFECT_ITALIC_END_M /**/ #define EFFECT_MARK_START_M standout() #define EFFECT_MARK_END_M standend() #define define_effect(name_start,name_end,color_start,color_end,mono_start,mono_end) \ @@ -142,6 +148,30 @@ } } +static void +EFFECT_ITALIC_START +{ + if (useItalicColor) { + if (useColor) { + EFFECT_ITALIC_START_C; + } else { + EFFECT_ITALIC_START_M; + } + } +} + +static void +EFFECT_ITALIC_END +{ + if (useItalicColor) { + if (useColor) { + EFFECT_ITALIC_END_C; + } else { + EFFECT_ITALIC_END_M; + } + } +} + #else /* not USE_COLOR */ #define EFFECT_ANCHOR_START underline() @@ -154,6 +184,8 @@ #define EFFECT_ACTIVE_END boldend() #define EFFECT_VISITED_START /**/ #define EFFECT_VISITED_END /**/ +#define EFFECT_ITALIC_START /**/ +#define EFFECT_ITALIC_END /**/ #define EFFECT_MARK_START standout() #define EFFECT_MARK_END standend() #endif /* not USE_COLOR */ @@ -206,7 +238,7 @@ static int ulmode = 0, somode = 0, bomode = 0; static int anch_mode = 0, emph_mode = 0, imag_mode = 0, form_mode = 0, - active_mode = 0, visited_mode = 0, mark_mode = 0, graph_mode = 0; + active_mode = 0, visited_mode = 0, italic_mode = 0, mark_mode = 0, graph_mode = 0; #ifdef USE_ANSI_COLOR static Linecolor color_mode = 0; #endif @@ -797,6 +829,10 @@ visited_mode = FALSE; EFFECT_VISITED_END; } + if (italic_mode) { + italic_mode = FALSE; + EFFECT_ITALIC_END; + } if (active_mode) { active_mode = FALSE; EFFECT_ACTIVE_END; @@ -999,6 +1035,10 @@ visited_mode = FALSE; EFFECT_VISITED_END; } + if (italic_mode) { + italic_mode = FALSE; + EFFECT_ITALIC_END; + } if (active_mode) { active_mode = FALSE; EFFECT_ACTIVE_END; @@ -1040,9 +1080,10 @@ do_effect2(PE_STAND, somode, standout(), standend()); do_effect2(PE_BOLD, bomode, bold(), boldend()); do_effect2(PE_EMPH, emph_mode, bold(), boldend()); - do_effect2(PE_ANCHOR, anch_mode, EFFECT_ANCHOR_START, EFFECT_ANCHOR_END); + do_effect2(PE_ITALIC, italic_mode, EFFECT_ITALIC_START, EFFECT_ITALIC_END); do_effect2(PE_IMAGE, imag_mode, EFFECT_IMAGE_START, EFFECT_IMAGE_END); do_effect2(PE_FORM, form_mode, EFFECT_FORM_START, EFFECT_FORM_END); + do_effect2(PE_ANCHOR, anch_mode, EFFECT_ANCHOR_START, EFFECT_ANCHOR_END); do_effect2(PE_VISITED, visited_mode, EFFECT_VISITED_START, EFFECT_VISITED_END); do_effect2(PE_ACTIVE, active_mode, EFFECT_ACTIVE_START, EFFECT_ACTIVE_END); @@ -1057,9 +1098,10 @@ do_effect1(PE_STAND, somode, standout(), standend()); do_effect1(PE_BOLD, bomode, bold(), boldend()); do_effect1(PE_EMPH, emph_mode, bold(), boldend()); - do_effect1(PE_ANCHOR, anch_mode, EFFECT_ANCHOR_START, EFFECT_ANCHOR_END); + do_effect1(PE_ITALIC, italic_mode, EFFECT_ITALIC_START, EFFECT_ITALIC_END); do_effect1(PE_IMAGE, imag_mode, EFFECT_IMAGE_START, EFFECT_IMAGE_END); do_effect1(PE_FORM, form_mode, EFFECT_FORM_START, EFFECT_FORM_END); + do_effect1(PE_ANCHOR, anch_mode, EFFECT_ANCHOR_START, EFFECT_ANCHOR_END); do_effect1(PE_VISITED, visited_mode, EFFECT_VISITED_START, EFFECT_VISITED_END); do_effect1(PE_ACTIVE, active_mode, EFFECT_ACTIVE_START, EFFECT_ACTIVE_END); diff -uE -x '*.o' w3m-0.5.1/file.c les_w3m-0.5.1/file.c --- w3m-0.5.1/file.c 2004-04-16 14:47:19.000000000 -0400 +++ les_w3m-0.5.1/file.c 2004-09-29 13:31:06.000000000 -0400 @@ -1813,9 +1813,14 @@ else if (pu.scheme == SCM_GOPHER) { switch (*pu.file) { case '0': + case '6': t = "text/plain"; break; + case '4': + t = "application/mac-binhex40"; + break; case '1': + case '7': case 'm': page = loadGopherDir(&f, &pu, &charset); t = "gopher:directory"; @@ -1830,6 +1835,12 @@ case 'h': t = "text/html"; break; + case 'P': + t = "application/pdf"; + break; + default: + t = "application/octet-stream"; + break; } } #endif /* USE_GOPHER */ @@ -2302,6 +2313,7 @@ obuf->bp.img_alt = obuf->img_alt; obuf->bp.in_bold = obuf->in_bold; obuf->bp.in_under = obuf->in_under; + obuf->bp.in_italic = obuf->in_italic; obuf->bp.nobr_level = obuf->nobr_level; obuf->bp.prev_ctype = obuf->prev_ctype; obuf->bp.init_flag = 0; @@ -2316,6 +2328,7 @@ obuf->img_alt = obuf->bp.img_alt; obuf->in_bold = obuf->bp.in_bold; obuf->in_under = obuf->bp.in_under; + obuf->in_italic = obuf->bp.in_italic; obuf->prev_ctype = obuf->bp.prev_ctype; obuf->pos = obuf->bp.pos; obuf->top_margin = obuf->bp.top_margin; @@ -2337,6 +2350,7 @@ case HTML_IMG_ALT: case HTML_B: case HTML_U: + case HTML_I: push_link(obuf->tag_stack[i]->cmd, obuf->line->length, obuf->pos); break; } @@ -2551,7 +2565,7 @@ FILE *f = h_env->f; Str line = obuf->line, pass = NULL; char *hidden_anchor = NULL, *hidden_img = NULL, *hidden_bold = NULL, - *hidden_under = NULL, *hidden = NULL; + *hidden_under = NULL, *hidden_italic = NULL, *hidden = NULL; #ifdef DEBUG if (w3m_debug) { @@ -2594,6 +2608,12 @@ if (!hidden || hidden_under < hidden) hidden = hidden_under; } + } + if (obuf->in_italic) { + if ((hidden_italic = has_hidden_link(obuf, HTML_I)) != NULL) { + if (!hidden || hidden_italic < hidden) + hidden = hidden_italic; + } } if (hidden) { pass = Strnew_charp(hidden); @@ -2620,6 +2640,8 @@ Strcat_charp(line, ""); if (obuf->in_under && !hidden_under) Strcat_charp(line, ""); + if (obuf->in_italic && !hidden_italic) + Strcat_charp(line, ""); if (obuf->top_margin > 0) { int i; @@ -2824,6 +2846,8 @@ push_tag(obuf, "", HTML_B); if (!hidden_under && obuf->in_under) push_tag(obuf, "", HTML_U); + if (!hidden_italic && obuf->in_italic) + push_tag(obuf, "", HTML_I); } void @@ -2936,6 +2960,8 @@ push_tag(obuf, "", HTML_N_B); if (obuf->in_under) push_tag(obuf, "", HTML_N_U); + if (obuf->in_italic) + push_tag(obuf, "", HTML_N_I); bzero(obuf->fontstat, FONTSTAT_SIZE); } @@ -2951,6 +2977,8 @@ push_tag(obuf, "", HTML_B); if (obuf->in_under) push_tag(obuf, "", HTML_U); + if (obuf->in_italic) + push_tag(obuf, "", HTML_I); } static Str @@ -3222,7 +3250,9 @@ } else #endif + Strcat_char(tmp, '['); Strcat_charp(tmp, html_quote(q)); + Strcat_char(tmp, ']'); goto img_end; } if (w > 0 && i > 0) { @@ -4118,6 +4148,20 @@ return 0; } return 1; + case HTML_I: + obuf->in_italic++; + if (obuf->in_italic > 1) + return 1; + return 0; + case HTML_N_I: + if (obuf->in_italic == 1 && close_effect0(obuf, HTML_I)) + obuf->in_italic = 0; + if (obuf->in_italic > 0) { + obuf->in_italic--; + if (obuf->in_italic == 0) + return 0; + } + return 1; case HTML_EM: HTMLlineproc1("", h_env); return 1; @@ -5112,6 +5156,12 @@ case HTML_N_U: effect &= ~PE_UNDER; break; + case HTML_I: + effect |= PE_ITALIC; + break; + case HTML_N_I: + effect &= ~PE_ITALIC; + break; case HTML_A: if (renderFrameSet && parsedtag_get_value(tag, ATTR_FRAMENAME, &p)) { @@ -6348,6 +6398,7 @@ obuf->img_alt = 0; obuf->in_bold = 0; obuf->in_under = 0; + obuf->in_italic = 0; obuf->prev_ctype = PC_ASCII; obuf->tag_sp = 0; obuf->fontstat_sp = 0; @@ -6386,6 +6437,10 @@ push_tag(obuf, "", HTML_N_U); obuf->in_under = 0; } + if (obuf->in_italic) { + push_tag(obuf, "", HTML_N_I); + obuf->in_italic = 0; + } if (obuf->flag & RB_INTXTA) HTMLlineproc1("", h_env); /* for unbalanced select tag */ @@ -6705,8 +6760,9 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset) { Str volatile tmp; - Str lbuf, name, file, host, port; + Str lbuf, name, file, host, port, type; char *volatile p, *volatile q; + int is_info = 0; MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL; #ifdef USE_M17N wc_ces doc_charset = DocumentCharset; @@ -6719,7 +6775,7 @@ charset, doc_charset); q = html_quote(tmp->ptr); tmp = Strnew_m_charp("\n\n\n", q, - "\n\n\n

Index of ", q, + "\n\n\n

Gopher Menu of ", q, "

\n\n", NULL); if (SETJMP(AbortLoading) != 0) @@ -6734,6 +6790,9 @@ break; lbuf = convertLine(uf, lbuf, HTML_MODE, charset, doc_charset); p = lbuf->ptr; + q = p; + q++; + type = Strnew_charp_n(p, q - p); for (q = p; *q && *q != '\t'; q++) ; name = Strnew_charp_n(p, q - p); if (!*q) @@ -6752,34 +6811,84 @@ for (q = p; *q && *q != '\t' && *q != '\r' && *q != '\n'; q++) ; port = Strnew_charp_n(p, q - p); - switch (name->ptr[0]) { + is_info = 0; + switch (type->ptr[0]) { case '0': - p = "[text file]"; + p = "(Text)"; break; case '1': - p = "[directory]"; + p = "(Directory)"; + break; + case '3': + p = "(ERROR)"; + is_info = 1; + break; + case '4': + p = "(BINHEX)"; + break; + case '5': + case '9': + p = "(Binary)"; + break; + case '6': + p = "(UU Encoded)"; + break; + case '7': + p = "(Search)"; + break; + case '8': + p = "(Telnet)"; break; case 'm': - p = "[message]"; + p = "(Message)"; break; case 's': - p = "[sound]"; + p = "(Sound)"; break; case 'g': - p = "[gif]"; + p = "(GIF)"; break; case 'h': - p = "[HTML]"; + p = "(HTML)"; + break; + case 'I': + p = "(Image)"; + break; + case 'i': + p = " "; + is_info = 1; + break; + case 'P': + p = "(PDF)"; + break; + case ';': + p = "(Movie)"; break; default: - p = "[unsupported]"; + p = "(Unknown)"; break; } - q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr, - "/", file->ptr, NULL)->ptr; - Strcat_m_charp(tmp, "", p, html_quote(name->ptr + 1), "\n", NULL); + Strcat_m_charp(tmp,"\n", NULL); } gopher_end: diff -uE -x '*.o' w3m-0.5.1/fm.h les_w3m-0.5.1/fm.h --- w3m-0.5.1/fm.h 2004-04-16 14:47:19.000000000 -0400 +++ les_w3m-0.5.1/fm.h 2004-09-29 13:59:11.000000000 -0400 @@ -153,7 +153,7 @@ #define PC_SYMBOL 0x8000 /* Effect ( standout/underline ) */ -#define P_EFFECT 0x40ff +#define P_EFFECT 0x140FF /* 0x40ff */ #define PE_NORMAL 0x00 #define PE_MARK 0x01 #define PE_UNDER 0x02 @@ -165,6 +165,7 @@ #define PE_FORM 0x40 #define PE_ACTIVE 0x80 #define PE_VISITED 0x4000 +#define PE_ITALIC 0x010000 #define CharType(c) ((c)&P_CHARTYPE) #define CharEffect(c) ((c)&(P_EFFECT|PC_SYMBOL)) @@ -291,7 +292,7 @@ * Types. */ -typedef unsigned short Lineprop; +typedef unsigned long Lineprop; /* Lorance: changed to long. */ #ifdef USE_ANSI_COLOR typedef unsigned char Linecolor; #endif @@ -535,7 +536,7 @@ #define FONT_STACK_SIZE 5 -#define FONTSTAT_SIZE 4 +#define FONTSTAT_SIZE 5 #define _INIT_BUFFER_WIDTH (COLS - (showLineNum ? 6 : 1)) #define INIT_BUFFER_WIDTH ((_INIT_BUFFER_WIDTH > 0) ? _INIT_BUFFER_WIDTH : 0) @@ -584,6 +585,7 @@ #define in_bold fontstat[0] #define in_under fontstat[1] #define in_stand fontstat[2] +#define in_italic fontstat[3] #define RB_PRE 0x01 #define RB_SCRIPT 0x02 @@ -899,6 +901,8 @@ global int active_color init(6); /* cyan */ global int useVisitedColor init(FALSE); global int visited_color init(5); /* magenta */ +global int useItalicColor init(TRUE); +global int italic_color init(3); /* yellow */ #endif /* USE_COLOR */ global int confirm_on_quit init(TRUE); #ifdef USE_MARK @@ -932,6 +936,7 @@ #else global char *Mailer init(DEF_MAILER); #endif +global char *Telnet init(DEF_TELNET); global char *ExtBrowser init(DEF_EXT_BROWSER); global char *ExtBrowser2 init(NULL); global char *ExtBrowser3 init(NULL); diff -uE -x '*.o' w3m-0.5.1/html.c les_w3m-0.5.1/html.c --- w3m-0.5.1/html.c 2003-09-26 16:48:21.000000000 -0400 +++ les_w3m-0.5.1/html.c 2004-08-18 20:37:38.000000000 -0400 @@ -259,6 +259,10 @@ {"/internal", NULL, 0, TFLG_INT | TFLG_END}, /* 132 HTML_N_INTERNAL */ {"div_int", ALST_P, MAXA_P, TFLG_INT}, /* 133 HTML_DIV_INT */ {"/div_int", NULL, 0, TFLG_INT | TFLG_END}, /* 134 HTML_N_DIV_INT */ + + /* Italics*/ + {"i", NULL, 0, 0}, /* 135 HTML_I */ + {"/i", NULL, 0, TFLG_END}, /* 136 HTML_N_I */ }; TagAttrInfo AttrMAP[MAX_TAGATTR] = { diff -uE -x '*.o' w3m-0.5.1/html.h les_w3m-0.5.1/html.h --- w3m-0.5.1/html.h 2003-10-20 12:41:56.000000000 -0400 +++ les_w3m-0.5.1/html.h 2004-08-22 17:27:32.000000000 -0400 @@ -225,7 +225,11 @@ #define HTML_DIV_INT 133 #define HTML_N_DIV_INT 134 -#define MAX_HTMLTAG 135 +/* Italics*/ +#define HTML_I 135 +#define HTML_N_I 136 + +#define MAX_HTMLTAG 137 /* Tag attribute */ @@ -369,8 +373,9 @@ #define SCM_NEWS_GROUP 10 #define SCM_DATA 11 #define SCM_MAILTO 12 +#define SCM_TELNET 13 #ifdef USE_SSL -#define SCM_HTTPS 13 +#define SCM_HTTPS 14 #endif /* USE_SSL */ #endif /* _HTML_H */ diff -uE -x '*.o' w3m-0.5.1/main.c les_w3m-0.5.1/main.c --- w3m-0.5.1/main.c 2004-04-04 12:47:20.000000000 -0400 +++ les_w3m-0.5.1/main.c 2004-08-23 00:43:25.000000000 -0400 @@ -2933,6 +2933,26 @@ pushHashHist(URLHist, a->url); return; } + if (!strncasecmp(a->url, "telnet:", 7)) { + /* invoke external telnet program */ + if (!non_null(Telnet)) { + /* FIXME: gettextize? */ + disp_err_message("no telnet program is specified", TRUE); + return; + } + if (!non_null(u.host)) { + /* FIXME: gettextize? */ + disp_err_message("invalid telnet URI, missing host", TRUE); + return; + } + fmTerm(); + system(Sprintf("%s %s %d", Telnet, shell_quote(file_unquote(u.host)), + u.port)->ptr); + fmInit(); + displayBuffer(Currentbuf, B_FORCE_REDRAW); + pushHashHist(URLHist, a->url); + return; + } #if 0 else if (!strncasecmp(a->url, "news:", 5) && strchr(a->url, '@') == NULL) { /* news:newsgroup is not supported */ diff -uE -x '*.o' w3m-0.5.1/rc.c les_w3m-0.5.1/rc.c --- w3m-0.5.1/rc.c 2004-04-22 12:34:08.000000000 -0400 +++ les_w3m-0.5.1/rc.c 2004-08-22 17:06:20.000000000 -0400 @@ -93,6 +93,8 @@ #define CMT_A_COLOR N_("Color of anchor") #define CMT_I_COLOR N_("Color of image link") #define CMT_F_COLOR N_("Color of form") +#define CMT_ITALICS_STYLE N_("Enable coloring of Italics text") +#define CMT_T_COLOR N_("Color of italics text") #define CMT_ACTIVE_STYLE N_("Enable coloring of active link") #define CMT_C_COLOR N_("Color of currently active link") #define CMT_VISITED_ANCHOR N_("Use visited link color") @@ -137,6 +139,7 @@ #define CMT_URIMETHODMAP N_("List of urimethodmap files") #define CMT_EDITOR N_("Editor") #define CMT_MAILER N_("Mailer") +#define CMT_TELNET N_("Telnet Program") #define CMT_EXTBRZ N_("External Browser") #define CMT_EXTBRZ2 N_("Second External Browser") #define CMT_EXTBRZ3 N_("Third External Browser") @@ -403,6 +406,10 @@ (void *)colorstr}, {"form_color", P_COLOR, PI_SEL_C, (void *)&form_color, CMT_F_COLOR, (void *)colorstr}, + {"italics_style", P_INT, PI_ONOFF, (void *)&useItalicColor, + CMT_ITALICS_STYLE, NULL}, + {"italic_color", P_COLOR, PI_SEL_C, (void *)&italic_color, CMT_T_COLOR, + (void *)colorstr}, #ifdef USE_BG_COLOR {"mark_color", P_COLOR, PI_SEL_C, (void *)&mark_color, CMT_MARK_COLOR, (void *)colorstr}, @@ -517,6 +524,7 @@ #endif {"editor", P_STRING, PI_TEXT, (void *)&Editor, CMT_EDITOR, NULL}, {"mailer", P_STRING, PI_TEXT, (void *)&Mailer, CMT_MAILER, NULL}, + {"telnet", P_STRING, PI_TEXT, (void *)&Telnet, CMT_TELNET, NULL}, {"extbrowser", P_STRING, PI_TEXT, (void *)&ExtBrowser, CMT_EXTBRZ, NULL}, {"extbrowser2", P_STRING, PI_TEXT, (void *)&ExtBrowser2, CMT_EXTBRZ2, NULL}, diff -uE -x '*.o' w3m-0.5.1/tagtable.tab les_w3m-0.5.1/tagtable.tab --- w3m-0.5.1/tagtable.tab 2003-09-22 17:02:22.000000000 -0400 +++ les_w3m-0.5.1/tagtable.tab 2004-08-18 22:27:05.000000000 -0400 @@ -21,8 +21,8 @@ br HTML_BR b HTML_B /b HTML_N_B -i HTML_NOP -/i HTML_NOP +i HTML_I +/i HTML_N_I tt HTML_NOP /tt HTML_NOP ul HTML_UL diff -uE -x '*.o' w3m-0.5.1/url.c les_w3m-0.5.1/url.c --- w3m-0.5.1/url.c 2004-04-16 14:47:19.000000000 -0400 +++ les_w3m-0.5.1/url.c 2004-08-24 12:40:19.000000000 -0400 @@ -62,6 +62,7 @@ 119, /* news group */ 0, /* data - not defined */ 0, /* mailto - not defined */ + 23, /* telnet */ #ifdef USE_SSL 443, /* https */ #endif /* USE_SSL */ @@ -82,6 +83,7 @@ #ifndef USE_W3MMAILER {"mailto", SCM_MAILTO}, #endif + {"telnet", SCM_TELNET}, #ifdef USE_SSL {"https", SCM_HTTPS}, #endif /* USE_SSL */ @@ -864,8 +866,6 @@ if (p_url->scheme == SCM_GOPHER) { if (*q == '/') q++; - if (*q && q[0] != '/' && q[1] != '/' && q[2] == '/') - q++; } #endif /* USE_GOPHER */ if (*p == '/') @@ -1150,7 +1150,7 @@ Str tmp; static char *scheme_str[] = { "http", "gopher", "ftp", "ftp", "file", "file", "exec", "nntp", "nntp", - "news", "news", "data", "mailto", + "news", "news", "data", "mailto", "telnet", #ifdef USE_SSL "https", #endif /* USE_SSL */ @@ -1186,7 +1186,14 @@ return tmp; } #endif + if (pu->scheme == SCM_TELNET) { + Strcat_m_charp(tmp, "//", pu->host, NULL); + if (23 != pu->port) + Strcat_charp(tmp, Sprintf(":%d",pu->port)->ptr); + return tmp; + } if (pu->scheme == SCM_DATA) { + Strcat_charp(tmp, "//"); Strcat_charp(tmp, pu->file); return tmp; } @@ -1750,7 +1757,19 @@ return uf; if (pu->file == NULL) pu->file = "1"; - tmp = Strnew_charp(file_unquote(pu->file)); + p = pu->file; + if ((p[0] >= '0' && p[0] <= '9') || p[0] == 'm' || p[0] == 'P' || + p[0] == 'g' || p[0] == 'h' || p[0] == 'I' || p[0] == 'i') + p++; + tmp = Strnew_charp(file_unquote(p)); + if (pu->query) { + p = pu->query; + if (strstr(pu->query,"gopher=")) { + for (p; *p && *p != '='; p++) ; + p++; + } + Strcat_m_charp(tmp, "?", file_unquote(p), NULL); + } Strcat_char(tmp, '\n'); } write(sock, tmp->ptr, tmp->length);
", p, "", NULL); + if (!is_info) { + if (type->ptr[0] == '8') + q = Strnew_m_charp("telnet://", host->ptr, ":", port->ptr, + NULL)->ptr; + else + q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr, + "/", type->ptr, file->ptr, NULL)->ptr; + if (type->ptr[0] == '7') + Strcat_m_charp(tmp, "
", html_quote(name->ptr + 1), + " ", + "
\n", NULL); + else + Strcat_m_charp(tmp, "", html_quote(name->ptr + 1), "", NULL); + } else + Strcat_m_charp(tmp, html_quote(name->ptr + 1), NULL); + Strcat_m_charp(tmp, "