X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=textclient%2Fsrc%2Fmessages.c;fp=textclient%2Fsrc%2Fmessages.c;h=5b694e85c58543c8d5ace6be545678625e5f84ca;hp=515203a27d37ef6278d1e9af9b6e379daafb05d1;hb=6fcf52d210b8b1da3652f2e3384f67989b247e33;hpb=55013f95f08eafe1b375df4241e8defe387c6cdc diff --git a/textclient/src/messages.c b/textclient/src/messages.c index 515203a27..5b694e85c 100644 --- a/textclient/src/messages.c +++ b/textclient/src/messages.c @@ -687,22 +687,30 @@ int read_message(CtdlIPC *ipc, } /* Extract URL's */ + static char *urlprefixes[] = { + "http://", + "https://", + "ftp://" + }; + int p = 0; num_urls = 0; /* Start with a clean slate */ - searchptr = message->text; - while ( (searchptr != NULL) && (num_urls < MAXURLS) ) { - searchptr = strstr(searchptr, "http://"); - if (searchptr != NULL) { - safestrncpy(urls[num_urls], searchptr, sizeof(urls[num_urls])); - for (i = 0; i < strlen(urls[num_urls]); i++) { - ch = urls[num_urls][i]; - if (ch == '>' || ch == '\"' || ch == ')' || - ch == ' ' || ch == '\n') { - urls[num_urls][i] = 0; - break; + for (p=0; p<(sizeof urlprefixes / sizeof(char *)); ++p) { + searchptr = message->text; + while ( (searchptr != NULL) && (num_urls < MAXURLS) ) { + searchptr = strstr(searchptr, urlprefixes[p]); + if (searchptr != NULL) { + safestrncpy(urls[num_urls], searchptr, sizeof(urls[num_urls])); + for (i = 0; i < strlen(urls[num_urls]); i++) { + ch = urls[num_urls][i]; + if (ch == '>' || ch == '\"' || ch == ')' || + ch == ' ' || ch == '\n') { + urls[num_urls][i] = 0; + break; + } } + num_urls++; + ++searchptr; } - num_urls++; - ++searchptr; } }