[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./ChangeLog ./configure.ac utilities/Make...
From: |
Rob Savoye |
Subject: |
[Gnash-commit] gnash ./ChangeLog ./configure.ac utilities/Make... |
Date: |
Mon, 06 Mar 2006 01:43:26 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Rob Savoye <address@hidden> 06/03/06 01:43:26
Modified files:
. : ChangeLog configure.ac
utilities : Makefile.am
macros : kde.m4 opengl.m4 pthreads.m4 sdl.m4
server : Date.cpp action.cpp network.cpp network.h
shm.cpp shm.h swf.h
libbase : Makefile.am container.cpp container.h
dlmalloc.h utility.h
Log message:
* server/Date.cpp: If we don't have gettimeofday, use
ftime instead.
* server/shm.h: Add support for win32 shared memory.
* server/shm.cpp: Add support for win32 shared memory.
* server/network.h: Add support to use winsock.
* server/network.cpp: Add support to use winsock.
* configure.ac: Add tests for sysconf(), shmget(), shmat(),
mmap(), gettimeofday(), socket(), CreateFileMapping(), and
winsock.h. This covers all the differences between mingw builds
and native unix builds.
* libbase/container.h: Don't use pthread hack for BSD whcn cross
compiling with mingw.
* libbase/utility.h: Don't define windows specific assert()
replacement when using mingw.
* libgeometry/kd_tree_dynamic.cp: Include wctype.h and wchar.h to
shut up mingw.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.173&tr2=1.174&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/configure.ac.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/utilities/Makefile.am.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/kde.m4.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/opengl.m4.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/pthreads.m4.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/macros/sdl.m4.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/Date.cpp.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/action.cpp.diff?tr1=1.54&tr2=1.55&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/network.cpp.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/network.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/shm.cpp.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/shm.h.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/swf.h.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/libbase/Makefile.am.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/libbase/container.cpp.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/libbase/container.h.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/libbase/dlmalloc.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/libbase/utility.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.173 gnash/ChangeLog:1.174
--- gnash/ChangeLog:1.173 Sun Mar 5 01:57:08 2006
+++ gnash/ChangeLog Mon Mar 6 01:43:25 2006
@@ -1,3 +1,28 @@
+2006-03-05 Rob Savoye <address@hidden>
+
+ * server/Date.cpp: If we don't have gettimeofday, use
+ ftime instead.
+ * server/shm.h: Add support for win32 shared memory.
+ * server/shm.cpp: Add support for win32 shared memory.
+ * server/network.h: Add support to use winsock.
+ * server/network.cpp: Add support to use winsock.
+ * configure.ac: Add tests for sysconf(), shmget(), shmat(),
+ mmap(), gettimeofday(), socket(), CreateFileMapping(), and
+ winsock.h. This covers all the differences between mingw builds
+ and native unix builds.
+ * libbase/container.h: Don't use pthread hack for BSD whcn cross
+ compiling with mingw.
+ * libbase/utility.h: Don't define windows specific assert()
+ replacement when using mingw.
+ * libgeometry/kd_tree_dynamic.cp: Include wctype.h and wchar.h to
+ shut up mingw.
+
+ * server/action.cpp (gnash): Replace isblank() with testing for
+ space and tab so it compiles with mingw32.
+
+ * macros/kde.m4: Use our zlib tests, not the KDE one because the
+ Gnash test works when cross compiling.
+
2006-03-04 Rob Savoye <address@hidden>
* Makefile.am: Always build the plugin now.
Index: gnash/configure.ac
diff -u gnash/configure.ac:1.45 gnash/configure.ac:1.46
--- gnash/configure.ac:1.45 Sun Mar 5 01:57:08 2006
+++ gnash/configure.ac Mon Mar 6 01:43:25 2006
@@ -160,7 +160,6 @@
GNASH_PATH_FIREFOX
AC_PATH_XTRA
AC_CHECK_HEADERS(dejagnu.h)
-AC_CHECK_HEADERS(stdint.h)
AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
AC_CHECK_LIB(Xi, XInput_find_display)
AC_CHECK_LIB(X11, XDisableAccessControl)
@@ -170,7 +169,6 @@
AC_CHECK_FUNCS(vsnprintf)
dnl AC_CHECK_FUNCS(finite isfinite)
-AC_MSG_CHECKING([for finite])
AC_CACHE_CHECK([for finite], ac_cv_finite,
[AC_TRY_LINK([#include <math.h>],
[double x; int y; y = finite(x);],
@@ -178,13 +176,9 @@
ac_cv_finite=no
)])
if test x"$ac_cv_finite" = x"yes"; then
- AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_FINITE, [], [Has finite])
-else
- AC_MSG_RESULT(no)
fi
-AC_MSG_CHECKING([for isfinite])
AC_CACHE_CHECK([for isfinite], ac_cv_isfinite,
[AC_TRY_LINK([#include <math.h>],
[double x; int y; y = isfinite(x);],
@@ -192,12 +186,19 @@
ac_cv_isfinite=no
)])
if test x"$ac_cv_isfinite" = x"yes"; then
- AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ISFINITE, [], [Has isfinite])
-else
- AC_MSG_RESULT(no)
fi
+AC_CHECK_FUNCS(sysconf)
+AC_CHECK_FUNCS(shmget)
+AC_CHECK_FUNCS(shmat)
+AC_CHECK_FUNCS(mmap)
+AC_CHECK_FUNCS(gettimeofday)
+dnl Look for Win32 networking stuff
+AC_CHECK_HEADERS(winsock.h)
+AC_CHECK_FUNCS(socket)
+AC_CHECK_FUNCS(CreateFileMappingA)
+
GNASH_HASHMAP
dnl AC_CHECK_LIB(c, mremap)
GNASH_PATH_ZLIB
@@ -576,7 +577,7 @@
else
echo " POSIX Threads flags are: default include path"
fi
- echo " POSIX Threads libs are: $PTHREAD_LIBS"
+ echo " POSIX Threads lib is: $PTHREAD_LIBS"
else
echo "ERROR: No pthread development package installed!"
nogo=true
Index: gnash/libbase/Makefile.am
diff -u gnash/libbase/Makefile.am:1.14 gnash/libbase/Makefile.am:1.15
--- gnash/libbase/Makefile.am:1.14 Thu Mar 2 17:34:36 2006
+++ gnash/libbase/Makefile.am Mon Mar 6 01:43:26 2006
@@ -38,10 +38,11 @@
-I$(top_srcdir) \
-I$(top_srcdir)/server \
$(PTHREAD_CFLAGS) \
+ $(OPENGL_CFLAGS) \
+ $(LIBXML_CFLAGS) \
$(PNG_CFLAGS) \
$(ZLIB_CFLAGS) \
- $(JPEG_CFLAGS) \
- $(LIBXML_CFLAGS)
+ $(JPEG_CFLAGS)
libgnashbase_la_SOURCES = \
config.cpp \
@@ -99,5 +100,4 @@
$(MAKE) CXXFLAGS="$(CXXFLAGS) -fmudflap" LDFLAGS="$(LDFLAGS) -lmudflap"
clean-hook:
- -rm -f core.*
-
+ -rm -f core.* *.obj
Index: gnash/libbase/container.cpp
diff -u gnash/libbase/container.cpp:1.4 gnash/libbase/container.cpp:1.5
--- gnash/libbase/container.cpp:1.4 Thu Mar 2 17:34:36 2006
+++ gnash/libbase/container.cpp Mon Mar 6 01:43:26 2006
@@ -9,10 +9,10 @@
#include "config.h"
#endif
+#include "container.h"
#include <stdarg.h>
#include "utf8.h"
#include "tu_random.h"
-#include "container.h"
void tu_string::append_wide_char(uint16 c)
{
Index: gnash/libbase/container.h
diff -u gnash/libbase/container.h:1.9 gnash/libbase/container.h:1.10
--- gnash/libbase/container.h:1.9 Thu Mar 2 17:34:36 2006
+++ gnash/libbase/container.h Mon Mar 6 01:43:26 2006
@@ -39,12 +39,16 @@
// corrent paths supplied, this one file barfs with GCC 3.3.3 on
// NetBSD, so screw it, and just hack it for now. We hope this entire
// file will be gond soon anyway.
+#ifndef HAVE_WINSOCK_H
#define _LIB_PTHREAD_ 1
#define _LIB_PTHREAD_TYPES_H 1
#include <sys/types.h>
#include <pthread.h>
+#include <time.h>
+// This screws up MingW
clock_t clock __P((void));
size_t strftime __P((char *, size_t, const char *, const struct tm *));
+#endif
//#include "tu_config.h"
#include "utility.h"
Index: gnash/libbase/dlmalloc.h
diff -u gnash/libbase/dlmalloc.h:1.2 gnash/libbase/dlmalloc.h:1.3
--- gnash/libbase/dlmalloc.h:1.2 Sun Feb 26 15:49:29 2006
+++ gnash/libbase/dlmalloc.h Mon Mar 6 01:43:26 2006
@@ -29,6 +29,8 @@
extern "C" {
#endif
+#ifdef USE_DL_MALLOC
+
#include <stddef.h> /* for size_t */
// WK macosx doesn't have a malloc.h
@@ -38,8 +40,6 @@
#include <stdlib.h> /* tulrich */
#endif
-#ifdef USE_DL_MALLOC
-
#define USE_DL_PREFIX
Index: gnash/libbase/utility.h
diff -u gnash/libbase/utility.h:1.2 gnash/libbase/utility.h:1.3
--- gnash/libbase/utility.h:1.2 Sun Feb 26 15:49:30 2006
+++ gnash/libbase/utility.h Mon Mar 6 01:43:26 2006
@@ -23,9 +23,10 @@
// On windows, replace ANSI assert with our own, for a less annoying
// debugging experience.
//int tu_testbed_assert_break(const char* filename, int linenum, const char*
expression);
+#ifndef __MINGW32__
#undef assert
#define assert(x) if (!(x)) { __asm { int 3 } } //
tu_testbed_assert_break(__FILE__, __LINE__, #x))
-
+#endif
#endif // not NDEBUG
#endif // _WIN32
@@ -68,7 +69,6 @@
#define M_PI 3.141592654
#endif // M_PI
-
//
// some misc handy math functions
//
@@ -79,7 +79,6 @@
inline int imin(int a, int b) { if (a < b) return a; else return b; }
inline float fmin(float a, float b) { if (a < b) return a; else return b; }
-
inline int iclamp(int i, int min, int max) {
assert( min <= max );
return imax(min, imin(i, max));
Index: gnash/macros/kde.m4
diff -u gnash/macros/kde.m4:1.3 gnash/macros/kde.m4:1.4
--- gnash/macros/kde.m4:1.3 Sun Mar 5 01:57:08 2006
+++ gnash/macros/kde.m4 Mon Mar 6 01:43:25 2006
@@ -2584,42 +2584,9 @@
AC_DEFUN([AC_FIND_ZLIB],
[
AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
-AC_MSG_CHECKING([for libz])
-AC_CACHE_VAL(ac_cv_lib_z,
-[
-kde_save_LIBS="$LIBS"
-LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
-kde_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
-AC_TRY_LINK(dnl
-[
-#include<zlib.h>
-],
-[
- char buf[42];
- gzFile f = (gzFile) 0;
- /* this would segfault.. but we only link, don't run */
- (void) gzgets(f, buf, sizeof(buf));
- return (zlibVersion() == ZLIB_VERSION);
-],
- eval "ac_cv_lib_z='-lz'",
- eval "ac_cv_lib_z=no")
-LIBS="$kde_save_LIBS"
-CFLAGS="$kde_save_CFLAGS"
-])dnl
-if test ! "$ac_cv_lib_z" = no; then
- AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
- LIBZ="$ac_cv_lib_z"
- AC_MSG_RESULT($ac_cv_lib_z)
-else
- AC_MSG_ERROR(not found.
- Possibly configure picks up an outdated version
- installed by XFree86. Remove it from your system.
-
- Check your installation and look into config.log)
- LIBZ=""
-fi
+GNASH_PATH_ZLIB
+LIBZ=$ZLIB_LIBS
AC_SUBST(LIBZ)
])
@@ -4822,8 +4789,7 @@
kde_libs_prefix=`$KDECONFIG --prefix`
if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
- AC_MSG_NOTICE([$KDECONFIG --prefix outputed the non existant prefix
'$kde_libs_prefix' for kdelibs.
- This means it has been moved since you installed it.])
+ AC_MSG_NOTICE([$KDECONFIG --prefix outputed the non existant prefix
'$kde_libs_prefix' for kdelibs.])
fi
kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
kde_libs_suffix=`$KDECONFIG --libsuffix`
Index: gnash/macros/opengl.m4
diff -u gnash/macros/opengl.m4:1.11 gnash/macros/opengl.m4:1.12
--- gnash/macros/opengl.m4:1.11 Sun Feb 26 15:49:30 2006
+++ gnash/macros/opengl.m4 Mon Mar 6 01:43:25 2006
@@ -72,56 +72,60 @@
fi
dnl Look for the libraries.
- AC_ARG_WITH(opengl_lib, [ --with-opengl-libraries directory where OpenGL
libraries are], with_opengl_libraries=${withval})
- AC_CACHE_VAL(ac_cv_path_opengl_libraries,[
- if test x"${with_opengl_libraries}" != x ; then
- if test -f ${with_opengl_libraries}/libGL.a -o -f
${with_opengl_libraries}/libGL.so; then
- ac_cv_path_opengl_libraries=`(cd ${with_opengl_libraries}; pwd)`
+ AC_ARG_WITH(opengl_lib, [ --with-opengl-lib directory where OpenGL
libraries are], with_opengl_lib=${withval})
+ AC_CACHE_VAL(ac_cv_path_opengl_lib,[
+ if test x"${with_opengl_lib}" != x ; then
+ if test -f ${with_opengl_lib}/libGL.a -o -f ${with_opengl_lib}/libGL.so;
then
+ ac_cv_path_opengl_lib=-L`(cd ${with_opengl_lib}; pwd) -lGL -lGLU`
else
- AC_MSG_ERROR([${with_opengl_libraries} directory doesn't contain
libGL.])
+ if test -f ${with_opengl_lib}/libopengl32.a -o; then
+ ac_cv_path_opengl_lib=-L`(cd ${with_opengl_lib}; pwd) -lopengl32
-lglu32`
+ AC_MSG_ERROR([${with_opengl_lib} directory doesn't contain libGL.])
+ fi
fi
fi
])
dnl If the header doesn't exist, there is no point looking for the library.
- if test x"${ac_cv_path_opengl_libraries}" = x; then
- AC_CHECK_LIB(GL, glBegin, [ac_cv_path_opengl_libraries=""],[
- AC_MSG_CHECKING([for libGL library])
- libslist="${prefix}/lib64 ${prefix}/lib /usr/X11R6/lib /usr/lib64
/usr/lib /usr/local/lib /opt/lib /usr/pkg/lib .. ../.."
+ if test x"${ac_cv_path_opengl_lib}" = x; then
+ AC_CHECK_LIB(GL, glBegin, [ac_cv_path_opengl_lib="-lGL -lGLU"],[
+ AC_MSG_CHECKING([for OpenGL library])
+ libslist="/usr/i586-mingw32msvc/lib ${prefix}/lib64 ${prefix}/lib
/usr/X11R6/lib /usr/lib64 /usr/lib /usr/local/lib /opt/lib /usr/pkg/lib ..
../.."
for i in $libslist; do
if test -f $i/libGL.a -o -f $i/libGL.so; then
if test x"$i" != x"/usr/lib"; then
- ac_cv_path_opengl_libraries="$i"
- AC_MSG_RESULT(${ac_cv_path_opengl_libraries})
+ ac_cv_path_opengl_lib="$i"
+# AC_MSG_RESULT(${ac_cv_path_opengl_lib})
break
else
- ac_cv_path_opengl_libraries=""
- AC_MSG_RESULT(yes)
+ if test -f $i/libopengl32.a; then
+ ac_cv_path_opengl_lib="-L$i -lopengl32 -lglu32"
+ break
+ fi
+# AC_MSG_RESULT(yes)
break
fi
fi
done])
else
- if test -f ${ac_cv_path_opengl_libraries}/libGL.a -o -f
${ac_cv_path_opengl_libraries}/libGL.so; then
- if test x"${ac_cv_path_opengl_libraries}" != x"/usr/lib"; then
- ac_cv_path_opengl_libraries="${ac_cv_path_opengl_libraries}"
+ if test -f ${ac_cv_path_opengl_lib}/libGL.a -o -f
${ac_cv_path_opengl_lib}/libGL.so; then
+ if test x"${ac_cv_path_opengl_lib}" != x"/usr/lib"; then
+ ac_cv_path_opengl_lib="${ac_cv_path_opengl_lib}"
else
- ac_cv_path_opengl_libraries=""
+ ac_cv_path_opengl_lib=""
fi
fi
fi
- if test x"${ac_cv_path_opengl_libraries}" != x ; then
- OPENGL_LIBS="${ac_cv_path_opengl_libraries}"
- else
- OPENGL_LIBS=""
- fi
+ if test x"${ac_cv_path_opengl_libraries}" != x ; then
+ ac_cv_path_opengl_lib="-L${ac_cv_path_opengl_lib} -LGL -lGLU"
+ fi
fi
- if test x"${ac_cv_path_opengl_libraries}" != x ; then
- OPENGL_LIBS="-L${ac_cv_path_opengl_libraries} -lGL -lGLU"
+ if test x"${ac_cv_path_opengl_lib}" != x ; then
+ OPENGL_LIBS="${ac_cv_path_opengl_lib}"
else
- OPENGL_LIBS="-lGL -lGLU"
+ OPENGL_LIBS=""
fi
AM_CONDITIONAL(opengl, [test x$opengl = xyes])
Index: gnash/macros/pthreads.m4
diff -u gnash/macros/pthreads.m4:1.6 gnash/macros/pthreads.m4:1.7
--- gnash/macros/pthreads.m4:1.6 Sat Mar 4 16:32:24 2006
+++ gnash/macros/pthreads.m4 Mon Mar 6 01:43:25 2006
@@ -73,7 +73,7 @@
AC_CACHE_VAL(ac_cv_path_pthread_lib,[
if test x"${with_pthread_lib}" != x ; then
if test -f ${with_pthread_lib}/libpthread.a -o -f
${with_pthread_lib}/libpthread.so; then
- ac_cv_path_pthread_lib=`(cd ${with_pthread_incl}; pwd)`
+ ac_cv_path_pthread_lib=-L`(cd ${with_pthread_lib}; pwd)`
else
AC_MSG_ERROR([${with_pthread_lib} directory doesn't contain Pthread
library.])
fi
@@ -88,7 +88,7 @@
for i in $libslist; do
if test -f $i/libpthread.a -o -f $i/libpthread.so; then
if test x"$i" != x"/usr/lib"; then
- ac_cv_path_pthread_lib="-L$i"
+ ac_cv_path_pthread_lib="-L$i -lpthread"
AC_MSG_RESULT(${ac_cv_path_pthread_lib})
break
else
Index: gnash/macros/sdl.m4
diff -u gnash/macros/sdl.m4:1.10 gnash/macros/sdl.m4:1.11
--- gnash/macros/sdl.m4:1.10 Sun Feb 26 15:49:30 2006
+++ gnash/macros/sdl.m4 Mon Mar 6 01:43:25 2006
@@ -66,7 +66,7 @@
AC_CACHE_VAL(ac_cv_path_sdl_lib,[
if test x"${with_sdl_libs}" != x ; then
if test -f ${with_sdl_libs}/libSDL.a -o -f ${with_sdl_libs}/libSDL.so; then
- ac_cv_path_sdl_lib=`(cd ${with_sdl_libs}; pwd)`
+ ac_cv_path_sdl_lib=-L`(cd ${with_sdl_libs}; pwd)` -lSDL
else
AC_MSG_ERROR([${with_sdl_libs} directory doesn't contain libsdl.a])
fi
@@ -151,12 +151,12 @@
fi
dnl Look for the library
- AC_ARG_WITH(sdl_mixer_lib, [ --with-sdl_mixer-lib directory where
sdl_mixer library is], with_sdl_mixer_lib=${withval})
+ AC_ARG_WITH(sdl_mixer_lib, [ --with-sdl-mixer-lib directory where
sdl_mixer library is], with_sdl_mixer_lib=${withval})
AC_MSG_CHECKING([for sdl_mixer library])
AC_CACHE_VAL(ac_cv_path_sdl_mixer_lib,[
if test x"${with_sdl_mixer_libs}" != x ; then
if test -f ${with_sdl_mixer_libs}/libSDL_mixer.a -o -f
${with_sdl_mixer_libs}/libSDL_mixer.so -o -f $i/libSDL_mixer-1.2.a -o -f
$i/libSDL_mixer-1.2.so; then
- ac_cv_path_sdl_mixer_lib=`(cd ${with_sdl_mixer_libs}; pwd)`
+ ac_cv_path_sdl_mixer_lib=-L`(cd ${with_sdl_mixer_lib}; pwd)` -lSDL_mixer
else
AC_MSG_ERROR([${with_sdl_mixer_libs} directory doesn't contain
libsdl_mixer.a])
fi
Index: gnash/server/Date.cpp
diff -u gnash/server/Date.cpp:1.4 gnash/server/Date.cpp:1.5
--- gnash/server/Date.cpp:1.4 Mon Feb 13 10:44:12 2006
+++ gnash/server/Date.cpp Mon Mar 6 01:43:25 2006
@@ -24,6 +24,7 @@
#include "Date.h"
#include <time.h>
#include <sys/time.h>
+#include <sys/timeb.h>
namespace gnash {
@@ -249,13 +250,20 @@
date_obj->set_member("tostring", &date_tostring);
date_obj->set_member("utc", &date_utc);
- if (fn.nargs == 0)
- {
+ struct tm *ti;
+ if (fn.nargs == 0) {
+#ifndef HAVE_GETTIMEOFDAY
+ struct timeb tb;
+
+ ftime (&tb);
+ ti = localtime(&tb.time);
+#else
struct timeval tEnd;
gettimeofday(&tEnd,NULL);
date_obj->obj.millisecond = tEnd.tv_usec;
time_t t = time(&t);
- struct tm *ti = localtime(&t);
+ ti = localtime(&t);
+#endif
date_obj->obj.second = ti->tm_sec;
date_obj->obj.minute = ti->tm_min;
date_obj->obj.hour = ti->tm_hour;
Index: gnash/server/action.cpp
diff -u gnash/server/action.cpp:1.54 gnash/server/action.cpp:1.55
--- gnash/server/action.cpp:1.54 Wed Mar 1 00:54:43 2006
+++ gnash/server/action.cpp Mon Mar 6 01:43:25 2006
@@ -1206,7 +1206,7 @@
bool bNegative;
// Skip leading whitespace
- while (0 != isblank(input[0]))
+ while ((input[0] == ' ') || (input[0] == 0x9))
input++;
if (input[0] == '-')
Index: gnash/server/network.cpp
diff -u gnash/server/network.cpp:1.3 gnash/server/network.cpp:1.4
--- gnash/server/network.cpp:1.3 Sun Feb 5 05:42:02 2006
+++ gnash/server/network.cpp Mon Mar 6 01:43:25 2006
@@ -28,8 +28,8 @@
#include "network.h"
#include <sys/types.h>
-#ifdef HAVE_WINSOCK
-# include <WinSock2.h>
+#ifdef HAVE_WINSOCK_H
+# include <winsock2.h>
# include <windows.h>
# include <fcntl.h>
# include <sys/stat.h>
@@ -259,8 +259,10 @@
}
}
}
-
+
+#ifndef HAVE_WINSOCK_H
fcntl(_listenfd, F_SETFL, O_NONBLOCK); // Don't let accept() block
+#endif
_sockfd = accept(_listenfd, &fsin, &alen);
if (_sockfd < 0) {
@@ -367,8 +369,8 @@
{
log_msg("The connect() socket for fd #%d never was available
for writing!\n",
_sockfd);
-#ifdef HAVE_WINSOCK
- ::shutdown(_sockfd, SHUT_BOTH);
+#ifdef HAVE_WINSOCK_H
+ ::shutdown(_sockfd, 0); // FIXME: was SHUT_BOTH
#else
::shutdown(_sockfd, SHUT_RDWR);
#endif
@@ -403,7 +405,7 @@
printf("\tConnected at port %d on IP %s for fd #%d\n", port,
::inet_ntoa(sock_in.sin_addr), _sockfd);
-#ifndef HAVE_WINSOCK
+#ifndef HAVE_WINSOCK_H
fcntl(_sockfd, F_SETFL, O_NONBLOCK);
#endif
@@ -456,7 +458,9 @@
if (close(sockfd) < 0) {
log_msg("WARNING: Unable to close the socket for fd%d\n%s\n",
sockfd, strerror(errno));
+#ifndef HAVE_WINSOCK_H
sleep(1);
+#endif
retries++;
} else {
log_msg("Closed the socket on fd #%d\n", sockfd);
Index: gnash/server/network.h
diff -u gnash/server/network.h:1.2 gnash/server/network.h:1.3
--- gnash/server/network.h:1.2 Sun Feb 5 01:10:58 2006
+++ gnash/server/network.h Mon Mar 6 01:43:25 2006
@@ -23,8 +23,17 @@
#endif
#include <string>
-#include <netinet/in.h>
-#include <arpa/inet.h>
+
+#ifndef HAVE_WINSOCK_H
+# include <netinet/in.h>
+# include <arpa/inet.h>
+#else
+# include <winsock2.h>
+# include <windows.h>
+# include <fcntl.h>
+# include <sys/stat.h>
+# include <io.h>
+#endif
#include "xml.h"
#include "impl.h"
@@ -36,6 +45,12 @@
const int RTMP = 1935;
const int RTMPT = 80;
+#ifdef HAVE_WINSOCK_H
+ typedef long in_addr_t;
+ in_addr_t inet_lnaof(struct in_addr);
+ typedef int socklen_t;
+#endif
+
class Network {
public:
Network();
Index: gnash/server/shm.cpp
diff -u gnash/server/shm.cpp:1.5 gnash/server/shm.cpp:1.6
--- gnash/server/shm.cpp:1.5 Fri Feb 17 16:13:33 2006
+++ gnash/server/shm.cpp Mon Mar 6 01:43:25 2006
@@ -24,9 +24,16 @@
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
-#include <sys/ipc.h>
+#ifndef HAVE_WINSOCK_H
#include <sys/mman.h>
#include <sys/shm.h>
+#include <sys/ipc.h>
+#else
+#include <windows.h>
+#include <process.h>
+#include <fcntl.h>
+#include <io.h>
+#endif
#include <fcntl.h>
#include <string>
#include <vector>
@@ -51,6 +58,10 @@
# endif
#endif
+#ifndef _SC_PAGESIZE
+#define _SC_PAGESIZE 8
+#endif
+
#define FLAT_ADDR_SPACE 1
Shm::Shm() :_addr(0), _alloced(0), _size(0), _shmkey(0), _shmfd(0)
@@ -91,46 +102,72 @@
// __PRETTY_FUNCTION__, DEFAULT_SHM_SIZE, absfilespec.c_str());
// Adjust the allocated amount of memory to be on a page boundary.
+ // We can only do this on POSIX systems, so for braindead win32,
+ // don't readjust the size.
+#ifdef HAVE_SYSCONF
long pageSize = sysconf(_SC_PAGESIZE);
if (_size % pageSize) {
_size += pageSize - _size % pageSize;
}
+#endif
errno = 0;
-
#ifdef HAVE_SHM_OPEN
// Create the shared memory segment
_shmfd = shm_open(filespec, O_RDWR|O_CREAT|O_EXCL|O_TRUNC,
S_IRUSR|S_IWUSR);
#else
+# ifdef HAVE_SHMGET
const int shmflg = 0660 | IPC_CREAT | IPC_EXCL;
shmid_ds shmInfo;
_shmkey = 1234567; // FIXME:
filespec = "1234567";
_shmfd = shmget(_shmkey, _size, shmflg);
+ if (_shmfd < 0 && errno == EEXIST)
+# else
+ _shmhandle = CreateFileMapping ((HANDLE) 0xFFFFFFFF, NULL,
+ PAGE_READWRITE, 0,
+ _size, filespec);
+ if (_shmhandle <= 0)
+# endif
#endif
+ {
// If it already exists, then just attach to it.
- if (_shmfd < 0 && errno == EEXIST) {
exists = true;
log_msg("Shared Memory segment \"%s\" already exists\n",
filespec);
#ifdef HAVE_SHM_OPEN
_shmfd = shm_open(filespec, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
#else
+# ifdef HAVE_SHMGET
// Get the shared memory id for this segment
_shmfd = shmget(_shmkey, _size, 0);
+# else
+ _shmhandle = CreateFileMapping ((HANDLE) 0xFFFFFFFF, NULL,
+ PAGE_READWRITE, 0,
+ _size, filespec);
+# endif
#endif
}
// MacOSX returns this when you use O_EXCL for shm_open() instead
// of EEXIST
- if (_shmfd < 0 && errno == EINVAL) {
+#ifdef HAVE_SHMGET
+ if (_shmfd < 0 && errno == EINVAL)
+#else
+ if (_shmhandle <= 0 && errno == EINVAL)
+#endif
+ {
exists = true;
log_msg(
#ifdef HAVE_SHM_OPEN
- "WARNING: shm_open failed, retrying: %s\n",
+ "WARNING: shm_open() failed, retrying: %s\n",
#else
- "WARNING: shmget failed, retrying: %s\n",
+# ifdef HAVE_SHMGET
+ "WARNING: shmget() failed, retrying: %s\n",
+# else
+ "WARNING: CreateFileMapping() failed, retrying: %s\n",
+# endif
#endif
strerror(errno));
// fd = shm_open(filespec, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
@@ -138,26 +175,40 @@
}
// We got the file descriptor, now map it into our process.
- if (_shmfd >= 0) {
+#ifdef HAVE_SHMGET
+ if (_shmfd >= 0)
+#else
+ if (_shmhandle >= 0)
+#endif
+ {
#ifdef HAVE_SHM_OPEN
if (!exists) {
// Set the size so we can write to new segment
ftruncate(_shmfd, _size);
}
-
+# ifdef HAVE_MMAP
_addr = static_cast<char *>(mmap(0, _size,
- PROT_READ|PROT_WRITE|PROT_EXEC,
-
MAP_SHARED|MAP_INHERIT|MAP_HASSEMAPHORE, _shmfd, 0));
+ PROT_READ|PROT_WRITE|PROT_EXEC,
+ MAP_SHARED|MAP_INHERIT|MAP_HASSEMAPHORE,
+ _shmfd, 0));
+# else
+# error "Using POSIX memory but no mmap()!"
+# endif
if (_addr == MAP_FAILED) {
log_msg("WARNING: mmap() failed: %s\n", strerror(errno));
return false;
}
#else // else of HAVE_SHM_OPEN
+# ifdef HAVE_SHMAT
_addr = (char *)shmat(_shmfd, 0, 0);
if (_addr <= 0) {
log_msg("WARNING: shmat() failed: %s\n", strerror(errno));
return false;
}
+# else
+ _addr = (char *)MapViewOfFile (_shmhandle, FILE_MAP_ALL_ACCESS,
+ 0, 0, _size);
+# endif
#endif
if (exists && !nuke) {
// If there is an existing memory segment that we don't
@@ -197,8 +248,14 @@
}
}
#else
+#ifdef HAVE_SHMAT
shmdt(_addr);
_addr = (char *)shmat(_shmfd, (void *)addr, 0);
+#else
+ CloseHandle(_shmhandle);
+ _addr = (char *)MapViewOfFile (_shmhandle, FILE_MAP_ALL_ACCESS,
+ 0, 0, _size);
+#endif // end of HAVE_SHMAT
}
#endif // end of HAVE_SHM_OPEN
#endif // end of FLAT_ADDR_SPACE
@@ -326,7 +383,7 @@
Shm::closeMem()
{
// Only nuke the shared memory segement if we're the last one.
-#ifdef HAVE_SGM_OPEN
+#ifdef HAVE_SHM_OPEN
if (_filespec.size() != 0) {
shm_unlink(_filespec.c_str());
}
@@ -337,7 +394,11 @@
munmap(_addr, _size);
}
#else
+#ifdef HAVE_SHMGET
shmctl(_shmfd, IPC_RMID, 0);
+#else
+ CloseHandle(_shmhandle);
+#endif
#endif
_addr = 0;
@@ -369,9 +430,10 @@
if (library_dir != NULL) {
realname = dirlist[i];
- // By convention, the first two entries in each directory are
- // for . and .. (``dot'' and ``dot dot''), so we ignore those. The
- // next directory read will get a real file, if any exists.
+ // By convention, the first two entries in each directory
+ // are for . and .. (``dot'' and ``dot dot''), so we
+ // ignore those. The next directory read will get a real
+ // file, if any exists.
entry = readdir(library_dir);
entry = readdir(library_dir);
break;
Index: gnash/server/shm.h
diff -u gnash/server/shm.h:1.3 gnash/server/shm.h:1.4
--- gnash/server/shm.h:1.3 Wed Feb 15 23:35:53 2006
+++ gnash/server/shm.h Mon Mar 6 01:43:26 2006
@@ -28,8 +28,15 @@
#include "log.h"
#include "impl.h"
#include <sys/types.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
+#ifndef HAVE_WINSOCK_H
+# include <sys/ipc.h>
+# include <sys/shm.h>
+#else
+# include <windows.h>
+# include <process.h>
+# include <fcntl.h>
+# include <io.h>
+#endif
namespace gnash {
@@ -73,7 +80,12 @@
long _alloced;
size_t _size;
std::string _filespec;
+#ifndef HAVE_WINSOCK_H
key_t _shmkey;
+#else
+ long _shmkey;
+ HANDLE _shmhandle;
+#endif
int _shmfd;
};
Index: gnash/server/swf.h
diff -u gnash/server/swf.h:1.10 gnash/server/swf.h:1.11
--- gnash/server/swf.h:1.10 Wed Feb 15 11:25:26 2006
+++ gnash/server/swf.h Mon Mar 6 01:43:26 2006
@@ -23,342 +23,340 @@
/// SWF format definitions
namespace SWF { // gnash::SWF
- /// SWF tag types. Symbolc names copied from Ming
- typedef enum
- {
- /// end of sprite or movie definition
- END = 0,
-
- SHOWFRAME = 1,
- DEFINESHAPE = 2,
- FREECHARACTER = 3,
- PLACEOBJECT = 4,
- REMOVEOBJECT = 5,
- DEFINEBITS = 6,
- DEFINEBUTTON = 7,
- JPEGTABLES = 8,
- SETBACKGROUNDCOLOR = 9,
- DEFINEFONT = 10,
- DEFINETEXT = 11,
- DOACTION = 12,
- DEFINEFONTINFO = 13,
- DEFINESOUND = 14,
- STARTSOUND = 15,
- DEFINEBUTTONSOUND = 17,
- SOUNDSTREAMHEAD = 18,
- SOUNDSTREAMBLOCK = 19,
- DEFINELOSSLESS = 20,
- DEFINEBITSJPEG2 = 21,
- DEFINESHAPE2 = 22,
- DEFINEBUTTONCXFORM = 23,
- PROTECT = 24,
- PATHSAREPOSTSCRIPT = 25,
- PLACEOBJECT2 = 26,
- REMOVEOBJECT2 = 28,
- SYNCFRAME = 29,
- FREEALL = 31,
- DEFINESHAPE3 = 32,
- DEFINETEXT2 = 33,
- DEFINEBUTTON2 = 34,
- DEFINEBITSJPEG3 = 35,
- DEFINELOSSLESS2 = 36,
- DEFINEEDITTEXT = 37,
- DEFINEVIDEO = 38,
-
- /// Definition of a Sprite/MovieClip
- DEFINESPRITE = 39,
-
- NAMECHARACTER = 40,
- SERIALNUMBER = 41,
- DEFINETEXTFORMAT = 42,
- FRAMELABEL = 43,
- SOUNDSTREAMHEAD2 = 45,
- DEFINEMORPHSHAPE = 46,
- FRAMETAG = 47,
- DEFINEFONT2 = 48,
- GENCOMMAND = 49,
- DEFINECOMMANDOBJ = 50,
- CHARACTERSET = 51,
- FONTREF = 52,
- EXPORTASSETS = 56,
- IMPORTASSETS = 57,
- ENABLEDEBUGGER = 58,
-
- /// #initclip
- INITACTION = 59,
-
- DEFINEVIDEOSTREAM = 60,
- VIDEOFRAME = 61,
- DEFINEBITSPTR = 1023
- } tag_type;
-
- /// SWF action ids. Symbolc names copied from Ming.
- //
- /// For semantic of each action see:
- /// http://sswf.sourceforge.net/SWFalexref.html
- ///
- typedef enum
- {
- ACTION_END = 0x00,
-
- ACTION_NEXTFRAME = 0x04,
- ACTION_PREVFRAME = 0x05,
- ACTION_PLAY = 0x06,
- ACTION_STOP = 0x07,
- ACTION_TOGGLEQUALITY = 0x08,
- ACTION_STOPSOUNDS = 0x09,
- ACTION_GOTOFRAME = 0x81, /* >= 0x80 means record has args */
- ACTION_GETURL = 0x83,
- ACTION_WAITFORFRAME = 0x8A,
- ACTION_SETTARGET = 0x8B,
- ACTION_GOTOLABEL = 0x8C,
- ACTION_ADD = 0x0A,
- ACTION_SUBTRACT = 0x0B,
- ACTION_MULTIPLY = 0x0C,
- ACTION_DIVIDE = 0x0D,
- ACTION_EQUAL = 0x0E,
- ACTION_LESSTHAN = 0x0F,
- ACTION_LOGICALAND = 0x10,
- ACTION_LOGICALOR = 0x11,
- ACTION_LOGICALNOT = 0x12,
- ACTION_STRINGEQ = 0x13,
- ACTION_STRINGLENGTH = 0x14,
- ACTION_SUBSTRING = 0x15,
- ACTION_POP = 0x17,
- ACTION_INT = 0x18,
- ACTION_GETVARIABLE = 0x1C,
- ACTION_SETVARIABLE = 0x1D,
- ACTION_SETTARGETEXPRESSION = 0x20,
- ACTION_STRINGCONCAT = 0x21,
- ACTION_GETPROPERTY = 0x22,
- ACTION_SETPROPERTY = 0x23,
- ACTION_DUPLICATECLIP = 0x24,
- ACTION_REMOVECLIP = 0x25,
- ACTION_TRACE = 0x26,
- ACTION_STARTDRAGMOVIE = 0x27,
- ACTION_STOPDRAGMOVIE = 0x28,
- ACTION_STRINGCOMPARE = 0x29,
- ACTION_THROW = 0x2A,
-
- /// SWF7
- ///
- /// The Cast Object action makes sure that the object
- /// o1 is an instance of the class s2. If it is the case,
- /// then o1 is pushed back onto the stack. Otherwise Null is
- /// pushed back onto the stack. The comparison is identical
- /// to the one applied by the Instance Of action.
- ///
- /// See:
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_cast_object
- ///
- ACTION_CASTOP = 0x2B,
-
- /// SWF7
- ///
- /// This action declares an object as a sub-class of
- /// one or more interfaces. The number of interfaces has to
- /// be indicated by i2. An interface is referenced by its
- /// name (which happens to be the same as the constructor
- /// function name.)
- ///
- /// See:
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_implements
- ///
- ACTION_IMPLEMENTSOP = 0x2C,
-
- ACTION_RANDOM = 0x30,
- ACTION_MBLENGTH = 0x31,
- ACTION_ORD = 0x32,
- ACTION_CHR = 0x33,
- ACTION_GETTIMER = 0x34,
- ACTION_MBSUBSTRING = 0x35,
- ACTION_MBORD = 0x36,
- ACTION_MBCHR = 0x37,
- ACTION_WAITFORFRAMEEXPRESSION = 0x8D,
- ACTION_PUSHDATA = 0x96,
- ACTION_BRANCHALWAYS = 0x99,
- ACTION_GETURL2 = 0x9A,
- ACTION_BRANCHIFTRUE = 0x9D,
- ACTION_CALLFRAME = 0x9E,
- ACTION_GOTOEXPRESSION = 0x9F,
-
- /// action_buffer::doActionDelete
- ACTION_DELETEVAR = 0x3A,
-
- /// action_buffer::doActionDelete2
- ACTION_DELETE = 0x3B,
-
- ACTION_VAREQUALS = 0x3C, // DEFINELOCAL actually
- ACTION_CALLFUNCTION = 0x3D,
- ACTION_RETURN = 0x3E,
- ACTION_MODULO = 0x3F,
-
- /// SWF5
- ///
- /// Pop the number of arguments. Pop each argument.
- /// Create an object of class s1. Call the
- /// constructor function (which has the same name as
- /// the object class: s1). The result of the
- /// constructor is discarded. Push the created object
- /// on the stack. The object should then be saved in
- /// a variable or object method.
- ///
- /// http://sswf.sourceforge.net/SWFalexref.html#action_new
- ///
- ACTION_NEW = 0x40,
-
- ACTION_VAR = 0x41,
- ACTION_INITARRAY = 0x42,
-
-
- /// SWF5
- ///
- /// Pops the number of members in the object. Pop
- /// one value and one name per member and set the
- /// corresponding member in the object. The resulting
- /// object is pushed on the stack. It can later be sent
- /// to a function or set in a variable. Note: the member
- /// names are converted to strings; they certainly should
- /// be strings thought anything is supported.
- ///
- /// Also known as 'ACTION_DECLAREOBJECT'.
- ///
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_declare_object
- ///
- ACTION_INITOBJECT = 0x43,
-
- ACTION_TYPEOF = 0x44,
- ACTION_TARGETPATH = 0x45,
- ACTION_ENUMERATE = 0x46,
- ACTION_NEWADD = 0x47,
- ACTION_NEWLESSTHAN = 0x48,
- ACTION_NEWEQUALS = 0x49,
- ACTION_TONUMBER = 0x4A,
- ACTION_TOSTRING = 0x4B,
- ACTION_DUP = 0x4C,
- ACTION_SWAP = 0x4D,
- ACTION_GETMEMBER = 0x4E,
- ACTION_SETMEMBER = 0x4F,
- ACTION_INCREMENT = 0x50,
- ACTION_DECREMENT = 0x51,
-
- /// SWF5
- ///
- /// Pops the name of a method (can be the empty string),
- /// pop an object, pop the number of arguments, pop each
- /// argument, call the method (function) of the object,
- /// push the returned value on the stack.
- ///
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_call_method
- ///
- ACTION_CALLMETHOD = 0x52,
-
- /// SWF5
- ///
- /// Pops the name of a method (can be the empty string),
- /// pop an object (created with the Declare Object,)
- /// pop the number of arguments, pop each argument,
- /// create a new object, then call the specified method
- /// (function) as the constructor function of the object,
- /// push the returned value on the stack. This allows
- /// for overloaded constructors as in C++.
- ///
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_new_method
- ///
- ACTION_NEWMETHOD = 0x53,
-
- /// SWF6
- ///
- /// Pops the name of a constructor (s1 - ie. "Color")
- /// then the name of an object (s2). Checks whether the
- /// named object is part of the class defined by the
- /// constructor. If so, then true is push on the stack,
- /// otherwise false. Since SWF version 7, it is possible
- /// to cast an object to another using the Cast Object
- /// action. This action returns a copy of the object or
- /// Null, which in many cases can be much more practical.
- ///
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_instance_of
- ///
- ACTION_INSTANCEOF = 0x54,
-
- /// SWF6
- ///
- /// Pops an object from the stack, push a null, then
- /// push the name of each member on the stack.
- ///
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_enumerate_object
- ///
- ACTION_ENUM2 = 0x55,
-
- ACTION_BITWISEAND = 0x60,
- ACTION_BITWISEOR = 0x61,
- ACTION_BITWISEXOR = 0x62,
- ACTION_SHIFTLEFT = 0x63,
- ACTION_SHIFTRIGHT = 0x64,
- ACTION_SHIFTRIGHT2 = 0x65,
- ACTION_STRICTEQ = 0x66,
-
- /// SWF6
- ///
- /// Similar to Swap + Less Than. It checks whether the
- /// second parameter is greater than the first and return
- /// the boolean result on the stack.
- ///
- /// See:
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_greater_than_typed
- ///
- ACTION_GREATER = 0x67,
-
- /// SWF6
- ///
- /// Similar to Swap + String Less Than. It checks whether
- /// the second string is greater than the first and
- /// return the boolean result on the stack.
- ///
- /// See:
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_string_greater_than
- ///
- ACTION_STRINGGREATER = 0x68,
-
- ///
- /// SWF7
- ///
- /// The Extends action will be used to define a new object
- /// which extends another object. The declaration in
- /// ActionScript is:
- ///
- /// class A extends B;
- ///
- /// In an SWF action script, you don't exactly declare
- /// objects, you actually instantiate them and define their
- /// functions. This action creates a new object named s2
- /// which is an extension of the object s1.
- ///
- /// Use this action whenever you need to inherit an object
- /// without calling its constructor.
- ///
- /// See:
- /// http://sswf.sourceforge.net/SWFalexref.html#action_extends
- ///
- ACTION_EXTENDS = 0x69,
-
- ACTION_CONSTANTPOOL = 0x88,
-
-
- /// SWF7
- ///
- /// See:
- ///
http://sswf.sourceforge.net/SWFalexref.html#action_declare_function2
- ///
- ACTION_DEFINEFUNCTION2 = 0x8E,
-
- ACTION_TRY = 0x8F,
- ACTION_WITH = 0x94,
- ACTION_DEFINEFUNCTION = 0x9B,
+/// SWF tag types. Symbolc names copied from Ming
+typedef enum
+{
+ /// end of sprite or movie definition
+ END = 0,
+ SHOWFRAME = 1,
+ DEFINESHAPE = 2,
+ FREECHARACTER = 3,
+ PLACEOBJECT = 4,
+ REMOVEOBJECT = 5,
+ DEFINEBITS = 6,
+ DEFINEBUTTON = 7,
+ JPEGTABLES = 8,
+ SETBACKGROUNDCOLOR = 9,
+ DEFINEFONT = 10,
+ DEFINETEXT = 11,
+ DOACTION = 12,
+ DEFINEFONTINFO = 13,
+ DEFINESOUND = 14,
+ STARTSOUND = 15,
+ DEFINEBUTTONSOUND = 17,
+ SOUNDSTREAMHEAD = 18,
+ SOUNDSTREAMBLOCK = 19,
+ DEFINELOSSLESS = 20,
+ DEFINEBITSJPEG2 = 21,
+ DEFINESHAPE2 = 22,
+ DEFINEBUTTONCXFORM = 23,
+ PROTECT = 24,
+ PATHSAREPOSTSCRIPT = 25,
+ PLACEOBJECT2 = 26,
+ REMOVEOBJECT2 = 28,
+ SYNCFRAME = 29,
+ FREEALL = 31,
+ DEFINESHAPE3 = 32,
+ DEFINETEXT2 = 33,
+ DEFINEBUTTON2 = 34,
+ DEFINEBITSJPEG3 = 35,
+ DEFINELOSSLESS2 = 36,
+ DEFINEEDITTEXT = 37,
+ DEFINEVIDEO = 38,
+
+ /// Definition of a Sprite/MovieClip
+ DEFINESPRITE = 39,
+
+ NAMECHARACTER = 40,
+ SERIALNUMBER = 41,
+ DEFINETEXTFORMAT = 42,
+ FRAMELABEL = 43,
+ SOUNDSTREAMHEAD2 = 45,
+ DEFINEMORPHSHAPE = 46,
+ FRAMETAG = 47,
+ DEFINEFONT2 = 48,
+ GENCOMMAND = 49,
+ DEFINECOMMANDOBJ = 50,
+ CHARACTERSET = 51,
+ FONTREF = 52,
+ EXPORTASSETS = 56,
+ IMPORTASSETS = 57,
+ ENABLEDEBUGGER = 58,
+
+ /// #initclip
+ INITACTION = 59,
+
+ DEFINEVIDEOSTREAM = 60,
+ VIDEOFRAME = 61,
+ DEFINEBITSPTR = 1023
+} tag_type;
+
+/// SWF action ids. Symbolc names copied from Ming.
+//
+/// For semantic of each action see:
+/// http://sswf.sourceforge.net/SWFalexref.html
+///
+typedef enum
+{
+ ACTION_END = 0x00,
+ ACTION_NEXTFRAME = 0x04,
+ ACTION_PREVFRAME = 0x05,
+ ACTION_PLAY = 0x06,
+ ACTION_STOP = 0x07,
+ ACTION_TOGGLEQUALITY = 0x08,
+ ACTION_STOPSOUNDS = 0x09,
+ ACTION_GOTOFRAME = 0x81, /* >= 0x80 means record has args */
+ ACTION_GETURL = 0x83,
+ ACTION_WAITFORFRAME = 0x8A,
+ ACTION_SETTARGET = 0x8B,
+ ACTION_GOTOLABEL = 0x8C,
+ ACTION_ADD = 0x0A,
+ ACTION_SUBTRACT = 0x0B,
+ ACTION_MULTIPLY = 0x0C,
+ ACTION_DIVIDE = 0x0D,
+ ACTION_EQUAL = 0x0E,
+ ACTION_LESSTHAN = 0x0F,
+ ACTION_LOGICALAND = 0x10,
+ ACTION_LOGICALOR = 0x11,
+ ACTION_LOGICALNOT = 0x12,
+ ACTION_STRINGEQ = 0x13,
+ ACTION_STRINGLENGTH = 0x14,
+ ACTION_SUBSTRING = 0x15,
+ ACTION_POP = 0x17,
+ ACTION_INT = 0x18,
+ ACTION_GETVARIABLE = 0x1C,
+ ACTION_SETVARIABLE = 0x1D,
+ ACTION_SETTARGETEXPRESSION = 0x20,
+ ACTION_STRINGCONCAT = 0x21,
+ ACTION_GETPROPERTY = 0x22,
+ ACTION_SETPROPERTY = 0x23,
+ ACTION_DUPLICATECLIP = 0x24,
+ ACTION_REMOVECLIP = 0x25,
+ ACTION_TRACE = 0x26,
+ ACTION_STARTDRAGMOVIE = 0x27,
+ ACTION_STOPDRAGMOVIE = 0x28,
+ ACTION_STRINGCOMPARE = 0x29,
+ ACTION_THROW = 0x2A,
+
+ /// SWF7
+ ///
+ /// The Cast Object action makes sure that the object
+ /// o1 is an instance of the class s2. If it is the case,
+ /// then o1 is pushed back onto the stack. Otherwise Null is
+ /// pushed back onto the stack. The comparison is identical
+ /// to the one applied by the Instance Of action.
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_cast_object
+ ///
+ ACTION_CASTOP = 0x2B,
+
+ /// SWF7
+ ///
+ /// This action declares an object as a sub-class of
+ /// one or more interfaces. The number of interfaces has to
+ /// be indicated by i2. An interface is referenced by its
+ /// name (which happens to be the same as the constructor
+ /// function name.)
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_implements
+ ///
+ ACTION_IMPLEMENTSOP = 0x2C,
+
+ ACTION_RANDOM = 0x30,
+ ACTION_MBLENGTH = 0x31,
+ ACTION_ORD = 0x32,
+ ACTION_CHR = 0x33,
+ ACTION_GETTIMER = 0x34,
+ ACTION_MBSUBSTRING = 0x35,
+ ACTION_MBORD = 0x36,
+ ACTION_MBCHR = 0x37,
+ ACTION_WAITFORFRAMEEXPRESSION = 0x8D,
+ ACTION_PUSHDATA = 0x96,
+ ACTION_BRANCHALWAYS = 0x99,
+ ACTION_GETURL2 = 0x9A,
+ ACTION_BRANCHIFTRUE = 0x9D,
+ ACTION_CALLFRAME = 0x9E,
+ ACTION_GOTOEXPRESSION = 0x9F,
+
+ /// action_buffer::doActionDelete
+ ACTION_DELETEVAR = 0x3A,
+
+ /// action_buffer::doActionDelete2
+ ACTION_DELETE = 0x3B,
+
+ ACTION_VAREQUALS = 0x3C, // DEFINELOCAL actually
+ ACTION_CALLFUNCTION = 0x3D,
+ ACTION_RETURN = 0x3E,
+ ACTION_MODULO = 0x3F,
+
+ /// SWF5
+ ///
+ /// Pop the number of arguments. Pop each argument.
+ /// Create an object of class s1. Call the
+ /// constructor function (which has the same name as
+ /// the object class: s1). The result of the
+ /// constructor is discarded. Push the created object
+ /// on the stack. The object should then be saved in
+ /// a variable or object method.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_new
+ ///
+ ACTION_NEW = 0x40,
+
+ ACTION_VAR = 0x41,
+ ACTION_INITARRAY = 0x42,
+
+
+ /// SWF5
+ ///
+ /// Pops the number of members in the object. Pop
+ /// one value and one name per member and set the
+ /// corresponding member in the object. The resulting
+ /// object is pushed on the stack. It can later be sent
+ /// to a function or set in a variable. Note: the member
+ /// names are converted to strings; they certainly should
+ /// be strings thought anything is supported.
+ ///
+ /// Also known as 'ACTION_DECLAREOBJECT'.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_declare_object
+ ///
+ ACTION_INITOBJECT = 0x43,
+
+ ACTION_TYPEOF = 0x44,
+ ACTION_TARGETPATH = 0x45,
+ ACTION_ENUMERATE = 0x46,
+ ACTION_NEWADD = 0x47,
+ ACTION_NEWLESSTHAN = 0x48,
+ ACTION_NEWEQUALS = 0x49,
+ ACTION_TONUMBER = 0x4A,
+ ACTION_TOSTRING = 0x4B,
+ ACTION_DUP = 0x4C,
+ ACTION_SWAP = 0x4D,
+ ACTION_GETMEMBER = 0x4E,
+ ACTION_SETMEMBER = 0x4F,
+ ACTION_INCREMENT = 0x50,
+ ACTION_DECREMENT = 0x51,
+
+ /// SWF5
+ ///
+ /// Pops the name of a method (can be the empty string),
+ /// pop an object, pop the number of arguments, pop each
+ /// argument, call the method (function) of the object,
+ /// push the returned value on the stack.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_call_method
+ ///
+ ACTION_CALLMETHOD = 0x52,
+
+ /// SWF5
+ ///
+ /// Pops the name of a method (can be the empty string),
+ /// pop an object (created with the Declare Object,)
+ /// pop the number of arguments, pop each argument,
+ /// create a new object, then call the specified method
+ /// (function) as the constructor function of the object,
+ /// push the returned value on the stack. This allows
+ /// for overloaded constructors as in C++.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_new_method
+ ///
+ ACTION_NEWMETHOD = 0x53,
+
+ /// SWF6
+ ///
+ /// Pops the name of a constructor (s1 - ie. "Color")
+ /// then the name of an object (s2). Checks whether the
+ /// named object is part of the class defined by the
+ /// constructor. If so, then true is push on the stack,
+ /// otherwise false. Since SWF version 7, it is possible
+ /// to cast an object to another using the Cast Object
+ /// action. This action returns a copy of the object or
+ /// Null, which in many cases can be much more practical.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_instance_of
+ ///
+ ACTION_INSTANCEOF = 0x54,
+
+ /// SWF6
+ ///
+ /// Pops an object from the stack, push a null, then
+ /// push the name of each member on the stack.
+ ///
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_enumerate_object
+ ///
+ ACTION_ENUM2 = 0x55,
+
+ ACTION_BITWISEAND = 0x60,
+ ACTION_BITWISEOR = 0x61,
+ ACTION_BITWISEXOR = 0x62,
+ ACTION_SHIFTLEFT = 0x63,
+ ACTION_SHIFTRIGHT = 0x64,
+ ACTION_SHIFTRIGHT2 = 0x65,
+ ACTION_STRICTEQ = 0x66,
+
+ /// SWF6
+ ///
+ /// Similar to Swap + Less Than. It checks whether the
+ /// second parameter is greater than the first and return
+ /// the boolean result on the stack.
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_greater_than_typed
+ ///
+ ACTION_GREATER = 0x67,
+
+ /// SWF6
+ ///
+ /// Similar to Swap + String Less Than. It checks whether
+ /// the second string is greater than the first and
+ /// return the boolean result on the stack.
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_string_greater_than
+ ///
+ ACTION_STRINGGREATER = 0x68,
+
+ ///
+ /// SWF7
+ ///
+ /// The Extends action will be used to define a new object
+ /// which extends another object. The declaration in
+ /// ActionScript is:
+ ///
+ /// class A extends B;
+ ///
+ /// In an SWF action script, you don't exactly declare
+ /// objects, you actually instantiate them and define their
+ /// functions. This action creates a new object named s2
+ /// which is an extension of the object s1.
+ ///
+ /// Use this action whenever you need to inherit an object
+ /// without calling its constructor.
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_extends
+ ///
+ ACTION_EXTENDS = 0x69,
+
+ ACTION_CONSTANTPOOL = 0x88,
+
+
+ /// SWF7
+ ///
+ /// See:
+ /// http://sswf.sourceforge.net/SWFalexref.html#action_declare_function2
+ ///
+ ACTION_DEFINEFUNCTION2 = 0x8E,
+
+ ACTION_TRY = 0x8F,
+ ACTION_WITH = 0x94,
+ ACTION_DEFINEFUNCTION = 0x9B,
- ACTION_SETREGISTER = 0x87
- } action_type;
+ ACTION_SETREGISTER = 0x87
+} action_type;
} // namespace gnash::SWF
Index: gnash/utilities/Makefile.am
diff -u gnash/utilities/Makefile.am:1.10 gnash/utilities/Makefile.am:1.11
--- gnash/utilities/Makefile.am:1.10 Sun Feb 26 15:49:30 2006
+++ gnash/utilities/Makefile.am Mon Mar 6 01:43:25 2006
@@ -31,33 +31,22 @@
../server/libgnashserver.la \
../server/libgnashasobjs.la \
../libgeometry/libgnashgeo.la \
- ../libbase/libgnashbase.la \
- $(OPENGL_LIBS) \
- $(SDL_LIBS) \
- $(SDL_MIXER_LIBS) \
- $(X_LIBS) \
- $(JPEG_LIBS) \
- $(PNG_LIBS) \
- $(LIBXML_LIBS) \
- $(DMALLOC_LIBS) \
- $(MP3_LIBS) \
- $(OGG_LIBS) \
- $(PTHREAD_LIBS)
-
+ ../libbase/libgnashbase.la
INCLUDES = -I.. \
-I$(top_srcdir) \
-I$(top_srcdir)/libbase \
-I$(top_srcdir)/server \
-I$(top_srcdir)/libgeometry \
- $(PTHREAD_CFLAGS) \
- $(LIBXML_CFLAGS) \
- $(OPENGL_CFLAGS) \
- $(DMALLOC_CFLAGS) \
- $(MP3_CFLAGS) \
- $(OGG_CFLAGS) \
- $(SDL_CFLAGS) \
- $(SDL_MIXER_CFLAGS)
+ $(SDL_CFLAGS)
+# $(PTHREAD_CFLAGS) \
+# $(LIBXML_CFLAGS) \
+# $(OPENGL_CFLAGS) \
+# $(DMALLOC_CFLAGS) \
+# $(MP3_CFLAGS) \
+# $(OGG_CFLAGS) \
+# $(SDL_CFLAGS) \
+# $(SDL_MIXER_CFLAGS)
bin_PROGRAMS = gparser gprocessor
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ./ChangeLog ./configure.ac utilities/Make...,
Rob Savoye <=