From cface45b7cfd084f65ead1d5bfa6ecdc639d7017 Mon Sep 17 00:00:00 2001 From: Jaakko Keränen Date: Wed, 2 Dec 2020 07:26:33 +0200 Subject: Added MimeHooks This is a very powerful mechanism: translate the contents of any request to something else when the original MIME type matches a configured regexp. The external hook command may still elect not to process the request. --- src/app.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/app.c') diff --git a/src/app.c b/src/app.c index 610403f0..b799b627 100644 --- a/src/app.c +++ b/src/app.c @@ -25,6 +25,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "defs.h" #include "embedded.h" #include "feeds.h" +#include "mimehooks.h" #include "gmcerts.h" #include "gmdocument.h" #include "gmutil.h" @@ -91,6 +92,7 @@ static const char *downloadDir_App_ = "~/Downloads"; struct Impl_App { iCommandLine args; iString * execPath; + iMimeHooks * mimehooks; iGmCerts * certs; iVisited * visited; iBookmarks * bookmarks; @@ -342,6 +344,7 @@ static void init_App_(iApp *d, int argc, char **argv) { d->running = iFalse; d->window = NULL; set_Atomic(&d->pendingRefresh, iFalse); + d->mimehooks = new_MimeHooks(); d->certs = new_GmCerts(dataDir_App_); d->visited = new_Visited(); d->bookmarks = new_Bookmarks(); @@ -355,6 +358,7 @@ static void init_App_(iApp *d, int argc, char **argv) { load_Keys(dataDir_App_); load_Visited(d->visited, dataDir_App_); load_Bookmarks(d->bookmarks, dataDir_App_); + load_MimeHooks(d->mimehooks, dataDir_App_); if (isFirstRun) { /* Create the default bookmarks for a quick start. */ add_Bookmarks(d->bookmarks, @@ -433,6 +437,8 @@ static void deinit_App(iApp *d) { save_Visited(d->visited, dataDir_App_); delete_Visited(d->visited); delete_GmCerts(d->certs); + save_MimeHooks(d->mimehooks); + delete_MimeHooks(d->mimehooks); deinit_SortedArray(&d->tickers); delete_Window(d->window); d->window = NULL; @@ -709,6 +715,10 @@ void removeTicker_App(iTickerFunc ticker, iAny *context) { remove_SortedArray(&d->tickers, &(iTicker){ context, ticker }); } +iMimeHooks *mimeHooks_App(void) { + return app_.mimehooks; +} + iGmCerts *certs_App(void) { return app_.certs; } -- cgit v1.2.3