/*
+ * Copyright notice from original mutt:
* Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
*/
#if HAVE_CONFIG_H
#include "mutt.h"
#ifdef USE_IMAP
-#include "mailbox.h"
+#include "mx.h"
#include "imap.h"
#endif
#ifdef USE_NNTP
#include "nntp.h"
#endif
+#include "lib/str.h"
+
#include <dirent.h>
#include <string.h>
#include <sys/types.h>
* special case to handle when there is no filepart yet.
* find the first subscribed newsgroup
*/
- if ((len = mutt_strlen (filepart)) == 0) {
+ if ((len = safe_strlen (filepart)) == 0) {
for (; l; l = l->next) {
NNTP_DATA *data = (NNTP_DATA *) l->data;
NNTP_DATA *data = (NNTP_DATA *) l->data;
if (data && data->subscribed &&
- mutt_strncmp (data->group, filepart, len) == 0) {
+ safe_strncmp (data->group, filepart, len) == 0) {
if (init) {
for (i = 0; filepart[i] && data->group[i]; i++) {
if (filepart[i] != data->group[i]) {
else
strfcpy (imap_path, s, sizeof (imap_path));
- if (mx_is_imap (imap_path))
+ if (mx_get_magic (imap_path) == M_IMAP)
return imap_complete (s, slen, imap_path);
#endif
* special case to handle when there is no filepart yet. find the first
* file/directory which is not ``.'' or ``..''
*/
- if ((len = mutt_strlen (filepart)) == 0) {
+ if ((len = safe_strlen (filepart)) == 0) {
while ((de = readdir (dirp)) != NULL) {
- if (mutt_strcmp (".", de->d_name) != 0
- && mutt_strcmp ("..", de->d_name) != 0) {
+ if (safe_strcmp (".", de->d_name) != 0
+ && safe_strcmp ("..", de->d_name) != 0) {
strfcpy (filepart, de->d_name, sizeof (filepart));
init++;
break;
}
while ((de = readdir (dirp)) != NULL) {
- if (mutt_strncmp (de->d_name, filepart, len) == 0) {
+ if (safe_strncmp (de->d_name, filepart, len) == 0) {
if (init) {
for (i = 0; filepart[i] && de->d_name[i]; i++) {
if (filepart[i] != de->d_name[i]) {
/* check to see if it is a directory */
if (dirpart[0]) {
strfcpy (buf, exp_dirpart, sizeof (buf));
- strfcpy (buf + strlen (buf), "/", sizeof (buf) - strlen (buf));
+ strfcpy (buf + safe_strlen (buf), "/", sizeof (buf) - safe_strlen (buf));
}
else
buf[0] = 0;
- strfcpy (buf + strlen (buf), filepart, sizeof (buf) - strlen (buf));
+ strfcpy (buf + safe_strlen (buf), filepart, sizeof (buf) - safe_strlen (buf));
if (stat (buf, &st) != -1 && (st.st_mode & S_IFDIR))
- strfcpy (filepart + strlen (filepart), "/",
- sizeof (filepart) - strlen (filepart));
+ strfcpy (filepart + safe_strlen (filepart), "/",
+ sizeof (filepart) - safe_strlen (filepart));
init = 1;
}
}
if (dirpart[0]) {
strfcpy (s, dirpart, slen);
- if (mutt_strcmp ("/", dirpart) != 0 && dirpart[0] != '='
+ if (safe_strcmp ("/", dirpart) != 0 && dirpart[0] != '='
&& dirpart[0] != '+')
- strfcpy (s + strlen (s), "/", slen - strlen (s));
- strfcpy (s + strlen (s), filepart, slen - strlen (s));
+ strfcpy (s + safe_strlen (s), "/", slen - safe_strlen (s));
+ strfcpy (s + safe_strlen (s), filepart, slen - safe_strlen (s));
}
else
strfcpy (s, filepart, slen);