summaryrefslogtreecommitdiff
path: root/src/app.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-12-02 07:26:33 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-12-02 07:26:33 +0200
commitcface45b7cfd084f65ead1d5bfa6ecdc639d7017 (patch)
tree0c2b7f900ee3f116474f9789173b60423b98cf4f /src/app.c
parent5b147a3976fcf007a75e9b16cc0cea96011f2e9b (diff)
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.
Diffstat (limited to 'src/app.c')
-rw-r--r--src/app.c10
1 files changed, 10 insertions, 0 deletions
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. */
25#include "defs.h" 25#include "defs.h"
26#include "embedded.h" 26#include "embedded.h"
27#include "feeds.h" 27#include "feeds.h"
28#include "mimehooks.h"
28#include "gmcerts.h" 29#include "gmcerts.h"
29#include "gmdocument.h" 30#include "gmdocument.h"
30#include "gmutil.h" 31#include "gmutil.h"
@@ -91,6 +92,7 @@ static const char *downloadDir_App_ = "~/Downloads";
91struct Impl_App { 92struct Impl_App {
92 iCommandLine args; 93 iCommandLine args;
93 iString * execPath; 94 iString * execPath;
95 iMimeHooks * mimehooks;
94 iGmCerts * certs; 96 iGmCerts * certs;
95 iVisited * visited; 97 iVisited * visited;
96 iBookmarks * bookmarks; 98 iBookmarks * bookmarks;
@@ -342,6 +344,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
342 d->running = iFalse; 344 d->running = iFalse;
343 d->window = NULL; 345 d->window = NULL;
344 set_Atomic(&d->pendingRefresh, iFalse); 346 set_Atomic(&d->pendingRefresh, iFalse);
347 d->mimehooks = new_MimeHooks();
345 d->certs = new_GmCerts(dataDir_App_); 348 d->certs = new_GmCerts(dataDir_App_);
346 d->visited = new_Visited(); 349 d->visited = new_Visited();
347 d->bookmarks = new_Bookmarks(); 350 d->bookmarks = new_Bookmarks();
@@ -355,6 +358,7 @@ static void init_App_(iApp *d, int argc, char **argv) {
355 load_Keys(dataDir_App_); 358 load_Keys(dataDir_App_);
356 load_Visited(d->visited, dataDir_App_); 359 load_Visited(d->visited, dataDir_App_);
357 load_Bookmarks(d->bookmarks, dataDir_App_); 360 load_Bookmarks(d->bookmarks, dataDir_App_);
361 load_MimeHooks(d->mimehooks, dataDir_App_);
358 if (isFirstRun) { 362 if (isFirstRun) {
359 /* Create the default bookmarks for a quick start. */ 363 /* Create the default bookmarks for a quick start. */
360 add_Bookmarks(d->bookmarks, 364 add_Bookmarks(d->bookmarks,
@@ -433,6 +437,8 @@ static void deinit_App(iApp *d) {
433 save_Visited(d->visited, dataDir_App_); 437 save_Visited(d->visited, dataDir_App_);
434 delete_Visited(d->visited); 438 delete_Visited(d->visited);
435 delete_GmCerts(d->certs); 439 delete_GmCerts(d->certs);
440 save_MimeHooks(d->mimehooks);
441 delete_MimeHooks(d->mimehooks);
436 deinit_SortedArray(&d->tickers); 442 deinit_SortedArray(&d->tickers);
437 delete_Window(d->window); 443 delete_Window(d->window);
438 d->window = NULL; 444 d->window = NULL;
@@ -709,6 +715,10 @@ void removeTicker_App(iTickerFunc ticker, iAny *context) {
709 remove_SortedArray(&d->tickers, &(iTicker){ context, ticker }); 715 remove_SortedArray(&d->tickers, &(iTicker){ context, ticker });
710} 716}
711 717
718iMimeHooks *mimeHooks_App(void) {
719 return app_.mimehooks;
720}
721
712iGmCerts *certs_App(void) { 722iGmCerts *certs_App(void) {
713 return app_.certs; 723 return app_.certs;
714} 724}