]> code.citadel.org Git - citadel.git/blobdiff - textclient/src/messages.c
remove INLINE, it seems to be problematic with newer gcc's
[citadel.git] / textclient / src / messages.c
index 6cc8f6a6f09017a81c321a9bbce98601d599afc8..5b694e85c58543c8d5ace6be545678625e5f84ca 100644 (file)
 
 #include <stdarg.h>
 #include <libcitadel.h>
-#include "citadel.h"
+///#include "citadel.h"
 #include "citadel_ipc.h"
 #include "citadel_decls.h"
 #include "messages.h"
 #include "commands.h"
 #include "tuiconfig.h"
 #include "rooms.h"
-#ifndef HAVE_SNPRINTF
-#include "snprintf.h"
-#endif
+//#ifndef HAVE_SNPRINTF
+///#include "snprintf.h"
+//#endif
 #include "screen.h"
 
 #define MAXWORDBUF SIZ
@@ -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;
                }
        }
 
@@ -810,7 +818,7 @@ void replace_string(char *filename, long int startpos)
        long msglen = 0L;
        int rv;
 
-       newprompt("Enter test to be replaced: ", srch_str, (sizeof(srch_str)-1) );
+       newprompt("Enter text to be replaced: ", srch_str, (sizeof(srch_str)-1) );
        if (IsEmptyStr(srch_str)) {
                return;
        }