Lines Matching refs:state

119 typedef struct State_s			/* program state		*/
178 pr(State_t* state, Sfio_t* op, Sfio_t* ip, char* file, int perm, struct stat* st, Sfio_t* check)
188 state->oldsum = state->sum;
190 verify(state, p, file, check);
191 state->sum = state->oldsum;
192 if (state->warn && !sfeof(ip))
196 suminit(state->sum);
197 if (state->text)
207 sumblock(state->sum, "\r", 1);
217 sumblock(state->sum, p, r - p - (*r == '\n'));
220 sumblock(state->sum, p, e - p);
223 sumblock(state->sum, "\r", 1);
227 sumblock(state->sum, p, sfvalue(ip));
230 sumdone(state->sum);
231 if (!state->total || state->all)
233 sumprint(state->sum, op, state->flags|SUM_SCALE, state->scale);
243 (st->st_uid != state->uid && ((st->st_mode & S_ISUID) || (st->st_mode & S_IRUSR) && !(st->st_mode & (S_IRGRP|S_IROTH)) || (st->st_mode & S_IXUSR) && !(st->st_mode & (S_IXGRP|S_IXOTH)))) ? fmtuid(st->st_uid) : "-",
244 (st->st_gid != state->gid && ((st->st_mode & S_ISGID) || (st->st_mode & S_IRGRP) && !(st->st_mode & S_IROTH) || (st->st_mode & S_IXGRP) && !(st->st_mode & S_IXOTH))) ? fmtgid(st->st_gid) : "-");
258 verify(State_t* state, register char* s, char* check, Sfio_t* rp)
308 pr(state, rp, sp, file, -1, NiL, NiL);
313 if (state->silent)
322 if (state->silent)
331 else if (!state->permissions)
333 if (state->silent)
340 else if (!state->permissions)
342 if (state->silent)
347 if (state->permissions && (uid >= 0 || gid >= 0))
370 if (state->permissions)
377 else if (state->silent)
390 if (state->sum != state->oldsum)
391 sumclose(state->sum);
392 if (!(state->sum = sumopen(s)))
396 state->haveperm = 1;
406 list(State_t* state, register Sfio_t* lp)
412 if (sp = openfile(file, state->check ? "rt" : "rb"))
414 pr(state, sfstdout, sp, file, state->permissions, NiL, state->check);
452 State_t state;
455 memset(&state, 0, sizeof(state));
457 state.flags = SUM_SIZE;
458 state.warn = 1;
467 state.all = 1;
470 state.text = 0;
473 state.scale = opt_info.num;
476 if (!(state.check = sfstropen()))
480 state.header = 1;
483 state.list = 1;
486 state.permissions = 1;
490 state.scale = 512;
491 state.flags |= SUM_LEGACY;
495 state.recursive = 1;
496 state.sort = order;
503 state.silent = opt_info.num;
506 state.total = 1;
509 state.warn = opt_info.num;
528 state.text = 1;
547 if (method && !(state.sum = sumopen(method)))
549 if (!state.sum && !(state.sum = sumopen(error_info.id)) && !(state.sum = sumopen(astconf("UNIVERSE", NiL, NiL))))
550 state.sum = sumopen(NiL);
561 if (state.permissions)
563 state.uid = geteuid();
564 state.gid = getegid();
565 state.silent = 0;
567 if (!state.check && (state.header || state.permissions))
569 sfprintf(sfstdout, "method=%s\n", state.sum->name);
570 if (state.permissions)
573 if (state.list)
580 list(&state, sp);
586 list(&state, sp);
590 else if (!*argv && !state.recursive)
591 pr(&state, sfstdout, sfstdin, "/dev/stdin", state.permissions, NiL, state.check);
592 else if (!(fts = fts_open(argv, flags, state.sort)))
606 pr(&state, sfstdout, sp, ent->fts_path, state.permissions, ent->fts_statp, state.check);
625 if (state.total)
627 sumprint(state.sum, sfstdout, state.flags|SUM_TOTAL|SUM_SCALE, state.scale);
630 sumclose(state.sum);