wordlist.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 /* DEBUG: section 03 Configuration File Parsing */
10 
11 #include "squid.h"
12 #include "MemBuf.h"
13 #include "wordlist.h"
14 
15 void
17 {
18  while (*list != nullptr) {
19  const char *k = wordlistChopHead(list);
20  safe_free(k);
21  }
22 }
23 
24 const char *
25 wordlistAdd(wordlist ** list, const char *key)
26 {
27  while (*list)
28  list = &(*list)->next;
29 
30  *list = new wordlist(key);
31  return (*list)->key;
32 }
33 
34 void
35 wordlistCat(const wordlist * w, MemBuf * mb)
36 {
37  for (const auto &word: *w)
38  mb->appendf("%s\n", word);
39 }
40 
41 char *
43 {
44  if (*wl == nullptr)
45  return nullptr;
46 
47  wordlist *w = *wl;
48  char *rv = w->key;
49  *wl = w->next;
50  delete w;
51  return rv;
52 }
53 
void wordlistDestroy(wordlist **list)
destroy a wordlist
Definition: wordlist.cc:16
void appendf(const char *fmt,...) PRINTF_FORMAT_ARG2
Append operation with printf-style arguments.
Definition: Packable.h:61
char * wordlistChopHead(wordlist **wl)
Definition: wordlist.cc:42
Definition: MemBuf.h:23
void wordlistCat(const wordlist *w, MemBuf *mb)
Definition: wordlist.cc:35
#define safe_free(x)
Definition: xalloc.h:73
wordlist * next
Definition: wordlist.h:60
char * key
Definition: wordlist.h:59
const char * wordlistAdd(wordlist **list, const char *key)
Definition: wordlist.cc:25

 

Introduction

Documentation

Support

Miscellaneous