NeoMutt  2022-04-29-70-g0c028c
Teaching an old dog new tricks
Go to the documentation of this file.
29 #include "config.h"
30 #include "private.h"
31 #include "mutt/lib.h"
32 #include "adata.h"
34 struct Connection;
43 void nntp_adata_free(void **ptr)
44 {
45  struct NntpAccountData *adata = *ptr;
47  mutt_file_fclose(&adata->fp_newsrc);
48  FREE(&adata->newsrc_file);
49  FREE(&adata->authenticators);
50  FREE(&adata->overview_fmt);
51  FREE(&adata->conn);
52  FREE(&adata->groups_list);
53  mutt_hash_free(&adata->groups_hash);
54  FREE(ptr);
55 }
63 {
64  struct NntpAccountData *adata = mutt_mem_calloc(1, sizeof(struct NntpAccountData));
65  adata->conn = conn;
66  adata->groups_hash = mutt_hash_new(1009, MUTT_HASH_NO_FLAGS);
68  adata->groups_max = 16;
69  adata->groups_list = mutt_mem_malloc(adata->groups_max * sizeof(struct NntpMboxData *));
70  return adata;
71 }
73 #if 0
78 struct NntpAccountData *nntp_adata_get(struct Mailbox *m)
79 {
80  if (!m || (m->type != MUTT_NNTP))
81  return NULL;
82  struct Account *a = m->account;
83  if (!a)
84  return NULL;
85  return a->adata;
86 }
87 #endif
int mutt_file_fclose(FILE **fp)
Close a FILE handle (and NULL the pointer)
Definition: file.c:152
void nntp_hashelem_free(int type, void *obj, intptr_t data)
Free our hash table data - Implements hash_hdata_free_t -.
Definition: nntp.c:116
struct HashTable * mutt_hash_new(size_t num_elems, HashFlags flags)
Create a new Hash Table (with string keys)
Definition: hash.c:259
void mutt_hash_set_destructor(struct HashTable *table, hash_hdata_free_t fn, intptr_t fn_data)
Set the destructor for a Hash Table.
Definition: hash.c:301
void mutt_hash_free(struct HashTable **ptr)
Free a hash table.
Definition: hash.c:457
No flags are set.
Definition: hash.h:109
'NNTP' (Usenet) Mailbox type
Definition: mailbox.h:49
void * mutt_mem_malloc(size_t size)
Allocate memory on the heap.
Definition: memory.c:90
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Definition: memory.c:50
#define FREE(x)
Definition: memory.h:40
Convenience wrapper for the library headers.
struct NntpAccountData * nntp_adata_new(struct Connection *conn)
Allocate and initialise a new NntpAccountData structure.
Definition: adata.c:62
void nntp_adata_free(void **ptr)
Free the private Account data - Implements Account::adata_free()
Definition: adata.c:43
struct NntpAccountData * nntp_adata_get(struct Mailbox *m)
Pop-specific Account data.
GUI display the mailboxes in a side panel.
A group of associated Mailboxes.
Definition: account.h:37
void * adata
Private data (for Mailbox backends)
Definition: account.h:43
A mailbox.
Definition: mailbox.h:79
enum MailboxType type
Mailbox type.
Definition: mailbox.h:102
struct Account * account
Account that owns this Mailbox.
Definition: mailbox.h:128
NNTP-specific Account data -.
Definition: adata.h:37
struct Connection * conn
Connection to NNTP Server.
Definition: adata.h:63
NNTP-specific Mailbox data -.
Definition: mdata.h:33