1
0
mirror of https://github.com/rkd77/elinks.git synced 2025-02-02 15:09:23 -05:00

Merge with 80b0607167fe1f707c015a63270ffcb30b969d02

(via http://elinks.cz/elinks.git)
This commit is contained in:
Kalle Olavi Niemitalo 2006-01-14 21:33:04 +02:00 committed by Kalle Olavi Niemitalo
commit 556f933728
6 changed files with 33 additions and 19 deletions

View File

@ -138,7 +138,7 @@ CONFIG_OS2 = @CONFIG_OS2@
CONFIG_OWN_LIBC = @CONFIG_OWN_LIBC@
CONFIG_SCRIPTING_PERL = @CONFIG_SCRIPTING_PERL@
CONFIG_POD2HTML = @CONFIG_POD2HTML@
CONFIG_PYTHON = @CONFIG_PYTHON@
CONFIG_SCRIPTING_PYTHON = @CONFIG_SCRIPTING_PYTHON@
CONFIG_RISCOS = @CONFIG_RISCOS@
CONFIG_SCRIPTING_RUBY = @CONFIG_SCRIPTING_RUBY@
CONFIG_SCANNER = @CONFIG_SCANNER@
@ -147,7 +147,7 @@ CONFIG_SEE = @CONFIG_SEE@
CONFIG_SHA1 = @CONFIG_SHA1@
CONFIG_SMALL = @CONFIG_SMALL@
CONFIG_SMB = @CONFIG_SMB@
CONFIG_SM_SCRIPTING = @CONFIG_SM_SCRIPTING@
CONFIG_SCRIPTING_SPIDERMONKEY = @CONFIG_SCRIPTING_SPIDERMONKEY@
CONFIG_SPIDERMONKEY = @CONFIG_SPIDERMONKEY@
CONFIG_SSL = @CONFIG_SSL@
CONFIG_SYSMOUSE = @CONFIG_SYSMOUSE@

View File

@ -613,13 +613,13 @@ dnl ===================================================================
AC_ARG_ENABLE(sm-scripting,
[ --disable-sm-scripting ECMAScript browser scripting (requires Spidermonkey)],
[if test "$enableval" != no; then enableval="yes"; fi
CONFIG_SM_SCRIPTING="$enableval";])
CONFIG_SCRIPTING_SPIDERMONKEY="$enableval";])
if test "x$CONFIG_SPIDERMONKEY" = xyes &&
test "x$CONFIG_SM_SCRIPTING" = xyes; then
EL_CONFIG(CONFIG_SM_SCRIPTING, [SpiderMonkey])
test "x$CONFIG_SCRIPTING_SPIDERMONKEY" = xyes; then
EL_CONFIG(CONFIG_SCRIPTING_SPIDERMONKEY, [SpiderMonkey])
else
CONFIG_SM_SCRIPTING=no
CONFIG_SCRIPTING_SPIDERMONKEY=no
fi
@ -773,7 +773,7 @@ fi
if test "$cf_result" != "yes"; then
EL_RESTORE_FLAGS
else
EL_CONFIG(CONFIG_PYTHON, [Python])
EL_CONFIG(CONFIG_SCRIPTING_PYTHON, [Python])
CFLAGS="$CFLAGS_X"
AC_SUBST(PYTHON_LIBS)
@ -855,13 +855,13 @@ dnl ===================================================================
dnl Setup global scripting
dnl ===================================================================
EL_CONFIG_DEPENDS(CONFIG_SCRIPTING, [CONFIG_SCRIPTING_GUILE CONFIG_SCRIPTING_LUA CONFIG_SCRIPTING_PERL CONFIG_PYTHON CONFIG_SCRIPTING_RUBY CONFIG_SM_SCRIPTING], [Browser scripting])
EL_CONFIG_DEPENDS(CONFIG_SCRIPTING, [CONFIG_SCRIPTING_GUILE CONFIG_SCRIPTING_LUA CONFIG_SCRIPTING_PERL CONFIG_SCRIPTING_PYTHON CONFIG_SCRIPTING_RUBY CONFIG_SCRIPTING_SPIDERMONKEY], [Browser scripting])
AC_SUBST(CONFIG_SCRIPTING_GUILE)
AC_SUBST(CONFIG_SCRIPTING_LUA)
AC_SUBST(CONFIG_SCRIPTING_PERL)
AC_SUBST(CONFIG_PYTHON)
AC_SUBST(CONFIG_SCRIPTING_PYTHON)
AC_SUBST(CONFIG_SCRIPTING_RUBY)
AC_SUBST(CONFIG_SM_SCRIPTING)
AC_SUBST(CONFIG_SCRIPTING_SPIDERMONKEY)
AC_SUBST(CONFIG_SCRIPTING)

