[SCM] vlc/natty: Add Firefox 4 compatibility
bdrung at users.alioth.debian.org
bdrung at users.alioth.debian.org
Tue Jun 14 01:05:35 UTC 2011
The following commit has been merged in the natty branch:
commit 625c9fb4ba4a93dfd76dfac5b37de0721f61cd1c
Author: Benjamin Drung <bdrung at debian.org>
Date: Tue Jun 14 03:02:45 2011 +0200
Add Firefox 4 compatibility
LP: #722690
diff --git a/debian/patches/backport-firefox-4-compatibility.patch b/debian/patches/backport-firefox-4-compatibility.patch
new file mode 100644
index 0000000..1efef6d
--- /dev/null
+++ b/debian/patches/backport-firefox-4-compatibility.patch
@@ -0,0 +1,2256 @@
+From: Jean-Baptiste Kempf <jb at videolan.org>
+Subject: Firefox 4 compatibility
+Applied-Upstream: 1.1.10
+Origin: upstream, http://git.videolan.org/?p=vlc%2Fvlc-1.1.git;h=cca505bdc653b16d953f12626a3f0c9689ceb56e
+Bug: https://trac.videolan.org/vlc/ticket/4802
+Bug-Ubuntu: https://launchpad.net/bugs/722690
+Bug-Gentoo: http://bugs.gentoo.org/show_bug.cgi?id=361263
+
+--- a/projects/mozilla/Makefile.am
++++ b/projects/mozilla/Makefile.am
+@@ -19,7 +19,7 @@
+ support/classinfo.h
+
+ DIST_sources = $(SOURCES_mozilla_common) \
+- support/npwin.cpp support/npmac.cpp support/npunix.c
++ support/npwin.cpp support/npmac.cpp support/npunix.cpp
+
+ if BUILD_MOZILLA
+
+@@ -30,7 +30,7 @@
+
+ # Under Win32, Mozilla plugins need to be named NP******.DLL, but under Unix
+ # the common naming scheme is lib******plugin.so. Also, we need npwin.cpp
+-# under Win32 and npunix.c under Unix.
++# under Win32 and npunix.cpp under Unix.
+ #
+ lib_LTLIBRARIES = npvlc.la
+
+@@ -135,7 +135,7 @@
+
+ npvlc = libvlcplugin$(LIBEXT)
+ npvlcdir = $(libdir)/mozilla/plugins
+-SOURCES_support = support/npunix.c
++SOURCES_support = support/npunix.cpp
+
+ libvlcplugin_la_SOURCES = $(SOURCES_mozilla_common) $(SOURCES_support)
+ libvlcplugin_la_CFLAGS = `$(VLC_CONFIG) --cflags mozilla` $(CPPFLAGS_mozilla_EXTRA)
+--- a/projects/mozilla/support/npunix.c
++++ /dev/null
+@@ -1,1013 +0,0 @@
+-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+- *
+- * Mozilla/Firefox plugin for VLC
+- * Copyright (C) 2009, Jean-Paul Saman <jpsaman at videolan.org>
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2.1 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with this library; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+- *
+- * The Original Code is mozilla.org code.
+- *
+- * The Initial Developer of the Original Code is
+- * Netscape Communications Corporation.
+- * Portions created by the Initial Developer are Copyright (C) 1998
+- * the Initial Developer. All Rights Reserved.
+- *
+- * Contributor(s):
+- * Stephen Mak <smak at sun.com>
+- *
+- */
+-
+-/*
+- * npunix.c
+- *
+- * Netscape Client Plugin API
+- * - Wrapper function to interface with the Netscape Navigator
+- *
+- * dp Suresh <dp at netscape.com>
+- *
+- *----------------------------------------------------------------------
+- * PLUGIN DEVELOPERS:
+- * YOU WILL NOT NEED TO EDIT THIS FILE.
+- *----------------------------------------------------------------------
+- */
+-
+-#include "config.h"
+-
+-#define XP_UNIX 1
+-
+-#include <npapi.h>
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+-#include "npupp.h"
+-#else
+-#include "npfunctions.h"
+-#endif
+-
+-#include "../vlcshell.h"
+-
+-/*
+- * Define PLUGIN_TRACE to have the wrapper functions print
+- * messages to stderr whenever they are called.
+- */
+-
+-#ifdef PLUGIN_TRACE
+-#include <stdio.h>
+-#define PLUGINDEBUGSTR(msg) fprintf(stderr, "%s\n", msg)
+-#else
+-#define PLUGINDEBUGSTR(msg)
+-#endif
+-
+-/***********************************************************************
+- *
+- * Globals
+- *
+- ***********************************************************************/
+-
+-static NPNetscapeFuncs gNetscapeFuncs; /* Netscape Function table */
+-
+-/***********************************************************************
+- *
+- * Wrapper functions : plugin calling Netscape Navigator
+- *
+- * These functions let the plugin developer just call the APIs
+- * as documented and defined in npapi.h, without needing to know
+- * about the function table and call macros in npupp.h.
+- *
+- ***********************************************************************/
+-
+-void
+-NPN_Version(int* plugin_major, int* plugin_minor,
+- int* netscape_major, int* netscape_minor)
+-{
+- *plugin_major = NP_VERSION_MAJOR;
+- *plugin_minor = NP_VERSION_MINOR;
+-
+- /* Major version is in high byte */
+- *netscape_major = gNetscapeFuncs.version >> 8;
+- /* Minor version is in low byte */
+- *netscape_minor = gNetscapeFuncs.version & 0xFF;
+-}
+-
+-void
+-NPN_PluginThreadAsyncCall(NPP plugin,
+- void (*func)(void *),
+- void *userData)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) >= 20)
+- return (*gNetscapeFuncs.pluginthreadasynccall)(plugin, func, userData);
+-#endif
+-}
+-
+-NPError
+-NPN_GetValue(NPP instance, NPNVariable variable, void *r_value)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetValueProc(gNetscapeFuncs.getvalue,
+- instance, variable, r_value);
+-#else
+- return (*gNetscapeFuncs.getvalue)(instance, variable, r_value);
+-#endif
+-}
+-
+-NPError
+-NPN_SetValue(NPP instance, NPPVariable variable, void *value)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_SetValueProc(gNetscapeFuncs.setvalue,
+- instance, variable, value);
+-#else
+- return (*gNetscapeFuncs.setvalue)(instance, variable, value);
+-#endif
+-}
+-
+-NPError
+-NPN_GetURL(NPP instance, const char* url, const char* window)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetURLProc(gNetscapeFuncs.geturl, instance, url, window);
+-#else
+- return (*gNetscapeFuncs.geturl)(instance, url, window);
+-#endif
+-}
+-
+-NPError
+-NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetURLNotifyProc(gNetscapeFuncs.geturlnotify, instance, url, window, notifyData);
+-#else
+- return (*gNetscapeFuncs.geturlnotify)(instance, url, window, notifyData);
+-#endif
+-}
+-
+-NPError
+-NPN_PostURL(NPP instance, const char* url, const char* window,
+- uint32_t len, const char* buf, NPBool file)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_PostURLProc(gNetscapeFuncs.posturl, instance,
+- url, window, len, buf, file);
+-#else
+- return (*gNetscapeFuncs.posturl)(instance, url, window, len, buf, file);
+-#endif
+-}
+-
+-NPError
+-NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32_t len,
+- const char* buf, NPBool file, void* notifyData)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_PostURLNotifyProc(gNetscapeFuncs.posturlnotify,
+- instance, url, window, len, buf, file, notifyData);
+-#else
+- return (*gNetscapeFuncs.posturlnotify)(instance, url, window, len, buf, file, notifyData);
+-
+-#endif
+-}
+-
+-NPError
+-NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_RequestReadProc(gNetscapeFuncs.requestread,
+- stream, rangeList);
+-#else
+- return (*gNetscapeFuncs.requestread)(stream, rangeList);
+-#endif
+-}
+-
+-NPError
+-NPN_NewStream(NPP instance, NPMIMEType type, const char *window,
+- NPStream** stream_ptr)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_NewStreamProc(gNetscapeFuncs.newstream, instance,
+- type, window, stream_ptr);
+-#else
+- return (*gNetscapeFuncs.newstream)(instance, type, window, stream_ptr);
+-#endif
+-}
+-
+-int32_t
+-NPN_Write(NPP instance, NPStream* stream, int32_t len, void* buffer)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_WriteProc(gNetscapeFuncs.write, instance,
+- stream, len, buffer);
+-#else
+- return (*gNetscapeFuncs.write)(instance, stream, len, buffer);
+-#endif
+-}
+-
+-NPError
+-NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_DestroyStreamProc(gNetscapeFuncs.destroystream,
+- instance, stream, reason);
+-#else
+- return (*gNetscapeFuncs.destroystream)(instance, stream, reason);
+-#endif
+-}
+-
+-void
+-NPN_Status(NPP instance, const char* message)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_StatusProc(gNetscapeFuncs.status, instance, message);
+-#else
+- (*gNetscapeFuncs.status)(instance, message);
+-#endif
+-}
+-
+-const char*
+-NPN_UserAgent(NPP instance)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_UserAgentProc(gNetscapeFuncs.uagent, instance);
+-#else
+- return (*gNetscapeFuncs.uagent)(instance);
+-#endif
+-}
+-
+-void *NPN_MemAlloc(uint32_t size)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_MemAllocProc(gNetscapeFuncs.memalloc, size);
+-#else
+- return (*gNetscapeFuncs.memalloc)(size);
+-#endif
+-}
+-
+-void NPN_MemFree(void* ptr)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_MemFreeProc(gNetscapeFuncs.memfree, ptr);
+-#else
+- (*gNetscapeFuncs.memfree)(ptr);
+-#endif
+-}
+-
+-uint32_t NPN_MemFlush(uint32_t size)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_MemFlushProc(gNetscapeFuncs.memflush, size);
+-#else
+- return (*gNetscapeFuncs.memflush)(size);
+-#endif
+-}
+-
+-void NPN_ReloadPlugins(NPBool reloadPages)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_ReloadPluginsProc(gNetscapeFuncs.reloadplugins, reloadPages);
+-#else
+- (*gNetscapeFuncs.reloadplugins)(reloadPages);
+-#endif
+-}
+-
+-#ifdef OJI
+-JRIEnv* NPN_GetJavaEnv()
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetJavaEnvProc(gNetscapeFuncs.getJavaEnv);
+-#else
+- return (*gNetscapeFuncs.getJavaEnv);
+-#endif
+-}
+-
+-jref NPN_GetJavaPeer(NPP instance)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetJavaPeerProc(gNetscapeFuncs.getJavaPeer,
+- instance);
+-#else
+- return (*gNetscapeFuncs.getJavaPeer)(instance);
+-#endif
+-}
+-#endif
+-
+-void
+-NPN_InvalidateRect(NPP instance, NPRect *invalidRect)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_InvalidateRectProc(gNetscapeFuncs.invalidaterect, instance,
+- invalidRect);
+-#else
+- (*gNetscapeFuncs.invalidaterect)(instance, invalidRect);
+-#endif
+-}
+-
+-void
+-NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_InvalidateRegionProc(gNetscapeFuncs.invalidateregion, instance,
+- invalidRegion);
+-#else
+- (*gNetscapeFuncs.invalidateregion)(instance, invalidRegion);
+-#endif
+-}
+-
+-void
+-NPN_ForceRedraw(NPP instance)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_ForceRedrawProc(gNetscapeFuncs.forceredraw, instance);
+-#else
+- (*gNetscapeFuncs.forceredraw)(instance);
+-#endif
+-}
+-
+-void NPN_PushPopupsEnabledState(NPP instance, NPBool enabled)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_PushPopupsEnabledStateProc(gNetscapeFuncs.pushpopupsenabledstate,
+- instance, enabled);
+-#else
+- (*gNetscapeFuncs.pushpopupsenabledstate)(instance, enabled);
+-#endif
+-}
+-
+-void NPN_PopPopupsEnabledState(NPP instance)
+-{
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_PopPopupsEnabledStateProc(gNetscapeFuncs.poppopupsenabledstate,
+- instance);
+-#else
+- (*gNetscapeFuncs.poppopupsenabledstate)(instance);
+-#endif
+-}
+-
+-NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetStringIdentifierProc(
+- gNetscapeFuncs.getstringidentifier, name);
+-#else
+- return (*gNetscapeFuncs.getstringidentifier)(name);
+-#endif
+- }
+- return NULL;
+-}
+-
+-void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount,
+- NPIdentifier *identifiers)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_GetStringIdentifiersProc(gNetscapeFuncs.getstringidentifiers,
+- names, nameCount, identifiers);
+-#else
+- (*gNetscapeFuncs.getstringidentifiers)(names, nameCount, identifiers);
+-#endif
+- }
+-}
+-
+-NPIdentifier NPN_GetIntIdentifier(int32_t intid)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetIntIdentifierProc(gNetscapeFuncs.getintidentifier, intid);
+-#else
+- return (*gNetscapeFuncs.getintidentifier)(intid);
+-#endif
+- }
+- return NULL;
+-}
+-
+-bool NPN_IdentifierIsString(NPIdentifier identifier)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_IdentifierIsStringProc(
+- gNetscapeFuncs.identifierisstring,
+- identifier);
+-#else
+- return (*gNetscapeFuncs.identifierisstring)(identifier);
+-#endif
+- }
+- return false;
+-}
+-
+-NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_UTF8FromIdentifierProc(
+- gNetscapeFuncs.utf8fromidentifier,
+- identifier);
+-#else
+- return (*gNetscapeFuncs.utf8fromidentifier)(identifier);
+-#endif
+- }
+- return NULL;
+-}
+-
+-int32_t NPN_IntFromIdentifier(NPIdentifier identifier)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_IntFromIdentifierProc(
+- gNetscapeFuncs.intfromidentifier,
+- identifier);
+-#else
+- return (*gNetscapeFuncs.intfromidentifier)(identifier);
+-#endif
+- }
+- return 0;
+-}
+-
+-NPObject *NPN_CreateObject(NPP npp, NPClass *aClass)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_CreateObjectProc(gNetscapeFuncs.createobject, npp, aClass);
+-#else
+- return (*gNetscapeFuncs.createobject)(npp, aClass);
+-#endif
+- return NULL;
+-}
+-
+-NPObject *NPN_RetainObject(NPObject *obj)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_RetainObjectProc(gNetscapeFuncs.retainobject, obj);
+-#else
+- return (*gNetscapeFuncs.retainobject)(obj);
+-#endif
+- return NULL;
+-}
+-
+-void NPN_ReleaseObject(NPObject *obj)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_ReleaseObjectProc(gNetscapeFuncs.releaseobject, obj);
+-#else
+- (*gNetscapeFuncs.releaseobject)(obj);
+-#endif
+-}
+-
+-bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName,
+- const NPVariant *args, uint32_t argCount, NPVariant *result)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_InvokeProc(gNetscapeFuncs.invoke, npp, obj, methodName,
+- args, argCount, result);
+-#else
+- return (*gNetscapeFuncs.invoke)(npp, obj, methodName, args, argCount, result);
+-#endif
+- return false;
+-}
+-
+-bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args,
+- uint32_t argCount, NPVariant *result)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_InvokeDefaultProc(gNetscapeFuncs.invokeDefault, npp, obj,
+- args, argCount, result);
+-#else
+- return (*gNetscapeFuncs.invokeDefault)(npp, obj, args, argCount, result);
+-#endif
+- return false;
+-}
+-
+-bool NPN_Evaluate(NPP npp, NPObject* obj, NPString *script,
+- NPVariant *result)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_EvaluateProc(gNetscapeFuncs.evaluate, npp, obj,
+- script, result);
+-#else
+- return (*gNetscapeFuncs.evaluate)(npp, obj, script, result);
+-#endif
+- return false;
+-}
+-
+-bool NPN_GetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
+- NPVariant *result)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_GetPropertyProc(gNetscapeFuncs.getproperty, npp, obj,
+- propertyName, result);
+-#else
+- return (*gNetscapeFuncs.getproperty)(npp, obj, propertyName, result);
+-#endif
+- return false;
+-}
+-
+-bool NPN_SetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
+- const NPVariant *value)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_SetPropertyProc(gNetscapeFuncs.setproperty, npp, obj,
+- propertyName, value);
+-#else
+- return (*gNetscapeFuncs.setproperty)(npp, obj, propertyName, value);
+-#endif
+- return false;
+-}
+-
+-bool NPN_RemoveProperty(NPP npp, NPObject* obj, NPIdentifier propertyName)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_RemovePropertyProc(gNetscapeFuncs.removeproperty, npp, obj,
+- propertyName);
+-#else
+- return (*gNetscapeFuncs.removeproperty)(npp, obj, propertyName);
+-#endif
+- return false;
+-}
+-
+-bool NPN_HasProperty(NPP npp, NPObject* obj, NPIdentifier propertyName)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_HasPropertyProc(gNetscapeFuncs.hasproperty, npp, obj,
+- propertyName);
+-#else
+- return (*gNetscapeFuncs.hasproperty)(npp, obj, propertyName);
+-#endif
+- return false;
+-}
+-
+-bool NPN_HasMethod(NPP npp, NPObject* obj, NPIdentifier methodName)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- return CallNPN_HasMethodProc(gNetscapeFuncs.hasmethod, npp,
+- obj, methodName);
+-#else
+- return (*gNetscapeFuncs.hasmethod)(npp, obj, methodName);
+-#endif
+- return false;
+-}
+-
+-void NPN_ReleaseVariantValue(NPVariant *variant)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_ReleaseVariantValueProc(gNetscapeFuncs.releasevariantvalue, variant);
+-#else
+- (*gNetscapeFuncs.releasevariantvalue)(variant);
+-#endif
+-}
+-
+-void NPN_SetException(NPObject* obj, const NPUTF8 *message)
+-{
+- int minor = gNetscapeFuncs.version & 0xFF;
+- if( minor >= 14 )
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- CallNPN_SetExceptionProc(gNetscapeFuncs.setexception, obj, message);
+-#else
+- (*gNetscapeFuncs.setexception)(obj, message);
+-#endif
+-}
+-
+-/***********************************************************************
+- *
+- * Wrapper functions : Netscape Navigator -> plugin
+- *
+- * These functions let the plugin developer just create the APIs
+- * as documented and defined in npapi.h, without needing to
+- * install those functions in the function table or worry about
+- * setting up globals for 68K plugins.
+- *
+- ***********************************************************************/
+-
+-/* Function prototypes */
+-NPError Private_New(NPMIMEType pluginType, NPP instance, uint16_t mode,
+- int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
+-NPError Private_Destroy(NPP instance, NPSavedData** save);
+-NPError Private_SetWindow(NPP instance, NPWindow* window);
+-NPError Private_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
+- NPBool seekable, uint16_t* stype);
+-int32_t Private_WriteReady(NPP instance, NPStream* stream);
+-int32_t Private_Write(NPP instance, NPStream* stream, int32_t offset,
+- int32_t len, void* buffer);
+-void Private_StreamAsFile(NPP instance, NPStream* stream, const char* fname);
+-NPError Private_DestroyStream(NPP instance, NPStream* stream, NPError reason);
+-void Private_URLNotify(NPP instance, const char* url,
+- NPReason reason, void* notifyData);
+-void Private_Print(NPP instance, NPPrint* platformPrint);
+-NPError Private_GetValue(NPP instance, NPPVariable variable, void *r_value);
+-NPError Private_SetValue(NPP instance, NPPVariable variable, void *r_value);
+-#ifdef OJI
+-JRIGlobalRef Private_GetJavaClass(void);
+-#endif
+-
+-/* function implementations */
+-NPError
+-Private_New(NPMIMEType pluginType, NPP instance, uint16_t mode,
+- int16_t argc, char* argn[], char* argv[], NPSavedData* saved)
+-{
+- NPError ret;
+- PLUGINDEBUGSTR("New");
+- ret = NPP_New(pluginType, instance, mode, argc, argn, argv, saved);
+- return ret;
+-}
+-
+-NPError
+-Private_Destroy(NPP instance, NPSavedData** save)
+-{
+- PLUGINDEBUGSTR("Destroy");
+- return NPP_Destroy(instance, save);
+-}
+-
+-NPError
+-Private_SetWindow(NPP instance, NPWindow* window)
+-{
+- NPError err;
+- PLUGINDEBUGSTR("SetWindow");
+- err = NPP_SetWindow(instance, window);
+- return err;
+-}
+-
+-NPError
+-Private_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
+- NPBool seekable, uint16_t* stype)
+-{
+- NPError err;
+- PLUGINDEBUGSTR("NewStream");
+- err = NPP_NewStream(instance, type, stream, seekable, stype);
+- return err;
+-}
+-
+-int32_t
+-Private_WriteReady(NPP instance, NPStream* stream)
+-{
+- unsigned int result;
+- PLUGINDEBUGSTR("WriteReady");
+- result = NPP_WriteReady(instance, stream);
+- return result;
+-}
+-
+-int32_t
+-Private_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len,
+- void* buffer)
+-{
+- unsigned int result;
+- PLUGINDEBUGSTR("Write");
+- result = NPP_Write(instance, stream, offset, len, buffer);
+- return result;
+-}
+-
+-void
+-Private_StreamAsFile(NPP instance, NPStream* stream, const char* fname)
+-{
+- PLUGINDEBUGSTR("StreamAsFile");
+- NPP_StreamAsFile(instance, stream, fname);
+-}
+-
+-
+-NPError
+-Private_DestroyStream(NPP instance, NPStream* stream, NPError reason)
+-{
+- NPError err;
+- PLUGINDEBUGSTR("DestroyStream");
+- err = NPP_DestroyStream(instance, stream, reason);
+- return err;
+-}
+-
+-void
+-Private_URLNotify(NPP instance, const char* url,
+- NPReason reason, void* notifyData)
+-{
+- PLUGINDEBUGSTR("URLNotify");
+- NPP_URLNotify(instance, url, reason, notifyData);
+-}
+-
+-void
+-Private_Print(NPP instance, NPPrint* platformPrint)
+-{
+- PLUGINDEBUGSTR("Print");
+- NPP_Print(instance, platformPrint);
+-}
+-
+-NPError
+-Private_GetValue(NPP instance, NPPVariable variable, void *r_value)
+-{
+- PLUGINDEBUGSTR("GetValue");
+- return NPP_GetValue(instance, variable, r_value);
+-}
+-
+-NPError
+-Private_SetValue(NPP instance, NPPVariable variable, void *r_value)
+-{
+- PLUGINDEBUGSTR("SetValue");
+- return NPP_SetValue(instance, variable, r_value);
+-}
+-
+-#ifdef OJI
+-JRIGlobalRef
+-Private_GetJavaClass(void)
+-{
+- jref clazz = NPP_GetJavaClass();
+- if (clazz) {
+- JRIEnv* env = NPN_GetJavaEnv();
+- return JRI_NewGlobalRef(env, clazz);
+- }
+- return NULL;
+-}
+-#endif
+-
+-/***********************************************************************
+- *
+- * These functions are located automagically by netscape.
+- *
+- ***********************************************************************/
+-
+-/*
+- * NP_GetMIMEDescription
+- * - Netscape needs to know about this symbol
+- * - Netscape uses the return value to identify when an object instance
+- * of this plugin should be created.
+- */
+-char *
+-NP_GetMIMEDescription(void)
+-{
+- return NPP_GetMIMEDescription();
+-}
+-
+-/*
+- * NP_GetValue [optional]
+- * - Netscape needs to know about this symbol.
+- * - Interfaces with plugin to get values for predefined variables
+- * that the navigator needs.
+- */
+-NPError
+-NP_GetValue(void* future, NPPVariable variable, void *value)
+-{
+- return NPP_GetValue(future, variable, value);
+-}
+-
+-/*
+- * NP_Initialize
+- * - Netscape needs to know about this symbol.
+- * - It calls this function after looking up its symbol before it
+- * is about to create the first ever object of this kind.
+- *
+- * PARAMETERS
+- * nsTable - The netscape function table. If developers just use these
+- * wrappers, they don't need to worry about all these function
+- * tables.
+- * RETURN
+- * pluginFuncs
+- * - This functions needs to fill the plugin function table
+- * pluginFuncs and return it. Netscape Navigator plugin
+- * library will use this function table to call the plugin.
+- *
+- */
+-NPError
+-NP_Initialize(NPNetscapeFuncs* nsTable, NPPluginFuncs* pluginFuncs)
+-{
+- NPError err = NPERR_NO_ERROR;
+-
+- PLUGINDEBUGSTR("NP_Initialize");
+-
+- /* validate input parameters */
+- if ((nsTable == NULL) || (pluginFuncs == NULL))
+- err = NPERR_INVALID_FUNCTABLE_ERROR;
+-
+- /*
+- * Check the major version passed in Netscape's function table.
+- * We won't load if the major version is newer than what we expect.
+- * Also check that the function tables passed in are big enough for
+- * all the functions we need (they could be bigger, if Netscape added
+- * new APIs, but that's OK with us -- we'll just ignore them).
+- *
+- */
+- if (err == NPERR_NO_ERROR) {
+- if ((nsTable->version >> 8) > NP_VERSION_MAJOR)
+- err = NPERR_INCOMPATIBLE_VERSION_ERROR;
+- if (nsTable->size < ((char *)&nsTable->posturlnotify - (char *)nsTable))
+- err = NPERR_INVALID_FUNCTABLE_ERROR;
+- if (pluginFuncs->size < sizeof(NPPluginFuncs))
+- err = NPERR_INVALID_FUNCTABLE_ERROR;
+- }
+-
+- if (err == NPERR_NO_ERROR)
+- {
+- /*
+- * Copy all the fields of Netscape function table into our
+- * copy so we can call back into Netscape later. Note that
+- * we need to copy the fields one by one, rather than assigning
+- * the whole structure, because the Netscape function table
+- * could actually be bigger than what we expect.
+- */
+- int minor = nsTable->version & 0xFF;
+-
+- gNetscapeFuncs.version = nsTable->version;
+- gNetscapeFuncs.size = nsTable->size;
+- gNetscapeFuncs.posturl = nsTable->posturl;
+- gNetscapeFuncs.geturl = nsTable->geturl;
+- gNetscapeFuncs.requestread = nsTable->requestread;
+- gNetscapeFuncs.newstream = nsTable->newstream;
+- gNetscapeFuncs.write = nsTable->write;
+- gNetscapeFuncs.destroystream = nsTable->destroystream;
+- gNetscapeFuncs.status = nsTable->status;
+- gNetscapeFuncs.uagent = nsTable->uagent;
+- gNetscapeFuncs.memalloc = nsTable->memalloc;
+- gNetscapeFuncs.memfree = nsTable->memfree;
+- gNetscapeFuncs.memflush = nsTable->memflush;
+- gNetscapeFuncs.reloadplugins = nsTable->reloadplugins;
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) >= 20)
+- gNetscapeFuncs.pluginthreadasynccall =
+- nsTable->pluginthreadasynccall;
+-#endif
+-#ifdef OJI
+- if( minor >= NPVERS_HAS_LIVECONNECT )
+- {
+- gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
+- gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
+- }
+-#endif
+- gNetscapeFuncs.getvalue = nsTable->getvalue;
+- gNetscapeFuncs.setvalue = nsTable->setvalue;
+-
+- if( minor >= NPVERS_HAS_NOTIFICATION )
+- {
+- gNetscapeFuncs.geturlnotify = nsTable->geturlnotify;
+- gNetscapeFuncs.posturlnotify = nsTable->posturlnotify;
+- }
+-
+- if (nsTable->size >= ((char *)&nsTable->setexception - (char *)nsTable))
+- {
+- gNetscapeFuncs.invalidaterect = nsTable->invalidaterect;
+- gNetscapeFuncs.invalidateregion = nsTable->invalidateregion;
+- gNetscapeFuncs.forceredraw = nsTable->forceredraw;
+- /* npruntime support */
+- if (minor >= 14)
+- {
+- gNetscapeFuncs.getstringidentifier = nsTable->getstringidentifier;
+- gNetscapeFuncs.getstringidentifiers = nsTable->getstringidentifiers;
+- gNetscapeFuncs.getintidentifier = nsTable->getintidentifier;
+- gNetscapeFuncs.identifierisstring = nsTable->identifierisstring;
+- gNetscapeFuncs.utf8fromidentifier = nsTable->utf8fromidentifier;
+- gNetscapeFuncs.intfromidentifier = nsTable->intfromidentifier;
+- gNetscapeFuncs.createobject = nsTable->createobject;
+- gNetscapeFuncs.retainobject = nsTable->retainobject;
+- gNetscapeFuncs.releaseobject = nsTable->releaseobject;
+- gNetscapeFuncs.invoke = nsTable->invoke;
+- gNetscapeFuncs.invokeDefault = nsTable->invokeDefault;
+- gNetscapeFuncs.evaluate = nsTable->evaluate;
+- gNetscapeFuncs.getproperty = nsTable->getproperty;
+- gNetscapeFuncs.setproperty = nsTable->setproperty;
+- gNetscapeFuncs.removeproperty = nsTable->removeproperty;
+- gNetscapeFuncs.hasproperty = nsTable->hasproperty;
+- gNetscapeFuncs.hasmethod = nsTable->hasmethod;
+- gNetscapeFuncs.releasevariantvalue = nsTable->releasevariantvalue;
+- gNetscapeFuncs.setexception = nsTable->setexception;
+- }
+- }
+- else
+- {
+- gNetscapeFuncs.invalidaterect = NULL;
+- gNetscapeFuncs.invalidateregion = NULL;
+- gNetscapeFuncs.forceredraw = NULL;
+- gNetscapeFuncs.getstringidentifier = NULL;
+- gNetscapeFuncs.getstringidentifiers = NULL;
+- gNetscapeFuncs.getintidentifier = NULL;
+- gNetscapeFuncs.identifierisstring = NULL;
+- gNetscapeFuncs.utf8fromidentifier = NULL;
+- gNetscapeFuncs.intfromidentifier = NULL;
+- gNetscapeFuncs.createobject = NULL;
+- gNetscapeFuncs.retainobject = NULL;
+- gNetscapeFuncs.releaseobject = NULL;
+- gNetscapeFuncs.invoke = NULL;
+- gNetscapeFuncs.invokeDefault = NULL;
+- gNetscapeFuncs.evaluate = NULL;
+- gNetscapeFuncs.getproperty = NULL;
+- gNetscapeFuncs.setproperty = NULL;
+- gNetscapeFuncs.removeproperty = NULL;
+- gNetscapeFuncs.hasproperty = NULL;
+- gNetscapeFuncs.releasevariantvalue = NULL;
+- gNetscapeFuncs.setexception = NULL;
+- }
+- if (nsTable->size >=
+- ((char *)&nsTable->poppopupsenabledstate - (char *)nsTable))
+- {
+- gNetscapeFuncs.pushpopupsenabledstate = nsTable->pushpopupsenabledstate;
+- gNetscapeFuncs.poppopupsenabledstate = nsTable->poppopupsenabledstate;
+- }
+- else
+- {
+- gNetscapeFuncs.pushpopupsenabledstate = NULL;
+- gNetscapeFuncs.poppopupsenabledstate = NULL;
+- }
+-
+- /*
+- * Set up the plugin function table that Netscape will use to
+- * call us. Netscape needs to know about our version and size
+- * and have a UniversalProcPointer for every function we
+- * implement.
+- */
+- pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
+- pluginFuncs->size = sizeof(NPPluginFuncs);
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- pluginFuncs->newp = NewNPP_NewProc(Private_New);
+- pluginFuncs->destroy = NewNPP_DestroyProc(Private_Destroy);
+- pluginFuncs->setwindow = NewNPP_SetWindowProc(Private_SetWindow);
+- pluginFuncs->newstream = NewNPP_NewStreamProc(Private_NewStream);
+- pluginFuncs->destroystream = NewNPP_DestroyStreamProc(Private_DestroyStream);
+- pluginFuncs->asfile = NewNPP_StreamAsFileProc(Private_StreamAsFile);
+- pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
+- pluginFuncs->write = NewNPP_WriteProc(Private_Write);
+- pluginFuncs->print = NewNPP_PrintProc(Private_Print);
+- pluginFuncs->getvalue = NewNPP_GetValueProc(Private_GetValue);
+- pluginFuncs->setvalue = NewNPP_SetValueProc(Private_SetValue);
+-#else
+- pluginFuncs->newp = (NPP_NewProcPtr)(Private_New);
+- pluginFuncs->destroy = (NPP_DestroyProcPtr)(Private_Destroy);
+- pluginFuncs->setwindow = (NPP_SetWindowProcPtr)(Private_SetWindow);
+- pluginFuncs->newstream = (NPP_NewStreamProcPtr)(Private_NewStream);
+- pluginFuncs->destroystream = (NPP_DestroyStreamProcPtr)(Private_DestroyStream);
+- pluginFuncs->asfile = (NPP_StreamAsFileProcPtr)(Private_StreamAsFile);
+- pluginFuncs->writeready = (NPP_WriteReadyProcPtr)(Private_WriteReady);
+- pluginFuncs->write = (NPP_WriteProcPtr)(Private_Write);
+- pluginFuncs->print = (NPP_PrintProcPtr)(Private_Print);
+- pluginFuncs->getvalue = (NPP_GetValueProcPtr)(Private_GetValue);
+- pluginFuncs->setvalue = (NPP_SetValueProcPtr)(Private_SetValue);
+-#endif
+- pluginFuncs->event = NULL;
+- if( minor >= NPVERS_HAS_NOTIFICATION )
+- {
+-#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
+- pluginFuncs->urlnotify = NewNPP_URLNotifyProc(Private_URLNotify);
+-#else
+- pluginFuncs->urlnotify = (NPP_URLNotifyProcPtr)(Private_URLNotify);
+-#endif
+- }
+-#ifdef OJI
+- if( minor >= NPVERS_HAS_LIVECONNECT )
+- pluginFuncs->javaClass = Private_GetJavaClass();
+- else
+- pluginFuncs->javaClass = NULL;
+-#else
+- pluginFuncs->javaClass = NULL;
+-#endif
+-
+- err = NPP_Initialize();
+- }
+-
+- return err;
+-}
+-
+-/*
+- * NP_Shutdown [optional]
+- * - Netscape needs to know about this symbol.
+- * - It calls this function after looking up its symbol after
+- * the last object of this kind has been destroyed.
+- *
+- */
+-NPError
+-NP_Shutdown(void)
+-{
+- PLUGINDEBUGSTR("NP_Shutdown");
+- NPP_Shutdown();
+- return NPERR_NO_ERROR;
+-}
+--- /dev/null
++++ b/projects/mozilla/support/npunix.cpp
+@@ -0,0 +1,1013 @@
++/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ *
++ * Mozilla/Firefox plugin for VLC
++ * Copyright (C) 2009, Jean-Paul Saman <jpsaman at videolan.org>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ *
++ * The Original Code is mozilla.org code.
++ *
++ * The Initial Developer of the Original Code is
++ * Netscape Communications Corporation.
++ * Portions created by the Initial Developer are Copyright (C) 1998
++ * the Initial Developer. All Rights Reserved.
++ *
++ * Contributor(s):
++ * Stephen Mak <smak at sun.com>
++ *
++ */
++
++/*
++ * npunix.c
++ *
++ * Netscape Client Plugin API
++ * - Wrapper function to interface with the Netscape Navigator
++ *
++ * dp Suresh <dp at netscape.com>
++ *
++ *----------------------------------------------------------------------
++ * PLUGIN DEVELOPERS:
++ * YOU WILL NOT NEED TO EDIT THIS FILE.
++ *----------------------------------------------------------------------
++ */
++
++#include "config.h"
++
++#define XP_UNIX 1
++
++#include <npapi.h>
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++#include "npupp.h"
++#else
++#include "npfunctions.h"
++#endif
++
++#include "../vlcshell.h"
++
++/*
++ * Define PLUGIN_TRACE to have the wrapper functions print
++ * messages to stderr whenever they are called.
++ */
++
++#ifdef PLUGIN_TRACE
++#include <stdio.h>
++#define PLUGINDEBUGSTR(msg) fprintf(stderr, "%s\n", msg)
++#else
++#define PLUGINDEBUGSTR(msg)
++#endif
++
++/***********************************************************************
++ *
++ * Globals
++ *
++ ***********************************************************************/
++
++static NPNetscapeFuncs gNetscapeFuncs; /* Netscape Function table */
++
++/***********************************************************************
++ *
++ * Wrapper functions : plugin calling Netscape Navigator
++ *
++ * These functions let the plugin developer just call the APIs
++ * as documented and defined in npapi.h, without needing to know
++ * about the function table and call macros in npupp.h.
++ *
++ ***********************************************************************/
++
++void
++NPN_Version(int* plugin_major, int* plugin_minor,
++ int* netscape_major, int* netscape_minor)
++{
++ *plugin_major = NP_VERSION_MAJOR;
++ *plugin_minor = NP_VERSION_MINOR;
++
++ /* Major version is in high byte */
++ *netscape_major = gNetscapeFuncs.version >> 8;
++ /* Minor version is in low byte */
++ *netscape_minor = gNetscapeFuncs.version & 0xFF;
++}
++
++void
++NPN_PluginThreadAsyncCall(NPP plugin,
++ void (*func)(void *),
++ void *userData)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) >= 20)
++ return (*gNetscapeFuncs.pluginthreadasynccall)(plugin, func, userData);
++#endif
++}
++
++NPError
++NPN_GetValue(NPP instance, NPNVariable variable, void *r_value)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetValueProc(gNetscapeFuncs.getvalue,
++ instance, variable, r_value);
++#else
++ return (*gNetscapeFuncs.getvalue)(instance, variable, r_value);
++#endif
++}
++
++NPError
++NPN_SetValue(NPP instance, NPPVariable variable, void *value)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_SetValueProc(gNetscapeFuncs.setvalue,
++ instance, variable, value);
++#else
++ return (*gNetscapeFuncs.setvalue)(instance, variable, value);
++#endif
++}
++
++NPError
++NPN_GetURL(NPP instance, const char* url, const char* window)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetURLProc(gNetscapeFuncs.geturl, instance, url, window);
++#else
++ return (*gNetscapeFuncs.geturl)(instance, url, window);
++#endif
++}
++
++NPError
++NPN_GetURLNotify(NPP instance, const char* url, const char* window, void* notifyData)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetURLNotifyProc(gNetscapeFuncs.geturlnotify, instance, url, window, notifyData);
++#else
++ return (*gNetscapeFuncs.geturlnotify)(instance, url, window, notifyData);
++#endif
++}
++
++NPError
++NPN_PostURL(NPP instance, const char* url, const char* window,
++ uint32_t len, const char* buf, NPBool file)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_PostURLProc(gNetscapeFuncs.posturl, instance,
++ url, window, len, buf, file);
++#else
++ return (*gNetscapeFuncs.posturl)(instance, url, window, len, buf, file);
++#endif
++}
++
++NPError
++NPN_PostURLNotify(NPP instance, const char* url, const char* window, uint32_t len,
++ const char* buf, NPBool file, void* notifyData)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_PostURLNotifyProc(gNetscapeFuncs.posturlnotify,
++ instance, url, window, len, buf, file, notifyData);
++#else
++ return (*gNetscapeFuncs.posturlnotify)(instance, url, window, len, buf, file, notifyData);
++
++#endif
++}
++
++NPError
++NPN_RequestRead(NPStream* stream, NPByteRange* rangeList)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_RequestReadProc(gNetscapeFuncs.requestread,
++ stream, rangeList);
++#else
++ return (*gNetscapeFuncs.requestread)(stream, rangeList);
++#endif
++}
++
++NPError
++NPN_NewStream(NPP instance, NPMIMEType type, const char *window,
++ NPStream** stream_ptr)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_NewStreamProc(gNetscapeFuncs.newstream, instance,
++ type, window, stream_ptr);
++#else
++ return (*gNetscapeFuncs.newstream)(instance, type, window, stream_ptr);
++#endif
++}
++
++int32_t
++NPN_Write(NPP instance, NPStream* stream, int32_t len, void* buffer)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_WriteProc(gNetscapeFuncs.write, instance,
++ stream, len, buffer);
++#else
++ return (*gNetscapeFuncs.write)(instance, stream, len, buffer);
++#endif
++}
++
++NPError
++NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_DestroyStreamProc(gNetscapeFuncs.destroystream,
++ instance, stream, reason);
++#else
++ return (*gNetscapeFuncs.destroystream)(instance, stream, reason);
++#endif
++}
++
++void
++NPN_Status(NPP instance, const char* message)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_StatusProc(gNetscapeFuncs.status, instance, message);
++#else
++ (*gNetscapeFuncs.status)(instance, message);
++#endif
++}
++
++const char*
++NPN_UserAgent(NPP instance)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_UserAgentProc(gNetscapeFuncs.uagent, instance);
++#else
++ return (*gNetscapeFuncs.uagent)(instance);
++#endif
++}
++
++void *NPN_MemAlloc(uint32_t size)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_MemAllocProc(gNetscapeFuncs.memalloc, size);
++#else
++ return (*gNetscapeFuncs.memalloc)(size);
++#endif
++}
++
++void NPN_MemFree(void* ptr)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_MemFreeProc(gNetscapeFuncs.memfree, ptr);
++#else
++ (*gNetscapeFuncs.memfree)(ptr);
++#endif
++}
++
++uint32_t NPN_MemFlush(uint32_t size)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_MemFlushProc(gNetscapeFuncs.memflush, size);
++#else
++ return (*gNetscapeFuncs.memflush)(size);
++#endif
++}
++
++void NPN_ReloadPlugins(NPBool reloadPages)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_ReloadPluginsProc(gNetscapeFuncs.reloadplugins, reloadPages);
++#else
++ (*gNetscapeFuncs.reloadplugins)(reloadPages);
++#endif
++}
++
++#ifdef OJI
++JRIEnv* NPN_GetJavaEnv()
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetJavaEnvProc(gNetscapeFuncs.getJavaEnv);
++#else
++ return (*gNetscapeFuncs.getJavaEnv);
++#endif
++}
++
++jref NPN_GetJavaPeer(NPP instance)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetJavaPeerProc(gNetscapeFuncs.getJavaPeer,
++ instance);
++#else
++ return (*gNetscapeFuncs.getJavaPeer)(instance);
++#endif
++}
++#endif
++
++void
++NPN_InvalidateRect(NPP instance, NPRect *invalidRect)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_InvalidateRectProc(gNetscapeFuncs.invalidaterect, instance,
++ invalidRect);
++#else
++ (*gNetscapeFuncs.invalidaterect)(instance, invalidRect);
++#endif
++}
++
++void
++NPN_InvalidateRegion(NPP instance, NPRegion invalidRegion)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_InvalidateRegionProc(gNetscapeFuncs.invalidateregion, instance,
++ invalidRegion);
++#else
++ (*gNetscapeFuncs.invalidateregion)(instance, invalidRegion);
++#endif
++}
++
++void
++NPN_ForceRedraw(NPP instance)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_ForceRedrawProc(gNetscapeFuncs.forceredraw, instance);
++#else
++ (*gNetscapeFuncs.forceredraw)(instance);
++#endif
++}
++
++void NPN_PushPopupsEnabledState(NPP instance, NPBool enabled)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_PushPopupsEnabledStateProc(gNetscapeFuncs.pushpopupsenabledstate,
++ instance, enabled);
++#else
++ (*gNetscapeFuncs.pushpopupsenabledstate)(instance, enabled);
++#endif
++}
++
++void NPN_PopPopupsEnabledState(NPP instance)
++{
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_PopPopupsEnabledStateProc(gNetscapeFuncs.poppopupsenabledstate,
++ instance);
++#else
++ (*gNetscapeFuncs.poppopupsenabledstate)(instance);
++#endif
++}
++
++NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetStringIdentifierProc(
++ gNetscapeFuncs.getstringidentifier, name);
++#else
++ return (*gNetscapeFuncs.getstringidentifier)(name);
++#endif
++ }
++ return NULL;
++}
++
++void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount,
++ NPIdentifier *identifiers)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_GetStringIdentifiersProc(gNetscapeFuncs.getstringidentifiers,
++ names, nameCount, identifiers);
++#else
++ (*gNetscapeFuncs.getstringidentifiers)(names, nameCount, identifiers);
++#endif
++ }
++}
++
++NPIdentifier NPN_GetIntIdentifier(int32_t intid)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetIntIdentifierProc(gNetscapeFuncs.getintidentifier, intid);
++#else
++ return (*gNetscapeFuncs.getintidentifier)(intid);
++#endif
++ }
++ return NULL;
++}
++
++bool NPN_IdentifierIsString(NPIdentifier identifier)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_IdentifierIsStringProc(
++ gNetscapeFuncs.identifierisstring,
++ identifier);
++#else
++ return (*gNetscapeFuncs.identifierisstring)(identifier);
++#endif
++ }
++ return false;
++}
++
++NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_UTF8FromIdentifierProc(
++ gNetscapeFuncs.utf8fromidentifier,
++ identifier);
++#else
++ return (*gNetscapeFuncs.utf8fromidentifier)(identifier);
++#endif
++ }
++ return NULL;
++}
++
++int32_t NPN_IntFromIdentifier(NPIdentifier identifier)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_IntFromIdentifierProc(
++ gNetscapeFuncs.intfromidentifier,
++ identifier);
++#else
++ return (*gNetscapeFuncs.intfromidentifier)(identifier);
++#endif
++ }
++ return 0;
++}
++
++NPObject *NPN_CreateObject(NPP npp, NPClass *aClass)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_CreateObjectProc(gNetscapeFuncs.createobject, npp, aClass);
++#else
++ return (*gNetscapeFuncs.createobject)(npp, aClass);
++#endif
++ return NULL;
++}
++
++NPObject *NPN_RetainObject(NPObject *obj)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_RetainObjectProc(gNetscapeFuncs.retainobject, obj);
++#else
++ return (*gNetscapeFuncs.retainobject)(obj);
++#endif
++ return NULL;
++}
++
++void NPN_ReleaseObject(NPObject *obj)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_ReleaseObjectProc(gNetscapeFuncs.releaseobject, obj);
++#else
++ (*gNetscapeFuncs.releaseobject)(obj);
++#endif
++}
++
++bool NPN_Invoke(NPP npp, NPObject* obj, NPIdentifier methodName,
++ const NPVariant *args, uint32_t argCount, NPVariant *result)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_InvokeProc(gNetscapeFuncs.invoke, npp, obj, methodName,
++ args, argCount, result);
++#else
++ return (*gNetscapeFuncs.invoke)(npp, obj, methodName, args, argCount, result);
++#endif
++ return false;
++}
++
++bool NPN_InvokeDefault(NPP npp, NPObject* obj, const NPVariant *args,
++ uint32_t argCount, NPVariant *result)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_InvokeDefaultProc(gNetscapeFuncs.invokeDefault, npp, obj,
++ args, argCount, result);
++#else
++ return (*gNetscapeFuncs.invokeDefault)(npp, obj, args, argCount, result);
++#endif
++ return false;
++}
++
++bool NPN_Evaluate(NPP npp, NPObject* obj, NPString *script,
++ NPVariant *result)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_EvaluateProc(gNetscapeFuncs.evaluate, npp, obj,
++ script, result);
++#else
++ return (*gNetscapeFuncs.evaluate)(npp, obj, script, result);
++#endif
++ return false;
++}
++
++bool NPN_GetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
++ NPVariant *result)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_GetPropertyProc(gNetscapeFuncs.getproperty, npp, obj,
++ propertyName, result);
++#else
++ return (*gNetscapeFuncs.getproperty)(npp, obj, propertyName, result);
++#endif
++ return false;
++}
++
++bool NPN_SetProperty(NPP npp, NPObject* obj, NPIdentifier propertyName,
++ const NPVariant *value)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_SetPropertyProc(gNetscapeFuncs.setproperty, npp, obj,
++ propertyName, value);
++#else
++ return (*gNetscapeFuncs.setproperty)(npp, obj, propertyName, value);
++#endif
++ return false;
++}
++
++bool NPN_RemoveProperty(NPP npp, NPObject* obj, NPIdentifier propertyName)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_RemovePropertyProc(gNetscapeFuncs.removeproperty, npp, obj,
++ propertyName);
++#else
++ return (*gNetscapeFuncs.removeproperty)(npp, obj, propertyName);
++#endif
++ return false;
++}
++
++bool NPN_HasProperty(NPP npp, NPObject* obj, NPIdentifier propertyName)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_HasPropertyProc(gNetscapeFuncs.hasproperty, npp, obj,
++ propertyName);
++#else
++ return (*gNetscapeFuncs.hasproperty)(npp, obj, propertyName);
++#endif
++ return false;
++}
++
++bool NPN_HasMethod(NPP npp, NPObject* obj, NPIdentifier methodName)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ return CallNPN_HasMethodProc(gNetscapeFuncs.hasmethod, npp,
++ obj, methodName);
++#else
++ return (*gNetscapeFuncs.hasmethod)(npp, obj, methodName);
++#endif
++ return false;
++}
++
++void NPN_ReleaseVariantValue(NPVariant *variant)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_ReleaseVariantValueProc(gNetscapeFuncs.releasevariantvalue, variant);
++#else
++ (*gNetscapeFuncs.releasevariantvalue)(variant);
++#endif
++}
++
++void NPN_SetException(NPObject* obj, const NPUTF8 *message)
++{
++ int minor = gNetscapeFuncs.version & 0xFF;
++ if( minor >= 14 )
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ CallNPN_SetExceptionProc(gNetscapeFuncs.setexception, obj, message);
++#else
++ (*gNetscapeFuncs.setexception)(obj, message);
++#endif
++}
++
++/***********************************************************************
++ *
++ * Wrapper functions : Netscape Navigator -> plugin
++ *
++ * These functions let the plugin developer just create the APIs
++ * as documented and defined in npapi.h, without needing to
++ * install those functions in the function table or worry about
++ * setting up globals for 68K plugins.
++ *
++ ***********************************************************************/
++
++/* Function prototypes */
++NPError Private_New(NPMIMEType pluginType, NPP instance, uint16_t mode,
++ int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
++NPError Private_Destroy(NPP instance, NPSavedData** save);
++NPError Private_SetWindow(NPP instance, NPWindow* window);
++NPError Private_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
++ NPBool seekable, uint16_t* stype);
++int32_t Private_WriteReady(NPP instance, NPStream* stream);
++int32_t Private_Write(NPP instance, NPStream* stream, int32_t offset,
++ int32_t len, void* buffer);
++void Private_StreamAsFile(NPP instance, NPStream* stream, const char* fname);
++NPError Private_DestroyStream(NPP instance, NPStream* stream, NPError reason);
++void Private_URLNotify(NPP instance, const char* url,
++ NPReason reason, void* notifyData);
++void Private_Print(NPP instance, NPPrint* platformPrint);
++NPError Private_GetValue(NPP instance, NPPVariable variable, void *r_value);
++NPError Private_SetValue(NPP instance, NPNVariable variable, void *r_value);
++#ifdef OJI
++JRIGlobalRef Private_GetJavaClass(void);
++#endif
++
++/* function implementations */
++NPError
++Private_New(NPMIMEType pluginType, NPP instance, uint16_t mode,
++ int16_t argc, char* argn[], char* argv[], NPSavedData* saved)
++{
++ NPError ret;
++ PLUGINDEBUGSTR("New");
++ ret = NPP_New(pluginType, instance, mode, argc, argn, argv, saved);
++ return ret;
++}
++
++NPError
++Private_Destroy(NPP instance, NPSavedData** save)
++{
++ PLUGINDEBUGSTR("Destroy");
++ return NPP_Destroy(instance, save);
++}
++
++NPError
++Private_SetWindow(NPP instance, NPWindow* window)
++{
++ NPError err;
++ PLUGINDEBUGSTR("SetWindow");
++ err = NPP_SetWindow(instance, window);
++ return err;
++}
++
++NPError
++Private_NewStream(NPP instance, NPMIMEType type, NPStream* stream,
++ NPBool seekable, uint16_t* stype)
++{
++ NPError err;
++ PLUGINDEBUGSTR("NewStream");
++ err = NPP_NewStream(instance, type, stream, seekable, stype);
++ return err;
++}
++
++int32_t
++Private_WriteReady(NPP instance, NPStream* stream)
++{
++ unsigned int result;
++ PLUGINDEBUGSTR("WriteReady");
++ result = NPP_WriteReady(instance, stream);
++ return result;
++}
++
++int32_t
++Private_Write(NPP instance, NPStream* stream, int32_t offset, int32_t len,
++ void* buffer)
++{
++ unsigned int result;
++ PLUGINDEBUGSTR("Write");
++ result = NPP_Write(instance, stream, offset, len, buffer);
++ return result;
++}
++
++void
++Private_StreamAsFile(NPP instance, NPStream* stream, const char* fname)
++{
++ PLUGINDEBUGSTR("StreamAsFile");
++ NPP_StreamAsFile(instance, stream, fname);
++}
++
++
++NPError
++Private_DestroyStream(NPP instance, NPStream* stream, NPError reason)
++{
++ NPError err;
++ PLUGINDEBUGSTR("DestroyStream");
++ err = NPP_DestroyStream(instance, stream, reason);
++ return err;
++}
++
++void
++Private_URLNotify(NPP instance, const char* url,
++ NPReason reason, void* notifyData)
++{
++ PLUGINDEBUGSTR("URLNotify");
++ NPP_URLNotify(instance, url, reason, notifyData);
++}
++
++void
++Private_Print(NPP instance, NPPrint* platformPrint)
++{
++ PLUGINDEBUGSTR("Print");
++ NPP_Print(instance, platformPrint);
++}
++
++NPError
++Private_GetValue(NPP instance, NPPVariable variable, void *r_value)
++{
++ PLUGINDEBUGSTR("GetValue");
++ return NPP_GetValue(instance, variable, r_value);
++}
++
++NPError
++Private_SetValue(NPP instance, NPNVariable variable, void *r_value)
++{
++ PLUGINDEBUGSTR("SetValue");
++ return NPP_SetValue(instance, variable, r_value);
++}
++
++#ifdef OJI
++JRIGlobalRef
++Private_GetJavaClass(void)
++{
++ jref clazz = NPP_GetJavaClass();
++ if (clazz) {
++ JRIEnv* env = NPN_GetJavaEnv();
++ return JRI_NewGlobalRef(env, clazz);
++ }
++ return NULL;
++}
++#endif
++
++/***********************************************************************
++ *
++ * These functions are located automagically by netscape.
++ *
++ ***********************************************************************/
++
++/*
++ * NP_GetMIMEDescription
++ * - Netscape needs to know about this symbol
++ * - Netscape uses the return value to identify when an object instance
++ * of this plugin should be created.
++ */
++char *
++NP_GetMIMEDescription(void)
++{
++ return NPP_GetMIMEDescription();
++}
++
++/*
++ * NP_GetValue [optional]
++ * - Netscape needs to know about this symbol.
++ * - Interfaces with plugin to get values for predefined variables
++ * that the navigator needs.
++ */
++NPError
++NP_GetValue(void* future, NPPVariable variable, void *value)
++{
++ return NPP_GetValue((NPP)future, variable, value);
++}
++
++/*
++ * NP_Initialize
++ * - Netscape needs to know about this symbol.
++ * - It calls this function after looking up its symbol before it
++ * is about to create the first ever object of this kind.
++ *
++ * PARAMETERS
++ * nsTable - The netscape function table. If developers just use these
++ * wrappers, they don't need to worry about all these function
++ * tables.
++ * RETURN
++ * pluginFuncs
++ * - This functions needs to fill the plugin function table
++ * pluginFuncs and return it. Netscape Navigator plugin
++ * library will use this function table to call the plugin.
++ *
++ */
++NPError
++NP_Initialize(NPNetscapeFuncs* nsTable, NPPluginFuncs* pluginFuncs)
++{
++ NPError err = NPERR_NO_ERROR;
++
++ PLUGINDEBUGSTR("NP_Initialize");
++
++ /* validate input parameters */
++ if ((nsTable == NULL) || (pluginFuncs == NULL))
++ err = NPERR_INVALID_FUNCTABLE_ERROR;
++
++ /*
++ * Check the major version passed in Netscape's function table.
++ * We won't load if the major version is newer than what we expect.
++ * Also check that the function tables passed in are big enough for
++ * all the functions we need (they could be bigger, if Netscape added
++ * new APIs, but that's OK with us -- we'll just ignore them).
++ *
++ */
++ if (err == NPERR_NO_ERROR) {
++ if ((nsTable->version >> 8) > NP_VERSION_MAJOR)
++ err = NPERR_INCOMPATIBLE_VERSION_ERROR;
++ if (nsTable->size < ((char *)&nsTable->posturlnotify - (char *)nsTable))
++ err = NPERR_INVALID_FUNCTABLE_ERROR;
++ if (pluginFuncs->size < sizeof(NPPluginFuncs))
++ err = NPERR_INVALID_FUNCTABLE_ERROR;
++ }
++
++ if (err == NPERR_NO_ERROR)
++ {
++ /*
++ * Copy all the fields of Netscape function table into our
++ * copy so we can call back into Netscape later. Note that
++ * we need to copy the fields one by one, rather than assigning
++ * the whole structure, because the Netscape function table
++ * could actually be bigger than what we expect.
++ */
++ int minor = nsTable->version & 0xFF;
++
++ gNetscapeFuncs.version = nsTable->version;
++ gNetscapeFuncs.size = nsTable->size;
++ gNetscapeFuncs.posturl = nsTable->posturl;
++ gNetscapeFuncs.geturl = nsTable->geturl;
++ gNetscapeFuncs.requestread = nsTable->requestread;
++ gNetscapeFuncs.newstream = nsTable->newstream;
++ gNetscapeFuncs.write = nsTable->write;
++ gNetscapeFuncs.destroystream = nsTable->destroystream;
++ gNetscapeFuncs.status = nsTable->status;
++ gNetscapeFuncs.uagent = nsTable->uagent;
++ gNetscapeFuncs.memalloc = nsTable->memalloc;
++ gNetscapeFuncs.memfree = nsTable->memfree;
++ gNetscapeFuncs.memflush = nsTable->memflush;
++ gNetscapeFuncs.reloadplugins = nsTable->reloadplugins;
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) >= 20)
++ gNetscapeFuncs.pluginthreadasynccall =
++ nsTable->pluginthreadasynccall;
++#endif
++#ifdef OJI
++ if( minor >= NPVERS_HAS_LIVECONNECT )
++ {
++ gNetscapeFuncs.getJavaEnv = nsTable->getJavaEnv;
++ gNetscapeFuncs.getJavaPeer = nsTable->getJavaPeer;
++ }
++#endif
++ gNetscapeFuncs.getvalue = nsTable->getvalue;
++ gNetscapeFuncs.setvalue = nsTable->setvalue;
++
++ if( minor >= NPVERS_HAS_NOTIFICATION )
++ {
++ gNetscapeFuncs.geturlnotify = nsTable->geturlnotify;
++ gNetscapeFuncs.posturlnotify = nsTable->posturlnotify;
++ }
++
++ if (nsTable->size >= ((char *)&nsTable->setexception - (char *)nsTable))
++ {
++ gNetscapeFuncs.invalidaterect = nsTable->invalidaterect;
++ gNetscapeFuncs.invalidateregion = nsTable->invalidateregion;
++ gNetscapeFuncs.forceredraw = nsTable->forceredraw;
++ /* npruntime support */
++ if (minor >= 14)
++ {
++ gNetscapeFuncs.getstringidentifier = nsTable->getstringidentifier;
++ gNetscapeFuncs.getstringidentifiers = nsTable->getstringidentifiers;
++ gNetscapeFuncs.getintidentifier = nsTable->getintidentifier;
++ gNetscapeFuncs.identifierisstring = nsTable->identifierisstring;
++ gNetscapeFuncs.utf8fromidentifier = nsTable->utf8fromidentifier;
++ gNetscapeFuncs.intfromidentifier = nsTable->intfromidentifier;
++ gNetscapeFuncs.createobject = nsTable->createobject;
++ gNetscapeFuncs.retainobject = nsTable->retainobject;
++ gNetscapeFuncs.releaseobject = nsTable->releaseobject;
++ gNetscapeFuncs.invoke = nsTable->invoke;
++ gNetscapeFuncs.invokeDefault = nsTable->invokeDefault;
++ gNetscapeFuncs.evaluate = nsTable->evaluate;
++ gNetscapeFuncs.getproperty = nsTable->getproperty;
++ gNetscapeFuncs.setproperty = nsTable->setproperty;
++ gNetscapeFuncs.removeproperty = nsTable->removeproperty;
++ gNetscapeFuncs.hasproperty = nsTable->hasproperty;
++ gNetscapeFuncs.hasmethod = nsTable->hasmethod;
++ gNetscapeFuncs.releasevariantvalue = nsTable->releasevariantvalue;
++ gNetscapeFuncs.setexception = nsTable->setexception;
++ }
++ }
++ else
++ {
++ gNetscapeFuncs.invalidaterect = NULL;
++ gNetscapeFuncs.invalidateregion = NULL;
++ gNetscapeFuncs.forceredraw = NULL;
++ gNetscapeFuncs.getstringidentifier = NULL;
++ gNetscapeFuncs.getstringidentifiers = NULL;
++ gNetscapeFuncs.getintidentifier = NULL;
++ gNetscapeFuncs.identifierisstring = NULL;
++ gNetscapeFuncs.utf8fromidentifier = NULL;
++ gNetscapeFuncs.intfromidentifier = NULL;
++ gNetscapeFuncs.createobject = NULL;
++ gNetscapeFuncs.retainobject = NULL;
++ gNetscapeFuncs.releaseobject = NULL;
++ gNetscapeFuncs.invoke = NULL;
++ gNetscapeFuncs.invokeDefault = NULL;
++ gNetscapeFuncs.evaluate = NULL;
++ gNetscapeFuncs.getproperty = NULL;
++ gNetscapeFuncs.setproperty = NULL;
++ gNetscapeFuncs.removeproperty = NULL;
++ gNetscapeFuncs.hasproperty = NULL;
++ gNetscapeFuncs.releasevariantvalue = NULL;
++ gNetscapeFuncs.setexception = NULL;
++ }
++ if (nsTable->size >=
++ ((char *)&nsTable->poppopupsenabledstate - (char *)nsTable))
++ {
++ gNetscapeFuncs.pushpopupsenabledstate = nsTable->pushpopupsenabledstate;
++ gNetscapeFuncs.poppopupsenabledstate = nsTable->poppopupsenabledstate;
++ }
++ else
++ {
++ gNetscapeFuncs.pushpopupsenabledstate = NULL;
++ gNetscapeFuncs.poppopupsenabledstate = NULL;
++ }
++
++ /*
++ * Set up the plugin function table that Netscape will use to
++ * call us. Netscape needs to know about our version and size
++ * and have a UniversalProcPointer for every function we
++ * implement.
++ */
++ pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
++ pluginFuncs->size = sizeof(NPPluginFuncs);
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ pluginFuncs->newp = NewNPP_NewProc(Private_New);
++ pluginFuncs->destroy = NewNPP_DestroyProc(Private_Destroy);
++ pluginFuncs->setwindow = NewNPP_SetWindowProc(Private_SetWindow);
++ pluginFuncs->newstream = NewNPP_NewStreamProc(Private_NewStream);
++ pluginFuncs->destroystream = NewNPP_DestroyStreamProc(Private_DestroyStream);
++ pluginFuncs->asfile = NewNPP_StreamAsFileProc(Private_StreamAsFile);
++ pluginFuncs->writeready = NewNPP_WriteReadyProc(Private_WriteReady);
++ pluginFuncs->write = NewNPP_WriteProc(Private_Write);
++ pluginFuncs->print = NewNPP_PrintProc(Private_Print);
++ pluginFuncs->getvalue = NewNPP_GetValueProc(Private_GetValue);
++ pluginFuncs->setvalue = NewNPP_SetValueProc(Private_SetValue);
++#else
++ pluginFuncs->newp = (NPP_NewProcPtr)(Private_New);
++ pluginFuncs->destroy = (NPP_DestroyProcPtr)(Private_Destroy);
++ pluginFuncs->setwindow = (NPP_SetWindowProcPtr)(Private_SetWindow);
++ pluginFuncs->newstream = (NPP_NewStreamProcPtr)(Private_NewStream);
++ pluginFuncs->destroystream = (NPP_DestroyStreamProcPtr)(Private_DestroyStream);
++ pluginFuncs->asfile = (NPP_StreamAsFileProcPtr)(Private_StreamAsFile);
++ pluginFuncs->writeready = (NPP_WriteReadyProcPtr)(Private_WriteReady);
++ pluginFuncs->write = (NPP_WriteProcPtr)(Private_Write);
++ pluginFuncs->print = (NPP_PrintProcPtr)(Private_Print);
++ pluginFuncs->getvalue = (NPP_GetValueProcPtr)(Private_GetValue);
++ pluginFuncs->setvalue = (NPP_SetValueProcPtr)(Private_SetValue);
++#endif
++ pluginFuncs->event = NULL;
++ if( minor >= NPVERS_HAS_NOTIFICATION )
++ {
++#if (((NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR) < 20)
++ pluginFuncs->urlnotify = NewNPP_URLNotifyProc(Private_URLNotify);
++#else
++ pluginFuncs->urlnotify = (NPP_URLNotifyProcPtr)(Private_URLNotify);
++#endif
++ }
++#ifdef OJI
++ if( minor >= NPVERS_HAS_LIVECONNECT )
++ pluginFuncs->javaClass = Private_GetJavaClass();
++ else
++ pluginFuncs->javaClass = NULL;
++#else
++ pluginFuncs->javaClass = NULL;
++#endif
++
++ err = NPP_Initialize();
++ }
++
++ return err;
++}
++
++/*
++ * NP_Shutdown [optional]
++ * - Netscape needs to know about this symbol.
++ * - It calls this function after looking up its symbol after
++ * the last object of this kind has been destroyed.
++ *
++ */
++NPError
++NP_Shutdown(void)
++{
++ PLUGINDEBUGSTR("NP_Shutdown");
++ NPP_Shutdown();
++ return NPERR_NO_ERROR;
++}
+--- a/projects/mozilla/Makefile.in
++++ b/projects/mozilla/Makefile.in
+@@ -90,7 +90,7 @@
+ vlcplugin.cpp vlcplugin.h control/npolibvlc.cpp \
+ control/npolibvlc.h control/nporuntime.cpp \
+ control/nporuntime.h control/position.h support/classinfo.h \
+- support/npunix.c support/npmac.cpp support/npwin.cpp
++ support/npunix.cpp support/npmac.cpp support/npwin.cpp
+ am__objects_1 = libvlcplugin_la-vlcshell.lo \
+ libvlcplugin_la-vlcplugin.lo libvlcplugin_la-npolibvlc.lo \
+ libvlcplugin_la-nporuntime.lo
+@@ -113,7 +113,7 @@
+ am__npvlc_la_SOURCES_DIST = vlcshell.cpp vlcshell.h vlcplugin.cpp \
+ vlcplugin.h control/npolibvlc.cpp control/npolibvlc.h \
+ control/nporuntime.cpp control/nporuntime.h control/position.h \
+- support/classinfo.h support/npunix.c support/npmac.cpp \
++ support/classinfo.h support/npunix.cpp support/npmac.cpp \
+ support/npwin.cpp
+ am__objects_3 = npvlc_la-vlcshell.lo npvlc_la-vlcplugin.lo \
+ npvlc_la-npolibvlc.lo npvlc_la-nporuntime.lo
+@@ -138,25 +138,6 @@
+ depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp
+ am__depfiles_maybe = depfiles
+ am__mv = mv -f
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+- $(AM_CFLAGS) $(CFLAGS)
+-AM_V_CC = $(am__v_CC_$(V))
+-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+-am__v_CC_0 = @echo " CC " $@;
+-AM_V_at = $(am__v_at_$(V))
+-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+-am__v_at_0 = @
+-CCLD = $(CC)
+-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+- $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-AM_V_CCLD = $(am__v_CCLD_$(V))
+-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+-am__v_CCLD_0 = @echo " CCLD " $@;
+ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+@@ -166,6 +147,9 @@
+ AM_V_CXX = $(am__v_CXX_$(V))
+ am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
+ am__v_CXX_0 = @echo " CXX " $@;
++AM_V_at = $(am__v_at_$(V))
++am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
++am__v_at_0 = @
+ CXXLD = $(CXX)
+ CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+@@ -173,6 +157,22 @@
+ AM_V_CXXLD = $(am__v_CXXLD_$(V))
+ am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
+ am__v_CXXLD_0 = @echo " CXXLD " $@;
++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
++ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
++ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
++ $(AM_CFLAGS) $(CFLAGS)
++AM_V_CC = $(am__v_CC_$(V))
++am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
++am__v_CC_0 = @echo " CC " $@;
++CCLD = $(CC)
++LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
++ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++ $(AM_LDFLAGS) $(LDFLAGS) -o $@
++AM_V_CCLD = $(am__v_CCLD_$(V))
++am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
++am__v_CCLD_0 = @echo " CCLD " $@;
+ AM_V_GEN = $(am__v_GEN_$(V))
+ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+ am__v_GEN_0 = @echo " GEN " $@;
+@@ -704,7 +704,7 @@
+ support/classinfo.h
+
+ DIST_sources = $(SOURCES_mozilla_common) \
+- support/npwin.cpp support/npmac.cpp support/npunix.c
++ support/npwin.cpp support/npmac.cpp support/npunix.cpp
+
+ @BUILD_MOZILLA_TRUE at LIBRARIES_libvlc = $(top_builddir)/src/libvlc.la \
+ @BUILD_MOZILLA_TRUE@ $(top_builddir)/src/libvlccore.la
+@@ -717,10 +717,10 @@
+
+ # Under Win32, Mozilla plugins need to be named NP******.DLL, but under Unix
+ # the common naming scheme is lib******plugin.so. Also, we need npwin.cpp
+-# under Win32 and npunix.c under Unix.
++# under Win32 and npunix.cpp under Unix.
+ #
+ @BUILD_MOZILLA_TRUE@@HAVE_WIN32_TRUE at lib_LTLIBRARIES = npvlc.la
+- at BUILD_MOZILLA_TRUE@@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE at SOURCES_support = support/npunix.c
++ at BUILD_MOZILLA_TRUE@@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE at SOURCES_support = support/npunix.cpp
+ @BUILD_MOZILLA_TRUE@@HAVE_DARWIN_TRUE@@HAVE_WIN32_FALSE at SOURCES_support = support/npmac.cpp
+ @BUILD_MOZILLA_TRUE@@HAVE_WIN32_TRUE at SOURCES_support = support/npwin.cpp
+
+@@ -781,7 +781,7 @@
+ all: all-am
+
+ .SUFFIXES:
+-.SUFFIXES: .c .cpp .lo .o .obj
++.SUFFIXES: .cpp .lo .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+@@ -908,46 +908,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/npvlc_la-vlcplugin.Plo at am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/npvlc_la-vlcshell.Plo at am__quote@
+
+-.c.o:
+- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+- at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+- at am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+- at am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+- at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+- at am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-.c.lo:
+- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+- at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+- at am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+-
+-libvlcplugin_la-npunix.lo: support/npunix.c
+- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CFLAGS) $(CFLAGS) -MT libvlcplugin_la-npunix.lo -MD -MP -MF $(DEPDIR)/libvlcplugin_la-npunix.Tpo -c -o libvlcplugin_la-npunix.lo `test -f 'support/npunix.c' || echo '$(srcdir)/'`support/npunix.c
+- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvlcplugin_la-npunix.Tpo $(DEPDIR)/libvlcplugin_la-npunix.Plo
+- at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='support/npunix.c' object='libvlcplugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+- at am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CFLAGS) $(CFLAGS) -c -o libvlcplugin_la-npunix.lo `test -f 'support/npunix.c' || echo '$(srcdir)/'`support/npunix.c
+-
+-npvlc_la-npunix.lo: support/npunix.c
+- at am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CFLAGS) $(CFLAGS) -MT npvlc_la-npunix.lo -MD -MP -MF $(DEPDIR)/npvlc_la-npunix.Tpo -c -o npvlc_la-npunix.lo `test -f 'support/npunix.c' || echo '$(srcdir)/'`support/npunix.c
+- at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/npvlc_la-npunix.Tpo $(DEPDIR)/npvlc_la-npunix.Plo
+- at am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='support/npunix.c' object='npvlc_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
+- at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+- at am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CFLAGS) $(CFLAGS) -c -o npvlc_la-npunix.lo `test -f 'support/npunix.c' || echo '$(srcdir)/'`support/npunix.c
+-
+ .cpp.o:
+ @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@@ -1004,6 +964,14 @@
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libvlcplugin_la-nporuntime.lo `test -f 'control/nporuntime.cpp' || echo '$(srcdir)/'`control/nporuntime.cpp
+
++libvlcplugin_la-npunix.lo: support/npunix.cpp
++ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CXXFLAGS) $(CXXFLAGS) -MT libvlcplugin_la-npunix.lo -MD -MP -MF $(DEPDIR)/libvlcplugin_la-npunix.Tpo -c -o libvlcplugin_la-npunix.lo `test -f 'support/npunix.cpp' || echo '$(srcdir)/'`support/npunix.cpp
++ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvlcplugin_la-npunix.Tpo $(DEPDIR)/libvlcplugin_la-npunix.Plo
++ at am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='support/npunix.cpp' object='libvlcplugin_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CXXFLAGS) $(CXXFLAGS) -c -o libvlcplugin_la-npunix.lo `test -f 'support/npunix.cpp' || echo '$(srcdir)/'`support/npunix.cpp
++
+ libvlcplugin_la-npmac.lo: support/npmac.cpp
+ @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libvlcplugin_la_CXXFLAGS) $(CXXFLAGS) -MT libvlcplugin_la-npmac.lo -MD -MP -MF $(DEPDIR)/libvlcplugin_la-npmac.Tpo -c -o libvlcplugin_la-npmac.lo `test -f 'support/npmac.cpp' || echo '$(srcdir)/'`support/npmac.cpp
+ @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvlcplugin_la-npmac.Tpo $(DEPDIR)/libvlcplugin_la-npmac.Plo
+@@ -1052,6 +1020,14 @@
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CXXFLAGS) $(CXXFLAGS) -c -o npvlc_la-nporuntime.lo `test -f 'control/nporuntime.cpp' || echo '$(srcdir)/'`control/nporuntime.cpp
+
++npvlc_la-npunix.lo: support/npunix.cpp
++ at am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CXXFLAGS) $(CXXFLAGS) -MT npvlc_la-npunix.lo -MD -MP -MF $(DEPDIR)/npvlc_la-npunix.Tpo -c -o npvlc_la-npunix.lo `test -f 'support/npunix.cpp' || echo '$(srcdir)/'`support/npunix.cpp
++ at am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/npvlc_la-npunix.Tpo $(DEPDIR)/npvlc_la-npunix.Plo
++ at am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='support/npunix.cpp' object='npvlc_la-npunix.lo' libtool=yes @AMDEPBACKSLASH@
++ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++ at am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CXXFLAGS) $(CXXFLAGS) -c -o npvlc_la-npunix.lo `test -f 'support/npunix.cpp' || echo '$(srcdir)/'`support/npunix.cpp
++
+ npvlc_la-npmac.lo: support/npmac.cpp
+ @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(npvlc_la_CXXFLAGS) $(CXXFLAGS) -MT npvlc_la-npmac.lo -MD -MP -MF $(DEPDIR)/npvlc_la-npmac.Tpo -c -o npvlc_la-npmac.lo `test -f 'support/npmac.cpp' || echo '$(srcdir)/'`support/npmac.cpp
+ @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/npvlc_la-npmac.Tpo $(DEPDIR)/npvlc_la-npmac.Plo
diff --git a/debian/patches/series b/debian/patches/series
index a372441..d76b305 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@ fix-xspf-integer-overflow.patch
backport-pulse-rewrite.patch
backport-fix-NULL-derefence.patch
backport-fullscreen-fix.patch
+backport-firefox-4-compatibility.patch
--
VLC media player packaging
More information about the pkg-multimedia-commits
mailing list