[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