version 1.2, 2016/07/29 15:23:57 |
version 1.3, 2016/07/29 15:29:32 |
|
|
static void *prepend(const char *, char); |
static void *prepend(const char *, char); |
static void dba_pages_write(struct dba_array *); |
static void dba_pages_write(struct dba_array *); |
static int compare_names(const void *, const void *); |
static int compare_names(const void *, const void *); |
|
static int compare_strings(const void *, const void *); |
static void dba_macros_write(struct dba_array *); |
static void dba_macros_write(struct dba_array *); |
static void dba_macro_write(struct dba_array *); |
static void dba_macro_write(struct dba_array *); |
|
|
Line 243 prepend(const char *instr, char inbyte) |
|
Line 244 prepend(const char *instr, char inbyte) |
|
static void |
static void |
dba_pages_write(struct dba_array *pages) |
dba_pages_write(struct dba_array *pages) |
{ |
{ |
struct dba_array *page, *names; |
struct dba_array *page, *entry; |
void *entry; |
|
int32_t pos_pages, pos_end; |
int32_t pos_pages, pos_end; |
|
|
pos_pages = dba_array_writelen(pages, 5); |
pos_pages = dba_array_writelen(pages, 5); |
dba_array_FOREACH(pages, page) { |
dba_array_FOREACH(pages, page) { |
dba_array_setpos(page, DBP_NAME, dba_tell()); |
dba_array_setpos(page, DBP_NAME, dba_tell()); |
names = dba_array_get(page, DBP_NAME); |
entry = dba_array_get(page, DBP_NAME); |
dba_array_sort(names, compare_names); |
dba_array_sort(entry, compare_names); |
dba_array_writelst(names); |
dba_array_writelst(entry); |
} |
} |
dba_array_FOREACH(pages, page) { |
dba_array_FOREACH(pages, page) { |
dba_array_setpos(page, DBP_SECT, dba_tell()); |
dba_array_setpos(page, DBP_SECT, dba_tell()); |
dba_array_writelst(dba_array_get(page, DBP_SECT)); |
entry = dba_array_get(page, DBP_SECT); |
|
dba_array_sort(entry, compare_strings); |
|
dba_array_writelst(entry); |
} |
} |
dba_array_FOREACH(pages, page) { |
dba_array_FOREACH(pages, page) { |
if ((entry = dba_array_get(page, DBP_ARCH)) != NULL) { |
if ((entry = dba_array_get(page, DBP_ARCH)) != NULL) { |
dba_array_setpos(page, DBP_ARCH, dba_tell()); |
dba_array_setpos(page, DBP_ARCH, dba_tell()); |
|
dba_array_sort(entry, compare_strings); |
dba_array_writelst(entry); |
dba_array_writelst(entry); |
} else |
} else |
dba_array_setpos(page, DBP_ARCH, 0); |
dba_array_setpos(page, DBP_ARCH, 0); |
Line 292 compare_names(const void *vp1, const void *vp2) |
|
Line 295 compare_names(const void *vp1, const void *vp2) |
|
strcasecmp(cp1 + 1, cp2 + 1); |
strcasecmp(cp1 + 1, cp2 + 1); |
} |
} |
|
|
|
static int |
|
compare_strings(const void *vp1, const void *vp2) |
|
{ |
|
const char *cp1, *cp2; |
|
|
|
cp1 = *(char **)vp1; |
|
cp2 = *(char **)vp2; |
|
return strcmp(cp1, cp2); |
|
} |
|
|
/*** functions for handling macros ************************************/ |
/*** functions for handling macros ************************************/ |
|
|