Merge pull request #339 from xexyl/1990-tbr
This commit is contained in:
4 files changed
+14
-50
No files matched your search
@@ -1,2 +1 @@
|
|||||||
tbr
|
tbr
|
||||||
tbr.alt
|
|
||||||
+2
-2
@@ -113,8 +113,8 @@ OBJ= ${PROG}.o
|
|||||||
DATA=
|
DATA=
|
||||||
TARGET= ${PROG}
|
TARGET= ${PROG}
|
||||||
#
|
#
|
||||||
ALT_OBJ= ${PROG}.alt.o
|
ALT_OBJ=
|
||||||
ALT_TARGET= ${PROG}.alt
|
ALT_TARGET=
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
|
|||||||
+12
-24
@@ -1,16 +1,16 @@
|
|||||||
# Best Utility
|
# Best Utility
|
||||||
|
|
||||||
Byron Rakitzis
|
Byron Rakitzis
|
||||||
Princeton University
|
Princeton University
|
||||||
5707 Old Lodge Dr.
|
5707 Old Lodge Dr.
|
||||||
Houston, TX 77066
|
Houston, TX 77066
|
||||||
USA
|
USA
|
||||||
|
|
||||||
Sean Dorward
|
Sean Dorward
|
||||||
Princeton University
|
Princeton University
|
||||||
10274 Burleigh Cottage Lane
|
10274 Burleigh Cottage Lane
|
||||||
Ellicott City, MD 21043
|
Ellicott City, MD 21043
|
||||||
USA
|
USA
|
||||||
|
|
||||||
|
|
||||||
## To build:
|
## To build:
|
||||||
@@ -27,7 +27,8 @@ expression so this wouldn't even compile. Cody also changed the code to use
|
|||||||
due to the warning being interspersed with the program's output. Thank you Cody
|
due to the warning being interspersed with the program's output. Thank you Cody
|
||||||
for your assistance!
|
for your assistance!
|
||||||
|
|
||||||
For the original version with `gets()` see the alternate code section below.
|
For the original version with `gets()` see the [archive
|
||||||
|
tarball](/archive-1990.tar.bz2).
|
||||||
|
|
||||||
## To run:
|
## To run:
|
||||||
|
|
||||||
@@ -54,19 +55,6 @@ or ctrl-c (or kill it from another terminal :-) ).
|
|||||||
What happens if you try using `cd -` to return to previous directory? What about
|
What happens if you try using `cd -` to return to previous directory? What about
|
||||||
`cd` with no args?
|
`cd` with no args?
|
||||||
|
|
||||||
## Alternate code:
|
|
||||||
|
|
||||||
If you wish to see the original source (fixed so it can compile) that uses
|
|
||||||
`gets()` instead of `fgets()` you can look at [tbr.alt.c](tbr.alt.c). To compile
|
|
||||||
it:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
make alt
|
|
||||||
```
|
|
||||||
|
|
||||||
Use `tbr.alt` as you would `tbr`. You'll likely get a warning about the usage of
|
|
||||||
`gets()` and with macOS it will mess up output of the first line.
|
|
||||||
|
|
||||||
## Judges' comments:
|
## Judges' comments:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
|
|
||||||
#define D ,close(
|
|
||||||
|
|
||||||
char *c,q [512 ],m[ 256
|
|
||||||
],*v[ 99], **u, *i[3];int f[2],p;main (){for
|
|
||||||
(m[m [60]= m[62 ]=32 ]=m[* m=124 [m]= 9]=6;
|
|
||||||
e(-8) ,gets (1+( c=q) )|| (exit (0),0); r(0,0)
|
|
||||||
)for( ;*++ c;); }r(t, o){ *i=i [2]= 0;for
|
|
||||||
(u=v +98 ;m[*--c] ^9;m [*c] &32 ?i[*c
|
|
||||||
&2]= *u,u- v^98 &&++u:
|
|
||||||
|
|
||||||
3 )if(!m[*c]){for(*++c=0;!m[*--c];);
|
|
||||||
* --u= ++c;}u-v^98?strcmp(*u,"cd")?*c?pipe(f),o=f[
|
|
||||||
1 ]:
|
|
||||||
4 ,(p=fork())?e(p),o?r(o,0)D o)D*f):
|
|
||||||
1 ,wait(0):(o?dup2(*f,0)D*f)D o):*i?
|
|
||||||
5 D 0),e(open(*i,0)):
|
|
||||||
9 ,t?dup2(t,1)D t):i[
|
|
||||||
2 ]?
|
|
||||||
6 D 1),e(creat(i[2],438)):
|
|
||||||
5 ,e(execvp(*u,u))):e(chdir(u[1])*2):
|
|
||||||
3 ;}e(x){x<0?write(2,"?\n$ "-x/4,2),x+1||(exit(1),0):
|
|
||||||
5 ;}
|
|
||||||
Reference in new issue
Block a user