summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorracarr <racarr@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2006-12-18 10:44:24 +0000
committerracarr <racarr@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2006-12-18 10:44:24 +0000
commit015ab62642a4cd8dcfacc089bd32bdc159229607 (patch)
tree6b71506465059d198d44bde99019f6887705b72c
parentb1b09191d085f922718a7687bc025999035e485f (diff)
downloadmarex-dev-015ab62642a4cd8dcfacc089bd32bdc159229607.tar.gz
marex-dev-015ab62642a4cd8dcfacc089bd32bdc159229607.tar.bz2
Reverted r1848
git-svn-id: file:///beryl/trunk@1862 d7aaf104-2d23-0410-ae22-9d23157bf5a3
-rw-r--r--beryl-plugins/src/Makefile.am7
-rw-r--r--beryl-plugins/src/base_plugin.cpp261
-rw-r--r--beryl-plugins/src/base_plugin.hpp110
-rw-r--r--beryl-plugins/src/crashhandlerpp.cpp305
4 files changed, 2 insertions, 681 deletions
diff --git a/beryl-plugins/src/Makefile.am b/beryl-plugins/src/Makefile.am
index a8bb8dc..0579f6f 100644
--- a/beryl-plugins/src/Makefile.am
+++ b/beryl-plugins/src/Makefile.am
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in
-PFLAGS=-module -avoid-version -no-undefined -export-dynamic
+PFLAGS=-module -avoid-version -no-undefined
libclone_la_LDFLAGS = $(PFLAGS)
libclone_la_LIBADD = @BERYL_LIBS@ @BERYLSETTINGS_LIBS@
@@ -40,9 +40,7 @@ libcrashhandler_la_LDFLAGS = $(PFLAGS)
libcrashhandler_la_LIBADD = @BERYL_LIBS@ @BERYLSETTINGS_LIBS@
libcrashhandler_la_SOURCES = crashhandler.c
-libcrashhandlerpp_la_LDFLAGS = $(PFLAGS)
-libcrashhandlerpp_la_LIBADD = @BERYL_LIBS@ @BERYLSETTINGS_LIBS@
-libcrashhandlerpp_la_SOURCES = base_plugin.cpp crashhandlerpp.cpp
+
libbench_la_LDFLAGS = $(PFLAGS)
libbench_la_LIBADD = @BERYL_LIBS@ @BERYLSETTINGS_LIBS@
@@ -159,7 +157,6 @@ moduledir = $(plugindir)
module_LTLIBRARIES = \
libsettings.la \
libcrashhandler.la \
- libcrashhandlerpp.la \
libdecoration.la \
libwobbly.la \
libanimation.la \
diff --git a/beryl-plugins/src/base_plugin.cpp b/beryl-plugins/src/base_plugin.cpp
deleted file mode 100644
index ac83786..0000000
--- a/beryl-plugins/src/base_plugin.cpp
+++ /dev/null
@@ -1,261 +0,0 @@
-#include <malloc.h>
-
-extern "C"
-{
-#include <beryl/beryl.h>
-#include "base_plugin.hpp"
-}
-
-// CPluginDisplay
-
-CPluginDisplay::CPluginDisplay()
-{
- return;
-}
-CPluginDisplay::~CPluginDisplay()
-{
- return;
-}
-
-Bool CPluginDisplay::SetOption(char *name, CompOptionValue *value)
-{
- return FALSE;
-}
-
-CompOption *CPluginDisplay::GetOptions(int *count)
-{
- return NULL;
-}
-
-void CPluginDisplay::InitOptions()
-{
- return;
-}
-
-Bool CPluginDisplay::Init(CBerylPlugin *p, CompDisplay *d)
-{
- this->screenPrivateIndex = allocateScreenPrivateIndex(d);
- if (this->screenPrivateIndex < 0)
- return FALSE;
-
- this->owner = p;
- this->parent = d;
- return TRUE;
-}
-
-void CPluginDisplay::Fini()
-{
- freeScreenPrivateIndex(this->parent, this->screenPrivateIndex);
-}
-
-// CPluginScreen
-
-CPluginScreen::CPluginScreen()
-{
- return;
-}
-
-CPluginScreen::~CPluginScreen()
-{
- return;
-}
-
-Bool CPluginScreen::SetOption(char *name, CompOptionValue *value)
-{
- return FALSE;
-}
-
-CompOption *CPluginScreen::GetOptions(int *count)
-{
- return NULL;
-}
-void CPluginScreen::InitOptions()
-{
- return;
-}
-
-Bool CPluginScreen::Init(CPluginDisplay *d, CompScreen *s)
-{
- this->windowPrivateIndex = allocateWindowPrivateIndex(s);
- if (this->windowPrivateIndex < 0)
- return FALSE;
-
- this->owner = d;
- this->parent = s;
-
- return TRUE;
-}
-
-void CPluginScreen::Fini()
-{
- freeWindowPrivateIndex(this->parent, this->windowPrivateIndex);
-}
-
-
-// CPluginWindow
-CPluginWindow::CPluginWindow()
-{
- return;
-}
-CPluginWindow::~CPluginWindow()
-{
- return;
-}
-
-Bool CPluginWindow::Init(CPluginScreen *s, CompWindow *w)
-{
- this->owner = s;
- this->parent = w;
- return TRUE;
-}
-
-void CPluginWindow::Fini()
-{
- return;
-}
-
-// CBerylPlugin
-
-
- CBerylPlugin::CBerylPlugin() { return; }
-
- CBerylPlugin::~CBerylPlugin() { return; }
-
-
- // This method should just return an instance of (a descendent of) CPluginDisplay
- CPluginDisplay *CBerylPlugin::createDisplay() { return NULL; }
- CPluginScreen *CBerylPlugin::createScreen() { return NULL; }
- CPluginWindow *CBerylPlugin::createWindow() { return NULL; }
- // ** These methods perform generic plugin duties.
- // Init & fini for the display (aka. workspace).
- Bool CBerylPlugin::Init(CompPlugin *p)
- {
- this->parent = p;
- this->displayPrivateIndex = allocateDisplayPrivateIndex();
- if (this->displayPrivateIndex < 0)
- return FALSE;
- return TRUE;
- }
-
- void CBerylPlugin::Fini(CompPlugin *p)
- {
- if (this->displayPrivateIndex >= 0)
- freeDisplayPrivateIndex(this->displayPrivateIndex);
- }
-
- Bool CBerylPlugin::InitDisplay(CompPlugin * p, CompDisplay * d)
- {
- CPluginDisplay *pd = this->createDisplay();
-
- if (!pd)
- return FALSE;
- if (!pd->Init(this, d)) {
- delete pd;
- return FALSE;
- }
-
- d->privates[displayPrivateIndex].ptr = pd;
- pd->InitOptions();
- return TRUE;
- }
-
- void CBerylPlugin::FiniDisplay(CompPlugin * p, CompDisplay * d)
- {
- PLUGIN_DISPLAY(d);
- pd->Fini();
- delete pd;
- }
- // Init & fini for screen (aka. viewport).
- Bool CBerylPlugin::InitScreen(CompPlugin * p, CompScreen * s)
- {
- PLUGIN_DISPLAY(s->display);
- CPluginScreen *ps = this->createScreen();
- if (!ps)
- return FALSE;
- if (!ps->Init(pd, s)) {
- delete ps;
- return FALSE;
- }
-
- s->privates[pd->screenPrivateIndex].ptr = this;
- ps->InitOptions();
-
- delete ps;
-
- return TRUE;
- }
-
- void CBerylPlugin::FiniScreen(CompPlugin * p, CompScreen * s)
- {
- PLUGIN_SCREEN(s);
- ps->Fini();
- delete ps;
- }
-
- Bool CBerylPlugin::InitWindow(CompPlugin * p, CompWindow * w)
- {
- PLUGIN_SCREEN(w->screen);
- CPluginWindow *pw = this->createWindow();
- if (!pw || !pw->Init(ps, w))
- return FALSE;
-
- w->privates[ps->windowPrivateIndex].ptr = pw;
- return TRUE;
- }
-
- void CBerylPlugin::FiniWindow(CompPlugin * p, CompWindow * w)
- {
- PLUGIN_WINDOW(w);
- pw->Fini();
- delete pw;
- }
-
- CompOption *CBerylPlugin::GetDisplayOptions(CompDisplay * d, int *count)
- {
- if (d)
- {
- PLUGIN_DISPLAY(d);
- return pd->GetOptions(count);
- }
- else
- {
- CompOption *ret;
- CPluginDisplay *pd = this->createDisplay();
- pd->InitOptions();
- ret = pd->GetOptions(count);
- delete pd;
- return ret;
- };
- }
-
- Bool CBerylPlugin::SetDisplayOption(CompDisplay * d, char *name, CompOptionValue *value)
- {
- PLUGIN_DISPLAY(d);
- return pd->SetOption(name, value);
- }
-
-
- CompOption *CBerylPlugin::GetScreenOptions(CompScreen *s, int *count)
- {
- if (s)
- {
- PLUGIN_SCREEN(s);
- return ps->GetOptions(count);
- }
- else
- {
- CompOption* ret;
- CPluginScreen *ps = this->createScreen();
- ps->InitOptions();
- ret = ps->GetOptions(count);
- delete ps;
- return ret;
- };
- }
-
- Bool CBerylPlugin::SetScreenOption(CompScreen *s, char *name, CompOptionValue *value)
- {
- PLUGIN_SCREEN(s);
- return ps->SetOption(name, value);
- }
-
diff --git a/beryl-plugins/src/base_plugin.hpp b/beryl-plugins/src/base_plugin.hpp
deleted file mode 100644
index 672d3fa..0000000
--- a/beryl-plugins/src/base_plugin.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-#ifndef BASE_PLUGIN_HPP
-#define BASE_PLUGIN_HPP
-#include <beryl/beryl.h>
-#include <malloc.h>
-
-class CPluginDisplay;
-class CPluginScreen;
-class CPluginWindow;
-class CBerylPlugin;
-
-class CPluginDisplay
-{
- public:
- CBerylPlugin *owner;
- CompDisplay *parent;
- int screenPrivateIndex;
-
- CPluginDisplay();
- virtual ~CPluginDisplay();
-
- virtual Bool SetOption(char *name, CompOptionValue *value);
- virtual CompOption *GetOptions(int *count);
- virtual void InitOptions();
-
- virtual Bool Init(CBerylPlugin *p, CompDisplay *d);
- virtual void Fini();
-
-};
-
-class CPluginScreen
-{
- public:
- CPluginDisplay *owner;
- CompScreen *parent;
- int windowPrivateIndex;
-
- CPluginScreen();
- virtual ~CPluginScreen();
-
- virtual Bool SetOption(char *name, CompOptionValue *value);
- virtual CompOption *GetOptions(int *count);
- virtual void InitOptions();
-
- virtual Bool Init(CPluginDisplay *d, CompScreen *s);
- virtual void Fini();
-
-};
-
-class CPluginWindow
-{
- public:
- CompWindow *parent;
- CPluginScreen *owner;
-
- CPluginWindow();
- virtual ~CPluginWindow();
-
- virtual Bool Init(CPluginScreen *s, CompWindow *w);
- virtual void Fini();
-
-};
-
-#define GET_PLUGIN_DISPLAY(d) ((CPluginDisplay *) (d)->privates[displayPrivateIndex].ptr)
-#define PLUGIN_DISPLAY(d) CPluginDisplay *pd = GET_PLUGIN_DISPLAY (d)
-
-#define GET_PLUGIN_SCREEN(s, pd) ((CPluginScreen *) (s)->privates[(pd)->screenPrivateIndex].ptr)
-#define PLUGIN_SCREEN(s) CPluginScreen *ps = GET_PLUGIN_SCREEN (s, GET_PLUGIN_DISPLAY (s->display))
-
-#define GET_PLUGIN_WINDOW(w, ps) ((CPluginWindow *) (w)->privates[(ps)->windowPrivateIndex].ptr)
-#define PLUGIN_WINDOW(w) CPluginWindow *pw = GET_PLUGIN_WINDOW (w, GET_PLUGIN_SCREEN(w->screen, GET_PLUGIN_DISPLAY(w->screen->display)))
-class CBerylPlugin
-{
- public:
- // Properties
- int displayPrivateIndex;
- CompPlugin *parent;
- // Methods
- CBerylPlugin();
-
- virtual ~CBerylPlugin();
-
-
- // This method should just return an instance of (a descendent of) CPluginDisplay
- virtual CPluginDisplay *createDisplay();
- virtual CPluginScreen *createScreen();
- virtual CPluginWindow *createWindow();
- // ** These methods perform generic plugin duties.
- // Init & fini for the display (aka. workspace).
- virtual Bool Init(CompPlugin *p);
- virtual void Fini(CompPlugin *p);
-
- virtual Bool InitDisplay(CompPlugin * p, CompDisplay * d);
- virtual void FiniDisplay(CompPlugin * p, CompDisplay * d);
-
- // Init & fini for screen (aka. viewport).
- virtual Bool InitScreen(CompPlugin * p, CompScreen * s);
- virtual void FiniScreen(CompPlugin * p, CompScreen * s);
-
- virtual Bool InitWindow(CompPlugin * p, CompWindow * w);
-
- virtual void FiniWindow(CompPlugin * p, CompWindow * w);
-
- virtual CompOption *GetDisplayOptions(CompDisplay * d, int *count);
- virtual Bool SetDisplayOption(CompDisplay * d, char *name, CompOptionValue *value);
-
- virtual CompOption *GetScreenOptions(CompScreen *s, int *count);
- virtual Bool SetScreenOption(CompScreen *s, char *name, CompOptionValue *value);
-
-};
-#endif
diff --git a/beryl-plugins/src/crashhandlerpp.cpp b/beryl-plugins/src/crashhandlerpp.cpp
deleted file mode 100644
index ce1af48..0000000
--- a/beryl-plugins/src/crashhandlerpp.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <signal.h>
-#include <unistd.h>
-
-extern "C" {
-#include <beryl/beryl.h>
-#include <beryl/beryl-settings.h>
-}
-#include "base_plugin.hpp"
-#define CRASHHANDLER_DISPLAY_OPTION_ENABLED 0
-#define CRASHHANDLER_DISPLAY_OPTION_START_WM 1
-#define CRASHHANDLER_DISPLAY_OPTION_WM 2
-#define CRASHHANDLER_DISPLAY_OPTION_NUM 3
-
-#define CRASHHANDLER_DISPLAY_OPTION_ENABLED_DEFAULT TRUE
-#define CRASHHANDLER_DISPLAY_OPTION_START_WM_DEFAULT FALSE
-#define CRASHHANDLER_DISPLAY_OPTION_WM_DEFAULT ""
-
-#define NUM_OPTIONS(display) (sizeof ((display)->opt) / sizeof (CompOption))
-
-char *wm_string = "";
-char *cdisplay_displayString = "";
-bool wm_bool = FALSE;
-
-class CCHDisplay: public CPluginDisplay
-{
- public:
- CompOption opt[CRASHHANDLER_DISPLAY_OPTION_NUM];
- void(*crash_handler)(int);
-
-#define CCPP_USE_INITDISPLAY
- CCHDisplay(void(crash_handler)(int))
- {
- CPluginDisplay::CPluginDisplay();
- this->crash_handler = crash_handler;
- if (this->opt[CRASHHANDLER_DISPLAY_OPTION_ENABLED].value.b)
- this->SetOption(this->opt[CRASHHANDLER_DISPLAY_OPTION_ENABLED].name, &this->opt[CRASHHANDLER_DISPLAY_OPTION_ENABLED].value);
- }
-
-#define CCPP_USE_FINIDISPLAY
- ~CCHDisplay()
- {
- signal(SIGSEGV, SIG_DFL);
- CPluginDisplay::Fini();
- }
-
-#define CCPP_USE_GETDISPLAYOPTIONS
- CompOption *GetOptions(int *count)
- {
- CPluginDisplay::GetOptions(count);
- *count = NUM_OPTIONS(this);
- return this->opt;
- }
-
-#define CCPP_USE_SETDISPLAYOPTION
- Bool SetOption(char *name, CompOptionValue * value)
- {
- CPluginDisplay::SetOption(name, value);
- int index;
- CompOption *o = compFindOption(this->opt, NUM_OPTIONS(this), name, &index);
- if (!o)
- return FALSE;
-
- switch (index)
- {
- case CRASHHANDLER_DISPLAY_OPTION_ENABLED:
- if (compSetBoolOption(o, value))
- {
- if (value->b)
- {
- // enable crash handler
- signal(SIGSEGV, this->crash_handler);
- signal(SIGFPE, this->crash_handler);
- signal(SIGILL, this->crash_handler);
- signal(SIGABRT, this->crash_handler);
- } else {
- // disable crash handler
- signal(SIGSEGV, SIG_DFL);
- signal(SIGFPE, SIG_DFL);
- signal(SIGILL, SIG_DFL);
- signal(SIGABRT, SIG_DFL);
- }
- return TRUE;
- }
- break;
- case CRASHHANDLER_DISPLAY_OPTION_START_WM:
- if (compSetBoolOption(o, value))
- {
- wm_bool = value->b;
- return TRUE;
- };
- break;
- case CRASHHANDLER_DISPLAY_OPTION_WM:
- if (compSetStringOption(o, value))
- {
- wm_string = value->s;
- return TRUE;
- };
- break;
- default:
- break;
- }
- return FALSE;
- }
-
- void InitOptions()
- {
- CompOption *o;
-
- o = &this->opt[CRASHHANDLER_DISPLAY_OPTION_ENABLED];
- o->name = "enabled";
- o->group = N_("");
- o->subGroup = N_("");
- o->displayHints = "";
- o->shortDesc = N_("Enabled");
- o->longDesc = N_("Activate crash handler");
- o->type = CompOptionTypeBool;
- o->value.b = CRASHHANDLER_DISPLAY_OPTION_ENABLED_DEFAULT;
-
- o = &this->opt[CRASHHANDLER_DISPLAY_OPTION_START_WM];
- o->name = "start_window_manager";
- o->group = N_("");
- o->subGroup = N_("");
- o->displayHints = "";
- o->shortDesc = N_("Start Window Manager");
- o->longDesc = N_("Start other window manager on crash");
- o->type = CompOptionTypeBool;
- o->value.b = CRASHHANDLER_DISPLAY_OPTION_START_WM_DEFAULT;
-
- o = &this->opt[CRASHHANDLER_DISPLAY_OPTION_WM];
- o->name = "window_manager_command_line";
- o->group = N_("");
- o->subGroup = N_("");
- o->displayHints = "command;";
- o->shortDesc = N_("Window manager command line");
- o->longDesc = N_("Window manager command line. DO NOT ENTER BERYL HERE!!!");
- o->type = CompOptionTypeString;
- o->value.s = strdup(CRASHHANDLER_DISPLAY_OPTION_WM_DEFAULT);
- o->rest.s.string = 0;
- o->rest.s.nString = 0;
- }
-
-};
-
-class CCHPlugin: public CBerylPlugin
-{
- public:
- CCHDisplay *createDisplay()
- {
- return new CCHDisplay(&crash_handler);
- }
-
- CPluginScreen *createScreen()
- {
- return new CPluginScreen();
- }
-
- static void crash_handler(int sig)
- {
- if (sig == SIGSEGV || sig == SIGFPE || sig == SIGILL || sig == SIGABRT)
- {
- static int count = 0;
- if (++count > 1)
- exit(1);
-
- // backtrace
- char cmd[1024];
- sprintf(cmd,
- "echo -e \"set prompt\nthread apply all bt full\necho \\\\\\n\necho \\\\\\n\nbt\nquit\" > /tmp/gdb.tmp; gdb -q %s %i < /tmp/gdb.tmp | grep -v \"No symbol table\" | tee /tmp/beryl_crash-%i.out; rm -f /tmp/gdb.tmp; echo \"\n[CRASH_HANDLER]: \\\"/tmp/beryl_crash-%i.out\\\" created!\n\"",
- getProgramName(), getpid(), getpid(), getpid());
- system(cmd);
-
- if (wm_bool)
- {
- if (fork() == 0)
- {
- setsid();
- putenv(cdisplay_displayString);
- execl("/bin/sh", "/bin/sh", "-c", wm_string, NULL);
- exit(0);
- }
- } // finish loading our fallback WM
- exit(1);
- }
- } // close crash_handler
-
-}; // close CCHPlugin
-
-#define PLUGIN_CLASS CCHPlugin
-#define PLUGIN_NAME "crashhandler++"
-#define PLUGIN_SHORTDESC "Crash handler"
-#define PLUGIN_LONGDESC "Crash handling plugin. Implemented in C++."
-#define PLUGIN_DEPS NULL
-#define PLUGIN_FEATURES NULL
-#define PLUGIN_GROUP "devel"
-
-PLUGIN_CLASS CCPP_plugin;
-
-extern "C"
-{
-Bool CCPP_Init(CompPlugin *p)
- { CCPP_plugin.Init(p); }
-
-void CCPP_Fini(CompPlugin *p)
- { CCPP_plugin.Fini(p); }
-
- Bool CCPP_InitDisplay(CompPlugin *p, CompDisplay *d)
- { CCPP_plugin.InitDisplay(p, d); }
-
- void CCPP_FiniDisplay(CompPlugin *p, CompDisplay *d)
- { CCPP_plugin.FiniDisplay(p, d); }
-
- Bool CCPP_InitScreen(CompPlugin *p, CompScreen *s)
- { CCPP_plugin.InitScreen(p, s); }
-
- void CCPP_FiniScreen(CompPlugin *p, CompScreen *s)
- { CCPP_plugin.FiniScreen(p, s); }
-
- Bool CCPP_InitWindow(CompPlugin *p, CompWindow *w)
- { CCPP_plugin.InitWindow(p, w); }
-
- void CCPP_FiniWindow(CompPlugin *p, CompWindow *w)
- { CCPP_plugin.FiniWindow(p, w); }
-
- Bool CCPP_SetDisplayOption(CompDisplay *d, char *name, CompOptionValue *value)
- { CCPP_plugin.SetDisplayOption(d, name, value); }
-
- CompOption *CCPP_GetDisplayOptions(CompDisplay *d, int *count)
- { CCPP_plugin.GetDisplayOptions(d, count); }
-
- Bool CCPP_SetScreenOption(CompScreen *s, char *name, CompOptionValue *value)
- { CCPP_plugin.SetScreenOption(s, name, value); }
-
- CompOption *CCPP_GetScreenOptions(CompScreen *s, int *count)
- { CCPP_plugin.GetScreenOptions(s, count); }
-
-CompPluginVTable CCPP_VTable = {
- PLUGIN_NAME,
- N_(PLUGIN_SHORTDESC),
- N_(PLUGIN_LONGDESC),
- CCPP_Init,
- CCPP_Fini,
- CCPP_InitDisplay,
- CCPP_FiniDisplay,
- CCPP_InitScreen,
- CCPP_FiniScreen,
- CCPP_InitWindow,
- CCPP_FiniWindow,
- CCPP_GetDisplayOptions,
- CCPP_SetDisplayOption,
- CCPP_GetScreenOptions,
- CCPP_SetScreenOption,
- PLUGIN_DEPS,
- sizeof(PLUGIN_DEPS) / sizeof(CompPluginDep),
- PLUGIN_FEATURES,
- sizeof(PLUGIN_FEATURES) / sizeof(CompPluginFeature),
- BERYL_ABI_INFO,
- "beryl-plugins",
- PLUGIN_GROUP
-};
-
-
-CompPluginVTable *getCompPluginInfo(void)
-{
- #ifndef CCPP_USE_INITDISPLAY
- CCPP_VTable.initDisplay = 0;
- #endif
- #ifndef CCPP_USE_FINIDISPLAY
- CCPP_VTable.finiDisplay = 0;
- #endif
- #ifndef CCPP_USE_INITSCREEN
- CCPP_VTable.initScreen = 0;
- #endif
- #ifndef CCPP_USE_FINISCREEN
- CCPP_VTable.finiScreen = 0;
- #endif
- #ifndef CCPP_USE_INITWINDOW
- CCPP_VTable.initWindow = 0;
- #endif
- #ifndef CCPP_USE_FINIWINDOW
- CCPP_VTable.finiWindow = 0;
- #endif
- #ifndef CCPP_USE_SETDISPLAYOPTION
- CCPP_VTable.setDisplayOption = 0;
- #endif
- #ifndef CCPP_USE_GETDISPLAYOPTIONS
- CCPP_VTable.getDisplayOptions = 0;
- #endif
- #ifndef CCPP_USE_SETSCREENOPTION
- CCPP_VTable.setScreenOption = 0;
- #endif
- #ifndef CCPP_USE_GETSCREENOPTIONS
- CCPP_VTable.getScreenOptions = 0;
- #endif
-
- if (CCPP_VTable.deps == NULL) CCPP_VTable.nDeps = 0;
- if (CCPP_VTable.features == NULL) CCPP_VTable.nFeatures = 0;
-
- return &CCPP_VTable;
-}
-
-}
-