newlines fixed
This commit is contained in:
parent
7830940da6
commit
59cce31e75
1121 changed files with 717537 additions and 717537 deletions
112
lcc/src/list.c
112
lcc/src/list.c
|
@ -1,56 +1,56 @@
|
|||
#include "c.h"
|
||||
|
||||
|
||||
static List freenodes; /* free list nodes */
|
||||
|
||||
/* append - append x to list, return new list */
|
||||
List append(void *x, List list) {
|
||||
List new;
|
||||
|
||||
if ((new = freenodes) != NULL)
|
||||
freenodes = freenodes->link;
|
||||
else
|
||||
NEW(new, PERM);
|
||||
if (list) {
|
||||
new->link = list->link;
|
||||
list->link = new;
|
||||
} else
|
||||
new->link = new;
|
||||
new->x = x;
|
||||
return new;
|
||||
}
|
||||
|
||||
/* length - # elements in list */
|
||||
int length(List list) {
|
||||
int n = 0;
|
||||
|
||||
if (list) {
|
||||
List lp = list;
|
||||
do
|
||||
n++;
|
||||
while ((lp = lp->link) != list);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/* ltov - convert list to an NULL-terminated vector allocated in arena */
|
||||
void *ltov(List *list, unsigned arena) {
|
||||
int i = 0;
|
||||
void **array = newarray(length(*list) + 1, sizeof array[0], arena);
|
||||
|
||||
if (*list) {
|
||||
List lp = *list;
|
||||
do {
|
||||
lp = lp->link;
|
||||
array[i++] = lp->x;
|
||||
} while (lp != *list);
|
||||
#ifndef PURIFY
|
||||
lp = (*list)->link;
|
||||
(*list)->link = freenodes;
|
||||
freenodes = lp;
|
||||
#endif
|
||||
}
|
||||
*list = NULL;
|
||||
array[i] = NULL;
|
||||
return array;
|
||||
}
|
||||
#include "c.h"
|
||||
|
||||
|
||||
static List freenodes; /* free list nodes */
|
||||
|
||||
/* append - append x to list, return new list */
|
||||
List append(void *x, List list) {
|
||||
List new;
|
||||
|
||||
if ((new = freenodes) != NULL)
|
||||
freenodes = freenodes->link;
|
||||
else
|
||||
NEW(new, PERM);
|
||||
if (list) {
|
||||
new->link = list->link;
|
||||
list->link = new;
|
||||
} else
|
||||
new->link = new;
|
||||
new->x = x;
|
||||
return new;
|
||||
}
|
||||
|
||||
/* length - # elements in list */
|
||||
int length(List list) {
|
||||
int n = 0;
|
||||
|
||||
if (list) {
|
||||
List lp = list;
|
||||
do
|
||||
n++;
|
||||
while ((lp = lp->link) != list);
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/* ltov - convert list to an NULL-terminated vector allocated in arena */
|
||||
void *ltov(List *list, unsigned arena) {
|
||||
int i = 0;
|
||||
void **array = newarray(length(*list) + 1, sizeof array[0], arena);
|
||||
|
||||
if (*list) {
|
||||
List lp = *list;
|
||||
do {
|
||||
lp = lp->link;
|
||||
array[i++] = lp->x;
|
||||
} while (lp != *list);
|
||||
#ifndef PURIFY
|
||||
lp = (*list)->link;
|
||||
(*list)->link = freenodes;
|
||||
freenodes = lp;
|
||||
#endif
|
||||
}
|
||||
*list = NULL;
|
||||
array[i] = NULL;
|
||||
return array;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue