6b13f685e
김민수
BSP 최초 추가
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#ifndef _SEARCH_H
#define _SEARCH_H 1
#include <stddef.h>
#define __set_errno(val) do { errno = val; } while (0)
enum env_op {
env_op_create,
env_op_delete,
env_op_overwrite,
};
typedef enum {
FIND,
ENTER
} ACTION;
typedef struct entry {
const char *key;
char *data;
int (*callback)(const char *name, const char *value, enum env_op op,
int flags);
int flags;
} ENTRY;
struct _ENTRY;
struct hsearch_data {
struct _ENTRY *table;
unsigned int size;
unsigned int filled;
int (*change_ok)(const ENTRY *__item, const char *newval, enum env_op,
int flag);
};
extern int hcreate_r(size_t __nel, struct hsearch_data *__htab);
extern void hdestroy_r(struct hsearch_data *__htab);
extern int hsearch_r(ENTRY __item, ACTION __action, ENTRY ** __retval,
struct hsearch_data *__htab, int __flag);
extern int hmatch_r(const char *__match, int __last_idx, ENTRY ** __retval,
struct hsearch_data *__htab);
extern int hdelete_r(const char *__key, struct hsearch_data *__htab,
int __flag);
extern ssize_t hexport_r(struct hsearch_data *__htab,
const char __sep, int __flag, char **__resp, size_t __size,
int argc, char * const argv[]);
extern int himport_r(struct hsearch_data *__htab,
const char *__env, size_t __size, const char __sep,
int __flag, int __crlf_is_lf, int nvars,
char * const vars[]);
extern int hwalk_r(struct hsearch_data *__htab, int (*callback)(ENTRY *));
#define H_NOCLEAR (1 << 0) /* do not clear hash table before importing */
#define H_FORCE (1 << 1) /* overwrite read-only/write-once variables */
#define H_INTERACTIVE (1 << 2) /* indicate that an import is user directed */
#define H_HIDE_DOT (1 << 3) /* don't print env vars that begin with '.' */
#define H_MATCH_KEY (1 << 4) /* search/grep key = variable names */
#define H_MATCH_DATA (1 << 5) /* search/grep data = variable values */
#define H_MATCH_BOTH (H_MATCH_KEY | H_MATCH_DATA) /* search/grep both */
#define H_MATCH_IDENT (1 << 6) /* search for indentical strings */
#define H_MATCH_SUBSTR (1 << 7) /* search for substring matches */
#define H_MATCH_REGEX (1 << 8) /* search for regular expression matches */
#define H_MATCH_METHOD (H_MATCH_IDENT | H_MATCH_SUBSTR | H_MATCH_REGEX)
#endif /* search.h */
|