diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2024-11-02 22:03:25 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2024-11-02 22:03:25 (GMT) |
commit | 1bef27ee10a820ceabdcfc6389e61b7fab934eea (patch) | |
tree | 2194de32593137d3bfda7256c1e65cb1743e70db /src | |
parent | 699e2811a9305f871fe9adcb4797461e947cc863 (diff) |
Load UI plugins only in case of graphical support.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/Makefile.am | 1 | ||||
-rw-r--r-- | src/core/core.c | 1 | ||||
-rw-r--r-- | src/core/nox.c | 62 | ||||
-rw-r--r-- | src/core/nox.h | 37 | ||||
-rw-r--r-- | src/gui/core/Makefile.am | 1 | ||||
-rw-r--r-- | src/gui/core/core.c | 1 | ||||
-rw-r--r-- | src/gui/core/nox.c | 48 | ||||
-rw-r--r-- | src/gui/core/nox.h | 37 | ||||
-rw-r--r-- | src/plugins/pglist.c | 21 |
9 files changed, 209 insertions, 0 deletions
diff --git a/src/core/Makefile.am b/src/core/Makefile.am index de34d03..e1e3c4e 100644 --- a/src/core/Makefile.am +++ b/src/core/Makefile.am @@ -18,6 +18,7 @@ libcore4_la_SOURCES = \ core.h core.c \ global.h global.c \ logs.h logs.c \ + nox.h nox.c \ nproc.h nproc.c \ paths.h paths.c diff --git a/src/core/core.c b/src/core/core.c index 1f40cb3..9514ee1 100644 --- a/src/core/core.c +++ b/src/core/core.c @@ -32,6 +32,7 @@ static AvailableCoreComponent __loaded = ACC_NONE; + /****************************************************************************** * * * Paramètres : flags = liste d'éléments à charger. * diff --git a/src/core/nox.c b/src/core/nox.c new file mode 100644 index 0000000..ccf9de2 --- /dev/null +++ b/src/core/nox.c @@ -0,0 +1,62 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * nox.c - indication de présence ou d'absence de support graphique + * + * Copyright (C) 2024 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>. + */ + + +#include "nox.h" + + +#include <stddef.h> + + +#include "../common/compiler.h" + + + +/* Indique la présence ou l'absence d'un affichage graphique. */ +__weak bool _run_in_nox_mode(void); + + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Indique la présence ou l'absence d'un affichage graphique. * +* * +* Retour : Statut à transmettre. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool run_in_nox_mode(void) +{ + bool result; /* Statut à retournr */ + + if (_run_in_nox_mode == NULL) + result = true; + else + result = _run_in_nox_mode(); + + return result; + +} diff --git a/src/core/nox.h b/src/core/nox.h new file mode 100644 index 0000000..c2c225d --- /dev/null +++ b/src/core/nox.h @@ -0,0 +1,37 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * nox.h - prototypes pour l'indication de présence ou d'absence de support graphique + * + * Copyright (C) 2024 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>. + */ + + +#ifndef _CORE_NOX_H +#define _CORE_NOX_H + + +#include <stdbool.h> + + + +/* Indique la présence ou l'absence d'un affichage graphique. */ +bool run_in_nox_mode(void); + + + +#endif /* _CORE_NOX_H */ diff --git a/src/gui/core/Makefile.am b/src/gui/core/Makefile.am index 3c4cbc7..a854977 100644 --- a/src/gui/core/Makefile.am +++ b/src/gui/core/Makefile.am @@ -24,6 +24,7 @@ libguicore_la_CFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) libguicore4_la_SOURCES = \ core.h core.c \ logs.h logs.c \ + nox.h nox.c \ panels.h panels.c libguicore4_la_CFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) diff --git a/src/gui/core/core.c b/src/gui/core/core.c index d02d54c..4a6809c 100644 --- a/src/gui/core/core.c +++ b/src/gui/core/core.c @@ -33,6 +33,7 @@ static AvailableGuiComponent __loaded = AGC_NONE; + /****************************************************************************** * * * Paramètres : flags = liste d'éléments à charger. * diff --git a/src/gui/core/nox.c b/src/gui/core/nox.c new file mode 100644 index 0000000..7f3ae1f --- /dev/null +++ b/src/gui/core/nox.c @@ -0,0 +1,48 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * nox.c - indication de présence ou d'absence de support graphique + * + * Copyright (C) 2024 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>. + */ + + +#include "nox.h" + + + +/****************************************************************************** +* * +* Paramètres : - * +* * +* Description : Indique la présence ou l'absence d'un affichage graphique. * +* * +* Retour : Statut à transmettre. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool _run_in_nox_mode(void) +{ + bool result; /* Statut à retournr */ + + result = false; + + return result; + +} diff --git a/src/gui/core/nox.h b/src/gui/core/nox.h new file mode 100644 index 0000000..e03b365 --- /dev/null +++ b/src/gui/core/nox.h @@ -0,0 +1,37 @@ + +/* Chrysalide - Outil d'analyse de fichiers binaires + * nox.h - prototypes pour l'indication de présence ou d'absence de support graphique + * + * Copyright (C) 2024 Cyrille Bagard + * + * This file is part of Chrysalide. + * + * Chrysalide is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Chrysalide 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Chrysalide. If not, see <http://www.gnu.org/licenses/>. + */ + + +#ifndef _GUI_CORE_NOX_H +#define _GUI_CORE_NOX_H + + +#include <stdbool.h> + + + +/* Indique la présence ou l'absence d'un affichage graphique. */ +bool _run_in_nox_mode(void); + + + +#endif /* _GUI_CORE_NOX_H */ diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c index 6b36d2f..e4cb825 100644 --- a/src/plugins/pglist.c +++ b/src/plugins/pglist.c @@ -39,6 +39,7 @@ #include "plugin-int.h" #include "../common/extstr.h" #include "../core/logs.h" +#include "../core/nox.h" #include "../core/paths.h" @@ -255,6 +256,7 @@ static void browse_directory_for_plugins(const char *dir) { struct dirent **namelist; /* Eléments trouvés */ int ret; /* Bilan du parcours */ + bool nox; /* Absence de support graphique*/ char *filename; /* Elément à ausculter */ GPluginModule *plugin; /* Greffon à intégrer ou pas */ @@ -265,8 +267,27 @@ static void browse_directory_for_plugins(const char *dir) return; } + nox = run_in_nox_mode(); + while (ret--) { + + if (nox) + { +#ifdef _WIN32 +# define UI_SHARED_SUFFIX "-ui.dll" +#else +# define UI_SHARED_SUFFIX "-ui.so" +#endif + + if (strstr(namelist[ret]->d_name, UI_SHARED_SUFFIX) != NULL) + { + log_variadic_message(LMT_ERROR, _("Skipping unsuitable file: %s"), namelist[ret]->d_name); + continue; + } + + } + filename = (char *)calloc(strlen(dir) + 1 + strlen(namelist[ret]->d_name) + 1, sizeof(char)); strcpy(filename, dir); |