• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/apr-32/apr/apr/misc/unix/

Lines Matching defs:os

40 APR_DECLARE(apr_status_t) apr_getopt_init(apr_getopt_t **os, apr_pool_t *cont,
45 *os = apr_palloc(cont, sizeof(apr_getopt_t));
46 (*os)->cont = cont;
47 (*os)->reset = 0;
48 (*os)->errfn = (apr_getopt_err_fn_t*)(fprintf);
49 (*os)->errarg = (void*)(stderr);
51 (*os)->place = EMSG;
52 (*os)->argc = argc;
60 (*os)->argv = argv_buff;
61 (*os)->argv[argc] = NULL;
63 (*os)->interleave = 0;
64 (*os)->ind = 1;
65 (*os)->skip_start = 1;
66 (*os)->skip_end = 1;
71 APR_DECLARE(apr_status_t) apr_getopt(apr_getopt_t *os, const char *opts,
76 if (os->reset || !*os->place) { /* update scanning pointer */
77 os->reset = 0;
78 if (os->ind >= os->argc || *(os->place = os->argv[os->ind]) != '-') {
79 os->place = EMSG;
80 *optch = os->opt;
83 if (os->place[1] && *++os->place == '-') { /* found "--" */
84 ++os->ind;
85 os->place = EMSG;
86 *optch = os->opt;
90 if ((os->opt = (int) *os->place++) == (int) ':' ||
91 !(oli = strchr(opts, os->opt))) {
96 if (os->opt == (int) '-') {
97 *optch = os->opt;
100 if (!*os->place)
101 ++os->ind;
102 if (os->errfn && *opts != ':') {
103 (os->errfn)(os->errarg, "%s: illegal option -- %c\n",
104 apr_filepath_name_get(*os->argv), os->opt);
106 *optch = os->opt;
111 if (!*os->place)
112 ++os->ind;
115 if (*os->place) /* no white space */
116 *optarg = os->place;
117 else if (os->argc <= ++os->ind) { /* no arg */
118 os->place = EMSG;
120 *optch = os->opt;
123 if (os->errfn) {
124 (os->errfn)(os->errarg,
126 apr_filepath_name_get(*os->argv), os->opt);
128 *optch = os->opt;
132 *optarg = os->argv[os->ind];
133 os->place = EMSG;
134 ++os->ind;
136 *optch = os->opt;
153 * Permute os->argv with the goal that non-option arguments will all
154 * appear at the end. os->skip_start is where we started skipping
155 * non-option arguments, os->skip_end is where we stopped, and os->ind
158 static void permute(apr_getopt_t *os)
160 int len1 = os->skip_end - os->skip_start;
161 int len2 = os->ind - os->skip_end;
163 if (os->interleave) {
165 * Exchange the sequences argv[os->skip_start..os->skip_end-1] and
166 * argv[os->skip_end..os->ind-1]. The easiest way to do that is
170 reverse(os->argv, os->skip_start, len1 + len2);
171 reverse(os->argv, os->skip_start, len2);
172 reverse(os->argv, os->skip_start + len2, len1);
176 os->skip_start += len2;
177 os->skip_end += len2;
181 static apr_status_t serr(apr_getopt_t *os, const char *err, const char *str,
184 if (os->errfn)
185 (os->errfn)(os->errarg, "%s: %s: %s\n",
186 apr_filepath_name_get(*os->argv), err, str);
191 static apr_status_t cerr(apr_getopt_t *os, const char *err, int ch,
194 if (os->errfn)
195 (os->errfn)(os->errarg, "%s: %s: %c\n",
196 apr_filepath_name_get(*os->argv), err, ch);
200 APR_DECLARE(apr_status_t) apr_getopt_long(apr_getopt_t *os,
208 if (os->reset) {
209 os->place = EMSG;
210 os->ind = 1;
211 os->reset = 0;
219 p = os->place;
222 if (os->interleave) {
223 while (os->ind < os->argc && *os->argv[os->ind] != '-')
224 os->ind++;
225 os->skip_end = os->ind;
227 if (os->ind >= os->argc || *os->argv[os->ind] != '-') {
228 os->ind = os->skip_start;
232 p = os->argv[os->ind++] + 1;
240 return serr(os, "invalid option", p - 2, APR_BADCH);
255 if (os->ind >= os->argc) /* Argument missing */
256 return serr(os, "missing argument", p - 2, APR_BADARG);
258 *optarg = os->argv[os->ind++];
263 return serr(os, "erroneous argument", p - 2, APR_BADARG);
265 permute(os);
269 permute(os);
270 os->ind = os->skip_start;
275 return serr(os, "invalid option", p, APR_BADCH);
285 return cerr(os, "invalid option character", *p, APR_BADCH);
296 if (os->ind >= os->argc) /* Argument missing */
297 return cerr(os, "missing argument", *optch, APR_BADARG);
299 *optarg = os->argv[os->ind++];
301 os->place = EMSG;
304 os->place = p;
307 permute(os);