apply multiple patches on w3m-dev(-en) ML since Jun 2005 to Jan 2006.

This commit is contained in:
Dai Sato
2006-04-05 14:18:53 +00:00
parent 77d7685295
commit bc7f9c9026
33 changed files with 1000 additions and 86 deletions
+20 -1
View File
@@ -1,3 +1,22 @@
2006-04-05 Dai Sato <satodai@w3m.jp>
* [w3m-dev-en 01060] Some patches
* fix many problems with w3m 0.5.1.
* http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev-en/200511.month/1060.html
* [w3m-dev 04150] vi_prec_num
* main.c: fixed the switching on/off of vi-like prefix.
* [w3m-dev 04151] Re: w3m -remote
* acinclude.m4, aclocal.m4, config.h.in, configure, configure.ac, main.c, proto.h, terms.c:
* added "-remote" option to receive commands from external processes.
* [w3m-dev 04152] [PATCH] Add more explanation for the usage of the option setting panel.
* doc/FAQ.html, doc-jp/FAQ.html, doc-jp/MANUAL.html: added some explanations.
* [w3m-dev 04153] NEXT_LINK error
* anchor.c, file.c, fm.h: fixed behavior of NEXT_LINK.
* [w3m-dev 04154] Unclosed textarea in table
* table.c: added handling </table> tag in textarea.
* [w3m-dev 04155] w3m mingw patch
* config.h, configure.ac, etc.c, file.c, ftp.c, indep.c, istream.c, local.c, main.c, rc.c, terms.c, url.c:
* to compile on MingW. can't handle basic certification.
2006-02-10 Dai Sato <satodai@w3m.jp> 2006-02-10 Dai Sato <satodai@w3m.jp>
* http://dog.w3m.jp/bbs/spool/until200602.html#20060210153135@keijiwan * http://dog.w3m.jp/bbs/spool/until200602.html#20060210153135@keijiwan
@@ -8653,4 +8672,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1 * release-0-2-1
* import w3m-0.2.1 * import w3m-0.2.1
$Id: ChangeLog,v 1.948 2006/02/10 12:52:23 inu Exp $ $Id: ChangeLog,v 1.949 2006/04/05 14:18:53 inu Exp $
+36
View File
@@ -70,6 +70,18 @@ test x"$enable_mouse" = xyes && AC_DEFINE(USE_MOUSE)
AC_MSG_RESULT($enable_mouse)]) AC_MSG_RESULT($enable_mouse)])
# #
# ---------------------------------------------------------------- # ----------------------------------------------------------------
# AC_W3M_REMOTE
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_REMOTE],
[AC_SUBST(USE_MOUSE)
AC_MSG_CHECKING(if remote operation enabled)
AC_ARG_ENABLE(remote,
[ --disable-remote disable remote operation],,
[enable_remote="yes"])
test x"$enable_remote" = xyes && AC_DEFINE(USE_REMOTE)
AC_MSG_RESULT($enable_remote)])
#
# ----------------------------------------------------------------
# AC_W3M_COOKIE # AC_W3M_COOKIE
# ---------------------------------------------------------------- # ----------------------------------------------------------------
AC_DEFUN([AC_W3M_COOKIE], AC_DEFUN([AC_W3M_COOKIE],
@@ -877,3 +889,27 @@ AC_DEFUN([AC_W3M_SIGNAL],
else else
AC_DEFINE(SIGNAL_RETURN,return 0) AC_DEFINE(SIGNAL_RETURN,return 0)
fi]) fi])
#
# ----------------------------------------------------------------
# AC_W3M_SO_PEERCRED
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_SO_PEERCRED],
[AC_SUBST(HAVE_SO_PEERCRED)
AC_MSG_CHECKING(for SO_PEERCRED)
AC_TRY_COMPILE(
[#include <sys/socket.h>],
[ int sopt = SO_PEERCRED;
exit(sopt);],
[have_so_peercred="yes"; AC_DEFINE(HAVE_SO_PEERCRED)],
[have_so_peercred="no"])
AC_MSG_RESULT($have_so_peercred)])
#
# ----------------------------------------------------------------
# AC_W3M_GETPEEREID
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_GETPEEREID],
[AC_SUBST(HAVE_GETPEEREID)
AC_MSG_CHECKING(for getpeereid)
AC_CHECK_FUNC(getpeereid,
[have_getpeereid="yes"; AC_DEFINE(HAVE_GETPEEREID)],
[have_getpeereid="no"])])
Vendored
+37
View File
@@ -82,6 +82,18 @@ test x"$enable_mouse" = xyes && AC_DEFINE(USE_MOUSE)
AC_MSG_RESULT($enable_mouse)]) AC_MSG_RESULT($enable_mouse)])
# #
# ---------------------------------------------------------------- # ----------------------------------------------------------------
# AC_W3M_REMOTE
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_REMOTE],
[AC_SUBST(USE_MOUSE)
AC_MSG_CHECKING(if remote operation enabled)
AC_ARG_ENABLE(remote,
[ --disable-remote disable remote operation],,
[enable_remote="yes"])
test x"$enable_remote" = xyes && AC_DEFINE(USE_REMOTE)
AC_MSG_RESULT($enable_remote)])
#
# ----------------------------------------------------------------
# AC_W3M_COOKIE # AC_W3M_COOKIE
# ---------------------------------------------------------------- # ----------------------------------------------------------------
AC_DEFUN([AC_W3M_COOKIE], AC_DEFUN([AC_W3M_COOKIE],
@@ -890,6 +902,31 @@ AC_DEFUN([AC_W3M_SIGNAL],
AC_DEFINE(SIGNAL_RETURN,return 0) AC_DEFINE(SIGNAL_RETURN,return 0)
fi]) fi])
#
# ----------------------------------------------------------------
# AC_W3M_SO_PEERCRED
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_SO_PEERCRED],
[AC_SUBST(HAVE_SO_PEERCRED)
AC_MSG_CHECKING(for SO_PEERCRED)
AC_TRY_COMPILE(
[#include <sys/socket.h>],
[ int sopt = SO_PEERCRED;
exit(sopt);],
[have_so_peercred="yes"; AC_DEFINE(HAVE_SO_PEERCRED)],
[have_so_peercred="no"])
AC_MSG_RESULT($have_so_peercred)])
#
# ----------------------------------------------------------------
# AC_W3M_GETPEEREID
# ----------------------------------------------------------------
AC_DEFUN([AC_W3M_GETPEEREID],
[AC_SUBST(HAVE_GETPEEREID)
AC_MSG_CHECKING(for getpeereid)
AC_CHECK_FUNC(getpeereid,
[have_getpeereid="yes"; AC_DEFINE(HAVE_GETPEEREID)],
[have_getpeereid="no"])])
# lib-prefix.m4 serial 3 (gettext-0.13) # lib-prefix.m4 serial 3 (gettext-0.13)
dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
+5 -2
View File
@@ -1,4 +1,4 @@
/* $Id: anchor.c,v 1.30 2003/09/26 17:59:51 ukai Exp $ */ /* $Id: anchor.c,v 1.31 2006/04/05 14:18:53 inu Exp $ */
#include "fm.h" #include "fm.h"
#include "myctype.h" #include "myctype.h"
#include "regex.h" #include "regex.h"
@@ -175,6 +175,8 @@ searchAnchor(AnchorList *al, char *str)
return NULL; return NULL;
for (i = 0; i < al->nanchor; i++) { for (i = 0; i < al->nanchor; i++) {
a = &al->anchors[i]; a = &al->anchors[i];
if (a->hseq < 0)
continue;
if (!strcmp(a->url, str)) if (!strcmp(a->url, str))
return a; return a;
} }
@@ -471,6 +473,7 @@ putHmarker(HmarkerList *ml, int line, int pos, int seq)
} }
ml->marks[seq].line = line; ml->marks[seq].line = line;
ml->marks[seq].pos = pos; ml->marks[seq].pos = pos;
ml->marks[seq].invalid = 0;
return ml; return ml;
} }
@@ -778,7 +781,7 @@ link_list_panel(Buffer *buf)
al = buf->href; al = buf->href;
for (i = 0; i < al->nanchor; i++) { for (i = 0; i < al->nanchor; i++) {
a = &al->anchors[i]; a = &al->anchors[i];
if (a->slave) if (a->hseq < 0 || a->slave)
continue; continue;
parseURL2(a->url, &pu, baseURL(buf)); parseURL2(a->url, &pu, baseURL(buf));
p = parsedURL2Str(&pu)->ptr; p = parsedURL2Str(&pu)->ptr;
+17
View File
@@ -53,6 +53,7 @@
#undef USE_MIGEMO #undef USE_MIGEMO
#define USE_MARK #define USE_MARK
#undef USE_MOUSE #undef USE_MOUSE
#undef USE_REMOTE
#undef USE_GPM #undef USE_GPM
#undef USE_SYSMOUSE #undef USE_SYSMOUSE
#undef USE_MENU #undef USE_MENU
@@ -143,6 +144,8 @@ typedef long clen_t;
#undef HAVE_SETPGRP #undef HAVE_SETPGRP
#undef HAVE_SETLOCALE #undef HAVE_SETLOCALE
#undef HAVE_LANGINFO_CODESET #undef HAVE_LANGINFO_CODESET
#undef HAVE_SO_PEERCRED
#undef HAVE_GETPEEREID
#undef SETPGRP_VOID #undef SETPGRP_VOID
#ifdef HAVE_SETPGRP #ifdef HAVE_SETPGRP
@@ -166,9 +169,15 @@ typedef RETSIGTYPE MySignalHandler;
#define SIGNAL_RETURN @SIGNAL_RETURN@ #define SIGNAL_RETURN @SIGNAL_RETURN@
#ifdef HAVE_SIGSETJMP #ifdef HAVE_SIGSETJMP
#ifdef __MINGW32_VERSION
# define SETJMP(env) setjmp(env)
# define LONGJMP(env,val) longjmp(env, val)
# define JMP_BUF jmp_buf
#else
# define SETJMP(env) sigsetjmp(env,1) # define SETJMP(env) sigsetjmp(env,1)
# define LONGJMP(env,val) siglongjmp(env,val) # define LONGJMP(env,val) siglongjmp(env,val)
# define JMP_BUF sigjmp_buf # define JMP_BUF sigjmp_buf
#endif /* __MINGW32_VERSION */
#else #else
# define SETJMP(env) setjmp(env) # define SETJMP(env) setjmp(env)
# define LONGJMP(env,val) longjmp(env) # define LONGJMP(env,val) longjmp(env)
@@ -233,4 +242,12 @@ typedef RETSIGTYPE MySignalHandler;
#define BUNZIP2_NAME "bunzip2" #define BUNZIP2_NAME "bunzip2"
#define INFLATE_NAME "inflate" #define INFLATE_NAME "inflate"
#ifdef __MINGW32_VERSION
#define SIGKILL SIGTERM
#define S_IXGRP 0
#define S_IXOTH 0
#define S_IRWXG 0
#define S_IRWXO 0
#endif /* __MINGW32_VERSION */
#endif /* CONFIG_H_SEEN */ #endif /* CONFIG_H_SEEN */
Vendored
+174 -1
View File
@@ -310,7 +310,7 @@ ac_includes_default="\
# include <unistd.h> # include <unistd.h>
#endif" #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_GTK2 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_GTK2 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 HAVE_SO_PEERCRED HAVE_GETPEEREID HELP_DIR RC_DIR DOCDIRS CURRENT_VERSION LIBOBJS LTLIBOBJS'
ac_subst_files='' ac_subst_files=''
# Initialize some variables set by options. # Initialize some variables set by options.
@@ -866,6 +866,7 @@ Optional Features:
--disable-mouse disable mouse operation --disable-mouse disable mouse operation
--disable-history disable URL history --disable-history disable URL history
--disable-alarm disable alarm --disable-alarm disable alarm
--disable-remote disable remote operation
--disable-cookie disable cookie --disable-cookie disable cookie
--disable-digest-auth disable digest auth --disable-digest-auth disable digest auth
--disable-nntp disable NNTP --disable-nntp disable NNTP
@@ -5502,6 +5503,22 @@ fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi fi
echo "$as_me:$LINENO: checking if remote operation enabled" >&5
echo $ECHO_N "checking if remote operation enabled... $ECHO_C" >&6
# Check whether --enable-remote or --disable-remote was given.
if test "${enable_remote+set}" = set; then
enableval="$enable_remote"
else
enable_remote="yes"
fi;
test x"$enable_remote" = xyes && cat >>confdefs.h <<\_ACEOF
#define USE_REMOTE 1
_ACEOF
echo "$as_me:$LINENO: result: $enable_remote" >&5
echo "${ECHO_T}$enable_remote" >&6
echo "$as_me:$LINENO: checking if cookie is enabled" >&5 echo "$as_me:$LINENO: checking if cookie is enabled" >&5
echo $ECHO_N "checking if cookie is enabled... $ECHO_C" >&6 echo $ECHO_N "checking if cookie is enabled... $ECHO_C" >&6
@@ -10256,6 +10273,160 @@ _ACEOF
fi fi
echo "$as_me:$LINENO: checking for SO_PEERCRED" >&5
echo $ECHO_N "checking for SO_PEERCRED... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <sys/socket.h>
int
main ()
{
int sopt = SO_PEERCRED;
exit(sopt);
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
have_so_peercred="yes"; cat >>confdefs.h <<\_ACEOF
#define HAVE_SO_PEERCRED 1
_ACEOF
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
have_so_peercred="no"
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $have_so_peercred" >&5
echo "${ECHO_T}$have_so_peercred" >&6
echo "$as_me:$LINENO: checking for getpeereid" >&5
echo $ECHO_N "checking for getpeereid... $ECHO_C" >&6
echo "$as_me:$LINENO: checking for getpeereid" >&5
echo $ECHO_N "checking for getpeereid... $ECHO_C" >&6
if test "${ac_cv_func_getpeereid+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Define getpeereid to an innocuous variant, in case <limits.h> declares getpeereid.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define getpeereid innocuous_getpeereid
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char getpeereid (); below.
Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
<limits.h> exists even on freestanding compilers. */
#ifdef __STDC__
# include <limits.h>
#else
# include <assert.h>
#endif
#undef getpeereid
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
{
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char getpeereid ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_getpeereid) || defined (__stub___getpeereid)
choke me
#else
char (*f) () = getpeereid;
#endif
#ifdef __cplusplus
}
#endif
int
main ()
{
return f != getpeereid;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_getpeereid=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_func_getpeereid=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_func_getpeereid" >&5
echo "${ECHO_T}$ac_cv_func_getpeereid" >&6
if test $ac_cv_func_getpeereid = yes; then
have_getpeereid="yes"; cat >>confdefs.h <<\_ACEOF
#define HAVE_GETPEEREID 1
_ACEOF
else
have_getpeereid="no"
fi
HELP_DIR="$datadir/$PACKAGE" HELP_DIR="$datadir/$PACKAGE"
cat >>confdefs.h <<\_ACEOF cat >>confdefs.h <<\_ACEOF
@@ -11042,6 +11213,8 @@ s,@HAVE_SYS_ERRLIST@,$HAVE_SYS_ERRLIST,;t t
s,@HAVE_SIGSETJMP@,$HAVE_SIGSETJMP,;t t s,@HAVE_SIGSETJMP@,$HAVE_SIGSETJMP,;t t
s,@RETSIGTYPE@,$RETSIGTYPE,;t t s,@RETSIGTYPE@,$RETSIGTYPE,;t t
s,@SIGNAL_RETURN@,$SIGNAL_RETURN,;t t s,@SIGNAL_RETURN@,$SIGNAL_RETURN,;t t
s,@HAVE_SO_PEERCRED@,$HAVE_SO_PEERCRED,;t t
s,@HAVE_GETPEEREID@,$HAVE_GETPEEREID,;t t
s,@HELP_DIR@,$HELP_DIR,;t t s,@HELP_DIR@,$HELP_DIR,;t t
s,@RC_DIR@,$RC_DIR,;t t s,@RC_DIR@,$RC_DIR,;t t
s,@DOCDIRS@,$DOCDIRS,;t t s,@DOCDIRS@,$DOCDIRS,;t t
+5 -2
View File
@@ -67,6 +67,7 @@ AC_W3M_MENU
AC_W3M_MOUSE AC_W3M_MOUSE
AC_W3M_HISTORY AC_W3M_HISTORY
AC_W3M_ALARM AC_W3M_ALARM
AC_W3M_REMOTE
AC_W3M_COOKIE AC_W3M_COOKIE
AC_W3M_DIGEST_AUTH AC_W3M_DIGEST_AUTH
@@ -83,7 +84,7 @@ AC_W3M_MAILER
AC_W3M_EXT_BROWSER AC_W3M_EXT_BROWSER
dnl Checks for ext libs dnl Checks for ext libs
for lib in bsd BSD 44bsd socket nsl dld dl for lib in bsd BSD 44bsd socket dld
do do
AC_W3M_EXTLIBS($lib) AC_W3M_EXTLIBS($lib)
done done
@@ -110,7 +111,7 @@ AC_DEFINE(AUXBIN_TARGETS, "$AUXBIN_TARGETS")
AC_SUBST(USE_BINMODE_STREAM) AC_SUBST(USE_BINMODE_STREAM)
case "$host_os" in case "$host_os" in
*cygwin*|*os2-emx*) *cygwin*|*os2-emx*|*mingw*)
AC_DEFINE(USE_BINMODE_STREAM) AC_DEFINE(USE_BINMODE_STREAM)
;; ;;
esac esac
@@ -152,6 +153,8 @@ AM_LANGINFO_CODESET
AC_W3M_SYS_ERRLIST AC_W3M_SYS_ERRLIST
AC_W3M_SIGSETJMP AC_W3M_SIGSETJMP
AC_W3M_SIGNAL AC_W3M_SIGNAL
AC_W3M_SO_PEERCRED
AC_W3M_GETPEEREID
AC_SUBST(HELP_DIR) AC_SUBST(HELP_DIR)
HELP_DIR="$datadir/$PACKAGE" HELP_DIR="$datadir/$PACKAGE"
+3
View File
@@ -222,6 +222,9 @@ application/x-dvi; xdvi %s
<dl> <dl>
<dt>設定ファイルはどこにあるの? <dt>設定ファイルはどこにあるの?
<dd>~/.w3m ディレクトリの下の config です. <dd>~/.w3m ディレクトリの下の config です.
オプション設定パネルで変更できると記述されているオプションの値を
このファイルで変更すると,w3m の挙動を調整できます.
オプションの名前と値を空白で区切ったものを 1 行に 1 組ずつ書いて設定します.
<p> <p>
<dt>~/.w3m の下に w3mXXXXXX のようなファイルがたくさんあるけど,何? <dt>~/.w3m の下に w3mXXXXXX のようなファイルがたくさんあるけど,何?
<dd>WWWサーバからファイルを読んでいるときに,それを一時的に保存する <dd>WWWサーバからファイルを読んでいるときに,それを一時的に保存する
+1
View File
@@ -97,6 +97,7 @@ HTML
<dd>折り返しサーチを使うかどうかを切りかえる. <dd>折り返しサーチを使うかどうかを切りかえる.
<dt>-o option=value <dt>-o option=value
<dd>オプションを指定する. <dd>オプションを指定する.
オプションの名前や値は,~/.w3m/config で指定するものと同じ.
<dt>-no-proxy <dt>-no-proxy
<dd>プロキシを利用しない. <dd>プロキシを利用しない.
<dt>-pauth user:pass <dt>-pauth user:pass
+1 -1
View File
@@ -1,7 +1,7 @@
# A sample of ~/.w3m/menu (default) # A sample of ~/.w3m/menu (default)
# #
# menu MENU_ID # menu MENU_ID
# func LABEL FUNCTION KEYS # func LABEL FUNCTION KEYS FUNCTION_ARGUMENT
# popup LABEL MENU_ID KEYS # popup LABEL MENU_ID KEYS
# nop LABEL # nop LABEL
# end # end
+1 -1
View File
@@ -1,7 +1,7 @@
# A sample of ~/.w3m/menu (submenu type) # A sample of ~/.w3m/menu (submenu type)
# #
# menu MENU_ID # menu MENU_ID
# func LABEL FUNCTION KEYS # func LABEL FUNCTION KEYS FUNCTION_ARGUMENT
# popup LABEL MENU_ID KEYS # popup LABEL MENU_ID KEYS
# nop LABEL # nop LABEL
# end # end
+4
View File
@@ -270,6 +270,10 @@ with Ctrl-u. What to do?</h3>
<dl> <dl>
<dt><h3>What is w3m's configuration file?</h3> <dt><h3>What is w3m's configuration file?</h3>
<dd>It is ~/.w3m/config. <dd>It is ~/.w3m/config.
With this file, you can adjust w3m's behavior by changing values of options
that are described to be varied with the option setting panel.
Each line contains setting for one option, which is a pair of an option name
and its value with a space as a separator.
<p> <p>
<dt><h3>What are these w3mxxxx files in my ~/.w3m directory for?</h3> <dt><h3>What are these w3mxxxx files in my ~/.w3m directory for?</h3>
<dd>These are temporary files used by w3m when reading documents from a <dd>These are temporary files used by w3m when reading documents from a
+1 -1
View File
@@ -1,7 +1,7 @@
# A sample of ~/.w3m/menu (default) # A sample of ~/.w3m/menu (default)
# #
# menu MENU_ID # menu MENU_ID
# func LABEL FUNCTION KEYS # func LABEL FUNCTION KEYS FUNCTION_ARGUMENT
# popup LABEL MENU_ID KEYS # popup LABEL MENU_ID KEYS
# nop LABEL # nop LABEL
# end # end
+1 -1
View File
@@ -1,7 +1,7 @@
# A sample of ~/.w3m/menu (submenu type) # A sample of ~/.w3m/menu (submenu type)
# #
# menu MENU_ID # menu MENU_ID
# func LABEL FUNCTION KEYS # func LABEL FUNCTION KEYS FUNCTION_ARGUMENT
# popup LABEL MENU_ID KEYS # popup LABEL MENU_ID KEYS
# nop LABEL # nop LABEL
# end # end
+25 -1
View File
@@ -1,6 +1,8 @@
/* $Id: etc.c,v 1.78 2004/04/16 18:47:19 ukai Exp $ */ /* $Id: etc.c,v 1.79 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#ifndef __MINGW32_VERSION
#include <pwd.h> #include <pwd.h>
#endif
#include "myctype.h" #include "myctype.h"
#include "html.h" #include "html.h"
#include "local.h" #include "local.h"
@@ -1310,9 +1312,13 @@ romanAlphabet(int n)
static void static void
reset_signals(void) reset_signals(void)
{ {
#ifdef SIGHUP
mySignal(SIGHUP, SIG_DFL); /* terminate process */ mySignal(SIGHUP, SIG_DFL); /* terminate process */
#endif
mySignal(SIGINT, SIG_DFL); /* terminate process */ mySignal(SIGINT, SIG_DFL); /* terminate process */
#ifdef SIGQUIT
mySignal(SIGQUIT, SIG_DFL); /* terminate process */ mySignal(SIGQUIT, SIG_DFL); /* terminate process */
#endif
mySignal(SIGTERM, SIG_DFL); /* terminate process */ mySignal(SIGTERM, SIG_DFL); /* terminate process */
mySignal(SIGILL, SIG_DFL); /* create core image */ mySignal(SIGILL, SIG_DFL); /* create core image */
mySignal(SIGIOT, SIG_DFL); /* create core image */ mySignal(SIGIOT, SIG_DFL); /* create core image */
@@ -1355,8 +1361,10 @@ setup_child(int child, int i, int f)
{ {
reset_signals(); reset_signals();
mySignal(SIGINT, SIG_IGN); mySignal(SIGINT, SIG_IGN);
#ifndef __MINGW32_VERSION
if (!child) if (!child)
SETPGRP(); SETPGRP();
#endif /* __MINGW32_VERSION */
close_tty(); close_tty();
close_all_fds_except(i, f); close_all_fds_except(i, f);
QuietMessage = TRUE; QuietMessage = TRUE;
@@ -1364,6 +1372,7 @@ setup_child(int child, int i, int f)
TrapSignal = FALSE; TrapSignal = FALSE;
} }
#ifndef __MINGW32_VERSION
pid_t pid_t
open_pipe_rw(FILE ** fr, FILE ** fw) open_pipe_rw(FILE ** fr, FILE ** fw)
{ {
@@ -1421,6 +1430,7 @@ open_pipe_rw(FILE ** fr, FILE ** fw)
err0: err0:
return (pid_t) - 1; return (pid_t) - 1;
} }
#endif /* __MINGW32_VERSION */
void void
myExec(char *command) myExec(char *command)
@@ -1433,6 +1443,7 @@ myExec(char *command)
void void
mySystem(char *command, int background) mySystem(char *command, int background)
{ {
#ifndef __MINGW32_VERSION
if (background) { if (background) {
#ifndef __EMX__ #ifndef __EMX__
flush_tty(); flush_tty();
@@ -1447,6 +1458,7 @@ mySystem(char *command, int background)
#endif #endif
} }
else else
#endif /* __MINGW32_VERSION */
system(command); system(command);
} }
@@ -1516,6 +1528,13 @@ myEditor(char *cmd, char *file, int line)
return tmp; return tmp;
} }
#ifdef __MINGW32_VERSION
char *
expandName(char *name)
{
return getenv("HOME");
}
#else
char * char *
expandName(char *name) expandName(char *name)
{ {
@@ -1559,6 +1578,7 @@ expandName(char *name)
rest: rest:
return name; return name;
} }
#endif
char * char *
file_to_url(char *file) file_to_url(char *file)
@@ -1898,7 +1918,11 @@ mymktime(char *timestr)
#ifdef INET6 #ifdef INET6
#include <sys/socket.h> #include <sys/socket.h>
#endif /* INET6 */ #endif /* INET6 */
#ifndef __MINGW32_VERSION
#include <netdb.h> #include <netdb.h>
#else
#include <winsock.h>
#endif
char * char *
FQDN(char *host) FQDN(char *host)
{ {
+42 -9
View File
@@ -1,4 +1,4 @@
/* $Id: file.c,v 1.238 2006/02/09 12:49:52 inu Exp $ */ /* $Id: file.c,v 1.239 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#include <sys/types.h> #include <sys/types.h>
#include "myctype.h" #include "myctype.h"
@@ -50,7 +50,7 @@ static struct table_mode table_mode[MAX_TABLE];
#ifdef USE_IMAGE #ifdef USE_IMAGE
static ParsedURL *cur_baseURL = NULL; static ParsedURL *cur_baseURL = NULL;
#ifdef USE_M17N #ifdef USE_M17N
static char cur_document_charset; static wc_ces cur_document_charset;
#endif #endif
#endif #endif
@@ -836,13 +836,15 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
} }
if (pu && name->length > 0) { if (pu && name->length > 0) {
int err; int err;
if (flag & COO_SECURE) if (show_cookie) {
disp_message_nsec("Received a secured cookie", FALSE, 1, if (flag & COO_SECURE)
disp_message_nsec("Received a secured cookie", FALSE, 1,
TRUE, FALSE); TRUE, FALSE);
else else
disp_message_nsec(Sprintf("Received cookie: %s=%s", disp_message_nsec(Sprintf("Received cookie: %s=%s",
name->ptr, value->ptr)->ptr, name->ptr, value->ptr)->ptr,
FALSE, 1, TRUE, FALSE); FALSE, 1, TRUE, FALSE);
}
err = err =
add_cookie(pu, name, value, expires, domain, path, flag, add_cookie(pu, name, value, expires, domain, path, flag,
comment, version, port, commentURL); comment, version, port, commentURL);
@@ -874,10 +876,12 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu)
emsg = emsg =
"This cookie was rejected to prevent security violation."; "This cookie was rejected to prevent security violation.";
record_err_message(emsg); record_err_message(emsg);
disp_message_nsec(emsg, FALSE, 1, TRUE, FALSE); if (show_cookie)
disp_message_nsec(emsg, FALSE, 1, TRUE, FALSE);
} }
else else
disp_message_nsec(Sprintf if (show_cookie)
disp_message_nsec(Sprintf
("Accepting invalid cookie: %s=%s", ("Accepting invalid cookie: %s=%s",
name->ptr, value->ptr)->ptr, FALSE, name->ptr, value->ptr)->ptr, FALSE,
1, TRUE, FALSE); 1, TRUE, FALSE);
@@ -1599,9 +1603,17 @@ getAuthCookie(struct http_auth *hauth, char *auth_header,
getpassphrase(proxy ? "Proxy Password: " : getpassphrase(proxy ? "Proxy Password: " :
"Password: ")); "Password: "));
#else #else
#ifndef __MINGW32_VERSION
*pwd = Strnew_charp((char *) *pwd = Strnew_charp((char *)
getpass(proxy ? "Proxy Password: " : getpass(proxy ? "Proxy Password: " :
"Password: ")); "Password: "));
#else
term_raw();
*pwd = Strnew_charp((char *)
inputLine(proxy ? "Proxy Password: " :
"Password: ", NULL, IN_PASSWORD));
term_cbreak();
#endif /* __MINGW32_VERSION */
#endif #endif
} }
} }
@@ -5281,6 +5293,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
buf->hmarklist = buf->hmarklist =
putHmarker(buf->hmarklist, currentLn(buf), putHmarker(buf->hmarklist, currentLn(buf),
pos, hseq - 1); pos, hseq - 1);
else if (hseq < 0) {
int h = -hseq - 1;
if (buf->hmarklist &&
h < buf->hmarklist->nmark &&
buf->hmarklist->marks[h].invalid) {
buf->hmarklist->marks[h].pos = pos;
buf->hmarklist->marks[h].line = currentLn(buf);
buf->hmarklist->marks[h].invalid = 0;
hseq = -hseq;
}
}
if (id && idFrame) if (id && idFrame)
idFrame->body->nameList = idFrame->body->nameList =
putAnchor(idFrame->body->nameList, id, NULL, putAnchor(idFrame->body->nameList, id, NULL,
@@ -5300,8 +5323,12 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
a_href->end.line = currentLn(buf); a_href->end.line = currentLn(buf);
a_href->end.pos = pos; a_href->end.pos = pos;
if (a_href->start.line == a_href->end.line && if (a_href->start.line == a_href->end.line &&
a_href->start.pos == a_href->end.pos) a_href->start.pos == a_href->end.pos) {
if (buf->hmarklist &&
a_href->hseq < buf->hmarklist->nmark)
buf->hmarklist->marks[a_href->hseq].invalid = 1;
a_href->hseq = -1; a_href->hseq = -1;
}
a_href = NULL; a_href = NULL;
} }
break; break;
@@ -7670,6 +7697,7 @@ _MoveFile(char *path1, char *path2)
int int
_doFileCopy(char *tmpf, char *defstr, int download) _doFileCopy(char *tmpf, char *defstr, int download)
{ {
#ifndef __MINGW32_VERSION
Str msg; Str msg;
Str filen; Str filen;
char *p, *q = NULL; char *p, *q = NULL;
@@ -7776,6 +7804,7 @@ _doFileCopy(char *tmpf, char *defstr, int download)
if (PreserveTimestamp && !is_pipe && !stat(tmpf, &st)) if (PreserveTimestamp && !is_pipe && !stat(tmpf, &st))
setModtime(p, st.st_mtime); setModtime(p, st.st_mtime);
} }
#endif /* __MINGW32_VERSION */
return 0; return 0;
} }
@@ -7790,6 +7819,7 @@ doFileMove(char *tmpf, char *defstr)
int int
doFileSave(URLFile uf, char *defstr) doFileSave(URLFile uf, char *defstr)
{ {
#ifndef __MINGW32_VERSION
Str msg; Str msg;
Str filen; Str filen;
char *p, *q; char *p, *q;
@@ -7875,6 +7905,7 @@ doFileSave(URLFile uf, char *defstr)
if (PreserveTimestamp && uf.modtime != -1) if (PreserveTimestamp && uf.modtime != -1)
setModtime(p, uf.modtime); setModtime(p, uf.modtime);
} }
#endif /* __MINGW32_VERSION */
return 0; return 0;
} }
@@ -7945,6 +7976,7 @@ inputAnswer(char *prompt)
static void static void
uncompress_stream(URLFile *uf, char **src) uncompress_stream(URLFile *uf, char **src)
{ {
#ifndef __MINGW32_VERSION
pid_t pid1; pid_t pid1;
FILE *f1; FILE *f1;
char *expand_cmd = GUNZIP_CMDNAME; char *expand_cmd = GUNZIP_CMDNAME;
@@ -8028,6 +8060,7 @@ uncompress_stream(URLFile *uf, char **src)
} }
UFhalfclose(uf); UFhalfclose(uf);
uf->stream = newFileStream(f1, (void (*)())fclose); uf->stream = newFileStream(f1, (void (*)())fclose);
#endif /* __MINGW32_VERSION */
} }
static FILE * static FILE *
+3 -2
View File
@@ -1,4 +1,4 @@
/* $Id: fm.h,v 1.127 2004/07/15 16:44:37 ukai Exp $ */ /* $Id: fm.h,v 1.128 2006/04/05 14:18:54 inu Exp $ */
/* /*
* w3m: WWW wo Miru utility * w3m: WWW wo Miru utility
* *
@@ -336,6 +336,7 @@ typedef struct _Line {
typedef struct { typedef struct {
int line; int line;
int pos; int pos;
int invalid;
} BufferPoint; } BufferPoint;
#ifdef USE_IMAGE #ifdef USE_IMAGE
@@ -867,7 +868,6 @@ global int TabCols init(10);
global DownloadList *FirstDL init(NULL); global DownloadList *FirstDL init(NULL);
global DownloadList *LastDL init(NULL); global DownloadList *LastDL init(NULL);
global int CurrentKey; global int CurrentKey;
global char *CurrentKeyData;
global char *CurrentCmdData; global char *CurrentCmdData;
extern char *w3m_version; extern char *w3m_version;
@@ -1076,6 +1076,7 @@ global MouseAction mouse_action;
#ifdef USE_COOKIE #ifdef USE_COOKIE
global int default_use_cookie init(TRUE); global int default_use_cookie init(TRUE);
global int use_cookie init(FALSE); global int use_cookie init(FALSE);
global int show_cookie init(TRUE);
global int accept_cookie init(FALSE); global int accept_cookie init(FALSE);
#define ACCEPT_BAD_COOKIE_DISCARD 0 #define ACCEPT_BAD_COOKIE_DISCARD 0
#define ACCEPT_BAD_COOKIE_ACCEPT 1 #define ACCEPT_BAD_COOKIE_ACCEPT 1
+18 -1
View File
@@ -1,6 +1,8 @@
/* $Id: ftp.c,v 1.35 2004/04/16 18:47:19 ukai Exp $ */ /* $Id: ftp.c,v 1.36 2006/04/05 14:18:54 inu Exp $ */
#include <stdio.h> #include <stdio.h>
#ifndef __MINGW32_VERSION
#include <pwd.h> #include <pwd.h>
#endif /* __MINGW32_VERSION */
#include <Str.h> #include <Str.h>
#include <signal.h> #include <signal.h>
#include <setjmp.h> #include <setjmp.h>
@@ -14,10 +16,14 @@
#include <malloc.h> #include <malloc.h>
#endif /* DEBUG */ #endif /* DEBUG */
#ifndef __MINGW32_VERSION
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <netdb.h> #include <netdb.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#else
#include <winsock.h>
#endif /* __MINGW32_VERSION */
typedef struct _FTP { typedef struct _FTP {
char *host; char *host;
@@ -371,7 +377,14 @@ openFTPStream(ParsedURL *pu, URLFile *uf)
term_cbreak(); term_cbreak();
} }
else { else {
#ifndef __MINGW32_VERSION
pwd = Strnew_charp((char *)getpass("Password: ")); pwd = Strnew_charp((char *)getpass("Password: "));
#else
term_raw();
pwd = Strnew_charp(inputLine("Password: ", NULL, IN_PASSWORD));
pwd = Str_conv_to_system(pwd);
term_cbreak();
#endif /* __MINGW32_VERSION */
} }
add_auth_cookie_flag = TRUE; add_auth_cookie_flag = TRUE;
} }
@@ -380,8 +393,12 @@ openFTPStream(ParsedURL *pu, URLFile *uf)
else if (ftppasswd != NULL && *ftppasswd != '\0') else if (ftppasswd != NULL && *ftppasswd != '\0')
pass = ftppasswd; pass = ftppasswd;
else { else {
#ifndef __MINGW32_VERSION
struct passwd *mypw = getpwuid(getuid()); struct passwd *mypw = getpwuid(getuid());
tmp = Strnew_charp(mypw ? mypw->pw_name : "anonymous"); tmp = Strnew_charp(mypw ? mypw->pw_name : "anonymous");
#else
tmp = Strnew_charp("anonymous");
#endif __MINGW32_VERSION
Strcat_char(tmp, '@'); Strcat_char(tmp, '@');
pass = tmp->ptr; pass = tmp->ptr;
} }
+7 -3
View File
@@ -1,7 +1,9 @@
/* $Id: indep.c,v 1.35 2004/04/09 17:18:49 ukai Exp $ */ /* $Id: indep.c,v 1.36 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#include <stdio.h> #include <stdio.h>
#ifndef __MINGW32_VERSION
#include <pwd.h> #include <pwd.h>
#endif /* __MINGW32_VERSION */
#include <sys/param.h> #include <sys/param.h>
#include <sys/types.h> #include <sys/types.h>
#include <stdlib.h> #include <stdlib.h>
@@ -225,6 +227,7 @@ expandPath(char *name)
p = name; p = name;
if (*p == '~') { if (*p == '~') {
p++; p++;
#ifndef __MINGW32_VERSION
if (IS_ALPHA(*p)) { if (IS_ALPHA(*p)) {
char *q = strchr(p, '/'); char *q = strchr(p, '/');
if (q) { /* ~user/dir... */ if (q) { /* ~user/dir... */
@@ -238,8 +241,9 @@ expandPath(char *name)
if (!passent) if (!passent)
goto rest; goto rest;
extpath = Strnew_charp(passent->pw_dir); extpath = Strnew_charp(passent->pw_dir);
} } else
else if (*p == '/' || *p == '\0') { /* ~/dir... or ~ */ #endif /* __MINGW32_VERSION */
if (*p == '/' || *p == '\0') { /* ~/dir... or ~ */
extpath = Strnew_charp(getenv("HOME")); extpath = Strnew_charp(getenv("HOME"));
} }
else else
+12 -1
View File
@@ -1,4 +1,4 @@
/* $Id: istream.c,v 1.23 2003/10/20 16:41:56 ukai Exp $ */ /* $Id: istream.c,v 1.24 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#include "myctype.h" #include "myctype.h"
#include "istream.h" #include "istream.h"
@@ -6,6 +6,9 @@
#ifdef USE_SSL #ifdef USE_SSL
#include <openssl/x509v3.h> #include <openssl/x509v3.h>
#endif #endif
#ifdef __MINGW32_VERSION
#include <winsock.h>
#endif
#define uchar unsigned char #define uchar unsigned char
@@ -617,13 +620,21 @@ ssl_get_certificate(SSL * ssl, char *hostname)
static void static void
basic_close(int *handle) basic_close(int *handle)
{ {
#ifdef __MINGW32_VERSION
closesocket(*(int *)handle);
#else
close(*(int *)handle); close(*(int *)handle);
#endif
} }
static int static int
basic_read(int *handle, char *buf, int len) basic_read(int *handle, char *buf, int len)
{ {
#ifdef __MINGW32_VERSION
return recv(*(int *)handle, buf, len, 0);
#else
return read(*(int *)handle, buf, len); return read(*(int *)handle, buf, len);
#endif
} }
static void static void
+1 -1
View File
@@ -99,7 +99,7 @@ wc_auto_detect(char *is, size_t len, wc_ces hint)
for (; p < ep && ! WC_DETECT_MAP[*p]; p++) for (; p < ep && ! WC_DETECT_MAP[*p]; p++)
; ;
if (p == ep) if (p == ep)
return WC_CES_US_ASCII; return hint;
switch (hint) { switch (hint) {
case WC_CES_ISO_2022_JP: case WC_CES_ISO_2022_JP:
+11 -1
View File
@@ -1,4 +1,4 @@
/* $Id: local.c,v 1.31 2003/09/26 17:59:51 ukai Exp $ */ /* $Id: local.c,v 1.32 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
@@ -16,6 +16,10 @@
#include "local.h" #include "local.h"
#include "hash.h" #include "hash.h"
#ifdef __MINGW32_VERSION
#include <winsock.h>
#endif
#define CGIFN_NORMAL 0 #define CGIFN_NORMAL 0
#define CGIFN_LIBDIR 1 #define CGIFN_LIBDIR 1
#define CGIFN_CGIBIN 2 #define CGIFN_CGIBIN 2
@@ -193,8 +197,10 @@ check_local_cgi(char *file, int status)
return -1; return -1;
if (S_ISDIR(st.st_mode)) if (S_ISDIR(st.st_mode))
return -1; return -1;
#ifndef __MINGW32_VERSION
if ((st.st_uid == geteuid() && (st.st_mode & S_IXUSR)) || (st.st_gid == getegid() && (st.st_mode & S_IXGRP)) || (st.st_mode & S_IXOTH)) /* executable */ if ((st.st_uid == geteuid() && (st.st_mode & S_IXUSR)) || (st.st_gid == getegid() && (st.st_mode & S_IXGRP)) || (st.st_mode & S_IXOTH)) /* executable */
return 0; return 0;
#endif
return -1; return -1;
} }
@@ -353,6 +359,9 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)
pid_t pid; pid_t pid;
char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL; char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL;
#ifdef __MINGW32_VERSION
return NULL;
#else
status = cgi_filename(uri, &file, &name, &path_info); status = cgi_filename(uri, &file, &name, &path_info);
if (check_local_cgi(file, status) < 0) if (check_local_cgi(file, status) < 0)
return NULL; return NULL;
@@ -412,4 +421,5 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer)
file, mybasename(file), strerror(errno)); file, mybasename(file), strerror(errno));
exit(1); exit(1);
return NULL; return NULL;
#endif
} }
+352 -26
View File
@@ -1,4 +1,4 @@
/* $Id: main.c,v 1.247 2005/02/26 17:06:44 ukai Exp $ */ /* $Id: main.c,v 1.248 2006/04/05 14:18:54 inu Exp $ */
#define MAINPROGRAM #define MAINPROGRAM
#include "fm.h" #include "fm.h"
#include <signal.h> #include <signal.h>
@@ -14,6 +14,13 @@
#include "terms.h" #include "terms.h"
#include "myctype.h" #include "myctype.h"
#include "regex.h" #include "regex.h"
#ifdef USE_REMOTE
#include <sys/socket.h>
#include <sys/un.h>
#include <dirent.h>
#endif
#ifdef USE_MOUSE #ifdef USE_MOUSE
#ifdef USE_GPM #ifdef USE_GPM
#include <gpm.h> #include <gpm.h>
@@ -24,6 +31,12 @@ extern int do_getch();
#endif /* defined(USE_GPM) || defined(USE_SYSMOUSE) */ #endif /* defined(USE_GPM) || defined(USE_SYSMOUSE) */
#endif #endif
#ifdef __MINGW32_VERSION
#include <winsock.h>
WSADATA WSAData;
#endif
#define DSTR_LEN 256 #define DSTR_LEN 256
Hist *LoadHist; Hist *LoadHist;
@@ -65,7 +78,11 @@ static char *MarkString = NULL;
static char *SearchString = NULL; static char *SearchString = NULL;
int (*searchRoutine) (Buffer *, char *); int (*searchRoutine) (Buffer *, char *);
#ifndef __MINGW32_VERSION
JMP_BUF IntReturn; JMP_BUF IntReturn;
#else
_JBTYPE IntReturn[_JBLEN];
#endif /* __MINGW32_VERSION */
static void delBuffer(Buffer *buf); static void delBuffer(Buffer *buf);
static void cmd_loadfile(char *path); static void cmd_loadfile(char *path);
@@ -104,6 +121,19 @@ static int searchKeyNum(void);
#define help() fusage(stdout, 0) #define help() fusage(stdout, 0)
#define usage() fusage(stderr, 1) #define usage() fusage(stderr, 1)
#ifdef USE_REMOTE
static int open_remote(int id);
static void execute_remote(int sock, char *arg);
static Str find_sock(int pid);
static int init_serv(void);
static int init_remote(char *prefix);
static void parse_sock_data(void);
static Str SockName;
static int SockFd = -1, UseRemote = FALSE, ExecuteRemote = FALSE, RemoteId = -1;
struct sockaddr_un SockAddr;
socklen_t SockLength;
#endif
static void static void
fversion(FILE * f) fversion(FILE * f)
{ {
@@ -134,6 +164,9 @@ fversion(FILE * f)
",sysmouse" ",sysmouse"
#endif #endif
#endif #endif
#ifdef USE_REMOTE
",remote"
#endif
#ifdef USE_MENU #ifdef USE_MENU
",menu" ",menu"
#endif #endif
@@ -229,6 +262,11 @@ fusage(FILE * f, int err)
#ifdef USE_MOUSE #ifdef USE_MOUSE
fprintf(f, " -no-mouse don't use mouse\n"); fprintf(f, " -no-mouse don't use mouse\n");
#endif /* USE_MOUSE */ #endif /* USE_MOUSE */
#ifdef USE_REMOTE
fprintf(f, " -enable_remote accept remote operation\n");
fprintf(f, " -remote command execute command in an already running w3m process\n");
fprintf(f, " -remote_id pid select a w3m to control with -remote option\n");
#endif /* USE_MOUSE */
#ifdef USE_COOKIE #ifdef USE_COOKIE
fprintf(f, fprintf(f,
" -cookie use cookie (-no-cookie: don't use cookie)\n"); " -cookie use cookie (-no-cookie: don't use cookie)\n");
@@ -727,6 +765,33 @@ main(int argc, char **argv, char **envp)
else if (!strcmp("-dummy", argv[i])) { else if (!strcmp("-dummy", argv[i])) {
/* do nothing */ /* do nothing */
} }
#ifdef USE_REMOTE
else if (!strcmp("-enable_remote", argv[i])) {
UseRemote = TRUE;
}
else if (!strcmp("-remote_id", argv[i])) {
if (++i >= argc)
usage();
RemoteId = atoi(argv[i]);
}
else if (!strcmp("-remote", argv[i])) {
ExecuteRemote = TRUE;
SockFd = open_remote(RemoteId);
if (SockFd < 0) {
fprintf(stderr, "Can't find w3m process.\n");
exit(1);
}
while (++i < argc) {
if ((*argv[i] == '+') || (*argv[i] == '-')) {
i--;
break;
}
execute_remote(SockFd, argv[i]);
}
close(SockFd);
}
#endif
else if (!strcmp("-debug", argv[i])) else if (!strcmp("-debug", argv[i]))
w3m_debug = TRUE; w3m_debug = TRUE;
else { else {
@@ -741,13 +806,34 @@ main(int argc, char **argv, char **envp)
} }
i++; i++;
} }
#ifdef USE_REMOTE
if (ExecuteRemote) {
exit(0);
}
#endif
#ifdef __WATT32__ #ifdef __WATT32__
if (w3m_debug) if (w3m_debug)
dbug_init(); dbug_init();
sock_init(); sock_init();
#endif #endif
#ifdef __MINGW32_VERSION
{
int err;
WORD wVerReq;
wVerReq = MAKEWORD(1, 1);
err = WSAStartup(wVerReq, &WSAData);
if (err != 0)
{
fprintf(stderr, "Can't find winsock\n");
return 1;
}
_fmode = _O_BINARY;
}
#endif
FirstTab = NULL; FirstTab = NULL;
LastTab = NULL; LastTab = NULL;
nTab = 0; nTab = 0;
@@ -1028,6 +1114,13 @@ main(int argc, char **argv, char **envp)
if (line_str) { if (line_str) {
_goLine(line_str); _goLine(line_str);
} }
#ifdef USE_REMOTE
if (UseRemote) {
init_serv();
}
#endif
for (;;) { for (;;) {
if (add_download_list) { if (add_download_list) {
add_download_list = FALSE; add_download_list = FALSE;
@@ -1044,7 +1137,6 @@ main(int argc, char **argv, char **envp)
/* event processing */ /* event processing */
if (CurrentEvent) { if (CurrentEvent) {
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = (char *)CurrentEvent->data; CurrentCmdData = (char *)CurrentEvent->data;
w3mFuncList[CurrentEvent->cmd].func(); w3mFuncList[CurrentEvent->cmd].func();
CurrentCmdData = NULL; CurrentCmdData = NULL;
@@ -1059,7 +1151,6 @@ main(int argc, char **argv, char **envp)
if (CurrentAlarm->sec == 0) { /* refresh (0sec) */ if (CurrentAlarm->sec == 0) { /* refresh (0sec) */
Currentbuf->event = NULL; Currentbuf->event = NULL;
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = (char *)CurrentAlarm->data; CurrentCmdData = (char *)CurrentAlarm->data;
w3mFuncList[CurrentAlarm->cmd].func(); w3mFuncList[CurrentAlarm->cmd].func();
CurrentCmdData = NULL; CurrentCmdData = NULL;
@@ -1098,7 +1189,20 @@ main(int argc, char **argv, char **envp)
} while (sleep_till_anykey(1, 0) <= 0); } while (sleep_till_anykey(1, 0) <= 0);
} }
#endif #endif
#ifdef USE_REMOTE
if (UseRemote) {
int n;
c = getch_select(SockFd, &n);
if (n == 1) {
parse_sock_data();
continue;
}
} else {
c = getch();
}
#else
c = getch(); c = getch();
#endif
#ifdef SIGWINCH #ifdef SIGWINCH
mySignal(SIGWINCH, resize_hook); mySignal(SIGWINCH, resize_hook);
#endif #endif
@@ -1126,10 +1230,240 @@ main(int argc, char **argv, char **envp)
} }
prev_key = CurrentKey; prev_key = CurrentKey;
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
} }
} }
#ifdef USE_REMOTE
#ifndef HAVE_GETPEEREID
#ifdef HAVE_SO_PEERCRED
int
getpeereid(int s, uid_t *euid, gid_t *egid)
{
struct ucred cr;
int cl = sizeof(cr), r;
r = getsockopt(s, SOL_SOCKET, SO_PEERCRED, &cr, &cl);
if (r)
return r;
*euid = cr.uid;
*egid = cr.gid;
return 0;
}
#endif /* HAVE_SO_PEERCRED */
#endif /* ! HAVE_GETPEEREID */
static int
open_remote(int id)
{
#if defined(HAVE_SO_PEERCRED) || defined(HAVE_GETPEEREID)
uid_t euid;
gid_t egid;
#endif
Str sock_name = find_sock(id);
if (! sock_name)
return -1;
if (sizeof(SockAddr.sun_path) <= sock_name->length)
return -1;
if (init_remote("w3mclis"))
return -1;
SockAddr.sun_family = AF_UNIX;
strcpy(SockAddr.sun_path, sock_name->ptr);
SockLength = sizeof(SockAddr.sun_family) + strlen(SockAddr.sun_path);
if (connect(SockFd, (struct sockaddr *) &SockAddr, SockLength)) {
close(SockFd);
unlink(SockName->ptr);
return -1;
}
#if defined(HAVE_SO_PEERCRED) || defined(HAVE_GETPEEREID)
if (getpeereid(SockFd, &euid, &egid) != 0 || euid != getuid()) {
close(SockFd);
unlink(SockName->ptr);
return -1;
}
#endif
return SockFd;
}
static void
execute_remote(int sock, char *arg)
{
write(sock, arg, strlen(arg));
write(sock, "\n", 1);
}
static Str
find_sock(int pid)
{
DIR *dot_w3m;
Str sock_name;
struct dirent *file = NULL;
struct stat sbuf;
if (pid > 0) {
sock_name = Sprintf("w3msock%d", pid);
} else {
sock_name = Strnew_charp("w3msock");
}
dot_w3m = opendir(rc_dir);
if (! dot_w3m)
return NULL;
while ((file = readdir(dot_w3m))) {
if ((pid > 0 && (Strcmp_charp(sock_name, file->d_name) == 0)) ||
(pid <= 0 && Strncmp_charp(sock_name, file->d_name, sock_name->length) == 0)) {
sock_name = Sprintf("%s/%s", rc_dir, file->d_name);
if ((stat(sock_name->ptr, &sbuf) == 0) &&
(sbuf.st_mode & S_IFSOCK) &&
!(sbuf.st_mode & (S_IRWXO | S_IRWXG)) &&
(sbuf.st_uid == getuid()))
goto SockFound;
}
}
closedir(dot_w3m);
return NULL;
SockFound:
closedir(dot_w3m);
return sock_name;
}
static int
init_serv(void)
{
if (init_remote("w3msock")) {
return 1;
}
if (listen(SockFd, 5)) {
unlink(SockName->ptr);
close(SockFd);
SockFd = -1;
UseRemote = FALSE;
return 1;
}
fcntl(SockFd, F_SETFL, O_NONBLOCK);
return 0;
}
static int
init_remote(char *prefix)
{
SockName = Sprintf("%s/%s%d", rc_dir, prefix, CurrentPid);
if (sizeof(SockAddr.sun_path) <= SockName->length)
goto SockErr;
SockAddr.sun_family = AF_UNIX;
strcpy(SockAddr.sun_path, SockName->ptr);
SockLength = sizeof(SockAddr.sun_family) + strlen(SockAddr.sun_path);
if ((SockFd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
goto SockErr;
unlink(SockName->ptr);
if (bind(SockFd, (struct sockaddr *) &SockAddr, SockLength))
goto SockErr;
chmod(SockName->ptr, S_IRUSR | S_IWUSR);
return 0;
SockErr:
unlink(SockName->ptr);
if (SockFd >= 0) {
close(SockFd);
}
SockFd = -1;
UseRemote = FALSE;
return 1;
}
static void
parse_sock_data(void)
{
Str data = NULL;
char buf[64];
char *p, *q, *s;
int l, f, conn;
struct sockaddr_un sock_addr = SockAddr;
socklen_t sock_length = SockLength;
#if defined(HAVE_SO_PEERCRED) || defined(HAVE_GETPEEREID)
uid_t euid;
gid_t egid;
#else
struct stat sbuf;
time_t staletime;
#endif
if (!UseRemote || SockFd < 0) {
return;
}
if (!data)
data = Strnew();
conn = accept(SockFd, (struct sockaddr *) &sock_addr, &sock_length);
if (conn < 0)
return;
sock_length -= sizeof(sock_addr.sun_family);
sock_addr.sun_path[sock_length] = '\0';
#if defined(HAVE_SO_PEERCRED) || defined(HAVE_GETPEEREID)
if (getpeereid(conn, &euid, &egid) != 0 || euid != getuid()) {
#else
#define STALE_LIMIT 60
staletime = time(NULL) - STALE_LIMIT;
if ((stat(sock_addr.sun_path, &sbuf) < 0) ||
!(sbuf.st_mode & S_IFSOCK) ||
(sbuf.st_mode & (S_IRWXO | S_IRWXG)) ||
(sbuf.st_uid != getuid()) ||
(sbuf.st_atime < staletime) ||
(sbuf.st_ctime < staletime) ||
(sbuf.st_mtime < staletime)) {
#endif
close(conn);
return;
}
unlink(sock_addr.sun_path);
while ((l = read(conn, buf, sizeof(buf))) > 0) {
Strcat_charp_n(data, buf, l);
}
close(conn);
p = data->ptr;
while ((q = strchr(p, '\n'))) {
Str funcname = Strnew();
Str cmd = Strnew_charp_n(p, q - p);
s = cmd->ptr;
SKIP_BLANKS(s);
while (*s && !IS_SPACE(*s))
Strcat_char(funcname, *(s++));
SKIP_BLANKS(s);
f = getFuncList(funcname->ptr);
if (f >= 0) {
Str tmp = Strnew_charp(s);
Strchop(tmp);
pushEvent(f, tmp->ptr);
}
p = q + 1;
}
}
#endif /* USE_REMOTE */
static void static void
keyPressEventProc(int c) keyPressEventProc(int c)
{ {
@@ -1908,7 +2242,6 @@ DEFUN(setEnv, SETENV, "Set environment variable")
char *env; char *env;
char *var, *value; char *var, *value;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
env = searchKeyData(); env = searchKeyData();
if (env == NULL || *env == '\0' || strchr(env, '=') == NULL) { if (env == NULL || *env == '\0' || strchr(env, '=') == NULL) {
if (env != NULL && *env != '\0') if (env != NULL && *env != '\0')
@@ -1933,7 +2266,6 @@ DEFUN(pipeBuf, PIPE_BUF, "Send rendered document to pipe")
char *cmd, *tmpf; char *cmd, *tmpf;
FILE *f; FILE *f;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
cmd = searchKeyData(); cmd = searchKeyData();
if (cmd == NULL || *cmd == '\0') { if (cmd == NULL || *cmd == '\0') {
/* FIXME: gettextize? */ /* FIXME: gettextize? */
@@ -1978,7 +2310,6 @@ DEFUN(pipesh, PIPE_SHELL, "Execute shell command and browse")
Buffer *buf; Buffer *buf;
char *cmd; char *cmd;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
cmd = searchKeyData(); cmd = searchKeyData();
if (cmd == NULL || *cmd == '\0') { if (cmd == NULL || *cmd == '\0') {
cmd = inputLineHist("(read shell[pipe])!", "", IN_COMMAND, ShellHist); cmd = inputLineHist("(read shell[pipe])!", "", IN_COMMAND, ShellHist);
@@ -2010,7 +2341,6 @@ DEFUN(readsh, READ_SHELL, "Execute shell command and load")
MySignalHandler(*prevtrap) (); MySignalHandler(*prevtrap) ();
char *cmd; char *cmd;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
cmd = searchKeyData(); cmd = searchKeyData();
if (cmd == NULL || *cmd == '\0') { if (cmd == NULL || *cmd == '\0') {
cmd = inputLineHist("(read shell)!", "", IN_COMMAND, ShellHist); cmd = inputLineHist("(read shell)!", "", IN_COMMAND, ShellHist);
@@ -2045,7 +2375,6 @@ DEFUN(execsh, EXEC_SHELL SHELL, "Execute shell command")
{ {
char *cmd; char *cmd;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
cmd = searchKeyData(); cmd = searchKeyData();
if (cmd == NULL || *cmd == '\0') { if (cmd == NULL || *cmd == '\0') {
cmd = inputLineHist("(exec shell)!", "", IN_COMMAND, ShellHist); cmd = inputLineHist("(exec shell)!", "", IN_COMMAND, ShellHist);
@@ -4149,7 +4478,6 @@ DEFUN(setOpt, SET_OPTION, "Set option")
{ {
char *opt; char *opt;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
opt = searchKeyData(); opt = searchKeyData();
if (opt == NULL || *opt == '\0' || strchr(opt, '=') == NULL) { if (opt == NULL || *opt == '\0' || strchr(opt, '=') == NULL) {
if (opt != NULL && *opt != '\0') { if (opt != NULL && *opt != '\0') {
@@ -4335,7 +4663,6 @@ DEFUN(ldHist, HISTORY, "View history of URL")
/* download HREF link */ /* download HREF link */
DEFUN(svA, SAVE_LINK, "Save link to file") DEFUN(svA, SAVE_LINK, "Save link to file")
{ {
CurrentKeyData = NULL; /* not allowed in w3m-control: */
do_download = TRUE; do_download = TRUE;
followA(); followA();
do_download = FALSE; do_download = FALSE;
@@ -4344,7 +4671,6 @@ DEFUN(svA, SAVE_LINK, "Save link to file")
/* download IMG link */ /* download IMG link */
DEFUN(svI, SAVE_IMAGE, "Save image to file") DEFUN(svI, SAVE_IMAGE, "Save image to file")
{ {
CurrentKeyData = NULL; /* not allowed in w3m-control: */
do_download = TRUE; do_download = TRUE;
followI(); followI();
do_download = FALSE; do_download = FALSE;
@@ -4357,7 +4683,6 @@ DEFUN(svBuf, PRINT SAVE_SCREEN, "Save rendered document to file")
FILE *f; FILE *f;
int is_pipe; int is_pipe;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
file = searchKeyData(); file = searchKeyData();
if (file == NULL || *file == '\0') { if (file == NULL || *file == '\0') {
/* FIXME: gettextize? */ /* FIXME: gettextize? */
@@ -4406,7 +4731,6 @@ DEFUN(svSrc, DOWNLOAD SAVE, "Save document source to file")
if (Currentbuf->sourcefile == NULL) if (Currentbuf->sourcefile == NULL)
return; return;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
PermitSaveToPipe = TRUE; PermitSaveToPipe = TRUE;
if (Currentbuf->real_scheme == SCM_LOCAL) if (Currentbuf->real_scheme == SCM_LOCAL)
file = conv_from_system(guess_save_name(NULL, file = conv_from_system(guess_save_name(NULL,
@@ -4943,7 +5267,6 @@ invoke_browser(char *url)
char *browser = NULL; char *browser = NULL;
int bg = 0, len; int bg = 0, len;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
browser = searchKeyData(); browser = searchKeyData();
if (browser == NULL || *browser == '\0') { if (browser == NULL || *browser == '\0') {
switch (prec_num) { switch (prec_num) {
@@ -5184,7 +5507,6 @@ do_mouse_action(int btn, int x, int y)
mouse_action.cursorX = x; mouse_action.cursorX = x;
mouse_action.cursorY = y; mouse_action.cursorY = y;
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = map->data; CurrentCmdData = map->data;
(*map->func) (); (*map->func) ();
CurrentCmdData = NULL; CurrentCmdData = NULL;
@@ -5643,13 +5965,10 @@ searchKeyData(void)
{ {
char *data = NULL; char *data = NULL;
if (CurrentKeyData != NULL && *CurrentKeyData != '\0') if (CurrentCmdData != NULL && *CurrentCmdData != '\0')
data = CurrentKeyData;
else if (CurrentCmdData != NULL && *CurrentCmdData != '\0')
data = CurrentCmdData; data = CurrentCmdData;
else if (CurrentKey >= 0) else if (CurrentKey >= 0)
data = getKeyData(CurrentKey); data = getKeyData(CurrentKey);
CurrentKeyData = NULL;
CurrentCmdData = NULL; CurrentCmdData = NULL;
if (data == NULL || *data == '\0') if (data == NULL || *data == '\0')
return NULL; return NULL;
@@ -5713,6 +6032,14 @@ w3m_exit(int i)
disconnectFTP(); disconnectFTP();
#ifdef USE_NNTP #ifdef USE_NNTP
disconnectNews(); disconnectNews();
#endif
#ifdef USE_REMOTE
if (UseRemote) {
unlink(SockName->ptr);
}
#endif
#ifdef __MINGW32_VERSION
WSACleanup();
#endif #endif
exit(i); exit(i);
} }
@@ -5722,7 +6049,6 @@ DEFUN(execCmd, COMMAND, "Execute w3m command(s)")
char *data, *p; char *data, *p;
int cmd; int cmd;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
data = searchKeyData(); data = searchKeyData();
if (data == NULL || *data == '\0') { if (data == NULL || *data == '\0') {
data = inputStrHist("command [; ...]: ", "", TextHist); data = inputStrHist("command [; ...]: ", "", TextHist);
@@ -5744,7 +6070,6 @@ DEFUN(execCmd, COMMAND, "Execute w3m command(s)")
break; break;
p = getQWord(&data); p = getQWord(&data);
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = *p ? p : NULL; CurrentCmdData = *p ? p : NULL;
#ifdef USE_MOUSE #ifdef USE_MOUSE
if (use_mouse) if (use_mouse)
@@ -5768,7 +6093,6 @@ SigAlarm(SIGNAL_ARG)
if (CurrentAlarm->sec > 0) { if (CurrentAlarm->sec > 0) {
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = data = (char *)CurrentAlarm->data; CurrentCmdData = data = (char *)CurrentAlarm->data;
#ifdef USE_MOUSE #ifdef USE_MOUSE
if (use_mouse) if (use_mouse)
@@ -5806,7 +6130,6 @@ DEFUN(setAlarm, ALARM, "Set alarm")
char *data; char *data;
int sec = 0, cmd = -1; int sec = 0, cmd = -1;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
data = searchKeyData(); data = searchKeyData();
if (data == NULL || *data == '\0') { if (data == NULL || *data == '\0') {
data = inputStrHist("(Alarm)sec command: ", "", TextHist); data = inputStrHist("(Alarm)sec command: ", "", TextHist);
@@ -5919,7 +6242,6 @@ DEFUN(defKey, DEFINE_KEY,
{ {
char *data; char *data;
CurrentKeyData = NULL; /* not allowed in w3m-control: */
data = searchKeyData(); data = searchKeyData();
if (data == NULL || *data == '\0') { if (data == NULL || *data == '\0') {
data = inputStrHist("Key definition: ", "", TextHist); data = inputStrHist("Key definition: ", "", TextHist);
@@ -6438,7 +6760,9 @@ download_action(struct parsed_tagarg *arg)
for (; arg; arg = arg->next) { for (; arg; arg = arg->next) {
if (!strncmp(arg->arg, "stop", 4)) { if (!strncmp(arg->arg, "stop", 4)) {
pid = (pid_t) atoi(&arg->arg[4]); pid = (pid_t) atoi(&arg->arg[4]);
#ifndef __MINGW32_VERSION
kill(pid, SIGKILL); kill(pid, SIGKILL);
#endif
} }
else if (!strncmp(arg->arg, "ok", 2)) else if (!strncmp(arg->arg, "ok", 2))
pid = (pid_t) atoi(&arg->arg[2]); pid = (pid_t) atoi(&arg->arg[2]);
@@ -6472,7 +6796,9 @@ stopDownload(void)
for (d = FirstDL; d != NULL; d = d->next) { for (d = FirstDL; d != NULL; d = d->next) {
if (d->ok) if (d->ok)
continue; continue;
#ifndef __MINGW32_VERSION
kill(d->pid, SIGKILL); kill(d->pid, SIGKILL);
#endif
unlink(d->lock); unlink(d->lock);
} }
} }
+18 -2
View File
@@ -1,4 +1,4 @@
/* $Id: menu.c,v 1.43 2004/08/02 15:40:50 ukai Exp $ */ /* $Id: menu.c,v 1.44 2006/04/05 14:18:54 inu Exp $ */
/* /*
* w3m menu.c * w3m menu.c
*/ */
@@ -590,7 +590,6 @@ action_menu(Menu *menu)
*item.variable = item.value; *item.variable = item.value;
if (item.type & MENU_FUNC) { if (item.type & MENU_FUNC) {
CurrentKey = -1; CurrentKey = -1;
CurrentKeyData = NULL;
CurrentCmdData = item.data; CurrentCmdData = item.data;
(*item.func) (); (*item.func) ();
CurrentCmdData = NULL; CurrentCmdData = NULL;
@@ -1738,6 +1737,23 @@ initMenu(void)
} }
} }
DEFUN(interpretAsMenu, INTERPRET_AS_MENU, "Interpret current document as menu-definition")
{
FILE *mf;
MenuList *list;
if ((mf = fopen(Currentbuf->sourcefile, "r")) != NULL) {
interpret_menu(mf);
fclose(mf);
for (list = w3mMenuList; list->id != NULL; list++) {
if (list->item == NULL)
continue;
new_menu(list->menu, list->item);
}
}
}
int int
setMenuItem(MenuItem *item, char *type, char *line) setMenuItem(MenuItem *item, char *type, char *line)
{ {
+5 -1
View File
@@ -1,4 +1,4 @@
/* $Id: parsetagx.c,v 1.14 2003/02/05 16:44:00 ukai Exp $ */ /* $Id: parsetagx.c,v 1.15 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#include "myctype.h" #include "myctype.h"
#include "indep.h" #include "indep.h"
@@ -182,6 +182,8 @@ parse_tag(char **s, int internal)
while (*q && *q != '"') { while (*q && *q != '"') {
if (*q != '\n') if (*q != '\n')
Strcat_char(value, *q); Strcat_char(value, *q);
else
Strcat_char(value, ' ');
if (!tag->need_reconstruct && is_html_quote(*q)) if (!tag->need_reconstruct && is_html_quote(*q))
tag->need_reconstruct = TRUE; tag->need_reconstruct = TRUE;
q++; q++;
@@ -194,6 +196,8 @@ parse_tag(char **s, int internal)
while (*q && *q != '\'') { while (*q && *q != '\'') {
if (*q != '\n') if (*q != '\n')
Strcat_char(value, *q); Strcat_char(value, *q);
else
Strcat_char(value, ' ');
if (!tag->need_reconstruct && is_html_quote(*q)) if (!tag->need_reconstruct && is_html_quote(*q))
tag->need_reconstruct = TRUE; tag->need_reconstruct = TRUE;
q++; q++;
+6 -1
View File
@@ -1,4 +1,4 @@
/* $Id: proto.h,v 1.99 2004/04/16 18:47:19 ukai Exp $ */ /* $Id: proto.h,v 1.100 2006/04/05 14:18:54 inu Exp $ */
/* /*
* This file was automatically generated by version 1.7 of cextract. * This file was automatically generated by version 1.7 of cextract.
* Manual editing not recommended. * Manual editing not recommended.
@@ -137,6 +137,7 @@ extern void tabL(void);
extern void ldDL(void); extern void ldDL(void);
extern void linkLst(void); extern void linkLst(void);
#ifdef USE_MENU #ifdef USE_MENU
extern void interpretAsMenu(void);
extern void linkMn(void); extern void linkMn(void);
extern LinkList *link_menu(Buffer *buf); extern LinkList *link_menu(Buffer *buf);
extern void accessKey(void); extern void accessKey(void);
@@ -145,6 +146,7 @@ extern void listMn(void);
extern void movlistMn(void); extern void movlistMn(void);
extern Anchor *list_menu(Buffer *buf); extern Anchor *list_menu(Buffer *buf);
#else #else
#define interpretAsMenu nulcmd
#define linkMn nulcmd #define linkMn nulcmd
#define accessKey nulcmd #define accessKey nulcmd
#define listMn nulcmd #define listMn nulcmd
@@ -492,6 +494,9 @@ extern void term_title(char *s);
extern void flush_tty(void); extern void flush_tty(void);
extern void toggle_stand(void); extern void toggle_stand(void);
extern char getch(void); extern char getch(void);
#ifdef USE_REMOTE
char getch_select(int fd, int *num);
#endif
extern void bell(void); extern void bell(void);
extern int sleep_till_anykey(int sec, int purge); extern int sleep_till_anykey(int sec, int purge);
#ifdef USE_IMAGE #ifdef USE_IMAGE
+8 -3
View File
@@ -1,4 +1,4 @@
/* $Id: rc.c,v 1.99 2004/08/02 15:40:50 ukai Exp $ */ /* $Id: rc.c,v 1.100 2006/04/05 14:18:54 inu Exp $ */
/* /*
* Initialization file etc. * Initialization file etc.
*/ */
@@ -192,6 +192,7 @@ static int OptionEncode = FALSE;
#endif /* USE_SSL */ #endif /* USE_SSL */
#ifdef USE_COOKIE #ifdef USE_COOKIE
#define CMT_USECOOKIE N_("Enable cookie processing") #define CMT_USECOOKIE N_("Enable cookie processing")
#define CMT_SHOWCOOKIE N_("Print a message when receiving a cookie")
#define CMT_ACCEPTCOOKIE N_("Accept cookies") #define CMT_ACCEPTCOOKIE N_("Accept cookies")
#define CMT_ACCEPTBADCOOKIE N_("Action to be taken on invalid cookie") #define CMT_ACCEPTBADCOOKIE N_("Action to be taken on invalid cookie")
#define CMT_COOKIE_REJECT_DOMAINS N_("Domains to reject cookies from") #define CMT_COOKIE_REJECT_DOMAINS N_("Domains to reject cookies from")
@@ -301,9 +302,7 @@ static struct sel_c dnsorders[] = {
#ifdef USE_COOKIE #ifdef USE_COOKIE
static struct sel_c badcookiestr[] = { static struct sel_c badcookiestr[] = {
{N_S(ACCEPT_BAD_COOKIE_DISCARD), N_("discard")}, {N_S(ACCEPT_BAD_COOKIE_DISCARD), N_("discard")},
#if 0
{N_S(ACCEPT_BAD_COOKIE_ACCEPT), N_("accept")}, {N_S(ACCEPT_BAD_COOKIE_ACCEPT), N_("accept")},
#endif
{N_S(ACCEPT_BAD_COOKIE_ASK), N_("ask")}, {N_S(ACCEPT_BAD_COOKIE_ASK), N_("ask")},
{0, NULL, NULL} {0, NULL, NULL}
}; };
@@ -552,6 +551,8 @@ struct param_ptr params7[] = {
#ifdef USE_COOKIE #ifdef USE_COOKIE
struct param_ptr params8[] = { struct param_ptr params8[] = {
{"use_cookie", P_INT, PI_ONOFF, (void *)&use_cookie, CMT_USECOOKIE, NULL}, {"use_cookie", P_INT, PI_ONOFF, (void *)&use_cookie, CMT_USECOOKIE, NULL},
{"show_cookie", P_INT, PI_ONOFF, (void *)&show_cookie,
CMT_SHOWCOOKIE, NULL},
{"accept_cookie", P_INT, PI_ONOFF, (void *)&accept_cookie, {"accept_cookie", P_INT, PI_ONOFF, (void *)&accept_cookie,
CMT_ACCEPTCOOKIE, NULL}, CMT_ACCEPTCOOKIE, NULL},
{"accept_bad_cookie", P_INT, PI_SEL_C, (void *)&accept_bad_cookie, {"accept_bad_cookie", P_INT, PI_SEL_C, (void *)&accept_bad_cookie,
@@ -1111,7 +1112,11 @@ do_mkdir(const char *dir, long mode)
return mkdir(abs, mode); return mkdir(abs, mode);
} }
#else /* not __EMX__ */ #else /* not __EMX__ */
#ifdef __MINGW32_VERSION
#define do_mkdir(dir,mode) mkdir(dir)
#else
#define do_mkdir(dir,mode) mkdir(dir,mode) #define do_mkdir(dir,mode) mkdir(dir,mode)
#endif /* not __MINW32_VERSION */
#endif /* not __EMX__ */ #endif /* not __EMX__ */
void void
+9 -2
View File
@@ -1,4 +1,4 @@
.TH W3MMAN 1 "Mar 14, 2002" .TH W3MMAN 1 "Nov 5, 2005"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@@ -19,6 +19,9 @@ w3mman \- an interface to the on-line reference manuals by w3m(1)
.br .br
.B w3mman .B w3mman
.RI "[-M " path "] -k " keyword .RI "[-M " path "] -k " keyword
.br
.B w3mman
.RI -l " file
.SH DESCRIPTION .SH DESCRIPTION
.B w3mman .B w3mman
is the system's manual pager by is the system's manual pager by
@@ -31,9 +34,13 @@ Specify
.I path .I path
as MANPATH. as MANPATH.
.TP .TP
.B \-k " keyword" .BI \-k " keyword"
Specify Specify
.I keyword. .I keyword.
.TP
.BI \-l " file"
Specify a
.I file.
.SH ENVIRONMENT .SH ENVIRONMENT
.TP .TP
.B W3MMAN_W3M .B W3MMAN_W3M
+5
View File
@@ -8,6 +8,7 @@ sub usage {
($_ = $0) =~ s@.*/@@; ($_ = $0) =~ s@.*/@@;
print STDERR "$_ [-M <path>] [[<section>] <command>]\n"; print STDERR "$_ [-M <path>] [[<section>] <command>]\n";
print STDERR "$_ [-M <path>] [-k <keyword>]\n"; print STDERR "$_ [-M <path>] [-k <keyword>]\n";
print STDERR "$_ [-l <file>]\n";
exit 1; exit 1;
} }
@@ -20,6 +21,10 @@ while (@ARGV) {
} elsif (/^-k$/) { } elsif (/^-k$/) {
@ARGV || &usage(); @ARGV || &usage();
$query = "?keyword=" . &form_encode(shift @ARGV); $query = "?keyword=" . &form_encode(shift @ARGV);
} elsif (/^-l$/) {
@ARGV || &usage();
$query = "?quit=ok&local=" . &form_encode(shift @ARGV);
$query .= "&pwd=" . &form_encode($ENV{'PWD'});
} elsif (/^-/) { } elsif (/^-/) {
&usage(); &usage();
} elsif (/^\d/ || $_ eq 'n') { } elsif (/^\d/ || $_ eq 'n') {
+32 -15
View File
@@ -19,7 +19,7 @@ if ($QUERY =~ /\=/) {
$query{"man"} = &form_decode($QUERY); $query{"man"} = &form_decode($QUERY);
} }
if (! $query{"man"}) { if ((! $query{"man"}) && (! $query{"local"})) {
if ($query{"keyword"}) { if ($query{"keyword"}) {
$keyword = $query{"keyword"}; $keyword = $query{"keyword"};
$k = &html_quote($keyword); $k = &html_quote($keyword);
@@ -71,21 +71,29 @@ EOF
exit; exit;
} }
$man = $query{"man"}; if ($query{"local"}) {
if ($man =~ s/\((\w+)\)$//) { $file = $query{"local"};
$section = $1; if (! ($file =~ /^\//)) {
$man_section = "$man($1)"; $file = $query{"pwd"} . '/' . $file;
} elsif ($query{"section"}) { }
$section = $query{"section"}; open(F, "$MAN -l $file 2> /dev/null |");
$man_section = "$man($section)";
} else { } else {
$section = ""; $man = $query{"man"};
$man_section = "$man"; if ($man =~ s/\((\w+)\)$//) {
} $section = $1;
$man_section = "$man($1)";
} elsif ($query{"section"}) {
$section = $query{"section"};
$man_section = "$man($section)";
} else {
$section = "";
$man_section = "$man";
}
$section =~ s:([^-\w\200-\377.,])::g; $section =~ s:([^-\w\200-\377.,])::g;
$man =~ s:([^-\w\200-\377.,])::g; $man =~ s:([^-\w\200-\377.,])::g;
open(F, "$MAN $section $man 2> /dev/null |"); open(F, "$MAN $section $man 2> /dev/null |");
}
$ok = 0; $ok = 0;
undef $header; undef $header;
$blank = -1; $blank = -1;
@@ -176,6 +184,11 @@ if ($prev) {
close(F); close(F);
if (! $ok) { if (! $ok) {
if ($query{'quit'}) { if ($query{'quit'}) {
if ($query{'local'}) {
print STDERR "File $file not found.\n";
} else {
print STDERR "No manual entry for $man_section.\n";
}
print STDERR "No manual entry for $man_section.\n"; print STDERR "No manual entry for $man_section.\n";
print <<EOF; print <<EOF;
w3m-control: EXIT w3m-control: EXIT
@@ -190,7 +203,11 @@ Content-Type: text/html
<body> <body>
<pre> <pre>
EOF EOF
print "No manual entry for <B>$man_section</B>.\n"; if ($query{'local'}) {
print "File <B>$file</B> not found.\n";
} else {
print "No manual entry for <B>$man_section</B>.\n";
}
} }
print <<EOF; print <<EOF;
</pre> </pre>
+10 -5
View File
@@ -1,4 +1,4 @@
/* $Id: table.c,v 1.49 2004/01/09 15:46:49 ukai Exp $ */ /* $Id: table.c,v 1.50 2006/04/05 14:18:54 inu Exp $ */
/* /*
* HTML table * HTML table
*/ */
@@ -1984,7 +1984,7 @@ renderTable(struct table *t, int max_width, struct html_feed_environ *h_env)
break; break;
} }
if (t->total_height == 0) { if (t->total_height == 0) {
renderbuf = Strnew(" "); renderbuf = Strnew_charp(" ");
t->total_height++; t->total_height++;
t->total_width = 1; t->total_width = 1;
push_render_image(renderbuf, 1, t->total_width, h_env); push_render_image(renderbuf, 1, t->total_width, h_env);
@@ -2465,11 +2465,16 @@ feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
return TAG_ACTION_PLAIN; return TAG_ACTION_PLAIN;
} }
if (mode->pre_mode & TBLM_INTXTA) { if (mode->pre_mode & TBLM_INTXTA) {
if (mode->end_tag == cmd) { switch (cmd) {
CASE_TABLE_TAG:
case HTML_N_TEXTAREA:
table_close_textarea(tbl, mode, width); table_close_textarea(tbl, mode, width);
return TAG_ACTION_NONE; if (cmd == HTML_N_TEXTAREA)
return TAG_ACTION_NONE;
break;
default:
return TAG_ACTION_FEED;
} }
return TAG_ACTION_FEED;
} }
if (mode->pre_mode & TBLM_SCRIPT) { if (mode->pre_mode & TBLM_SCRIPT) {
if (mode->end_tag == cmd) { if (mode->end_tag == cmd) {
+120 -1
View File
@@ -1,4 +1,4 @@
/* $Id: terms.c,v 1.53 2005/01/18 16:38:01 ukai Exp $ */ /* $Id: terms.c,v 1.54 2006/04/05 14:18:54 inu Exp $ */
/* /*
* An original curses library for EUC-kanji by Akinori ITO, December 1989 * An original curses library for EUC-kanji by Akinori ITO, December 1989
* revised by Akinori ITO, January 1995 * revised by Akinori ITO, January 1995
@@ -15,7 +15,11 @@
#ifdef HAVE_SYS_SELECT_H #ifdef HAVE_SYS_SELECT_H
#include <sys/select.h> #include <sys/select.h>
#endif #endif
#ifndef __MINGW32_VERSION
#include <sys/ioctl.h> #include <sys/ioctl.h>
#else
#include <winsock.h>
#endif /* __MINGW32_VERSION */
#ifdef USE_MOUSE #ifdef USE_MOUSE
#ifdef USE_GPM #ifdef USE_GPM
#include <gpm.h> #include <gpm.h>
@@ -287,6 +291,42 @@ typedef struct sgttyb TerminalMode;
#define MODEFLAG(d) ((d).sg_flags) #define MODEFLAG(d) ((d).sg_flags)
#endif /* HAVE_SGTTY_H */ #endif /* HAVE_SGTTY_H */
#ifdef __MINGW32_VERSION
/* dummy struct */
typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
#define NCCS 32
struct termios
{
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
typedef struct termios TerminalMode;
#define TerminalSet(fd,x) (0)
#define TerminalGet(fd,x) (0)
#define MODEFLAG(d) (0)
/* dummy defines */
#define SIGHUP (0)
#define SIGQUIT (0)
#define ECHO (0)
#define ISIG (0)
#define VEOF (0)
#define ICANON (0)
#define IXON (0)
#define IXOFF (0)
char *ttyname(int);
#endif /* __MINGW32_VERSION */
#define MAX_LINE 200 #define MAX_LINE 200
#define MAX_COLUMN 400 #define MAX_COLUMN 400
@@ -511,6 +551,7 @@ set_tty(void)
void void
ttymode_set(int mode, int imode) ttymode_set(int mode, int imode)
{ {
#ifndef __MINGW32_VERSION
TerminalMode ioval; TerminalMode ioval;
TerminalGet(tty, &ioval); TerminalGet(tty, &ioval);
@@ -525,11 +566,13 @@ ttymode_set(int mode, int imode)
printf("Error occured while set %x: errno=%d\n", mode, errno); printf("Error occured while set %x: errno=%d\n", mode, errno);
reset_exit(SIGNAL_ARGLIST); reset_exit(SIGNAL_ARGLIST);
} }
#endif
} }
void void
ttymode_reset(int mode, int imode) ttymode_reset(int mode, int imode)
{ {
#ifndef __MINGW32_VERSION
TerminalMode ioval; TerminalMode ioval;
TerminalGet(tty, &ioval); TerminalGet(tty, &ioval);
@@ -544,6 +587,7 @@ ttymode_reset(int mode, int imode)
printf("Error occured while reset %x: errno=%d\n", mode, errno); printf("Error occured while reset %x: errno=%d\n", mode, errno);
reset_exit(SIGNAL_ARGLIST); reset_exit(SIGNAL_ARGLIST);
} }
#endif /* __MINGW32_VERSION */
} }
#ifndef HAVE_SGTTY_H #ifndef HAVE_SGTTY_H
@@ -1830,6 +1874,44 @@ getch(void)
return c; return c;
} }
#ifdef USE_REMOTE
char
getch_select(int fd, int *fdn)
{
int maxfd = tty;
fd_set rset;
if (fd < 0 || fd == tty) {
*fdn = 0;
return getch();
}
if (maxfd < fd)
maxfd = fd;
maxfd++;
FD_ZERO(&rset);
FD_SET(tty, &rset);
FD_SET(fd, &rset);
while (select(maxfd, &rset, NULL, NULL, NULL) < 1) {
FD_ZERO(&rset);
FD_SET(tty, &rset);
FD_SET(fd, &rset);
}
if (FD_ISSET(tty, &rset)) {
*fdn = 0;
return getch();
} else if (FD_ISSET(fd, &rset)) {
*fdn = 1;
}
return 0;
}
#endif
#ifdef USE_MOUSE #ifdef USE_MOUSE
#ifdef USE_GPM #ifdef USE_GPM
char char
@@ -2172,3 +2254,40 @@ touch_cursor()
#endif #endif
} }
#endif #endif
#ifdef __MINGW32_VERSION
int tgetent(char *bp, char *name)
{
return 0;
}
int tgetnum(char *id)
{
return -1;
}
int tgetflag(char *id)
{
return 0;
}
char *tgetstr(char *id, char **area)
{
id = "";
}
char *tgoto(char *cap, int col, int row)
{
}
int tputs(char *str, int affcnt, int (*putc)(char))
{
}
char *ttyname(int tty)
{
return "CON";
}
#endif /* __MINGW32_VERSION */
+10 -1
View File
@@ -1,10 +1,14 @@
/* $Id: url.c,v 1.90 2006/02/10 12:52:23 inu Exp $ */ /* $Id: url.c,v 1.91 2006/04/05 14:18:54 inu Exp $ */
#include "fm.h" #include "fm.h"
#ifndef __MINGW32_VERSION
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <netdb.h> #include <netdb.h>
#else
#include <winsock.h>
#endif /* __MINGW32_VERSION */
#include <signal.h> #include <signal.h>
#include <setjmp.h> #include <setjmp.h>
@@ -31,6 +35,11 @@
#define write(a,b,c) write_s(a,b,c) #define write(a,b,c) write_s(a,b,c)
#endif /* __WATT32__ */ #endif /* __WATT32__ */
#ifdef __MINGW32_VERSION
#define write(a,b,c) send(a,b,c, 0)
#define close(fd) closesocket(fd)
#endif
#ifdef INET6 #ifdef INET6
/* see rc.c, "dns_order" and dnsorders[] */ /* see rc.c, "dns_order" and dnsorders[] */
int ai_family_order_table[7][3] = { int ai_family_order_table[7][3] = {