#include "str_replace_start.h" #include #include #include #define LIBRE_N 19 #define DEBUG false /* Inspired by https://libredirect.github.io/, but in C. */ void str_init(char* str, int n){ for(int i=0; i int libre_redirect(const char* uri, char* output){ int l1 = strlen(uri); int l2 = strlen(output); if((l2 - l1) < LIBRE_N){ if(DEBUG) printf("Not enough memory\n"); return 1; // not enough memory. }else{ char tmp_uri[l2++]; char tmp_output[l2++]; strcpy(tmp_uri, uri); // strcpy also copies the terminating '\0' strcpy(tmp_output, output); char* annoying_sites[] = { "https://www.youtube.com", "https://www.reddit.com", "https://medium.com", "https://translate.google.com", "https://forum.effectivealtruism.org", "https://www.bloomberg.com", "https://twitter.com" }; char* alternatives[] = { "https://yt.artemislena.eu", "https://teddit.nunosempere.com", "https://scribe.rip", "https://simplytranslate.org/", "https://ea.greaterwrong.com", "https://archive.is/https://www.bloomberg.com", "https://nitter.net" }; int n = sizeof(annoying_sites)/sizeof(annoying_sites[0]); for(int i=0; i