getmax[xy] do that, even if obsolete, I don't care, I'll use them.
[apps/madmutt.git] / lib-ui / complete.c
index bb0976c..426da78 100644 (file)
@@ -7,13 +7,13 @@
  * please see the file GPL in the top level source directory.
  */
 
-#include <lib-lib/lib-lib.h>
+#include <lib-ui/lib-ui.h>
+#include <lib-mx/mx.h>
 
 #include "mutt.h"
-#include "mx.h"
 #include <imap/imap.h>
 #ifdef USE_NNTP
-#include <nntp/nntp.h>
+#include "nntp.h"
 #endif
 
 /* given a partial pathname, this routine fills in as much of the rest of the
@@ -35,7 +35,7 @@ int mutt_complete (char *s, ssize_t slen)
 
 #ifdef USE_NNTP
   if (option (OPTNEWS)) {
-    string_list_t *l = CurrentNewsSrv->list;
+    nntp_data_t *l = CurrentNewsSrv->list;
 
     m_strcpy(filepart, sizeof(filepart), s);
 
@@ -45,10 +45,8 @@ int mutt_complete (char *s, ssize_t slen)
      */
     if ((len = m_strlen(filepart)) == 0) {
       for (; l; l = l->next) {
-        NNTP_DATA *data = (NNTP_DATA *) l->data;
-
-        if (data && data->subscribed) {
-          m_strcpy(filepart, sizeof(filepart), data->group);
+        if (l->subscribed) {
+          m_strcpy(filepart, sizeof(filepart), l->group);
           init++;
           l = l->next;
           break;
@@ -57,27 +55,23 @@ int mutt_complete (char *s, ssize_t slen)
     }
 
     for (; l; l = l->next) {
-      NNTP_DATA *data = (NNTP_DATA *) l->data;
-
-      if (data && data->subscribed &&
-          m_strncmp(data->group, filepart, len) == 0) {
+      if (l->subscribed && m_strncmp(l->group, filepart, len) == 0) {
         if (init) {
-          for (i = 0; filepart[i] && data->group[i]; i++) {
-            if (filepart[i] != data->group[i]) {
+          for (i = 0; filepart[i] && l->group[i]; i++) {
+            if (filepart[i] != l->group[i]) {
               filepart[i] = 0;
               break;
             }
           }
           filepart[i] = 0;
-        }
-        else {
-          m_strcpy(filepart, sizeof(filepart), data->group);
+        } else {
+          m_strcpy(filepart, sizeof(filepart), l->group);
           init = 1;
         }
       }
     }
 
-    strcpy (s, filepart);
+    m_strcpy(s, slen, filepart);
 
     return (init ? 0 : -1);
   }