add autoindent (-a) and chording.
clean up argument parsing.
This commit is contained in:
parent
4ac5f249ad
commit
17ab31aac6
8 changed files with 113 additions and 74 deletions
|
|
@ -176,7 +176,7 @@ int remotefd0 = 0;
|
|||
int remotefd1 = 1;
|
||||
|
||||
void
|
||||
bootterm(char *machine, char **argv, char **end)
|
||||
bootterm(char *machine, char **argv)
|
||||
{
|
||||
int ph2t[2], pt2h[2];
|
||||
|
||||
|
|
@ -186,7 +186,6 @@ bootterm(char *machine, char **argv, char **end)
|
|||
close(remotefd0);
|
||||
close(remotefd1);
|
||||
argv[0] = "samterm";
|
||||
*end = 0;
|
||||
execvp(samterm, argv);
|
||||
fprint(2, "can't exec %s: %r\n", samterm);
|
||||
_exits("damn");
|
||||
|
|
@ -202,7 +201,6 @@ bootterm(char *machine, char **argv, char **end)
|
|||
close(pt2h[0]);
|
||||
close(pt2h[1]);
|
||||
argv[0] = "samterm";
|
||||
*end = 0;
|
||||
execvp(samterm, argv);
|
||||
fprint(2, "can't exec: ");
|
||||
perror(samterm);
|
||||
|
|
@ -269,12 +267,12 @@ connectto(char *machine, char **argv)
|
|||
}
|
||||
|
||||
void
|
||||
startup(char *machine, int Rflag, char **argv, char **end, char **files)
|
||||
startup(char *machine, int Rflag, char **argv, char **files)
|
||||
{
|
||||
if(machine)
|
||||
connectto(machine, files);
|
||||
if(!Rflag)
|
||||
bootterm(machine, argv, end);
|
||||
bootterm(machine, argv);
|
||||
downloaded = 1;
|
||||
outTs(Hversion, VERSION);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ typedef enum Hmesg
|
|||
Hsnarflen, /* report length of implicit snarf */
|
||||
Hack, /* request acknowledgement */
|
||||
Hexit,
|
||||
Hplumb, /* return plumb message to terminal */
|
||||
Hplumb, /* return plumb message to terminal - version 1 */
|
||||
HMAX,
|
||||
}Hmesg;
|
||||
typedef struct Header{
|
||||
|
|
|
|||
|
|
@ -42,58 +42,40 @@ main(int volatile argc, char **volatile argv)
|
|||
{
|
||||
int volatile i;
|
||||
String *t;
|
||||
char **ap, **arg;
|
||||
char *termargs[10], **ap;
|
||||
|
||||
ap = termargs;
|
||||
*ap++ = "samterm";
|
||||
ARGBEGIN{
|
||||
case 'd':
|
||||
dflag++;
|
||||
break;
|
||||
case 'r':
|
||||
machine = EARGF(usage());
|
||||
break;
|
||||
case 'R':
|
||||
Rflag++;
|
||||
break;
|
||||
case 't':
|
||||
samterm = EARGF(usage());
|
||||
break;
|
||||
case 's':
|
||||
rsamname = EARGF(usage());
|
||||
break;
|
||||
default:
|
||||
dprint("sam: unknown flag %c\n", ARGC());
|
||||
usage();
|
||||
/* options for samterm */
|
||||
case 'a':
|
||||
*ap++ = "-a";
|
||||
break;
|
||||
case 'W':
|
||||
*ap++ = "-W";
|
||||
*ap++ = EARGF(usage());
|
||||
break;
|
||||
}ARGEND
|
||||
*ap = nil;
|
||||
|
||||
arg = argv++;
|
||||
ap = argv;
|
||||
while(argc>1 && argv[0] && argv[0][0]=='-'){
|
||||
switch(argv[0][1]){
|
||||
case 'd':
|
||||
dflag++;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
--argc, argv++;
|
||||
if(argc == 1)
|
||||
usage();
|
||||
machine = *argv;
|
||||
break;
|
||||
|
||||
case 'R':
|
||||
Rflag++;
|
||||
break;
|
||||
|
||||
case 't':
|
||||
--argc, argv++;
|
||||
if(argc == 1)
|
||||
usage();
|
||||
samterm = *argv;
|
||||
break;
|
||||
|
||||
case 's':
|
||||
--argc, argv++;
|
||||
if(argc == 1)
|
||||
usage();
|
||||
rsamname = *argv;
|
||||
break;
|
||||
|
||||
case 'x': /* x11 option - strip the x */
|
||||
strcpy(*argv+1, *argv+2);
|
||||
*ap++ = *argv++;
|
||||
*ap++ = *argv;
|
||||
argc--;
|
||||
break;
|
||||
|
||||
case 'W':
|
||||
--argc, argv++;
|
||||
break;
|
||||
|
||||
default:
|
||||
dprint("sam: unknown flag %c\n", argv[0][1]);
|
||||
exits("usage");
|
||||
}
|
||||
--argc, argv++;
|
||||
}
|
||||
Strinit(&cmdstr);
|
||||
Strinit0(&lastpat);
|
||||
Strinit0(&lastregexp);
|
||||
|
|
@ -106,12 +88,13 @@ main(int volatile argc, char **volatile argv)
|
|||
disk = diskinit();
|
||||
if(home == 0)
|
||||
home = "/";
|
||||
fprint(2, "argc %d argv %s\n", argc, *argv);
|
||||
if(!dflag)
|
||||
startup(machine, Rflag, arg, ap, argv);
|
||||
startup(machine, Rflag, termargs, argv);
|
||||
notify(notifyf);
|
||||
getcurwd();
|
||||
if(argc>1){
|
||||
for(i=0; i<argc-1; i++){
|
||||
if(argc>0){
|
||||
for(i=0; i<argc; i++){
|
||||
if(!setjmp(mainloop)){
|
||||
t = tmpcstr(argv[i]);
|
||||
Straddc(t, '\0');
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ void settempfile(void);
|
|||
int skipbl(void);
|
||||
void snarf(File*, Posn, Posn, Buffer*, int);
|
||||
void sortname(File*);
|
||||
void startup(char*, int, char**, char**, char**);
|
||||
void startup(char*, int, char**, char**);
|
||||
void state(File*, int);
|
||||
int statfd(int, ulong*, uvlong*, long*, long*, long*);
|
||||
int statfile(char*, ulong*, uvlong*, long*, long*, long*);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue