+#define ENSURE_MEMSPACE(buf, type, sz, req) \
+ if ((req) > sz && !(buf = realloc_array(buf, type, sz = MAX(sz * 2, req)))) \
+ out_of_memory("glob_expand")
+
+static inline void call_glob_match(const char *name, int len, int from_glob,
+ char *arg, int abpos, int fbpos);
+
+static struct glob_data {
+ char *arg_buf, *filt_buf, **argv;
+ int absize, fbsize, maxargs, argc;
+} glob;
+
+static void glob_match(char *arg, int abpos, int fbpos)