<commit_before>/* See LICENSE file for copyright and license details. */

/* Double-linked list, stack, queue. */

typedef struct Node Node;
struct Node {
  Node *n; /* pointer to [n]ext node or NULL */
  Node *p; /* pointer to [p]revious node or NULL */
  void *d;   /* pointer to [d]ata */
};

typedef struct List List;
struct List {
  Node *h; /* pointer to first ([h]ead) node */
  Node *t; /* pointer to last ([t]ail) node */
  int  count; /* number of nodes in list */
};

void   insert_node (List *list_p, void *data, Node *after);
Node  *extruct_node(List *list_p, Node *old);
void   delete_node (List *list_p, Node *old);
void  *extruct_data(List *list_p, Node *old);

Node  *data2node (List l, void *d);
<commit_msg>list: Formatting.<commit_after>/* See LICENSE file for copyright and license details. */

/* Double-linked list, stack, queue. */

typedef struct Node Node;
struct Node {
  Node *n; /* pointer to [n]ext node or NULL */
  Node *p; /* pointer to [p]revious node or NULL */
  void *d; /* pointer to [d]ata */
};

typedef struct List List;
struct List {
  Node *h; /* pointer to first ([h]ead) node */
  Node *t; /* pointer to last ([t]ail) node */
  int  count; /* number of nodes in list */
};

void   insert_node (List *list_p, void *data, Node *after);
Node  *extruct_node(List *list_p, Node *old);
void   delete_node (List *list_p, Node *old);
void  *extruct_data(List *list_p, Node *old);

Node  *data2node (List l, void *d);

{'fraction_non_alphanumeric': 0.1485557083906465, 'fraction_numerical': 0.001375515818431912, 'mean_word_length': 3.476923076923077, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3443651', 'n_tokens_mistral': 513, 'n_tokens_neox': 500, 'n_words': 195}