View File

@ -408,7 +408,7 @@ CONFIG_HTML_HIGHLIGHT=no
#
# Default: enabled if Spidermonkey is found
CONFIG_SM_SCRIPTING=yes
CONFIG_SCRIPTING_SPIDERMONKEY=yes
### Mouse Support

View File

@ -260,6 +260,8 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
unsigned char *target = NULL;
unsigned char *url, *url2;
struct uri *uri;
struct SEE_value url_value, target_value;
static struct SEE_string *url_string = NULL, *target_string = NULL;
#if 0
static time_t ratelimit_start;
static int ratelimit_count;
@ -288,7 +290,18 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
return;
}
#endif
url = SEE_value_to_unsigned_char(interp, argv[0]);
SEE_ToString(interp, argv[0], &url_value);
if (argc > 1) {
SEE_ToString(interp, argv[1], &target_value);
if (url_string && target_string &&
!SEE_string_cmp(url_value.u.string, url_string)
&& !SEE_string_cmp(target_value.u.string, target_string)) {
return;
}
url_string = url_value.u.string;
target_string = target_value.u.string;
}
url = SEE_string_to_unsigned_char(url_value.u.string);
if (!url) return;
/* TODO: Support for window naming and perhaps some window features? */
@ -301,8 +314,9 @@ js_window_open(struct SEE_interpreter *interp, struct SEE_object *self,
mem_free(url2);
if (!uri) return;
if (argc > 1)
target = SEE_value_to_unsigned_char(interp, argv[1]);
if (argc > 1) {
target = SEE_string_to_unsigned_char(target_value.u.string);
}
if (target && *target && strcasecmp(target, "_blank")) {
struct delayed_open *deo = mem_calloc(1, sizeof(*deo));

View File

@ -4,9 +4,9 @@ include $(top_builddir)/Makefile.config
SUBDIRS-$(CONFIG_SCRIPTING_GUILE) += guile
SUBDIRS-$(CONFIG_SCRIPTING_LUA) += lua
SUBDIRS-$(CONFIG_SCRIPTING_PERL) += perl
SUBDIRS-$(CONFIG_PYTHON) += python
SUBDIRS-$(CONFIG_SCRIPTING_PYTHON) += python
SUBDIRS-$(CONFIG_SCRIPTING_RUBY) += ruby
SUBDIRS-$(CONFIG_SM_SCRIPTING) += smjs
SUBDIRS-$(CONFIG_SCRIPTING_SPIDERMONKEY) += smjs
OBJS = scripting.o

View File

@ -26,7 +26,7 @@
/* Error reporting. */
#if defined(CONFIG_SCRIPTING_RUBY) || defined(CONFIG_SEE) || defined(CONFIG_SM_SCRIPTING)
#if defined(CONFIG_SCRIPTING_RUBY) || defined(CONFIG_SEE) || defined(CONFIG_SCRIPTING_SPIDERMONKEY)
void
report_scripting_error(struct module *module, struct session *ses,
unsigned char *msg)
@ -71,13 +71,13 @@ static struct module *scripting_modules[] = {
#ifdef CONFIG_SCRIPTING_PERL
&perl_scripting_module,
#endif
#ifdef CONFIG_PYTHON
#ifdef CONFIG_SCRIPTING_PYTHON
&python_scripting_module,
#endif
#ifdef CONFIG_SCRIPTING_RUBY
&ruby_scripting_module,
#endif
#ifdef CONFIG_SM_SCRIPTING
#ifdef CONFIG_SCRIPTING_SPIDERMONKEY
&smjs_scripting_module,
#endif
NULL,