/* -------------------------------------------------------------------------- * Statically linked plugins * * The Hugs 98 system is Copyright (c) Mark P Jones, Alastair Reid, the * Yale Haskell Group, and the OGI School of Science & Engineering at OHSU, * 1994-2003, All rights reserved. It is distributed as free software under * the license in the file "License", which is included in the distribution. * * $RCSfile: plugin.c,v $ * $Revision: 1.10 $ * $Date: 2003/10/28 11:47:22 $ * ------------------------------------------------------------------------*/#include "prelude.h"#include "storage.h"#include "connect.h"/* This file is often compiled with a command-line argument such as * '-DPLUGINS={"Xlib",initXlib},' * default to empty if not present. */#ifndef PLUGINS# define PLUGINS#endifstruct pluginInfo { String nm; /* Name of plugin module */ InitModuleFun5 initModule; /* Initialisation code for the plugin */};static struct pluginInfo pluginList[] = { /* hardwired list of all plugins */ /* {"Test", initTest}, */ /* {"Xlib", initXlib}, */ PLUGINS {0,0}};Bool havePlugin(mod) /* can we statically link this plugin? */String mod; { /* (called when each module is loaded) */ Int i; for(i=0; pluginList[i].nm; ++i) { if (0 == strcmp(mod, pluginList[i].nm)) { (*pluginList[i].initModule)(hugsAPI5()); return TRUE; } } return FALSE;}/* -------------------------------------------------------------------------- * Plugins control: * ------------------------------------------------------------------------*/Void plugins(what)Int what; {}/*-------------------------------------------------------------------------*/
/* --------------------------------------------------------------------------
* Statically linked plugins
*
* The Hugs 98 system is Copyright (c) Mark P Jones, Alastair Reid, the
* Yale Haskell Group, and the OGI School of Science & Engineering at OHSU,
* 1994-2003, All rights reserved. It is distributed as free software under
* the license in the file "License", which is included in the distribution.
*
* $RCSfile: plugin.c,v $
* $Revision: 1.10 $
* $Date: 2003/10/28 11:47:22 $
* ------------------------------------------------------------------------*/
#include "prelude.h"
#include "storage.h"
#include "connect.h"
/* This file is often compiled with a command-line argument such as
* '-DPLUGINS={"Xlib",initXlib},'
* default to empty if not present.
*/
#ifndef PLUGINS
# define PLUGINS
#endif
struct pluginInfo {
String nm; /* Name of plugin module */
InitModuleFun5 initModule; /* Initialisation code for the plugin */
};
static struct pluginInfo pluginList[] = { /* hardwired list of all plugins */
/* {"Test", initTest}, */
/* {"Xlib", initXlib}, */
PLUGINS
{0,0}
};
Bool havePlugin(mod) /* can we statically link this plugin? */
String mod; { /* (called when each module is loaded) */
Int i;
for(i=0; pluginList[i].nm; ++i) {
if (0 == strcmp(mod, pluginList[i].nm)) {
(*pluginList[i].initModule)(hugsAPI5());
return TRUE;
}
}
return FALSE;
}
/* --------------------------------------------------------------------------
* Plugins control:
* ------------------------------------------------------------------------*/
Void plugins(what)
Int what; {
}
/*-------------------------------------------------------------------------*/