mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-15 19:09:58 +08:00
509212aa98
when WRDE_DOOFFS is in use. Restructure the code so that the memory needed to be freed is instead kept in an internal linked list... * libc/posix/wordexp2.h: ...as defined here... * libc/posix/wordexp.c (wordexp): ...and build this internal linked list here, avoiding wasteful strdup calls in the process.
22 lines
530 B
C
22 lines
530 B
C
/* Copyright (C) 2012 by Peter Rosin. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software
|
|
* is freely granted, provided that this notice is preserved.
|
|
*/
|
|
#ifndef _WORDEXP2_H_
|
|
|
|
struct ewords_entry {
|
|
SLIST_ENTRY(ewords_entry) next;
|
|
char ewords[1];
|
|
};
|
|
|
|
typedef struct {
|
|
SLIST_HEAD(ewords_head, ewords_entry) list;
|
|
char *we_wordv[1];
|
|
} ext_wordv_t;
|
|
|
|
#define WE_WORDV_TO_EXT_WORDV(wordv) \
|
|
(ext_wordv_t *)((void *)(wordv) - offsetof(ext_wordv_t, we_wordv))
|
|
|
|
#endif /* !_WORDEXP2_H_ */
|