From 1e9ba8f296be091930a3581807af9427e985df37 Mon Sep 17 00:00:00 2001 From: Apple Date: Wed, 11 Jan 2012 01:10:35 +0000 Subject: [PATCH] shell_cmds-170.tar.gz --- Makefile | 110 - PROJECT | 12 - alias/Makefile | 20 - alias/alias.c | 10 - {Manpages => alias}/builtin.1 | 0 apply/Makefile | 10 - basename/Makefile | 10 - chroot/Makefile | 10 - date/Makefile | 12 - dirname/Makefile | 9 - echo/Makefile | 11 - env/Makefile | 10 - expr/Makefile | 11 - expr/expr.1 | 230 +- expr/expr.c | 631 ---- expr/expr.y | 571 +++ false/Makefile | 10 - find/Makefile | 13 - find/extern.h | 10 +- find/find.1 | 42 +- find/find.c | 9 +- find/find.h | 6 +- find/function.c | 56 +- find/getdate.y | 69 +- find/ls.c | 9 +- find/main.c | 10 +- find/misc.c | 6 +- find/operator.c | 6 +- find/option.c | 12 +- getopt/Makefile | 10 - hexdump/conv.c | 182 + hexdump/display.c | 412 ++ hexdump/hexdump.1 | 340 ++ hexdump/hexdump.c | 86 + hexdump/hexdump.h | 108 + hexdump/hexsyntax.c | 147 + hexdump/od.1 | 267 ++ hexdump/odsyntax.c | 447 +++ hexdump/parse.c | 518 +++ hostname/Makefile | 10 - id/Makefile | 16 - id/id.c | 2 +- jot/Makefile | 10 - kill/Makefile | 10 - killall/Makefile | 11 - lastcomm/Makefile | 11 - locate/Makefile | 11 - locate/bigram/Makefile | 10 - locate/bigram/Makefile.postamble | 1 - locate/bigram/Makefile.preamble | 1 - locate/bigram/locate.bigram.8 | 1 + locate/code/Makefile | 10 - locate/code/Makefile.postamble | 1 - locate/code/Makefile.preamble | 1 - locate/{ => code}/locate.code.8 | 0 locate/locate/Makefile | 27 - locate/locate/Makefile.postamble | 10 - locate/locate/Makefile.preamble | 1 - logname/Makefile | 10 - machine/Makefile | 10 - mktemp/Makefile | 10 - nice/Makefile | 10 - nohup/Makefile | 10 - path_helper/Makefile | 10 - printenv/Makefile | 10 - printf/Makefile | 10 - pwd/Makefile | 11 - renice/Makefile | 10 - script/Makefile | 11 - seq/Makefile | 10 - shell_cmds.xcodeproj/project.pbxproj | 5189 ++++++++++++++++++++++++++ shlock/Makefile | 10 - sleep/Makefile | 11 - su/Makefile | 16 - su/su.c | 18 +- tee/Makefile | 10 - test/Makefile | 16 - time/Makefile | 10 - true/Makefile | 10 - uname/Makefile | 10 - users/Makefile | 10 - w/Makefile | 20 - machine/machine.1 => what/what.1 | 47 +- machine/machine.c => what/what.c | 60 +- whereis/Makefile | 10 - which/Makefile | 11 - who/Makefile | 11 - xargs/Makefile | 12 - xcodescripts/builtins-manpages.txt | 86 + xcodescripts/builtins.txt | 14 + xcodescripts/install-files.sh | 52 + yes/Makefile | 10 - 92 files changed, 8779 insertions(+), 1572 deletions(-) delete mode 100644 Makefile delete mode 100644 PROJECT delete mode 100644 alias/Makefile delete mode 100644 alias/alias.c rename {Manpages => alias}/builtin.1 (100%) delete mode 100644 apply/Makefile delete mode 100644 basename/Makefile delete mode 100644 chroot/Makefile delete mode 100644 date/Makefile delete mode 100644 dirname/Makefile delete mode 100644 echo/Makefile delete mode 100644 env/Makefile delete mode 100644 expr/Makefile delete mode 100644 expr/expr.c create mode 100644 expr/expr.y delete mode 100644 false/Makefile delete mode 100644 find/Makefile delete mode 100644 getopt/Makefile create mode 100644 hexdump/conv.c create mode 100644 hexdump/display.c create mode 100644 hexdump/hexdump.1 create mode 100644 hexdump/hexdump.c create mode 100644 hexdump/hexdump.h create mode 100644 hexdump/hexsyntax.c create mode 100644 hexdump/od.1 create mode 100644 hexdump/odsyntax.c create mode 100644 hexdump/parse.c delete mode 100644 hostname/Makefile delete mode 100644 id/Makefile delete mode 100644 jot/Makefile delete mode 100644 kill/Makefile delete mode 100644 killall/Makefile delete mode 100644 lastcomm/Makefile delete mode 100644 locate/Makefile delete mode 100644 locate/bigram/Makefile delete mode 100644 locate/bigram/Makefile.postamble delete mode 100644 locate/bigram/Makefile.preamble create mode 100644 locate/bigram/locate.bigram.8 delete mode 100644 locate/code/Makefile delete mode 100644 locate/code/Makefile.postamble delete mode 100644 locate/code/Makefile.preamble rename locate/{ => code}/locate.code.8 (100%) delete mode 100644 locate/locate/Makefile delete mode 100644 locate/locate/Makefile.postamble delete mode 100644 locate/locate/Makefile.preamble delete mode 100644 logname/Makefile delete mode 100644 machine/Makefile delete mode 100644 mktemp/Makefile delete mode 100644 nice/Makefile delete mode 100644 nohup/Makefile delete mode 100644 path_helper/Makefile delete mode 100644 printenv/Makefile delete mode 100644 printf/Makefile delete mode 100644 pwd/Makefile delete mode 100644 renice/Makefile delete mode 100644 script/Makefile delete mode 100644 seq/Makefile create mode 100644 shell_cmds.xcodeproj/project.pbxproj delete mode 100644 shlock/Makefile delete mode 100644 sleep/Makefile delete mode 100644 su/Makefile delete mode 100644 tee/Makefile delete mode 100644 test/Makefile delete mode 100644 time/Makefile delete mode 100644 true/Makefile delete mode 100644 uname/Makefile delete mode 100644 users/Makefile delete mode 100644 w/Makefile rename machine/machine.1 => what/what.1 (69%) rename machine/machine.c => what/what.c (63%) delete mode 100644 whereis/Makefile delete mode 100644 which/Makefile delete mode 100644 who/Makefile delete mode 100644 xargs/Makefile create mode 100644 xcodescripts/builtins-manpages.txt create mode 100644 xcodescripts/builtins.txt create mode 100644 xcodescripts/install-files.sh delete mode 100644 yes/Makefile diff --git a/Makefile b/Makefile deleted file mode 100644 index 8b86ab0..0000000 --- a/Makefile +++ /dev/null @@ -1,110 +0,0 @@ -Project = shell_cmds - -Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) - -SubProjects = alias apply basename chroot date dirname echo env expr false \ - find getopt hostname id jot kill killall lastcomm locate logname mktemp \ - nice nohup path_helper printenv printf pwd renice script seq shlock sleep \ - tee test time true uname users w whereis which who xargs yes - -ifeq ($(Embedded),NO) -# su requires PAM -SubProjects += su -endif - -MANPAGES = Manpages/builtin.1 - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -BUILTIN_LINKS = alias.1 \ - alloc.1 \ - bg.1 \ - bind.1 \ - bindkey.1 \ - break.1 \ - breaksw.1 \ - builtins.1 \ - case.1 \ - cd.1 \ - chdir.1 \ - command.1 \ - complete.1 \ - continue.1 \ - default.1 \ - dirs.1 \ - do.1 \ - done.1 \ - echotc.1 \ - elif.1 \ - else.1 \ - end.1 \ - endif.1 \ - endsw.1 \ - esac.1 \ - eval.1 \ - exec.1 \ - exit.1 \ - export.1 \ - fc.1 \ - fg.1 \ - fi.1 \ - filetest.1 \ - for.1 \ - foreach.1 \ - getopts.1 \ - glob.1 \ - goto.1 \ - hash.1 \ - hashstat.1 \ - history.1 \ - hup.1 \ - if.1 \ - jobid.1 \ - jobs.1 \ - limit.1 \ - log.1 \ - logout.1 \ - ls-F.1 \ - notify.1 \ - onintr.1 \ - popd.1 \ - pushd.1 \ - read.1 \ - readonly.1 \ - rehash.1 \ - repeat.1 \ - return.1 \ - sched.1 \ - set.1 \ - setenv.1 \ - settc.1 \ - setty.1 \ - setvar.1 \ - shift.1 \ - source.1 \ - stop.1 \ - suspend.1 \ - switch.1 \ - telltc.1 \ - then.1 \ - times.1 \ - trap.1 \ - type.1 \ - ulimit.1 \ - umask.1 \ - unalias.1 \ - uncomplete.1 \ - unhash.1 \ - unlimit.1 \ - unset.1 \ - unsetenv.1 \ - until.1 \ - wait.1 \ - where.1 \ - while.1 - -after_install: - @echo Installing manpage links... - @for manpage in $(BUILTIN_LINKS); do \ - $(LN) -f $(DSTROOT)/usr/share/man/man1/builtin.1 $(DSTROOT)/usr/share/man/man1/$${manpage}; \ - done diff --git a/PROJECT b/PROJECT deleted file mode 100644 index 41782bc..0000000 --- a/PROJECT +++ /dev/null @@ -1,12 +0,0 @@ -Project : shell_cmds -Description : Shell Commands -Distribution : NetBSD Fri Oct 9 20:13:59 PDT 1998 -Source : NetBSD Foundation, Inc. -Location : cvs.netbsd.org:/cvsroot -Owner : wsanchez -Releases : Titan -Dependancies : - -machine is disabled in favor of arch, which installs a link to itself as machine. - -w/fmt.c is copied from ps/fmt.c. We aren't doing the CVS trick of checking out that code from ps, because we don't use BSD ps; ps is a Mach client. diff --git a/alias/Makefile b/alias/Makefile deleted file mode 100644 index 123299b..0000000 --- a/alias/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -Project = alias -Install_Dir = /usr/bin - -MANPAGES = alias.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -BUILTINS = bg cd command fc fg getopts hash jobs read type ulimit umask unalias wait - -after_install: - $(INSTALL_SCRIPT) generic.sh $(DSTROOT)$(Install_Dir)/alias - @for builtin in $(BUILTINS); do \ - $(LN) $(DSTROOT)/$(Install_Dir)/alias \ - "$(DSTROOT)/$(Install_Dir)/$${builtin}" ; \ - done -# $(LN) $(DSTROOT)/usr/share/man/man1/alias.1 \ -# "$(DSTROOT)/usr/share/man/man1/$${builtin}.1" ; \ diff --git a/alias/alias.c b/alias/alias.c deleted file mode 100644 index 23abd94..0000000 --- a/alias/alias.c +++ /dev/null @@ -1,10 +0,0 @@ - -/* This file is a dummy file to make the Makefile to work correctly to install - the shell scripts. It does not lead to any deliverable. Do not remove this - file from this (..../shell_cmds/alias) directory. -*/ -int main() -{ - exit(0); -} - diff --git a/Manpages/builtin.1 b/alias/builtin.1 similarity index 100% rename from Manpages/builtin.1 rename to alias/builtin.1 diff --git a/apply/Makefile b/apply/Makefile deleted file mode 100644 index 6b0bc94..0000000 --- a/apply/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = apply -Install_Dir = /usr/bin - -CFILES = apply.c -MANPAGES = apply.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/basename/Makefile b/basename/Makefile deleted file mode 100644 index a645b3c..0000000 --- a/basename/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = basename -Install_Dir = /usr/bin - -CFILES = basename.c -MANPAGES = basename.1 dirname.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/chroot/Makefile b/chroot/Makefile deleted file mode 100644 index cb53772..0000000 --- a/chroot/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = chroot -Install_Dir = /usr/sbin - -CFILES = chroot.c -MANPAGES = chroot.8 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/date/Makefile b/date/Makefile deleted file mode 100644 index eb3ac02..0000000 --- a/date/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -Project = date -Install_Dir = /bin - -HFILES = extern.h vary.h -CFILES = date.c netdate.c vary.c -MANPAGES = date.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/dirname/Makefile b/dirname/Makefile deleted file mode 100644 index be93458..0000000 --- a/dirname/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -Project = dirname -Install_Dir = /usr/bin - -CFILES = dirname.c - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/echo/Makefile b/echo/Makefile deleted file mode 100644 index 1763229..0000000 --- a/echo/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = echo -Install_Dir = /bin - -CFILES = echo.c -MANPAGES = echo.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/env/Makefile b/env/Makefile deleted file mode 100644 index a1f3756..0000000 --- a/env/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = env -Install_Dir = /usr/bin - -CFILES = env.c -MANPAGES = env.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/expr/Makefile b/expr/Makefile deleted file mode 100644 index 109008b..0000000 --- a/expr/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = expr -Install_Dir = /bin - -CFILES = expr.c -MANPAGES = expr.1 - -Extra_CC_Flags = -Wall \ - -D__DARWIN_UNIX03=1 -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/expr/expr.1 b/expr/expr.1 index ffc9015..9c8090c 100644 --- a/expr/expr.1 +++ b/expr/expr.1 @@ -1,9 +1,36 @@ -.\" $NetBSD: expr.1,v 1.10 1997/10/20 08:51:56 enami Exp $ +.\" -*- nroff -*- +.\"- +.\" Copyright (c) 1993 Winning Strategies, Inc. +.\" All rights reserved. .\" -.\" Written by J.T. Conklin . -.\" Public domain. +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by Winning Strategies, Inc. +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission .\" -.Dd July 3, 1993 +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD: src/bin/expr/expr.1,v 1.31 2011/07/09 12:05:53 se Exp $ +.\" +.Dd September 9, 2010 .Dt EXPR 1 .Os .Sh NAME @@ -15,86 +42,98 @@ .Sh DESCRIPTION The .Nm -utility evaluates +utility evaluates .Ar expression and writes the result on standard output. .Pp -All operators are separate arguments to the -.Nm -utility. -Characters special to the command interpreter must be escaped. +All operators and operands must be passed as separate arguments. +Several of the operators have special meaning to command interpreters +and must therefore be quoted appropriately. +All integer operands are interpreted in base 10 and must consist of only +an optional leading minus sign followed by one or more digits. .Pp -Operators are listed below in order of increasing precedence. -Operators with equal precedence are grouped within { } symbols. +Arithmetic operations are performed using signed integer math with a +range according to the C +.Vt intmax_t +data type (the largest signed integral type available). +All conversions and operations are checked for overflow. +Overflow results in program termination with an error message on stdout +and with an error status. +.Pp +Operators are listed below in order of increasing precedence; all +are left-associative. +Operators with equal precedence are grouped within symbols +.Ql { +and +.Ql } . .Bl -tag -width indent .It Ar expr1 Li | Ar expr2 -Returns the evaluation of -.Ar expr1 +Return the evaluation of +.Ar expr1 if it is neither an empty string nor zero; otherwise, returns the evaluation of -.Ar expr2 . +.Ar expr2 +if it is not an empty string; +otherwise, returns zero. .It Ar expr1 Li & Ar expr2 -Returns the evaluation of +Return the evaluation of .Ar expr1 if neither expression evaluates to an empty string or zero; otherwise, returns zero. .It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2 -Returns the results of integer comparison if both arguments are integers; +Return the results of integer comparison if both arguments are integers; otherwise, returns the results of string comparison using the locale-specific collation sequence. The result of each comparison is 1 if the specified relation is true, or 0 if the relation is false. .It Ar expr1 Li "{+, -}" Ar expr2 -Returns the results of addition or subtraction of integer-valued arguments. +Return the results of addition or subtraction of integer-valued arguments. .It Ar expr1 Li "{*, /, %}" Ar expr2 -Returns the results of multiplication, integer division, or remainder of integer-valued arguments. +Return the results of multiplication, integer division, or remainder of integer-valued arguments. .It Ar expr1 Li : Ar expr2 -The -.Dq \&: -operator matches -.Ar expr1 -against +The +.Dq Li \&: +operator matches +.Ar expr1 +against .Ar expr2 , -which must be a regular expression. The regular expression is anchored -to the beginning of the string with an implicit -.Dq ^ . -.Nm -expects "basic" regular expressions, see -.Xr re_format 7 -for more information on regular expressions. +which must be a basic regular expression. +The regular expression is anchored +to the beginning of the string with an implicit +.Dq Li ^ . .Pp If the match succeeds and the pattern contains at least one regular -expression subexpression -.Dq "\e(...\e)" , -the string corresponding to -.Dq "\e1" +expression subexpression +.Dq Li "\e(...\e)" , +the string corresponding to +.Dq Li \e1 is returned; -otherwise the matching operator returns the number of characters matched. +otherwise the matching operator returns the number of characters matched. If the match fails and the pattern contains a regular expression subexpression the null string is returned; otherwise 0. .El .Pp Parentheses are used for grouping in the usual manner. -.Sh EXAMPLES -.Bl -enum -.It -The following example adds one to the variable a. -.Dl a=`expr $a + 1` -.It -The following example returns the filename portion of a pathname stored -in variable a. The // characters act to eliminate ambiguity with the -division operator. -.Dl expr "//$a" Li : '.*/\e(.*\e)' -.It -The following example returns the number of characters in variable a. -.Dl expr $a Li : '.*' -.El -.Sh DIAGNOSTICS +.Pp +The +.Nm +utility makes no lexical distinction between arguments which may be +operators and arguments which may be operands. +An operand which is lexically identical to an operator will be considered a +syntax error. +See the examples below for a work-around. +.Pp +The syntax of the +.Nm +command in general is historic and inconvenient. +New applications are advised to use shell arithmetic rather than +.Nm . +.Sh EXIT STATUS The .Nm utility exits with one of the following values: -.Bl -tag -width Ds -compact +.Bl -tag -width indent -compact .It 0 the expression is neither an empty string nor 0. .It 1 @@ -102,8 +141,95 @@ the expression is an empty string or 0. .It 2 the expression is invalid. .El +.Sh EXAMPLES +.Bl -bullet +.It +The following example (in +.Xr sh 1 +syntax) adds one to the variable +.Va a : +.Dl "a=$(expr $a + 1)" +.It +This will fail if the value of +.Va a +is a negative number. +To protect negative values of +.Va a +from being interpreted as options to the +.Nm +command, one might rearrange the expression: +.Dl "a=$(expr 1 + $a)" +.It +More generally, parenthesize possibly-negative values: +.Dl "a=$(expr \e( $a \e) + 1)" +.It +With shell arithmetic, no escaping is required: +.Dl "a=$((a + 1))" +.It +This example prints the filename portion of a pathname stored +in variable +.Va a . +Since +.Va a +might represent the path +.Pa / , +it is necessary to prevent it from being interpreted as the division operator. +The +.Li // +characters resolve this ambiguity. +.Dl "expr \*q//$a\*q \&: '.*/\e(.*\e)'" +.It +With modern +.Xr sh 1 +syntax, +.Dl "\*q${a##*/}\*q" +expands to the same value. +.El +.Pp +The following examples output the number of characters in variable +.Va a . +Again, if +.Va a +might begin with a hyphen, it is necessary to prevent it from being +interpreted as an option to +.Nm , +and +.Va a +might be interpreted as an operator. +.Bl -bullet +.It +To deal with all of this, a complicated command +is required: +.Dl "expr \e( \*qX$a\*q \&: \*q.*\*q \e) - 1" +.It +With modern +.Xr sh 1 +syntax, this can be done much more easily: +.Dl "${#a}" +expands to the required number. +.El +.Sh SEE ALSO +.Xr sh 1 , +.Xr test 1 .Sh STANDARDS The .Nm utility conforms to -.St -p1003.2 . +.St -p1003.1-2008 . +.Pp +The extended arithmetic range and overflow checks do not conflict with +POSIX's requirement that arithmetic be done using signed longs, since +they only make a difference to the result in cases where using signed +longs would give undefined behavior. +.Pp +According to the +.Tn POSIX +standard, the use of string arguments +.Va length , +.Va substr , +.Va index , +or +.Va match +produces undefined results. In this version of +.Nm , +these arguments are treated just as their respective string values. diff --git a/expr/expr.c b/expr/expr.c deleted file mode 100644 index 590608c..0000000 --- a/expr/expr.c +++ /dev/null @@ -1,631 +0,0 @@ -/* $NetBSD: expr.c,v 1.9 1998/07/28 11:41:48 mycroft Exp $ */ - -/* - * Written by J.T. Conklin . - * Public domain. - */ - -#include -#include -#include -#include -#include -#include -#include - - -enum token { - OR, AND, EQ, LT, GT, ADD, SUB, MUL, DIV, MOD, MATCH, RP, LP, - NE, LE, GE, OPERAND, EOI -}; - -struct val { - enum { - integer, - string - } type; - - union { - char *s; - int64_t i; - } u; -}; - -enum token token; -struct val *tokval; -char **av; - -struct val *make_int __P((int64_t)); -struct val *make_str __P((char *)); -void free_value __P((struct val *)); -int is_integer __P((struct val *, int64_t *)); -int to_integer __P((struct val *)); -void to_string __P((struct val *)); -int is_null __P((struct val *)); -int is_zero_or_null __P((struct val *)); -void nexttoken __P((void)); -void error __P((void)) __attribute__((__noreturn__)); -struct val *eval6 __P((void)); -struct val *eval5 __P((void)); -struct val *eval4 __P((void)); -struct val *eval3 __P((void)); -struct val *eval2 __P((void)); -struct val *eval1 __P((void)); -struct val *eval0 __P((void)); -int main __P((int, char **)); - - -struct val * -make_int(i) - int64_t i; -{ - struct val *vp; - - vp = (struct val *) malloc(sizeof(*vp)); - if (vp == NULL) { - err(2, "%s", ""); - } - vp->type = integer; - vp->u.i = i; - return vp; -} - - -struct val * -make_str(s) - char *s; -{ - struct val *vp; - - vp = (struct val *) malloc(sizeof(*vp)); - if (vp == NULL || ((vp->u.s = strdup(s)) == NULL)) { - err(2, "%s", ""); - } - vp->type = string; - return vp; -} - - -void -free_value(vp) - struct val *vp; -{ - if (vp->type == string) - free(vp->u.s); - free(vp); -} - - -/* determine if vp is an integer; if so, return it's value in *r */ -int -is_integer(vp, r) - struct val *vp; - int64_t *r; -{ - char *s; - int neg; - int64_t i; - - if (vp->type == integer) { - *r = vp->u.i; - return 1; - } - - /* - * POSIX.2 defines an "integer" as an optional unary minus - * followed by digits. - */ - s = vp->u.s; - i = 0; - - neg = (*s == '-'); - if (neg) { - s++; - /* the optional unary minus *must* be followed by digits to - * be considered an integer. A '-' alone is not an integer. - */ - if(!*s) - return 0; - } - - while (*s) { - if (!isdigit(*s)) - return 0; - - i *= 10; - i += *s - '0'; - - s++; - } - - if (neg) - i *= -1; - - *r = i; - return 1; -} - - -/* coerce to vp to an integer */ -int -to_integer(vp) - struct val *vp; -{ - int64_t r; - - if (vp->type == integer) - return 1; - - if (is_integer(vp, &r)) { - free(vp->u.s); - vp->u.i = r; - vp->type = integer; - return 1; - } - - return 0; -} - - -/* coerce to vp to an string */ -void -to_string(vp) - struct val *vp; -{ - char *tmp; - - if (vp->type == string) - return; - - tmp = malloc(100); - if (tmp == NULL) { - err(2, "%s", ""); - } - (void)snprintf(tmp, 100, "%lld", vp->u.i); - vp->type = string; - vp->u.s = tmp; -} - -int is_null(vp) - struct val *vp; -{ - if ((vp->type != integer) && (*vp->u.s == 0)) - return 1; - return 0; -} - -int -is_zero_or_null(vp) - struct val *vp; -{ - if (vp->type == integer) - return (vp->u.i == 0); - else - return (*vp->u.s == 0 || (to_integer(vp) && vp->u.i == 0)); - /* NOTREACHED */ -} - -void -nexttoken() -{ - char *p; - - if ((p = *av) == NULL) { - token = EOI; - return; - } - av++; - - if (p[0] != '\0') { - if (p[1] == '\0') { - const char *x = "|&=<>+-*/%:()"; - char *i; /* index */ - - if ((i = strchr(x, *p)) != NULL) { - token = i - x; - return; - } - } else if (p[1] == '=' && p[2] == '\0') { - switch (*p) { - case '<': - token = LE; - return; - case '>': - token = GE; - return; - case '!': - token = NE; - return; - } - } - } - tokval = make_str(p); - token = OPERAND; - return; -} - -void -error() -{ - errx(2, "syntax error"); - /* NOTREACHED */ -} - -struct val * -eval6() -{ - struct val *v; - - if (token == OPERAND) { - nexttoken(); - return tokval; - - } else if (token == RP) { - nexttoken(); - v = eval0(); - - if (token != LP) - error(); - - nexttoken(); - return v; - } else { - - switch (token) { - case DIV: - nexttoken(); - tokval = make_str("/"); - break; - case MUL: - nexttoken(); - tokval = make_str("*"); - break; - case OR: - nexttoken(); - tokval = make_str("|"); - break; - case AND: - nexttoken(); - tokval = make_str("&"); - break; - case EQ: - nexttoken(); - tokval = make_str("="); - break; - case LT: - nexttoken(); - tokval = make_str("<"); - break; - case GT: - nexttoken(); - tokval = make_str(">"); - break; - case ADD: - nexttoken(); - tokval = make_str("+"); - break; - case SUB: - nexttoken(); - tokval = make_str("-"); - break; - case MOD: - nexttoken(); - tokval = make_str("%"); - break; - case NE: - nexttoken(); - tokval = make_str("!="); - break; - case LE: - nexttoken(); - tokval = make_str("<="); - break; - case MATCH: - nexttoken(); - tokval = make_str(":"); - break; - case GE: - nexttoken(); - tokval = make_str(">="); - break; - case EOI: - error(); - } - return tokval; - } - /* NOTREACHED */ -} - -/* Parse and evaluate match (regex) expressions */ -struct val * -eval5() -{ - regex_t rp; - regmatch_t rm[2]; - char errbuf[256]; - int eval; - struct val *l, *r; - struct val *v; - - l = eval6(); - while (token == MATCH) { - nexttoken(); - r = eval6(); - - /* coerce to both arguments to strings */ - to_string(l); - to_string(r); - - /* compile regular expression */ - if ((eval = regcomp(&rp, r->u.s, 0)) != 0) { - (void)regerror(eval, &rp, errbuf, sizeof(errbuf)); - errx(2, "%s", errbuf); - } - - /* compare string against pattern -- remember that patterns - are anchored to the beginning of the line */ - if (regexec(&rp, l->u.s, 2, rm, 0) == 0 && rm[0].rm_so == 0) { - if (rm[1].rm_so >= 0) { - *(l->u.s + rm[1].rm_eo) = '\0'; - v = make_str(l->u.s + rm[1].rm_so); - - } else { - v = make_int((int)(rm[0].rm_eo - rm[0].rm_so)); - } - } else { - if (rp.re_nsub == 0) { - v = make_int(0); - } else { - v = make_str(""); - } - } - - /* free arguments and pattern buffer */ - free_value(l); - free_value(r); - regfree(&rp); - - l = v; - } - - return l; -} - -/* Parse and evaluate multiplication and division expressions */ -struct val * -eval4() -{ - struct val *l, *r; - enum token op; - - l = eval5(); - while ((op = token) == MUL || op == DIV || op == MOD) { - nexttoken(); - r = eval5(); - - if (!to_integer(l) || !to_integer(r)) { - errx(2, "non-numeric argument"); - } - - if (op == MUL) { - l->u.i *= r->u.i; - } else { - if (r->u.i == 0) { - errx(2, "division by zero"); - } - if (op == DIV) { - l->u.i /= r->u.i; - } else { - l->u.i %= r->u.i; - } - } - - free_value(r); - } - - return l; -} - -/* Parse and evaluate addition and subtraction expressions */ -struct val * -eval3() -{ - struct val *l, *r; - enum token op; - - l = eval4(); - while ((op = token) == ADD || op == SUB) { - nexttoken(); - r = eval4(); - - if (!to_integer(l) || !to_integer(r)) { - errx(2, "non-numeric argument"); - } - - if (op == ADD) { - l->u.i += r->u.i; - } else { - l->u.i -= r->u.i; - } - - free_value(r); - } - - return l; -} - -/* Parse and evaluate comparison expressions */ -struct val * -eval2() -{ - struct val *l, *r; - enum token op; - int v = 0; /* pacify gcc */ - int64_t li, ri; - - l = eval3(); - while ((op = token) == EQ || op == NE || op == LT || op == GT || op == LE || op == GE) { - nexttoken(); - r = eval3(); - - if (is_integer(l, &li) && is_integer(r, &ri)) { - switch (op) { - case GT: - v = (li > ri); - break; - case GE: - v = (li >= ri); - break; - case LT: - v = (li < ri); - break; - case LE: - v = (li <= ri); - break; - case EQ: - v = (li == ri); - break; - case NE: - v = (li != ri); - break; - case MOD: - case EOI: - case OPERAND: - case LP: - case RP: - case MATCH: - case DIV: - case MUL: - case SUB: - case ADD: - case AND: - case OR: - /* Can't happen */ - abort(); - break; - } - } else { - to_string(l); - to_string(r); - - switch (op) { - case GT: - v = (strcoll(l->u.s, r->u.s) > 0); - break; - case GE: - v = (strcoll(l->u.s, r->u.s) >= 0); - break; - case LT: - v = (strcoll(l->u.s, r->u.s) < 0); - break; - case LE: - v = (strcoll(l->u.s, r->u.s) <= 0); - break; - case EQ: - v = (strcoll(l->u.s, r->u.s) == 0); - break; - case NE: - v = (strcoll(l->u.s, r->u.s) != 0); - break; - case MUL: - case SUB: - case ADD: - case AND: - case OR: - case DIV: - case OPERAND: - case EOI: - case MOD: - case RP: - case MATCH: - case LP: - /* Can't happen */ - abort(); - break; - } - } - - free_value(l); - free_value(r); - l = make_int(v); - } - - return l; -} - -/* Parse and evaluate & expressions */ -struct val * -eval1() -{ - struct val *l, *r; - - l = eval2(); - while (token == AND) { - nexttoken(); - r = eval2(); - - if (is_zero_or_null(l) || is_zero_or_null(r)) { - free_value(l); - free_value(r); - l = make_int(0); - } else { - free_value(r); - } - } - - return l; -} - -/* Parse and evaluate | expressions */ -struct val * -eval0() -{ - struct val *l, *r; - - l = eval1(); - while (token == OR) { - nexttoken(); - r = eval1(); - - if (is_zero_or_null(l)) { - free_value(l); - l = r; - if( is_null(r) ) { - free_value(r); - l = make_int(0); - } - } else { - free_value(r); - } - } - - return l; -} - - -int -main(argc, argv) - int argc; - char **argv; -{ - struct val *vp; - - (void) setlocale(LC_ALL, ""); - av = argv + 1; - if (*av && !strcmp(*av, "--")) - av++; - nexttoken(); - vp = eval0(); - - if (token != EOI) - error(); - if (vp->type == string && vp->u.s[0]) - to_integer(vp); /* -0 is not a string */ - if (vp->type == integer) - (void)printf("%lld\n", vp->u.i); - else - (void)printf("%s\n", vp->u.s); - - exit(is_zero_or_null(vp)); - /* NOTREACHED */ -} diff --git a/expr/expr.y b/expr/expr.y new file mode 100644 index 0000000..1aa9474 --- /dev/null +++ b/expr/expr.y @@ -0,0 +1,571 @@ +%{ +/*- + * Written by Pace Willisson (pace@blitz.com) + * and placed in the public domain. + * + * Largely rewritten by J.T. Conklin (jtc@wimsey.com) + * + * $FreeBSD: src/bin/expr/expr.y,v 1.28 2011/07/09 12:20:15 se Exp $ + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * POSIX specifies a specific error code for syntax errors. We exit + * with this code for all errors. + */ +#define ERR_EXIT 2 + +enum valtype { + integer, numeric_string, string +} ; + +struct val { + enum valtype type; + union { + char *s; + intmax_t i; + } u; +} ; + +char **av; +int nonposix; +struct val *result; + +void assert_to_integer(struct val *); +void assert_div(intmax_t, intmax_t); +void assert_minus(intmax_t, intmax_t, intmax_t); +void assert_plus(intmax_t, intmax_t, intmax_t); +void assert_times(intmax_t, intmax_t, intmax_t); +int compare_vals(struct val *, struct val *); +void free_value(struct val *); +int is_integer(const char *); +int is_string(struct val *); +int is_zero_or_null(struct val *); +struct val *make_integer(intmax_t); +struct val *make_str(const char *); +struct val *op_and(struct val *, struct val *); +struct val *op_colon(struct val *, struct val *); +struct val *op_div(struct val *, struct val *); +struct val *op_eq(struct val *, struct val *); +struct val *op_ge(struct val *, struct val *); +struct val *op_gt(struct val *, struct val *); +struct val *op_le(struct val *, struct val *); +struct val *op_lt(struct val *, struct val *); +struct val *op_minus(struct val *, struct val *); +struct val *op_ne(struct val *, struct val *); +struct val *op_or(struct val *, struct val *); +struct val *op_plus(struct val *, struct val *); +struct val *op_rem(struct val *, struct val *); +struct val *op_times(struct val *, struct val *); +int to_integer(struct val *); +void to_string(struct val *); +int yyerror(const char *); +int yylex(void); +int yyparse(void); + +%} + +%union +{ + struct val *val; +} + +%left '|' +%left '&' +%left '=' '>' '<' GE LE NE +%left '+' '-' +%left '*' '/' '%' +%left ':' + +%token TOKEN +%type start expr + +%% + +start: expr { result = $$; } + +expr: TOKEN + | '(' expr ')' { $$ = $2; } + | expr '|' expr { $$ = op_or($1, $3); } + | expr '&' expr { $$ = op_and($1, $3); } + | expr '=' expr { $$ = op_eq($1, $3); } + | expr '>' expr { $$ = op_gt($1, $3); } + | expr '<' expr { $$ = op_lt($1, $3); } + | expr GE expr { $$ = op_ge($1, $3); } + | expr LE expr { $$ = op_le($1, $3); } + | expr NE expr { $$ = op_ne($1, $3); } + | expr '+' expr { $$ = op_plus($1, $3); } + | expr '-' expr { $$ = op_minus($1, $3); } + | expr '*' expr { $$ = op_times($1, $3); } + | expr '/' expr { $$ = op_div($1, $3); } + | expr '%' expr { $$ = op_rem($1, $3); } + | expr ':' expr { $$ = op_colon($1, $3); } + ; + +%% + +struct val * +make_integer(intmax_t i) +{ + struct val *vp; + + vp = (struct val *)malloc(sizeof(*vp)); + if (vp == NULL) + errx(ERR_EXIT, "malloc() failed"); + + vp->type = integer; + vp->u.i = i; + return (vp); +} + +struct val * +make_str(const char *s) +{ + struct val *vp; + + vp = (struct val *)malloc(sizeof(*vp)); + if (vp == NULL || ((vp->u.s = strdup(s)) == NULL)) + errx(ERR_EXIT, "malloc() failed"); + + if (is_integer(s)) + vp->type = numeric_string; + else + vp->type = string; + + return (vp); +} + +void +free_value(struct val *vp) +{ + if (vp->type == string || vp->type == numeric_string) + free(vp->u.s); +} + +int +to_integer(struct val *vp) +{ + intmax_t i; + + /* we can only convert numeric_string to integer, here */ + if (vp->type == numeric_string) { + errno = 0; + i = strtoimax(vp->u.s, (char **)NULL, 10); + /* just keep as numeric_string, if the conversion fails */ + if (errno != ERANGE) { + free(vp->u.s); + vp->u.i = i; + vp->type = integer; + } + } + return (vp->type == integer); +} + +void +assert_to_integer(struct val *vp) +{ + if (vp->type == string) + errx(ERR_EXIT, "not a decimal number: '%s'", vp->u.s); + if (!to_integer(vp)) + errx(ERR_EXIT, "operand too large: '%s'", vp->u.s); +} + +void +to_string(struct val *vp) +{ + char *tmp; + + if (vp->type == string || vp->type == numeric_string) + return; + + /* + * log_10(x) ~= 0.3 * log_2(x). Rounding up gives the number + * of digits; add one each for the sign and terminating null + * character, respectively. + */ +#define NDIGITS(x) (3 * (sizeof(x) * CHAR_BIT) / 10 + 1 + 1 + 1) + tmp = malloc(NDIGITS(vp->u.i)); + if (tmp == NULL) + errx(ERR_EXIT, "malloc() failed"); + + sprintf(tmp, "%jd", vp->u.i); + vp->type = string; + vp->u.s = tmp; +} + +int +is_integer(const char *s) +{ + if (nonposix) { + if (*s == '\0') + return (1); + while (isspace((unsigned char)*s)) + s++; + } + if (*s == '-' || (nonposix && *s == '+')) + s++; + if (*s == '\0') + return (0); + while (isdigit((unsigned char)*s)) + s++; + return (*s == '\0'); +} + +int +is_string(struct val *vp) +{ + /* only TRUE if this string is not a valid integer */ + return (vp->type == string); +} + +int +yylex(void) +{ + char *p; + + if (*av == NULL) + return (0); + + p = *av++; + + if (strlen(p) == 1) { + if (strchr("|&=<>+-*/%:()", *p)) + return (*p); + } else if (strlen(p) == 2 && p[1] == '=') { + switch (*p) { + case '>': return (GE); + case '<': return (LE); + case '!': return (NE); + } + } + + yylval.val = make_str(p); + return (TOKEN); +} + +int +is_zero_or_null(struct val *vp) +{ + if (vp->type == integer) + return (vp->u.i == 0); + + return (*vp->u.s == 0 || (to_integer(vp) && vp->u.i == 0)); +} + +int +main(int argc, char *argv[]) +{ +#ifndef __APPLE__ + int c; +#endif + + setlocale(LC_ALL, ""); +#ifdef __APPLE__ + av = argv + 1; + if (*av && !strcmp(*av, "--")) + av++; +#else + if (getenv("EXPR_COMPAT") != NULL + || check_utility_compat("expr")) { + av = argv + 1; + nonposix = 1; + } else { + while ((c = getopt(argc, argv, "e")) != -1) { + switch (c) { + case 'e': + nonposix = 1; + break; + default: + errx(ERR_EXIT, + "usage: expr [-e] expression\n"); + } + } + av = argv + optind; + } +#endif + + yyparse(); + +#ifdef __APPLE__ + if (to_integer(result)) +#else + if (result->type == integer) +#endif + printf("%jd\n", result->u.i); + else + printf("%s\n", result->u.s); + + return (is_zero_or_null(result)); +} + +int +yyerror(const char *s __unused) +{ + errx(ERR_EXIT, "syntax error"); +} + +struct val * +op_or(struct val *a, struct val *b) +{ + if (!is_zero_or_null(a)) { + free_value(b); + return (a); + } + free_value(a); + if (!is_zero_or_null(b)) + return (b); + free_value(b); + return (make_integer((intmax_t)0)); +} + +struct val * +op_and(struct val *a, struct val *b) +{ + if (is_zero_or_null(a) || is_zero_or_null(b)) { + free_value(a); + free_value(b); + return (make_integer((intmax_t)0)); + } else { + free_value(b); + return (a); + } +} + +int +compare_vals(struct val *a, struct val *b) +{ + int r; + + if (is_string(a) || is_string(b)) { + to_string(a); + to_string(b); + r = strcoll(a->u.s, b->u.s); + } else { + assert_to_integer(a); + assert_to_integer(b); + if (a->u.i > b->u.i) + r = 1; + else if (a->u.i < b->u.i) + r = -1; + else + r = 0; + } + + free_value(a); + free_value(b); + return (r); +} + +struct val * +op_eq(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) == 0))); +} + +struct val * +op_gt(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) > 0))); +} + +struct val * +op_lt(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) < 0))); +} + +struct val * +op_ge(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) >= 0))); +} + +struct val * +op_le(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) <= 0))); +} + +struct val * +op_ne(struct val *a, struct val *b) +{ + return (make_integer((intmax_t)(compare_vals(a, b) != 0))); +} + +void +assert_plus(intmax_t a, intmax_t b, intmax_t r) +{ + /* + * sum of two positive numbers must be positive, + * sum of two negative numbers must be negative + */ + if ((a > 0 && b > 0 && r <= 0) || + (a < 0 && b < 0 && r >= 0)) + errx(ERR_EXIT, "overflow"); +} + +struct val * +op_plus(struct val *a, struct val *b) +{ + struct val *r; + + assert_to_integer(a); + assert_to_integer(b); + r = make_integer(a->u.i + b->u.i); + assert_plus(a->u.i, b->u.i, r->u.i); + + free_value(a); + free_value(b); + return (r); +} + +void +assert_minus(intmax_t a, intmax_t b, intmax_t r) +{ + /* special case subtraction of INTMAX_MIN */ + if (b == INTMAX_MIN && a < 0) + errx(ERR_EXIT, "overflow"); + /* check addition of negative subtrahend */ + assert_plus(a, -b, r); +} + +struct val * +op_minus(struct val *a, struct val *b) +{ + struct val *r; + + assert_to_integer(a); + assert_to_integer(b); + r = make_integer(a->u.i - b->u.i); + assert_minus(a->u.i, b->u.i, r->u.i); + + free_value(a); + free_value(b); + return (r); +} + +void +assert_times(intmax_t a, intmax_t b, intmax_t r) +{ + /* + * if first operand is 0, no overflow is possible, + * else result of division test must match second operand + */ + if (a != 0 && r / a != b) + errx(ERR_EXIT, "overflow"); +} + +struct val * +op_times(struct val *a, struct val *b) +{ + struct val *r; + + assert_to_integer(a); + assert_to_integer(b); + r = make_integer(a->u.i * b->u.i); + assert_times(a->u.i, b->u.i, r->u.i); + + free_value(a); + free_value(b); + return (r); +} + +void +assert_div(intmax_t a, intmax_t b) +{ + if (b == 0) + errx(ERR_EXIT, "division by zero"); + /* only INTMAX_MIN / -1 causes overflow */ + if (a == INTMAX_MIN && b == -1) + errx(ERR_EXIT, "overflow"); +} + +struct val * +op_div(struct val *a, struct val *b) +{ + struct val *r; + + assert_to_integer(a); + assert_to_integer(b); + /* assert based on operands only, not on result */ + assert_div(a->u.i, b->u.i); + r = make_integer(a->u.i / b->u.i); + + free_value(a); + free_value(b); + return (r); +} + +struct val * +op_rem(struct val *a, struct val *b) +{ + struct val *r; + + assert_to_integer(a); + assert_to_integer(b); + /* pass a=1 to only check for div by zero */ + assert_div(1, b->u.i); + r = make_integer(a->u.i % b->u.i); + + free_value(a); + free_value(b); + return (r); +} + +struct val * +op_colon(struct val *a, struct val *b) +{ + regex_t rp; + regmatch_t rm[2]; + char errbuf[256]; + int eval; + struct val *v; + + /* coerce both arguments to strings */ + to_string(a); + to_string(b); + + /* compile regular expression */ + if ((eval = regcomp(&rp, b->u.s, 0)) != 0) { + regerror(eval, &rp, errbuf, sizeof(errbuf)); + errx(ERR_EXIT, "%s", errbuf); + } + + /* compare string against pattern */ + /* remember that patterns are anchored to the beginning of the line */ + if (regexec(&rp, a->u.s, (size_t)2, rm, 0) == 0 && rm[0].rm_so == 0) + if (rm[1].rm_so >= 0) { + *(a->u.s + rm[1].rm_eo) = '\0'; + v = make_str(a->u.s + rm[1].rm_so); +#ifdef __APPLE__ + v->type = string; /* 8319378 */ +#endif + + } else + v = make_integer((intmax_t)(rm[0].rm_eo - rm[0].rm_so)); + else + if (rp.re_nsub == 0) + v = make_integer((intmax_t)0); + else + v = make_str(""); + + /* free arguments and pattern buffer */ + free_value(a); + free_value(b); + regfree(&rp); + + return (v); +} diff --git a/false/Makefile b/false/Makefile deleted file mode 100644 index e6448b3..0000000 --- a/false/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = false -Install_Dir = /usr/bin - -CFILES = false.c -MANPAGES = false.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/find/Makefile b/find/Makefile deleted file mode 100644 index 7040d66..0000000 --- a/find/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -Project = find -Install_Dir = /usr/bin - -HFILES = extern.h find.h -CFILES = find.c function.c ls.c main.c misc.c operator.c option.c -YFILES = getdate.y -MANPAGES = find.1 - -Extra_CC_Flags = -Wall -Werror \ - -D__FBSDID=__RCSID -D_DARWIN_USE_64_BIT_INODE -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/find/extern.h b/find/extern.h index 6de0ad2..f4282f7 100644 --- a/find/extern.h +++ b/find/extern.h @@ -10,10 +10,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -31,7 +27,7 @@ * SUCH DAMAGE. * * @(#)extern.h 8.3 (Berkeley) 4/16/94 - * $FreeBSD: src/usr.bin/find/extern.h,v 1.24 2008/02/23 16:29:04 imp Exp $ + * $FreeBSD: src/usr.bin/find/extern.h,v 1.26 2010/12/11 08:32:16 joel Exp $ */ #include @@ -43,8 +39,7 @@ PLAN *find_formplan(char **); PLAN *not_squish(PLAN *); PLAN *or_squish(PLAN *); PLAN *paren_squish(PLAN *); -struct timeb; -time_t get_date(char *, struct timeb *); +time_t get_date(char *); struct stat; void printlong(char *, char *, struct stat *); int queryuser(char **); @@ -126,3 +121,4 @@ extern int regexp_flags; extern time_t now; extern int dotfd; extern FTS *tree; +extern int execplus_error; diff --git a/find/find.1 b/find/find.1 index 21734f1..0d5e133 100644 --- a/find/find.1 +++ b/find/find.1 @@ -12,10 +12,6 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. @@ -33,9 +29,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)find.1 8.7 (Berkeley) 5/9/95 -.\" $FreeBSD: src/usr.bin/find/find.1,v 1.87 2009/09/20 16:47:56 jilles Exp $ +.\" $FreeBSD: src/usr.bin/find/find.1,v 1.91 2011/09/28 18:53:36 ed Exp $ .\" -.Dd February 24, 2008 +.Dd September 28, 2011 .Dt FIND 1 .Os .Sh NAME @@ -181,6 +177,18 @@ This option is equivalent to the deprecated primary. .El .Sh PRIMARIES +.Pp +All primaries which take a numeric argument allow the number to be +preceded by a plus sign +.Pq Dq Li + +or a minus sign +.Pq Dq Li - . +A preceding plus sign means +.Dq more than n , +a preceding minus sign means +.Dq less than n +and neither means +.Dq exactly n . .Bl -tag -width indent .It Ic -Bmin Ar n True if the difference between the time of a file's inode creation @@ -429,12 +437,9 @@ bits match those of True if the file is contained in a file system of type .Ar type . The -.Xr sysctl 8 +.Xr lsvfs 1 command can be used to find out the types of file systems -that are available on the system: -.Pp -.Dl "sysctl vfs" -.Pp +that are available on the system. In addition, there are two pseudo-types, .Dq Li local and @@ -502,7 +507,7 @@ This primary always evaluates to true. The following information for the current file is written to standard output: its inode number, size in 512-byte blocks, file permissions, number of hard links, owner, group, size in bytes, last modification time, and pathname. -If the file is a block or character special file, the major and minor numbers +If the file is a block or character special file, the device number will be displayed instead of the size in bytes. If the file is a symbolic link, the pathname of the linked-to file will be displayed preceded by @@ -828,18 +833,6 @@ True if the file has any extended attributes. True if the file has an extended attribute with the specified .Ar name . .El -.Pp -All primaries which take a numeric argument allow the number to be -preceded by a plus sign -.Pq Dq Li + -or a minus sign -.Pq Dq Li - . -A preceding plus sign means -.Dq more than n , -a preceding minus sign means -.Dq less than n -and neither means -.Dq exactly n . .Sh OPERATORS The primaries may be combined using the following operators. The operators are listed in order of decreasing precedence. @@ -953,6 +946,7 @@ section below for details. .Xr chmod 1 , .Xr cvs 1 , .Xr locate 1 , +.Xr lsvfs 1 , .Xr whereis 1 , .Xr which 1 , .Xr xargs 1 , diff --git a/find/find.c b/find/find.c index 48bcd2d..c59a75a 100644 --- a/find/find.c +++ b/find/find.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -42,7 +38,7 @@ static char sccsid[] = "@(#)find.c 8.5 (Berkeley) 8/5/94"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/find.c,v 1.20 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/find.c,v 1.23 2010/12/11 08:32:16 joel Exp $"); #include #include @@ -317,6 +313,9 @@ find_execute(PLAN *plan, char *paths[]) } free (myPaths); finish_execplus(); + if (execplus_error) { + exit(execplus_error); + } if (errno) err(1, "fts_read"); fts_close(tree); diff --git a/find/find.h b/find/find.h index a37a613..8960a0b 100644 --- a/find/find.h +++ b/find/find.h @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -34,7 +30,7 @@ * SUCH DAMAGE. * * @(#)find.h 8.1 (Berkeley) 6/6/93 - * $FreeBSD: src/usr.bin/find/find.h,v 1.20 2008/02/23 16:29:04 imp Exp $ + * $FreeBSD: src/usr.bin/find/find.h,v 1.21 2010/12/11 08:32:16 joel Exp $ */ #include diff --git a/find/function.c b/find/function.c index 01e45ea..4e3950d 100644 --- a/find/function.c +++ b/find/function.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -41,7 +37,7 @@ static const char sccsid[] = "@(#)function.c 8.10 (Berkeley) 5/4/95"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.63 2009/09/04 20:01:16 trasz Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.71 2011/06/13 05:22:07 avatar Exp $"); #include #include @@ -50,10 +46,6 @@ __FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.63 2009/09/04 20:01:16 trasz #include #include #include -#include -#ifdef __APPLE__ -#include -#endif /* __APPLE__ */ #include #include @@ -70,16 +62,17 @@ __FBSDID("$FreeBSD: src/usr.bin/find/function.c,v 1.63 2009/09/04 20:01:16 trasz #include #include -#include "find.h" - #ifdef __APPLE__ #include +#include #include #include #else #define COMPAT_MODE(func, mode) 1 #endif +#include "find.h" + static PLAN *palloc(OPTION *); static long long find_parsenum(PLAN *, const char *, char *, char *); static long long find_parsetime(PLAN *, const char *, char *); @@ -88,6 +81,7 @@ static char *nextarg(OPTION *, char ***); extern char **environ; static PLAN *lastexecplus = NULL; +int execplus_error; #define COMPARE(a, b) do { \ switch (plan->flags & F_ELG_MASK) { \ @@ -622,7 +616,7 @@ f_empty(PLAN *plan __unused, FTSENT *entry) empty = 1; dir = opendir(entry->fts_accpath); if (dir == NULL) - err(1, "%s", entry->fts_accpath); + return 0; for (dp = readdir(dir); dp; dp = readdir(dir)) if (dp->d_name[0] != '.' || (dp->d_name[1] != '\0' && @@ -726,8 +720,10 @@ doexec: if ((plan->flags & F_NEEDOK) && !queryuser(plan->e_argv)) plan->e_psize = plan->e_pbsize; } pid = waitpid(pid, &status, 0); - if (plan->flags & F_EXECPLUS && WIFEXITED(status) && WEXITSTATUS(status)) - _exit(WEXITSTATUS(status)); + if (plan->flags & F_EXECPLUS && WIFEXITED(status) && WEXITSTATUS(status) && !execplus_error) { + /* Test 140 (8907531, 10656525) */ + execplus_error = WEXITSTATUS(status); + } return (pid != -1 && WIFEXITED(status) && !WEXITSTATUS(status)); } @@ -834,7 +830,7 @@ done: *argvp = argv + 1; /* Finish any pending -exec ... {} + functions. */ void -finish_execplus() +finish_execplus(void) { PLAN *p; @@ -915,7 +911,8 @@ f_fstype(PLAN *plan, FTSENT *entry) static dev_t curdev; /* need a guaranteed illegal dev value */ static int first = 1; struct statfs sb; - static int val_type, val_flags; + static int val_flags; + static char fstype[sizeof(sb.f_fstypename)]; char *p, save[2] = {0,0}; if ((plan->flags & F_MTMASK) == F_MTUNKNOWN) @@ -957,13 +954,13 @@ f_fstype(PLAN *plan, FTSENT *entry) * always copy both of them. */ val_flags = sb.f_flags; - val_type = sb.f_type; + strlcpy(fstype, sb.f_fstypename, sizeof(fstype)); } switch (plan->flags & F_MTMASK) { case F_MTFLAG: return val_flags & plan->mt_data; case F_MTTYPE: - return val_type == plan->mt_data; + return (strncmp(fstype, plan->c_data, sizeof(fstype)) == 0); default: abort(); } @@ -974,22 +971,11 @@ c_fstype(OPTION *option, char ***argvp) { char *fsname; PLAN *new; - struct vfsconf vfc; fsname = nextarg(option, argvp); ftsoptions &= ~FTS_NOSTAT; new = palloc(option); - - /* - * Check first for a filesystem name. - */ - if (getvfsbyname(fsname, &vfc) == 0) { - new->flags |= F_MTTYPE; - new->mt_data = vfc.vfc_typenum; - return new; - } - switch (*fsname) { case 'l': if (!strcmp(fsname, "local")) { @@ -1007,12 +993,8 @@ c_fstype(OPTION *option, char ***argvp) break; } - /* - * We need to make filesystem checks for filesystems - * that exists but aren't in the kernel work. - */ - fprintf(stderr, "Warning: Unknown filesystem type %s\n", fsname); - new->flags |= F_MTUNKNOWN; + new->flags |= F_MTTYPE; + new->c_data = fsname; return new; } @@ -1221,7 +1203,7 @@ c_newer(OPTION *option, char ***argvp) new = palloc(option); /* compare against what */ if (option->flags & F_TIME2_T) { - new->t_data = get_date(fn_or_tspec, (struct timeb *) 0); + new->t_data = get_date(fn_or_tspec); if (new->t_data == (time_t) -1) errx(1, "Can't parse date/time: %s", fn_or_tspec); } else { @@ -1231,6 +1213,8 @@ c_newer(OPTION *option, char ***argvp) new->t_data = sb.st_ctime; else if (option->flags & F_TIME2_A) new->t_data = sb.st_atime; + else if (option->flags & F_TIME2_B) + new->t_data = sb.st_birthtime; else new->t_data = sb.st_mtime; } diff --git a/find/getdate.y b/find/getdate.y index 1e56080..5a97c2c 100644 --- a/find/getdate.y +++ b/find/getdate.y @@ -13,7 +13,7 @@ /* SUPPRESS 288 on yyerrlab *//* Label unused */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/getdate.y,v 1.6 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/getdate.y,v 1.7 2010/02/09 21:24:41 ed Exp $"); #include #include @@ -28,7 +28,6 @@ __FBSDID("$FreeBSD: src/usr.bin/find/getdate.y,v 1.6 2009/12/13 03:14:06 delphij #else /* defined(vms) */ # include # include -# include #endif /* !defined(vms) */ #if defined (__STDC__) || defined (USG) @@ -69,7 +68,7 @@ static int yyparse(void); static int yylex(void); static int yyerror(const char *); -time_t get_date(char *, struct timeb *); +time_t get_date(char *); #define EPOCH 1970 #define HOUR(x) ((time_t)(x) * 60) @@ -849,58 +848,50 @@ difftm (struct tm *a, struct tm *b) } time_t -get_date(char *p, struct timeb *now) +get_date(char *p) { - struct tm *tm, gmt; - struct timeb ftz; + struct tm *tm, *gmt_ptr, gmt; + int tzoff; time_t Start; time_t tod; time_t nowtime; bzero (&gmt, sizeof(struct tm)); yyInput = p; - if (now == NULL) { - struct tm *gmt_ptr; - now = &ftz; - (void)time (&nowtime); + (void)time (&nowtime); - gmt_ptr = gmtime (&nowtime); - if (gmt_ptr != NULL) - { - /* Make a copy, in case localtime modifies *tm (I think - that comment now applies to *gmt_ptr, but I am too - lazy to dig into how gmtime and locatime allocate the - structures they return pointers to). */ - gmt = *gmt_ptr; - } + gmt_ptr = gmtime (&nowtime); + if (gmt_ptr != NULL) + { + /* Make a copy, in case localtime modifies *tm (I think + that comment now applies to *gmt_ptr, but I am too + lazy to dig into how gmtime and locatime allocate the + structures they return pointers to). */ + gmt = *gmt_ptr; + } - if (! (tm = localtime (&nowtime))) - return -1; + if (! (tm = localtime (&nowtime))) + return -1; - if (gmt_ptr != NULL) - ftz.timezone = difftm (&gmt, tm) / 60; - else - /* We are on a system like VMS, where the system clock is - in local time and the system has no concept of timezones. - Hopefully we can fake this out (for the case in which the - user specifies no timezone) by just saying the timezone - is zero. */ - ftz.timezone = 0; - - if(tm->tm_isdst) - ftz.timezone += 60; - } + if (gmt_ptr != NULL) + tzoff = difftm (&gmt, tm) / 60; else - { - nowtime = now->time; - } + /* We are on a system like VMS, where the system clock is + in local time and the system has no concept of timezones. + Hopefully we can fake this out (for the case in which the + user specifies no timezone) by just saying the timezone + is zero. */ + tzoff = 0; + + if(tm->tm_isdst) + tzoff += 60; tm = localtime(&nowtime); yyYear = tm->tm_year + 1900; yyMonth = tm->tm_mon + 1; yyDay = tm->tm_mday; - yyTimezone = now->timezone; + yyTimezone = tzoff; yyDSTmode = DSTmaybe; yyHour = 0; yyMinutes = 0; @@ -956,7 +947,7 @@ main(int ac, char *av[]) (void)printf("Enter date, or blank line to exit.\n\t> "); (void)fflush(stdout); while (gets(buff) && buff[0]) { - d = get_date(buff, (struct timeb *)NULL); + d = get_date(buff); if (d == -1) (void)printf("Bad format - couldn't convert.\n"); else diff --git a/find/ls.c b/find/ls.c index 5e62da8..f58d969 100644 --- a/find/ls.c +++ b/find/ls.c @@ -10,10 +10,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -38,7 +34,7 @@ static char sccsid[] = "@(#)ls.c 8.1 (Berkeley) 6/6/93"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/ls.c,v 1.19 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/ls.c,v 1.23 2011/09/28 18:53:36 ed Exp $"); #include #include @@ -79,8 +75,7 @@ printlong(char *name, char *accpath, struct stat *sb) group_from_gid(sb->st_gid, 0)); if (S_ISCHR(sb->st_mode) || S_ISBLK(sb->st_mode)) - (void)printf("%3d, %3d ", major(sb->st_rdev), - minor(sb->st_rdev)); + (void)printf("%#8jx ", (uintmax_t)sb->st_rdev); else (void)printf("%8"PRId64" ", sb->st_size); printtime(sb->st_mtime); diff --git a/find/main.c b/find/main.c index 5603517..e95e648 100644 --- a/find/main.c +++ b/find/main.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -35,7 +31,7 @@ */ #ifndef lint -char copyright[] = +static const char copyright[] = "@(#) Copyright (c) 1990, 1993, 1994\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ @@ -47,7 +43,7 @@ static char sccsid[] = "@(#)main.c 8.4 (Berkeley) 5/4/95"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/main.c,v 1.18 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/main.c,v 1.23 2011/12/10 18:11:06 ed Exp $"); #include #include @@ -124,7 +120,7 @@ main(int argc, char *argv[]) break; case '?': default: - break; + usage(); } argc -= optind; diff --git a/find/misc.c b/find/misc.c index 8245bb8..d6b1123 100644 --- a/find/misc.c +++ b/find/misc.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -42,7 +38,7 @@ static char sccsid[] = "@(#)misc.c 8.2 (Berkeley) 4/1/94"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/misc.c,v 1.10 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/misc.c,v 1.13 2010/12/11 08:32:16 joel Exp $"); #include #include diff --git a/find/operator.c b/find/operator.c index f04d12a..1aa851e 100644 --- a/find/operator.c +++ b/find/operator.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -41,7 +37,7 @@ static char sccsid[] = "@(#)operator.c 8.1 (Berkeley) 6/6/93"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/operator.c,v 1.14 2003/06/14 13:00:21 markm Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/operator.c,v 1.17 2010/12/11 08:32:16 joel Exp $"); #include diff --git a/find/option.c b/find/option.c index c99a180..5771da4 100644 --- a/find/option.c +++ b/find/option.c @@ -13,10 +13,6 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. @@ -41,7 +37,7 @@ static char sccsid[] = "@(#)option.c 8.2 (Berkeley) 4/16/94"; #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/usr.bin/find/option.c,v 1.28 2009/12/13 03:14:06 delphij Exp $"); +__FBSDID("$FreeBSD: src/usr.bin/find/option.c,v 1.32 2011/05/27 22:14:49 jilles Exp $"); #include #include @@ -55,7 +51,7 @@ __FBSDID("$FreeBSD: src/usr.bin/find/option.c,v 1.28 2009/12/13 03:14:06 delphij #include "find.h" -int typecompare(const void *, const void *); +static int typecompare(const void *, const void *); /* NB: the following table must be sorted lexically. */ /* Options listed with C++ comments are in gnu find, but not our find */ @@ -180,7 +176,7 @@ find_create(char ***argvp) argv = *argvp; if ((p = lookup_option(*argv)) == NULL) - errx(1, "%s: unknown option", *argv); + errx(1, "%s: unknown primary or operator", *argv); ++argv; new = (p->create)(p, &argv); @@ -198,7 +194,7 @@ lookup_option(const char *name) sizeof(options)/sizeof(OPTION), sizeof(OPTION), typecompare)); } -int +static int typecompare(const void *a, const void *b) { return (strcmp(((const OPTION *)a)->name, ((const OPTION *)b)->name)); diff --git a/getopt/Makefile b/getopt/Makefile deleted file mode 100644 index 2bc6c18..0000000 --- a/getopt/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = getopt -Install_Dir = /usr/bin - -CFILES = getopt.c -MANPAGES = getopt.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/hexdump/conv.c b/hexdump/conv.c new file mode 100644 index 0000000..a10baf3 --- /dev/null +++ b/hexdump/conv.c @@ -0,0 +1,182 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static const char sccsid[] = "@(#)conv.c 8.1 (Berkeley) 6/6/93"; +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/conv.c,v 1.8 2004/07/16 11:07:07 johan Exp $"); + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "hexdump.h" + +void +conv_c(PR *pr, u_char *p, size_t bufsize) +{ + char buf[10]; + char const *str; + wchar_t wc; + size_t clen, oclen; + int converr, pad, width; + char peekbuf[MB_LEN_MAX]; + + if (pr->mbleft > 0) { + str = "**"; + pr->mbleft--; + goto strpr; + } + + switch(*p) { + case '\0': + str = "\\0"; + goto strpr; + /* case '\a': */ + case '\007': + str = "\\a"; + goto strpr; + case '\b': + str = "\\b"; + goto strpr; + case '\f': + str = "\\f"; + goto strpr; + case '\n': + str = "\\n"; + goto strpr; + case '\r': + str = "\\r"; + goto strpr; + case '\t': + str = "\\t"; + goto strpr; + case '\v': + str = "\\v"; + goto strpr; + default: + break; + } + /* + * Multibyte characters are disabled for hexdump(1) for backwards + * compatibility and consistency (none of its other output formats + * recognize them correctly). + */ + converr = 0; + if (odmode && MB_CUR_MAX > 1) { + oclen = 0; +retry: + clen = mbrtowc(&wc, (const char *)p, bufsize, &pr->mbstate); + if (clen == 0) + clen = 1; + else if (clen == (size_t)-1 || (clen == (size_t)-2 && + buf == peekbuf)) { + memset(&pr->mbstate, 0, sizeof(pr->mbstate)); + wc = *p; + clen = 1; + converr = 1; + } else if (clen == (size_t)-2) { + /* + * Incomplete character; peek ahead and see if we + * can complete it. + */ + oclen = bufsize; + bufsize = peek(p = (u_char *)peekbuf, MB_CUR_MAX); + goto retry; + } + clen += oclen; + } else { + wc = *p; + clen = 1; + } + if (!converr && iswprint(wc)) { + if (!odmode) { + *pr->cchar = 'c'; + (void)printf(pr->fmt, (int)wc); + } else { + *pr->cchar = 'C'; + assert(strcmp(pr->fmt, "%3C") == 0); + width = wcwidth(wc); + assert(width > 0); + pad = 3 - width; + if (pad < 0) + pad = 0; + (void)printf("%*s%C", pad, "", wc); + pr->mbleft = clen - 1; + } + } else { + (void)sprintf(buf, "%03o", (int)*p); + str = buf; +strpr: *pr->cchar = 's'; + (void)printf(pr->fmt, str); + } +} + +void +conv_u(PR *pr, u_char *p) +{ + static char const * list[] = { + "nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel", + "bs", "ht", "lf", "vt", "ff", "cr", "so", "si", + "dle", "dc1", "dc2", "dc3", "dc4", "nak", "syn", "etb", + "can", "em", "sub", "esc", "fs", "gs", "rs", "us", + }; + + /* od used nl, not lf */ + if (*p <= 0x1f) { + *pr->cchar = 's'; + if (odmode && *p == 0x0a) + (void)printf(pr->fmt, "nl"); + else + (void)printf(pr->fmt, list[*p]); + } else if (*p == 0x7f) { + *pr->cchar = 's'; + (void)printf(pr->fmt, "del"); + } else if (odmode && *p == 0x20) { /* od replaced space with sp */ + *pr->cchar = 's'; + (void)printf(pr->fmt, " sp"); + } else if (isprint(*p)) { + *pr->cchar = 'c'; + (void)printf(pr->fmt, *p); + } else { + *pr->cchar = 'x'; + (void)printf(pr->fmt, (int)*p); + } +} diff --git a/hexdump/display.c b/hexdump/display.c new file mode 100644 index 0000000..c0070a1 --- /dev/null +++ b/hexdump/display.c @@ -0,0 +1,412 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)display.c 8.1 (Berkeley) 6/6/93"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/display.c,v 1.19 2004/07/11 01:11:12 tjr Exp $"); + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include "hexdump.h" + +enum _vflag vflag = FIRST; + +static off_t address; /* address/offset in stream */ +static off_t eaddress; /* end address */ + +static __inline void print(PR *, u_char *); + +void +display(void) +{ + FS *fs; + FU *fu; + PR *pr; + int cnt; + u_char *bp; + off_t saveaddress; + u_char savech=0, *savebp; + + while ((bp = get())) + for (fs = fshead, savebp = bp, saveaddress = address; fs; + fs = fs->nextfs, bp = savebp, address = saveaddress) + for (fu = fs->nextfu; fu; fu = fu->nextfu) { + if (fu->flags&F_IGNORE) + break; + for (cnt = fu->reps; cnt; --cnt) + for (pr = fu->nextpr; pr; address += pr->bcnt, + bp += pr->bcnt, pr = pr->nextpr) { + if (eaddress && address >= eaddress && + !(pr->flags & (F_TEXT|F_BPAD))) + bpad(pr); + if (cnt == 1 && pr->nospace) { + savech = *pr->nospace; + *pr->nospace = '\0'; + } + print(pr, bp); + if (cnt == 1 && pr->nospace) + *pr->nospace = savech; + } + } + if (endfu) { + /* + * If eaddress not set, error or file size was multiple of + * blocksize, and no partial block ever found. + */ + if (!eaddress) { + if (!address) { + return; + } + eaddress = address; + } + for (pr = endfu->nextpr; pr; pr = pr->nextpr) + switch(pr->flags) { + case F_ADDRESS: + (void)printf(pr->fmt, (quad_t)eaddress); + break; + case F_TEXT: + (void)printf("%s", pr->fmt); + break; + default: + break; + } + } +} + +static __inline void +print(PR *pr, u_char *bp) +{ + long double ldbl; + double f8; + float f4; + int16_t s2; + int8_t s8; + int32_t s4; + u_int16_t u2; + u_int32_t u4; + u_int64_t u8; + + switch(pr->flags) { + case F_ADDRESS: + (void)printf(pr->fmt, (quad_t)address); + break; + case F_BPAD: + (void)printf(pr->fmt, ""); + break; + case F_C: + conv_c(pr, bp, eaddress ? eaddress - address : + blocksize - address % blocksize); + break; + case F_CHAR: + (void)printf(pr->fmt, *bp); + break; + case F_DBL: + switch(pr->bcnt) { + case 4: + bcopy(bp, &f4, sizeof(f4)); + (void)printf(pr->fmt, f4); + break; + case 8: + bcopy(bp, &f8, sizeof(f8)); + (void)printf(pr->fmt, f8); + break; + default: + if (pr->bcnt == sizeof(long double)) { + bcopy(bp, &ldbl, sizeof(ldbl)); + (void)printf(pr->fmt, ldbl); + } + break; + } + break; + case F_INT: + switch(pr->bcnt) { + case 1: + (void)printf(pr->fmt, (quad_t)(signed char)*bp); + break; + case 2: + bcopy(bp, &s2, sizeof(s2)); + (void)printf(pr->fmt, (quad_t)s2); + break; + case 4: + bcopy(bp, &s4, sizeof(s4)); + (void)printf(pr->fmt, (quad_t)s4); + break; + case 8: + bcopy(bp, &s8, sizeof(s8)); + (void)printf(pr->fmt, s8); + break; + } + break; + case F_P: + (void)printf(pr->fmt, isprint(*bp) && isascii(*bp) ? *bp : '.'); + break; + case F_STR: + (void)printf(pr->fmt, (char *)bp); + break; + case F_TEXT: + (void)printf("%s", pr->fmt); + break; + case F_U: + conv_u(pr, bp); + break; + case F_UINT: + switch(pr->bcnt) { + case 1: + (void)printf(pr->fmt, (u_quad_t)*bp); + break; + case 2: + bcopy(bp, &u2, sizeof(u2)); + (void)printf(pr->fmt, (u_quad_t)u2); + break; + case 4: + bcopy(bp, &u4, sizeof(u4)); + (void)printf(pr->fmt, (u_quad_t)u4); + break; + case 8: + bcopy(bp, &u8, sizeof(u8)); + (void)printf(pr->fmt, u8); + break; + } + break; + } +} + +void +bpad(PR *pr) +{ + static char const *spec = " -0+#"; + char *p1, *p2; + + /* + * Remove all conversion flags; '-' is the only one valid + * with %s, and it's not useful here. + */ + pr->flags = F_BPAD; + pr->cchar[0] = 's'; + pr->cchar[1] = '\0'; + for (p1 = pr->fmt; *p1 != '%'; ++p1); + for (p2 = ++p1; *p1 && index(spec, *p1); ++p1); + while ((*p2++ = *p1++)); +} + +static char **_argv; + +u_char * +get(void) +{ + static int ateof = 1; + static u_char *curp, *savp; + int n; + int need, nread; + int valid_save = 0; + u_char *tmpp; + + if (!curp) { + if ((curp = calloc(1, blocksize)) == NULL) + err(1, NULL); + if ((savp = calloc(1, blocksize)) == NULL) + err(1, NULL); + } else { + tmpp = curp; + curp = savp; + savp = tmpp; + address += blocksize; + valid_save = 1; + } + for (need = blocksize, nread = 0;;) { + /* + * if read the right number of bytes, or at EOF for one file, + * and no other files are available, zero-pad the rest of the + * block and set the end flag. + */ + if (!length || (ateof && !next((char **)NULL))) { + if (odmode && address < skip) + errx(1, "cannot skip past end of input"); + if (need == blocksize) + return((u_char *)NULL); + /* + * XXX bcmp() is not quite right in the presence + * of multibyte characters. + */ + if (vflag != ALL && + valid_save && + bcmp(curp, savp, nread) == 0) { + if (vflag != DUP) + (void)printf("*\n"); + return((u_char *)NULL); + } + bzero((char *)curp + nread, need); + eaddress = address + nread; + if (length == 0) + lseek(STDIN_FILENO, ftell(stdin), SEEK_SET); /* rewind stdin for next process */ + return(curp); + } + n = fread((char *)curp + nread, sizeof(u_char), + length == -1 ? need : MIN(length, need), stdin); + if (!n) { + if (ferror(stdin)) + warn("%s", _argv[-1]); + ateof = 1; + continue; + } + ateof = 0; + if (length != -1) + length -= n; + if (!(need -= n)) { + /* + * XXX bcmp() is not quite right in the presence + * of multibyte characters. + */ + if (vflag == ALL || vflag == FIRST || + valid_save == 0 || + bcmp(curp, savp, blocksize) != 0) { + if (vflag == DUP || vflag == FIRST) + vflag = WAIT; + return(curp); + } + if (vflag == WAIT) + (void)printf("*\n"); + vflag = DUP; + address += blocksize; + need = blocksize; + nread = 0; + } + else + nread += n; + } +} + +size_t +peek(u_char *buf, size_t nbytes) +{ + size_t n, nread; + int c; + + if (length != -1 && nbytes > length) + nbytes = length; + nread = 0; + while (nread < nbytes && (c = getchar()) != EOF) { + *buf++ = c; + nread++; + } + n = nread; + while (n-- > 0) { + c = *--buf; + ungetc(c, stdin); + } + return (nread); +} + +int +next(char **argv) +{ + static int done; + int statok; + + if (argv) { + _argv = argv; + return(1); + } + for (;;) { + if (*_argv) { + if (!(freopen(*_argv, "r", stdin))) { + warn("%s", *_argv); + exitval = 1; + ++_argv; + continue; + } + statok = done = 1; + } else { + if (done++) + return(0); + statok = 0; + } + if (skip) + doskip(statok ? *_argv : "stdin", statok); + if (*_argv) + ++_argv; + if (!skip) + return(1); + } + /* NOTREACHED */ +} + +void +doskip(const char *fname, int statok) +{ + int cnt; + struct stat sb; + + if (statok) { + if (fstat(fileno(stdin), &sb)) + err(1, "%s", fname); + if (S_ISREG(sb.st_mode) && skip >= sb.st_size) { + address += sb.st_size; + skip -= sb.st_size; + return; + } + } +#ifdef __APPLE__ + /* try to seek first; fall back on ESPIPE */ + if (fseeko(stdin, skip, SEEK_SET) == 0) { +#else /* !__APPLE__ */ + if (S_ISREG(sb.st_mode)) { + if (fseeko(stdin, skip, SEEK_SET)) + err(1, "%s", fname); +#endif /* __APPLE__ */ + address += skip; + skip = 0; + } else { +#ifdef __APPLE__ + if (errno != ESPIPE) + err(1, "%s", fname); +#endif /* __APPLE__ */ + for (cnt = 0; cnt < skip; ++cnt) + if (getchar() == EOF) + break; + address += cnt; + skip -= cnt; + } +} diff --git a/hexdump/hexdump.1 b/hexdump/hexdump.1 new file mode 100644 index 0000000..6cbe418 --- /dev/null +++ b/hexdump/hexdump.1 @@ -0,0 +1,340 @@ +.\" Copyright (c) 1989, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)hexdump.1 8.2 (Berkeley) 4/18/94 +.\" $FreeBSD: src/usr.bin/hexdump/hexdump.1,v 1.21 2004/07/10 13:11:00 tjr Exp $ +.\" +.Dd July 10, 2004 +.Dt HEXDUMP 1 +.Os +.Sh NAME +.Nm hexdump +.Nd ASCII, decimal, hexadecimal, octal dump +.Sh SYNOPSIS +.Nm +.Op Fl bcCdovx +.Op Fl e Ar format_string +.Op Fl f Ar format_file +.Op Fl n Ar length +.Bk -words +.Op Fl s Ar skip +.Ek +.Ar +.Sh DESCRIPTION +The +.Nm +utility is a filter which displays the specified files, or +the standard input, if no files are specified, in a user specified +format. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl b +.Em One-byte octal display . +Display the input offset in hexadecimal, followed by sixteen +space-separated, three column, zero-filled, bytes of input data, +in octal, per line. +.It Fl C +.Em Canonical hex+ASCII display . +Display the input offset in hexadecimal, followed by sixteen +space-separated, two column, hexadecimal bytes, followed by the +same sixteen bytes in %_p format enclosed in ``|'' characters. +.It Fl c +.Em One-byte character display . +Display the input offset in hexadecimal, followed by sixteen +space-separated, three column, space-filled, characters of input +data per line. +.It Fl d +.Em Two-byte decimal display . +Display the input offset in hexadecimal, followed by eight +space-separated, five column, zero-filled, two-byte units +of input data, in unsigned decimal, per line. +.It Fl e Ar format_string +Specify a format string to be used for displaying data. +.It Fl f Ar format_file +Specify a file that contains one or more newline separated format strings. +Empty lines and lines whose first non-blank character is a hash mark +.Pf ( Cm \&# ) +are ignored. +.It Fl n Ar length +Interpret only +.Ar length +bytes of input. +.It Fl o +.Em Two-byte octal display . +Display the input offset in hexadecimal, followed by eight +space-separated, six column, zero-filled, two byte quantities of +input data, in octal, per line. +.It Fl s Ar offset +Skip +.Ar offset +bytes from the beginning of the input. +By default, +.Ar offset +is interpreted as a decimal number. +With a leading +.Cm 0x +or +.Cm 0X , +.Ar offset +is interpreted as a hexadecimal number, +otherwise, with a leading +.Cm 0 , +.Ar offset +is interpreted as an octal number. +Appending the character +.Cm b , +.Cm k , +or +.Cm m +to +.Ar offset +causes it to be interpreted as a multiple of +.Li 512 , +.Li 1024 , +or +.Li 1048576 , +respectively. +.It Fl v +Cause +.Nm +to display all input data. +Without the +.Fl v +option, any number of groups of output lines, which would be +identical to the immediately preceding group of output lines (except +for the input offsets), are replaced with a line comprised of a +single asterisk. +.It Fl x +.Em Two-byte hexadecimal display . +Display the input offset in hexadecimal, followed by eight, space +separated, four column, zero-filled, two-byte quantities of input +data, in hexadecimal, per line. +.El +.Pp +For each input file, +.Nm +sequentially copies the input to standard output, transforming the +data according to the format strings specified by the +.Fl e +and +.Fl f +options, in the order that they were specified. +.Ss Formats +A format string contains any number of format units, separated by +whitespace. +A format unit contains up to three items: an iteration count, a byte +count, and a format. +.Pp +The iteration count is an optional positive integer, which defaults to +one. +Each format is applied iteration count times. +.Pp +The byte count is an optional positive integer. +If specified it defines the number of bytes to be interpreted by +each iteration of the format. +.Pp +If an iteration count and/or a byte count is specified, a single slash +must be placed after the iteration count and/or before the byte count +to disambiguate them. +Any whitespace before or after the slash is ignored. +.Pp +The format is required and must be surrounded by double quote +(" ") marks. +It is interpreted as a fprintf-style format string (see +.Xr fprintf 3 ) , +with the +following exceptions: +.Bl -bullet -offset indent +.It +An asterisk (*) may not be used as a field width or precision. +.It +A byte count or field precision +.Em is +required for each ``s'' conversion +character (unlike the +.Xr fprintf 3 +default which prints the entire string if the precision is unspecified). +.It +The conversion characters ``h'', ``l'', ``n'', ``p'' and ``q'' are +not supported. +.It +The single character escape sequences +described in the C standard are supported: +.Bd -ragged -offset indent -compact +.Bl -column +.It "NUL \e0 +.It " \ea +.It " \eb +.It " \ef +.It " \en +.It " \er +.It " \et +.It " \ev +.El +.Ed +.El +.Pp +The +.Nm +utility also supports the following additional conversion strings: +.Bl -tag -width Fl +.It Cm \&_a Ns Op Cm dox +Display the input offset, cumulative across input files, of the +next byte to be displayed. +The appended characters +.Cm d , +.Cm o , +and +.Cm x +specify the display base +as decimal, octal or hexadecimal respectively. +.It Cm \&_A Ns Op Cm dox +Identical to the +.Cm \&_a +conversion string except that it is only performed +once, when all of the input data has been processed. +.It Cm \&_c +Output characters in the default character set. +Nonprinting characters are displayed in three character, zero-padded +octal, except for those representable by standard escape notation +(see above), +which are displayed as two character strings. +.It Cm _p +Output characters in the ASCII character set. +Non-ASCII characters are displayed as a single +.Dq Cm \&. . +.It Cm _u +Output US +.Tn ASCII +characters, with the exception that control characters are +displayed using the following, lower-case, names. +Characters greater than 0xff, hexadecimal, are displayed as hexadecimal +strings. +.Bl -column \&000_nu \&001_so \&002_st \&003_et \&004_eo +.It "\&000\ NUL\t001\ SOH\t002\ STX\t003\ ETX\t004\ EOT\t005\ ENQ +.It "\&006\ ACK\t007\ BEL\t008\ BS\t009\ HT\t00A\ LF\t00B\ VT +.It "\&00C\ FF\t00D\ CR\t00E\ SO\t00F\ SI\t010\ DLE\t011\ DC1 +.It "\&012\ DC2\t013\ DC3\t014\ DC4\t015\ NAK\t016\ SYN\t017\ ETB +.It "\&018\ CAN\t019\ EM\t01A\ SUB\t01B\ ESC\t01C\ FS\t01D\ GS +.It "\&01E\ RS\t01F\ US\t0FF\ DEL +.El +.El +.Pp +The default and supported byte counts for the conversion characters +are as follows: +.Bl -tag -width "Xc,_Xc,_Xc,_Xc,_Xc,_Xc" -offset indent +.It Li \&%_c , \&%_p , \&%_u , \&%c +One byte counts only. +.It Xo +.Li \&%d , \&%i , \&%o , +.Li \&%u , \&%X , \&%x +.Xc +Four byte default, one, two and four byte counts supported. +.It Xo +.Li \&%E , \&%e , \&%f , +.Li \&%G , \&%g +.Xc +Eight byte default, four and twelve byte counts supported. +.El +.Pp +The amount of data interpreted by each format string is the sum of the +data required by each format unit, which is the iteration count times the +byte count, or the iteration count times the number of bytes required by +the format if the byte count is not specified. +.Pp +The input is manipulated in ``blocks'', where a block is defined as the +largest amount of data specified by any format string. +Format strings interpreting less than an input block's worth of data, +whose last format unit both interprets some number of bytes and does +not have a specified iteration count, have the iteration count +incremented until the entire input block has been processed or there +is not enough data remaining in the block to satisfy the format string. +.Pp +If, either as a result of user specification or +.Nm +modifying +the iteration count as described above, an iteration count is +greater than one, no trailing whitespace characters are output +during the last iteration. +.Pp +It is an error to specify a byte count as well as multiple conversion +characters or strings unless all but one of the conversion characters +or strings is +.Cm \&_a +or +.Cm \&_A . +.Pp +If, as a result of the specification of the +.Fl n +option or end-of-file being reached, input data only partially +satisfies a format string, the input block is zero-padded sufficiently +to display all available data (i.e., any format units overlapping the +end of data will display some number of the zero bytes). +.Pp +Further output by such format strings is replaced by an equivalent +number of spaces. +An equivalent number of spaces is defined as the number of spaces +output by an +.Cm s +conversion character with the same field width +and precision as the original conversion character or conversion +string but with any +.Dq Li \&+ , +.Dq \&\ \& , +.Dq Li \&# +conversion flag characters +removed, and referencing a NULL string. +.Pp +If no format strings are specified, the default display is a +one-byte hexadecimal display. +.Sh DIAGNOSTICS +.Ex -std +.Sh EXAMPLES +Note that the following format strings, used with +.Fl e , +must be enclosed in single quotes. +.Pp +Display the input in perusal format: +.Bd -literal -offset indent +"%06.6_ao " 12/1 "%3_u " +"\et\et" "%_p " +"\en" +.Ed +.Pp +Implement the \-x option: +.Bd -literal -offset indent +"%07.7_Ax\en" +"%07.7_ax " 8/2 "%04x " "\en" +.Ed +.Sh SEE ALSO +.Xr gdb 1 , +.Xr od 1 diff --git a/hexdump/hexdump.c b/hexdump/hexdump.c new file mode 100644 index 0000000..78df723 --- /dev/null +++ b/hexdump/hexdump.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static const char copyright[] = +"@(#) Copyright (c) 1989, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)hexdump.c 8.1 (Berkeley) 6/6/93"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/hexdump.c,v 1.7 2002/09/04 23:29:01 dwmalone Exp $"); + +#include +#include +#include +#include +#include +#include "hexdump.h" + +FS *fshead; /* head of format strings */ +int blocksize; /* data block size */ +int exitval; /* final exit value */ +int length = -1; /* max bytes to read */ + +int +main(int argc, char *argv[]) +{ + FS *tfs; + char *p; + + (void)setlocale(LC_ALL, ""); + + if (!(p = rindex(argv[0], 'o')) || strcmp(p, "od")) + newsyntax(argc, &argv); + else + oldsyntax(argc, &argv); + + /* figure out the data block size */ + for (blocksize = 0, tfs = fshead; tfs; tfs = tfs->nextfs) { + tfs->bcnt = size(tfs); + if (blocksize < tfs->bcnt) + blocksize = tfs->bcnt; + } + /* rewrite the rules, do syntax checking */ + for (tfs = fshead; tfs; tfs = tfs->nextfs) + rewrite(tfs); + + (void)next(argv); + display(); + exit(exitval); +} diff --git a/hexdump/hexdump.h b/hexdump/hexdump.h new file mode 100644 index 0000000..a984287 --- /dev/null +++ b/hexdump/hexdump.h @@ -0,0 +1,108 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)hexdump.h 8.1 (Berkeley) 6/6/93 + * $FreeBSD: src/usr.bin/hexdump/hexdump.h,v 1.9 2004/07/11 01:11:12 tjr Exp $ + */ + +#include + +typedef struct _pr { + struct _pr *nextpr; /* next print unit */ +#define F_ADDRESS 0x001 /* print offset */ +#define F_BPAD 0x002 /* blank pad */ +#define F_C 0x004 /* %_c */ +#define F_CHAR 0x008 /* %c */ +#define F_DBL 0x010 /* %[EefGf] */ +#define F_INT 0x020 /* %[di] */ +#define F_P 0x040 /* %_p */ +#define F_STR 0x080 /* %s */ +#define F_U 0x100 /* %_u */ +#define F_UINT 0x200 /* %[ouXx] */ +#define F_TEXT 0x400 /* no conversions */ + u_int flags; /* flag values */ + int bcnt; /* byte count */ + char *cchar; /* conversion character */ + char *fmt; /* printf format */ + char *nospace; /* no whitespace version */ + int mbleft; /* bytes left of multibyte char. */ + mbstate_t mbstate; /* conversion state */ +} PR; + +typedef struct _fu { + struct _fu *nextfu; /* next format unit */ + struct _pr *nextpr; /* next print unit */ +#define F_IGNORE 0x01 /* %_A */ +#define F_SETREP 0x02 /* rep count set, not default */ + u_int flags; /* flag values */ + int reps; /* repetition count */ + int bcnt; /* byte count */ + char *fmt; /* format string */ +} FU; + +typedef struct _fs { /* format strings */ + struct _fs *nextfs; /* linked list of format strings */ + struct _fu *nextfu; /* linked list of format units */ + int bcnt; +} FS; + +extern FS *fshead; /* head of format strings list */ +extern FU *endfu; /* format at end-of-data */ +extern int blocksize; /* data block size */ +extern int exitval; /* final exit value */ +extern int odmode; /* are we acting as od(1)? */ +extern int length; /* amount of data to read */ +extern off_t skip; /* amount of data to skip at start */ +enum _vflag { ALL, DUP, FIRST, WAIT }; /* -v values */ +extern enum _vflag vflag; + +void add(const char *); +void addfile(char *); +void badcnt(char *); +void badconv(char *); +void badfmt(const char *); +void badsfmt(void); +void bpad(PR *); +void conv_c(PR *, u_char *, size_t); +void conv_u(PR *, u_char *); +void display(void); +void doskip(const char *, int); +void escape(char *); +u_char *get(void); +void newsyntax(int, char ***); +int next(char **); +void nomem(void); +void oldsyntax(int, char ***); +size_t peek(u_char *, size_t); +void rewrite(FS *); +int size(FS *); +void usage(void); diff --git a/hexdump/hexsyntax.c b/hexdump/hexsyntax.c new file mode 100644 index 0000000..9961f2f --- /dev/null +++ b/hexdump/hexsyntax.c @@ -0,0 +1,147 @@ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)hexsyntax.c 8.2 (Berkeley) 5/4/95"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/hexsyntax.c,v 1.12 2002/09/04 23:29:01 dwmalone Exp $"); + +#include + +#include +#include +#include +#include +#include + +#include "hexdump.h" + +off_t skip; /* bytes to skip */ + +void +newsyntax(int argc, char ***argvp) +{ + int ch; + char *p, **argv; + + argv = *argvp; + if ((p = rindex(argv[0], 'h')) != NULL && + strcmp(p, "hd") == 0) { + /* "Canonical" format, implies -C. */ + add("\"%08.8_Ax\n\""); + add("\"%08.8_ax \" 8/1 \"%02x \" \" \" 8/1 \"%02x \" "); + add("\" |\" 16/1 \"%_p\" \"|\\n\""); + } + while ((ch = getopt(argc, argv, "bcCde:f:n:os:vx")) != -1) + switch (ch) { + case 'b': + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 16/1 \"%03o \" \"\\n\""); + break; + case 'c': + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 16/1 \"%3_c \" \"\\n\""); + break; + case 'C': + add("\"%08.8_Ax\n\""); + add("\"%08.8_ax \" 8/1 \"%02x \" \" \" 8/1 \"%02x \" "); + add("\" |\" 16/1 \"%_p\" \"|\\n\""); + break; + case 'd': + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 8/2 \" %05u \" \"\\n\""); + break; + case 'e': + add(optarg); + break; + case 'f': + addfile(optarg); + break; + case 'n': + if ((length = atoi(optarg)) < 0) + errx(1, "%s: bad length value", optarg); + break; + case 'o': + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 8/2 \" %06o \" \"\\n\""); + break; + case 's': + if ((skip = strtoll(optarg, &p, 0)) < 0) + errx(1, "%s: bad skip value", optarg); + switch(*p) { + case 'b': + skip *= 512; + break; + case 'k': + skip *= 1024; + break; + case 'm': + skip *= 1048576; + break; + case 'g': + skip *= 1073741824; + break; + } + break; + case 'v': + vflag = ALL; + break; + case 'x': + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 8/2 \" %04x \" \"\\n\""); + break; + case '?': + usage(); + } + + if (!fshead) { + add("\"%07.7_Ax\n\""); + add("\"%07.7_ax \" 16/1 \"%02x \" \"\\n\""); + } + + *argvp += optind; +} + +void +usage(void) +{ + (void)fprintf(stderr, "%s\n%s\n%s\n%s\n", +"usage: hexdump [-bcCdovx] [-e fmt] [-f fmt_file] [-n length]", +" [-s skip] [file ...]", +" hd [-bcdovx] [-e fmt] [-f fmt_file] [-n length]", +" [-s skip] [file ...]"); + exit(1); +} diff --git a/hexdump/od.1 b/hexdump/od.1 new file mode 100644 index 0000000..f827f6c --- /dev/null +++ b/hexdump/od.1 @@ -0,0 +1,267 @@ +.\" Copyright (c) 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)od.1 8.1 (Berkeley) 6/6/93 +.\" $FreeBSD: src/usr.bin/hexdump/od.1,v 1.17 2004/07/11 01:11:12 tjr Exp $ +.\" +.Dd July 11, 2004 +.Os +.Dt OD 1 +.Sh NAME +.Nm od +.Nd octal, decimal, hex, ASCII dump +.Sh SYNOPSIS +.Nm +.Op Fl aBbcDdeFfHhIiLlOosvXx +.Op Fl A Ar base +.Op Fl j Ar skip +.Op Fl N Ar length +.Op Fl t Ar type +.Sm off +.Oo +.Op Cm \&+ +.Li offset +.Op Cm \&. +.Op Cm Bb +.Oc +.Sm on +.Op Ar +.Sh DESCRIPTION +The +.Nm +utility is a filter which displays the specified files, or standard +input if no files are specified, in a user specified format. +.Pp +The options are as follows: +.Bl -tag -width ".Fl I , L , l" +.It Fl A Ar base +Specify the input address base. +.Ar base +may be one of +.Cm d , +.Cm o , +.Cm x +or +.Cm n , +which specify decimal, octal, hexadecimal +addresses or no address, respectively. +.It Fl a +Output named characters. +Equivalent to +.Fl t Ar a . +.It Fl B , o +Output octal shorts. +Equivalent to +.Fl t Ar o2 . +.It Fl b +Output octal bytes. +Equivalent to +.Fl t Ar o1 . +.It Fl c +Output C-style escaped characters. +Equivalent to +.Fl t Ar c . +.It Fl D +Output unsigned decimal ints. +Equivalent to +.Fl t Ar u4 . +.It Fl e , F +Output double-precision floating point numbers. +Equivalent to +.Fl t Ar fD . +.It Fl f +Output single-precision floating point numbers. +Equivalent to +.Fl t Ar fF . +.It Fl H , X +Output hexadecimal ints. +Equivalent to +.Fl t Ar x4 . +.It Fl h , x +Output hexadecimal shorts. +Equivalent to +.Fl t Ar x2 . +.It Fl I , L , l +Output signed decimal longs. +Equivalent to +.Fl t Ar dL . +.It Fl i +Output signed decimal ints. +Equivalent to +.Fl t Ar dI . +.It Fl j Ar skip +Skip +.Ar skip +bytes of the combined input before dumping. +The number may be followed by one +of +.Cm b , k +or +.Cm m +which specify the units of the number as blocks (512 bytes), kilobytes and +megabytes, respectively. +.It Fl N Ar length +Dump at most +.Ar length +bytes of input. +.It Fl O +Output octal ints. +Equivalent to +.Fl t Ar o4 . +.It Fl s +Output signed decimal shorts. +Equivalent to +.Fl t Ar d2 . +.It Fl t Ar type +Specify the output format. +.Ar type +is a string containing one or more of the following kinds of type specifiers: +.Bl -tag -width indent +.It Cm a +Named characters +.Pq Tn ASCII . +Control characters are displayed using the following names: +.Bl -column "000 NUL" "001 SOH" "002 STX" "003 ETX" "004 EOT" "005 ENQ" +.It "000 NUL 001 SOH 002 STX 003 ETX 004 EOT 005 ENQ" +.It "006 ACK 007 BEL 008 BS 009 HT 00a NL 00b VT" +.It "00c FF 00d CR 00e SO 00f SI 010 DLE 011 DC1" +.It "012 DC2 013 DC3 014 DC4 015 NAK 016 SYN 017 ETB" +.It "018 CAN 019 EM 01a SUB 01b ESC 01c FS 01d GS" +.It "01e RS 01f US 020 SP 0ff DEL" +.El +.It Cm c +Characters in the default character set. +Non-printing characters are +represented as 3-digit octal character codes, except the following +characters, which are represented as C escapes: +.Pp +.Bl -tag -width carriage-return -compact +.It NUL +\e0 +.It alert +\ea +.It backspace +\eb +.It newline +\en +.It carriage-return +\er +.It tab +\et +.It vertical tab +\ev +.El +.Pp +Multi-byte characters are displayed in the area corresponding to the first +byte of the character. The remaining bytes are shown as +.Ql ** . +.It Xo +.Sm off +.Op Cm d | o | u | x +.Op Cm C | S | I | L | Ar n +.Sm on +.Xc +Signed decimal +.Pq Cm d , +octal +.Pq Cm o , +unsigned decimal +.Pq Cm u +or +hexadecimal +.Pq Cm x . +Followed by an optional size specifier, which may be either +.Cm C +.Pq Vt char , +.Cm S +.Pq Vt short , +.Cm I +.Pq Vt int , +.Cm L +.Pq Vt long , +or a byte count as a decimal integer. +.It Xo +.Sm off +.Cm f +.Op Cm F | D | L | Ar n +.Sm on +.Xc +Floating-point number. +Followed by an optional size specifier, which may be either +.Cm F +.Pq Vt float , +.Cm D +.Pq Vt double +or +.Cm L +.Pq Vt "long double" . +.El +.It Fl v +Write all input data, instead of replacing lines of duplicate values with a +.Ql * . +.El +.Pp +Multiple options that specify output format may be used; the output will +contain one line for each format. +.Pp +If no output format is specified, +.Fl t Ar oS +is assumed. +.Sh ENVIRONMENT +The +.Ev LANG , LC_ALL +and +.Ev LC_CTYPE +environment variables affect the execution of +.Nm +as described in +.Xr environ 7 . +.Sh DIAGNOSTICS +.Ex -std +.Sh COMPATIBILITY +The traditional +.Fl s +option to extract string constants is not supported; consider using +.Xr strings 1 +instead. +.Sh SEE ALSO +.Xr hexdump 1 , +.Xr strings 1 +.Sh STANDARDS +The +.Nm +utility conforms to +.St -p1003.1-2001 . +.Sh HISTORY +An +.Nm +command appeared in +.At v1 . diff --git a/hexdump/odsyntax.c b/hexdump/odsyntax.c new file mode 100644 index 0000000..6b9202e --- /dev/null +++ b/hexdump/odsyntax.c @@ -0,0 +1,447 @@ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)odsyntax.c 8.2 (Berkeley) 5/4/95"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/odsyntax.c,v 1.16 2002/09/04 23:29:01 dwmalone Exp $"); + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hexdump.h" + +#define PADDING " " + +int odmode; + +static void odadd(const char *); +static void odformat(const char *); +static const char *odformatfp(char, const char *); +static const char *odformatint(char, const char *); +static void odoffset(int, char ***); +static void odusage(void); + +void +oldsyntax(int argc, char ***argvp) +{ + static char _n[] = "%_n", padding[] = PADDING; + int ch; + char **argv, *end; + + /* Add initial (default) address format. -A may change it later. */ +#define TYPE_OFFSET 7 + add("\"%07.7_Ao\n\""); + add("\"%07.7_ao \""); + + odmode = 1; + argv = *argvp; + while ((ch = getopt(argc, argv, "A:aBbcDdeFfHhIij:LlN:Oost:vXx")) != -1) + switch (ch) { + case 'A': + switch (*optarg) { + case 'd': case 'o': case 'x': + fshead->nextfu->fmt[TYPE_OFFSET] = *optarg; + fshead->nextfs->nextfu->fmt[TYPE_OFFSET] = + *optarg; + break; + case 'n': + fshead->nextfu->fmt = _n; /* mimic regular output */ + fshead->nextfs->nextfu->fmt = padding; + break; + default: + errx(1, "%s: invalid address base", optarg); + } + break; + case 'a': + odformat("a"); + break; + case 'B': + case 'o': + odformat("o2"); + break; + case 'b': + odformat("o1"); + break; + case 'c': + odformat("c"); + break; + case 'd': + odformat("u2"); + break; + case 'D': + odformat("u4"); + break; + case 'e': /* undocumented in od */ + case 'F': + odformat("fD"); + break; + case 'f': + odformat("fF"); + break; + case 'H': + case 'X': + odformat("x4"); + break; + case 'h': + case 'x': + odformat("x2"); + break; + case 'I': + case 'L': + case 'l': + odformat("dL"); + break; + case 'i': + odformat("dI"); + break; + case 'j': + errno = 0; + skip = strtoll(optarg, &end, 0); + if (*end == 'b') + skip *= 512; + else if (*end == 'k') + skip *= 1024; + else if (*end == 'm') + skip *= 1048576L; + else if (*end == 'g') + skip *= 1073741824; + else if (*end != '\0') + skip = -1; + if (errno != 0 || skip < 0 || strlen(end) > 1) + errx(1, "%s: invalid skip amount", optarg); + break; + case 'N': + if ((length = atoi(optarg)) <= 0) + errx(1, "%s: invalid length", optarg); + break; + case 'O': + odformat("o4"); + break; + case 's': + odformat("d2"); + break; + case 't': + odformat(optarg); + break; + case 'v': + vflag = ALL; + break; + case '?': + default: + odusage(); + } + + if (fshead->nextfs->nextfs == NULL) + odformat("oS"); + + argc -= optind; + *argvp += optind; + + if (argc) + odoffset(argc, argvp); +} + +static void +odusage(void) +{ + + fprintf(stderr, +"usage: od [-aBbcDdeFfHhIiLlOosvXx] [-A base] [-j skip] [-N length] [-t type]\n"); + fprintf(stderr, +" [[+]offset[.][Bb]] [file ...]\n"); + exit(1); +} + +static void +odoffset(int argc, char ***argvp) +{ + unsigned char *p, *q, *num, *end; + int base; + + /* + * The offset syntax of od(1) was genuinely bizarre. First, if + * it started with a plus it had to be an offset. Otherwise, if + * there were at least two arguments, a number or lower-case 'x' + * followed by a number makes it an offset. By default it was + * octal; if it started with 'x' or '0x' it was hex. If it ended + * in a '.', it was decimal. If a 'b' or 'B' was appended, it + * multiplied the number by 512 or 1024 byte units. There was + * no way to assign a block count to a hex offset. + * + * We assume it's a file if the offset is bad. + */ + p = (unsigned char *)(argc == 1 ? (*argvp)[0] : (*argvp)[1]); + + if (*p != '+' && (argc < 2 || + (!isdigit(p[0]) && (p[0] != 'x' || !isxdigit(p[1]))))) + return; + + base = 0; + /* + * skip over leading '+', 'x[0-9a-fA-f]' or '0x', and + * set base. + */ + if (p[0] == '+') + ++p; + if (p[0] == 'x' && isxdigit(p[1])) { + ++p; + base = 16; + } else if (p[0] == '0' && p[1] == 'x') { + p += 2; + base = 16; + } + + /* skip over the number */ + if (base == 16) + for (num = p; isxdigit(*p); ++p); + else + for (num = p; isdigit(*p); ++p); + + /* check for no number */ + if (num == p) + return; + q = p; + /* if terminates with a '.', base is decimal */ + if (*q == '.') { + if (base) + return; + base = 10; + q++; + } + + skip = strtoll((const char *)num, (char **)&end, base ? base : 8); + + /* if end isn't the same as p, we got a non-octal digit */ + if (end != p) { + skip = 0; + return; + } + + if (*q) { + if (*q == 'B') { + skip *= 1024; + ++p; + } else if (*q == 'b') { + skip *= 512; + ++q; + } + } + + if (*q) { + skip = 0; + return; + } + + /* + * If the offset uses a non-octal base, the base of the offset + * is changed as well. This isn't pretty, but it's easy. + */ + if (base == 16) { + fshead->nextfu->fmt[TYPE_OFFSET] = 'x'; + fshead->nextfs->nextfu->fmt[TYPE_OFFSET] = 'x'; + } else if (base == 10) { + fshead->nextfu->fmt[TYPE_OFFSET] = 'd'; + fshead->nextfs->nextfu->fmt[TYPE_OFFSET] = 'd'; + } + + /* Terminate file list. */ + (*argvp)[1] = NULL; +} + +static void +odformat(const char *fmt) +{ + char fchar; + + while (*fmt != '\0') { + switch ((fchar = *fmt++)) { + case 'a': + odadd("16/1 \"%3_u \" \"\\n\""); + break; + case 'c': + odadd("16/1 \"%3_c \" \"\\n\""); + break; + case 'o': case 'u': case 'd': case 'x': + fmt = odformatint(fchar, fmt); + break; + case 'f': + fmt = odformatfp(fchar, fmt); + break; + default: + errx(1, "%c: unrecognised format character", fchar); + } + } +} + +static const char * +odformatfp(char fchar __unused, const char *fmt) +{ + size_t isize; + int digits; + char *end, *hdfmt; + + isize = sizeof(double); + switch (*fmt) { + case 'F': + isize = sizeof(float); + fmt++; + break; + case 'D': + isize = sizeof(double); + fmt++; + break; + case 'L': + isize = sizeof(long double); + fmt++; + break; + default: + if (isdigit((unsigned char)*fmt)) { + errno = 0; + isize = (size_t)strtoul(fmt, &end, 10); + if (errno != 0 || isize == 0) + errx(1, "%s: invalid size", fmt); + fmt = (const char *)end; + } + } + switch (isize) { + case sizeof(float): + digits = FLT_DIG; + break; + case sizeof(double): + digits = DBL_DIG; + break; + default: + if (isize == sizeof(long double)) + digits = LDBL_DIG; + else + errx(1, "unsupported floating point size %lu", + (u_long)isize); + } + + asprintf(&hdfmt, "%lu/%lu \" %%%d.%de \" \"\\n\"", + 16UL / (u_long)isize, (u_long)isize, digits + 8, digits); + if (hdfmt == NULL) + err(1, NULL); + odadd(hdfmt); + free(hdfmt); + + return (fmt); +} + +static const char * +odformatint(char fchar, const char *fmt) +{ + unsigned long long n; + size_t isize; + int digits; + char *end, *hdfmt; + + isize = sizeof(int); + switch (*fmt) { + case 'C': + isize = sizeof(char); + fmt++; + break; + case 'I': + isize = sizeof(int); + fmt++; + break; + case 'L': + isize = sizeof(long); + fmt++; + break; + case 'S': + isize = sizeof(short); + fmt++; + break; + default: + if (isdigit((unsigned char)*fmt)) { + errno = 0; + isize = (size_t)strtoul(fmt, &end, 10); + if (errno != 0 || isize == 0) + errx(1, "%s: invalid size", fmt); + if (isize != sizeof(char) && isize != sizeof(short) && + isize != sizeof(int) && isize != sizeof(long)) + errx(1, "unsupported int size %lu", + (u_long)isize); + fmt = (const char *)end; + } + } + + /* + * Calculate the maximum number of digits we need to + * fit the number. Overestimate for decimal with log + * base 8. We need one extra space for signed numbers + * to store the sign. + */ + n = (1ULL << (8 * isize)) - 1; + digits = 0; + while (n != 0) { + digits++; + n >>= (fchar == 'x') ? 4 : 3; + } + if (fchar == 'd') + digits++; + asprintf(&hdfmt, "%lu/%lu \"%*s%%%s%d%c\" \"\\n\"", + 16UL / (u_long)isize, (u_long)isize, (int)(4 * isize - digits), + "", (fchar == 'd' || fchar == 'u') ? "" : "0", digits, fchar); + if (hdfmt == NULL) + err(1, NULL); + odadd(hdfmt); + free(hdfmt); + + return (fmt); +} + +static void +odadd(const char *fmt) +{ + static int needpad; + + if (needpad) + add("\""PADDING"\""); + add(fmt); + needpad = 1; +} diff --git a/hexdump/parse.c b/hexdump/parse.c new file mode 100644 index 0000000..4f81cb7 --- /dev/null +++ b/hexdump/parse.c @@ -0,0 +1,518 @@ +/* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +#if 0 +static char sccsid[] = "@(#)parse.c 8.1 (Berkeley) 6/6/93"; +#endif +#endif /* not lint */ +#include +__FBSDID("$FreeBSD: src/usr.bin/hexdump/parse.c,v 1.12 2002/09/04 23:29:01 dwmalone Exp $"); + +#include + +#include +#include +#include +#include +#include +#include +#include "hexdump.h" + +FU *endfu; /* format at end-of-data */ + +void +addfile(char *name) +{ + unsigned char *p; + FILE *fp; + int ch; + char buf[2048 + 1]; + + if ((fp = fopen(name, "r")) == NULL) + err(1, "%s", name); + while (fgets(buf, sizeof(buf), fp)) { + if (!(p = (unsigned char *)index(buf, '\n'))) { + warnx("line too long"); + while ((ch = getchar()) != '\n' && ch != EOF); + continue; + } + *p = '\0'; + for (p = (unsigned char *)buf; *p && isspace(*p); ++p); + if (!*p || *p == '#') + continue; + add((const char *)p); + } + (void)fclose(fp); +} + +void +add(const char *fmt) +{ + unsigned const char *p, *savep; + static FS **nextfs; + FS *tfs; + FU *tfu, **nextfu; + + /* start new linked list of format units */ + if ((tfs = calloc(1, sizeof(FS))) == NULL) + err(1, NULL); + if (!fshead) + fshead = tfs; + else + *nextfs = tfs; + nextfs = &tfs->nextfs; + nextfu = &tfs->nextfu; + + /* take the format string and break it up into format units */ + for (p = (unsigned const char *)fmt;;) { + /* skip leading white space */ + for (; isspace(*p); ++p); + if (!*p) + break; + + /* allocate a new format unit and link it in */ + if ((tfu = calloc(1, sizeof(FU))) == NULL) + err(1, NULL); + *nextfu = tfu; + nextfu = &tfu->nextfu; + tfu->reps = 1; + + /* if leading digit, repetition count */ + if (isdigit(*p)) { + for (savep = p; isdigit(*p); ++p); + if (!isspace(*p) && *p != '/') + badfmt(fmt); + /* may overwrite either white space or slash */ + tfu->reps = atoi((const char *)savep); + tfu->flags = F_SETREP; + /* skip trailing white space */ + for (++p; isspace(*p); ++p); + } + + /* skip slash and trailing white space */ + if (*p == '/') + while (isspace(*++p)); + + /* byte count */ + if (isdigit(*p)) { + for (savep = p; isdigit(*p); ++p); + if (!isspace(*p)) + badfmt(fmt); + tfu->bcnt = atoi((const char *)savep); + /* skip trailing white space */ + for (++p; isspace(*p); ++p); + } + + /* format */ + if (*p != '"') + badfmt(fmt); + for (savep = ++p; *p != '"';) + if (*p++ == 0) + badfmt(fmt); + if (!(tfu->fmt = malloc(p - savep + 1))) + err(1, NULL); + (void) strncpy(tfu->fmt, (const char *)savep, p - savep); + tfu->fmt[p - savep] = '\0'; + escape(tfu->fmt); + p++; + } +} + +static const char *spec = ".#-+ 0123456789"; + +int +size(FS *fs) +{ + FU *fu; + int bcnt, cursize; + unsigned char *fmt; + int prec; + + /* figure out the data block size needed for each format unit */ + for (cursize = 0, fu = fs->nextfu; fu; fu = fu->nextfu) { + if (fu->bcnt) { + cursize += fu->bcnt * fu->reps; + continue; + } + for (bcnt = prec = 0, fmt = (unsigned char *)fu->fmt; *fmt; ++fmt) { + if (*fmt != '%') + continue; + /* + * skip any special chars -- save precision in + * case it's a %s format. + */ + while (index(spec + 1, *++fmt)); + if (*fmt == '.' && isdigit(*++fmt)) { + prec = atoi((const char *)fmt); + while (isdigit(*++fmt)); + } + switch(*fmt) { + case 'c': + bcnt += 1; + break; + case 'd': case 'i': case 'o': case 'u': + case 'x': case 'X': + bcnt += 4; + break; + case 'e': case 'E': case 'f': case 'g': case 'G': + bcnt += 8; + break; + case 's': + bcnt += prec; + break; + case '_': + switch(*++fmt) { + case 'c': case 'p': case 'u': + bcnt += 1; + break; + } + } + } + cursize += bcnt * fu->reps; + } + return (cursize); +} + +void +rewrite(FS *fs) +{ + enum { NOTOKAY, USEBCNT, USEPREC } sokay; + PR *pr, **nextpr = NULL; + FU *fu; + unsigned char *p1, *p2, *fmtp; + char savech, cs[3]; + int nconv, prec = 0; + + for (fu = fs->nextfu; fu; fu = fu->nextfu) { + /* + * Break each format unit into print units; each conversion + * character gets its own. + */ + for (nconv = 0, fmtp = (unsigned char *)fu->fmt; *fmtp; nextpr = &pr->nextpr) { + if ((pr = calloc(1, sizeof(PR))) == NULL) + err(1, NULL); + if (!fu->nextpr) + fu->nextpr = pr; + else + *nextpr = pr; + + /* Skip preceding text and up to the next % sign. */ + for (p1 = fmtp; *p1 && *p1 != '%'; ++p1); + + /* Only text in the string. */ + if (!*p1) { + pr->fmt = (char *)fmtp; + pr->flags = F_TEXT; + break; + } + + /* + * Get precision for %s -- if have a byte count, don't + * need it. + */ + if (fu->bcnt) { + sokay = USEBCNT; + /* Skip to conversion character. */ + for (++p1; index(spec, *p1); ++p1); + } else { + /* Skip any special chars, field width. */ + while (index(spec + 1, *++p1)); + if (*p1 == '.' && isdigit(*++p1)) { + sokay = USEPREC; + prec = atoi((const char *)p1); + while (isdigit(*++p1)); + } else + sokay = NOTOKAY; + } + + p2 = p1 + 1; /* Set end pointer. */ + cs[0] = *p1; /* Set conversion string. */ + cs[1] = '\0'; + + /* + * Figure out the byte count for each conversion; + * rewrite the format as necessary, set up blank- + * padding for end of data. + */ + switch(cs[0]) { + case 'c': + pr->flags = F_CHAR; + switch(fu->bcnt) { + case 0: case 1: + pr->bcnt = 1; + break; + default: + p1[1] = '\0'; + badcnt((char *)p1); + } + break; + case 'd': case 'i': + pr->flags = F_INT; + goto isint; + case 'o': case 'u': case 'x': case 'X': + pr->flags = F_UINT; +isint: cs[2] = '\0'; + cs[1] = cs[0]; + cs[0] = 'q'; + switch(fu->bcnt) { + case 0: case 4: + pr->bcnt = 4; + break; + case 1: + pr->bcnt = 1; + break; + case 2: + pr->bcnt = 2; + break; + default: + p1[1] = '\0'; + badcnt((char *)p1); + } + break; + case 'e': case 'E': case 'f': case 'g': case 'G': + pr->flags = F_DBL; + switch(fu->bcnt) { + case 0: case 8: + pr->bcnt = 8; + break; + case 4: + pr->bcnt = 4; + break; + default: + if (fu->bcnt == sizeof(long double)) { + cs[2] = '\0'; + cs[1] = cs[0]; + cs[0] = 'L'; + pr->bcnt = sizeof(long double); + } else { + p1[1] = '\0'; + badcnt((char *)p1); + } + } + break; + case 's': + pr->flags = F_STR; + switch(sokay) { + case NOTOKAY: + badsfmt(); + case USEBCNT: + pr->bcnt = fu->bcnt; + break; + case USEPREC: + pr->bcnt = prec; + break; + } + break; + case '_': + ++p2; + switch(p1[1]) { + case 'A': + endfu = fu; + fu->flags |= F_IGNORE; + /* FALLTHROUGH */ + case 'a': + pr->flags = F_ADDRESS; + ++p2; + switch(p1[2]) { + case 'd': case 'o': case'x': + cs[0] = 'q'; + cs[1] = p1[2]; + cs[2] = '\0'; + break; + default: + p1[3] = '\0'; + badconv((char *)p1); + } + break; + case 'c': + pr->flags = F_C; + /* cs[0] = 'c'; set in conv_c */ + goto isint2; + case 'p': + pr->flags = F_P; + cs[0] = 'c'; + goto isint2; + case 'u': + pr->flags = F_U; + /* cs[0] = 'c'; set in conv_u */ +isint2: switch(fu->bcnt) { + case 0: case 1: + pr->bcnt = 1; + break; + default: + p1[2] = '\0'; + badcnt((char *)p1); + } + break; + case 'n': /* Force -A n to dump extra blank line like default od behavior */ + endfu = fu; + fu->flags = F_IGNORE; + pr->flags = F_TEXT; + fmtp = (unsigned char *)"\n"; + cs[0] = '\0'; + break; + default: + p1[2] = '\0'; + badconv((char *)p1); + } + break; + default: + p1[1] = '\0'; + badconv((char *)p1); + } + + /* + * Copy to PR format string, set conversion character + * pointer, update original. + */ + savech = *p2; + p1[0] = '\0'; + if ((pr->fmt = calloc(1, strlen((const char *)fmtp) + 2)) == NULL) + err(1, NULL); + (void)strcpy(pr->fmt, (const char *)fmtp); + (void)strcat(pr->fmt, cs); + *p2 = savech; + pr->cchar = pr->fmt + (p1 - fmtp); + fmtp = p2; + + /* Only one conversion character if byte count. */ + if (!(pr->flags&F_ADDRESS) && fu->bcnt && nconv++) + errx(1, "byte count with multiple conversion characters"); + } + /* + * If format unit byte count not specified, figure it out + * so can adjust rep count later. + */ + if (!fu->bcnt) + for (pr = fu->nextpr; pr; pr = pr->nextpr) + fu->bcnt += pr->bcnt; + } + /* + * If the format string interprets any data at all, and it's + * not the same as the blocksize, and its last format unit + * interprets any data at all, and has no iteration count, + * repeat it as necessary. + * + * If, rep count is greater than 1, no trailing whitespace + * gets output from the last iteration of the format unit. + */ + for (fu = fs->nextfu; fu; fu = fu->nextfu) { + if (!fu->nextfu && fs->bcnt < blocksize && + !(fu->flags&F_SETREP) && fu->bcnt) + fu->reps += (blocksize - fs->bcnt) / fu->bcnt; + if (fu->reps > 1) { + for (pr = fu->nextpr;; pr = pr->nextpr) + if (!pr->nextpr) + break; + for (p1 = (unsigned char *)pr->fmt, p2 = NULL; *p1; ++p1) + p2 = isspace(*p1) ? p1 : NULL; + if (p2) + pr->nospace = (char *)p2; + } + } +#ifdef DEBUG + for (fu = fs->nextfu; fu; fu = fu->nextfu) { + (void)printf("fmt:"); + for (pr = fu->nextpr; pr; pr = pr->nextpr) + (void)printf(" {%s}", pr->fmt); + (void)printf("\n"); + } +#endif +} + +void +escape(char *p1) +{ + char *p2; + + /* alphabetic escape sequences have to be done in place */ + for (p2 = p1;; ++p1, ++p2) { + if (!*p1) { + *p2 = *p1; + break; + } + if (*p1 == '\\') + switch(*++p1) { + case 'a': + /* *p2 = '\a'; */ + *p2 = '\007'; + break; + case 'b': + *p2 = '\b'; + break; + case 'f': + *p2 = '\f'; + break; + case 'n': + *p2 = '\n'; + break; + case 'r': + *p2 = '\r'; + break; + case 't': + *p2 = '\t'; + break; + case 'v': + *p2 = '\v'; + break; + default: + *p2 = *p1; + break; + } + } +} + +void +badcnt(char *s) +{ + errx(1, "%s: bad byte count", s); +} + +void +badsfmt(void) +{ + errx(1, "%%s: requires a precision or a byte count"); +} + +void +badfmt(const char *fmt) +{ + errx(1, "\"%s\": bad format", fmt); +} + +void +badconv(char *ch) +{ + errx(1, "%%%s: bad conversion character", ch); +} diff --git a/hostname/Makefile b/hostname/Makefile deleted file mode 100644 index ede49c6..0000000 --- a/hostname/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = hostname -Install_Dir = /bin - -CFILES = hostname.c -MANPAGES = hostname.1 - -Extra_CC_Flags = -Wall -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/id/Makefile b/id/Makefile deleted file mode 100644 index e4f2e47..0000000 --- a/id/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -Project = id -Install_Dir = /usr/bin - -CFILES = id.c -MANPAGES = groups.1 id.1 whoami.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -DUSE_BSM_AUDIT \ - -Wno-error -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -after_install: - $(LN) $(DSTROOT)/$(Install_Dir)/id $(DSTROOT)/$(Install_Dir)/groups - $(LN) $(DSTROOT)/$(Install_Dir)/id $(DSTROOT)/$(Install_Dir)/whoami diff --git a/id/id.c b/id/id.c index 5c5647f..4506f9b 100644 --- a/id/id.c +++ b/id/id.c @@ -365,7 +365,7 @@ group(struct passwd *pw, int nflag) struct group *gr; int cnt, id, lastid, ngroups; #ifdef __APPLE__ - gid_t *groups; + gid_t *groups = NULL; #else gid_t groups[NGROUPS + 1]; #endif diff --git a/jot/Makefile b/jot/Makefile deleted file mode 100644 index 0dde41c..0000000 --- a/jot/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = jot -Install_Dir = /usr/bin - -CFILES = jot.c -MANPAGES = jot.1 - -Extra_CC_Flags = -Wall -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/kill/Makefile b/kill/Makefile deleted file mode 100644 index 16cc8ef..0000000 --- a/kill/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = kill -Install_Dir = /bin - -CFILES = kill.c -MANPAGES = kill.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/killall/Makefile b/killall/Makefile deleted file mode 100644 index 2579d25..0000000 --- a/killall/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = killall -Install_Dir = /usr/bin - -CFILES = killall.c -MANPAGES = killall.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/lastcomm/Makefile b/lastcomm/Makefile deleted file mode 100644 index a411f10..0000000 --- a/lastcomm/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = lastcomm -Install_Dir = /usr/bin - -HFILES = pathnames.h -CFILES = lastcomm.c -MANPAGES = lastcomm.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/locate/Makefile b/locate/Makefile deleted file mode 100644 index 17217f8..0000000 --- a/locate/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = locate -Install_Dir = /usr/bin - -SubProjects = bigram code locate -MANPAGES = locate.code.8 - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -after_install: - $(LN) $(DSTROOT)/usr/share/man/man8/locate.code.8 \ - $(DSTROOT)/usr/share/man/man8/locate.bigram.8 diff --git a/locate/bigram/Makefile b/locate/bigram/Makefile deleted file mode 100644 index b6b6fd2..0000000 --- a/locate/bigram/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = locate.bigram -Install_Dir = /usr/libexec - -CFILES = locate.bigram.c - -Extra_CC_Flags = -Wall \ - -I../locate -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/locate/bigram/Makefile.postamble b/locate/bigram/Makefile.postamble deleted file mode 100644 index 013b558..0000000 --- a/locate/bigram/Makefile.postamble +++ /dev/null @@ -1 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common diff --git a/locate/bigram/Makefile.preamble b/locate/bigram/Makefile.preamble deleted file mode 100644 index 9e10e90..0000000 --- a/locate/bigram/Makefile.preamble +++ /dev/null @@ -1 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Preamble.Common diff --git a/locate/bigram/locate.bigram.8 b/locate/bigram/locate.bigram.8 new file mode 100644 index 0000000..129334c --- /dev/null +++ b/locate/bigram/locate.bigram.8 @@ -0,0 +1 @@ +.so man8/locate.code.8 diff --git a/locate/code/Makefile b/locate/code/Makefile deleted file mode 100644 index 351a09d..0000000 --- a/locate/code/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = locate.code -Install_Dir = /usr/libexec - -CFILES = locate.code.c - -Extra_CC_Flags = -Wall \ - -I../locate -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/locate/code/Makefile.postamble b/locate/code/Makefile.postamble deleted file mode 100644 index 013b558..0000000 --- a/locate/code/Makefile.postamble +++ /dev/null @@ -1 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common diff --git a/locate/code/Makefile.preamble b/locate/code/Makefile.preamble deleted file mode 100644 index 9e10e90..0000000 --- a/locate/code/Makefile.preamble +++ /dev/null @@ -1 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Preamble.Common diff --git a/locate/locate.code.8 b/locate/code/locate.code.8 similarity index 100% rename from locate/locate.code.8 rename to locate/code/locate.code.8 diff --git a/locate/locate/Makefile b/locate/locate/Makefile deleted file mode 100644 index c92392a..0000000 --- a/locate/locate/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -Project = locate -Install_Dir = /usr/bin - -HFILES = locate.h pathnames.h -CFILES = util.c locate.c -MANPAGES = locate.1 locate.updatedb.8 -#OTHERSRCS = Makefile Makefile.preamble Makefile.postamble \ - fastfind.c \ - locate.1 locate.updatedb.8 locate.rc \ - concatdb.sh mklocatedb.sh updatedb.sh -LAUNCHD_PLISTS = com.apple.locate.plist - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -after_install: - $(INSTALL_DIRECTORY) $(DSTROOT)/usr/libexec - $(INSTALL_SCRIPT) concatdb.sh $(DSTROOT)/usr/libexec/locate.concatdb - $(INSTALL_SCRIPT) mklocatedb.sh $(DSTROOT)/usr/libexec/locate.mklocatedb - $(INSTALL_SCRIPT) updatedb.sh $(DSTROOT)/usr/libexec/locate.updatedb - $(LN) $(DSTROOT)/usr/share/man/man8/locate.updatedb.8 $(DSTROOT)/usr/share/man/man8/locate.concatdb.8 - $(LN) $(DSTROOT)/usr/share/man/man8/locate.updatedb.8 $(DSTROOT)/usr/share/man/man8/locate.mklocatedb.8 - $(INSTALL_DIRECTORY) $(DSTROOT)/private/etc - $(INSTALL_FILE) locate.rc $(DSTROOT)/private/etc - plutil -convert binary1 "$(DSTROOT)/System/Library/LaunchDaemons/$(LAUNCHD_PLISTS)" diff --git a/locate/locate/Makefile.postamble b/locate/locate/Makefile.postamble deleted file mode 100644 index 0ea2a99..0000000 --- a/locate/locate/Makefile.postamble +++ /dev/null @@ -1,10 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common - -after_install:: - $(INSTALL_SCRIPT) concatdb.sh $(DSTROOT)/usr/libexec/locate.concatdb - $(INSTALL_SCRIPT) mklocatedb.sh $(DSTROOT)/usr/libexec/locate.mklocatedb - $(INSTALL_SCRIPT) updatedb.sh $(DSTROOT)/usr/libexec/locate.updatedb - $(LN) $(DSTROOT)/usr/share/man/man8/locate.updatedb.8 $(DSTROOT)/usr/share/man/man8/locate.concatdb.8 - $(LN) $(DSTROOT)/usr/share/man/man8/locate.updatedb.8 $(DSTROOT)/usr/share/man/man8/locate.mklocatedb.8 - $(MKDIR) $(DSTROOT)$(ETCDIR) - $(INSTALL_FILE) locate.rc $(DSTROOT)$(ETCDIR) diff --git a/locate/locate/Makefile.preamble b/locate/locate/Makefile.preamble deleted file mode 100644 index 9e10e90..0000000 --- a/locate/locate/Makefile.preamble +++ /dev/null @@ -1 +0,0 @@ -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Preamble.Common diff --git a/logname/Makefile b/logname/Makefile deleted file mode 100644 index f64a48a..0000000 --- a/logname/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = logname -Install_Dir = /usr/bin - -CFILES = logname.c -MANPAGES = logname.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/machine/Makefile b/machine/Makefile deleted file mode 100644 index 7e3f761..0000000 --- a/machine/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = machine -Install_Dir = /usr/bin - -CFILES = machine.c -MANPAGES = machine.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/mktemp/Makefile b/mktemp/Makefile deleted file mode 100644 index e563968..0000000 --- a/mktemp/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = mktemp -Install_Dir = /usr/bin - -CFILES = mktemp.c -MANPAGES = mktemp.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/nice/Makefile b/nice/Makefile deleted file mode 100644 index 2d024d9..0000000 --- a/nice/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = nice -Install_Dir = /usr/bin - -CFILES = nice.c -MANPAGES = nice.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/nohup/Makefile b/nohup/Makefile deleted file mode 100644 index 4134804..0000000 --- a/nohup/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = nohup -Install_Dir = /usr/bin - -CFILES = nohup.c -MANPAGES = nohup.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/path_helper/Makefile b/path_helper/Makefile deleted file mode 100644 index b4d53fa..0000000 --- a/path_helper/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = path_helper -Install_Dir = /usr/libexec - -CFILES = path_helper.c -MANPAGES = path_helper.8 - -Extra_CC_Flags = -Wall -Werror -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/printenv/Makefile b/printenv/Makefile deleted file mode 100644 index ec00f21..0000000 --- a/printenv/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = printenv -Install_Dir = /usr/bin - -CFILES = printenv.c -MANPAGES = printenv.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/printf/Makefile b/printf/Makefile deleted file mode 100644 index ce06b7e..0000000 --- a/printf/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = printf -Install_Dir = /usr/bin - -CFILES = printf.c -MANPAGES = printf.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/pwd/Makefile b/pwd/Makefile deleted file mode 100644 index 3f861d1..0000000 --- a/pwd/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = pwd -Install_Dir = /bin - -CFILES = pwd.c -MANPAGES = pwd.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/renice/Makefile b/renice/Makefile deleted file mode 100644 index e8807d2..0000000 --- a/renice/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = renice -Insatll_Dir = /usr/bin - -CFILES = renice.c -MANPAGES = renice.8 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/script/Makefile b/script/Makefile deleted file mode 100644 index e3ea256..0000000 --- a/script/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = script -Install_Dir = /usr/bin - -CFILES = script.c -MANPAGES = script.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/seq/Makefile b/seq/Makefile deleted file mode 100644 index 9a556a0..0000000 --- a/seq/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = seq -Install_Dir = /usr/bin - -CFILES = seq.c -MANPAGES = seq.1 - -Extra_CC_Flags = -Wall -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/shell_cmds.xcodeproj/project.pbxproj b/shell_cmds.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8bbe58d --- /dev/null +++ b/shell_cmds.xcodeproj/project.pbxproj @@ -0,0 +1,5189 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + FCBA14FD14A144EC00AA698B /* All_OSX */ = { + isa = PBXAggregateTarget; + buildConfigurationList = FCBA14FE14A144EC00AA698B /* Build configuration list for PBXAggregateTarget "All_OSX" */; + buildPhases = ( + FCE30EB814B531EC00CC0294 /* ShellScript */, + ); + dependencies = ( + FCBA150114A144F700AA698B /* PBXTargetDependency */, + FCBA150314A144F700AA698B /* PBXTargetDependency */, + FCBA150514A144F700AA698B /* PBXTargetDependency */, + FCBA150714A144F700AA698B /* PBXTargetDependency */, + FCBA150914A144F700AA698B /* PBXTargetDependency */, + FCBA150B14A144F700AA698B /* PBXTargetDependency */, + FCBA150D14A144F700AA698B /* PBXTargetDependency */, + FCBA165514A146D000AA698B /* PBXTargetDependency */, + FCBA165714A146D000AA698B /* PBXTargetDependency */, + FCBA165914A146D000AA698B /* PBXTargetDependency */, + FCBA165B14A146D000AA698B /* PBXTargetDependency */, + FC5D63A214B9864400123E48 /* PBXTargetDependency */, + FCBA165D14A146D000AA698B /* PBXTargetDependency */, + FCBA165F14A146D000AA698B /* PBXTargetDependency */, + FCBA166114A146D000AA698B /* PBXTargetDependency */, + FCBA166314A146D000AA698B /* PBXTargetDependency */, + FCBA166514A146D000AA698B /* PBXTargetDependency */, + FCBA166714A146D000AA698B /* PBXTargetDependency */, + FCBA166914A146D000AA698B /* PBXTargetDependency */, + FCE30EE314B539BF00CC0294 /* PBXTargetDependency */, + FCE30EE514B539BF00CC0294 /* PBXTargetDependency */, + FCBA166B14A146D000AA698B /* PBXTargetDependency */, + FCBA166F14A146D000AA698B /* PBXTargetDependency */, + FCBA167114A146D000AA698B /* PBXTargetDependency */, + FCBA167314A146D000AA698B /* PBXTargetDependency */, + FCBA167514A146D000AA698B /* PBXTargetDependency */, + FCBA167714A146D000AA698B /* PBXTargetDependency */, + FCBA167914A146D000AA698B /* PBXTargetDependency */, + FCBA167B14A146D000AA698B /* PBXTargetDependency */, + FCBA167D14A146D000AA698B /* PBXTargetDependency */, + FCBA167F14A146D000AA698B /* PBXTargetDependency */, + FCBA168114A146D000AA698B /* PBXTargetDependency */, + FCBA168314A146D000AA698B /* PBXTargetDependency */, + FCBA168514A146D000AA698B /* PBXTargetDependency */, + FCBA168714A146D000AA698B /* PBXTargetDependency */, + FCBA168914A146D000AA698B /* PBXTargetDependency */, + FCBA168B14A146D000AA698B /* PBXTargetDependency */, + FCBA168D14A146D000AA698B /* PBXTargetDependency */, + FCBA168F14A146D000AA698B /* PBXTargetDependency */, + FCBA169114A146D000AA698B /* PBXTargetDependency */, + FCBA169314A146D000AA698B /* PBXTargetDependency */, + FCBA169514A146D000AA698B /* PBXTargetDependency */, + FC5D63A414B9864400123E48 /* PBXTargetDependency */, + FCBA169714A146D000AA698B /* PBXTargetDependency */, + FCBA169914A146D000AA698B /* PBXTargetDependency */, + FCBA169B14A146D000AA698B /* PBXTargetDependency */, + FCBA169D14A146D000AA698B /* PBXTargetDependency */, + FCBA169F14A146D000AA698B /* PBXTargetDependency */, + ); + name = All_OSX; + productName = executables; + }; + FCE30F4A14B619B000CC0294 /* All_iOS */ = { + isa = PBXAggregateTarget; + buildConfigurationList = FCE30F4B14B619B000CC0294 /* Build configuration list for PBXAggregateTarget "All_iOS" */; + buildPhases = ( + FCE30F4D14B619C900CC0294 /* Run Script */, + ); + dependencies = ( + FCE30F4F14B619E600CC0294 /* PBXTargetDependency */, + FCE30F5114B619E600CC0294 /* PBXTargetDependency */, + FCE30F5314B619E600CC0294 /* PBXTargetDependency */, + FCE30F5514B619E600CC0294 /* PBXTargetDependency */, + FCE30F5714B619E600CC0294 /* PBXTargetDependency */, + FCE30F5914B619E600CC0294 /* PBXTargetDependency */, + FCE30F5B14B619E600CC0294 /* PBXTargetDependency */, + FCE30F5D14B619E600CC0294 /* PBXTargetDependency */, + FCE30F5F14B619E600CC0294 /* PBXTargetDependency */, + FCE30F6114B619E600CC0294 /* PBXTargetDependency */, + FCE30F6314B619E600CC0294 /* PBXTargetDependency */, + FC5D63A614B9866500123E48 /* PBXTargetDependency */, + FCE30F6514B619E600CC0294 /* PBXTargetDependency */, + FCE30F6714B619E600CC0294 /* PBXTargetDependency */, + FCE30F6914B619E600CC0294 /* PBXTargetDependency */, + FCE30F6B14B619E600CC0294 /* PBXTargetDependency */, + FCE30F6D14B619E600CC0294 /* PBXTargetDependency */, + FCE30F6F14B619E600CC0294 /* PBXTargetDependency */, + FCE30F7114B619E600CC0294 /* PBXTargetDependency */, + FCE30F7314B619E600CC0294 /* PBXTargetDependency */, + FCE30F7514B619E600CC0294 /* PBXTargetDependency */, + FCE30F7714B619E600CC0294 /* PBXTargetDependency */, + FCE30F7914B619E600CC0294 /* PBXTargetDependency */, + FCE30F7B14B619E600CC0294 /* PBXTargetDependency */, + FCE30F7D14B619E600CC0294 /* PBXTargetDependency */, + FCE30F7F14B619E600CC0294 /* PBXTargetDependency */, + FCE30F8114B619E600CC0294 /* PBXTargetDependency */, + FCE30F8314B619E600CC0294 /* PBXTargetDependency */, + FCE30F8514B619E600CC0294 /* PBXTargetDependency */, + FCE30F8714B619E600CC0294 /* PBXTargetDependency */, + FCE30F8914B619E600CC0294 /* PBXTargetDependency */, + FCE30F8B14B619E600CC0294 /* PBXTargetDependency */, + FCE30F8D14B619E600CC0294 /* PBXTargetDependency */, + FCE30F8F14B619E600CC0294 /* PBXTargetDependency */, + FCE30F9114B619E600CC0294 /* PBXTargetDependency */, + FCE30F9314B619E600CC0294 /* PBXTargetDependency */, + FCE30F9514B619E600CC0294 /* PBXTargetDependency */, + FCE30F9714B619E600CC0294 /* PBXTargetDependency */, + FC5D63A814B9866500123E48 /* PBXTargetDependency */, + FCE30F9914B619E600CC0294 /* PBXTargetDependency */, + FCE30F9B14B619E600CC0294 /* PBXTargetDependency */, + FCE30F9D14B619E600CC0294 /* PBXTargetDependency */, + FCE30F9F14B619E600CC0294 /* PBXTargetDependency */, + FCE30FA114B619E600CC0294 /* PBXTargetDependency */, + ); + name = All_iOS; + productName = embedded; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + FC2B5BFB14B3CCC600ECF511 /* uname.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA140914A141A300AA698B /* uname.c */; }; + FC2B5BFD14B3CCD200ECF511 /* uname.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA140814A141A300AA698B /* uname.1 */; }; + FC2B5BFE14B3CCD700ECF511 /* true.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA140414A141A300AA698B /* true.c */; }; + FC2B5BFF14B3CCEF00ECF511 /* true.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA140314A141A300AA698B /* true.1 */; }; + FC2B5C0014B3CCF800ECF511 /* time.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA140014A141A300AA698B /* time.c */; }; + FC2B5C0114B3CD0300ECF511 /* time.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13FF14A141A300AA698B /* time.1 */; }; + FC2B5C0214B3CD0C00ECF511 /* test.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13FB14A141A300AA698B /* test.c */; }; + FC2B5C0314B3CD1400ECF511 /* [.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13F814A141A300AA698B /* [.1 */; }; + FC2B5C0414B3CD1400ECF511 /* test.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13FA14A141A300AA698B /* test.1 */; }; + FC2B5C0514B3CD1D00ECF511 /* tee.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13F514A141A300AA698B /* tee.1 */; }; + FC2B5C0614B3CD2800ECF511 /* tee.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13F614A141A300AA698B /* tee.c */; }; + FC2B5C0714B3CD2F00ECF511 /* su.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13F114A141A300AA698B /* su.c */; }; + FC2B5C0814B3CD3500ECF511 /* su.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13F014A141A300AA698B /* su.1 */; }; + FC2B5C0914B3CD3E00ECF511 /* sleep.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13EC14A141A300AA698B /* sleep.1 */; }; + FC2B5C0A14B3CD4400ECF511 /* sleep.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13ED14A141A300AA698B /* sleep.c */; }; + FC2B5C0B14B3CD4F00ECF511 /* shlock.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13E914A141A300AA698B /* shlock.c */; }; + FC2B5C0C14B3CD5B00ECF511 /* shlock.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13E814A141A300AA698B /* shlock.1 */; }; + FC5D638D14B981D200123E48 /* what.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D637314B9808E00123E48 /* what.c */; }; + FC5D638E14B981D800123E48 /* what.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC5D637214B9808E00123E48 /* what.1 */; }; + FC5D639914B9825B00123E48 /* hexdump.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC5D636A14B9808E00123E48 /* hexdump.1 */; }; + FC5D639A14B9825B00123E48 /* od.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC5D636E14B9808E00123E48 /* od.1 */; }; + FC5D639B14B9826500123E48 /* conv.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D636814B9808E00123E48 /* conv.c */; }; + FC5D639C14B9826500123E48 /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D636914B9808E00123E48 /* display.c */; }; + FC5D639D14B9826500123E48 /* hexdump.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D636B14B9808E00123E48 /* hexdump.c */; }; + FC5D639E14B9826500123E48 /* hexsyntax.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D636D14B9808E00123E48 /* hexsyntax.c */; }; + FC5D639F14B9826500123E48 /* odsyntax.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D636F14B9808E00123E48 /* odsyntax.c */; }; + FC5D63A014B9826500123E48 /* parse.c in Sources */ = {isa = PBXBuildFile; fileRef = FC5D637014B9808E00123E48 /* parse.c */; }; + FCBA02E714B5061B0030BEB3 /* seq.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13E414A141A300AA698B /* seq.1 */; }; + FCBA02E814B506230030BEB3 /* seq.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13E514A141A300AA698B /* seq.c */; }; + FCBA02E914B5062E0030BEB3 /* script.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13E014A141A300AA698B /* script.1 */; }; + FCBA02EA14B506340030BEB3 /* script.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13E114A141A300AA698B /* script.c */; }; + FCBA02EB14B5063E0030BEB3 /* renice.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13DC14A141A300AA698B /* renice.8 */; }; + FCBA02EC14B5064C0030BEB3 /* renice.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13DD14A141A300AA698B /* renice.c */; }; + FCBA02ED14B506530030BEB3 /* pwd.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13D914A141A300AA698B /* pwd.c */; }; + FCBA02EF14B5065D0030BEB3 /* printf.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13D414A141A300AA698B /* printf.1 */; }; + FCBA02F014B506660030BEB3 /* printf.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13D514A141A300AA698B /* printf.c */; }; + FCBA02F114B506720030BEB3 /* printenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13D114A141A300AA698B /* printenv.c */; }; + FCBA02F214B5067C0030BEB3 /* printenv.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13D014A141A300AA698B /* printenv.1 */; }; + FCBA02F314B506840030BEB3 /* path_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13CD14A141A300AA698B /* path_helper.c */; }; + FCBA02F414B5068C0030BEB3 /* path_helper.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13CC14A141A300AA698B /* path_helper.8 */; }; + FCBA02F514B506940030BEB3 /* nohup.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13C914A141A300AA698B /* nohup.c */; }; + FCBA02F614B5069C0030BEB3 /* nohup.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13C814A141A300AA698B /* nohup.1 */; }; + FCBA02F714B506B10030BEB3 /* nice.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13C414A141A300AA698B /* nice.1 */; }; + FCBA02F814B506BB0030BEB3 /* nice.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13C514A141A300AA698B /* nice.c */; }; + FCBA02F914B506CB0030BEB3 /* mktemp.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13C114A141A300AA698B /* mktemp.c */; }; + FCBA02FA14B506DA0030BEB3 /* mktemp.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13C014A141A300AA698B /* mktemp.1 */; }; + FCBA02FD14B506FA0030BEB3 /* logname.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13B514A141A300AA698B /* logname.c */; }; + FCBA02FE14B506FF0030BEB3 /* logname.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13B414A141A300AA698B /* logname.1 */; }; + FCBA02FF14B507130030BEB3 /* expr.y in Sources */ = {isa = PBXBuildFile; fileRef = FCBA136714A141A300AA698B /* expr.y */; }; + FCBA030014B5071A0030BEB3 /* expr.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA136614A141A300AA698B /* expr.1 */; }; + FCBA030114B507220030BEB3 /* false.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA136B14A141A300AA698B /* false.c */; }; + FCBA030214B5072C0030BEB3 /* false.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA136A14A141A300AA698B /* false.1 */; }; + FCBA030314B5073F0030BEB3 /* find.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137114A141A300AA698B /* find.c */; }; + FCBA030414B5073F0030BEB3 /* function.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137314A141A300AA698B /* function.c */; }; + FCBA030514B5073F0030BEB3 /* getdate.y in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137414A141A300AA698B /* getdate.y */; }; + FCBA030614B5073F0030BEB3 /* ls.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137514A141A300AA698B /* ls.c */; }; + FCBA030714B5073F0030BEB3 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137614A141A300AA698B /* main.c */; }; + FCBA030814B5073F0030BEB3 /* misc.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137814A141A300AA698B /* misc.c */; }; + FCBA030914B5073F0030BEB3 /* operator.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137914A141A300AA698B /* operator.c */; }; + FCBA030A14B5073F0030BEB3 /* option.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137A14A141A300AA698B /* option.c */; }; + FCBA030B14B507450030BEB3 /* find.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA137014A141A300AA698B /* find.1 */; }; + FCBA030C14B5074D0030BEB3 /* getopt.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA137D14A141A300AA698B /* getopt.c */; }; + FCBA030D14B507580030BEB3 /* getopt.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA137C14A141A300AA698B /* getopt.1 */; }; + FCBA030E14B5076A0030BEB3 /* hostname.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA138114A141A300AA698B /* hostname.c */; }; + FCBA030F14B507700030BEB3 /* hostname.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA138014A141A300AA698B /* hostname.1 */; }; + FCBA031014B507790030BEB3 /* id.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA138614A141A300AA698B /* id.c */; }; + FCBA031214B507870030BEB3 /* groups.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA138414A141A300AA698B /* groups.1 */; }; + FCBA031314B507870030BEB3 /* id.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA138514A141A300AA698B /* id.1 */; }; + FCBA031414B507870030BEB3 /* whoami.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA138A14A141A300AA698B /* whoami.1 */; }; + FCBA031514B507900030BEB3 /* jot.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA138D14A141A300AA698B /* jot.c */; }; + FCBA031614B507950030BEB3 /* jot.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA138C14A141A300AA698B /* jot.1 */; }; + FCBA031714B507A10030BEB3 /* kill.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA139114A141A300AA698B /* kill.c */; }; + FCBA031814B507A50030BEB3 /* kill.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA139014A141A300AA698B /* kill.1 */; }; + FCBA031914B507B00030BEB3 /* killall.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA139514A141A300AA698B /* killall.c */; }; + FCBA031A14B507B60030BEB3 /* killall.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA139414A141A300AA698B /* killall.1 */; }; + FCBA031B14B507BD0030BEB3 /* lastcomm.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA139914A141A300AA698B /* lastcomm.c */; }; + FCBA031C14B507C40030BEB3 /* lastcomm.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA139814A141A300AA698B /* lastcomm.1 */; }; + FCBA031E14B507D10030BEB3 /* locate.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13A814A141A300AA698B /* locate.c */; }; + FCBA031F14B507D10030BEB3 /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13B014A141A300AA698B /* util.c */; }; + FCBA032014B507E50030BEB3 /* locate.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13A714A141A300AA698B /* locate.1 */; }; + FCBA14EB14A1444900AA698B /* apply.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA134714A141A300AA698B /* apply.c */; }; + FCBA14ED14A1444E00AA698B /* apply.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA134614A141A300AA698B /* apply.1 */; }; + FCBA14EE14A1446700AA698B /* basename.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA134B14A141A300AA698B /* basename.c */; }; + FCBA14EF14A1446B00AA698B /* basename.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA134A14A141A300AA698B /* basename.1 */; }; + FCBA14F114A1448C00AA698B /* chroot.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135014A141A300AA698B /* chroot.c */; }; + FCBA14F214A1448F00AA698B /* chroot.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA134F14A141A300AA698B /* chroot.8 */; }; + FCBA14F314A1449A00AA698B /* date.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA135314A141A300AA698B /* date.1 */; }; + FCBA14F414A1449C00AA698B /* date.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135414A141A300AA698B /* date.c */; }; + FCBA14F514A144AF00AA698B /* netdate.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135714A141A300AA698B /* netdate.c */; }; + FCBA14F614A144B200AA698B /* vary.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135814A141A300AA698B /* vary.c */; }; + FCBA14F714A144C700AA698B /* dirname.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135B14A141A300AA698B /* dirname.c */; }; + FCBA14F814A144CB00AA698B /* dirname.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA134C14A141A300AA698B /* dirname.1 */; }; + FCBA14F914A144D000AA698B /* echo.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA135E14A141A300AA698B /* echo.1 */; }; + FCBA14FA14A144D300AA698B /* echo.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA135F14A141A300AA698B /* echo.c */; }; + FCBA14FB14A144E300AA698B /* env.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA136214A141A300AA698B /* env.1 */; }; + FCBA14FC14A144E500AA698B /* env.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA136314A141A300AA698B /* env.c */; }; + FCBA163E14A1466500AA698B /* yes.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA142D14A141A300AA698B /* yes.1 */; }; + FCBA163F14A1466900AA698B /* yes.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA142E14A141A300AA698B /* yes.c */; }; + FCBA164014A1466F00AA698B /* xargs.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA142A14A141A300AA698B /* xargs.c */; }; + FCBA164114A1467200AA698B /* strnsubst.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA142814A141A300AA698B /* strnsubst.c */; }; + FCBA164214A1467500AA698B /* xargs.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA142914A141A300AA698B /* xargs.1 */; }; + FCBA164314A1467A00AA698B /* utmpentry.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA142114A141A300AA698B /* utmpentry.c */; }; + FCBA164414A1467D00AA698B /* who.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA142414A141A300AA698B /* who.c */; }; + FCBA164514A1468000AA698B /* who.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA142314A141A300AA698B /* who.1 */; }; + FCBA164614A1468600AA698B /* which.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141E14A141A300AA698B /* which.c */; }; + FCBA164714A1468900AA698B /* which.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA141D14A141A300AA698B /* which.1 */; }; + FCBA164814A1469000AA698B /* whereis.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141A14A141A300AA698B /* whereis.c */; }; + FCBA164914A1469300AA698B /* whereis.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA141914A141A300AA698B /* whereis.1 */; }; + FCBA164A14A1469A00AA698B /* fmt.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141014A141A300AA698B /* fmt.c */; }; + FCBA164B14A1469D00AA698B /* pr_time.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141214A141A300AA698B /* pr_time.c */; }; + FCBA164C14A1469F00AA698B /* proc_compare.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141314A141A300AA698B /* proc_compare.c */; }; + FCBA164D14A146A200AA698B /* w.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA141614A141A300AA698B /* w.c */; }; + FCBA164E14A146A500AA698B /* uptime.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA141414A141A300AA698B /* uptime.1 */; }; + FCBA164F14A146A700AA698B /* w.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA141514A141A300AA698B /* w.1 */; }; + FCBA165014A146BE00AA698B /* users.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA140D14A141A300AA698B /* users.c */; }; + FCBA165114A146C100AA698B /* users.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA140C14A141A300AA698B /* users.1 */; }; + FCE30EA814B5105200CC0294 /* pwd.1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13D814A141A300AA698B /* pwd.1 */; }; + FCE30EBA14B532D900CC0294 /* com.apple.locate.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13A414A141A300AA698B /* com.apple.locate.plist */; }; + FCE30EBD14B533A200CC0294 /* locate.rc in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13AA14A141A300AA698B /* locate.rc */; }; + FCE30EBF14B533E200CC0294 /* locate.updatedb.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13AB14A141A300AA698B /* locate.updatedb.8 */; }; + FCE30ED414B536A600CC0294 /* locate.bigram.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA139E14A141A300AA698B /* locate.bigram.c */; }; + FCE30ED514B536B200CC0294 /* locate.bigram.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCE30EC114B5347A00CC0294 /* locate.bigram.8 */; }; + FCE30EE014B536F200CC0294 /* locate.code.c in Sources */ = {isa = PBXBuildFile; fileRef = FCBA13A114A141A300AA698B /* locate.code.c */; }; + FCE30EE114B536F800CC0294 /* locate.code.8 in CopyFiles */ = {isa = PBXBuildFile; fileRef = FCBA13B114A141A300AA698B /* locate.code.8 */; }; + FCED3AF614B4FC1800C313C3 /* libpam.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FCED3AF514B4FC1800C313C3 /* libpam.dylib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + FC5D63A114B9864400123E48 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FC5D638F14B9822D00123E48; + remoteInfo = hexdump; + }; + FC5D63A314B9864400123E48 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FC5D637F14B9819E00123E48; + remoteInfo = what; + }; + FC5D63A514B9866500123E48 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FC5D638F14B9822D00123E48; + remoteInfo = hexdump; + }; + FC5D63A714B9866500123E48 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FC5D637F14B9819E00123E48; + remoteInfo = what; + }; + FCBA150014A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA149814A141FF00AA698B; + remoteInfo = apply; + }; + FCBA150214A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14AE14A1422D00AA698B; + remoteInfo = basename; + }; + FCBA150414A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14B714A1423E00AA698B; + remoteInfo = chroot; + }; + FCBA150614A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14BF14A1426800AA698B; + remoteInfo = date; + }; + FCBA150814A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14C714A1428000AA698B; + remoteInfo = dirname; + }; + FCBA150A14A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14CF14A1433F00AA698B; + remoteInfo = echo; + }; + FCBA150C14A144F700AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14D714A1434A00AA698B; + remoteInfo = env; + }; + FCBA165414A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA150E14A1453A00AA698B; + remoteInfo = expr; + }; + FCBA165614A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA151614A1454D00AA698B; + remoteInfo = false; + }; + FCBA165814A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA151E14A1455600AA698B; + remoteInfo = find; + }; + FCBA165A14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA152614A1455900AA698B; + remoteInfo = getopt; + }; + FCBA165C14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA152E14A1455C00AA698B; + remoteInfo = hostname; + }; + FCBA165E14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA153614A1455F00AA698B; + remoteInfo = id; + }; + FCBA166014A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA153E14A1456100AA698B; + remoteInfo = jot; + }; + FCBA166214A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA154614A1456400AA698B; + remoteInfo = kill; + }; + FCBA166414A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA154E14A1456700AA698B; + remoteInfo = killall; + }; + FCBA166614A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA155614A1456A00AA698B; + remoteInfo = lastcomm; + }; + FCBA166814A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA155E14A1456E00AA698B; + remoteInfo = locate; + }; + FCBA166A14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA156614A1457100AA698B; + remoteInfo = logname; + }; + FCBA166E14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA157614A1457B00AA698B; + remoteInfo = mktemp; + }; + FCBA167014A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA157E14A1457F00AA698B; + remoteInfo = nice; + }; + FCBA167214A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA158614A1458500AA698B; + remoteInfo = nohup; + }; + FCBA167414A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA158E14A1458800AA698B; + remoteInfo = path_helper; + }; + FCBA167614A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA159614A1458C00AA698B; + remoteInfo = printenv; + }; + FCBA167814A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA159E14A1459000AA698B; + remoteInfo = printf; + }; + FCBA167A14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15A614A1459500AA698B; + remoteInfo = pwd; + }; + FCBA167C14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15AE14A1459700AA698B; + remoteInfo = renice; + }; + FCBA167E14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15B614A1459900AA698B; + remoteInfo = script; + }; + FCBA168014A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15BE14A1459E00AA698B; + remoteInfo = seq; + }; + FCBA168214A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15C614A145A200AA698B; + remoteInfo = shlock; + }; + FCBA168414A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15CE14A145A500AA698B; + remoteInfo = sleep; + }; + FCBA168614A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15D614A145A700AA698B; + remoteInfo = su; + }; + FCBA168814A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15DE14A145A900AA698B; + remoteInfo = tee; + }; + FCBA168A14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15E614A145AE00AA698B; + remoteInfo = test; + }; + FCBA168C14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15EE14A145B000AA698B; + remoteInfo = time; + }; + FCBA168E14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15F614A145B200AA698B; + remoteInfo = true; + }; + FCBA169014A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15FE14A145B500AA698B; + remoteInfo = uname; + }; + FCBA169214A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA160614A145B800AA698B; + remoteInfo = users; + }; + FCBA169414A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA160E14A145BA00AA698B; + remoteInfo = w; + }; + FCBA169614A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA161614A145BC00AA698B; + remoteInfo = whereis; + }; + FCBA169814A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA161E14A145C000AA698B; + remoteInfo = which; + }; + FCBA169A14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA162614A145C500AA698B; + remoteInfo = who; + }; + FCBA169C14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA162E14A145C700AA698B; + remoteInfo = xargs; + }; + FCBA169E14A146D000AA698B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA163614A145CA00AA698B; + remoteInfo = yes; + }; + FCE30EE214B539BF00CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCE30EC214B5368A00CC0294; + remoteInfo = locate.bigram; + }; + FCE30EE414B539BF00CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCE30ED614B536C900CC0294; + remoteInfo = locate.code; + }; + FCE30F4E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA149814A141FF00AA698B; + remoteInfo = apply; + }; + FCE30F5014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14AE14A1422D00AA698B; + remoteInfo = basename; + }; + FCE30F5214B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14B714A1423E00AA698B; + remoteInfo = chroot; + }; + FCE30F5414B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14BF14A1426800AA698B; + remoteInfo = date; + }; + FCE30F5614B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14C714A1428000AA698B; + remoteInfo = dirname; + }; + FCE30F5814B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14CF14A1433F00AA698B; + remoteInfo = echo; + }; + FCE30F5A14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA14D714A1434A00AA698B; + remoteInfo = env; + }; + FCE30F5C14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA150E14A1453A00AA698B; + remoteInfo = expr; + }; + FCE30F5E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA151614A1454D00AA698B; + remoteInfo = false; + }; + FCE30F6014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA151E14A1455600AA698B; + remoteInfo = find; + }; + FCE30F6214B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA152614A1455900AA698B; + remoteInfo = getopt; + }; + FCE30F6414B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA152E14A1455C00AA698B; + remoteInfo = hostname; + }; + FCE30F6614B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA153614A1455F00AA698B; + remoteInfo = id; + }; + FCE30F6814B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA153E14A1456100AA698B; + remoteInfo = jot; + }; + FCE30F6A14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA154614A1456400AA698B; + remoteInfo = kill; + }; + FCE30F6C14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA154E14A1456700AA698B; + remoteInfo = killall; + }; + FCE30F6E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA155614A1456A00AA698B; + remoteInfo = lastcomm; + }; + FCE30F7014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA156614A1457100AA698B; + remoteInfo = logname; + }; + FCE30F7214B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA157614A1457B00AA698B; + remoteInfo = mktemp; + }; + FCE30F7414B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA157E14A1457F00AA698B; + remoteInfo = nice; + }; + FCE30F7614B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA158614A1458500AA698B; + remoteInfo = nohup; + }; + FCE30F7814B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA158E14A1458800AA698B; + remoteInfo = path_helper; + }; + FCE30F7A14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA159614A1458C00AA698B; + remoteInfo = printenv; + }; + FCE30F7C14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA159E14A1459000AA698B; + remoteInfo = printf; + }; + FCE30F7E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15A614A1459500AA698B; + remoteInfo = pwd; + }; + FCE30F8014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15AE14A1459700AA698B; + remoteInfo = renice; + }; + FCE30F8214B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15B614A1459900AA698B; + remoteInfo = script; + }; + FCE30F8414B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15BE14A1459E00AA698B; + remoteInfo = seq; + }; + FCE30F8614B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15C614A145A200AA698B; + remoteInfo = shlock; + }; + FCE30F8814B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15CE14A145A500AA698B; + remoteInfo = sleep; + }; + FCE30F8A14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15DE14A145A900AA698B; + remoteInfo = tee; + }; + FCE30F8C14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15E614A145AE00AA698B; + remoteInfo = test; + }; + FCE30F8E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15EE14A145B000AA698B; + remoteInfo = time; + }; + FCE30F9014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15F614A145B200AA698B; + remoteInfo = true; + }; + FCE30F9214B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA15FE14A145B500AA698B; + remoteInfo = uname; + }; + FCE30F9414B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA160614A145B800AA698B; + remoteInfo = users; + }; + FCE30F9614B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA160E14A145BA00AA698B; + remoteInfo = w; + }; + FCE30F9814B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA161614A145BC00AA698B; + remoteInfo = whereis; + }; + FCE30F9A14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA161E14A145C000AA698B; + remoteInfo = which; + }; + FCE30F9C14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA162614A145C500AA698B; + remoteInfo = who; + }; + FCE30F9E14B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA162E14A145C700AA698B; + remoteInfo = xargs; + }; + FCE30FA014B619E600CC0294 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = FC80BF5714A05A2F00C6F7F5 /* Project object */; + proxyType = 1; + remoteGlobalIDString = FCBA163614A145CA00AA698B; + remoteInfo = yes; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + FC5D638614B9819E00123E48 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC5D638E14B981D800123E48 /* what.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FC5D639314B9822D00123E48 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC5D639914B9825B00123E48 /* hexdump.1 in CopyFiles */, + FC5D639A14B9825B00123E48 /* od.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA149B14A141FF00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14ED14A1444E00AA698B /* apply.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14B114A1422D00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14EF14A1446B00AA698B /* basename.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14BA14A1423E00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCBA14F214A1448F00AA698B /* chroot.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14C214A1426800AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14F314A1449A00AA698B /* date.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14CA14A1428000AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14F814A144CB00AA698B /* dirname.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14D214A1433F00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14F914A144D000AA698B /* echo.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA14DA14A1434A00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA14FB14A144E300AA698B /* env.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA151114A1453A00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA030014B5071A0030BEB3 /* expr.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA151914A1454D00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA030214B5072C0030BEB3 /* false.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA152114A1455600AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA030B14B507450030BEB3 /* find.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA152914A1455900AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA030D14B507580030BEB3 /* getopt.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA153114A1455C00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA030F14B507700030BEB3 /* hostname.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA153914A1455F00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA031214B507870030BEB3 /* groups.1 in CopyFiles */, + FCBA031314B507870030BEB3 /* id.1 in CopyFiles */, + FCBA031414B507870030BEB3 /* whoami.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA154114A1456100AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA031614B507950030BEB3 /* jot.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA154914A1456400AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA031814B507A50030BEB3 /* kill.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA155114A1456700AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA031A14B507B60030BEB3 /* killall.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA155914A1456A00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA031C14B507C40030BEB3 /* lastcomm.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA156114A1456E00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA032014B507E50030BEB3 /* locate.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA156914A1457100AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02FE14B506FF0030BEB3 /* logname.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA157914A1457B00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02FA14B506DA0030BEB3 /* mktemp.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA158114A1457F00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02F714B506B10030BEB3 /* nice.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA158914A1458500AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02F614B5069C0030BEB3 /* nohup.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA159114A1458800AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCBA02F414B5068C0030BEB3 /* path_helper.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA159914A1458C00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02F214B5067C0030BEB3 /* printenv.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15A114A1459000AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02EF14B5065D0030BEB3 /* printf.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15A914A1459500AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCE30EA814B5105200CC0294 /* pwd.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15B114A1459700AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCBA02EB14B5063E0030BEB3 /* renice.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15B914A1459900AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02E914B5062E0030BEB3 /* script.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15C114A1459E00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA02E714B5061B0030BEB3 /* seq.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15C914A145A200AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0C14B3CD5B00ECF511 /* shlock.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15D114A145A500AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0914B3CD3E00ECF511 /* sleep.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15D914A145A700AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0814B3CD3500ECF511 /* su.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15E114A145A900AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0514B3CD1D00ECF511 /* tee.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15E914A145AE00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0314B3CD1400ECF511 /* [.1 in CopyFiles */, + FC2B5C0414B3CD1400ECF511 /* test.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15F114A145B000AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5C0114B3CD0300ECF511 /* time.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA15F914A145B200AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5BFF14B3CCEF00ECF511 /* true.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA160114A145B500AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FC2B5BFD14B3CCD200ECF511 /* uname.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA160914A145B800AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA165114A146C100AA698B /* users.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA161114A145BA00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA164F14A146A700AA698B /* w.1 in CopyFiles */, + FCBA164E14A146A500AA698B /* uptime.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA161914A145BC00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA164914A1469300AA698B /* whereis.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA162114A145C000AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA164714A1468900AA698B /* which.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA162914A145C500AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA164514A1468000AA698B /* who.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA163114A145C700AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA164214A1467500AA698B /* xargs.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCBA163914A145CA00AA698B /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + FCBA163E14A1466500AA698B /* yes.1 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCE30EB914B532C700CC0294 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /System/Library/LaunchDaemons/; + dstSubfolderSpec = 0; + files = ( + FCE30EBA14B532D900CC0294 /* com.apple.locate.plist in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCE30EBC14B5339000CC0294 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /private/etc/; + dstSubfolderSpec = 0; + files = ( + FCE30EBD14B533A200CC0294 /* locate.rc in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCE30EBE14B533B500CC0294 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 8; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCE30EBF14B533E200CC0294 /* locate.updatedb.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCE30EC714B5368A00CC0294 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCE30ED514B536B200CC0294 /* locate.bigram.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; + FCE30EDA14B536C900CC0294 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man8/; + dstSubfolderSpec = 0; + files = ( + FCE30EE114B536F800CC0294 /* locate.code.8 in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + FC5D636814B9808E00123E48 /* conv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = conv.c; sourceTree = ""; }; + FC5D636914B9808E00123E48 /* display.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = display.c; sourceTree = ""; }; + FC5D636A14B9808E00123E48 /* hexdump.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = hexdump.1; sourceTree = ""; }; + FC5D636B14B9808E00123E48 /* hexdump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hexdump.c; sourceTree = ""; }; + FC5D636C14B9808E00123E48 /* hexdump.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hexdump.h; sourceTree = ""; }; + FC5D636D14B9808E00123E48 /* hexsyntax.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hexsyntax.c; sourceTree = ""; }; + FC5D636E14B9808E00123E48 /* od.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = od.1; sourceTree = ""; }; + FC5D636F14B9808E00123E48 /* odsyntax.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = odsyntax.c; sourceTree = ""; }; + FC5D637014B9808E00123E48 /* parse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = parse.c; sourceTree = ""; }; + FC5D637214B9808E00123E48 /* what.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = what.1; sourceTree = ""; }; + FC5D637314B9808E00123E48 /* what.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = what.c; sourceTree = ""; }; + FC5D638B14B9819E00123E48 /* what */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = what; sourceTree = BUILT_PRODUCTS_DIR; }; + FC5D639714B9822D00123E48 /* hexdump */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = hexdump; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA02E514B505A50030BEB3 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = /usr/lib/libresolv.dylib; sourceTree = ""; }; + FCBA134114A141A300AA698B /* alias.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = alias.1; sourceTree = ""; }; + FCBA134314A141A300AA698B /* generic.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = generic.sh; sourceTree = ""; }; + FCBA134614A141A300AA698B /* apply.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = apply.1; sourceTree = ""; }; + FCBA134714A141A300AA698B /* apply.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = apply.c; sourceTree = ""; }; + FCBA134A14A141A300AA698B /* basename.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = basename.1; sourceTree = ""; }; + FCBA134B14A141A300AA698B /* basename.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = basename.c; sourceTree = ""; }; + FCBA134C14A141A300AA698B /* dirname.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; name = dirname.1; path = ../basename/dirname.1; sourceTree = ""; }; + FCBA134F14A141A300AA698B /* chroot.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = chroot.8; sourceTree = ""; }; + FCBA135014A141A300AA698B /* chroot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = chroot.c; sourceTree = ""; }; + FCBA135314A141A300AA698B /* date.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = date.1; sourceTree = ""; }; + FCBA135414A141A300AA698B /* date.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = date.c; sourceTree = ""; }; + FCBA135514A141A300AA698B /* extern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = extern.h; sourceTree = ""; }; + FCBA135714A141A300AA698B /* netdate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = netdate.c; sourceTree = ""; }; + FCBA135814A141A300AA698B /* vary.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vary.c; sourceTree = ""; }; + FCBA135914A141A300AA698B /* vary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vary.h; sourceTree = ""; }; + FCBA135B14A141A300AA698B /* dirname.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dirname.c; sourceTree = ""; }; + FCBA135E14A141A300AA698B /* echo.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = echo.1; sourceTree = ""; }; + FCBA135F14A141A300AA698B /* echo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = echo.c; sourceTree = ""; }; + FCBA136214A141A300AA698B /* env.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = env.1; sourceTree = ""; }; + FCBA136314A141A300AA698B /* env.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = env.c; sourceTree = ""; }; + FCBA136614A141A300AA698B /* expr.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = expr.1; sourceTree = ""; }; + FCBA136714A141A300AA698B /* expr.y */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.yacc; path = expr.y; sourceTree = ""; }; + FCBA136A14A141A300AA698B /* false.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = false.1; sourceTree = ""; }; + FCBA136B14A141A300AA698B /* false.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = false.c; sourceTree = ""; }; + FCBA136F14A141A300AA698B /* extern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = extern.h; sourceTree = ""; }; + FCBA137014A141A300AA698B /* find.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = find.1; sourceTree = ""; }; + FCBA137114A141A300AA698B /* find.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = find.c; sourceTree = ""; }; + FCBA137214A141A300AA698B /* find.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = find.h; sourceTree = ""; }; + FCBA137314A141A300AA698B /* function.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = function.c; sourceTree = ""; }; + FCBA137414A141A300AA698B /* getdate.y */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.yacc; path = getdate.y; sourceTree = ""; }; + FCBA137514A141A300AA698B /* ls.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ls.c; sourceTree = ""; }; + FCBA137614A141A300AA698B /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + FCBA137814A141A300AA698B /* misc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = ""; }; + FCBA137914A141A300AA698B /* operator.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = operator.c; sourceTree = ""; }; + FCBA137A14A141A300AA698B /* option.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = option.c; sourceTree = ""; }; + FCBA137C14A141A300AA698B /* getopt.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = getopt.1; sourceTree = ""; }; + FCBA137D14A141A300AA698B /* getopt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = getopt.c; sourceTree = ""; }; + FCBA138014A141A300AA698B /* hostname.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = hostname.1; sourceTree = ""; }; + FCBA138114A141A300AA698B /* hostname.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hostname.c; sourceTree = ""; }; + FCBA138414A141A300AA698B /* groups.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = groups.1; sourceTree = ""; }; + FCBA138514A141A300AA698B /* id.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = id.1; sourceTree = ""; }; + FCBA138614A141A300AA698B /* id.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = id.c; sourceTree = ""; }; + FCBA138A14A141A300AA698B /* whoami.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = whoami.1; sourceTree = ""; }; + FCBA138C14A141A300AA698B /* jot.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = jot.1; sourceTree = ""; }; + FCBA138D14A141A300AA698B /* jot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = jot.c; sourceTree = ""; }; + FCBA139014A141A300AA698B /* kill.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = kill.1; sourceTree = ""; }; + FCBA139114A141A300AA698B /* kill.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = kill.c; sourceTree = ""; }; + FCBA139414A141A300AA698B /* killall.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = killall.1; sourceTree = ""; }; + FCBA139514A141A300AA698B /* killall.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = killall.c; sourceTree = ""; }; + FCBA139814A141A300AA698B /* lastcomm.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = lastcomm.1; sourceTree = ""; }; + FCBA139914A141A300AA698B /* lastcomm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lastcomm.c; sourceTree = ""; }; + FCBA139B14A141A300AA698B /* pathnames.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pathnames.h; sourceTree = ""; }; + FCBA139E14A141A300AA698B /* locate.bigram.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = locate.bigram.c; sourceTree = ""; }; + FCBA13A114A141A300AA698B /* locate.code.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = locate.code.c; sourceTree = ""; }; + FCBA13A414A141A300AA698B /* com.apple.locate.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = com.apple.locate.plist; sourceTree = ""; }; + FCBA13A514A141A300AA698B /* concatdb.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = concatdb.sh; sourceTree = ""; }; + FCBA13A714A141A300AA698B /* locate.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = locate.1; sourceTree = ""; }; + FCBA13A814A141A300AA698B /* locate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = locate.c; sourceTree = ""; }; + FCBA13A914A141A300AA698B /* locate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = locate.h; sourceTree = ""; }; + FCBA13AA14A141A300AA698B /* locate.rc */ = {isa = PBXFileReference; lastKnownFileType = text; path = locate.rc; sourceTree = ""; }; + FCBA13AB14A141A300AA698B /* locate.updatedb.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = locate.updatedb.8; sourceTree = ""; }; + FCBA13AC14A141A300AA698B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + FCBA13AD14A141A300AA698B /* mklocatedb.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = mklocatedb.sh; sourceTree = ""; }; + FCBA13AE14A141A300AA698B /* pathnames.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pathnames.h; sourceTree = ""; }; + FCBA13AF14A141A300AA698B /* updatedb.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = updatedb.sh; sourceTree = ""; }; + FCBA13B014A141A300AA698B /* util.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = util.c; sourceTree = ""; }; + FCBA13B114A141A300AA698B /* locate.code.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = locate.code.8; sourceTree = ""; }; + FCBA13B214A141A300AA698B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + FCBA13B414A141A300AA698B /* logname.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = logname.1; sourceTree = ""; }; + FCBA13B514A141A300AA698B /* logname.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = logname.c; sourceTree = ""; }; + FCBA13C014A141A300AA698B /* mktemp.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = mktemp.1; sourceTree = ""; }; + FCBA13C114A141A300AA698B /* mktemp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mktemp.c; sourceTree = ""; }; + FCBA13C414A141A300AA698B /* nice.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = nice.1; sourceTree = ""; }; + FCBA13C514A141A300AA698B /* nice.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nice.c; sourceTree = ""; }; + FCBA13C814A141A300AA698B /* nohup.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = nohup.1; sourceTree = ""; }; + FCBA13C914A141A300AA698B /* nohup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nohup.c; sourceTree = ""; }; + FCBA13CC14A141A300AA698B /* path_helper.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = path_helper.8; sourceTree = ""; }; + FCBA13CD14A141A300AA698B /* path_helper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = path_helper.c; sourceTree = ""; }; + FCBA13D014A141A300AA698B /* printenv.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = printenv.1; sourceTree = ""; }; + FCBA13D114A141A300AA698B /* printenv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = printenv.c; sourceTree = ""; }; + FCBA13D414A141A300AA698B /* printf.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = printf.1; sourceTree = ""; }; + FCBA13D514A141A300AA698B /* printf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = printf.c; sourceTree = ""; }; + FCBA13D814A141A300AA698B /* pwd.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = pwd.1; sourceTree = ""; }; + FCBA13D914A141A300AA698B /* pwd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pwd.c; sourceTree = ""; }; + FCBA13DC14A141A300AA698B /* renice.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = renice.8; sourceTree = ""; }; + FCBA13DD14A141A300AA698B /* renice.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = renice.c; sourceTree = ""; }; + FCBA13E014A141A300AA698B /* script.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = script.1; sourceTree = ""; }; + FCBA13E114A141A300AA698B /* script.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = script.c; sourceTree = ""; }; + FCBA13E414A141A300AA698B /* seq.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = seq.1; sourceTree = ""; }; + FCBA13E514A141A300AA698B /* seq.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = seq.c; sourceTree = ""; }; + FCBA13E814A141A300AA698B /* shlock.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = shlock.1; sourceTree = ""; }; + FCBA13E914A141A300AA698B /* shlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = shlock.c; sourceTree = ""; }; + FCBA13EC14A141A300AA698B /* sleep.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = sleep.1; sourceTree = ""; }; + FCBA13ED14A141A300AA698B /* sleep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sleep.c; sourceTree = ""; }; + FCBA13EF14A141A300AA698B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + FCBA13F014A141A300AA698B /* su.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = su.1; sourceTree = ""; }; + FCBA13F114A141A300AA698B /* su.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = su.c; sourceTree = ""; }; + FCBA13F214A141A300AA698B /* su.pam */ = {isa = PBXFileReference; lastKnownFileType = text; path = su.pam; sourceTree = ""; }; + FCBA13F514A141A300AA698B /* tee.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = tee.1; sourceTree = ""; }; + FCBA13F614A141A300AA698B /* tee.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tee.c; sourceTree = ""; }; + FCBA13F814A141A300AA698B /* [.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = "[.1"; sourceTree = ""; }; + FCBA13FA14A141A300AA698B /* test.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = test.1; sourceTree = ""; }; + FCBA13FB14A141A300AA698B /* test.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = test.c; sourceTree = ""; }; + FCBA13FC14A141A300AA698B /* TEST.csh */ = {isa = PBXFileReference; lastKnownFileType = text.script.csh; path = TEST.csh; sourceTree = ""; }; + FCBA13FF14A141A300AA698B /* time.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = time.1; sourceTree = ""; }; + FCBA140014A141A300AA698B /* time.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = time.c; sourceTree = ""; }; + FCBA140314A141A300AA698B /* true.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = true.1; sourceTree = ""; }; + FCBA140414A141A300AA698B /* true.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = true.c; sourceTree = ""; }; + FCBA140814A141A300AA698B /* uname.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = uname.1; sourceTree = ""; }; + FCBA140914A141A300AA698B /* uname.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = uname.c; sourceTree = ""; }; + FCBA140C14A141A300AA698B /* users.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = users.1; sourceTree = ""; }; + FCBA140D14A141A300AA698B /* users.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = users.c; sourceTree = ""; }; + FCBA140F14A141A300AA698B /* extern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = extern.h; sourceTree = ""; }; + FCBA141014A141A300AA698B /* fmt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fmt.c; sourceTree = ""; }; + FCBA141114A141A300AA698B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + FCBA141214A141A300AA698B /* pr_time.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pr_time.c; sourceTree = ""; }; + FCBA141314A141A300AA698B /* proc_compare.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = proc_compare.c; sourceTree = ""; }; + FCBA141414A141A300AA698B /* uptime.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = uptime.1; sourceTree = ""; }; + FCBA141514A141A300AA698B /* w.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = w.1; sourceTree = ""; }; + FCBA141614A141A300AA698B /* w.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = w.c; sourceTree = ""; }; + FCBA141914A141A300AA698B /* whereis.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = whereis.1; sourceTree = ""; }; + FCBA141A14A141A300AA698B /* whereis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = whereis.c; sourceTree = ""; }; + FCBA141D14A141A300AA698B /* which.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = which.1; sourceTree = ""; }; + FCBA141E14A141A300AA698B /* which.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = which.c; sourceTree = ""; }; + FCBA142114A141A300AA698B /* utmpentry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = utmpentry.c; sourceTree = ""; }; + FCBA142214A141A300AA698B /* utmpentry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utmpentry.h; sourceTree = ""; }; + FCBA142314A141A300AA698B /* who.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = who.1; sourceTree = ""; }; + FCBA142414A141A300AA698B /* who.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = who.c; sourceTree = ""; }; + FCBA142714A141A300AA698B /* pathnames.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pathnames.h; sourceTree = ""; }; + FCBA142814A141A300AA698B /* strnsubst.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = strnsubst.c; sourceTree = ""; }; + FCBA142914A141A300AA698B /* xargs.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = xargs.1; sourceTree = ""; }; + FCBA142A14A141A300AA698B /* xargs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = xargs.c; sourceTree = ""; }; + FCBA142D14A141A300AA698B /* yes.1 */ = {isa = PBXFileReference; lastKnownFileType = text.man; path = yes.1; sourceTree = ""; }; + FCBA142E14A141A300AA698B /* yes.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = yes.c; sourceTree = ""; }; + FCBA149E14A141FF00AA698B /* alias copy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "alias copy"; path = apply; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14B414A1422D00AA698B /* basename */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = basename; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14BD14A1423E00AA698B /* chroot */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = chroot; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14C514A1426800AA698B /* date */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = date; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14CD14A1428000AA698B /* dirname */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dirname; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14D514A1433F00AA698B /* echo */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = echo; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA14DD14A1434A00AA698B /* env */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = env; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA151414A1453A00AA698B /* expr */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = expr; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA151C14A1454D00AA698B /* expr copy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = "expr copy"; path = false; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA152414A1455600AA698B /* find */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = find; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA152C14A1455900AA698B /* getopt */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = getopt; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA153414A1455C00AA698B /* hostname */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = hostname; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA153C14A1455F00AA698B /* id */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = id; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA154414A1456100AA698B /* jot */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jot; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA154C14A1456400AA698B /* kill */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = kill; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA155414A1456700AA698B /* killall */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = killall; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA155C14A1456A00AA698B /* lastcomm */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = lastcomm; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA156414A1456E00AA698B /* locate */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = locate; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA156C14A1457100AA698B /* logname */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = logname; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA157C14A1457B00AA698B /* mktemp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = mktemp; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA158414A1457F00AA698B /* nice */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = nice; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA158C14A1458500AA698B /* nohup */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = nohup; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA159414A1458800AA698B /* path_helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = path_helper; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA159C14A1458C00AA698B /* printenv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = printenv; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15A414A1459000AA698B /* printf */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = printf; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15AC14A1459500AA698B /* pwd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = pwd; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15B414A1459700AA698B /* renice */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = renice; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15BC14A1459900AA698B /* script */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = script; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15C414A1459E00AA698B /* seq */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = seq; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15CC14A145A200AA698B /* shlock */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = shlock; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15D414A145A500AA698B /* sleep */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sleep; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15DC14A145A700AA698B /* su */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = su; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15E414A145A900AA698B /* tee */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tee; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15EC14A145AE00AA698B /* test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15F414A145B000AA698B /* time */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = time; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA15FC14A145B200AA698B /* true */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = true; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA160414A145B500AA698B /* uname */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = uname; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA160C14A145B800AA698B /* users */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = users; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA161414A145BA00AA698B /* w */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = w; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA161C14A145BC00AA698B /* whereis */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = whereis; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA162414A145C000AA698B /* which */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = which; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA162C14A145C500AA698B /* who */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = who; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA163414A145C700AA698B /* xargs */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xargs; sourceTree = BUILT_PRODUCTS_DIR; }; + FCBA163C14A145CA00AA698B /* yes */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = yes; sourceTree = BUILT_PRODUCTS_DIR; }; + FCE30EC114B5347A00CC0294 /* locate.bigram.8 */ = {isa = PBXFileReference; lastKnownFileType = text; path = locate.bigram.8; sourceTree = ""; }; + FCE30ED214B5368A00CC0294 /* locate.bigram */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = locate.bigram; sourceTree = BUILT_PRODUCTS_DIR; }; + FCE30EDE14B536C900CC0294 /* locate.code */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = locate.code; sourceTree = BUILT_PRODUCTS_DIR; }; + FCED3AF514B4FC1800C313C3 /* libpam.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpam.dylib; path = /usr/lib/libpam.dylib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + FC5D638514B9819E00123E48 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FC5D639214B9822D00123E48 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA149A14A141FF00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14B014A1422D00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14B914A1423E00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14C114A1426800AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14C914A1428000AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14D114A1433F00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14D914A1434A00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA151014A1453A00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA151814A1454D00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA152014A1455600AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA152814A1455900AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA153014A1455C00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA153814A1455F00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA154014A1456100AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA154814A1456400AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA155014A1456700AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA155814A1456A00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA156014A1456E00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA156814A1457100AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA157814A1457B00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA158014A1457F00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA158814A1458500AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA159014A1458800AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA159814A1458C00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15A014A1459000AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15A814A1459500AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15B014A1459700AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15B814A1459900AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15C014A1459E00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15C814A145A200AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15D014A145A500AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15D814A145A700AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FCED3AF614B4FC1800C313C3 /* libpam.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15E014A145A900AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15E814A145AE00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15F014A145B000AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15F814A145B200AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA160014A145B500AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA160814A145B800AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA161014A145BA00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA161814A145BC00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA162014A145C000AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA162814A145C500AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA163014A145C700AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA163814A145CA00AA698B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCE30EC614B5368A00CC0294 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCE30ED914B536C900CC0294 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + FC5D636714B9808E00123E48 /* hexdump */ = { + isa = PBXGroup; + children = ( + FC5D636814B9808E00123E48 /* conv.c */, + FC5D636914B9808E00123E48 /* display.c */, + FC5D636A14B9808E00123E48 /* hexdump.1 */, + FC5D636B14B9808E00123E48 /* hexdump.c */, + FC5D636C14B9808E00123E48 /* hexdump.h */, + FC5D636D14B9808E00123E48 /* hexsyntax.c */, + FC5D636E14B9808E00123E48 /* od.1 */, + FC5D636F14B9808E00123E48 /* odsyntax.c */, + FC5D637014B9808E00123E48 /* parse.c */, + ); + path = hexdump; + sourceTree = ""; + }; + FC5D637114B9808E00123E48 /* what */ = { + isa = PBXGroup; + children = ( + FC5D637214B9808E00123E48 /* what.1 */, + FC5D637314B9808E00123E48 /* what.c */, + ); + path = what; + sourceTree = ""; + }; + FC80BF5514A05A2F00C6F7F5 = { + isa = PBXGroup; + children = ( + FCBA134014A141A300AA698B /* alias */, + FCBA134514A141A300AA698B /* apply */, + FCBA134914A141A300AA698B /* basename */, + FCBA134E14A141A300AA698B /* chroot */, + FCBA135214A141A300AA698B /* date */, + FCBA135A14A141A300AA698B /* dirname */, + FCBA135D14A141A300AA698B /* echo */, + FCBA136114A141A300AA698B /* env */, + FCBA136514A141A300AA698B /* expr */, + FCBA136914A141A300AA698B /* false */, + FCBA136E14A141A300AA698B /* find */, + FCBA137B14A141A300AA698B /* getopt */, + FC5D636714B9808E00123E48 /* hexdump */, + FCBA137F14A141A300AA698B /* hostname */, + FCBA138314A141A300AA698B /* id */, + FCBA138B14A141A300AA698B /* jot */, + FCBA138F14A141A300AA698B /* kill */, + FCBA139314A141A300AA698B /* killall */, + FCBA139714A141A300AA698B /* lastcomm */, + FCBA139C14A141A300AA698B /* locate */, + FCBA13B314A141A300AA698B /* logname */, + FCBA13BE14A141A300AA698B /* mktemp */, + FCBA13C214A141A300AA698B /* nice */, + FCBA13C614A141A300AA698B /* nohup */, + FCBA13CA14A141A300AA698B /* path_helper */, + FCBA13CE14A141A300AA698B /* printenv */, + FCBA13D214A141A300AA698B /* printf */, + FCBA13D614A141A300AA698B /* pwd */, + FCBA13DA14A141A300AA698B /* renice */, + FCBA13DE14A141A300AA698B /* script */, + FCBA13E214A141A300AA698B /* seq */, + FCBA13E614A141A300AA698B /* shlock */, + FCBA13EA14A141A300AA698B /* sleep */, + FCBA13EE14A141A300AA698B /* su */, + FCBA13F314A141A300AA698B /* tee */, + FCBA13F714A141A300AA698B /* test */, + FCBA13FD14A141A300AA698B /* time */, + FCBA140114A141A300AA698B /* true */, + FCBA140614A141A300AA698B /* uname */, + FCBA140A14A141A300AA698B /* users */, + FCBA140E14A141A300AA698B /* w */, + FC5D637114B9808E00123E48 /* what */, + FCBA141714A141A300AA698B /* whereis */, + FCBA141B14A141A300AA698B /* which */, + FCBA141F14A141A300AA698B /* who */, + FCBA142514A141A300AA698B /* xargs */, + FCBA142B14A141A300AA698B /* yes */, + FC80BF6114A05A2F00C6F7F5 /* Products */, + ); + sourceTree = ""; + }; + FC80BF6114A05A2F00C6F7F5 /* Products */ = { + isa = PBXGroup; + children = ( + FCBA149E14A141FF00AA698B /* alias copy */, + FCBA14B414A1422D00AA698B /* basename */, + FCBA14BD14A1423E00AA698B /* chroot */, + FCBA14C514A1426800AA698B /* date */, + FCBA14CD14A1428000AA698B /* dirname */, + FCBA14D514A1433F00AA698B /* echo */, + FCBA14DD14A1434A00AA698B /* env */, + FCBA151414A1453A00AA698B /* expr */, + FCBA151C14A1454D00AA698B /* expr copy */, + FCBA152414A1455600AA698B /* find */, + FCBA152C14A1455900AA698B /* getopt */, + FCBA153414A1455C00AA698B /* hostname */, + FCBA153C14A1455F00AA698B /* id */, + FCBA154414A1456100AA698B /* jot */, + FCBA154C14A1456400AA698B /* kill */, + FCBA155414A1456700AA698B /* killall */, + FCBA155C14A1456A00AA698B /* lastcomm */, + FCBA156414A1456E00AA698B /* locate */, + FCBA156C14A1457100AA698B /* logname */, + FCBA157C14A1457B00AA698B /* mktemp */, + FCBA158414A1457F00AA698B /* nice */, + FCBA158C14A1458500AA698B /* nohup */, + FCBA159414A1458800AA698B /* path_helper */, + FCBA159C14A1458C00AA698B /* printenv */, + FCBA15A414A1459000AA698B /* printf */, + FCBA15AC14A1459500AA698B /* pwd */, + FCBA15B414A1459700AA698B /* renice */, + FCBA15BC14A1459900AA698B /* script */, + FCBA15C414A1459E00AA698B /* seq */, + FCBA15CC14A145A200AA698B /* shlock */, + FCBA15D414A145A500AA698B /* sleep */, + FCBA15DC14A145A700AA698B /* su */, + FCBA15E414A145A900AA698B /* tee */, + FCBA15EC14A145AE00AA698B /* test */, + FCBA15F414A145B000AA698B /* time */, + FCBA15FC14A145B200AA698B /* true */, + FCBA160414A145B500AA698B /* uname */, + FCBA160C14A145B800AA698B /* users */, + FCBA161414A145BA00AA698B /* w */, + FCBA161C14A145BC00AA698B /* whereis */, + FCBA162414A145C000AA698B /* which */, + FCBA162C14A145C500AA698B /* who */, + FCBA163414A145C700AA698B /* xargs */, + FCBA163C14A145CA00AA698B /* yes */, + FCE30ED214B5368A00CC0294 /* locate.bigram */, + FCE30EDE14B536C900CC0294 /* locate.code */, + FC5D638B14B9819E00123E48 /* what */, + FC5D639714B9822D00123E48 /* hexdump */, + ); + name = Products; + sourceTree = ""; + }; + FCBA134014A141A300AA698B /* alias */ = { + isa = PBXGroup; + children = ( + FCBA134114A141A300AA698B /* alias.1 */, + FCBA134314A141A300AA698B /* generic.sh */, + ); + path = alias; + sourceTree = ""; + }; + FCBA134514A141A300AA698B /* apply */ = { + isa = PBXGroup; + children = ( + FCBA134614A141A300AA698B /* apply.1 */, + FCBA134714A141A300AA698B /* apply.c */, + ); + path = apply; + sourceTree = ""; + }; + FCBA134914A141A300AA698B /* basename */ = { + isa = PBXGroup; + children = ( + FCBA134A14A141A300AA698B /* basename.1 */, + FCBA134B14A141A300AA698B /* basename.c */, + ); + path = basename; + sourceTree = ""; + }; + FCBA134E14A141A300AA698B /* chroot */ = { + isa = PBXGroup; + children = ( + FCBA134F14A141A300AA698B /* chroot.8 */, + FCBA135014A141A300AA698B /* chroot.c */, + ); + path = chroot; + sourceTree = ""; + }; + FCBA135214A141A300AA698B /* date */ = { + isa = PBXGroup; + children = ( + FCBA135314A141A300AA698B /* date.1 */, + FCBA135414A141A300AA698B /* date.c */, + FCBA135514A141A300AA698B /* extern.h */, + FCBA135714A141A300AA698B /* netdate.c */, + FCBA135814A141A300AA698B /* vary.c */, + FCBA135914A141A300AA698B /* vary.h */, + ); + path = date; + sourceTree = ""; + }; + FCBA135A14A141A300AA698B /* dirname */ = { + isa = PBXGroup; + children = ( + FCBA135B14A141A300AA698B /* dirname.c */, + FCBA134C14A141A300AA698B /* dirname.1 */, + ); + path = dirname; + sourceTree = ""; + }; + FCBA135D14A141A300AA698B /* echo */ = { + isa = PBXGroup; + children = ( + FCBA135E14A141A300AA698B /* echo.1 */, + FCBA135F14A141A300AA698B /* echo.c */, + ); + path = echo; + sourceTree = ""; + }; + FCBA136114A141A300AA698B /* env */ = { + isa = PBXGroup; + children = ( + FCBA136214A141A300AA698B /* env.1 */, + FCBA136314A141A300AA698B /* env.c */, + ); + path = env; + sourceTree = ""; + }; + FCBA136514A141A300AA698B /* expr */ = { + isa = PBXGroup; + children = ( + FCBA136614A141A300AA698B /* expr.1 */, + FCBA136714A141A300AA698B /* expr.y */, + ); + path = expr; + sourceTree = ""; + }; + FCBA136914A141A300AA698B /* false */ = { + isa = PBXGroup; + children = ( + FCBA136A14A141A300AA698B /* false.1 */, + FCBA136B14A141A300AA698B /* false.c */, + ); + path = false; + sourceTree = ""; + }; + FCBA136E14A141A300AA698B /* find */ = { + isa = PBXGroup; + children = ( + FCBA136F14A141A300AA698B /* extern.h */, + FCBA137014A141A300AA698B /* find.1 */, + FCBA137114A141A300AA698B /* find.c */, + FCBA137214A141A300AA698B /* find.h */, + FCBA137314A141A300AA698B /* function.c */, + FCBA137414A141A300AA698B /* getdate.y */, + FCBA137514A141A300AA698B /* ls.c */, + FCBA137614A141A300AA698B /* main.c */, + FCBA137814A141A300AA698B /* misc.c */, + FCBA137914A141A300AA698B /* operator.c */, + FCBA137A14A141A300AA698B /* option.c */, + ); + path = find; + sourceTree = ""; + }; + FCBA137B14A141A300AA698B /* getopt */ = { + isa = PBXGroup; + children = ( + FCBA137C14A141A300AA698B /* getopt.1 */, + FCBA137D14A141A300AA698B /* getopt.c */, + ); + path = getopt; + sourceTree = ""; + }; + FCBA137F14A141A300AA698B /* hostname */ = { + isa = PBXGroup; + children = ( + FCBA138014A141A300AA698B /* hostname.1 */, + FCBA138114A141A300AA698B /* hostname.c */, + ); + path = hostname; + sourceTree = ""; + }; + FCBA138314A141A300AA698B /* id */ = { + isa = PBXGroup; + children = ( + FCBA138414A141A300AA698B /* groups.1 */, + FCBA138514A141A300AA698B /* id.1 */, + FCBA138614A141A300AA698B /* id.c */, + FCBA138A14A141A300AA698B /* whoami.1 */, + ); + path = id; + sourceTree = ""; + }; + FCBA138B14A141A300AA698B /* jot */ = { + isa = PBXGroup; + children = ( + FCBA138C14A141A300AA698B /* jot.1 */, + FCBA138D14A141A300AA698B /* jot.c */, + ); + path = jot; + sourceTree = ""; + }; + FCBA138F14A141A300AA698B /* kill */ = { + isa = PBXGroup; + children = ( + FCBA139014A141A300AA698B /* kill.1 */, + FCBA139114A141A300AA698B /* kill.c */, + ); + path = kill; + sourceTree = ""; + }; + FCBA139314A141A300AA698B /* killall */ = { + isa = PBXGroup; + children = ( + FCBA139414A141A300AA698B /* killall.1 */, + FCBA139514A141A300AA698B /* killall.c */, + ); + path = killall; + sourceTree = ""; + }; + FCBA139714A141A300AA698B /* lastcomm */ = { + isa = PBXGroup; + children = ( + FCBA139814A141A300AA698B /* lastcomm.1 */, + FCBA139914A141A300AA698B /* lastcomm.c */, + FCBA139B14A141A300AA698B /* pathnames.h */, + ); + path = lastcomm; + sourceTree = ""; + }; + FCBA139C14A141A300AA698B /* locate */ = { + isa = PBXGroup; + children = ( + FCBA139D14A141A300AA698B /* bigram */, + FCBA13A014A141A300AA698B /* code */, + FCBA13A314A141A300AA698B /* locate */, + FCBA13B214A141A300AA698B /* Makefile */, + ); + path = locate; + sourceTree = ""; + }; + FCBA139D14A141A300AA698B /* bigram */ = { + isa = PBXGroup; + children = ( + FCE30EC114B5347A00CC0294 /* locate.bigram.8 */, + FCBA139E14A141A300AA698B /* locate.bigram.c */, + ); + path = bigram; + sourceTree = ""; + }; + FCBA13A014A141A300AA698B /* code */ = { + isa = PBXGroup; + children = ( + FCBA13B114A141A300AA698B /* locate.code.8 */, + FCBA13A114A141A300AA698B /* locate.code.c */, + ); + path = code; + sourceTree = ""; + }; + FCBA13A314A141A300AA698B /* locate */ = { + isa = PBXGroup; + children = ( + FCBA13A414A141A300AA698B /* com.apple.locate.plist */, + FCBA13A514A141A300AA698B /* concatdb.sh */, + FCBA13A714A141A300AA698B /* locate.1 */, + FCBA13A814A141A300AA698B /* locate.c */, + FCBA13A914A141A300AA698B /* locate.h */, + FCBA13AA14A141A300AA698B /* locate.rc */, + FCBA13AB14A141A300AA698B /* locate.updatedb.8 */, + FCBA13AC14A141A300AA698B /* Makefile */, + FCBA13AD14A141A300AA698B /* mklocatedb.sh */, + FCBA13AE14A141A300AA698B /* pathnames.h */, + FCBA13AF14A141A300AA698B /* updatedb.sh */, + FCBA13B014A141A300AA698B /* util.c */, + ); + path = locate; + sourceTree = ""; + }; + FCBA13B314A141A300AA698B /* logname */ = { + isa = PBXGroup; + children = ( + FCBA13B414A141A300AA698B /* logname.1 */, + FCBA13B514A141A300AA698B /* logname.c */, + ); + path = logname; + sourceTree = ""; + }; + FCBA13BE14A141A300AA698B /* mktemp */ = { + isa = PBXGroup; + children = ( + FCBA13C014A141A300AA698B /* mktemp.1 */, + FCBA13C114A141A300AA698B /* mktemp.c */, + ); + path = mktemp; + sourceTree = ""; + }; + FCBA13C214A141A300AA698B /* nice */ = { + isa = PBXGroup; + children = ( + FCBA13C414A141A300AA698B /* nice.1 */, + FCBA13C514A141A300AA698B /* nice.c */, + ); + path = nice; + sourceTree = ""; + }; + FCBA13C614A141A300AA698B /* nohup */ = { + isa = PBXGroup; + children = ( + FCBA13C814A141A300AA698B /* nohup.1 */, + FCBA13C914A141A300AA698B /* nohup.c */, + ); + path = nohup; + sourceTree = ""; + }; + FCBA13CA14A141A300AA698B /* path_helper */ = { + isa = PBXGroup; + children = ( + FCBA13CC14A141A300AA698B /* path_helper.8 */, + FCBA13CD14A141A300AA698B /* path_helper.c */, + ); + path = path_helper; + sourceTree = ""; + }; + FCBA13CE14A141A300AA698B /* printenv */ = { + isa = PBXGroup; + children = ( + FCBA13D014A141A300AA698B /* printenv.1 */, + FCBA13D114A141A300AA698B /* printenv.c */, + ); + path = printenv; + sourceTree = ""; + }; + FCBA13D214A141A300AA698B /* printf */ = { + isa = PBXGroup; + children = ( + FCBA13D414A141A300AA698B /* printf.1 */, + FCBA13D514A141A300AA698B /* printf.c */, + ); + path = printf; + sourceTree = ""; + }; + FCBA13D614A141A300AA698B /* pwd */ = { + isa = PBXGroup; + children = ( + FCBA13D814A141A300AA698B /* pwd.1 */, + FCBA13D914A141A300AA698B /* pwd.c */, + ); + path = pwd; + sourceTree = ""; + }; + FCBA13DA14A141A300AA698B /* renice */ = { + isa = PBXGroup; + children = ( + FCBA13DC14A141A300AA698B /* renice.8 */, + FCBA13DD14A141A300AA698B /* renice.c */, + ); + path = renice; + sourceTree = ""; + }; + FCBA13DE14A141A300AA698B /* script */ = { + isa = PBXGroup; + children = ( + FCBA13E014A141A300AA698B /* script.1 */, + FCBA13E114A141A300AA698B /* script.c */, + ); + path = script; + sourceTree = ""; + }; + FCBA13E214A141A300AA698B /* seq */ = { + isa = PBXGroup; + children = ( + FCBA13E414A141A300AA698B /* seq.1 */, + FCBA13E514A141A300AA698B /* seq.c */, + ); + path = seq; + sourceTree = ""; + }; + FCBA13E614A141A300AA698B /* shlock */ = { + isa = PBXGroup; + children = ( + FCBA13E814A141A300AA698B /* shlock.1 */, + FCBA13E914A141A300AA698B /* shlock.c */, + ); + path = shlock; + sourceTree = ""; + }; + FCBA13EA14A141A300AA698B /* sleep */ = { + isa = PBXGroup; + children = ( + FCBA13EC14A141A300AA698B /* sleep.1 */, + FCBA13ED14A141A300AA698B /* sleep.c */, + ); + path = sleep; + sourceTree = ""; + }; + FCBA13EE14A141A300AA698B /* su */ = { + isa = PBXGroup; + children = ( + FCBA13EF14A141A300AA698B /* Makefile */, + FCBA13F014A141A300AA698B /* su.1 */, + FCBA13F114A141A300AA698B /* su.c */, + FCBA13F214A141A300AA698B /* su.pam */, + FCED3AF514B4FC1800C313C3 /* libpam.dylib */, + ); + path = su; + sourceTree = ""; + }; + FCBA13F314A141A300AA698B /* tee */ = { + isa = PBXGroup; + children = ( + FCBA13F514A141A300AA698B /* tee.1 */, + FCBA13F614A141A300AA698B /* tee.c */, + ); + path = tee; + sourceTree = ""; + }; + FCBA13F714A141A300AA698B /* test */ = { + isa = PBXGroup; + children = ( + FCBA13F814A141A300AA698B /* [.1 */, + FCBA13FA14A141A300AA698B /* test.1 */, + FCBA13FB14A141A300AA698B /* test.c */, + FCBA13FC14A141A300AA698B /* TEST.csh */, + ); + path = test; + sourceTree = ""; + }; + FCBA13FD14A141A300AA698B /* time */ = { + isa = PBXGroup; + children = ( + FCBA13FF14A141A300AA698B /* time.1 */, + FCBA140014A141A300AA698B /* time.c */, + ); + path = time; + sourceTree = ""; + }; + FCBA140114A141A300AA698B /* true */ = { + isa = PBXGroup; + children = ( + FCBA140314A141A300AA698B /* true.1 */, + FCBA140414A141A300AA698B /* true.c */, + ); + path = true; + sourceTree = ""; + }; + FCBA140614A141A300AA698B /* uname */ = { + isa = PBXGroup; + children = ( + FCBA140814A141A300AA698B /* uname.1 */, + FCBA140914A141A300AA698B /* uname.c */, + ); + path = uname; + sourceTree = ""; + }; + FCBA140A14A141A300AA698B /* users */ = { + isa = PBXGroup; + children = ( + FCBA140C14A141A300AA698B /* users.1 */, + FCBA140D14A141A300AA698B /* users.c */, + ); + path = users; + sourceTree = ""; + }; + FCBA140E14A141A300AA698B /* w */ = { + isa = PBXGroup; + children = ( + FCBA140F14A141A300AA698B /* extern.h */, + FCBA141014A141A300AA698B /* fmt.c */, + FCBA141114A141A300AA698B /* Makefile */, + FCBA141214A141A300AA698B /* pr_time.c */, + FCBA141314A141A300AA698B /* proc_compare.c */, + FCBA141414A141A300AA698B /* uptime.1 */, + FCBA141514A141A300AA698B /* w.1 */, + FCBA141614A141A300AA698B /* w.c */, + ); + path = w; + sourceTree = ""; + }; + FCBA141714A141A300AA698B /* whereis */ = { + isa = PBXGroup; + children = ( + FCBA141914A141A300AA698B /* whereis.1 */, + FCBA141A14A141A300AA698B /* whereis.c */, + ); + path = whereis; + sourceTree = ""; + }; + FCBA141B14A141A300AA698B /* which */ = { + isa = PBXGroup; + children = ( + FCBA141D14A141A300AA698B /* which.1 */, + FCBA141E14A141A300AA698B /* which.c */, + ); + path = which; + sourceTree = ""; + }; + FCBA141F14A141A300AA698B /* who */ = { + isa = PBXGroup; + children = ( + FCBA142114A141A300AA698B /* utmpentry.c */, + FCBA142214A141A300AA698B /* utmpentry.h */, + FCBA142314A141A300AA698B /* who.1 */, + FCBA142414A141A300AA698B /* who.c */, + FCBA02E514B505A50030BEB3 /* libresolv.dylib */, + ); + path = who; + sourceTree = ""; + }; + FCBA142514A141A300AA698B /* xargs */ = { + isa = PBXGroup; + children = ( + FCBA142714A141A300AA698B /* pathnames.h */, + FCBA142814A141A300AA698B /* strnsubst.c */, + FCBA142914A141A300AA698B /* xargs.1 */, + FCBA142A14A141A300AA698B /* xargs.c */, + ); + path = xargs; + sourceTree = ""; + }; + FCBA142B14A141A300AA698B /* yes */ = { + isa = PBXGroup; + children = ( + FCBA142D14A141A300AA698B /* yes.1 */, + FCBA142E14A141A300AA698B /* yes.c */, + ); + path = yes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + FC5D637F14B9819E00123E48 /* what */ = { + isa = PBXNativeTarget; + buildConfigurationList = FC5D638914B9819E00123E48 /* Build configuration list for PBXNativeTarget "what" */; + buildPhases = ( + FC5D638014B9819E00123E48 /* Sources */, + FC5D638514B9819E00123E48 /* Frameworks */, + FC5D638614B9819E00123E48 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = what; + productName = shell_cmds; + productReference = FC5D638B14B9819E00123E48 /* what */; + productType = "com.apple.product-type.tool"; + }; + FC5D638F14B9822D00123E48 /* hexdump */ = { + isa = PBXNativeTarget; + buildConfigurationList = FC5D639514B9822D00123E48 /* Build configuration list for PBXNativeTarget "hexdump" */; + buildPhases = ( + FC5D639014B9822D00123E48 /* Sources */, + FC5D639214B9822D00123E48 /* Frameworks */, + FC5D639314B9822D00123E48 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = hexdump; + productName = shell_cmds; + productReference = FC5D639714B9822D00123E48 /* hexdump */; + productType = "com.apple.product-type.tool"; + }; + FCBA149814A141FF00AA698B /* apply */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA149C14A141FF00AA698B /* Build configuration list for PBXNativeTarget "apply" */; + buildPhases = ( + FCBA149914A141FF00AA698B /* Sources */, + FCBA149A14A141FF00AA698B /* Frameworks */, + FCBA149B14A141FF00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = apply; + productName = shell_cmds; + productReference = FCBA149E14A141FF00AA698B /* alias copy */; + productType = "com.apple.product-type.tool"; + }; + FCBA14AE14A1422D00AA698B /* basename */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14B214A1422D00AA698B /* Build configuration list for PBXNativeTarget "basename" */; + buildPhases = ( + FCBA14AF14A1422D00AA698B /* Sources */, + FCBA14B014A1422D00AA698B /* Frameworks */, + FCBA14B114A1422D00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = basename; + productName = shell_cmds; + productReference = FCBA14B414A1422D00AA698B /* basename */; + productType = "com.apple.product-type.tool"; + }; + FCBA14B714A1423E00AA698B /* chroot */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14BB14A1423E00AA698B /* Build configuration list for PBXNativeTarget "chroot" */; + buildPhases = ( + FCBA14B814A1423E00AA698B /* Sources */, + FCBA14B914A1423E00AA698B /* Frameworks */, + FCBA14BA14A1423E00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = chroot; + productName = shell_cmds; + productReference = FCBA14BD14A1423E00AA698B /* chroot */; + productType = "com.apple.product-type.tool"; + }; + FCBA14BF14A1426800AA698B /* date */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14C314A1426800AA698B /* Build configuration list for PBXNativeTarget "date" */; + buildPhases = ( + FCBA14C014A1426800AA698B /* Sources */, + FCBA14C114A1426800AA698B /* Frameworks */, + FCBA14C214A1426800AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = date; + productName = shell_cmds; + productReference = FCBA14C514A1426800AA698B /* date */; + productType = "com.apple.product-type.tool"; + }; + FCBA14C714A1428000AA698B /* dirname */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14CB14A1428000AA698B /* Build configuration list for PBXNativeTarget "dirname" */; + buildPhases = ( + FCBA14C814A1428000AA698B /* Sources */, + FCBA14C914A1428000AA698B /* Frameworks */, + FCBA14CA14A1428000AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = dirname; + productName = shell_cmds; + productReference = FCBA14CD14A1428000AA698B /* dirname */; + productType = "com.apple.product-type.tool"; + }; + FCBA14CF14A1433F00AA698B /* echo */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14D314A1433F00AA698B /* Build configuration list for PBXNativeTarget "echo" */; + buildPhases = ( + FCBA14D014A1433F00AA698B /* Sources */, + FCBA14D114A1433F00AA698B /* Frameworks */, + FCBA14D214A1433F00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = echo; + productName = shell_cmds; + productReference = FCBA14D514A1433F00AA698B /* echo */; + productType = "com.apple.product-type.tool"; + }; + FCBA14D714A1434A00AA698B /* env */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA14DB14A1434A00AA698B /* Build configuration list for PBXNativeTarget "env" */; + buildPhases = ( + FCBA14D814A1434A00AA698B /* Sources */, + FCBA14D914A1434A00AA698B /* Frameworks */, + FCBA14DA14A1434A00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = env; + productName = shell_cmds; + productReference = FCBA14DD14A1434A00AA698B /* env */; + productType = "com.apple.product-type.tool"; + }; + FCBA150E14A1453A00AA698B /* expr */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA151214A1453A00AA698B /* Build configuration list for PBXNativeTarget "expr" */; + buildPhases = ( + FCBA150F14A1453A00AA698B /* Sources */, + FCBA151014A1453A00AA698B /* Frameworks */, + FCBA151114A1453A00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = expr; + productName = shell_cmds; + productReference = FCBA151414A1453A00AA698B /* expr */; + productType = "com.apple.product-type.tool"; + }; + FCBA151614A1454D00AA698B /* false */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA151A14A1454D00AA698B /* Build configuration list for PBXNativeTarget "false" */; + buildPhases = ( + FCBA151714A1454D00AA698B /* Sources */, + FCBA151814A1454D00AA698B /* Frameworks */, + FCBA151914A1454D00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = false; + productName = shell_cmds; + productReference = FCBA151C14A1454D00AA698B /* expr copy */; + productType = "com.apple.product-type.tool"; + }; + FCBA151E14A1455600AA698B /* find */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA152214A1455600AA698B /* Build configuration list for PBXNativeTarget "find" */; + buildPhases = ( + FCBA151F14A1455600AA698B /* Sources */, + FCBA152014A1455600AA698B /* Frameworks */, + FCBA152114A1455600AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = find; + productName = shell_cmds; + productReference = FCBA152414A1455600AA698B /* find */; + productType = "com.apple.product-type.tool"; + }; + FCBA152614A1455900AA698B /* getopt */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA152A14A1455900AA698B /* Build configuration list for PBXNativeTarget "getopt" */; + buildPhases = ( + FCBA152714A1455900AA698B /* Sources */, + FCBA152814A1455900AA698B /* Frameworks */, + FCBA152914A1455900AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = getopt; + productName = shell_cmds; + productReference = FCBA152C14A1455900AA698B /* getopt */; + productType = "com.apple.product-type.tool"; + }; + FCBA152E14A1455C00AA698B /* hostname */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA153214A1455C00AA698B /* Build configuration list for PBXNativeTarget "hostname" */; + buildPhases = ( + FCBA152F14A1455C00AA698B /* Sources */, + FCBA153014A1455C00AA698B /* Frameworks */, + FCBA153114A1455C00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = hostname; + productName = shell_cmds; + productReference = FCBA153414A1455C00AA698B /* hostname */; + productType = "com.apple.product-type.tool"; + }; + FCBA153614A1455F00AA698B /* id */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA153A14A1455F00AA698B /* Build configuration list for PBXNativeTarget "id" */; + buildPhases = ( + FCBA153714A1455F00AA698B /* Sources */, + FCBA153814A1455F00AA698B /* Frameworks */, + FCBA153914A1455F00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = id; + productName = shell_cmds; + productReference = FCBA153C14A1455F00AA698B /* id */; + productType = "com.apple.product-type.tool"; + }; + FCBA153E14A1456100AA698B /* jot */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA154214A1456100AA698B /* Build configuration list for PBXNativeTarget "jot" */; + buildPhases = ( + FCBA153F14A1456100AA698B /* Sources */, + FCBA154014A1456100AA698B /* Frameworks */, + FCBA154114A1456100AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = jot; + productName = shell_cmds; + productReference = FCBA154414A1456100AA698B /* jot */; + productType = "com.apple.product-type.tool"; + }; + FCBA154614A1456400AA698B /* kill */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA154A14A1456400AA698B /* Build configuration list for PBXNativeTarget "kill" */; + buildPhases = ( + FCBA154714A1456400AA698B /* Sources */, + FCBA154814A1456400AA698B /* Frameworks */, + FCBA154914A1456400AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = kill; + productName = shell_cmds; + productReference = FCBA154C14A1456400AA698B /* kill */; + productType = "com.apple.product-type.tool"; + }; + FCBA154E14A1456700AA698B /* killall */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA155214A1456700AA698B /* Build configuration list for PBXNativeTarget "killall" */; + buildPhases = ( + FCBA154F14A1456700AA698B /* Sources */, + FCBA155014A1456700AA698B /* Frameworks */, + FCBA155114A1456700AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = killall; + productName = shell_cmds; + productReference = FCBA155414A1456700AA698B /* killall */; + productType = "com.apple.product-type.tool"; + }; + FCBA155614A1456A00AA698B /* lastcomm */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA155A14A1456A00AA698B /* Build configuration list for PBXNativeTarget "lastcomm" */; + buildPhases = ( + FCBA155714A1456A00AA698B /* Sources */, + FCBA155814A1456A00AA698B /* Frameworks */, + FCBA155914A1456A00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = lastcomm; + productName = shell_cmds; + productReference = FCBA155C14A1456A00AA698B /* lastcomm */; + productType = "com.apple.product-type.tool"; + }; + FCBA155E14A1456E00AA698B /* locate */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA156214A1456E00AA698B /* Build configuration list for PBXNativeTarget "locate" */; + buildPhases = ( + FCBA155F14A1456E00AA698B /* Sources */, + FCBA156014A1456E00AA698B /* Frameworks */, + FCBA156114A1456E00AA698B /* CopyFiles */, + FCE30EBE14B533B500CC0294 /* CopyFiles */, + FCE30EB914B532C700CC0294 /* CopyFiles */, + FCE30EBC14B5339000CC0294 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = locate; + productName = shell_cmds; + productReference = FCBA156414A1456E00AA698B /* locate */; + productType = "com.apple.product-type.tool"; + }; + FCBA156614A1457100AA698B /* logname */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA156A14A1457100AA698B /* Build configuration list for PBXNativeTarget "logname" */; + buildPhases = ( + FCBA156714A1457100AA698B /* Sources */, + FCBA156814A1457100AA698B /* Frameworks */, + FCBA156914A1457100AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = logname; + productName = shell_cmds; + productReference = FCBA156C14A1457100AA698B /* logname */; + productType = "com.apple.product-type.tool"; + }; + FCBA157614A1457B00AA698B /* mktemp */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA157A14A1457B00AA698B /* Build configuration list for PBXNativeTarget "mktemp" */; + buildPhases = ( + FCBA157714A1457B00AA698B /* Sources */, + FCBA157814A1457B00AA698B /* Frameworks */, + FCBA157914A1457B00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = mktemp; + productName = shell_cmds; + productReference = FCBA157C14A1457B00AA698B /* mktemp */; + productType = "com.apple.product-type.tool"; + }; + FCBA157E14A1457F00AA698B /* nice */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA158214A1457F00AA698B /* Build configuration list for PBXNativeTarget "nice" */; + buildPhases = ( + FCBA157F14A1457F00AA698B /* Sources */, + FCBA158014A1457F00AA698B /* Frameworks */, + FCBA158114A1457F00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = nice; + productName = shell_cmds; + productReference = FCBA158414A1457F00AA698B /* nice */; + productType = "com.apple.product-type.tool"; + }; + FCBA158614A1458500AA698B /* nohup */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA158A14A1458500AA698B /* Build configuration list for PBXNativeTarget "nohup" */; + buildPhases = ( + FCBA158714A1458500AA698B /* Sources */, + FCBA158814A1458500AA698B /* Frameworks */, + FCBA158914A1458500AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = nohup; + productName = shell_cmds; + productReference = FCBA158C14A1458500AA698B /* nohup */; + productType = "com.apple.product-type.tool"; + }; + FCBA158E14A1458800AA698B /* path_helper */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA159214A1458800AA698B /* Build configuration list for PBXNativeTarget "path_helper" */; + buildPhases = ( + FCBA158F14A1458800AA698B /* Sources */, + FCBA159014A1458800AA698B /* Frameworks */, + FCBA159114A1458800AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = path_helper; + productName = shell_cmds; + productReference = FCBA159414A1458800AA698B /* path_helper */; + productType = "com.apple.product-type.tool"; + }; + FCBA159614A1458C00AA698B /* printenv */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA159A14A1458C00AA698B /* Build configuration list for PBXNativeTarget "printenv" */; + buildPhases = ( + FCBA159714A1458C00AA698B /* Sources */, + FCBA159814A1458C00AA698B /* Frameworks */, + FCBA159914A1458C00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = printenv; + productName = shell_cmds; + productReference = FCBA159C14A1458C00AA698B /* printenv */; + productType = "com.apple.product-type.tool"; + }; + FCBA159E14A1459000AA698B /* printf */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15A214A1459000AA698B /* Build configuration list for PBXNativeTarget "printf" */; + buildPhases = ( + FCBA159F14A1459000AA698B /* Sources */, + FCBA15A014A1459000AA698B /* Frameworks */, + FCBA15A114A1459000AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = printf; + productName = shell_cmds; + productReference = FCBA15A414A1459000AA698B /* printf */; + productType = "com.apple.product-type.tool"; + }; + FCBA15A614A1459500AA698B /* pwd */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15AA14A1459500AA698B /* Build configuration list for PBXNativeTarget "pwd" */; + buildPhases = ( + FCBA15A714A1459500AA698B /* Sources */, + FCBA15A814A1459500AA698B /* Frameworks */, + FCBA15A914A1459500AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = pwd; + productName = shell_cmds; + productReference = FCBA15AC14A1459500AA698B /* pwd */; + productType = "com.apple.product-type.tool"; + }; + FCBA15AE14A1459700AA698B /* renice */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15B214A1459700AA698B /* Build configuration list for PBXNativeTarget "renice" */; + buildPhases = ( + FCBA15AF14A1459700AA698B /* Sources */, + FCBA15B014A1459700AA698B /* Frameworks */, + FCBA15B114A1459700AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = renice; + productName = shell_cmds; + productReference = FCBA15B414A1459700AA698B /* renice */; + productType = "com.apple.product-type.tool"; + }; + FCBA15B614A1459900AA698B /* script */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15BA14A1459900AA698B /* Build configuration list for PBXNativeTarget "script" */; + buildPhases = ( + FCBA15B714A1459900AA698B /* Sources */, + FCBA15B814A1459900AA698B /* Frameworks */, + FCBA15B914A1459900AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = script; + productName = shell_cmds; + productReference = FCBA15BC14A1459900AA698B /* script */; + productType = "com.apple.product-type.tool"; + }; + FCBA15BE14A1459E00AA698B /* seq */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15C214A1459E00AA698B /* Build configuration list for PBXNativeTarget "seq" */; + buildPhases = ( + FCBA15BF14A1459E00AA698B /* Sources */, + FCBA15C014A1459E00AA698B /* Frameworks */, + FCBA15C114A1459E00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = seq; + productName = shell_cmds; + productReference = FCBA15C414A1459E00AA698B /* seq */; + productType = "com.apple.product-type.tool"; + }; + FCBA15C614A145A200AA698B /* shlock */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15CA14A145A200AA698B /* Build configuration list for PBXNativeTarget "shlock" */; + buildPhases = ( + FCBA15C714A145A200AA698B /* Sources */, + FCBA15C814A145A200AA698B /* Frameworks */, + FCBA15C914A145A200AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = shlock; + productName = shell_cmds; + productReference = FCBA15CC14A145A200AA698B /* shlock */; + productType = "com.apple.product-type.tool"; + }; + FCBA15CE14A145A500AA698B /* sleep */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15D214A145A500AA698B /* Build configuration list for PBXNativeTarget "sleep" */; + buildPhases = ( + FCBA15CF14A145A500AA698B /* Sources */, + FCBA15D014A145A500AA698B /* Frameworks */, + FCBA15D114A145A500AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = sleep; + productName = shell_cmds; + productReference = FCBA15D414A145A500AA698B /* sleep */; + productType = "com.apple.product-type.tool"; + }; + FCBA15D614A145A700AA698B /* su */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15DA14A145A700AA698B /* Build configuration list for PBXNativeTarget "su" */; + buildPhases = ( + FCBA15D714A145A700AA698B /* Sources */, + FCBA15D814A145A700AA698B /* Frameworks */, + FCBA15D914A145A700AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = su; + productName = shell_cmds; + productReference = FCBA15DC14A145A700AA698B /* su */; + productType = "com.apple.product-type.tool"; + }; + FCBA15DE14A145A900AA698B /* tee */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15E214A145A900AA698B /* Build configuration list for PBXNativeTarget "tee" */; + buildPhases = ( + FCBA15DF14A145A900AA698B /* Sources */, + FCBA15E014A145A900AA698B /* Frameworks */, + FCBA15E114A145A900AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tee; + productName = shell_cmds; + productReference = FCBA15E414A145A900AA698B /* tee */; + productType = "com.apple.product-type.tool"; + }; + FCBA15E614A145AE00AA698B /* test */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15EA14A145AE00AA698B /* Build configuration list for PBXNativeTarget "test" */; + buildPhases = ( + FCBA15E714A145AE00AA698B /* Sources */, + FCBA15E814A145AE00AA698B /* Frameworks */, + FCBA15E914A145AE00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = test; + productName = shell_cmds; + productReference = FCBA15EC14A145AE00AA698B /* test */; + productType = "com.apple.product-type.tool"; + }; + FCBA15EE14A145B000AA698B /* time */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15F214A145B000AA698B /* Build configuration list for PBXNativeTarget "time" */; + buildPhases = ( + FCBA15EF14A145B000AA698B /* Sources */, + FCBA15F014A145B000AA698B /* Frameworks */, + FCBA15F114A145B000AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = time; + productName = shell_cmds; + productReference = FCBA15F414A145B000AA698B /* time */; + productType = "com.apple.product-type.tool"; + }; + FCBA15F614A145B200AA698B /* true */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA15FA14A145B200AA698B /* Build configuration list for PBXNativeTarget "true" */; + buildPhases = ( + FCBA15F714A145B200AA698B /* Sources */, + FCBA15F814A145B200AA698B /* Frameworks */, + FCBA15F914A145B200AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = true; + productName = shell_cmds; + productReference = FCBA15FC14A145B200AA698B /* true */; + productType = "com.apple.product-type.tool"; + }; + FCBA15FE14A145B500AA698B /* uname */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA160214A145B500AA698B /* Build configuration list for PBXNativeTarget "uname" */; + buildPhases = ( + FCBA15FF14A145B500AA698B /* Sources */, + FCBA160014A145B500AA698B /* Frameworks */, + FCBA160114A145B500AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = uname; + productName = shell_cmds; + productReference = FCBA160414A145B500AA698B /* uname */; + productType = "com.apple.product-type.tool"; + }; + FCBA160614A145B800AA698B /* users */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA160A14A145B800AA698B /* Build configuration list for PBXNativeTarget "users" */; + buildPhases = ( + FCBA160714A145B800AA698B /* Sources */, + FCBA160814A145B800AA698B /* Frameworks */, + FCBA160914A145B800AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = users; + productName = shell_cmds; + productReference = FCBA160C14A145B800AA698B /* users */; + productType = "com.apple.product-type.tool"; + }; + FCBA160E14A145BA00AA698B /* w */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA161214A145BA00AA698B /* Build configuration list for PBXNativeTarget "w" */; + buildPhases = ( + FCBA160F14A145BA00AA698B /* Sources */, + FCBA161014A145BA00AA698B /* Frameworks */, + FCBA161114A145BA00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = w; + productName = shell_cmds; + productReference = FCBA161414A145BA00AA698B /* w */; + productType = "com.apple.product-type.tool"; + }; + FCBA161614A145BC00AA698B /* whereis */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA161A14A145BC00AA698B /* Build configuration list for PBXNativeTarget "whereis" */; + buildPhases = ( + FCBA161714A145BC00AA698B /* Sources */, + FCBA161814A145BC00AA698B /* Frameworks */, + FCBA161914A145BC00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = whereis; + productName = shell_cmds; + productReference = FCBA161C14A145BC00AA698B /* whereis */; + productType = "com.apple.product-type.tool"; + }; + FCBA161E14A145C000AA698B /* which */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA162214A145C000AA698B /* Build configuration list for PBXNativeTarget "which" */; + buildPhases = ( + FCBA161F14A145C000AA698B /* Sources */, + FCBA162014A145C000AA698B /* Frameworks */, + FCBA162114A145C000AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = which; + productName = shell_cmds; + productReference = FCBA162414A145C000AA698B /* which */; + productType = "com.apple.product-type.tool"; + }; + FCBA162614A145C500AA698B /* who */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA162A14A145C500AA698B /* Build configuration list for PBXNativeTarget "who" */; + buildPhases = ( + FCBA162714A145C500AA698B /* Sources */, + FCBA162814A145C500AA698B /* Frameworks */, + FCBA162914A145C500AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = who; + productName = shell_cmds; + productReference = FCBA162C14A145C500AA698B /* who */; + productType = "com.apple.product-type.tool"; + }; + FCBA162E14A145C700AA698B /* xargs */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA163214A145C700AA698B /* Build configuration list for PBXNativeTarget "xargs" */; + buildPhases = ( + FCBA162F14A145C700AA698B /* Sources */, + FCBA163014A145C700AA698B /* Frameworks */, + FCBA163114A145C700AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = xargs; + productName = shell_cmds; + productReference = FCBA163414A145C700AA698B /* xargs */; + productType = "com.apple.product-type.tool"; + }; + FCBA163614A145CA00AA698B /* yes */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCBA163A14A145CA00AA698B /* Build configuration list for PBXNativeTarget "yes" */; + buildPhases = ( + FCBA163714A145CA00AA698B /* Sources */, + FCBA163814A145CA00AA698B /* Frameworks */, + FCBA163914A145CA00AA698B /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = yes; + productName = shell_cmds; + productReference = FCBA163C14A145CA00AA698B /* yes */; + productType = "com.apple.product-type.tool"; + }; + FCE30EC214B5368A00CC0294 /* locate.bigram */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCE30ED014B5368A00CC0294 /* Build configuration list for PBXNativeTarget "locate.bigram" */; + buildPhases = ( + FCE30EC314B5368A00CC0294 /* Sources */, + FCE30EC614B5368A00CC0294 /* Frameworks */, + FCE30EC714B5368A00CC0294 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = locate.bigram; + productName = shell_cmds; + productReference = FCE30ED214B5368A00CC0294 /* locate.bigram */; + productType = "com.apple.product-type.tool"; + }; + FCE30ED614B536C900CC0294 /* locate.code */ = { + isa = PBXNativeTarget; + buildConfigurationList = FCE30EDC14B536C900CC0294 /* Build configuration list for PBXNativeTarget "locate.code" */; + buildPhases = ( + FCE30ED714B536C900CC0294 /* Sources */, + FCE30ED914B536C900CC0294 /* Frameworks */, + FCE30EDA14B536C900CC0294 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = locate.code; + productName = shell_cmds; + productReference = FCE30EDE14B536C900CC0294 /* locate.code */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + FC80BF5714A05A2F00C6F7F5 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0430; + ORGANIZATIONNAME = "Apple Inc."; + }; + buildConfigurationList = FC80BF5A14A05A2F00C6F7F5 /* Build configuration list for PBXProject "shell_cmds" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = FC80BF5514A05A2F00C6F7F5; + productRefGroup = FC80BF6114A05A2F00C6F7F5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FCBA14FD14A144EC00AA698B /* All_OSX */, + FCE30F4A14B619B000CC0294 /* All_iOS */, + FCBA149814A141FF00AA698B /* apply */, + FCBA14AE14A1422D00AA698B /* basename */, + FCBA14B714A1423E00AA698B /* chroot */, + FCBA14BF14A1426800AA698B /* date */, + FCBA14C714A1428000AA698B /* dirname */, + FCBA14CF14A1433F00AA698B /* echo */, + FCBA14D714A1434A00AA698B /* env */, + FCBA150E14A1453A00AA698B /* expr */, + FCBA151614A1454D00AA698B /* false */, + FCBA151E14A1455600AA698B /* find */, + FCBA152614A1455900AA698B /* getopt */, + FC5D638F14B9822D00123E48 /* hexdump */, + FCBA152E14A1455C00AA698B /* hostname */, + FCBA153614A1455F00AA698B /* id */, + FCBA153E14A1456100AA698B /* jot */, + FCBA154614A1456400AA698B /* kill */, + FCBA154E14A1456700AA698B /* killall */, + FCBA155614A1456A00AA698B /* lastcomm */, + FCBA155E14A1456E00AA698B /* locate */, + FCE30EC214B5368A00CC0294 /* locate.bigram */, + FCE30ED614B536C900CC0294 /* locate.code */, + FCBA156614A1457100AA698B /* logname */, + FCBA157614A1457B00AA698B /* mktemp */, + FCBA157E14A1457F00AA698B /* nice */, + FCBA158614A1458500AA698B /* nohup */, + FCBA158E14A1458800AA698B /* path_helper */, + FCBA159614A1458C00AA698B /* printenv */, + FCBA159E14A1459000AA698B /* printf */, + FCBA15A614A1459500AA698B /* pwd */, + FCBA15AE14A1459700AA698B /* renice */, + FCBA15B614A1459900AA698B /* script */, + FCBA15BE14A1459E00AA698B /* seq */, + FCBA15C614A145A200AA698B /* shlock */, + FCBA15CE14A145A500AA698B /* sleep */, + FCBA15D614A145A700AA698B /* su */, + FCBA15DE14A145A900AA698B /* tee */, + FCBA15E614A145AE00AA698B /* test */, + FCBA15EE14A145B000AA698B /* time */, + FCBA15F614A145B200AA698B /* true */, + FCBA15FE14A145B500AA698B /* uname */, + FCBA160614A145B800AA698B /* users */, + FCBA160E14A145BA00AA698B /* w */, + FC5D637F14B9819E00123E48 /* what */, + FCBA161614A145BC00AA698B /* whereis */, + FCBA161E14A145C000AA698B /* which */, + FCBA162614A145C500AA698B /* who */, + FCBA162E14A145C700AA698B /* xargs */, + FCBA163614A145CA00AA698B /* yes */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + FCE30EB814B531EC00CC0294 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/sh; + shellScript = ". \"$PROJECT_DIR\"/xcodescripts/install-files.sh"; + showEnvVarsInLog = 0; + }; + FCE30F4D14B619C900CC0294 /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/sh; + shellScript = ". \"$PROJECT_DIR\"/xcodescripts/install-files.sh"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + FC5D638014B9819E00123E48 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC5D638D14B981D200123E48 /* what.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FC5D639014B9822D00123E48 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC5D639B14B9826500123E48 /* conv.c in Sources */, + FC5D639C14B9826500123E48 /* display.c in Sources */, + FC5D639D14B9826500123E48 /* hexdump.c in Sources */, + FC5D639E14B9826500123E48 /* hexsyntax.c in Sources */, + FC5D639F14B9826500123E48 /* odsyntax.c in Sources */, + FC5D63A014B9826500123E48 /* parse.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA149914A141FF00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14EB14A1444900AA698B /* apply.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14AF14A1422D00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14EE14A1446700AA698B /* basename.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14B814A1423E00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14F114A1448C00AA698B /* chroot.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14C014A1426800AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14F614A144B200AA698B /* vary.c in Sources */, + FCBA14F514A144AF00AA698B /* netdate.c in Sources */, + FCBA14F414A1449C00AA698B /* date.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14C814A1428000AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14F714A144C700AA698B /* dirname.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14D014A1433F00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14FA14A144D300AA698B /* echo.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA14D814A1434A00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA14FC14A144E500AA698B /* env.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA150F14A1453A00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02FF14B507130030BEB3 /* expr.y in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA151714A1454D00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA030114B507220030BEB3 /* false.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA151F14A1455600AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA030314B5073F0030BEB3 /* find.c in Sources */, + FCBA030414B5073F0030BEB3 /* function.c in Sources */, + FCBA030514B5073F0030BEB3 /* getdate.y in Sources */, + FCBA030614B5073F0030BEB3 /* ls.c in Sources */, + FCBA030714B5073F0030BEB3 /* main.c in Sources */, + FCBA030814B5073F0030BEB3 /* misc.c in Sources */, + FCBA030914B5073F0030BEB3 /* operator.c in Sources */, + FCBA030A14B5073F0030BEB3 /* option.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA152714A1455900AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA030C14B5074D0030BEB3 /* getopt.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA152F14A1455C00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA030E14B5076A0030BEB3 /* hostname.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA153714A1455F00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031014B507790030BEB3 /* id.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA153F14A1456100AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031514B507900030BEB3 /* jot.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA154714A1456400AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031714B507A10030BEB3 /* kill.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA154F14A1456700AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031914B507B00030BEB3 /* killall.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA155714A1456A00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031B14B507BD0030BEB3 /* lastcomm.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA155F14A1456E00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA031E14B507D10030BEB3 /* locate.c in Sources */, + FCBA031F14B507D10030BEB3 /* util.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA156714A1457100AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02FD14B506FA0030BEB3 /* logname.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA157714A1457B00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F914B506CB0030BEB3 /* mktemp.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA157F14A1457F00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F814B506BB0030BEB3 /* nice.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA158714A1458500AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F514B506940030BEB3 /* nohup.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA158F14A1458800AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F314B506840030BEB3 /* path_helper.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA159714A1458C00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F114B506720030BEB3 /* printenv.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA159F14A1459000AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02F014B506660030BEB3 /* printf.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15A714A1459500AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02ED14B506530030BEB3 /* pwd.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15AF14A1459700AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02EC14B5064C0030BEB3 /* renice.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15B714A1459900AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02EA14B506340030BEB3 /* script.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15BF14A1459E00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA02E814B506230030BEB3 /* seq.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15C714A145A200AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0B14B3CD4F00ECF511 /* shlock.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15CF14A145A500AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0A14B3CD4400ECF511 /* sleep.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15D714A145A700AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0714B3CD2F00ECF511 /* su.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15DF14A145A900AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0614B3CD2800ECF511 /* tee.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15E714A145AE00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0214B3CD0C00ECF511 /* test.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15EF14A145B000AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5C0014B3CCF800ECF511 /* time.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15F714A145B200AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5BFE14B3CCD700ECF511 /* true.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA15FF14A145B500AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FC2B5BFB14B3CCC600ECF511 /* uname.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA160714A145B800AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA165014A146BE00AA698B /* users.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA160F14A145BA00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA164D14A146A200AA698B /* w.c in Sources */, + FCBA164C14A1469F00AA698B /* proc_compare.c in Sources */, + FCBA164B14A1469D00AA698B /* pr_time.c in Sources */, + FCBA164A14A1469A00AA698B /* fmt.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA161714A145BC00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA164814A1469000AA698B /* whereis.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA161F14A145C000AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA164614A1468600AA698B /* which.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA162714A145C500AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA164414A1467D00AA698B /* who.c in Sources */, + FCBA164314A1467A00AA698B /* utmpentry.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA162F14A145C700AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA164114A1467200AA698B /* strnsubst.c in Sources */, + FCBA164014A1466F00AA698B /* xargs.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCBA163714A145CA00AA698B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCBA163F14A1466900AA698B /* yes.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCE30EC314B5368A00CC0294 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCE30ED414B536A600CC0294 /* locate.bigram.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FCE30ED714B536C900CC0294 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FCE30EE014B536F200CC0294 /* locate.code.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + FC5D63A214B9864400123E48 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FC5D638F14B9822D00123E48 /* hexdump */; + targetProxy = FC5D63A114B9864400123E48 /* PBXContainerItemProxy */; + }; + FC5D63A414B9864400123E48 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FC5D637F14B9819E00123E48 /* what */; + targetProxy = FC5D63A314B9864400123E48 /* PBXContainerItemProxy */; + }; + FC5D63A614B9866500123E48 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FC5D638F14B9822D00123E48 /* hexdump */; + targetProxy = FC5D63A514B9866500123E48 /* PBXContainerItemProxy */; + }; + FC5D63A814B9866500123E48 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FC5D637F14B9819E00123E48 /* what */; + targetProxy = FC5D63A714B9866500123E48 /* PBXContainerItemProxy */; + }; + FCBA150114A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA149814A141FF00AA698B /* apply */; + targetProxy = FCBA150014A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150314A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14AE14A1422D00AA698B /* basename */; + targetProxy = FCBA150214A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150514A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14B714A1423E00AA698B /* chroot */; + targetProxy = FCBA150414A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150714A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14BF14A1426800AA698B /* date */; + targetProxy = FCBA150614A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150914A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14C714A1428000AA698B /* dirname */; + targetProxy = FCBA150814A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150B14A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14CF14A1433F00AA698B /* echo */; + targetProxy = FCBA150A14A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA150D14A144F700AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14D714A1434A00AA698B /* env */; + targetProxy = FCBA150C14A144F700AA698B /* PBXContainerItemProxy */; + }; + FCBA165514A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA150E14A1453A00AA698B /* expr */; + targetProxy = FCBA165414A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA165714A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA151614A1454D00AA698B /* false */; + targetProxy = FCBA165614A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA165914A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA151E14A1455600AA698B /* find */; + targetProxy = FCBA165814A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA165B14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA152614A1455900AA698B /* getopt */; + targetProxy = FCBA165A14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA165D14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA152E14A1455C00AA698B /* hostname */; + targetProxy = FCBA165C14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA165F14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA153614A1455F00AA698B /* id */; + targetProxy = FCBA165E14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166114A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA153E14A1456100AA698B /* jot */; + targetProxy = FCBA166014A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166314A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA154614A1456400AA698B /* kill */; + targetProxy = FCBA166214A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166514A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA154E14A1456700AA698B /* killall */; + targetProxy = FCBA166414A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166714A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA155614A1456A00AA698B /* lastcomm */; + targetProxy = FCBA166614A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166914A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA155E14A1456E00AA698B /* locate */; + targetProxy = FCBA166814A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166B14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA156614A1457100AA698B /* logname */; + targetProxy = FCBA166A14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA166F14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA157614A1457B00AA698B /* mktemp */; + targetProxy = FCBA166E14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167114A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA157E14A1457F00AA698B /* nice */; + targetProxy = FCBA167014A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167314A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA158614A1458500AA698B /* nohup */; + targetProxy = FCBA167214A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167514A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA158E14A1458800AA698B /* path_helper */; + targetProxy = FCBA167414A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167714A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA159614A1458C00AA698B /* printenv */; + targetProxy = FCBA167614A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167914A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA159E14A1459000AA698B /* printf */; + targetProxy = FCBA167814A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167B14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15A614A1459500AA698B /* pwd */; + targetProxy = FCBA167A14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167D14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15AE14A1459700AA698B /* renice */; + targetProxy = FCBA167C14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA167F14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15B614A1459900AA698B /* script */; + targetProxy = FCBA167E14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168114A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15BE14A1459E00AA698B /* seq */; + targetProxy = FCBA168014A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168314A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15C614A145A200AA698B /* shlock */; + targetProxy = FCBA168214A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168514A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15CE14A145A500AA698B /* sleep */; + targetProxy = FCBA168414A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168714A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15D614A145A700AA698B /* su */; + targetProxy = FCBA168614A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168914A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15DE14A145A900AA698B /* tee */; + targetProxy = FCBA168814A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168B14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15E614A145AE00AA698B /* test */; + targetProxy = FCBA168A14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168D14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15EE14A145B000AA698B /* time */; + targetProxy = FCBA168C14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA168F14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15F614A145B200AA698B /* true */; + targetProxy = FCBA168E14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169114A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15FE14A145B500AA698B /* uname */; + targetProxy = FCBA169014A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169314A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA160614A145B800AA698B /* users */; + targetProxy = FCBA169214A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169514A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA160E14A145BA00AA698B /* w */; + targetProxy = FCBA169414A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169714A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA161614A145BC00AA698B /* whereis */; + targetProxy = FCBA169614A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169914A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA161E14A145C000AA698B /* which */; + targetProxy = FCBA169814A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169B14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA162614A145C500AA698B /* who */; + targetProxy = FCBA169A14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169D14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA162E14A145C700AA698B /* xargs */; + targetProxy = FCBA169C14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCBA169F14A146D000AA698B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA163614A145CA00AA698B /* yes */; + targetProxy = FCBA169E14A146D000AA698B /* PBXContainerItemProxy */; + }; + FCE30EE314B539BF00CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCE30EC214B5368A00CC0294 /* locate.bigram */; + targetProxy = FCE30EE214B539BF00CC0294 /* PBXContainerItemProxy */; + }; + FCE30EE514B539BF00CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCE30ED614B536C900CC0294 /* locate.code */; + targetProxy = FCE30EE414B539BF00CC0294 /* PBXContainerItemProxy */; + }; + FCE30F4F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA149814A141FF00AA698B /* apply */; + targetProxy = FCE30F4E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14AE14A1422D00AA698B /* basename */; + targetProxy = FCE30F5014B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5314B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14B714A1423E00AA698B /* chroot */; + targetProxy = FCE30F5214B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5514B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14BF14A1426800AA698B /* date */; + targetProxy = FCE30F5414B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5714B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14C714A1428000AA698B /* dirname */; + targetProxy = FCE30F5614B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5914B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14CF14A1433F00AA698B /* echo */; + targetProxy = FCE30F5814B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5B14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA14D714A1434A00AA698B /* env */; + targetProxy = FCE30F5A14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5D14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA150E14A1453A00AA698B /* expr */; + targetProxy = FCE30F5C14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F5F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA151614A1454D00AA698B /* false */; + targetProxy = FCE30F5E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA151E14A1455600AA698B /* find */; + targetProxy = FCE30F6014B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6314B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA152614A1455900AA698B /* getopt */; + targetProxy = FCE30F6214B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6514B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA152E14A1455C00AA698B /* hostname */; + targetProxy = FCE30F6414B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6714B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA153614A1455F00AA698B /* id */; + targetProxy = FCE30F6614B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6914B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA153E14A1456100AA698B /* jot */; + targetProxy = FCE30F6814B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6B14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA154614A1456400AA698B /* kill */; + targetProxy = FCE30F6A14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6D14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA154E14A1456700AA698B /* killall */; + targetProxy = FCE30F6C14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F6F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA155614A1456A00AA698B /* lastcomm */; + targetProxy = FCE30F6E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA156614A1457100AA698B /* logname */; + targetProxy = FCE30F7014B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7314B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA157614A1457B00AA698B /* mktemp */; + targetProxy = FCE30F7214B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7514B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA157E14A1457F00AA698B /* nice */; + targetProxy = FCE30F7414B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7714B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA158614A1458500AA698B /* nohup */; + targetProxy = FCE30F7614B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7914B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA158E14A1458800AA698B /* path_helper */; + targetProxy = FCE30F7814B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7B14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA159614A1458C00AA698B /* printenv */; + targetProxy = FCE30F7A14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7D14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA159E14A1459000AA698B /* printf */; + targetProxy = FCE30F7C14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F7F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15A614A1459500AA698B /* pwd */; + targetProxy = FCE30F7E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15AE14A1459700AA698B /* renice */; + targetProxy = FCE30F8014B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8314B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15B614A1459900AA698B /* script */; + targetProxy = FCE30F8214B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8514B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15BE14A1459E00AA698B /* seq */; + targetProxy = FCE30F8414B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8714B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15C614A145A200AA698B /* shlock */; + targetProxy = FCE30F8614B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8914B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15CE14A145A500AA698B /* sleep */; + targetProxy = FCE30F8814B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8B14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15DE14A145A900AA698B /* tee */; + targetProxy = FCE30F8A14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8D14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15E614A145AE00AA698B /* test */; + targetProxy = FCE30F8C14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F8F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15EE14A145B000AA698B /* time */; + targetProxy = FCE30F8E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15F614A145B200AA698B /* true */; + targetProxy = FCE30F9014B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9314B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA15FE14A145B500AA698B /* uname */; + targetProxy = FCE30F9214B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9514B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA160614A145B800AA698B /* users */; + targetProxy = FCE30F9414B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9714B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA160E14A145BA00AA698B /* w */; + targetProxy = FCE30F9614B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9914B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA161614A145BC00AA698B /* whereis */; + targetProxy = FCE30F9814B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9B14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA161E14A145C000AA698B /* which */; + targetProxy = FCE30F9A14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9D14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA162614A145C500AA698B /* who */; + targetProxy = FCE30F9C14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30F9F14B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA162E14A145C700AA698B /* xargs */; + targetProxy = FCE30F9E14B619E600CC0294 /* PBXContainerItemProxy */; + }; + FCE30FA114B619E600CC0294 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = FCBA163614A145CA00AA698B /* yes */; + targetProxy = FCE30FA014B619E600CC0294 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + FC5D638A14B9819E00123E48 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FC5D639614B9822D00123E48 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FC80BF6914A05A2F00C6F7F5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + APPLY_RULES_IN_COPY_FILES = YES; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = "$(RC_ProjectSourceVersion)"; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_PREPROCESSOR_DEFINITIONS = "__FBSDID=__RCSID"; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INSTALL_PATH = /usr/bin; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + FCBA149D14A141FF00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14B314A1422D00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14BC14A1423E00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /usr/sbin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14C414A1426800AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14CC14A1428000AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14D414A1433F00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14DC14A1434A00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA14FF14A144EC00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA151314A1453A00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA151B14A1454D00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA152314A1455600AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "__FBSDID=__RCSID", + _DARWIN_USE_64_BIT_INODE, + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA152B14A1455900AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA153314A1455C00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA153B14A1455F00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "__FBSDID=__RCSID", + USE_BSM_AUDIT, + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA154314A1456100AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA154B14A1456400AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA155314A1456700AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA155B14A1456A00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA156314A1456E00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA156B14A1457100AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA157B14A1457B00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA158314A1457F00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA158B14A1458500AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA159314A1458800AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /usr/libexec; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA159B14A1458C00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15A314A1459000AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15AB14A1459500AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15B314A1459700AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15BB14A1459900AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15C314A1459E00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15CB14A145A200AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15D314A145A500AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15DB14A145A700AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_MODE_FLAG = "u+s,u+w,go-w,a+rX"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15E314A145A900AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15EB14A145AE00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /bin; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15F314A145B000AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA15FB14A145B200AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA160314A145B500AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA160B14A145B800AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA161314A145BA00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "__FBSDID=__RCSID", + "HAVE_KVM=0", + "HAVE_UTMPX=1", + ); + "OTHER_LDFLAGS[sdk=macosx*][arch=*]" = "-lresolv"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA161B14A145BC00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA162314A145C000AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA162B14A145C500AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_PREPROCESSOR_DEFINITIONS = ( + "__FBSDID=__RCSID", + _UTMPX_COMPAT, + SUPPORT_UTMPX, + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA163314A145C700AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCBA163B14A145CA00AA698B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCE30ED114B5368A00CC0294 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /usr/libexec; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCE30EDD14B536C900CC0294 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /usr/libexec; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + FCE30F4C14B619B000CC0294 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + FC5D638914B9819E00123E48 /* Build configuration list for PBXNativeTarget "what" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FC5D638A14B9819E00123E48 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FC5D639514B9822D00123E48 /* Build configuration list for PBXNativeTarget "hexdump" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FC5D639614B9822D00123E48 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FC80BF5A14A05A2F00C6F7F5 /* Build configuration list for PBXProject "shell_cmds" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FC80BF6914A05A2F00C6F7F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA149C14A141FF00AA698B /* Build configuration list for PBXNativeTarget "apply" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA149D14A141FF00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14B214A1422D00AA698B /* Build configuration list for PBXNativeTarget "basename" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14B314A1422D00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14BB14A1423E00AA698B /* Build configuration list for PBXNativeTarget "chroot" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14BC14A1423E00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14C314A1426800AA698B /* Build configuration list for PBXNativeTarget "date" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14C414A1426800AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14CB14A1428000AA698B /* Build configuration list for PBXNativeTarget "dirname" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14CC14A1428000AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14D314A1433F00AA698B /* Build configuration list for PBXNativeTarget "echo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14D414A1433F00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14DB14A1434A00AA698B /* Build configuration list for PBXNativeTarget "env" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14DC14A1434A00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA14FE14A144EC00AA698B /* Build configuration list for PBXAggregateTarget "All_OSX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA14FF14A144EC00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA151214A1453A00AA698B /* Build configuration list for PBXNativeTarget "expr" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA151314A1453A00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA151A14A1454D00AA698B /* Build configuration list for PBXNativeTarget "false" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA151B14A1454D00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA152214A1455600AA698B /* Build configuration list for PBXNativeTarget "find" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA152314A1455600AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA152A14A1455900AA698B /* Build configuration list for PBXNativeTarget "getopt" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA152B14A1455900AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA153214A1455C00AA698B /* Build configuration list for PBXNativeTarget "hostname" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA153314A1455C00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA153A14A1455F00AA698B /* Build configuration list for PBXNativeTarget "id" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA153B14A1455F00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA154214A1456100AA698B /* Build configuration list for PBXNativeTarget "jot" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA154314A1456100AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA154A14A1456400AA698B /* Build configuration list for PBXNativeTarget "kill" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA154B14A1456400AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA155214A1456700AA698B /* Build configuration list for PBXNativeTarget "killall" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA155314A1456700AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA155A14A1456A00AA698B /* Build configuration list for PBXNativeTarget "lastcomm" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA155B14A1456A00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA156214A1456E00AA698B /* Build configuration list for PBXNativeTarget "locate" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA156314A1456E00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA156A14A1457100AA698B /* Build configuration list for PBXNativeTarget "logname" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA156B14A1457100AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA157A14A1457B00AA698B /* Build configuration list for PBXNativeTarget "mktemp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA157B14A1457B00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA158214A1457F00AA698B /* Build configuration list for PBXNativeTarget "nice" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA158314A1457F00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA158A14A1458500AA698B /* Build configuration list for PBXNativeTarget "nohup" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA158B14A1458500AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA159214A1458800AA698B /* Build configuration list for PBXNativeTarget "path_helper" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA159314A1458800AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA159A14A1458C00AA698B /* Build configuration list for PBXNativeTarget "printenv" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA159B14A1458C00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15A214A1459000AA698B /* Build configuration list for PBXNativeTarget "printf" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15A314A1459000AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15AA14A1459500AA698B /* Build configuration list for PBXNativeTarget "pwd" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15AB14A1459500AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15B214A1459700AA698B /* Build configuration list for PBXNativeTarget "renice" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15B314A1459700AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15BA14A1459900AA698B /* Build configuration list for PBXNativeTarget "script" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15BB14A1459900AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15C214A1459E00AA698B /* Build configuration list for PBXNativeTarget "seq" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15C314A1459E00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15CA14A145A200AA698B /* Build configuration list for PBXNativeTarget "shlock" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15CB14A145A200AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15D214A145A500AA698B /* Build configuration list for PBXNativeTarget "sleep" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15D314A145A500AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15DA14A145A700AA698B /* Build configuration list for PBXNativeTarget "su" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15DB14A145A700AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15E214A145A900AA698B /* Build configuration list for PBXNativeTarget "tee" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15E314A145A900AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15EA14A145AE00AA698B /* Build configuration list for PBXNativeTarget "test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15EB14A145AE00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15F214A145B000AA698B /* Build configuration list for PBXNativeTarget "time" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15F314A145B000AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA15FA14A145B200AA698B /* Build configuration list for PBXNativeTarget "true" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA15FB14A145B200AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA160214A145B500AA698B /* Build configuration list for PBXNativeTarget "uname" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA160314A145B500AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA160A14A145B800AA698B /* Build configuration list for PBXNativeTarget "users" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA160B14A145B800AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA161214A145BA00AA698B /* Build configuration list for PBXNativeTarget "w" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA161314A145BA00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA161A14A145BC00AA698B /* Build configuration list for PBXNativeTarget "whereis" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA161B14A145BC00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA162214A145C000AA698B /* Build configuration list for PBXNativeTarget "which" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA162314A145C000AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA162A14A145C500AA698B /* Build configuration list for PBXNativeTarget "who" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA162B14A145C500AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA163214A145C700AA698B /* Build configuration list for PBXNativeTarget "xargs" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA163314A145C700AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCBA163A14A145CA00AA698B /* Build configuration list for PBXNativeTarget "yes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBA163B14A145CA00AA698B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCE30ED014B5368A00CC0294 /* Build configuration list for PBXNativeTarget "locate.bigram" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCE30ED114B5368A00CC0294 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCE30EDC14B536C900CC0294 /* Build configuration list for PBXNativeTarget "locate.code" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCE30EDD14B536C900CC0294 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FCE30F4B14B619B000CC0294 /* Build configuration list for PBXAggregateTarget "All_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCE30F4C14B619B000CC0294 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = FC80BF5714A05A2F00C6F7F5 /* Project object */; +} diff --git a/shlock/Makefile b/shlock/Makefile deleted file mode 100644 index c420d4b..0000000 --- a/shlock/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = shlock -Install_Dir = /usr/bin - -CFILES = shlock.c -MANPAGES = shlock.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/sleep/Makefile b/sleep/Makefile deleted file mode 100644 index 0dfd8e7..0000000 --- a/sleep/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = sleep -Install_Dir = /bin - -CFILES = sleep.c -MANPAGES = sleep.1 - -Extra_CC_Flags = -Wall -Werror -Extra_CC_Flags += -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/su/Makefile b/su/Makefile deleted file mode 100644 index ec34d8d..0000000 --- a/su/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -Project = su - -CFILES = su.c -MANPAGES = su.1 - -Extra_CC_Flags = -Wall -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip -lpam -lbsm -Extra_LD_Flags += -framework Security - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -Install_Program_Mode = 04555 - -after_install: - $(MKDIR) $(DSTROOT)$(ETCDIR)/pam.d - $(INSTALL_FILE) su.pam $(DSTROOT)$(ETCDIR)/pam.d/su diff --git a/su/su.c b/su/su.c index 10a3636..8ad7434 100644 --- a/su/su.c +++ b/su/su.c @@ -106,7 +106,7 @@ __FBSDID("$FreeBSD: src/usr.bin/su/su.c,v 1.91 2009/12/13 03:14:06 delphij Exp $ #include #ifdef __APPLE__ -#include +#include #endif /* __APPLE__ */ #define PAM_END() do { \ @@ -448,11 +448,19 @@ main(int argc, char *argv[]) #ifdef __APPLE__ /* 8530846 */ if (asthem) { - retcode = SessionCreate(0, 0); - if (retcode != noErr) { - syslog(LOG_ERR, "SessionCreate: %d", retcode); + auditinfo_addr_t auinfo = { + .ai_termid = { .at_type = AU_IPv4 }, + .ai_asid = AU_ASSIGN_ASID, + .ai_auid = getuid(), + .ai_flags = 0, + }; + if (setaudit_addr(&auinfo, sizeof(auinfo)) == 0) { + char session[16]; + snprintf(session, sizeof(session), "%x", auinfo.ai_asid); + setenv("SECURITYSESSIONID", session, 1); + } else { errx(1, "failed to create session."); - } + } } #endif /* __APPLE__ */ diff --git a/tee/Makefile b/tee/Makefile deleted file mode 100644 index 00f10dc..0000000 --- a/tee/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = tee -Install_Dir = /usr/bin - -CFILES = tee.c -MANPAGES = tee.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/test/Makefile b/test/Makefile deleted file mode 100644 index 006d45c..0000000 --- a/test/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -Project = test -Install_Dir = /bin - -CFILES = test.c -MANPAGES = test.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common - -after_install: - $(LN) -f $(DSTROOT)/$(Install_Dir)/test $(DSTROOT)$(Install_Dir)/[ - $(LN) -f $(DSTROOT)/usr/share/man/man1/test.1 \ - $(DSTROOT)/usr/share/man/man1/[.1 diff --git a/time/Makefile b/time/Makefile deleted file mode 100644 index 1ea2a8e..0000000 --- a/time/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = time -Install_Dir = /usr/bin - -CFILES = time.c -MANPAGES = time.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/true/Makefile b/true/Makefile deleted file mode 100644 index ca5fc5d..0000000 --- a/true/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = true -Install_Dir = /usr/bin - -CFILES = true.c -MANPAGES = true.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/uname/Makefile b/uname/Makefile deleted file mode 100644 index b49c4cf..0000000 --- a/uname/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = uname -Install_DIr = /usr/bin - -CFILES = uname.c -MANPAGES = uname.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/users/Makefile b/users/Makefile deleted file mode 100644 index edb22ac..0000000 --- a/users/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = users -Install_Dir = /usr/bin - -CFILES = users.c -MANPAGES = users.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/w/Makefile b/w/Makefile deleted file mode 100644 index 0792750..0000000 --- a/w/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -Project = w -Install_Dir = /usr/bin - -HFILES = extern.h -CFILES = fmt.c proc_compare.c pr_time.c w.c -MANPAGES = uptime.1 w.1 - -Embedded=$(shell tconf --test TARGET_OS_EMBEDDED) - -Extra_CC_Flags = -Wall \ - -no-cpp-precomp -Wno-error -DHAVE_KVM=0 -DHAVE_UTMPX=1 -Extra_LD_Flags = -dead_strip -ifeq ($(Embedded),NO) -Extra_LD_Flags += -lresolv -endif - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make - -after_install: - $(LN) $(DSTROOT)/$(Install_Dir)/w $(DSTROOT)/$(Install_Dir)/uptime diff --git a/machine/machine.1 b/what/what.1 similarity index 69% rename from machine/machine.1 rename to what/what.1 index eda106c..fff56be 100644 --- a/machine/machine.1 +++ b/what/what.1 @@ -1,7 +1,7 @@ -.\" $NetBSD: machine.1,v 1.4 1997/10/19 04:41:01 lukem Exp $ +.\" $NetBSD: what.1,v 1.4 1997/10/20 03:16:30 lukem Exp $ .\" -.\" Copyright (c) 1980, 1990 The Regents of the University of California. -.\" All rights reserved. +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -31,25 +31,40 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" from: @(#)machine.1 5.5 (Berkeley) 7/26/91 -.\" $NetBSD: machine.1,v 1.4 1997/10/19 04:41:01 lukem Exp $ +.\" @(#)what.1 8.1 (Berkeley) 6/6/93 .\" -.Dd July 26, 1991 -.Dt MACHINE 1 -.Os +.Dd June 6, 1993 +.Dt WHAT 1 +.Os BSD 4 .Sh NAME -.Nm machine -.Nd print machine type +.Nm what +.Nd "show what versions of object modules were used to construct a file" .Sh SYNOPSIS .Nm +.Ar name Ar ... .Sh DESCRIPTION -The .Nm -command displays the machine type. -.Sh SEE ALSO -.Xr make 1 +reads each file +.Ar name +and searches for sequences of the form +.Dq \&@(#) , +as inserted by the source code control system. It prints the remainder +of the string following this marker, up to a null character, newline, double +quote, or +.Dq \&> character. +.Sh BUGS +As +.Bx +is not licensed to distribute +.Tn SCCS . +This is a rewrite of the +.Nm +command which is part of +.Tn SCCS ; +it may not behave in exactly the same manner as that +command does. .Sh HISTORY The .Nm -command is -.Ud . +command appeared in +.Bx 4.0 . diff --git a/machine/machine.c b/what/what.c similarity index 63% rename from machine/machine.c rename to what/what.c index 687eecc..2f70e2d 100644 --- a/machine/machine.c +++ b/what/what.c @@ -1,8 +1,8 @@ -/* $NetBSD: machine.c,v 1.4 1997/10/19 04:41:04 lukem Exp $ */ +/* $NetBSD: what.c,v 1.6 1997/10/20 03:16:31 lukem Exp $ */ /* - * Copyright (c) 1986 Regents of the University of California. - * All rights reserved. + * Copyright (c) 1980, 1988, 1993 + * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -35,25 +35,63 @@ #include #ifndef lint -__COPYRIGHT("@(#) Copyright (c) 1986 Regents of the University of California.\n\ - All rights reserved.\n"); +__COPYRIGHT("@(#) Copyright (c) 1980, 1988, 1993\n\ + The Regents of the University of California. All rights reserved.\n"); #endif /* not lint */ #ifndef lint -/*static char sccsid[] = "from: @(#)machine.c 5.5 (Berkeley) 6/1/90";*/ -__RCSID("$NetBSD: machine.c,v 1.4 1997/10/19 04:41:04 lukem Exp $"); +#if 0 +static char sccsid[] = "@(#)what.c 8.1 (Berkeley) 6/6/93"; +#endif +__RCSID("$NetBSD: what.c,v 1.6 1997/10/20 03:16:31 lukem Exp $"); #endif /* not lint */ -#include #include +#include -int main __P((int, char **)); +void search __P((void)); +int main __P((int, char **)); +/* + * what + */ +/* ARGSUSED */ int main(argc, argv) int argc; - char *argv[]; + char **argv; { - puts(MACHINE); + if (!*++argv) + search(); + else do { + if (!freopen(*argv, "r", stdin)) { + perror(*argv); + exit(1); + } + printf("%s\n", *argv); + search(); + } while(*++argv); exit(0); } + +void +search() +{ + int c; + + while ((c = getchar()) != EOF) { +loop: if (c != '@') + continue; + if ((c = getchar()) != '(') + goto loop; + if ((c = getchar()) != '#') + goto loop; + if ((c = getchar()) != ')') + goto loop; + putchar('\t'); + while ((c = getchar()) != EOF && c && c != '"' && + c != '>' && c != '\n') + putchar(c); + putchar('\n'); + } +} diff --git a/whereis/Makefile b/whereis/Makefile deleted file mode 100644 index 2d77673..0000000 --- a/whereis/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = whereis -Install_Dir = /usr/bin - -CFILES = whereis.c -MANPAGES = whereis.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/which/Makefile b/which/Makefile deleted file mode 100644 index dfe7c1c..0000000 --- a/which/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = which -Install_Dir = /usr/bin - -CFILES = which.c -MANPAGES = which.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/who/Makefile b/who/Makefile deleted file mode 100644 index b984b17..0000000 --- a/who/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -Project = who -Install_Dir = /usr/bin - -CFILES = who.c utmpentry.c -MANPAGES = who.1 - -Extra_CC_Flags = -Wall -Werror -Extra_CC_Flags += -DSUPPORT_UTMPX -D_UTMPX_COMPAT -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/xargs/Makefile b/xargs/Makefile deleted file mode 100644 index 9a44c26..0000000 --- a/xargs/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -Project = xargs -Install_Dir = /usr/bin - -HFILES = pathnames.h -CFILES = xargs.c strnsubst.c -MANPAGES = xargs.1 - -Extra_CC_Flags = -Wall \ - -D__FBSDID=__RCSID -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make diff --git a/xcodescripts/builtins-manpages.txt b/xcodescripts/builtins-manpages.txt new file mode 100644 index 0000000..ba69d19 --- /dev/null +++ b/xcodescripts/builtins-manpages.txt @@ -0,0 +1,86 @@ +alias.1 +alloc.1 +bg.1 +bind.1 +bindkey.1 +break.1 +breaksw.1 +builtins.1 +case.1 +cd.1 +chdir.1 +command.1 +complete.1 +continue.1 +default.1 +dirs.1 +do.1 +done.1 +echotc.1 +elif.1 +else.1 +end.1 +endif.1 +endsw.1 +esac.1 +eval.1 +exec.1 +exit.1 +export.1 +fc.1 +fg.1 +fi.1 +filetest.1 +for.1 +foreach.1 +getopts.1 +glob.1 +goto.1 +hash.1 +hashstat.1 +history.1 +hup.1 +if.1 +jobid.1 +jobs.1 +limit.1 +log.1 +logout.1 +ls-F.1 +notify.1 +onintr.1 +popd.1 +pushd.1 +read.1 +readonly.1 +rehash.1 +repeat.1 +return.1 +sched.1 +set.1 +setenv.1 +settc.1 +setty.1 +setvar.1 +shift.1 +source.1 +stop.1 +suspend.1 +switch.1 +telltc.1 +then.1 +times.1 +trap.1 +type.1 +ulimit.1 +umask.1 +unalias.1 +uncomplete.1 +unhash.1 +unlimit.1 +unset.1 +unsetenv.1 +until.1 +wait.1 +where.1 +while.1 diff --git a/xcodescripts/builtins.txt b/xcodescripts/builtins.txt new file mode 100644 index 0000000..55cb408 --- /dev/null +++ b/xcodescripts/builtins.txt @@ -0,0 +1,14 @@ +bg +cd +command +fc +fg +getopts +hash +jobs +read +type +ulimit +umask +unalias +wait diff --git a/xcodescripts/install-files.sh b/xcodescripts/install-files.sh new file mode 100644 index 0000000..7d5b69d --- /dev/null +++ b/xcodescripts/install-files.sh @@ -0,0 +1,52 @@ +#!/bin/sh +set -e -x + +BINDIR="$DSTROOT"/usr/bin +LIBEXECDIR="$DSTROOT"/usr/libexec +MANDIR="$DSTROOT"/usr/share/man +PAMDIR="$DSTROOT"/private/etc/pam.d + +ln -f "$BINDIR/hexdump" "$BINDIR/od" +ln -f "$BINDIR/id" "$BINDIR/groups" +ln -f "$BINDIR/id" "$BINDIR/whoami" +ln -f "$BINDIR/w" "$BINDIR/uptime" +ln -f "$DSTROOT/bin/test" "$DSTROOT/bin/[" + +install -d -o root -g wheel -m 0755 "$BINDIR" +install -d -o root -g wheel -m 0755 "$MANDIR"/man1 +install -d -o root -g wheel -m 0755 "$MANDIR"/man8 + +install -c -o root -g wheel -m 0755 "$SRCROOT"/alias/generic.sh "$BINDIR"/alias +install -c -o root -g wheel -m 0644 "$SRCROOT"/alias/builtin.1 "$MANDIR"/man1 + +set +x +for builtin in `cat "$SRCROOT/xcodescripts/builtins.txt"`; do + echo ... linking $builtin + ln -f "$BINDIR"/alias "$BINDIR/$builtin" +done + +for manpage in `cat "$SRCROOT/xcodescripts/builtins-manpages.txt"`; do + echo ... linking $manpage + echo ".so man1/builtin.1" > "$MANDIR/man1/$manpage" +done +set -x + +# Skip locate and su targets for iOS +if [ "$TARGET_NAME" = "All_iOS" ]; then + exit 0 +fi + +install -d -o root -g wheel -m 0755 "$LIBEXECDIR" +install -c -o root -g wheel -m 0755 "$SRCROOT"/locate/locate/updatedb.sh \ + "$LIBEXECDIR"/locate.updatedb +install -c -o root -g wheel -m 0644 "$SRCROOT"/locate/locate/locate.updatedb.8 \ + "$MANDIR"/man8 +install -c -o root -g wheel -m 0755 "$SRCROOT"/locate/locate/concatdb.sh \ + "$LIBEXECDIR"/locate.concatdb +echo ".so man8/locate.updatedb.8" > "$MANDIR"/man8/locate.concatdb.8 +install -c -o root -g wheel -m 0755 "$SRCROOT"/locate/locate/mklocatedb.sh \ + "$LIBEXECDIR"/locate.mklocatedb +echo ".so man8/locate.updatedb.8" > "$MANDIR"/man8/locate.mklocatedb.8 + +install -d -o root -g wheel -m 0755 "$PAMDIR" +install -c -o root -g wheel -m 0644 "$SRCROOT"/su/su.pam "$PAMDIR"/su diff --git a/yes/Makefile b/yes/Makefile deleted file mode 100644 index c049f93..0000000 --- a/yes/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -Project = yes -Install_Dir = /usr/bin - -CFILES = yes.c -MANPAGES = yes.1 - -Extra_CC_Flags = -Wall -Extra_LD_Flags = -dead_strip - -include $(MAKEFILEPATH)/CoreOS/ReleaseControl/BSDCommon.make -- 2.45.2